我试图找出如何检查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的结果为空,它也永远不会重定向页面。
有人可以就此问题提出建议吗?
答案 0 :(得分:0)
变化
curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
到
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
这将在失败时返回空字符串。 你也可以移动
$json = json_decode($response, true);
低于if
条件。
如果仍然无效,可能是您的设置存在问题。 添加
error_reporting(E_ALL);
并查看日志。