curl_exec不会返回任何数据

时间:2011-05-05 17:27:11

标签: php cakephp curl

我有一个像http://www.url.com/cakephp/controller/action/param:1这样的网址,可以生成HTML页面。

在php文件中我有:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 
    "http://www.url.com/cakephp/controller/action/param:1" ); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); 
$results=curl_exec($ch); 
echo $results." <br />";

除了<br />之外,这段代码不会写任何内容?

如果我使用其他网站,例如www.google.com,则会加载并正确显示。我的问题是什么?

3 个答案:

答案 0 :(得分:1)

很可能CURL以某种方式失败了。试试这个:

$results = curl_exec($ch);
if ($results === FALSE) {
    die(curl_error($ch));
}
echo $results . "<br />";

curl在失败时返回false,因此您需要测试该情况。

答案 1 :(得分:1)

问题是,如果您不遵循该位置(它看起来可能会重定向,因为它是蛋糕)并且如果您不接受cookie,则网站不会提供任何内容。

$cookie = tempnam ("/tmp", "CURLCOOKIE");

$ch = curl_init();
curl_setopt( $ch, CURLOPT_COOKIEJAR, $cookie );
curl_setopt($ch, CURLOPT_URL, "http://www.trofeocaressa.it/cakephp/matches/showMatchesBySeasonId/season_id:1" ); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 ); 
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
$results=curl_exec($ch); 
echo $results." <br />";

应该返回结果。对于将来的参考文献Curl Manual,它列出了您可以传递的内容等等。尝试一些主要项目,例如cookie,引用者,用户代理等。

答案 2 :(得分:0)

也许你应该添加像Marc所说的错误报告,并关闭处理程序

(curl_close($ CH);)