我正在创建一个在线源代码判断。我需要在页面中显示用户代码并使用正确的语法高亮显示。
我正在使用语法荧光笔https://code.google.com/p/syntaxhighlighter/
我已经在我的项目中复制了必要的文件。当我尝试将其与我的代码集成时,我得到以下错误:
代码片段:
$result = mysql_query($query); // query to fetch the code
$row = mysql_fetch_array($result);
$str = str_replace("<", "<", $row['soln']); //$row['soln] has the code
echo("<strong>".$row['filename']."</strong><br/><br/>\n<pre name="code" class="c">".str_replace(">", ">", $str)."</pre>");
}
?>
<link type="text/css" rel="stylesheet" href="highlight/css/SyntaxHighlighter.css"></link>
<script language="javascript" src="highlight/js/shCore.js"></script>
<script language="javascript" src="highlight/js/shBrushCSharp.js"></script>
<script language="javascript" src="highlight/js/shBrushXml.js"></script>
<script language="javascript">
dp.SyntaxHighlighter.ClipboardSwf = 'highlight/flash/clipboard.swf';
dp.SyntaxHighlighter.HighlightAll('code');
</script>
错误:
解析错误:语法错误,意外“代码”(T_STRING) 第28行/opt/lampp/htdocs/project1/admin/preview.php
我哪里错了?谢谢你的帮助
答案 0 :(得分:2)
echo("<strong>".$row['filename']."</strong><br/><br/>\n<pre name=\"code\" class=\"c\">".str_replace(">", ">", $str)."</pre>");
用上面的代替你的回声,你没有逃过一些双引号。
答案 1 :(得分:1)
echo('<strong>'.$row['filename'].'</strong><br/><br/>\n<pre name="code" class="c">'.str_replace(">", ">", $str).'</pre>');
或者你也可以尝试这个.. 无需逃避双引号。