与硬编码字符串

时间:2015-08-05 13:40:46

标签: php

我有一个表单,我想从中发送一个包含\ 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!";

显示不相等。

我认为它与魔术引号有关,所以我添加了

  1. magic_quotes_gpc =关闭
  2. magic_quotes_runtime =关闭
  3. magic_quotes_sybase =关
  4. php.ini并没有帮助。我从phpinfo

    获取了php.ini文件

    还有其他想法吗?

    我发现自PHP 5.4.0起就删除了magic_quotes,所以不是那样。

    编辑:由于@Steve已经提到用户的输入字符串按字面解释 - 例如,\显示为ascii%5C。我正在寻找一种方法让服务器解释\ r到%D - 回车?

1 个答案:

答案 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!";