【问题标题】:Get the first result of a PHP foreach loop json for YOUTUBE API获取 YOUTUBE API 的 PHP foreach 循环 json 的第一个结果
【发布时间】:2019-04-05 17:52:20
【问题描述】:

由于某种原因得到迭代的有效结果后,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;
    }
}
?>

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

【问题讨论】:

  • 嘿,我今天早些时候回复了你的previous question。如果它有帮助(您正在使用我的代码,所以我认为它确实有效),请记住将其标记为“已接受”(单击答案旁边的勾号,使其变为绿色)。然后人们就会知道它在将来很有用。谢谢。如果它以某种方式没有帮助,请发表评论,以便改进或提供进一步的帮助。本网站根据反馈工作 - 如果您不接受答案或为他们投票,将来人们将不会提供帮助。
  • 除非是拼写错误,否则您缺少结束大括号 } 以结束您的 foreach 循环
  • 这是一个错字,我只复制了那部分代码。我正确地得到了结果,每个视频 id 分开,但仍然不能只得到第一个。还有阿迪森,我正在赚取积分来投票和评论,如果我可以投票,让我再试一次,因为你的回答有效,非常感谢。
  • 你不能upvote直到你得到15个代表,但你可以accept answers(与投票不同)
  • 无论如何,你的代码应该没问题,除了,无论它停在哪个项目上,它都会输出相同的东西。那是因为 $vid 不会被您的循环更改,并且您输出的所有其他内容都是硬编码的。您是不是想使用 $id 而不是 $vid 来附加到 youtube 网址?

标签: php json api youtube iteration


【解决方案1】:

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

这是因为 $vid 不会被您的循环更改,并且您输出的所有其他内容都是硬编码的。

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

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

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

【讨论】:

    猜你喜欢
    • 2015-09-18
    • 1970-01-01
    • 2017-02-02
    • 1970-01-01
    • 2015-04-23
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多