2011-02-10 72 views
8
function get_data($url) { 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt($ch,CURLOPT_URL,$url); 
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout); 
    $data = curl_exec($ch); 
    curl_close($ch); 
    return $data; 
} 

我从网上找到这个函数。当我在使用此代码$returned_content = get_data('http://google.com');的php文件中测试它时,它无法工作并获得“301永久移动”文档已移至此处。错误。为什么?为什么这个php cURL函数不能工作

+4

什么情况或不会发生? – 2011-02-10 09:14:41

+1

你得到302移动http错误?或类似的东西。精心制作的男人。 – 2011-02-10 09:20:16

+0

yeap,我得到一个302移动http error.how来更正代码。谢谢 – runeveryday 2011-02-10 09:21:20

回答

29

根据你的意见,你得到了302状态码。尝试

curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true); 

跟随30x重定向。

手册上curl_setopt()

-1

可能只是为增加一个“回声” 试试下面这行一样简单:

echo get_data('http://google.com'); 

另外,请检查是否卷曲模块在php.ini

激活

要了解刚才容易在一个名为info.php的新文件中放入以下行:

<?php 
phpinfo(); 

?> 

搜索cUrl。

如果你不能找到它,请看看http://php.net/manual/en/book.curl.php,看看有什么是涉及到安装PHP卷曲模块

或添加以下到您的卷曲选项:

curl_setopt($ CH,CURLOPT_FOLLOWLOCATION ,真正);

对于双重帖子感到抱歉。

+0

如果cURL扩展没有被激活,他会得到一个未定义的函数错误,第一个地方... -_- – BoltClock 2011-02-10 09:25:10

3

增加一个选项,您GET_DATA功能:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

谷歌您重定向到本地服务器,谷歌和你通话卷曲目前不追重定向。

噢,
并做了var_dump($returned_content);看到的结果:P

相关问题