線上服務咨詢
Article/文章
記錄成長點滴 分享您我感悟
使用PHP
發表時間:2019-07-30 15:37:03
文章來源:沈陽軟件開發
標簽:網站建設 小程序開發 小程序制作 微信小程序開發 公眾號開發 微信公眾號開發 網頁設計 網站優化 網站排名 網站設計 微信小程序設計 小程序定制 微信小程序定制
瀏覽次數:0
讀取文件的正確方法 Roger McCoy是一名開發人員,他使用各種編程語言,包括C,Java,JavaScript,Perl,PHP和Microsoft Visual Basic。他在PHP應用程序開發方面有五年的經驗,但他可能更熟悉呼叫中心行業的技術人員。
讓我們算一算有多少種方法
處理像PHP這樣的現代編程語言的樂趣之一就是有很多選擇。 PHP可以很容易地贏得Perl的座右銘“有多種方法可以做到”(不僅僅是一種方法),特別是在文件處理方面。但是,許多可用選項中的哪一個是完成工作的最佳工具?當然,實際答案取決于解析文件的目標,因此值得花時間探索所有選項。
傳統的 fopen 方法
fopen方法可能是前C和C ++程序員最熟悉的方法,因為如果你使用它們,它們或多或少是你多年來掌握的工具。對于這些方法中的任何一種,使用fopen(讀取數據的標準方法)打開文件,然后使用fclose關閉文件,如清單1所示。
清單1:用fgets打開并讀取文件
$ file_handle=fopen('myfile','r'); while(!feof($ file_handle)){$ line=fgets($ file_handle); echo $ line;} fclose($ file_handle);
雖然大多數具有多年編程經驗的程序員都熟悉這些功能,但讓我分解一下。有效執行以下步驟:
1.打開文件。 $ file_handle存儲對文件本身的引用。 2.檢查是否已到達文件末尾。 3.繼續讀取文件,直到它到達文件末尾,并在讀取時打印每一行。 4.關閉文件。
考慮到這些步驟,我將回顧這里使用的每個文件函數。
fopen
fopen函數將創建與文件的連接。我說“創建連接”的原因是因為除了打開文件外,fopen還可以打開一個URL:
$ fh=fopen('http://127.0.0.1/','r');
這行代碼將創建與上一頁的連接,并允許您開始讀取它,就像它是本地文件一樣。
注意:fopen中使用的“r”表示文件以只讀方式打開。由于將數據寫入文件超出了本文的范圍,因此我不會列出所有其他選項。但是,如果要從二進制文件中讀取跨平臺兼容性,則應將“r”更改為“rb”。稍后您將看到一個示例。
feof
feof命令將檢測您是否已讀取文件末尾并返回True或False。清單1中的循環將繼續,直到到達文件“myfile”的末尾。注意:如果您讀取URL并且套接字超時,因為無法讀取更多數據,則feof也將返回False。
fclose
跳到清單1的末尾,fclose將實現與fopen相反的操作:它將關閉與文件或URL的連接。執行此功能后,您將無法再從文件或套接字讀取任何信息。
fgets
回到清單1中的幾行,您將到達文件處理的核心:實際讀取文件。 fgets函數是處理第一個例子的首選武器。它從文件中獲取一行數據并將其作為字符串返回。之后,您可以打印或以其他方式處理數據。清單1中的示例將詳細打印整個文件。
如果決定限制處理塊的大小,可以向fgets添加參數以限制最大行長度。例如,使用以下代碼將行長度限制為80個字符:
$ string=fgets($ file_handle,81);
回想一下C中“\ 0”字符串的結尾,并將長度設置為大于實際值的數字1。因此,如果需要80個字符,則上面的示例使用81.您應該養成以下習慣:只要對此函數使用行限制,請添加此額外字符。
fread
fgets函數是唯一可用于多個文件讀取函數的函數。這是一個更常見的功能,因為逐行解析通常是有意義的。實際上,其他幾個功能可以提供類似的功能。但是,您并不總是需要逐行解析。
然后你需要使用fread。 fread函數與fgets的處理目標略有不同:它傾向于從二進制文件(即主要不是人類可讀文本的文件)中讀取信息。由于“行”的概念獨立于二進制文件(邏輯數據結構通常不以新行終止),因此必須指定需要讀取的字節數。
網站建設,小程序開發,小程序制作,微信小程序開發,公眾號開發,微信公眾號開發,網頁設計,網站優化,網站排名,網站設計,微信小程序設計,小程序定制,微信小程序定制