2011-05-05 44 views
1

我有一个像这样的URL http://www.url.com/cakephp/controller/action/param:1产生一个HTML页面。curl_exec不返回任何数据

里面一个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,它将被加载并正确显示。我的问题是什么?

回答

1

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

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

curl在失败时返回false,所以你需要测试这种情况。

+0

没有错误。但没有打印,这是我想打印的真正链接:http://www.trofeocaressa.it/cakephp/matches/showMatchesBySeasonId/season_id:1 – 2011-05-05 17:46:42

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,它有一个你可以通过它做什么等列表。尝试一些主要项目,如饼干,查阅者,用户代理等。

+0

是的,这很奇怪。我不明白为什么。该URL是公开的,我不是为什么它问我用户和通过。为什么直接链接和卷曲调用创建2个不同的输出? – 2011-05-05 18:52:01

0

也许你应该添加错误报告,如马克说,关闭处理

(curl_close($ CH);)