Seite 1 von 1
HTML und Text umwandlungsfunktion aus phpbb gesucht
Verfasst: 24.05.2006 08:22
von pc-nico
Morgen,
ich suche eine Funktion welche im phpbb integriert ist...
ich möchte sie für ein Newspostingscript verwenden.
Aufgabe:
In einem Textstring sollen alle HTML-Sonderzeichen wie < > " ä etc in die entsprechenden Codes umgewandelt werden z.B. -<- (ohne -)
Dabei soll enthaltender HTML-Quellcode aber nicht umgewandelt werden.
Die Funktion gibt es im PHPBB, aber leider finde, bzgw verstehe ich sie nicht...
könnt ihr mir helfen.......
Verfasst: 24.05.2006 08:24
von MartinITM
Verfasst: 24.05.2006 08:32
von pc-nico
ja die ist mir bekannt...
Leider macht die auch aus HTML Quellcode im String um:
Eingang:
Ausgang:
Der HTML-Quellcode soll aber erhalten bleiben
Ausgabeziel also
Verfasst: 24.05.2006 09:36
von MartinITM
probiers doch mal so
Code: Alles auswählen
$text = "Hallo <a href="blah">bub</a> äüö"
$find[] = 'ä';
$find[] = 'ö';
$find[] = 'ü';
$find[] = '<';
$find[] = '>';
$replace[] = 'ae';
$replace[] = 'oe';
$replace[] = 'ue';
$replace[] = '<';
$replace[] = '&rt;';
$text = str_replace($find, $replace, $text);
Verfasst: 24.05.2006 10:05
von pc-nico
nett gemeinter Versuch, aber dabei kommt das raus:
HTML Code ist wieder nicht mehr korrekt enthalten....
Verfasst: 24.05.2006 17:04
von MartinITM
Jo, hast recht. &rt; muss > sein
Code: Alles auswählen
<?php
$text = 'Hallo <a href="blah">bub</a> äüö';
$find[] = 'ä';
$find[] = 'ö';
$find[] = 'ü';
$find[] = '<';
$find[] = '>';
$replace[] = 'ae';
$replace[] = 'oe';
$replace[] = 'ue';
$replace[] = '<';
$replace[] = '>';
echo $text = str_replace($find, $replace, $text);
?>
ergibt
Du kannst da jedes Zeichen durch ein anderes ersetzen.
Aber soll dann der Link noch funktionieren?
Verfasst: 24.05.2006 18:31
von S2B
Ähm, und was bringt ihm das dann? Dann werden HTML-Tags doch trotzdem ersetzt...
aus der functions_post.php:
Code: Alles auswählen
// If HTML is on, we try to make it safe
// This approach is quite agressive and anything that does not look like a valid tag
// is going to get converted to HTML entities
$message = stripslashes($message);
$html_match = '#<[^\w<]*(\w+)((?:"[^"]*"|\'[^\']*\'|[^<>\'"])+)?>#';
$matches = array();
$message_split = preg_split($html_match, $message);
preg_match_all($html_match, $message, $matches);
$message = '';
foreach ($message_split as $part)
{
$tag = array(array_shift($matches[0]), array_shift($matches[1]), array_shift($matches[2]));
$message .= htmlspecialchars($part) . clean_html($tag);
}
$message = addslashes($message);
Ein bisschen angepasst (z.B. ohne das clean_html()) sollte der Code das machen, was du magst.
Verfasst: 06.06.2006 10:01
von pc-nico
@S2B
Du hast das gefunden was ich suche...
werd das ganze mal ausprobieren...
danke @ all