1. 程式人生 > >PHP高級教程-文件

PHP高級教程-文件

文件結尾 ref false 數組存儲 第一個 arrow value 模式 代碼

PHP 文件處理


fopen() 函數用於在 PHP 中打開文件。


打開文件

fopen() 函數用於在 PHP 中打開文件。

此函數的第一個參數含有要打開的文件的名稱,第二個參數規定了使用哪種模式來打開文件:

<html>
<body>

<?php
$file=fopen("welcome.txt","r");
?>

</body>
</html>

文件可能通過下列模式來打開:

模式描述
r 只讀。在文件的開頭開始。
r+ 讀/寫。在文件的開頭開始。
w 只寫。打開並清空文件的內容;如果文件不存在,則創建新文件。
w+ 讀/寫。打開並清空文件的內容;如果文件不存在,則創建新文件。
a 追加。打開並向文件末尾進行寫操作,如果文件不存在,則創建新文件。
a+ 讀/追加。通過向文件末尾寫內容,來保持文件內容。
x 只寫。創建新文件。如果文件已存在,則返回 FALSE 和一個錯誤。
x+ 讀/寫。創建新文件。如果文件已存在,則返回 FALSE 和一個錯誤。

註釋:如果 fopen() 函數無法打開指定文件,則返回 0 (false)。

實例

如果 fopen() 函數不能打開指定的文件,下面的實例會生成一段消息:

<html>
<body>

<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
?>

</body>
</html>



關閉文件

fclose() 函數用於關閉打開的文件:

<?php
$file = fopen("test.txt","r");

//執行一些代碼

fclose($file);
?>

檢測文件末尾(EOF)

feof() 函數檢測是否已到達文件末尾(EOF)。

在循環遍歷未知長度的數據時,feof() 函數很有用。

註釋:在 w 、a 和 x 模式下,您無法讀取打開的文件!

if (feof($file)) echo "文件結尾";

逐行讀取文件

fgets() 函數用於從文件中逐行讀取文件。

註釋:在調用該函數之後,文件指針會移動到下一行。

實例

下面的實例逐行讀取文件,直到文件末尾為止:

<?php
$file = fopen("welcome.txt", "r") or exit("無法打開文件!");
// 讀取文件每一行,直到文件結尾
while(!feof($file))
{
    echo fgets($file). "<br>";
}
fclose($file);
?>



逐字符讀取文件

fgetc() 函數用於從文件中逐字符地讀取文件。

註釋:在調用該函數之後,文件指針會移動到下一個字符。

實例

下面的實例逐字符地讀取文件,直到文件末尾為止:

<?php
$file=fopen("welcome.txt","r") or exit("無法打開文件!");
while (!feof($file))
{
    echo fgetc($file);
}
fclose($file);
?>



PHP Filesystem 參考手冊

如需查看 PHP 文件系統函數的完整參考手冊,請訪問我們的PHP Filesystem 參考手冊。

PHP include 和 require PHP 文件上傳

筆記列表

  1. Vladimir

    137***[email protected]

    PHP對逗號分隔符文件(*.csv)的處理。

    當如果你需要處理的數據比較少時可以使用csv文件(這是一類文本文件)存儲數據更加便利。

    比如在php代碼同目錄下有一個a.csv文件,內容如下:(註意逗號是半角英文)

    小王,小紅,小明,小凡

    php代碼如何:

    <?php
    $fh=fopen("a.csv","r");//這裏我們只是讀取數據,所以采用只讀打開文件流
    $arr=fgetcsv($fh);//這個函數就是讀取CSV文件的函數,他把文本讀入後轉為數組存儲在$arr中
    fcloase($fh);
    foreach($arr as $key=>$value){echo $value;}//循環輸出所有的值
    ?>

    註意:CSV文本編碼必須和HTML的編碼相同,否則用php寫到HTML中,用戶會看到亂碼。也可以使用 iconv 轉碼函數進行轉碼。

PHP高級教程-文件