SyntaxHighlighter禁止转义符号为HTML实体符号

2016-06-08

在使用Markdown Edit的时候发现,代码总是被转义成HTML实体符号,看起来像是:

$this>getsome()
`</pre>

一番查证之后发现是SyntaxHighlighter插件的问题,在`syntaxhighlighter.php`的1046行中:

<pre>`$code = ( false === strpos( $code, '&lt;' ) &amp;&amp; false === strpos( $code, '&gt;' ) &amp;&amp; 2 == $this-&gt;get_code_format($post) ) ? strip_tags( $code ) : htmlspecialchars( $code );
`</pre>

是上面这句代码发生的转义,只需要将这行代码修改为:

<pre>`$code = ( false === strpos( $code, '&lt;' ) &amp;&amp; false === strpos( $code, '&gt;' ) ) ? strip_tags( $code ) : htmlspecialchars( $code );

问题就解决了。