您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關php如何實現有規律大文件的讀取與寫入功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
第一條.file()函數的效率問題.
file()函數的效率很底下 如果是有規律的文件.比如每行一條相應數據.那么盡量不要是用file()函數
可以使用file_get_contents()然后用explode切割.這樣效率會快三分之一
舉個例子:
文件樣式如下:
11111\n
22222\n
33333\n
44444\n
55555\n
.....\n
nnnnnnnnnnn\n
如果用file($file)讀入的話.耗時很長.
可以用如下方法explode("\n",file_get_contents($file));效率會快很多.
第二條,數組的遍歷方式.
數據已經被讀入數組了.下面就是遍歷了.
我所需要的是確定數組中有無一個值的存在,比如說44444是否在數組中.首先想到的是in_array()
不過實驗了下發現效率很低下.于是參考別人的代碼想到一個辦法.把數組翻轉過來.變成所有值都為1.原來的值變成了索引.那么只要我在if里寫($arr[索引]==1)去判斷.果然效率高出很多.
在數組的遍歷過程中.如果數組個頭非常大,并且數組中的數據并不是全能用到的話,最好把用來遍歷的數組抽出來.這樣會提高很多效率.
第三條,數組的存儲.
把計算過后的數據保存起來.存在一個文件中.考慮了三種方法.一種是直接寫成php文件.一種是serialize,一種是json串.
第一種方式
直接寫入文件<?php 連接var_export($var)連接";"連接?>保存成PHP
需要的時候直接require進來.
第二種方式.把變量serialize然后file_put_contents()進入文件.使用的時候unserialize就ok.
第三種方式和第二種類似.只不過寫成了json串.
經過測試.發現第二種效率最高.第三種其次.和第二種效率不相上下.第一種最慢.和我預想的差距很大.真是大跌眼鏡.
關于“php如何實現有規律大文件的讀取與寫入功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。