Nach Strings suchen?
uepselon
- php
Hallo,
will in einem String z.B. $str = " <a href=site.htm> " nach
dem Dateinamen aller vorkommenden .htm files Suchen.
Wie mach ich das am besten? Ich hab bisher nur Funktionen gefunden
die nach kompletten Strings suchen. Nicht aber etwas das z.B. so aussieht:
replace("href=%.htm","href=start.htm",$str);
Mein Zeiel ist es alle Links auf andere .htm files so zu ersetzten, das nacher der Link so ausshieht: href=shop.php?id=3268726&site=site.htm
Hab auch schon probiert nur das "href=" durch "href=shop?id=32442&site=" zu ersetzen, das klappt auch, nur will ich halt den dateinamen vorher nochmal verschlüsseln, das auf der Seite keine sicherheitslücken entsteht.
Deshalb müsste ich eben, nach allen .htm Files suchen könne die vorkommen und diese z.B. in ein Array speichern.
Aber wie?
Gruß
ueps
Hallo ueps,
ist jetzt sicher nicht die beste Lösung und ich hab schon Angst vor den Schlägen unserer Regexp-Experten, aber es könnte klappen:
Grüße aus Würzburg
Julian
Hi,
- Quelltext in einen String einlesen
- per explode("href="",$str) zerlegen
- Inhalt des Arrays nochmal zerlegen mit explode(".htm", $array)
Damit sollten jetzt zumindest alle Dateinamen irgendwo in einem der Arrays sein. Klar, muss jetzt etwas verfeinert werden, ist aber eben nur mal ne schnelle Idee.
Danke,
nur das Problem ist halt, das die Dateinamen nicht nur hinter einem href vorkommen können sondern auch bei action= , etc.
Da wollte ich schon lieber was mit einem Regulären Ausdruck versuchen.
In perl müsste das ja so gehen $str =~ /=(.*).htm/
$dateiname = $1 + ".htm";
Aber wie geht das in php?
Hab die Lösung selbst gefunden, trozdem Danke.
$str = "my=site.htm";
ereg ("=(.*).tpl",$str,$reg);
echo $reg[1]."htm";
Gruß
ueps