在PHP中,当我写
$string="\thello world\t"
echo trim($string);
这会输出hello world
。但是,当我在HTML表单输入字段中输入相同的字符串并发布到服务器时,行为会发生变化。
echo trim($_POST["string"];
以上代码输出\thello world\t
有什么区别?
答案 0 :(得分:1)
这是因为双引号内的\t
是escape sequence,它扩展为文字制表符。但是,当您在输入字段中键入\t
时,会将其作为文字字符\t
发布。
在此示例中,此代码。
echo trim($_POST["string"];
类似于此代码。
$string='\thello world\t'
echo trim($string);
转义序列不会在单引号声明的字符串中展开。
如果您需要从提交的字符串中扩展转义序列的功能,this question提供了一些技巧。