preg_replace
Oli
- php
0 Rasmus
Hallo,
sitze nun seit heute morgen daran und komme einfach nicht weiter. Es geht darum, einen externen http://rss.feedsportal.com/c/32139/f/416094/index.rssRSS-Feed[/link] einzulesen, ihn zu bearbeiten und lokal als Datei abzulegen. Keine Panik, die Rechte dazu habe ich vom Urheber!
Das ist also mein Code:
$koeln = file_get_contents("http://rss.feedsportal.com/c/32139/f/416094/index.rss");
$koelnneu = str_replace("<item><title>", "<item><title>Köln - ", $koeln);
$koelnneu = preg_replace("\<", "" , $koelnneu);
$myFile = "koeln.xml";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $koelnneu);
fclose($fh);
Wie ihr seht, habe ich das mit "Köln - " vor jeden Titel schreiben bereits hinbekommen. Schaut euch den Ursprungs-RSS-Feed jetzt bitte mal an. Ich möchte gerne nur den ersten Satz haben in der Beschreibung, ab "Verwandter Inhalt" also alles weg haben.
Dieser Teil ist immer gleich aufgebaut:
<img width='1' height='1' src='http://rss.feedsportal.com/
.....
</description>
(ja, das < muss so, da es innerhalb der RSS-Beschreibung wohl keine Tags gibt... aber das ist wieder ein anderes Thema.
Nun möchte ich gerne "<img width='1' height='1' src='http://rss.feedsportal.com/" und alles was danach kommt (bis "</description>") entfernen und durch "" ersetzen. Von mir aus kann das </description> noch mit entfernt werden, das kann ich ja einfach wieder dranhängen.
Ich habe nun schon tausende Wildcard-Variationen probiert aber verstehe die Syntax immer nocht nicht so richtig. Bitte um eine Lösung!
Besten Dank!
Hi,
Nun möchte ich gerne "<img width='1' height='1' src='http://rss.feedsportal.com/" und alles was danach kommt (bis "</description>") entfernen und durch "" ersetzen. Von mir aus kann das </description> noch mit entfernt werden, das kann ich ja einfach wieder dranhängen.
Auf die Gefahr hin, dass ich Dir was empfehle, dass Du schon längst ausprobiert hast: versuche es doch genau so, wie Du es geschrieben hast. Ermittle die Position der Strings mit strpos() und schneide den String mit substr() zusammen. Es geht bestimmt auch mit preg_replace, aber dessen interne Syntax finde ich auch nicht gerade sehr intuitiv. Und schneller ist preg_replace bestimmt auch nicht.
Viele Grüße
Rasmus