一、創(chuàng)建和打開文件

1. 使用"fopen()"函數(shù)創(chuàng)建并打開文件

"fopen()"函數(shù)用于創(chuàng)建并打開一個文件。它接受兩個參數(shù):第一個參數(shù)是文件名,第二個參數(shù)是文件模式。文件模式可以是以下值之一:

? "'r'":只讀模式(默認(rèn))

? "'w'":寫入模式,如果文件不存在則創(chuàng)建,如果文件存在則截斷(清空)原有內(nèi)容

? "'a'":追加模式,如果文件不存在則創(chuàng)建,如果文件存在則在原有內(nèi)容后追加

? "'x'":獨(dú)占創(chuàng)建模式,如果文件不存在則創(chuàng)建,如果文件存在則報錯

? "'b'":二進(jìn)制模式打開文件

? "'t'":文本模式打開文件(默認(rèn))

示例代碼:

$filename = "test.txt";
$file = fopen($filename, "w");
if ($file === false) {
    echo "Error opening file!";
} else {
    echo "File opened successfully!";
    fclose($file);
}

2. 使用"fread()"和"fwrite()"函數(shù)讀取和寫入文件

"fread()"函數(shù)用于從文件中讀取指定數(shù)量的字節(jié),而"fwrite()"函數(shù)用于將數(shù)據(jù)寫入文件。這兩個函數(shù)都接受一個參數(shù):要讀取或?qū)懭氲淖止?jié)數(shù)。

示例代碼:

$filename = "test.txt";
$file = fopen($filename, "w+"); // 打開文件以便讀寫
if ($file === false) {
    echo "Error opening file!";
} else {
    fwrite($file, "Hello, World!"); // 寫入數(shù)據(jù)到文件
    fseek($file, 0); // 將文件指針移回文件開頭
    $data = fread($file, 10); // 從文件中讀取10個字節(jié)的數(shù)據(jù)
    echo "Data read from file: " . $data; // 輸出讀取到的數(shù)據(jù)
    fclose($file); // 關(guān)閉文件
}

二、關(guān)閉文件

在使用完文件后,我們需要使用"fclose()"函數(shù)關(guān)閉它。這將釋放系統(tǒng)資源并確保數(shù)據(jù)被正確寫入磁盤。如果不關(guān)閉文件,可能會導(dǎo)致數(shù)據(jù)丟失或系統(tǒng)資源耗盡。

示例代碼:

$filename = "test.txt";
$file = fopen($filename, "w");
if ($file === false) {
    echo "Error opening file!";
} else {
    fwrite($file, "Hello, World!"); // 寫入數(shù)據(jù)到文件
    fclose($file); // 關(guān)閉文件
}
echo "File closed successfully!"; // 輸出關(guān)閉成功信息

三、刪除文件和目錄

1. 使用"unlink()"函數(shù)刪除單個文件或目錄(僅適用于UNIX系統(tǒng))

"unlink()"函數(shù)用于刪除指定的文件或目錄。它接受一個參數(shù):要刪除的文件或目錄的路徑。如果操作成功,函數(shù)返回true;否則返回false。注意:"unlink()"無法刪除目錄,只能刪除文件。如果要刪除目錄及其內(nèi)容,可以使用"rmdir()"或"delete_files_in_directory()"函數(shù)(請參閱下一節(jié))。

示例代碼:

$filename = "test.txt";
if (unlink($filename)) {
    echo "File deleted successfully!"; // 輸出刪除成功信息
} else {
    echo "Error deleting file!"; // 輸出刪除失敗信息(可能是因?yàn)闄?quán)限問題)
}

2. 使用"rmdir()"函數(shù)刪除空目錄(僅適用于UNIX系統(tǒng))

"rmdir()"函數(shù)用于刪除指定的空目錄。它接受一個參數(shù):要刪除的目錄的路徑。如果操作成功,函數(shù)返回true;否則返回false。請注意,此函數(shù)不能刪除包含子目錄或文件的目錄。要刪除包含子目錄或文件的目錄,可以使用遞歸函數(shù)或遍歷目錄結(jié)構(gòu)并逐個刪除。以下是一個使用遞歸函數(shù)刪除目錄及其內(nèi)容的示例:

function delete_directory($path)
{
    // 將路徑規(guī)范化為絕對路徑
    if (is_dir($path)) {
        $items = scandir($path);
        foreach ($items as $item) {
            if ($item !== '.' && $item !== '..') {
                delete_directory($path . '/' . $item);
            }
        }
        rmdir($path);
    } else {
        unlink($path);
    }
}

delete_directory('/path/to/your/directory'); //將路徑替換為要刪除的目錄的實(shí)際路徑
}