检查CURL响应是否为空并重定向?

时间:2015-12-22 17:15:22

标签: php curl

我试图找出如何检查curl响应,如果它是空的,则重定向到另一个页面。

基本上,用户搜索某些内容,如果发现其他内容重定向到另一个页面,则返回PHP curl响应。

这是我的CURL代码:

$curl = curl_init();



curl_setopt($curl, CURLOPT_URL, 'https://api.companieshouse.gov.uk/search/companies?q=POOP');

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($curl, CURLOPT_USERPWD,"MY-PASSWORD-GOES-HERE");
$response = curl_exec($curl);
if($errno = curl_errno($curl)) {
$error_message = curl_strerror($errno);
echo "cURL error ({$errno}):\n {$error_message}";
}
curl_close($curl);

$json = json_decode($response, true);

if(!$response || strlen(trim($response)) == 0)
{
    header('Location: http://www.example.com/');
}

我尝试这样做:

if(!$response || strlen(trim($response)) == 0)
{
    header('Location: http://www.example.com/');
}

但即使CURL的结果为空,它也永远不会重定向页面。

有人可以就此问题提出建议吗?

1 个答案:

答案 0 :(得分:0)

变化

curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

这将在失败时返回空字符串。 你也可以移动

$json = json_decode($response, true);

低于if条件。

如果仍然无效,可能是您的设置存在问题。 添加

error_reporting(E_ALL);

并查看日志。