Last.fm получает изображение с track.getinfo

Я немного новичок в программировании на PHP, и уже несколько часов я гуглю и пытаюсь заставить это работать. Однако мне не повезло. Надеюсь, кто-нибудь сможет мне помочь :-)

Я пытаюсь использовать API Last.FM для получения изображения обложки одного трека. Это работает, когда он находит тег изображения в XML, но как только его нет в XML-файле от Last.FM, PHP-скрипт выдает много ошибок и все еще пытается вставить битое изображение в документ. Что я хочу сделать, так это то, что если скрипт найдет тег изображения в XML, он отобразит изображение, а если не найдет, отобразит общее изображение.

Это мой код на данный момент (URL-адрес XML-файла здесь работает с изображением);

<?php
$img = simplexml_load_file('http://ws.audioscrobbler.com/2.0/?method=track.getInfo&api_key=f5f149ffcdf2e0db0888f6c477c4abc1&artist=cher&track=believe');
echo '<img src="';
echo $img->track[0]->album[0]->image[3];
echo '">';
?>

Я все перепробовал, но не могу понять. Кто-нибудь хочет помочь мне с этим?


person zorensen    schedule 24.04.2014    source источник


Ответы (1)


Вы можете запросить это изображение с помощью xpath, и если нет результата, укажите значение src по умолчанию.

Кроме того, вы должны кодировать HTML, который вы создаете:

list($src) = $img->xpath('/*/track[1]/album[1]/image[4]')?
             :['http://example.com/path/to/default.png'];

printf('<img src="%s">', htmlspecialchars($src));
person hakre    schedule 07.05.2014
comment
Я получаю 2 изображения, трек и по умолчанию, не сейчас, почему. - person Romano; 02.10.2020