· 文件操作
讀取/寫入文件操作:
fopen() 打開一個文件 指定打開模式
r 只讀方式打開 指針文件開頭
r+ 讀寫方式打開 指針指向開頭
w 只寫方式打開 文件指針指向開頭 清空文件 文件不存在會創建文件
w+ 讀寫方式打開 文件指針指向開頭 清空文件 文件不存在會創建文件
a 寫入追加模式打開 指針指向文件末尾 文件不存在會創建文件
a+ 讀寫追加模式打開 指針指向文件末尾 文件不存在會創建文件
x 創建並以寫入的方式打開 指針指向文件開頭 文件存在報錯 返回false 文件不存在創建文件
x+ 創建並以讀寫的方式打開 指針指向文件開頭 文件存在報錯 返回false 文件不存在創建文件
b 打開二進制文件寫入函數:
fwrite()
fputs()讀取函數:
fread()
fgets()//獲取一行
fgetc()//獲取一個字符關閉文件:
fclose()不需要fopen的打開函數:
file_get_contents()
file_put_contents()其他的讀取函數:
file() //整個文件讀取到一個數組中
readfile() //讀取文件 輸出到緩衝區訪問遠程文件:
開啓allow_url_fopen,HTTP協議連接只能使用讀取,FTP協議可以使用只讀或者只寫目錄相關的操作函數:
- 名稱相關:
basename()
dirname()
pathinfo() 目錄讀取:
opendir()
readdir()
closedir()
rewinddir()目錄刪除:
rmdir() //目錄爲空纔可以刪除目錄創建:
mkdir()文件大小:
filesize()目錄(磁盤)大小:
disk_free_space()
disk_total_sapce()文件拷貝:
copy()刪除文件:
unlink()文件類型:
filetype()重命名文件或者目錄:
rename()文件截取:
ftruncate()文件屬性:
file_exists() //文件是否存在
is_readable() //文件是否可讀
is_writable() //文件是否可寫
is_executable() //文件是否可執行
filectime() //文件修改時間 文件索引節點(時間 檔名 使用者 羣組等)改變時間
fileatime() //文件訪問時間
filemtime() //文件修改時間 文件內容修改時間文件鎖:
flock()文件指針:
ftell()
fseek()
rewind()
注意:刪除時候 要過濾 . ..掉 防止遞歸向上刪除
- 名稱相關:
不斷在文件test.txt頭部寫入一行代碼“hello world”,要求代碼完整
//打開文件
$dir = './test.txt';
$handle = fopen($dir,'r');
//文件內容讀取出來
$content = fread($handle,filesize($dir));
//寫好的字符串寫到文件
$content = "Hello,world!!!".PHP_EOL.$content;
fclose($handle);
$handle =fopen($dir,'w');
fwrite($handle,$content);
fclose($handle);
通過PHP函數的方式對目錄進行遍歷
$dir = './demo';
//打開目錄
//讀取目錄文件
//判斷如果文件類型是目錄 繼續打開目錄
//讀取子目錄 的文件
//如果文件類型是文件 輸出文件名稱
//關閉目錄
function loopDir($dir){
$handle = opendir($dir);
$t = fopen('demo.txt','a');//用追加寫入模式打開一個文件 把得到的目錄寫入進去
//目錄指針讀取完畢 用這個不全等判斷 防止有目錄爲0跳出循環體
while(false !==($file=readdir($handle))){
if($file !='.' && $file != '..'){
echo $file.PHP_EOL;
fwrite($t,$file.PHP_EOL);
if(filetype($dir.'/'.$file)=='dir'){
fwrite($t,"...".PHP_EOL);
loopDir($dir.'/'.$file);
}
}
}
fclose($t);
}
loopDir('./demo');