av手机免费在线观看,国产女人在线视频,国产xxxx免费,捆绑调教一二三区,97影院最新理论片,色之久久综合,国产精品日韩欧美一区二区三区

php語言

用PHP讀取文件的正確方法

時間:2025-04-07 03:20:49 php語言 我要投稿
  • 相關(guān)推薦

用PHP讀取文件的正確方法

  處理諸如 PHP 之類的現(xiàn)代編程語言的樂趣之一就是有大量的選項可用。PHP 可以輕松地贏得 Perl 的座右銘“There‘s more than one way to do it”(并非只有一種方法可做這件事),尤其是在文件處理上。但是在這么多可用的選項中,哪一種是完成作業(yè)的最佳工具?當(dāng)然,實際答案取決于解析文件的目標,因此值得花時間探究所有選項。以下是小編為大家搜索整理的用PHP讀取文件的正確方法,希望能給大家?guī)韼椭?更多精彩內(nèi)容請及時關(guān)注我們應(yīng)屆畢業(yè)生考試網(wǎng)!

  傳統(tǒng)的 fopen 方法

  fopen 方法可能是以前的 C 和 C++ 程序員最熟悉的,因為如果您使用過這些語言,那么它們或多或少都是您已掌握多年的工具。對于這些方法中的任何一種,通過使用 fopen(用于讀取數(shù)據(jù)的函數(shù))的標準方法打開文件,然后使用 fclose 關(guān)閉文件,如清單 1 所示。

  清單1:用fgets打開并讀取文件

  $file_handle = fopen("myfile", "r");

  while (!feof($file_handle)) {

  $line = fgets($file_handle);

  echo $line;

  }

  fclose($file_handle);

  雖然大多數(shù)具有多年編程經(jīng)驗的程序員都熟悉這些函數(shù),但是讓我對這些函數(shù)進行分解。有效地執(zhí)行以下步驟:

  1、打開文件。$file_handle 存儲了一個對文件本身的引用。

  2、檢查您是否已到達文件的末尾。

  3、繼續(xù)讀取文件,直至到達文件末尾,邊讀取邊打印每行。

  4、關(guān)閉文件。

  記住這些步驟,我將回顧在這里使用的每個文件函數(shù)。

  fopen

  fopen 函數(shù)將創(chuàng)建與文件的連接。我之所以說“創(chuàng)建連接”,是因為除了打開文件之外,fopen 還可以打開一個 URL:

  $fh = fopen("http://127.0.0.1/", "r");

  這行代碼將創(chuàng)建一個與以上頁面的連接,并允許您開始像讀取一個本地文件一樣讀取它。

  注: fopen 中使用的 “r” 將指示文件以只讀方式打開。由于將數(shù)據(jù)寫入文件不在本文的討論范圍內(nèi),因此我將不列出所有其他選項。但是,如果是從二進制文件讀取以獲得跨平臺兼容性,則應(yīng)當(dāng)將 “r” 更改為 “rb”。稍后您將看到這樣的示例。

  feof

  feof 命令將檢測您是否已經(jīng)讀到文件的末尾并返回 True 或 False。清單 1 中的循環(huán)將繼續(xù)執(zhí)行,直至您達到文件“myfile”的末尾。注:如果讀取的是 URL 并且套接字由于不再有任何數(shù)據(jù)可以讀取而超時,則 feof 也將返回 False。

  fclose

  向前跳至清單 1 的末尾,fclose 將實現(xiàn)與 fopen 相反的功能:它將關(guān)閉指向文件或 URL 的連接。執(zhí)行此函數(shù)后,您將不再能夠從文件或套接字中讀取任何信息。

  fgets

  在清單 1 中回跳幾行,您就到達了文件處理的核心:實際讀取文件。fgets 函數(shù)是處理第一個示例的首選武器。它將從文件中提取一行數(shù)據(jù)并將其作為字符串返回。在那之后,您可以打印或者以別的方式處理數(shù)據(jù)。清單 1 中的示例將精細地打印整個文件。

  如果決定限制處理數(shù)據(jù)塊的大小,您可以將一個參數(shù)添加到 fgets 中限制最大行長度。例如,使用以下代碼將行長度限制為 80 個字符:

  $string = fgets($file_handle, 81);

  回想 C 中的““0”字符串末尾終止符,將長度設(shè)為比實際所需值大一的數(shù)字。因而,如果需要 80 個字符,則以上示例使用 81。應(yīng)養(yǎng)成以下習(xí)慣:只要對此函數(shù)使用行限制,就添加該額外字符。

  fread

  fgets 函數(shù)是多個文件讀取函數(shù)中惟一一個可用的。它是一個更常用的函數(shù),因為逐行解析通常會有意義。事實上,幾個其他函數(shù)也可以提供類似功能。但是,您并非總是需要逐行解析。

  這時就需要使用 fread。fread 函數(shù)與 fgets 的處理目標略有不同:它趨于從二進制文件(即,并非主要包含人類可閱讀的文本的文件)中讀取信息。由于“行”的概念與二進制文件無關(guān)(邏輯數(shù)據(jù)結(jié)構(gòu)通常都不是由新行終止),因此您必須指定需要讀入的字節(jié)數(shù)。

  $fh = fopen("myfile", "rb");

  $data = fread($file_handle, 4096);

  以上代碼將讀取 4,096 字節(jié) (4 KB) 的數(shù)據(jù)。注:不管指定多少字節(jié),fread 都不會讀取超過 8,192 個字節(jié) (8 KB)。

  用PHP讀取文件的正確方法(1)

【用PHP讀取文件的正確方法】相關(guān)文章:

PHP讀取文件的正確方法09-02

php讀取文件內(nèi)容的方法09-14

PHP中讀取大文件的方法11-10

PHP中讀取大文件實現(xiàn)方法08-26

PHP中讀取大文件實現(xiàn)方法詳解09-23

用PHP讀取flv文件的播放時間長度11-12

PHP文件寫入和讀取教程08-06

php使用file-get-contents讀取大文件的方法07-12

PHP快速讀取大文件的例子10-24