2014-09-20 120 views
1
<?php 
echo "I'm currently listening to</a> <a href='http://last.fm/artist/" . str_replace(" ","+",$artist) . "/_/" . str_replace(" ","+",$currenttrack) . "'>" . $currenttrack . "</a>"; 
?> 

以上是我的代碼。我想在$artist$currenttrack像再次使用str_replace()我可以在一個字符串中使用str_replace兩次嗎?

str_replace("'","%27",$artist)str_replace("'","%27",$currenttrack)

,因爲那一撇不經過正確和我的代碼混亂,但是當我的空間首先使用它,它已經通過,不會再改變。

我該怎麼辦?

回答

5

如果你想要做相同的字符串多次更換,你可以通過陣列str_replace

str_replace(array(" ", "'"), array("+", "%27"), $artist) 

但是,創建URL參數時,你不應該自己做替換。你應該使用urlencode,它會做所有必要的編碼。

+2

+1 ..不知道爲什麼有人低估了這個答案,這是唯一一個使用str_replace – 2014-09-20 19:48:53

+0

實際解決問題的人謝謝。現在試試這個。 – Cody 2014-09-20 20:36:51

+0

這工作,謝謝你一噸! – Cody 2014-09-20 20:39:56

1

試試這個。它還使您的代碼更具可讀性。另外,您的定位標記格式不正確。

$artist = str_replace(' ', '+', $artist); 
$track = str_replace(' ', '%27', $currenttrack); 

echo 'I\'m currently listening to <a href="http://last.fm/artist/' . $artist . '/_/' . $track . '">' . $track . '</a>'; 
+0

謝謝。現在試試這個。 – Cody 2014-09-20 19:48:28

1

如果我正確理解你的問題,你試圖在兩個字符串中用+和'by%27代替空格。要實現這一點,您必須對第一個操作的結果應用str_replace()。如果$input是原始的字符串,請使用:

$intermediate = str_replace(" ", "+", $input); 
$result = str_replace("'", "%27", $intermediate); 
0

有一個內置的功能做你正在嘗試做相同的:urlencode

$currenttrack = $artist = "X' xx WWW' w"; 

$url = "http://last.fm/artist/" . $artist . "/_/" . $currenttrack; 

echo urlencode($url); // http%3A%2F%2Flast.fm%2Fartist%2FX%27+xx+WWW%27+w%2F_%2FX%27+xx+WWW%27+w 
相關問題