環境
- PHP 7.2.0
- PHP Simple HTML DOM Parser 1.5.2
現象
以下の結果はfalseになります。
test.php
<?php
require(__DIR__. "/vendor/autoload.php");
$uri = "https://qiita.com/tnm18";
var_dump($html = @Sunra\PhpSimple\HtmlDomParser::file_get_html($uri));
対処法
str_get_html()は問題なく動作するため、最も簡単な対処法は以下のようになります。
test2.php
<?php
require(__DIR__. "/vendor/autoload.php");
$uri = "https://qiita.com/tnm18";
$html_str = @file_get_contents($uri);
var_dump($html = @Sunra\PhpSimple\HtmlDomParser::str_get_html($html_str));
PHP Simple HTML DOM Parserは非常に簡単にDOM操作を行える優れたライブラリですが、ページのサイズが600KBを超えた場合にただfalseを返すだけだったりとエラー処理も非常にシンプルです。