HI!
Ich habe folgende Funktion, um in einem Tutorial gepostetes php (mit [ p h p ] und so..) schön zu bearbeiten.
Wenn ich mir das bearbeitete ausgebe, funzt es auch super, richtig schön bunte Syntax und so.
Speichere ich es dann in die DB, zeigt er mir einen Fehler an.
Ich wende vor dem Speichern noch mysql_escape_string() an, aber es nützt nichts.
HIer mal die Funktion + Aufruf
[PHP]function phpstring($code) {
#$code = str_replace("\\\"","\"",$code);
#$code = str_replace(">", ">", $code);
#$code = str_replace("<", "<", $code);
#$code = str_replace("&", "&", $code);
#$code = str_replace('$', '\$', $code);
#$code = str_replace('\n', '\\\\n', $code);
#$code = str_replace('\r', '\\\\r', $code);
#$code = str_replace('\t', '\\\\t', $code);
#$code = str_replace("<br>", "", $code);
#$code = str_replace("<br />", "", $code);
$code = stripslashes($code);
if(!strpos($code,"<?") && substr($code,0,2)!="<?") $code="<?php\n".trim($code)."\n?>";
$code = trim($code);
ob_start();
$oldlevel=error_reporting(0);
highlight_string($code);
error_reporting($oldlevel);
$buffer = ob_get_contents();
ob_end_clean();
#$buffer = str_replace("<br />", "",$buffer);
#$buffer = str_replace(""", "\"", $buffer);
#echo nl2br(htmlspecialchars($buffer))."<hr>";
return "<table border=\"0\" cellspacing=\"1\" width=\"99%\" bgcolor=\"#b7ceff\" align=\"center\">
<tr><td width=\"100%\" bgcolor=\"#FFFFFF\"><b>HTML code:</b><hr noshade color=\"#b7ceff\" size=\"1\"><div class=\"phpstring\">".$buffer."</div></td>
</tr></table>";
}
//Aufruf
$code=preg_replace("/\
Also wie gesagt, an der Funktion liegt es nicht. Er sagt "fehler", wenn ein ' im code vorkommt. Dieses kann er irgendwie nicht in die db eintragen.
Mein Eintrag:
Hoffe es kann jemand helfen! MfG Oli
Ich habe folgende Funktion, um in einem Tutorial gepostetes php (mit [ p h p ] und so..) schön zu bearbeiten.
Wenn ich mir das bearbeitete ausgebe, funzt es auch super, richtig schön bunte Syntax und so.
Speichere ich es dann in die DB, zeigt er mir einen Fehler an.
Ich wende vor dem Speichern noch mysql_escape_string() an, aber es nützt nichts.
HIer mal die Funktion + Aufruf
[PHP]function phpstring($code) {
#$code = str_replace("\\\"","\"",$code);
#$code = str_replace(">", ">", $code);
#$code = str_replace("<", "<", $code);
#$code = str_replace("&", "&", $code);
#$code = str_replace('$', '\$', $code);
#$code = str_replace('\n', '\\\\n', $code);
#$code = str_replace('\r', '\\\\r', $code);
#$code = str_replace('\t', '\\\\t', $code);
#$code = str_replace("<br>", "", $code);
#$code = str_replace("<br />", "", $code);
$code = stripslashes($code);
if(!strpos($code,"<?") && substr($code,0,2)!="<?") $code="<?php\n".trim($code)."\n?>";
$code = trim($code);
ob_start();
$oldlevel=error_reporting(0);
highlight_string($code);
error_reporting($oldlevel);
$buffer = ob_get_contents();
ob_end_clean();
#$buffer = str_replace("<br />", "",$buffer);
#$buffer = str_replace(""", "\"", $buffer);
#echo nl2br(htmlspecialchars($buffer))."<hr>";
return "<table border=\"0\" cellspacing=\"1\" width=\"99%\" bgcolor=\"#b7ceff\" align=\"center\">
<tr><td width=\"100%\" bgcolor=\"#FFFFFF\"><b>HTML code:</b><hr noshade color=\"#b7ceff\" size=\"1\"><div class=\"phpstring\">".$buffer."</div></td>
</tr></table>";
}
//Aufruf
$code=preg_replace("/\
PHP-Code:
(.*)\[\/php\]/esiU","phpstring('\\1')",$code);
Mein Eintrag:
PHP-Code:
addslashes($code);
$query =
"
INSERT INTO www_workshops
(titel,autor,w_text,datum,diffi,art)
VALUES
('{$_POST['w_titel']}','$userlog','$code','$zeit','{$_POST['w_diffi']}','{$_POST['w_art']}')
";
$input = mysql_query($query);
if (!$input) {
echo "Fehler: <BR>". mysql_error() ."<BR>Query:<BR>". $query ."<BR>"; die();
} else {
echo mysql_affected_rows() . " Datensatz eingefügt. <BR>";
}
Kommentar