我们从客户端系统获取&
而不是&
的网址:somedomain.com?param1=test&param2=test2
我希望获得$_GET['param1']
和$_GET['param2']
。相反,我得到$_GET['amp;param1']
和$_GET['amp;param2']
我是否将其修改为.htaccess或PHP中的重写规则?
更新:
临时解决方法是执行以下操作,但它看起来很笨拙:
foreach ($_GET AS $key => $value)
{
$param = str_replace('amp;', '', $key);
$_GET[$param] = $value;
unset($_GET[$key]);
}
答案 0 :(得分:0)
将字符?
和&
转换为某些代币,例如:
?
__Q__
到str_replace('?', '__Q__', $toUrl)
使用&
__AND__
到str_replace('&', '__AND__', $toUrl)
并将此数据传递给网址。
从url获取此数据时,请将其解码回来。
str_replace('__Q__', '?', $fromUrl)
str_replace('__AND__', '&', $fromUrl)
虽然很棘手,但确实有效。
答案 1 :(得分:-1)
您似乎在HTML中定义了“somedomain.com?param1=test¶m2=test2”。因此HTML正在将&
转换为&
引用。
只需尝试将&
代替&
,例如:somedomain.com?param1=test&param2=test2