Seite 1 von 1

plain text -> xml valid?

Verfasst: 20.10.2006, 18:45
von nerd
hallo,

welche php-function muss ich verwenden um plain-text so umzuwandeln, das ich ihn in xml-feeds verwenden kann? also die sonderzeichen muessen wohl umgewandelt werden, html darf erhalten bleiben wenn ich mir andere feeds so ansehe...

das hier funktioniert so nicht laut feedvalidtor.org:

Code: Alles auswählen

		$desc = strip_tags($fdata['description']);
		$desc = htmlentities($desc);
jemand ne idee?

Verfasst:
von

Verfasst: 20.10.2006, 19:42
von cren
Was für ne Fehlermeldung gibt der Validator denn aus?

Verfasst: 20.10.2006, 21:32
von nerd
sagt das ich das numerische gegenstueck verwenden soll, also sowas wie

Code: Alles auswählen

& # 0 6 0 ;
oder so aehnlich. kann aber keine funktion dafuer finden...

Verfasst: 21.10.2006, 11:40
von Outman
Hallo,

da must Du mit str_replace die Zeichen mit den er nicht klar kommt ersetzen nach htmlentities.

Gruß Nico

Verfasst: 21.10.2006, 15:40
von nerd
wie? willst du sagen da gibts keine fertige funktion dafuer die alle zeichen kennt?!

Verfasst: 21.10.2006, 16:04
von Outman
Hallo,

na ja ich würde es mit htmlspecialchars() machen und dan mit


$nonascii=array();
for($i=0;$i<32;$i++)$nonascii[chr($i)]="";


htmlspecialchars(strtr($message,$nonascii))

durchlaufen lassen.


Gruß Nico

Verfasst: 21.10.2006, 17:23
von fornex
strip_tags ist für n arsch, da es nicht alles rausfiltern kann:

Code: Alles auswählen

$search = array&#40;  '@<script&#91;^>&#93;*?>.*?</script>@si',  
                           '@<&#91;\\/\\!&#93;*?&#91;^<>&#93;*?>@si',            
                           '@<style&#91;^>&#93;*?>.*?</style>@siU',    
                           '@<!&#91;\\s\\S&#93;*?--&#91; \\t\\n\\r&#93;*>@'
&#41;;
$str = preg_replace&#40; $search, '', $str &#41;;
& # 0 6 0; kannste damit bekämpfen:

Code: Alles auswählen

$str = preg_replace&#40; '/&#&#40;\d+&#41;;/me', "chr&#40;\\1&#41;", $str &#41;;
obwohl es gar nicht nötig ist, da du htmlentities gar nicht zu verwenden brauchst