Youtube api v3 получить keywords к ролику

123
ДП
На сайте с 23.11.2009
Offline
203
#11

Вот на прошлой странице вы куда-то вставили var_dump() и написали, что он вывел - пост #5.

Вот в том же месте используйте join().

просто вы какие-то отдельные куски кода копипастите, для вас всё очевидно и понятно, а для тех, кто зашёл в тему - не особо. При этом в особо длинных простынях кода разбираться никто тоже не будет

S
На сайте с 13.11.2012
Offline
72
#12

Вот тот код

protected function getVideo($id){
$part = "snippet,statistics";
$this->url = "https://www.googleapis.com/youtube/v3/videos?key={$this->config["key"]}&part=$part&videoEmbeddable=true&videoSyndicated=true&id=$id";
$data = $this->http(TRUE);
//var_dump($data);
$array['tags']=join(",",$data['tags']);
$data->items[0]->snippet->description = nl2br($data->items[0]->snippet->description);
if ($this->badwords($data->items[0]->snippet->title)==true) {
header("Location: {$this->config["url"]}");
exit;
}
return $data->items[0];
}

если добавить $array['tags']=join(",",$data['tags']);

то ошибка появляется, сайт не грузит.

ДП
На сайте с 23.11.2009
Offline
203
#13

Сдается мне, что когда вы вывод var_dump() показывали - то обрезали его.

Почему-то мне кажется, что там что-то типа

$array['tags']=join(",",$data->items[0]->tags);

должно быть.

В общем и целом - советую с теорие по работе с массивами и объектами ознакомиться.

S
На сайте с 13.11.2012
Offline
72
#14

Да, обрезал. Там много кода, вот весь https://i.gyazo.com/aaaa54d63a092702284824534c70b7ce.png

Добавил строку $array['tags']=join(",",$data->items[0]->tags);

сайт грузит но так и остается Array

S
На сайте с 13.11.2012
Offline
72
#15

Вывел ключи так:

<?php
$my_array=join(", ",Main::tags());
print_r($my_array);
?>

Теперь если ключи есть то они выводятся.

Но если ключей нет то код

public static function tags(){
if(empty(self::$tags)){
return self::$config["tags"];
}else{
return self::$tags;
}
}

не работает и заданные в админке ключи не отображаются.

При этом возникают ошибки:

Notice: Undefined property: stdClass::$tags in

Main::set("tags",$yt->snippet->tags);

и

Warning: join(): Invalid arguments passed in

$my_array=join(", ",Main::tags());

Как решить проблему, чтобы при отсутствии ключей, выводились дефолтные ключи из конфига?

Спасибо!

S
На сайте с 13.11.2012
Offline
72
#16

Понял в чем причина )

Помогите вписать значение из конфига в мою конструкцию, верно.


<?php
$my_array=join(", ",Main::tags());
print_r($my_array);
echo Main::tags(); //выводит данные из конфига если нет ключей
?>

Пробовал else применить, не получилось.

Сейчас работает, если ключи с ютуба получены они отображаются а в конце добавляется Array + ошибка

Notice: Array to string conversion in в строке echo Main::tags();

Если ключи с ютуба не получены, значение заданное в конфиге отображается корректно но тоже есть ошибка

Warning: join(): Invalid arguments passed in в строке $my_array=join(", ",Main::tags());

Спасибо!

S
На сайте с 30.09.2016
Offline
469
#17

Вам надо вручить медаль за максимальную писучесть на форуме. А руководство по функциям и конструкциям PHP почитать не судьба? Чтобы не писать print_r там, где его писать ни к чему, и echo - там, где это вообще делать нельзя. И не называть строковую переменную гордым именем $my_array.

Пожалуйста.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
S
На сайте с 13.11.2012
Offline
72
#18

<?php
$my_array=join(", ",Main::tags());
print ($my_array);
print Main::tags();
?>

Тоже работает но с теми же ошибками.

S
На сайте с 30.09.2016
Offline
469
#19

Естественно. Потому что не знаешь - читай руководство, а не лепи наугад, что в голову взбредёт. Не знаю, как другим, а мне, например, интересно решать и подсказывать, когда что-то реально не получается, а не переписывать заведомо неверный код.

S
На сайте с 13.11.2012
Offline
72
#20

Так у меня реально и не получается.

Я неделю с массивом разбирался, и решение выше я в сети нашел, от сюда и $my_array...

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий