0

2つのHTMLタグの間にある特定の単語を見つけて、その名前をテキストファイルにコピーするコードを作成しました。

小さなHTMLファイルで動作します。問題は、大きなファイル(22 MB)では機能しないことです(ある時点で実行が停止し、ファイルが作成されません)。

コードをよりスケーラブルにするにはどうすればよいですか?

<?php
$filename = "example.txt";          // file that the code search for names
$names = fopen("names.txt", 'a+');  // new file to copy the names to it
$handle = fopen($filename, "r");    // copy text from file to variable
while(!feof($handle)){              // loop until the end of the file
$line = fgets($handle);           // reading 1 line from file at a time
preg_match(';(?<=from"><span class="profile fn">)(.*)</span></div>;', $line, $matches);
// searching the name between the html tags, if found --> into $matches
$match = $matches[1];                // the name is at cell 1 in array into @match
if(!empty($match))                   //if @match is not empty (some lines empty if
                                     //preg_match didn't find a match (to avoid 
                                     //empty lines in file) 
{                                           
fwrite($names, ($match."\n"));       //write the name into the file "names"
}
$data1 = file("names.txt");          //create new file without duplicate names
file_put_contents('unique.txt', implode(array_unique($data1))); 
}    
fclose($filename);
fclose($names);
fclose('unique.txt');
?>
4

0 に答える 0