2010-06-14 4 views
0

Hé les gars. Je cours un script qui cherche un terme spécifique dans un fichier pdf. Eh bien, en fait, je lis le fichier pdf en tant que fichier txt et chercher le terme là-bas. Le script traite plus de 20k fichiers. Mais, de manière inattendue, le script se brise après avoir atteint un fichier de plus de 50mb. Ça s'arrête.Script recherchant la chaîne dans les sauts de fichiers

Quelle pourrait être la raison? Voici un extrait du script:

// 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{ 
     ..... 
     } 
     ... 
     ... 

Quel pourrait être le problème?

Répondre

0

Hé les gars, je l'ai compris. Il n'y avait pas assez de mémoire pour PHP. Dans le journal des erreurs, il y a une erreur fatale que le script a manqué de mémoire.

+0

Une méthode plus simple serait de rechercher le fichier dans des blocs plus petits - il y aura toujours un fichier plus grand que la mémoire disponible. – Piskvor