0

我的代码有点问题。我正在尝试从 Spotify 中提取歌曲 ID。这对我来说很好,但不适用于 url 中的特殊字符(如 ü、ö、ä)。

我收到此警告(第一行是回显的 URL):

http://ws.spotify.com/search/1/track?q=Sportfreunde+Stiller+AND+track:Frühling
Warning: SimpleXMLElement::__toString() [simplexmlelement.--tostring]: Node no longer exists in /Applications/AMPPS/www/spotify.php on line 28

这是我的代码:

function getID($artist,$title){

$url = utf8_decode("http://ws.spotify.com/search/1/track?q=".$artist."+AND+track:".$title);
echo $url;
    $xml = simplexml_load_file($url);
    $id= $xml->track->attributes();
    return($id);

 }

echo getID("Sportfreunde+Stiller","Frühling");

如何解决这个问题?我尝试了 utf_encode(),但这没有成功。

谢谢!

4

1 回答 1

0

这与 UTF-8 编码无关,当然也与命名错误的utf8_decode/utf8_encode函数无关,它应该真正命名为utf8_to_iso8859_1/ iso8859_1_to_utf8,并且很少是任何编码问题的正确答案。

严格来说,URL 只能包含一组非常有限的字符——基本的字母、数字和一些标点符号。其他任何东西都必须使用像%3f.

要正确转义 URL 中的字符串,您可以使用 PHP 函数urlencode(),例如

$url = "http://ws.spotify.com/search/1/track?q=" . urlencode($artist) . "+AND+track:" . urlencode($title);
于 2013-05-05T18:36:02.623 回答