Du bist nicht angemeldet (anmelden)
Seite 1
[PHP Problem] Datei nach String durchsuchen
Moin,
ich möchte eine externe (in diesem Fall xml-)Datei via php auf einen bestimmten String durchsuchen.
Der gesuchte Abschnitt befindet sich zwischen <string></string> Tags. Das Skript soll aber nicht nur den gesuchten String ausgeben, sondern alles was sich zwischen den <string>-Tags befindet.
Bespiel:
<string>Hallo, ich heiße Otto.</string>
Wenn ich nun nach „Otto“ suche, soll php mir „Hallo, ich heiße Otto.“ zurückgeben.
Wie mache ich das?
Gruß
ich möchte eine externe (in diesem Fall xml-)Datei via php auf einen bestimmten String durchsuchen.
Der gesuchte Abschnitt befindet sich zwischen <string></string> Tags. Das Skript soll aber nicht nur den gesuchten String ausgeben, sondern alles was sich zwischen den <string>-Tags befindet.
Bespiel:
<string>Hallo, ich heiße Otto.</string>
Wenn ich nun nach „Otto“ suche, soll php mir „Hallo, ich heiße Otto.“ zurückgeben.
Wie mache ich das?
Gruß
Du kannst dir für jeden Suchstring (z.B. Otto) einen passenden Regex-String bauen:
e: Ach so, dabei natürlich drauf achten, Regex-Steuerzeichen im Suchstring zu maskieren.
(?:<string>)(.*?Otto.*?)(?:<\/string>)
e: Ach so, dabei natürlich drauf achten, Regex-Steuerzeichen im Suchstring zu maskieren.
Editiert: 22.09.09, 19:42 Uhr
Und wie such ich nach diesem String? (Sorry, hab von php nicht so viel Ahnung)edit: Hab jetzt selber noch ein wenig rumprobiert. Ist zwar nicht sehr sauber, aber funktioniert:
$suche = "Otto";$filename = 'namen.txt';$f = file_get_contents($filename);$pos = strpos($f, $suche);if ($pos === false) {echo "Der String '$suche' wurde nicht gefunden";} else {$start = $pos - 150;$longstr = substr($f, $start, 300);$explode = explode("<string>", $longstr);$output = explode("</string>", $explode[1]);}
