撇号经常干扰脚本?

时间:2014-08-11 00:40:41

标签: php url last.fm

所以,我正在创建一个有时处理艺术家和歌曲名称的剧本,而你可能知道,一些艺术家/乐队和歌曲中都有撇号。我的问题是我试图链接到这些乐队/艺术家和歌曲,并且他们名字中的撇号会干扰我的链接,并在完整链接结束之前将其关闭。

任何人都知道如何解决这个问题?

我尝试了htmlspecialcharacters(),但我想我不知道如何正确使用它,因为如果我使用HTML,它就不会解析HTML。 当我使用htmlspecialcharacters时会发生这种情况。 When I use htmlspecialcharacters

虽然看起来应该是这样的

Although it should look like this

所以是的,任何想法?

<?php
// Made by cxdy on GitHub
// Free to use, keep the credits intact please
$uname = "YOUR USERNAME"; // Your Last.FM username
$key = "YOUR API KEY"; // Your Last.FM API Key
$json = file_get_contents("http://ws.audioscrobbler.com/2.0/?method=user.getrecenttracks&user=" . $uname . "&api_key=" . $key . "&format=json"); // Gets your data
if (strpos($json, 'nowplaying') !== false) {
list($currentsonginfo, $crap) = explode('{"nowplaying":"true"}}', $json);
list($crap, $v2) = explode('{"recenttracks":{"track":[{"artist":{"#text":"', $currentsonginfo);
list($artist, $restinfo) = explode('","', $v2);
list($crap, $currenttrack) = explode('"name":"', $restinfo); }
$playing = $artist . ' - ' . $currentrack; // Checks if a song is playing
if ($playing == ' - ') {
    echo '<a href="http://last.fm/user/' . $uname . '/">';
    echo "I'm not listening to anything."; // Only if you're not scrobbling
    echo "</a>";
} else {
    echo '<a href="http://last.fm/user/' . $uname . '/">';
    echo "I'm currently listening to</a> <a href='http://last.fm/artist/" . str_replace(" ","+",$artist) . "/_/"  . str_replace(" ","+",$currenttrack) . "'>" . $currenttrack . "</a>"; // Linking your song 
    echo " by <a href='http://last.fm/artist/" . str_replace(" ","+",$artist) . "'>" . $artist . "</a>"; // Links your artist, and shows what you're playing, when you play it.
}
?>

另外,请不要使用json_decode()哈哈

修改

另外!我不认为我的错误是清楚的。

基本上,想象一下这首歌&#34;我迷失了没有你&#34;通过blink-182

如果这首歌开始播放,您认为该剧本会将它们与该歌曲联系起来,对吗?它应该链接到http://last.fm/artist/blink-182/_/Im+Lost+Without+You

嗯,问题是,它没有。它链接到http://last.fm/artist/blink-182/_/I

它到达那个撇号并自行关闭。所以我还需要知道如何将撇号变为零。基本上消除它们。如果我更正,str_replace应该有用吗?

0 个答案:

没有答案