Получение текстов песен от Musixmatch - PullRequest
0 голосов
/ 24 декабря 2018

К сожалению, у меня нет опыта программирования PHP.Просто Html.
Я безуспешно пытаюсь получить текст из Musixmatch.
Этот код, который я использовал ниже, я использовал для успешного извлечения Bios из Last.fm, и для использования с Musixmatch я изменил значения (url, api_key).
Можете ли вы дать мне небольшую помощь?
Большое спасибо.
С Рождеством.

   <?php
   $fields = array(    
         'q_track' => $track,    
         'q_artist' => $artist,    
         'api_key' => 'xxxxxecab2a0072c88ee31b50a4225b');    
$fields_string = '';    
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }    
rtrim($fields_string,'&');    
$ch = curl_init();    
curl_setopt($ch, CURLOPT_TIMEOUT, 10);    
curl_setopt($ch, CURLOPT_URL,  
'http://api.musixmatch.com/ws/1.1/matcher.lyrics.get');    
curl_setopt($ch, CURLOPT_POST, true);    
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);    
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; 
Windows NT 5.0)");    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
$response = curl_exec($ch);    
curl_close($ch);    
$soap = simplexml_load_string($response);    ?>


<div>
<div  />
<h3><?php echo $track; ?></h3>
</div>
<br><div><p><?php print nl2br(strip_tags($soap->body->lyrics- 
>lyrics_body)); ?></p><br></div> 

1 Ответ

0 голосов
/ 24 декабря 2018

1 / Вы отправляете запрос, используя метод POST, который не поддерживается API.Попробуйте заменить запрос CURL следующим:

$ch = curl_init();    
curl_setopt($ch, CURLOPT_URL,  
'http://api.musixmatch.com/ws/1.1/matcher.lyrics.get?'.$fields_string);       
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
$response = curl_exec($ch);    
curl_close($ch);  

2 / Тип ответа API - JSON, поэтому попробуйте использовать json_decode() вместо simplexml_load_string()

Alos, Iрекомендуем использовать HTTPS.

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