php - curl YouTube中没有匹配项-返回null

标签 php curl youtube

但是另一台服务器正常返回内容。

$URL = http://www.youtube.com/get_video_info?&video_id='.$this->VideoId.'&asv=3&el=detailpage&hl=en_US


function curlGet($URL) {

$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0');
curl_setopt($ch, CURLOPT_URL, $URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 

$contents = curl_exec($ch);

if(curl_errno($ch)) {
    echo ' er: ' . curl_error($ch)  ;
}
    // get content
    echo $contents ;
    curl_close($ch);
}

最佳答案

设置选项以查看“请求”和“响应”标题。
如果您的网址已重定向,则最好包含CURLOPT_FOLLOWLOCATION。

这样的事情将有助于发现问题。

 $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_HEADER, true);
  curl_setopt($ch, CURLINFO_HEADER_OUT, true);
  curl_setopt($ch, CURLOPT_VERBOSE, true);
  curl_setopt($ch, CURLOPT_FAILONERROR,true);
  curl_setopt($ch, CURLOPT_AUTOREFERER, true);

  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

  curl_setopt($ch, CURLOPT_ENCODING,"");
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($ch, CURLOPT_FILETIME, true);
  curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows NT 5.1; rv:32.0) Gecko/20100101 Firefox/32.0");
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 100);
  curl_setopt($ch, CURLOPT_TIMEOUT,100);
  $data = curl_exec($ch);
  if (curl_errno($ch)){
      $data .= 'Retreive Base Page Error: ' . curl_error($ch);
  }
  else {
    $skip = intval(curl_getinfo($ch, CURLINFO_HEADER_SIZE)); 
    $responseHeader = substr($data,0,$skip);
    $data= substr($data,$skip);
    $info = curl_getinfo($ch);
    $info = var_export($info,true);
  }
  echo $responseHeader;
  echo $info;
  print_r($data);

关于php - curl YouTube中没有匹配项-返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153118/

相关文章:

javascript - 如何检查 YouTube 视频是否允许嵌入播放

php - SplObjectStorage - 分离行为

node.js - 使用 curl 在 Ubuntu 中安装 Node

linux - 无法绑定(bind)到 Linux 上的特定网络接口(interface)

cURL/WGET 触发错误 500,浏览器工作正常

html - 强制 youtube 嵌入以 720p 开始

php - 我可以在php的if语句中运行while语句吗?

PHP 和 MySQL 对数据库中的每一行执行操作

javascript - 每次点击时显示所选选项的值

google-analytics - 如何跟踪从 utm 到 Youtube 视频页面的源流量?