Как вывести данные из if в отдельную переменную?

Имеется парсер обложек с last.fm, правда немного недописаный. Задача такова: парсер идет на ласт.фм и выдирает обложку исполнителя, если же обложка отсутсвует выводится дефолтный постер.Все это у меня отрабатывает echo, но мне нужно вместо echo организовать вывод данных в переменную и передавать ее в БД. Собственно код парсера.

<?php

$name = "cosmic gate";

$array = array(
           '/\./'               =>'',
           '/( feat)(.*)/'   =>'',
           '/( Ft)(.*)/'     =>'',
           '/( ft)(.*)/'     =>'',
           '/( Feat)(.*)/'   =>'',
           '/( pres)(.*)/'   =>'',
           '/( Pres)(.*)/'   =>'',
           '/( vs)(.*)/'     =>'',
           '/( Vs)(.*)/'     =>''

        );

$artist = preg_replace(array_keys($array),array_values($array),$name);
$url = 'http://ws.audioscrobbler.com/2.0/?method=artist.getInfo&api_key=57ee3318536b23ee81d6b27e36997cde&artist='.$artist;
$xml = @simplexml_load_file($url);
$poster_def = "<img src=\"images/logo.png\"/>";

if ($xml === false) {
  echo $poster_def;

} else {

  if(!empty($xml->artist->image[3])) {

       $poster_last  = $xml->artist[0]->image[3];
       $poster_name  = uniqid() . ".png";
       $poster_dir   = "images";
       $poster_pach  = $poster_dir . "/" . $poster_name;
       echo $xml->artist[0]->image[3];

       file_put_contents($poster_pach, file_get_contents($poster_last));

  } else {

    echo $poster_def;
}
}


?>
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
veydlin
@veydlin
Мне никогда не жалко средств на свое любопытство
Функция
function parse($name){
    $array = array(
               '/\./'            =>'',
               '/( feat)(.*)/'   =>'',
               '/( Ft)(.*)/'     =>'',
               '/( ft)(.*)/'     =>'',
               '/( Feat)(.*)/'   =>'',
               '/( pres)(.*)/'   =>'',
               '/( Pres)(.*)/'   =>'',
               '/( vs)(.*)/'     =>'',
               '/( Vs)(.*)/'     =>''
    );
    $artist = preg_replace(array_keys($array),array_values($array),$name);
    $url = 'http://ws.audioscrobbler.com/2.0/?method=artist.getInfo&api_key=57ee3318536b23ee81d6b27e36997cde&artist='.$artist;
    $xml = @simplexml_load_file($url);
    $poster_def = "<img src=\"images/logo.png\"/>";

    if($xml === false || empty($xml->artist->image[3])) {
        return $poster_def;
    } 

    $poster_last  = $xml->artist[0]->image[3];
    $poster_name  = uniqid() . ".png";
    $poster_dir   = "images";
    $poster_pach  = $poster_dir . "/" . $poster_name;
    file_put_contents($poster_pach, file_get_contents($poster_last));

    return $xml->artist[0]->image[3];
}

$myVar = parse('cosmic gate');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы