我有一个来自lastfm脚本的示例代码我发现..:
function getArtistAlbums($artist, $size) {
$artist = urlencode($artist);
$xml = "http://ws.audioscrobbler.com/2.0/?method=artist.gettopalbums&artist={$artist}&api_key=xxxxxxxxxxxxxxxxxxxxx";
$xml = @file_get_contents($xml);
if(!$xml) {
return; // Artist lookup failed.
}
$xml = new SimpleXMLElement($xml);
$xml = $xml->topalbums;
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->name;
//echo instead of returning
echo $album_name."<br>".$album_image."<br><br>";
}
但是我没有回显结果,而是希望将所有$album_image
返回给变量并从另一个文件中调用它。我试过这个:
$xml = new SimpleXMLElement($xml);
$xml = $xml->topalbums;
$values = array();
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->name;
$values[] = $album_image;
return $values;
//echo instead of returning
#echo $album_name."<br>".$album_image."<br><br>";
}
我知道我需要构建一个数组。我尝试了不同的东西,但是当我调用变量时,我总是得到“数组”。
PS:我对php非常新,所以请提前与我联系,提前谢谢脚本来自此处:http://techslides.com/lastfm-api-with-php/。在我调用其他函数的其他PHP脚本中,例如artist-album,我得到一个带图像的返回,然后我可以设置它并输出我想要的内容。但我无法弄清楚如何输出上述内容。当我在
中调用它时echo '<div class='example'>'.getArtistAlbums(artist,2).'</div>';
它只是回应了图像。
问题是如何以某种方式返回变量,然后在另一个变量中使用,例如对于艺术家专辑。例如:
$artist_image = getArtist($artist,2);
然后将$artist_image
与echo
和clas
等一起使用。
答案 0 :(得分:0)
我愿意:
$xml = new SimpleXMLElement($xml);
$xml = $xml->topalbums;
$values = array();
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->name;
array_push($values, $album_image);
}
return $values;
检查以确保数组内的所有内容都正确无误:
var_dump($values);
访问其他文件中的值..
foreach($values as $val){
echo $val;
}
编辑......我认为这就是你要做的......
$values = getArtistAlbum(artist, 2);
foreach($values as $val){
echo "<div class='example'>".$val."</div>";
}
执行了getArtistAlbum函数后,您将获得返回给您的数组...然后您可以迭代并显示相应的数据。
你也可以跳过做两个循环的步骤,只需将div构建集成到getArtistAlbum函数本身......就像这样....但另一种方式更好,因为它产生更多可重用的代码
function getArtistAlbum($artist, $size){
$xml = new SimpleXMLElement($xml);
$xml = $xml->topalbums;
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->name;
echo "<div class='example'>".$album_image."</div>
}
}
编辑2(根据您的评论)
对于一个div ...
$values = getArtistAlbum(artist, 2);
echo "<div class='example'>";
foreach($values as $val){
echo $val;
}
echo "</div>";
答案 1 :(得分:-1)
试试这个
$album_name='';
foreach ($xml->album as $album) {
$album_img = $album->image[$size];
$album_image = convert($album_img);
$album_name = $album->name;
$values[] = $album_image;
return $values;
//echo instead of returning
$album_name.=$album_image;
}
echo $album_name;