我有一个表单,我想从中发送一个包含\ r \ n的字符串。在我使用$ _GET [name]在php文件中收到字符串后,我打印它并显示\ r \ n字符。当我定义一个具有\ r \ n字符的字符串并且我打印它时它不显示那些字符。 另一件事是比较这些字符串:
if($input == "Hello \r\n Good \r\n Sir!")//$input = "Hello \r\n Good \r\n Sir!"
echo "equal!";
else
echo "not equal!";
显示不相等。
我认为它与魔术引号有关,所以我添加了
到php.ini
并没有帮助。我从phpinfo
还有其他想法吗?
我发现自PHP 5.4.0起就删除了magic_quotes,所以不是那样。
编辑:由于@Steve已经提到用户的输入字符串按字面解释 - 例如,\显示为ascii%5C。我正在寻找一种方法让服务器解释\ r到%D - 回车?
答案 0 :(得分:0)
// Remove \n and \r
$input = trim(preg_replace('/\s\s+/', ' ', $input));
// Replace multi spaces
$input = preg_replace('!\s+!', ' ', $input);
if($input == "Hello Good Sir!")
echo "equal!";
else
echo "not equal!";