首页 > 解决方案 > 获取 YOUTUBE API 的 PHP foreach 循环 json 的第一个结果

问题描述

由于某种原因在得到迭代的有效结果后,break;方法不会阻止其余结果的出现。

结果,我需要第一个虚假的许可内容...

<?php
$link2 = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails&id=".$vid."&key=". $api;

$video2 = file_get_contents($link2);
$video2 = json_decode($video2, true);

foreach ($video2['items'] as $data) {

    $licensed = $data['contentDetails']['licensedContent'];
    $id = $data['id'];

    if ($licensed == false) {
      echo 'https://m.youtube.com/watch?v='.$vid; 
      echo ($licensed == false ? "false" : "true")."<br/>";
      break;
    }
}
?>

但我似乎无法解决我做错了什么。任何帮助将不胜感激。

标签: phpjsonapiyoutubeiteration

解决方案


你的代码应该没问题,除了,无论它停在哪个项目上,它都会输出相同的东西。因此,您将无法判断它找到了哪个项目。

那是因为$vid你的循环不会改变它,而且你输出的所有其他东西都是硬编码的。

我想也许您想使用$id而不是$vid在输出中来获取代码找到的特定项目的 ID:

echo 'https://m.youtube.com/watch?v='.$id;

这是一个现场演示,显示了这样做的结果:http ://sandbox.onlinephpfunctions.com/code/9c1dc33caef02126f2f94cf5502023da83159bc1


推荐阅读