Php 如何解码除html实体以外的所有实体
我有一个字符串,它有一些特殊的字母,比如“Php 如何解码除html实体以外的所有实体,php,html-entities,html-encode,Php,Html Entities,Html Encode,我有一个字符串,它有一些特殊的字母,比如“á”和htmlcode,比如“”。当我在数据库中存储这个字符串时,我使用:htmlentities($string,entu引号)。 问题是当我输出文本时,我使用html\u entity\u decode($string\u from\u db,ENT\u QUOTES)和数据库中的所有实体,如“á;”来表示字母和字符“您可以在html\u entity\u decode之后再执行一次htmlspecialchars;该函数仅将在HTML中
á
”和htmlcode,比如“
”。当我在数据库中存储这个字符串时,我使用:htmlentities($string,entu引号)代码>。
问题是当我输出文本时,我使用html\u entity\u decode($string\u from\u db,ENT\u QUOTES)
和数据库中的所有实体,如“á;
”来表示字母和字符“您可以在html\u entity\u decode
之后再执行一次htmlspecialchars
;该函数仅将在HTML中具有特殊功能的字符转换为其实体:
htmlspecialchars(html_entity_decode($string_from_db, ENT_QUOTES), ENT_QUOTES)
这应该注意结果字符串没有未编码的html字符。当然,就性能而言,这可能不是最好的解决方案,但很简单 看来我已经明白了。。。。至少现在是这样。以下是我正在做的:
由用户提交的文本,我使用以下内容对其进行清理:
function sanitize_form_input($string) {
$string = mysql_real_escape_string($string);
return $string;
}
获取页面编码,php编码,html编码,mysql编码。。。以及编码设置为UTF-8的任何其他可能的事情
使用以下命令输出文本:
function sanitize_db_output($string) {
return htmlentities(stripslashes($string), ENT_QUOTES, 'UTF-8');
}
如果这样做是错误的,请告诉我。这对我没有帮助,因为它也会转换字母:|你为什么要做斜杠?你的代码不也会像你说的那样,把所有字符都显示为实体吗?我想我的答案的更新应该对你有用。。。