PHP CURL冻结了对Vimeo的exec

时间:2014-02-01 00:13:34

标签: php vimeo oembed

我有一些继承的代码使用OEmbed PHP Library来获取Vimeo视频的嵌入代码。截至今天(2014年1月31日),当在该库中调用curl_exec函数时,它开始冻结。在此之前,这段代码已经完美地运行了。认为这是服务器的一些问题我把代码带到我的本地开发机器,并且我惊讶地它也在那里冻结。

为了尝试提供一个简单的可重现代码,我将JSON信息的curl下载提取到以下脚本中:

<?php

$url = "http://vimeo.com/api/oembed.json?url=http%3A%2F%2Fvimeo.com%2F64279006&maxwidth=&maxheight=&format=json";

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);

if($data = curl_exec($ch)){
  $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

  if($http_code >= 200 && $http_code < 300){
    $result["success"] = true;
    $result["data"] = $data;
    $result["http_code"] = $http_code;
  }else{
    $result["success"] = false;
    $result["http_code"] = $http_code;
    $result["url"] = $url;
  }
}else{
  $result["success"] = false;
  $result["curl_error_code"] = curl_errno($ch);
};

curl_close($ch);

print_r($result);

如果我将网址更改为“http://vimeo.com/api/oembed.json?url=http%3A%2F%2Fvimeo.com%2F64279006”,“http://vimeo.com/api/oembed.json”或甚至只是“http://vimeo.com/”,那么我会有相同的行为。但是,如果我改变一些其他非vimeo URL它可以正常工作。

任何人都知道为什么会冻结?

2 个答案:

答案 0 :(得分:0)

这里完全相同的问题。今天开始。我可以从命令行卷曲相同的URL,但是当我从PHP命中它时会冻结。我可以很好地卷入YouTube。只是没有Vimeo。 WTF。

答案 1 :(得分:0)

今天下午在我们的服务器上出现同样的问题:vimeo很慢,我们的服务器几乎冻结了