为什么这个php cURL功能无法正常工作

时间:2011-02-10 09:13:27

标签: php

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 Moved Permanently”文档已移至此处。错误。为什么呢?

3 个答案:

答案 0 :(得分:32)

根据您的评论,您将获得302状态代码。试试

curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);

遵循30倍重定向。

curl_setopt()上的手册

答案 1 :(得分:3)

为get_data函数添加一个选项:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

Google正在将您重定向到本地google服务器,而您的curl通话目前并不是在追逐重定向。

是啊,是的 并执行var_dump($returned_content);查看结果:P

答案 2 :(得分:-1)

可能就像添加“回声”一样简单 请尝试以下行:

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

另外,请检查是否在PHP.ini中激活了cURL模块

要轻松找到以下行,请将以下行放在名为info.php

的新文件中
<?php
 phpinfo();

?>

搜索cUrl。

如果找不到,请查看http://php.net/manual/en/book.curl.php以了解安装php curl模块所涉及的内容

或者在你的卷曲选项中添加以下内容:

curl_setopt($ CH,CURLOPT_FOLLOWLOCATION,TRUE);

抱歉双重帖子。