highlight-Funktion highlightet nicht richtig (fehlermeldung)

fanste

Erfahrenes Mitglied
Hallo.
Bin grad dabei ein etwas großeres Projekt zu programmieren. Um genauer zu sein ein eigenes Forum. In diesem Forum soll es auch eine highlight Funktion geben. Hab ich schon und funktioniert auch fast, aber nur fast, perfekt. Bei dieser Funktion handelt es sich um den code aus diesem tutorial. http://www.tutorials.de/tutorials76430.html

Nun zum Problem:
Wenn ich soetwas
PHP:
<?
echo $bla;
echo $da;
?>
zum Script schicke, gibt es keine Probleme.

Schicke ich stattdessen sowas
PHP:
<?
echo $bla;
$da = "du";
echo $da;
?>
zum Script. kommt folgende Ausgabe mit Fehlermeldung.
PHP:
<?
 
 
echo $bla;
 
 
$da = 
 
 
Warning: Unexpected character in input: '' (ASCII=92) state=1 in c:wampp1htdocsphp tests22.php on line 17
 
 
"du";
 
 
echo $da;
 
 
?>

Woran kann das liegen, das keine " (Anführungszeichen) akzeptiert werden.

Hier nochmal der code von der hightleight- funktion:
PHP:
<?
function editphpcode($phpc) {
$phpc = str_replace("\\\"","\"",$phpc);
$phpc = html_entity_decode($phpc);
$phpc = trim($phpc);
 
$tag = false;
// Bei Bedarf PHP-Tag setzen...
if (!strstr($phpc, "<?") && !strstr($phpc, "?>")) {
	$phpc = "<?\n".$phpc."\n?>";
	$tag = true;
}
 
ob_start();
//$oldlevel=error_reporting(0);
highlight_string($phpc);
//error_reporting($oldlevel);
$buffer = ob_get_contents();
ob_end_clean();
 
// ...und wieder entfernen
if ($tag) {
	$buffer = str_replace("&lt;?", "", $buffer);
	$buffer = str_replace("?&gt;", "", $buffer);
}
 
 
return "<blockquote><pre><smallfont>PHP:<div style=\"border: 2px inset\"><div style=\"margin-left:7px;\">$buffer</div></div></blockquote></pre></smallfont>";
}

Diese wird hiermit aufgerufen:
PHP:
//PHP CODE
$post = preg_replace("/\[PHP\](.*)\[\/PHP\]/eisU", "editphpcode('$1')", $post);

Ich hoffe ihr könnt mir helfen!

Im Vorraus schonmal danke

mb fanste
 
Zuletzt bearbeitet:
muss noch was hinzufügen.
Dieser fehler tritt nur auf, wenn ich den code via formular dahin schicke.
wenn ich das, was eigentlich gesendet werden soll, direkt in das script eintrage, gibt es keine fehlermeldung.

wird irgendwie immer besser :D
 
Das Thema hat sich erledigt. Hab noch n bissle dran rum geschreaubt und dann schließich nach einer Stunde aus zufall ein Lösung gefunden.
mb fanste
 
Bitte mach nicht auch den selben Fehler wie die meisten Foren und missbrauche HTML-Elemente für optische Zwecke. Das blockquote-Element ist zum Auszeichnen von Zitaten gedacht, und nicht zum Einrücken von Elementen.
However, as some authors have used BLOCKQUOTE merely as a mechanism to indent text, in order to preserve the intention of the authors […]
The usage of BLOCKQUOTE to indent text is deprecated in favor of style sheets.
 
Hallo.
Hier noch die Lösung die gefunden habe. Ich habe den Code folgendermaßen abgeändert.
Direkt bei der Text übergabe schreibe ich
PHP:
$post= $_POST['Beitrag'];
$post = str_replace("\\\"","\"",$post);

Also ich ersetzt alle \" durch ". Das geschieht zwar schon in der Funktion, klappt abewre nicht so ganz.
Darum habe ich es dort rausgelöscht.
die Funktion sieht dann so aus
PHP:
function editphpcode($phpc) {
$phpc = html_entity_decode($phpc);
$phpc = trim($phpc);
//.......

Dann hat es bei mir geklappt

mb fanste
 
Zurück