php - 获取 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;
}
}
?>
但我似乎无法解决我做错了什么。任何帮助将不胜感激。
解决方案
你的代码应该没问题,除了,无论它停在哪个项目上,它都会输出相同的东西。因此,您将无法判断它找到了哪个项目。
那是因为$vid
你的循环不会改变它,而且你输出的所有其他东西都是硬编码的。
我想也许您想使用$id
而不是$vid
在输出中来获取代码找到的特定项目的 ID:
echo 'https://m.youtube.com/watch?v='.$id;
这是一个现场演示,显示了这样做的结果:http ://sandbox.onlinephpfunctions.com/code/9c1dc33caef02126f2f94cf5502023da83159bc1
推荐阅读
- redux - redux-observable use RxJS to emit progress actions for ajax call
- python - Getting unexpected TypeErrorwhen trying to find element on page by text
- java - 努力从用户那里获取 ID
- r - Keras R中图像分类模型中的形状错误
- azure - Azure 门户没有看到 DevOps 组织 [帐户问题?]
- python - 将字符串分配给 numpy.zeros 数组
- connect - 直接连接 P2P 中国网络摄像机 HISEEU HSY-FHY-1080P
- node.js - 在类中使用cheerio 查找数据
- python - 通过 plt.hist() 的累积分布函数
- powershell - 如何在继续执行代码之前等待一系列批处理文件完成?