文件以及目錄處理集錦

· 文件操作

  1. 讀取/寫入文件操作:
    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');
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章