PHP-kod:
<?php
$strings = file(".\search_for.txt", FILE_IGNORE_NEW_LINES);
foreach($strings as $key => $searchfor){
$directory = './archive_backup';
$files = array_diff(scandir($directory), array('..','.'));
foreach($files as $file) {
$file = "./archive_backup/" . $file;
$contents = file_get_contents($file);
/*
* kollar om $searchfor finns i $contents
* !== false undviker att strpos missar $searchfor i början på strängen
* strpos med inga träffar returnerar 0, strpos med träff från första tecken returnerar 0
*/
if(strpos($contents, $searchfor) !== false){
// $searchfor finns i $contents och därmed i $file
unset($strings[$key]); // plocka bort värdet från högen(array) - endast de som inte hittas kommer att finnas kvar
break; // hoppa ur foreach($files as $file) // nuvarande $searchfor redan hittad - gå vidare på nästa
}
}
}
echo '<pre>';
print_r($strings); // skriv ut de värden som inte har plockats bort
echo '</pre>';
?>
Något sånt här borde fungera, byggde vidare på din kod. Ska det ske så effektivt som möjligt så bör alla nummer läsas in i en array som du sedan kör array_diff() på mot search_for-numrena. Är det extrema mängder så är array_diff_key() snabbare - kräver dock att du lägger numrena som keys i alla arrays.