首頁 > 後端開發 > php教程 > PHP讀取文件

PHP讀取文件

WBOY
發布: 2024-08-29 13:02:30
原創
356 人瀏覽過

PHP readfile 基本上是 PHP 庫中的內建函數,用於讀取檔案然後將其寫入輸出緩衝區。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法:

readfile ( string $file_name [, boolean $path = FALSE [, resource $context ]] ) : int
登入後複製

語法中使用的參數:

  • 檔案名稱:這是必填字段,我們在其中提供要讀取的檔案的名稱。
  • 路徑:這是一個可選參數,是一個布林值,如果需要在提供的路徑中搜尋文件,則可以將其設為 true 或 false。
  • context: 這也是一個可選字段,用於指定文件句柄的上下文。基本上,上下文是能夠更改該流的行為的物件的集合。如果成功則傳回從檔案讀取的位元組數,如果讀取失敗則傳回 false。

PHP 讀取檔案的方法

除了 readfile() 函數之外,以下是一些可用來對檔案執行各種操作的其他函數。

1.文件()

此函數也用於讀取文件,它將完整的文件讀取到陣列中。

文法:

file ( string $file_name [, int $flag = 0 [, resource $context ]] ) : array
登入後複製

其中file_name是要讀取的檔案的路徑。標誌是可選字段,可以從以下常數中選擇:

  • FILE_USE_INCLUDE_PATH: 在給定路徑中搜尋對應的檔案。
  • FILE_IGNORE_NEW_LINES: 在每個陣列元素的最後省略一新行。
  • FILE_SKIP_EMPTY_LINES: 跳過空白行。

成功時傳回數組中存在的文件,失敗時傳回 false。

2. fopen()

此函數可用於開啟文件和 URL。

fopen ( string $file_name , string $mode [, bool $use_include_path = FALSE [, resource $context ]] ) : resource
登入後複製
  • 如果 file_name 是 URL,則 PHP 會在協定處理程序(也稱為包裝器)中搜尋它。 PHP 將發出通知來幫助追蹤腳本中可能存在的問題,然後繼續將其視為正常的常規 file_name。
  • 假設如果 file_name 是本機文件,則 PHP 嘗試在該文件上開啟相同的流。僅當授予其存取所需的權限時,PHP 才能存取該檔案。
  • 假設給定的 file_name 是一個已註冊的協議,並且如果協議已註冊為網路 URL,則第一個 PHP 確保啟用了allow_url_fopen。如果停用,它將發出警告並失敗。

模式:此參數提到了需要授予流的存取權限類型。以下是一些重要的模式:

  • r – 僅讀取模式
  • r+ – 只能讀寫
  • w – 僅寫入模式

如果成功則傳回檔案指標資源,如果失敗則傳回 false。

3. fread()

此函數用於二進位安全檔案讀取。

文法:

fread ( resource $handle , int $length ) : string
登入後複製

句柄用來引用檔案指標。

檔案將被讀取,直到達到以下條件之一:長度(以位元組為單位)必須已讀取、達到 EOF、發生套接字逾時。 fgets()、fscanf()、ftell()、fwrite()、fopen()、fsockopen() 是 PHP 中用於檔案操作的其他一些函數。

PHP 讀取檔案範例

下面給的是 PHP 讀取檔的範例:

範例#1

代碼:

<?php
// it is writing content of file to output
// buffer used in readfile() function
echo readfile("file.txt");
?>
登入後複製

輸出:

PHP讀取文件

這顯示了讀取本機路徑中存在的檔案的基本範例。確保建立了 readfile() 函數參數中指定的檔案名,並且要讀取的內容存在於檔案內。當使用 readfile() 函數時,它會讀取檔案的內容並在輸出中列印。

範例#2

代碼:

<?php
/ file contents written on output
// buffer by readfile() function
$file = @readfile("file.txt");
if (!$file)
{
print "File could not be opened";
}
?>
登入後複製

輸出:

PHP讀取文件

之前的輸出是一個沒有任何條件的簡單範例。在此範例中,讓我們看看如何使用某些條件讀取並顯示檔案的輸出。我們使用 if 語句來列印假設檔案不存在。

範例 #3

代碼:

<?php
$file_name = "file.txt";
$fh = fopen($file_name, 'r');
$data = fread($fh, filesize($file_name));
fclose($fh);
echo $data;
?>
登入後複製

輸出:

PHP讀取文件

In this example, we are combining the use of multiple file read functions. As in all the above examples, first, we are giving the file name which needs to be read from. Then the mode of operation, ‘r’ is given to them indicating it can only be read. filesize() function takes the filename and returns the size of the file along with its data and assigns it to $data variable. By using fclose() function we are closing that file. Finally, the data is printed as output.

Example #4

Code:

<?php
$file_name = "file.txt";
$file = fopen( $file_name , "r" );
if( $file == false ) {
echo ( "Error in opening file" );
exit();
}
$size = filesize( $file_name );
$filetext = fread( $file, $size);
fclose( $file );
echo ( "The size of input file in bytes is : $size\n" );
echo ("Printing details of file:\n");
echo ( $filetext );
?>
登入後複製

Output:

PHP讀取文件

Before running the code, make sure that the file to be read file.txt is created in the local file path. In this example first, we are declaring the file name to be read and opening that with the function fopen(). Suppose the file does not exist, using if condition we are throwing an error message. Finally, we are printing the file size and the content present in the input file.

Conclusion

As seen from all the above examples, readfile() is one of the main functions of PHP used for reading the file name specified in this function. Apart from readfile() we have covered a few other file operations which perform similar actions such as fopen, file, fread, fgets, fgetss, ftell, etc. A combination of all of these are basically used in accessing and performing operations on the input file.

以上是PHP讀取文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板