您現(xiàn)在的位置是:首頁 >php教程 >php初級教程三 文件網(wǎng)站首頁php教程
php初級教程三 文件
PHP 文件處理
fopen() 函數(shù)用于在 PHP 中打開文件。
打開文件
fopen() 函數(shù)用于在 PHP 中打開文件。
此函數(shù)的第一個參數(shù)含有要打開的文件的名稱,第二個參數(shù)規(guī)定了使用哪種模式來打開文件:
<html>
<body>
<?php
$file=fopen("welcome.txt","r");
?>
</body>
</html>
文件可能通過下列模式來打開:
| 模式 | 描述 |
|---|---|
| r | 只讀。在文件的開頭開始。 |
| r+ | 讀/寫。在文件的開頭開始。 |
| w | 只寫。打開并清空文件的內(nèi)容;如果文件不存在,則創(chuàng)建新文件。 |
| w+ | 讀/寫。打開并清空文件的內(nèi)容;如果文件不存在,則創(chuàng)建新文件。 |
| a | 追加。打開并向文件末尾進行寫操作,如果文件不存在,則創(chuàng)建新文件。 |
| a+ | 讀/追加。通過向文件末尾寫內(nèi)容,來保持文件內(nèi)容。 |
| x | 只寫。創(chuàng)建新文件。如果文件已存在,則返回 FALSE 和一個錯誤。 |
| x+ | 讀/寫。創(chuàng)建新文件。如果文件已存在,則返回 FALSE 和一個錯誤。 |
注釋:如果 fopen() 函數(shù)無法打開指定文件,則返回 0 (false)。
實例
如果 fopen() 函數(shù)不能打開指定的文件,下面的實例會生成一段消息:
<html>
<body>
<?php
$file=fopen("welcome.txt","r") or exit("Unable to open file!");
?>
</body>
</html>
關閉文件
fclose() 函數(shù)用于關閉打開的文件:
<?php
$file = fopen("test.txt","r");
//執(zhí)行一些代碼
fclose($file);
?>
檢測文件末尾(EOF)
feof() 函數(shù)檢測是否已到達文件末尾(EOF)。
在循環(huán)遍歷未知長度的數(shù)據(jù)時,feof() 函數(shù)很有用。
注釋:在 w 、a 和 x 模式下,您無法讀取打開的文件!
if (feof($file)) echo "文件結(jié)尾";
逐行讀取文件
fgets() 函數(shù)用于從文件中逐行讀取文件。
注釋:在調(diào)用該函數(shù)之后,文件指針會移動到下一行。
實例
下面的實例逐行讀取文件,直到文件末尾為止:
<?php
$file = fopen("welcome.txt", "r") or exit("無法打開文件!");
// 讀取文件每一行,直到文件結(jié)尾
while(!feof($file))
{
echo fgets($file). "<br>";
}
fclose($file);
?>
逐字符讀取文件
fgetc() 函數(shù)用于從文件中逐字符地讀取文件。
注釋:在調(diào)用該函數(shù)之后,文件指針會移動到下一個字符。
實例
下面的實例逐字符地讀取文件,直到文件末尾為止:
<?php
$file=fopen("welcome.txt","r") or exit("無法打開文件!");
while (!feof($file))
{
echo fgetc($file);
}
fclose($file);
?>
案例
PHP對逗號分隔符文件(*.csv)的處理。
當如果你需要處理的數(shù)據(jù)比較少時可以使用csv文件(這是一類文本文件)存儲數(shù)據(jù)更加便利。
比如在php代碼同目錄下有一個a.csv文件,內(nèi)容如下:(注意逗號是半角英文)
小王,小紅,小明,小凡
php代碼如何:
<?php
$fh=fopen("a.csv","r");//這里我們只是讀取數(shù)據(jù),所以采用只讀打開文件流
$arr=fgetcsv($fh);//這個函數(shù)就是讀取CSV文件的函數(shù),他把文本讀入后轉(zhuǎn)為數(shù)組存儲在$arr中
fclose($fh);
foreach($arr as $key=>$value){echo $value;}//循環(huán)輸出所有的值
?>
注意:CSV文本編碼必須和HTML的編碼相同,否則用php寫到HTML中,用戶會看到亂碼。也可以使用 iconv 轉(zhuǎn)碼函數(shù)進行轉(zhuǎn)碼。
如果打開一個文件,文件名為中文,如果系統(tǒng)編程和當前文檔編碼不一致,會導致文件找不到無法打開,解決方法是用 iconv 函數(shù)編碼轉(zhuǎn)換成一致,如下:
$fpath=iconv('UTF-8','GB2312',"題庫.csv");
$file=fopen($fpath,"r") or exit("無法打開文件!");
//此處省略相關操作
fclose($file);
用相對路徑打不開子目錄中的文件時,可用絕對路徑打開,如下:
$file=fopen(dirname(__FILE__).'\files\tk.csv',"r") or exit("無法打開文件!");
//此處省略相關操作
fclose($file);



針對“附近的人”這一位置服務領域的應用場景,常見的可使用PG、MySQL和MongoDB等多種DB的空間索引進行實...
最近項目有用到七牛云存儲,需要對上傳的照片進行鑒黃并上傳報存
string是最簡單的類型,一個Key對應一個value,string類型是二進制安全的,redis的string可以包含任何數(shù)據(jù)...