2011-07-16 115 views
2

我做,其轉換$ _GET數組到URL字符串格式的PHP函數..PHP自動回聲替代「和」與「&」

例如Array('key1'=>'value1', 'key2'=>'value2') 得到轉換爲:?key1=value1&key2=value2

我認爲它正在做它的工作正常的功能。但是,當我回應結果時,在HTML頁面中,「&」的所有實例均替換爲「&」。所以,瀏覽器中的轉換結果是?key1=value1&key2=value2

這是我的PHP函數:

/** 
* 
* @param Array $GETArray Pass in the associative $_GET array here. 
* @return string The $GETArray converted into ?key=value&key2=value2&... form. 
*/ 
function strGET($GETArray) { 
    if (sizeof($GETArray) < 1) { 
     return ''; 
    } 

    $firstkey = key($GETArray); 
    $firstvalue = $GETArray[$firstkey]; 

    $sofar = "?$firstkey=$firstvalue"; 

    array_shift($GETArray); 

    foreach ($GETArray as $key => $value) { 
     $sofar .= '&'."$key=$value"; 
    } 
    return $sofar; 
} 
+1

我認爲我們需要看看的功能。基本上除非明確告訴,否則PHP不應該自動格式化文本。 – casraf

+0

謝謝,我在問題中添加了我的函數的代碼。 – meltuhamy

+1

&lt; &'在你的標記中。改變它會是錯誤的。 – Gordon

回答

4

迴避你的問題,但使用http_build_query。它確實如此。

此外,您的功能不HTML - 轉義任何東西。 PHP本身也沒有。你必須在某處逃避它。順便說一句,這是正確的。 &符應該逃脫。

+0

謝謝,它總是很好地發現PHP爲你寫了很多你的功能:P ..但回到我的問題,這實際上不是問題!這是我使用lol的代碼檢查器。如果感興趣,請參閱上面的問題評論 – meltuhamy