ereg_replace Problem mit " wird als \" angezeigt

melistik

Erfahrenes Mitglied
Hi,
Ich habe ein Quellcode converter gebastelt,
doch leider habe ich immer das Problem, wenn ich mit ereg_replace oder str_replace arbeite,
das " immer komischweise in \" umgewandelt wird ....
Kann man das irgendwie ändern ?

PHP:
function htmlconvert($code) {
$code = str_replace("<br>","\r\n", $code);  
$code = str_replace("<",'&lt;', $code);  
$code = str_replace(">",'&gt;', $code);
$code = str_replace("\"",'&quot;', $code);  
$code = str_replace("\r\n", "<br>", $code);  
$code = wordwrap ($code, 80, '<br>', 5);
return("<div id='code'>code:<hr>".$code."<br><hr></div>");
}

//code ausrichtung
$row['Text'] = preg_replace("=\\[code\\](.*)\\[\\/code\\]=esiU","htmlconvert('\$1')",$row['Text']);
echo "<div id='showit'>".$row['Text']."<br><br></div>";
 
Probier mal Folgendes:
PHP:
<?php

	function htmlconvert($code) {
		$code = str_replace('<br>', "\r\n", $code);
		$code = str_replace(chr(0x3C), '&lt;', $code);
		$code = str_replace(chr(0x3E), '&gt;', $code);
		$code = str_replace(chr(0x22), '&quot;', $code);
		$code = str_replace("\r\n", '<br>', $code);
		$code = wordwrap($code, 80, '<br>', 5);
		return '<div id="code">code:<hr>'.$code.'<br><hr></div>';
	}

	//code ausrichtung
	$row['Text'] = preg_replace('/\[code\](.*)\[\/code\]/esiU', "htmlconvert('\$1')", $row['Text']);
	echo '<div id="showit">'.$row['Text'].'<br><br></div>';

?>
 
mhh mit euren beiden Varianten funktioniert das leider nicht,
doch irgendwie habe ich das jetzt komischerweise hinbekommen,
doch ich weiß nicht warum das jetzt auf einmal geht !

PHP:
function htmlconvert($code) {
$code = str_replace("<br>","\r\n", $code);  
$code = str_replace("<",'&lt;', $code);  
$code = str_replace(">",'&gt;', $code);
$code = str_replace("\r\n", "<br>", $code);  
$code = wordwrap ($code, 80, '<br>', 5);
$code = str_replace('\\"', '&quot;', $code);  
return("<div id='code'>code:<hr>".$code."<br><hr></div>");
}

//code ausrichtung
$row['Text'] = preg_replace("=\\[code\\](.*)\\[\\/code\\]=esiU","htmlconvert('\$1')",$row['Text']);
echo "<div id='showit'>".$row['Text']."<br><br></div>";

Mit $code = str_replace('\"', '&quot;', $code);
ging das irgendwie komischerweise nicht !

Wisst ihr warum die funktion str_replace immer diesen \ zu " hinzufügt ?
 
Zurück