2011-01-07 4 views
1

私はWordpress Google構文Highligtherプラグインを使用していますが、私はPHPクラスを使って問題を見つけました。Google構文Highligher PHP Preg_replace

基本的には何らかの理由で - と - を追加します。

もし誰かがpreg_replaceを行う方法を知っている人なら、誰かが私を助けてくれるなら、私は非常に素晴らしいだろう。

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

それへのリンクをtheresの、あなたは私が何を意味するか見ることができます。

私は基本的に、このHTMLがあります。

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

をし、それが、この生成します:私は何とかを取り除くために必要

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

を - と - のthats可能な場合は!?

よろしくお願いいたします。

+0

」はHTMLコメントです。あなたのPHPタグが気に入らないようです。たぶんWordpressは ''をハイライトの構文が好きではないものにエスケープしているのでしょうか? – cbednarski

+0

@banzaimonkeyそのハイライターのPHP版で動作していますが、なぜ私はそれを生成しているのか分かりません...もしHTML版に入れば、それはすべてコメントになります。 – Daryl

答えて

0

内部HTMLをパーサに渡す前にエンコードしてください。それ以外の場合、無効なHTMLが生成されます(<?はXML処理命令であり、有効なHTML文ではないので、常にクリーンですHTML)。 :

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

どこに置くのですか?答えをいただきありがとうございます。 – Daryl

+0

構文の強調表示はどこにありますか?記事にはありますか?もしそうなら、あなたの編集者がそれを行うべきです。また、PHPのハイライターに伝えているので、ポストから '<?php'と'?> 'タグを削除することもできます... – ircmaxell

+0

私は本当に笑っていません、Google Syntax Highligherはプラグインですwordpressの場合、プラグインを実行するにはhtml属性(name = "code"、使用するjsファイルを定義するにはclass = "php")を使用します。 – Daryl