Получить первый результат цикла jach foreach json для YOUTUBE API - PullRequest
0 голосов
/ 01 ноября 2018

По какой-то причине после получения действительных результатов итерации происходит перерыв; Метод не останавливает появление остальных результатов.

Мне нужен первый неверный licensedContent в результате ...

<?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;
    }
}
?>

Но я не могу решить, что я делаю неправильно. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 01 ноября 2018

Ваш код должен быть в порядке, за исключением того, что он будет выводить одно и то же независимо от того, на каком элементе остановится. Таким образом, вы не сможете сказать, какой предмет он нашел.

Это потому, что $vid не изменяется вашим циклом, а все остальное, что вы выводите, жестко запрограммировано.

Я думаю, что, возможно, вы захотите использовать $id вместо $vid в выходных данных, чтобы получить идентификатор конкретного элемента, найденного по коду:

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

Вот живая демонстрация, показывающая результат этого: http://sandbox.onlinephpfunctions.com/code/9c1dc33caef02126f2f94cf5502023da83159bc1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...