【问题标题】:Google Syntax Highligher PHP Preg_replace谷歌语法荧光笔 PHP Preg_replace
【发布时间】:2011-06-05 10:08:44
【问题描述】:

我正在使用 Wordpress Google Syntax Highligther 插件,但在使用 PHP 类时遇到了问题。

出于某种原因,基本上它会添加 !-- 和 -- 。

如果有人知道如何做 preg_replace,如果有人可以帮助我,我将非常感激。

http://thefinishedbox.com/tutorials/wordpress/adding-wordpress-3-0-post-thumbnail-using-a-custom-field/

有一个链接,你可以明白我的意思。

我基本上有这个 HTML:

<pre name="code" class="php">
<?php while (have_posts()) : the_post(); ?>
<?php endwhile; ?>
</pre>

它会生成这个:

<!--?php while (have_posts()) : the_post(); ?-->
<!--?php endwhile; ?-->

如果可能的话,我需要以某种方式摆脱 !- 和 -- ?

问候。

【问题讨论】:

  • &lt;!-- --&gt; 是一个 html 评论。好像它不喜欢你的 php 标签。也许 Wordpress 正在将 &lt;? ?&gt; 转义为语法荧光笔不喜欢的东西?
  • @banzaimonkey 它在荧光笔的 PHP 版本上运行,但我仍然不知道它为什么会生成它们......如果我把它放到 html 版本中,它会全部注释掉。

标签: php wordpress plugins syntax-highlighting preg-replace


【解决方案1】:

在将内部 HTML 传递给解析器之前尝试对其进行编码,否则生成的 HTML 无效(考虑到 &lt;? 是 XML 处理指令,而不是有效的 HTML 语句,因此它可能会将其注释掉,以便始终生成干净的 HTML)。 :

$html = htmlspecialchars($html);
$code = '<pre name="code" class="php">'.$html.'</pre>';

【讨论】:

  • 我会把这个放在哪里?非常感谢您的回答。
  • 语法高亮在哪里?是在文章里吗?如果是这样,你的编辑应该为你做这件事。您也可以尝试从帖子中删除 &lt;?php?&gt; 标记(因为您告诉荧光笔它已经是 PHP)...
  • 我并没有真正关注大声笑,Google Syntax Highligher 是 wordpress 的插件,您使用 html 属性即 name="code" 来运行插件和 class="php" 来定义哪个 js 文件使用。
  • 好吧,然后尝试从帖子中删除 &lt;?php?&gt; 看看是否有任何作用...
  • 这不是我愿意做的事情,因为我会将它用作教程的标记。 ://
猜你喜欢
  • 2010-11-12
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 2011-05-16
  • 2013-03-18
  • 2014-07-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多