PHPでスクレイピングをする時に使うライブラリ「PHP Simple HTML DOM Parser」で、404エラーが発生するページにアクセスする場合、下記のようにfile_get_html関数を使うとPHPエラーが発生することがある。

<?php 
require_once './lib/simple_html_dom.php'; 
$url = 'https://example.com';

$html = file_get_html($url); // ページが404の場合エラー発生!

この問題を避ける場合は、以下のようにコードを書き直すと良い。

<?php 
require_once './lib/simple_html_dom.php'; 
$url = 'https://example.com';

$html = @file_get_contents($url);
if(!empty($html)) {
  $html = str_get_html($html);
}

まず、5行目のfile_get_contentsで対象ページを取得する際、@エラー制御演算子でエラーの発生を抑制する。

その後、if文を使ってコンテンツが取得できた場合のみDOMの取得をおこなうようにすることで、404のような例外にも対応することができる。