HTMLエンティティーに変換するPHPコード

17 10月

HTMLエンティティーに変換するコードを書きました。書きましたというほどのものではないんですが。

<?php

$post_content = file_get_contents("tmp.txt");


$post_content = str_replace("&","&amp;",$post_content);
$post_content = str_replace("<","&lt;",$post_content);
$post_content = str_replace(">","&gt;",$post_content);

echo $post_content."\n";

変換する文字列を tmp.txt に書き込みます。
何でこんなものが必要になったかというと,先日サーバーOSが ubuntu12 から ubuntu16 へと変わって,同時に wordpress のデータの移行も必要となりました。wordpress の標準的な機能を使ってデータをエキスポートして,wrdpress importer でインポートしましたが,その際色々なトラブルがありました。MathJax のバックスラッシュが消失したりといったこともあったのですが,しばらく気づかなかった不具合として,SyntaxHighlighter Evolved の部分が実体参照のまま表示されるというのがありました。これに関しては,今回は何かの工夫で対応できたとしても,次回もまた同じようなことになりそうなので,SyntaxHighlighter Evolved を使用するのをあきらめて,標準的なタグ <pre><code></code></pre> を使用するように変更しました。このタグの中では 実体参照で書き表さなければならないので,上記の PHP コードを利用して,データをひとつひとつ変換し,記事を修正することになりました。