1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Simple HTML DOM Parserで読み込むと改行が削除されてしまう対応

Posted at

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にしてみた

スクリーンショット 2019-10-09 10.43.33.png


すると無事改行が削除されていたのが改善された

推奨できる内容かは分かりませんが、最終手段としてのメモとして。。
これで改善されたということはオプションの指定の方法が間違っていただけかも。。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?