我在 WordPress 核心中发现了一个非常好的类 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 时,我可以看到响应需要一秒钟左右。这意味着如果 url 很好,它会降低速度。
$handle = @fopen($url,'r');
if($handle !== false)
echo 'true';
else
echo 'false';
我也试过get_headers()
了;但是,找到 url 也需要一秒钟。
$siteHeader = @get_headers($url , 1);
if ($siteHeader > 1)
echo 'true';
else
echo 'false';
那么,有没有更好的方法来做到这一点?也许 WordPress 已经有一个函数或者扩展类来嵌入错误处理?