PHP - Zeile in txt Datei suchen und anzeigen lassen?

1 Antwort

Du speicherst dir schlicht immer die letzte Zeile mit:

<?php
$lines = file('durchsuchen.txt');
$searchstr = 'Mustermann';
$previousLine = "";
$result = "";
foreach ($lines as $line)
{
   if(strpos($line, $searchstr) !== false){
      $result = $line;
      $previousLine = $result;
   }
}
echo '<pre>';
print_r($previousLine.$result);
echo '</pre>';
?>
Fenya7371 
Fragesteller
 14.03.2020, 15:21

Danke für deine Antwort, ich glaube aber, du hast mich falsch verstanden..

Ich habe in der .txt z.B. folgende Daten stehen:

1. A123 Max

2. 0000 Susi

3. B123 Peter

4. 1111 Hans

5. C123 ..etc..

Ich suche nach 0000 und möchte folgende Ausgabe haben:

0000 Susi / A123 Max

Eventuell hast du dazu ja noch eine Idee für mich :)

Danke & Gruß

0
LeBonyt  14.03.2020, 16:22
@Fenya7371

In wie weit hängen denn die Zeilen Susi und Max zusammen?

0
regex9  14.03.2020, 16:39
@Fenya7371

Die Antwort von Destranix war richtig, der Quellcode aber noch nicht.

<?php
  $lines = file('durchsuchen.txt');
  $searchstr = '0000';
  $previousLine = "";
  $result = "";

  foreach ($lines as $line) {
    if (strpos($line, $searchstr) !== false) {
      $result = $line;
      break;
    }

    $previousLine = $line;
  }

  print "$result / $previousLine";

Diese Lösung setzt soweit aber erst einmal voraus, das es maximal nur einen Fund geben kann.

3
Fenya7371 
Fragesteller
 14.03.2020, 16:54
@regex9

Es geht nun leider aber die Formatierung wie sie in der txt ist, verloren. Hast du da noch einen Tipp?

0
Destranix  14.03.2020, 17:14
@Fenya7371

.txt-Dateien besitzen in der regel keine Formattierung, abgesehen von solcher, welche durch Steuerzeichen entsteht.

2
regex9  14.03.2020, 18:35
@Fenya7371

Setze die pre-Tags um die Ausgabe:

print "<pre>$result / $previousLine</pre>";
0