Php 为HTML编码mySQL文本?

Php 为HTML编码mySQL文本?,php,html,mysql,Php,Html,Mysql,我目前正在一个数据库类型的网站上工作,其中一些文本是纯文本,如撇号、版权、保留符号等 该数据库由2000多个条目组成。我试图找到一种快速安全的方法,用编码的Ex:©;替换未编码的纯文本符号和字符键入字符以确保文本在网站上正确呈现 我在想这样的事情: while($row = mysql_fetch_array($results)){ if (strstr($row['description'], '©'){ //replace with © }

我目前正在一个数据库类型的网站上工作,其中一些文本是纯文本,如撇号、版权、保留符号等

该数据库由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...
 }

我想知道这个方法是否能解决我的问题?如果有人能帮助我以安全的方式完成这项任务?

使用
htmlentities
()方法是合适的方法


请参阅PHP手册中的相关内容。

使用
htmlentities
()方法是正确的方法


请参阅PHP手册关于。

您可以使用
htmlentities()
但在回显文本时不要忘记使用
html\u entity\u decode()

您可以使用
htmlentities()
但在回显文本时不要忘记使用
html\u entity\u decode()

对于有类似问题的用户,我发现这就是我问题的解决方案:

我的内容类型设置为UTF-8,而不是以下类型:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">


将上面的代码添加到我的html头标记中会自动修复渲染问题。

对于那些有类似问题的人,我发现这就是我问题的解决方案:

我的内容类型设置为UTF-8,而不是以下类型:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">


将上面的代码添加到我的html头标记中会自动修复渲染问题。

谢谢您的回复。假设我的字符串当前在mySQL数据库中是“johnny's toys are great™”。那么,使用htmlentities()是否能够将该字符串转换为在HTML中正确呈现的类型?或者我必须首先使用HTMLEntity将字符串存储在数据库中,然后在使用网站上的文本之前使用html\u entity\u解码?如果你在网站上显示它,不要解码它。浏览器可以做到这一点。在数据库中插入时可以执行htmlentities(),这将使每个存储的字符串只执行一次。您完全可以在读取数据库的字符串后执行此操作,但这意味着您的服务器将在每次用户希望看到它时执行此操作。太浪费了。谢谢你的回复。假设我的字符串当前在mySQL数据库中是“johnny's toys are great™”。那么,使用htmlentities()是否能够将该字符串转换为在HTML中正确呈现的类型?或者我必须首先使用HTMLEntity将字符串存储在数据库中,然后在使用网站上的文本之前使用html\u entity\u解码?如果你在网站上显示它,不要解码它。浏览器可以做到这一点。在数据库中插入时可以执行htmlentities(),这将使每个存储的字符串只执行一次。您完全可以在读取数据库的字符串后执行此操作,但这意味着您的服务器将在每次用户希望看到它时执行此操作。太浪费了。谢谢你的回复。假设我的字符串当前在mySQL数据库中是“johnny's toys are great™”。那么,使用htmlentities()是否能够将该字符串转换为在HTML中正确呈现的类型?或者我必须首先使用HTMLEntity将字符串存储在数据库中,然后在使用网站上的文本之前使用html_entity_解码?当它存储在数据库中时,看起来像“johnny's toys is great©但当我尝试在网站上回显文本时,它会使用一些gibrish字符来代替这些特殊字符,而不是渲染,因为它存储在数据库中…感谢您的回复。假设我的字符串当前在mySQL数据库中是“johnny's toys are great™”。那么,使用htmlentities()是否能够将该字符串转换为在HTML中正确呈现的类型?或者我必须首先使用HTMLEntity将字符串存储在数据库中,然后在使用网站上的文本之前使用html_entity_解码?当它存储在数据库中时,看起来像“johnny's toys is great©但当我尝试在网站上回显文本时,它会使用一些gibrish字符来代替这些特殊字符,与其在数据库中存储时进行渲染,不如说它显然解决了问题,但不建议将特殊字符存储到数据库中。很好,它显然解决了问题,但不建议将特殊字符存储到数据库中。。