提交表单时保持值编码


keeping value encoding when submitting a form

>我正在发布一个带有值的表单输入:

http://www.domain.com/script.php?var1=1120&var2=254949&url=http%3A%2F%2Fwww.domain2.com%2Ffile%2Bname%3Fvar1%3Dvalue1

在服务器 (PHP) 上,我得到这个值:

http://www.domain.com/script.php?var1=1120&var2=254949&url=http://www.domain2.com/file+name?var1=value1

无论如何都可以接收原始未解码值吗?

你只需要对字符串的一部分进行编码。为了实现这一点,使用函数explode来制作两个元素的数组,对第二个元素进行编码并将它们再次放在一起。类似的东西可能会有所帮助。

$str ='http://www.domain.com/script.php?var1=1120&var2=254949&url=http://www.domain2.com/file+name?var1=value1';
$url = explode('url=',$str);
$str2 = $url[0].'url='.urlencode($url[1]);
echo($str2);