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


Check if CURL response is empty and redirect?

我正试图弄清楚如何检查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的结果为空,它也从不重定向页面。

有人能就这个问题提出建议吗?

更改

curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

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

$json = json_decode($response, true);

刚好低于CCD_ 3条件。

如果这仍然不起作用,则您的设置可能存在一些问题。添加

error_reporting(E_ALL);

并检查日志。