2011-10-03 108 views
1

我是PHP新手,我需要分析數千條記錄。看來每條記錄的前兩行和最後一行都需要刪除。是否有某種類型的行數函數可用於將每行放入數組中,然後刪除前兩行,並像最大計數一樣獲取最後一行,然後刪除它?我很茫然,感謝任何幫助。謝謝。從文件中刪除第一行和最後一行

+0

我們是在談論數據庫(MySQL/PostgreSQL /等)記錄在這裏,或者確實是文件? –

回答

2
<?php 

$file = file("file.txt"); 

array_shift($file); // Removing the first line 
array_shift($file); // Removing the second line 

array_pop($file); // Removing last line 

// Creating the new file: 

$fp = fopen("newFile.txt", "a+"); 

for ($x=0; $x < sizeof($file); $x++) 
{ 
fputs($fp, $file[$x]. "\n"); 
} 

fclose($fp); 

?> 
+0

如果我們正在談論一個多千兆字節的文件?這是一大堆數據潛入數組中。 –

+0

如果你正在處理多千兆字節的文件,我認爲bash腳本語言比PHP更快。正如我們的朋友「Marc B」在上面回答的那樣。 – b101101011011011

3

假設你在Unix/Linux主機上,最好使用一些簡單的shell工具爲你做這件事。具體爲wc -l,headtail

for i in *.txt; do 
    lines=`wc -l $i` 
    tail $(($lines - 2)) $i | head $(($lines - 1)) > /fixed/files/$i 
done 

未經測試,YMMV等等,但應該有想法。

+0

+1在使用更大的腳本語言之前,shell工具始終處於最佳狀態。 –

相關問題