2014-07-03 61 views
0
$url = 'http://example.com'; 
$site = curl_init($url); 
curl_setopt($site, CURLOPT_RETURNTRANSFER, true); 
$site = curl_exec($site); 

if(FALSE){//DO SOMETHING} 

我尝试使用卷曲刮页,但我需要检测如果url是失败。卷曲刮页如果失败

  1. 问题,哪个会更好?

    curl or file_get_contents($ url)?

+0

开始从[这里](HTTP: //www.php.net/manual/en/function.curl-getinfo.php) – hindmost

回答

1

也许它更容易做到这一点,没有file_get_contents

$siteContent = file_get_contents("http://example.com"); 

if($siteContent) { 
    // do something 
} 

如果您需要更多选项或帖子,那么您必须使用卷曲。为此,您必须在您的php.ini中将选项allow_url_fopen设置为On

+0

我已经试过文件获取内容,但我想尝试不同的方法,并不确定哪个更好,什么不同 – user2178521

+0

它更短。你不能设置这么多选项。 – Stony

+0

cURL调用在您要发布帖子请求时更有用,或者拥有像Stony这样的更多选项 – JammyDodger231

1

你可以使用HTTP状态代码,以检查它是否是一个有效的响应:

$url = 'http://example.com'; 
$siteCurl = curl_init($url); 
curl_setopt($siteCurl , CURLOPT_RETURNTRANSFER, true); 
$site = curl_exec($siteCurl); 

$result = curl_exec($siteCurl); 
$http_status = curl_getinfo($http, CURLINFO_HTTP_CODE); 

if($http_status != "200"){//DO SOMETHING} 

看到这里的HTTP代码,如果你不确定:http://www.w3.org/Protocols/HTTP/HTRESP.html