2011-01-07 15 views
1

Ich benutze Wordpress Google Syntax Highligther Plugin und ich bin auf ein Problem mit der PHP-Klasse gestoßen.Google Syntax Highligher PHP Preg_replace

Grundsätzlich ist es hinzufügen - und - aus irgendeinem Grund.

Wenn theres jemand weiß, wie preg_replace zu tun ist, wäre ich sehr dankbar, wenn mir jemand helfen könnte.

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

Theres einen Link zu ihr, können Sie sehen, was ich meine.

Ich habe im Grunde HTML:

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

und erzeugt dies:

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

Ich muss irgendwie an die loszuwerden - und - wenn das ist möglich!?

Grüße.

+0

'' ist ein HTML-Kommentar. Scheint, dass es deine PHP-Tags nicht mag. Vielleicht entkommt Wordpress '' in etwas, das der Syntax-Highlighter nicht mag? – cbednarski

+0

@banzaimonkey Es läuft auf der PHP-Version des Highlighter, aber ich habe immer noch keine Ahnung, warum es sie erzeugt ... Wenn ich es in die HTML-Version einfüge, wird es alles kommentieren. – Daryl

Antwort

0

Versuchen Sie, das innere HTML zu codieren, bevor Sie es an den Parser übergeben. Andernfalls wird ungültiges HTML generiert (<? ist eine XML-verarbeitende Anweisung und keine gültige HTML-Anweisung) HTML). :

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

Wo würde ich das hinstellen? Danke für die Antwort sehr geschätzt. – Daryl

+0

Wo haben Sie die Syntax-Hervorhebung? Ist es in einem Artikel? Wenn ja, sollte dein Redakteur das für dich tun. Du könntest auch versuchen, die '' Tags aus dem Post zu entfernen (da du dem Highlighter sagst, dass es schon PHP ist) ... – ircmaxell

+0

Ich folge nicht wirklich lol, Google Syntax Highligher ist ein Plugin Für Wordpress verwenden Sie HTML-Attribute, dh name = "code", um das Plugin auszuführen und class = "php", um festzulegen, welche js-Datei verwendet werden soll. – Daryl