PHPでhtmlのdom操作はSimple HTML DOM Parser
が便利だなと思って使ってみましたが、
file_get_htmlで読み込むと改行コードが勝手に削除されてしまってハマったのでメモです。
試してみたこと
file_get_htmlのオプションを指定する
file_get_htmlで読み込む際のオプション指定で$stripRN
をfalseにするといいという記述を見つけたのでやってみた
$html = file_get_html($file, false, null, -1, -1, true, true, DEFAULT_TARGET_CHARSET, false);
str_get_htmlの場合はこのよう
$html = str_get_html($str, true, true, DEFAULT_TARGET_CHARSET, false);
→
が結果は変わらずだった。
MAX_FILE_SIZEを増やしてみる
読み込むHTMLのデータ量が大きすぎると読み込みに失敗するそうです。
default600KBに設定されてるので、simple_html_dom.phpを直接開いてMAX_FILE_SIZE
の値を増やしてみた
→
が結果は変わらずだった。
file_get_htmlの$stripRNオプションを直接書き換える
simple_html_dom.phpを直接編集してfile_get_html関数の$stripRNのdefault値をfalseにしてみた
→
すると無事改行が削除されていたのが改善された
推奨できる内容かは分かりませんが、最終手段としてのメモとして。。
これで改善されたということはオプションの指定の方法が間違っていただけかも。。