0

我正在创建一个在线源代码法官。我需要在页面中显示用户代码并正确突出显示语法。

我正在使用语法荧光笔https://code.google.com/p/syntaxhighlighter/

我已经在我的项目中复制了必要的文件。当我尝试将它与我的代码集成时,我收到以下错误:

代码片段:

     $result = mysql_query($query); // query to fetch the code
        $row = mysql_fetch_array($result);
        $str = str_replace("<", "&lt;", $row['soln']); //$row['soln] has the code
        echo("<strong>".$row['filename']."</strong><br/><br/>\n<pre name="code" class="c">".str_replace(">", "&gt;", $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>

错误 :

解析错误:语法错误,第 28 行 /opt/lampp/htdocs/project1/admin/preview.php 中的意外“代码”(T_STRING)

我哪里错了?谢谢你的帮助

4

2 回答 2

2
echo("<strong>".$row['filename']."</strong><br/><br/>\n<pre name=\"code\" class=\"c\">".str_replace(">", "&gt;", $str)."</pre>");

用上面的替换你的回声,你没有逃避一些双引号。

于 2013-05-08T07:38:28.297 回答
1
echo('<strong>'.$row['filename'].'</strong><br/><br/>\n<pre name="code" class="c">'.str_replace(">", "&gt;", $str).'</pre>');

或者你也可以试试这个。不需要转义双引号。

于 2013-05-08T08:00:53.220 回答