Probleme mit RSS-Tutorial

DaRealMC

Erfahrenes Mitglied
Hi zusammen,

habe mir das Tutorial http://www.tutorials.de/forum/php-videotutorials/170529-rss-feeds-mit-php-16-03-a.html reingezogen. Ist ja auch ganz nett, aber läuft bei mir nicht ganz.
Wenn ich z.B.
PHP:
$msg=substr($row['message'],0,strpos($row['message'],".",200)+1);
verwenden will, gibts immer wieder Fehler, weil nicht alle Posts 200 Zeichen lang sind und einen Punkt beinhalten.
b>Warning</b>: strpos(): Offset not contained in string. in <b>feed.php</b> on line <b>24</b><br />

zweites Problem: Das Pipe-Zeichen.
XML Parsing Error: not well-formed
[22:28:22] <ich|afk> ^^
habe es dann mit
PHP:
$msg = eregi_replace("\|","&brvbar;",$msg);
probiert. Nun meckert er mir das "&" an...
 
Die genannte Anweisung schein syntaktisch korrekt. Da kann ich dir leider nicht helfen. Vielleicht gibt es bereits davor ein Fehler, der sich erst in diesem Funktionsaufruf bemerkbar macht.
Was das andere Problem betrifft, musst du alle Inhalte eines Tags durch die htmlspecialchars()-Funktion schicken, damit die HTML-/XML-Schlüsselzeichen durch Zeichenreferenzen ersetzt werden.
 
Das erste Problem habe ich (hoffentlich) mit
PHP:
$msg=$row['message'];
		if (strlen($msg) > 200) {
		 	$msg=substr($msg,0,strpos($msg,".",200)+1);
			//$msg=substr($msg,0,200);
		}
gelöst.


Und die Funktion hilft auch nicht wirklich. Das habe ich ja bereits von Hand gemacht mit meinem eregi_replace().
Danach meckert er mir ja das & von &brvbar; an. Oder das % von %a6.
 
Zuletzt bearbeitet:
Es ist übrigens nicht nötig, eine zusätliche Variable und damit Speicherbedarf zu verbraten:
PHP:
if( strlen($row['message']) > 200 ) {
	$row['message'] = substr($row['message'], 0, strpos($row['message'], '.', 200) + 1 );
	// $row['message'] = substr($msg, 0, 200);
}
Alternativ könntest du auch gleich die Abfrage verfeinern, sodass nur ein Auszug abgefragt wird.
 
Da ich mit $msg aber noch mehr mach, ist es einfacher, als jedesmal $row... zu schreiben.

Hab grade gesehen, dass er nach dem Pipe alles in das selbe Item schreibt. Nix gut :(

//edit: das wiederum könnte doch mit den HTML-Tafs zusammen hängen
*test*
 
Zuletzt bearbeitet:
So, ist wohl erledigt.
Nun habe ich auch &lt; usw im Quelltext stehen. Dass mein Reader das nun immer noch falsch macht, ist wohl sein Problem...
 
Zurück