因此,我正在爲自己做一個小實驗,這是一個用於讀取php錯誤日誌文件(使用SplFileObject)並在瀏覽器上輸出格式的腳本。SplFileObject將指針移至上一行
雖然這將是更多的邏輯來顯示它以相反的順序(最新的錯誤在上面)。 要使用「正常」順序,我只顯示每一行並調用$ file-> next();移動指針,但我周圍做它的其他方式,而且也沒有一個prev()
或previous()
方法,據我所知,我發現的唯一方式是使用seek()
:
for($i = $lines_total - $start_at; $i > $lines_total - $start_at - $lines_to_get; $i--){
$content->seek($i);
$data = $content->current();
if(empty($data)){
continue;
}
}
但是,這是令人難以置信的緩慢(一個16mb文件約7秒)。如果我按照正常的順序來做,它是瞬間的。
有誰知道任何方法?或者我想要做的是瘋狂的? xD我只是一個被迫編碼的設計師,所以我不太熟悉指針和類似的東西。
謝謝,雖然我一直在研究一下,而且有人告訴我用數組來做會不會很好。我通過使用fseek的方式來解決這個問題。無論如何,謝謝你的幫助! :D – aleation 2013-02-21 12:57:48
對於性能'fseek'比迭代器更快..請參閱http://stackoverflow.com/a/13421745/1226894 – Baba 2013-02-21 14:15:31