HTML und Text umwandlungsfunktion aus phpbb gesucht

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
pc-nico
Mitglied
Beiträge: 38
Registriert: 08.07.2004 13:11
Wohnort: Magdeburg

HTML und Text umwandlungsfunktion aus phpbb gesucht

Beitrag 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.......
MartinITM
Mitglied
Beiträge: 217
Registriert: 03.10.2005 19:27

Beitrag von MartinITM »

Sieht komisch aus, ist aber so :)
pc-nico
Mitglied
Beiträge: 38
Registriert: 08.07.2004 13:11
Wohnort: Magdeburg

Beitrag von pc-nico »

ja die ist mir bekannt...
Leider macht die auch aus HTML Quellcode im String um:

Eingang:

Code: Alles auswählen

"Die ist ein <b>Test</b>"
Ausgang:

Code: Alles auswählen

"Die ist ein <b>Test</b>"  
Der HTML-Quellcode soll aber erhalten bleiben
Ausgabeziel also

Code: Alles auswählen

"Die ist ein <b>Test</b>" 
MartinITM
Mitglied
Beiträge: 217
Registriert: 03.10.2005 19:27

Beitrag 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);
Sieht komisch aus, ist aber so :)
pc-nico
Mitglied
Beiträge: 38
Registriert: 08.07.2004 13:11
Wohnort: Magdeburg

Beitrag von pc-nico »

nett gemeinter Versuch, aber dabei kommt das raus:

Code: Alles auswählen

"Hallo <a href="blah"&rt;bub</a&rt; aeueoe"
HTML Code ist wieder nicht mehr korrekt enthalten....
MartinITM
Mitglied
Beiträge: 217
Registriert: 03.10.2005 19:27

Beitrag 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

Code: Alles auswählen

Hallo <a href="blah">bub</a> aeueoe
Du kannst da jedes Zeichen durch ein anderes ersetzen.
Aber soll dann der Link noch funktionieren?
Sieht komisch aus, ist aber so :)
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag 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. :wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
pc-nico
Mitglied
Beiträge: 38
Registriert: 08.07.2004 13:11
Wohnort: Magdeburg

Beitrag von pc-nico »

@S2B
Du hast das gefunden was ich suche...
werd das ganze mal ausprobieren...

danke @ all
Antworten

Zurück zu „Coding & Technik“