Oli: preg_replace

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("\&lt;", "" , $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:

&lt;img width='1' height='1' src='http://rss.feedsportal.com/
.....
</description>

(ja, das &lt; muss so, da es innerhalb der RSS-Beschreibung wohl keine Tags gibt... aber das ist wieder ein anderes Thema.

Nun möchte ich gerne "&lt;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!

  1. Hi,

    Nun möchte ich gerne "&lt;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