Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-避免将“+”替换为空格_Php_Special Characters - Fatal编程技术网

PHP-避免将“+”替换为空格

PHP-避免将“+”替换为空格,php,special-characters,Php,Special Characters,我正在开发一个Android应用程序,它会向服务器发送一些哈希值。当然,散列通常包含像+=/这样的特殊字符。我发现我的PHP脚本会自动更改带有空格的+符号,这在某种程度上破坏了我自己的安全机制 我可以用StruxRead函数简单地将空白空间替换为+符号,但我担心是否会有更多这样的情况,PHP会用一些其他字符来改变一些特殊字符。而且,这不是道德的方式 1是否仅与+符号有关,或者也可能出现其他情况 2获取原始未格式化字符串的正确方法是什么?如本文所述,这是一个编码问题,应该在请求Android应用程

我正在开发一个Android应用程序,它会向服务器发送一些哈希值。当然,散列通常包含像+=/这样的特殊字符。我发现我的PHP脚本会自动更改带有空格的+符号,这在某种程度上破坏了我自己的安全机制

<>我可以用StruxRead函数简单地将空白空间替换为+符号,但我担心是否会有更多这样的情况,PHP会用一些其他字符来改变一些特殊字符。而且,这不是道德的方式

1是否仅与+符号有关,或者也可能出现其他情况

2获取原始未格式化字符串的正确方法是什么?

如本文所述,这是一个编码问题,应该在请求Android应用程序而不是服务器中解决。检查Java示例

对于您的具体问题:

有许多控制字符需要编码,因为它们有一个特殊的含义:+&

我认为不可能在PHP中获得原始字符串,因为PHP可能从未见过它。根据URL/HTTP中的定义,Web服务器可能会在将参数传递给PHP之前对其进行URL解码


我认为最好的方法是让你的Android应用程序正确的URL encode+,将它发送的数据作为查询参数%2B,然后PHP什么都不用做。是的,这是一个编码问题。str_replace是解决你问题的简单的服务器端解决方案,但是你自己发现它不道德,也不容易出错。你只是解决症状,而不是问题。