2011-05-27 63 views
1

有人能告訴我我在做什麼錯了如何使用PHP在&符號上爆炸數組?我想發送一個來自這個數組的AJAX字符串;並沒有什麼我想是工作 - >Implode on符號,PHP

$mrq = (implode("&",$mrqa)); 

正在產生

macro0=A¯o1=B 

不過,我期待它產生

macro0=A&macro1=B 

有沒有辦法來解決這個問題?我正在使用UTF-8,所以這應該不成問題。

+2

要構建查詢,您應該使用[http_build_query](http://php.net/manual/en/function.http-build-query.php) – Robik 2011-05-27 19:39:05

+10

問題不在implode中,輸出問題。使用'htmlspecialchars'或以純文本形式查看輸出,而不是html。 – 2011-05-27 19:39:06

+0

如果您的$ mrqa字符串值爲UTF-8,請確保您顯示爲UTF-8 – 2011-05-27 19:39:55

回答

0

您可以在放入url之前轉換每個參數。

foreach($mrqa as $key => $m) 
$mrqa[$key] = urlencode($m); 

$mrq = implode("&",$mrqa); 
1

問題不在implode中,輸出問題,因爲&macr是一個html實體。
使用htmlspecialchars或以純文本格式輸出,而不是以html格式輸出。
此外,正如評論中所述,要構建您的請求,您可以使用http_build_query函數。