所以,我正在创建一个有时处理艺术家和歌曲名称的剧本,而你可能知道,一些艺术家/乐队和歌曲中都有撇号。我的问题是我试图链接到这些乐队/艺术家和歌曲,并且他们名字中的撇号会干扰我的链接,并在完整链接结束之前将其关闭。
任何人都知道如何解决这个问题?
我尝试了htmlspecialcharacters()
,但我想我不知道如何正确使用它,因为如果我使用HTML,它就不会解析HTML。
当我使用htmlspecialcharacters
时会发生这种情况。
虽然看起来应该是这样的
所以是的,任何想法?
<?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
应该有用吗?