PHP-Code:
<?php
$filename = '/Pfad/zu/deiner/Datei.txt';
$search = array(
0 => '141',
1 => '000',
2 => '104',
3 => '011',
);
$hits = array();
if (!file_exists($filename) || !is_readable($filename)) {
die('Datei nicht gefunden oder nicht lesbar');
}
$fh = fopen($filename, 'r');
$count = -1;
while (($line = fgets($fh)) !== false) {
$count++;
$line = explode(';', trim($line));
foreach ($search as $i => $v) {
if (!isset($line[$i]) || $line[$i] !== $v) {
continue 2;
}
}
$hits[$count] = $line;
echo 'Gefunden in Zeile '. $count ."<br />\n";
}
fclose($fh);
// var_dump($hits);
Damit findest du alle Zeilen (und sammelst sie im Array $hits), die dem Muster $search entsprechen.
Hier wird nicht die ganze Datei auf einmal gelesen.
Vorteil: Braucht weniger Speicher (Stichwort memory_limit).
Nachteil: Schreiben kannst du so nicht. Dann entweder doch mit file() oder eben mit 'r+' öffnen und in der Schleife gleich rausschreiben.