还原转义字符

时间:2009-09-01 10:15:19

标签: php mysql escaping

我使用mysql_real_escape_string()在数据库中保存了一些数据,因此单引号会像'一样进行转义。它在浏览器中看起来没问题,但是当我将文本保存在txt文件中时,如何将其转换回单引号?

3 个答案:

答案 0 :(得分:4)

请注意,mysql_real_escape_string() 将撇号'变为'只有面向HTML的函数才能执行,因此您必须在你的剧本的某个地方打电话给htmlentities()

至于你的问题,你正在寻找的功能是html_entity_decode()

echo html_entity_decode(''', ENT_QUOTES);

答案 1 :(得分:2)

这就是为什么不应该将编码文本存储在数据库中的原因。您应该以原始格式存储它,并在显示时对其进行编码。

现在你必须检查函数编码的字符,并以相反的顺序编写将其转换回的字符串替换。

伪代码示例:

s = Replace(s, "'", "'")
s = Replace(s, "&lt;", "<")
s = Replace(s, "&gt;", ">")
s = Replace(s, "&amp;", "&")

答案 2 :(得分:-1)

这只是“'”的ascii值,使用chr将其恢复为角色。这是代码

$string = "Hello &#39; Man";
$string = preg_replace('|&#(\d{1,3});|e', 'chr(\1)', $string);
echo $string; # Hello ' Man