2010-06-14 16 views
0

嘿傢伙。我正在運行一個腳本,在pdf文件中查找特定的術語。那麼,其實我正在閱讀pdf文件作爲txt文件,並在那裏尋找術語。該腳本處理超過20k個文件。但是,意外的是,腳本在碰到長度超過50mb的文件後就會中斷。它停下來。腳本尋找文件中的字符串

原因是什麼?下面是腳本的摘錄:

// Proceed if file exists 
if(file_exists($sourcePath)){ 
    echo "file exists\n"; 
    if(filesize($sourcePath) > 0){ 
     echo "filesize is greater than 0\n"; 
     $pdfFile = fopen($sourcePath,"rb"); 
     $data = fread($pdfFile, filesize($sourcePath)); 
     fclose($pdfFile); 

     // Search for string 
     if(stripos($data,$searchFor)){ 
      echo "Success. encrypt found\r\n"; 
      fwrite($errorFileHandler,"Success. encrypt found\r\n"); 
     }else{ 
     ..... 
     } 
     ... 
     ... 

可能是什麼問題?

回答

0

嘿,夥計們,我想通了。沒有足夠的PHP內存集。在錯誤日誌中有一個致命錯誤,即腳本內存不足。

+0

更簡潔的方法是以較小的塊搜索文件 - 總是會有比可用內存大的文件。 – Piskvor 2010-06-14 14:31:25

相關問題