Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
youtube api json提要php错误_Php_Api_Youtube_Json - Fatal编程技术网

youtube api json提要php错误

youtube api json提要php错误,php,api,youtube,json,Php,Api,Youtube,Json,好的,所以我试图实现的是使用youtube api获取一些提要。提要是json-c编码的。因此,我尝试使用file_get_contents方法将json提要URL转换为字符串,并对其进行json解码。以下是代码片段: $feedURL = "https://gdata.youtube.com/feeds/api/videos?q=surfing&v=2&alt=jsonc"; $json = file_get_contents($feedURL,0,null,null); $r

好的,所以我试图实现的是使用youtube api获取一些提要。提要是json-c编码的。因此,我尝试使用file_get_contents方法将json提要URL转换为字符串,并对其进行json解码。以下是代码片段:

$feedURL = "https://gdata.youtube.com/feeds/api/videos?q=surfing&v=2&alt=jsonc";
$json = file_get_contents($feedURL,0,null,null);
$result = json_decode($json, true);
echo $result;
$id = $result->{'data'}->{'items'}[0]->{'id'};
echo "The video id is: ".$id;
但我得到了这个愚蠢的错误警告:文件获取内容(https://gdata.youtube.com/feeds/api/videos?q=surfing&v=2&alt=jsonc)[function.file get contents]:无法打开流:第13行/opt/lampp/htdocs/date.php中的连接被拒绝 注意:试图在第16行的/opt/lampp/htdocs/date.php中获取非对象的属性 注意:试图在第16行的/opt/lampp/htdocs/date.php中获取非对象的属性 注意:试图在第16行的/opt/lampp/htdocs/date.php中获取非对象的属性

该文件名为date.php,我正在代理服务器后面的linux机器上的localhost上运行它

我认为连接被拒绝的事情表明可能存在ip冲突或其他问题。我不知道。谁能帮我修一下吗

试试看:


$url = 'http://www';

 $proxy = 'tcp://xxx:8080';

 $context = array(
    'http' => array(
        'proxy' => $proxy,
        'request_fulluri' => True,
        ),
    );

 $context = stream_context_create($context);

 $body = file_get_contents($url, False, $context);

foreach($val形式的结果[“数据”][“项目]){
echo$val[“id”]。“
”; }
似乎您正在关闭连接的代理服务器。对于通过包含文件内容的代理进行访问的问题,已经有了答案


您可以使用
curl

$feedURL = "https://gdata.youtube.com/feeds/api/videos?q=surfing&v=2&alt=jsonc";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $feedURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
//curl_setopt($ch,CURLOPT_PROXY,"x.x.x.x:8888"); // Proxy Use
$json = curl_exec($ch);

$result = json_decode($json, true);
foreach($result['data']['items'] as $items)
{
    var_dump($items['id']);
}

请检查另一个URL,并验证代理是否正在关闭。我已经尝试过了。它给出了与任何其他url相同的错误,但是使用此方法可以在没有任何问题的情况下访问localhost上的文件检查此错误!所以我们需要在$proxy中指定代理ip地址和端口。很抱歉,我尝试了curl。它没有显示任何错误,但没有显示任何内容。不管怎样,我发现了问题所在,这确实是一个代理问题。谢谢大家的帮助。我真的很感谢您在这里添加您的代理
IP
port
curl\u setopt($ch,CURLOPT\u proxy,“x.x.x.x:8888”)
$feedURL = "https://gdata.youtube.com/feeds/api/videos?q=surfing&v=2&alt=jsonc";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $feedURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
//curl_setopt($ch,CURLOPT_PROXY,"x.x.x.x:8888"); // Proxy Use
$json = curl_exec($ch);

$result = json_decode($json, true);
foreach($result['data']['items'] as $items)
{
    var_dump($items['id']);
}