WordPressコアに外部のWebページのコンテンツを取得するための非常に優れたクラスWP_Httpを見つけました。
問題は、URLが見つからない場合にPHPエラーをスローすることです。Fatal error: Cannot use object of type WP_Error as array.
$url = 'http://asklsahgioa.fdjeoiao.griawpo'; // non-existent url
$oHttp = new WP_Http;
$output = $oHttp->request($url);
print_r($output['body']);
したがって、クラスメソッドの前にURLが存在するかどうかを確認したいと思います。次のコードは機能しますが、速度が遅く、URLが見つかったときに応答に1秒ほどかかることがわかります。つまり、URLに問題がなければ、速度が2倍になります。
$handle = @fopen($url,'r');
if($handle !== false)
echo 'true';
else
echo 'false';
私も試しget_headers()
ました。ただし、URLが見つかった場合も1秒かかります。
$siteHeader = @get_headers($url , 1);
if ($siteHeader > 1)
echo 'true';
else
echo 'false';
それで、これを行うためのより良い方法はありますか?たぶん、WordPressにはすでにそのための関数がありますか、それともエラー処理を埋め込むためにクラスを拡張しますか?