あれあの備忘録

アプリ作成の備忘録、IT関連のニュースなどなどいろいろ

はてなブログでSyntaxHighlighterを使ってPHPのソースを正しく表示する

前回の記事でSyntaxHighlighterを使ってPHPソースコードを表示させたときに手こずったのでまとめます。

前回手こずったのは2点

ソースコードが途中で分割されてしまう

phpの文字列が強制変換される

 

まず①について。

↓に再現しました。

//取得したツイートを1件ずつ表示
for ( $i = 0; $i <= 100; $i++ ) {
        $name=$jset["statuses"][$i]["user"]["name"];
        $link=$jset["statuses"][$i]["user"]["profile_image_url"];
        $ttext =  $jset["statuses"][$i]["text"];
        $time = date("Y-m-d H:i:s",strtotime($jset["statuses"][$i]["created_at"]));
         
        if($tid!=null){
        echo "

"." | ".$name." | ".$ttext." | ".$time;
        echo "
"; } }

echo "<img src='".$link."''>"." | ".$name." | ".$ttext." | ".$time; と表示させたいのですが、<img src~のところでhtml表示されてしまう。
これを直すには < を &lt; 、> を &gt; と変換すれば正しく表示されます。
他にも特殊文字があります。(↓参考)

 

特殊文字変換文字
[ &#91;
] &#93;
< &lt;
> &gt;
: &#58;

 

次に②ですが、はてなブログで記事を書くとはてなキーワードのリンクを自動で貼られてしまいます。

普段なら便利な機能かもしれませんが、SyntaxHighlighterで書いたソースコードにまでリンクを貼られてしまうため↓のような感じで表示されてしまいます。

<?php

ソースコードでは<phpと表示させたいのですが、PHPはてなキーワードのリンクが貼られてしまいます。

自動リンク貼り付け機能をオフにするには有料プランに入らないといけませんが、ソースコードを<pre class="brush:php" data-unlink=""></pre>で囲ってあげれば↓のようになります。

<?php