我正在创建一个将$ _GET数组转换为URL字符串格式的PHP函数。
e.g。 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;
}
答案 0 :(得分:4)
回避您的问题,但请使用http_build_query
。它正是如此。
此外,您的函数不会HTML转义任何东西。 PHP本身也不是。你必须在某个地方逃避它。 BTW,这是正确的。 Ampersands应该逃脱。
答案 1 :(得分:0)