1

这是我第一次使用 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。我错过了一些明显的东西吗?

谢谢!

4

3 回答 3

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”的主体

于 2012-06-29T22:01:09.487 回答
1

我有一个类似的问题,我通过使用解决了

curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);

问题是服务器返回了一个自定义错误页面,cURL 将其解释为成功。通过使用此选项,正确检测到 404 的自定义错误页面标题代码并检测到 URL 故障。

OP 指的是使用 facebook 作为他们的目标,所以我怀疑目标 url 也使用了自定义错误消息。

于 2013-02-05T22:20:23.950 回答
-1

I'd use Guzzle, which is an OOP wrapper around cURL. (Though since you're just using a GET request, file_get_contents($url); would work fine). There's no real issue with your code, though. Are you sure the URL is valid?

Also, check to make sure that curl_setopt is returning true for each call to it, and try setting the CURLOPT_URL using that function.

于 2012-06-29T21:38:41.847 回答