PHP和特殊字符

时间:2015-03-21 16:36:24

标签: php post escaping special-characters html-form

在PHP中,当我写

$string="\thello world\t"
echo trim($string);

这会输出hello world。但是,当我在HTML表单输入字段中输入相同的字符串并发布到服务器时,行为会发生变化。

echo trim($_POST["string"];

以上代码输出\thello world\t

有什么区别?

1 个答案:

答案 0 :(得分:1)

这是因为双引号内的\tescape sequence,它扩展为文字制表符。但是,当您在输入字段中键入\t时,会将其作为文字字符\t发布。

在此示例中,此代码。

echo trim($_POST["string"];

类似于此代码。

$string='\thello world\t'
echo trim($string);

转义序列不会在单引号声明的字符串中展开。

如果您需要从提交的字符串中扩展转义序列的功能,this question提供了一些技巧。