这是我第一次使用cURL,所以这可能是一个愚蠢的错误,但代码如下:
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
打印“1”。据我所知,CURLOPT_RETURNTRANSFER应确保curl_exec返回0或内容,但此处它的行为就好像CURLOPT_RETURNTRANSFER尚未设置为true。我错过了一些明显的东西吗?
谢谢!
答案 0 :(得分:1)
代码似乎是正确的,请尝试curl_getinfo()
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
$outputInfo = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD);
curl_close($ch);
echo $output . PHP_EOL;
echo $outputInfo;
资源可能在字面上返回一个带有“1”的正文
答案 1 :(得分:1)
我遇到了类似的问题,我使用
解决了这个问题curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
问题是服务器回放了一个自定义错误页面,cURL解释为成功。通过使用此选项,可以正确检测到404的自定义错误页面标题代码,并检测到URL失败。
OP指的是使用facebook作为目标,因此我怀疑目标网址也使用了自定义错误消息。
答案 2 :(得分:-1)
我使用Guzzle,它是围绕cURL的OOP包装器。 (虽然因为你刚刚使用GET请求,file_get_contents($url);
会正常工作。但是,您的代码没有真正的问题。您确定网址有效吗?
另外,检查以确保curl_setopt
每次调用都返回true,并尝试使用该函数设置CURLOPT_URL。