スポンサーリンク

PHP Simple HTML DOM Parserで改行コードが削除される問題

XML-RPC WordPress APIで投稿する前に、PHP Simple HTML DOM Parserで加工しているのですが、このライブラリを介すと改行コードが削除されます。改行コードが削除されてもHTMLなので、表示するにはほとんど困らないのですが、preタグとSyntaxHighlighter Evolvedではかなり困ります。

ファイルからSimple HTML DOMをインスタンス化する際に、file_get_htmlを利用します。マニュアルを見ても引数はファイルのみだったのですが、他に引数があることを知りました。

以下は、ソースの一部ですが、こんなに多くの引数があったんですね。

function file_get_html($url, $use_include_path = false, $context=null, $offset = -1, $maxLen=-1, $lowercase = true, $forceTagsClosed=true, $target_charset = DEFAULT_TARGET_CHARSET, $stripRN=true, $defaultBRText=DEFAULT_BR_TEXT, $defaultSpanText=DEFAULT_SPAN_TEXT)
{
	// We DO force the tags to be terminated.
	$dom = new simple_html_dom(null, $lowercase, $forceTagsClosed, $target_charset, $stripRN, $defaultBRText, $defaultSpanText);

調べたところ、$stripRNをfalseにすれば良いということが分かりました。

file_get_html($file, false, null, -1, -1, true, true, DEFAULT_TARGET_CHARSET, false);

こんな感じですね、ただ$stripRN=falseにすると他に影響があるようなコメントもあったので、少し注意したほうがいいのでしょうね。

Reference