【发布时间】:2018-12-24 16:27:23
【问题描述】:
很遗憾,我没有任何 PHP 编码经验。只是 HTML。
我正在尝试从 Musixmatch 中检索歌词但没有成功。
下面的这段代码用于从 Last.fm 成功检索 Bios,并与 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>
【问题讨论】:
-
您收到什么错误?您使用的用户代理已经很老了。
-
感谢您的回答。我收到一个空的回复,没有错误。这是我测试代码的页面:companyfm.com/lyrics4.php
-
将
ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL);放在您的开头<?php标签的正下方;它是否显示任何错误? @克劳迪奥马蒂诺 -
这些是错误:警告:simplexml_load_string():实体:第 1 行:解析器错误:需要开始标记,在第 59 行的 /home/i6mjtazilgjm/public_html/lyrics4.php 中找不到“
-
和:注意:尝试在第 65 行的 /home/i6mjtazilgjm/public_html/lyrics4.php 中获取非对象的属性“正文”注意:尝试获取非对象的属性“歌词”在第 65 行的 /home/i6mjtazilgjm/public_html/lyrics4.php 注意:尝试在第 65 行的 /home/i6mjtazilgjm/public_html/lyrics4.php 中获取非对象的属性“lyrics_body”