【问题标题】:When pulling a URL from a MYSQL Database, My PHP cURL function won't work从 MYSQL 数据库中提取 URL 时,我的 PHP cURL 函数不起作用
【发布时间】:2012-05-24 12:54:21
【问题描述】:

我将这个函数用于我的 cURL 查询。

function get_source($url){
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt ($ch, CURLOPT_HEADER, 0);
$source = curl_exec ($ch);
return $source;
}

该功能完美运行,但是当我尝试在我的 MySQL 数据库中的 URL 上运行它时,它无法运行...

我已完成以下测试...我正在尝试获取 YouTube 视频的来源:

测试 1:

echo get_source("http://www.youtube.com/watch?v=WxfZkMm3wcg");

**Result: Works, returns the source code of the video.**

测试 2:

$video="http://www.youtube.com/watch?v=WxfZkMm3wcg";
echo get_source($video);

**Result: Works, returns the source code of the video.** 

测试 3:

$video_arr=mysql_fetch_array(mysql_query("SELECT video FROM videos WHERE id='$video_id'")); 
$video=$video_arr['video'];
echo get_source($video);

**Result: Does not work. A blank string gets returned and there aren't any cURL errors that I can see...**

测试 4(只是为了显示我的查询有效)

$video_arr=mysql_fetch_array(mysql_query("SELECT video FROM videos WHERE id='$video_id'")); 
$video=$video_arr['video'];
var_dump($video);

**Result: string(38) "http://youtube.com/watch?v=WxfZkMm3wcg"**

我不知道该怎么做,甚至不知道出了什么问题。有什么建议吗?

【问题讨论】:

  • 不确定这是否有帮助,但在您的上一个示例中应该是 www
  • @fl3x7:这确实很重要。 curl 得到 302 重定向响应,实际上是空的。
  • 哇,感谢 fl3x7,修复了它。不敢相信我已经为此工作了几个小时,这就是问题 xD
  • 没问题,很高兴它有帮助。不用担心,长时间查看相同的代码可以做到这一点,哈哈
  • 是的,你必须用一双新的眼睛来观察它,才能捕捉到你一直忽视的简单事物。这就是 StackOverflow 摇滚的原因 :)

标签: php mysql curl


【解决方案1】:

尝试将CURLOPT_FOLLOWLOCATION 设置为true,以便页面可以在必要时重定向。

【讨论】:

  • 谢谢。我实际上用www修复了它。前缀,但我想这也会这样做,因为它试图重定向我。
【解决方案2】:

为什么将CURLOPT_FOLLOWLOCATION 设置为false? youtube 的非 www url 正在尝试重定向到 www,但没有跟随位置,您得到的只是请求重定向的标头。您要么需要手动操作,要么打开followlocation。如果有可用的 fopen 包装器(file_get_contents($video)),您可能希望使用它们来代替它们。

【讨论】:

    猜你喜欢
    • 2015-12-14
    • 1970-01-01
    • 2020-01-22
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    相关资源
    最近更新 更多