當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


PHP file_get_contents()和file_put_contents()的區別用法及代碼示例


file_get_contents() file_get_contents()函數用於將文件讀入字符串。它使用服務器支持的內存映射技術,從而通過使其成為讀取文件內容的首選方式來提高性能。要讀取的文件的路徑作為參數發送給函數,成功時返回讀取的數據,失敗時返回 FALSE。

用法:

file_get_contents($path, $include_path, 
        $context, $start, $max_length)

參數: file_get_contents()PHP 中的函數接受 1 個強製參數和 4 個可選參數。

  • $path:它指定要檢查的文件或目錄的路徑。
  • $include_path: 它是一個可選參數,如果設置為 1,也會在 include_path(在 php.ini 中)的文件中搜索文件。
  • $context: 它是一個可選參數,用於指定自定義上下文。
  • $start:它是一個可選參數,用於指定文件中讀取的起點。
  • $max_length: 它是一個可選參數,用於指定要讀取的字節數。

返回值:成功時返回讀取數據,失敗時返回 FALSE。

錯誤和異常:如果要打開帶有特殊字符(例如空格)的文件,需要先使用PHP對其進行編碼urlencode().
file_get_contents()函數返回布爾值 FALSE,但也可能返回計算結果為 FALSE 的非布爾值。
如果找不到文件名、$maxlength 小於零或者在流中查找指定偏移量失敗,則會生成 E_WARNING 級別錯誤。

例子:此示例說明將文件轉換為字符串。我們將使用file_get_contents()函數。我們將指定 URL 鏈接作為重定向到給定站點的參數。

PHP


<?php
    // Reading 36 bytes starting from
    // the 0th character from gfg.txt
    $text = file_get_contents('gfg.txt', false, NULL, 0, 36);
    echo $text;
?>

gfg.txt:以下是所有示例中使用的該文件的內容。

A computer science portal for geeks

輸出:

A computer science portal for geeks

file_put_contents() file_put_contents()PHP 中的函數是一個內置函數,用於將字符串寫入文件。這file_put_contents()函數檢查用戶想要寫入的文件,如果該文件不存在,則會創建一個新文件。

用戶想要寫入的文件的路徑和必須寫入的數據作為參數發送給函數,成功時返回寫入文件的字節數,失敗時返回 FALSE。

用法:

file_put_contents($file, $data, $mode, $context)

參數: 這file_put_contents()PHP 中的函數接受兩個強製參數和兩個可選參數。

  • $file: 它指定要寫入的文件。
  • $data: 它指定必須寫入文件的數據。它可以是字符串、數組或數據流。
  • $context:它是一個可選參數,用於指定自定義上下文或流的行為。
  • $mode: 它是一個可選參數,用於指定如何將數據寫入文件,例如FILE_USE_INCLUDE_PATH、FILE_APPEND、LOCK_EX。

返回值:成功時返回寫入文件的字節數,失敗時返回 FALSE。

錯誤和異常:file_put_contents() 函數返回布爾值 FALSE,但也可能返回計算結果為 FALSE 的非布爾值。如果提供的目錄無效,此函數將無法寫入內容。

例子:

Input : file_put_contents("gfg.txt", "A computer 
                    science portal for geeks!");
Output : 36

Input : $file_pointer = 'gfg.txt';
        $open = file_get_contents($file_pointer);
        $open .= "A computer science portal for geeks!";
        file_put_contents($file_pointer, $open);
Output : 36

示例 1:以下示例程序旨在說明file_put_contents()函數。

PHP


<?php
// Writing content on gfg.txt
echo file_put_contents("gfg.txt", 
    "A computer science portal for geeks!");
?>

輸出:

36

示例 2:

PHP


<?php
$file_pointer = 'gfg.txt';
// Open the file to get existing content
$open = file_get_contents($file_pointer);
// Append a new person to the file
$open .= "A computer science portal for geeks!";
// Write the contents back to the file
file_put_contents($file_pointer, $open);
?>

輸出:

36

file_get_contents() 和 file_put_contents() 函數之間的區別:file_get_contents() 和 file_put_contents() 函數之間的主要區別在於,file_get_contents() 函數將文件讀取為字符串,而file_put_contents() 函數將字符串寫入文件。

讓我們以表格形式看看差異:

file_get_contents() file_put_contents()
1. file_get_contents() 函數將文件讀入字符串。 file_put_contents() 函數將數據寫入文件。
2.

它的語法是-:

file_get_contents(路徑、include_path、上下文、開始、max_length)

它的語法是-:

file_put_contents(文件名、數據、模式、上下文)

3. 其返回值為string否則失敗時返回 false。 它的返回值是成功寫入文件的字節數,否則返回 false。
4. 它是二進製安全的。 它是二進製安全的。
5. PHP 版本 4.3+ 支持 PHP 版本 5.0+ 支持它


相關用法


注:本文由純淨天空篩選整理自佚名大神的英文原創作品 What is the difference between file_get_contents() and file_put_contents() functions in PHP?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。