首頁  >  文章  >  後端開發  >  php檔案處理函數的詳細介紹(附範例)

php檔案處理函數的詳細介紹(附範例)

不言
不言轉載
2019-01-10 11:31:332345瀏覽

這篇文章帶給大家的內容是關於php檔案處理函數的詳細介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

PHP可以很方便的對目錄、檔案進行操作,包括建立、讀取、修改、刪除等。

mkdir

bool mkdir ( string $pathname [, int $mode = 0777 [, bool $recursive = false [, resource $context ]]] )
嘗試新建一個由pathname 指定的目錄。

mkdir 可以建立 pathname 指定目錄,預設 mode 是0777,在 windows 下被忽略,失敗回傳 false。

<?php
mkdir(&#39;./test&#39;);// 在当前目录创建 test 目录

rmdir

bool rmdir ( string $dirname [, resource $context ] )
嘗試刪除 dirname 所指定的目錄。該目錄必須是空的,而且要有對應的權限。失敗時會產生一個 E_WARNING 等級的錯誤。

如上所示,rmdir 可以刪除目錄,需要注意的是該目錄必須為空,而且要有權限,失敗回傳 false。範例

<?php
rmdir(&#39;./test&#39;);// 删除当前目录下的 test 目录。

file_put_contents

int file_put_contents ( string $filename , mixed $data [, int ##$flagsed $data [, int ##$flags》 [, resource $context ]] )
與依序呼叫 fopen(),fwrite() 以及 fclose() 功能一樣。

file_put_contents 將 data 寫入 filename 檔案中,如果沒有此文件,則創建,失敗返回 false,成功返回寫入位元組數。範例

<?php
file_put_contents(&#39;./test.txt&#39;, date(&#39;Y-m-d H:i:s&#39;));// 在当前目录创建 test.txt,并且写入数据
file_put_contents(&#39;./test.txt&#39;, date(&#39;Y-m-d H:i:s&#39;), FILE_APPEND);// 在 test.txt 文件中,追加数据

file_get_contents

string file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] )
和 file() 一樣,只除了 file_get_contents() 把檔案讀入一個字串。將在參數 offset 所指定的位置開始讀取長度為 maxlen 的內容。

file_get_cntents 讀取 filename 中的內容,回傳字串,失敗回傳 false。範例

<?php
echo file_get_contents(&#39;./test.txt&#39;);// 输出当前目录下 test.txt 的内容

unlink

bool unlink ( string $filename [, resource $context ] )
刪除 filename。和 Unix C 的 unlink() 函數相似。發生錯誤時會產生一個 E_WARNING 等級的錯誤。

unlink 刪除 filename 文件,同樣需要注意權限。範例

<?php
unlink(&#39;./test.txt&#39;);// 删除当前目录的 test.txt

rename

bool rename ( string $oldname , string $newname [, resource $context ] )
嘗試將 oldname 重新命名為 newname。

rename 不僅可以文件重命名,還可以移動文件,失敗回傳 false。範例

<?php
rename(&#39;./test.txt&#39;, &#39;./test1.txt&#39;);// 当前目录下的 test.txt 重命名为 test1.txt
rename(&#39;./test1.txt&#39;, &#39;./test/test.txt&#39;);// 将当前目录下的 test1.txt, 移动到 test下

copy

bool copy ( string $source , string $dest [, resource $context ] )
將檔案從 source 拷貝到 dest。

如上所示,失敗傳回 false。範例

<?php
copy(&#39;./test/test.txt&#39;, &#39;./test1.txt&#39;);// test 目录下的test.txt, 拷贝到当前目录

實例及註解

下面是幾個實例,工作或面試中會用到。

<?php

/**
 * 遍历目录下所有文件
 * @param $path 
 */
function getAllFiles($path)
{
    if (!is_dir($path)) {
        exit(&#39;错误&#39;);
    }
    echo &#39;<ul>';
    foreach (scandir($path) as $line) {
        if ($line == '.' || $line == '..') {
            continue;
        }

        if (is_dir($path . '/' . $line)) {
            getAllFiles($path . '/' . $line);
        }
        echo '<li>' . $path . '/' . $line . '</li>';
    }
    echo '</ul>';
}

/**
 * 删除目录下所有文件
 * @param $path
 */
function delAllFile($path)
{
    if (!is_dir($path)) {
        exit('目录不存在');
    }

    $dir = opendir($path);
    while ($filename = readdir($dir)) {
        if ($filename != "." && $filename != "..") {
            $file = $path . "/" . $filename;
            if (is_dir($file)) {
                delAllFile($file);
            } else {
                unlink($file);
            }
        }
    }
    closedir($dir);
    rmdir($path);
}

註解

  • mkdir de 中的recursive 參數,可以巢狀建立目錄;

  • file_put_contents 中的flags 參數,可以進行組合,詳情參考連結;

  • file_put_contents 也可能傳回等同於false 的非布林值,使用===判斷;

  • file_get_contents 也可以開啟URL,取得網頁內容;

  • file_get_contents 如果要開啟有特殊字元的URL (比如說有空格),就需要使用 urlencode( ) 進行URL 編碼;

  • copy 如果目標檔案已存在,將會被覆寫;

以上是php檔案處理函數的詳細介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:segmentfault.com。如有侵權,請聯絡admin@php.cn刪除