我目前致力于数据库类型的网站,其中包含的一些文本是明文,如撇号,版权,保留符号等。对mySQL文本进行HTML编码?
数据库由2000个条目组成。我试图想出一个快速,安全的方法,用编码的Ex:©
类型字符替换未编码的纯文本符号和字符,以确保文本在网站上正确呈现。
我想的是一样的东西:
while($row = mysql_fetch_array($results)){
if (strstr($row['description'], '©'){
//replace with ©
}
if(strstr($row['description'], '\''){
//replace with '
}
....etc...
//once correct string is created, use mySQL to
// update $row['description'] for this row...
}
我在想,如果这个方法将努力解决我的问题?如果有人可以帮助指导我以安全的方式来完成这一点?
感谢您的回复。假设我的字符串是“我的mySQL数据库中的”johnny的玩具很好©“。所以将使用htmlentities()能够将该字符串转换为一种将在HTML中正确呈现?或者我必须首先使用htmlentities将字符串存储在数据库中,然后在使用网站上的文本之前使用html_entity_decode? – AnchovyLegend
如果您在网站上显示它,请勿对其进行解码。浏览器做到了。 当您插入数据库时,您可以执行htmlentities(),这将使您每个存储的字符串只执行一次。 你完全可以在读取数据库的字符串后做到这一点,但这意味着每次用户想要看到它时,服务器都会这样做。这是浪费。 – Bgi