例如,我想存储字符串"That's all"。MySQL自动转义'字符。我如何从数据库回显字符串使用php,但删除前转义字符像' ?我还想保留其他格式,如新行和空格。
您是否尝试过stripslashes()
,关于换行符仅使用nl2br()
函数
的例子:
$yourString = "That's alln folks";
$yourString = stripslashes(nl2br($yourString));
echo $yourString;
注:\
双斜杠会变成单斜杠
你应该设置你自己的函数,比如:
$yourString = "That's alln folks";
function escapeString($string) {
return stripslashes(nl2br($string));
}
echo escapeString($yourString);
nl2br()
文档
编辑2
你看到这些的原因是因为mysql正在转义换行等等。我猜你正在使用mysql_*
函数。你应该看看mysqli
或PDO
。
下面是一个例子:
$yourString = "That's all
folks";
echo mysql_escape_string($yourString);
输出:
都是rn的人
如果使用预处理语句,则在插入时不会转义这些字符。
如果无法避免在输入中添加斜杠,请使用stripslashes()
删除斜杠。
首先,magic_quotes_gpc转义像' or "这样的字符。您也可以在php.ini中禁用此功能。但随后你就应该逃避那些自己不知道会不会被"感染"的东西。
当转义字符串被写入数据库时。字符串不包含这些转义字符,当您再次输出它们时。你应该看到你想要的结果。
我自己更喜欢这样的方法:存储所有不转义的内容,并在输出时转义或显示内容。您还可以轻松地使用str_replace("n", "", $text)
来防止显示新闻行。
问候系统