PHP學習筆記--第二章--數據存取

使用fopen()打開文件

$fp = fopen("$document_root/../orders/order.txt",'w');// ..表示文檔根目錄的父目錄,這是個相對路徑,描述了一個相對於文檔根目錄的文件系統位置,w是隻寫模式
$document_root = $_SERVER['DOCUMENT_ROOT'];

調用fopen()的時候,需要傳遞兩個、三個或者四個參數
第三個參數 可選 如果要在include_path中搜索一個文件,就設置爲true,同時不需要提供目錄名稱或路徑

$fp = fopen("order.txt",'ab',true);

第四個參數 可選 允許文件名稱帶有協議名稱前綴以及打開遠程文件。
文件模式總結:
r 只讀 從文件頭開始讀
w 只寫 從文件頭開始寫。如果改文件已經存在,將刪除所有文件已有的內容。文件不存在,會創建這個文件
x 謹慎寫 如果文件已經存在,改文件將不會被打開。函數返回false,php產生警告
a 追加 打開文件,如果文件已有內容,講從文件末尾開始追加寫。如果文件不存在,將會創建這個文件
b 二進制模式 用於與前四個模式進行連接,例如 ab 追加二進制
t 文本 用於與前四個模式進行連接。

@$fp = fopen("$document_root/../orders/order.txt",'ab');
if(!$fp){
	echo "aaabbbccc";
	exit;
}

錯誤抑制操作符,告訴PHP抑制所有由該函數調用所產生的錯誤。

寫文件
fwrite()函數

int fwrite (resource handle,sting [, int length])//第三個參數是寫入最大字符數,可選
//可以通過PHP內置strlen函數獲得字符串的長度
fwrite($fp,$outputsting,strlen($outputsting));

關閉文件
fclose($fp);//成功關閉返回true

讀文件

$fp = fopen("$document_root/../orders/order.txt",'rb');//以只讀模式打開文件

while(!feof($fp))//知道何時讀完文件,文件指針指向了文件末尾,返回true,File End Of File

fgets($fp);//一直讀,直到遇到換行符/n或者文件結束符EOF
fgetss($fp);//類似上面的,但是可以過濾字符串中包含的PHP和HTML標記
$order = fgetcsv($fp,0,"\t");//例如前面所介紹的製表符或者逗號,可以使用這個函數將文件分成多行
//這個代碼將從文件中讀取一行,並且在有製表符的地方講文件內容分行,該函數講返回一個數組。0表示不希望限制行長度

readfile("$document_root/../orders/orders.txt");//打開這個文件,然後將文件輸出到瀏覽器中,然後再關閉這個文件
fpassthru($fp);//讀操作成功,函數將返回true
$filearray = file("$document_root/../orders/order.txt");//將結果發送到一個數組中,每一行都將作爲數組的一個元素
file_get_contents($fp);//與readfile相同,但是該函數將以字符串的形式返回文件內容。

fgetc($fp);//從文件中一次讀取一個字符,但是會讀文件結束符EOF,所以需要搭配feof函數結束
fread($fp,5);//讀取任意函數,讀五個字節。

file_exists("$document_root/../orders/order.txt");//文件是否存在
filesize("$document_root/../orders/order.txt");//文件大小

rewind(),fseek(),ftell()//在文件中定位
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章