Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当我输出转义的htmlspecialchars字符串时,HTML实体是否不显示?_Php_Utf 8_Escaping_Htmlspecialchars - Fatal编程技术网

Php 当我输出转义的htmlspecialchars字符串时,HTML实体是否不显示?

Php 当我输出转义的htmlspecialchars字符串时,HTML实体是否不显示?,php,utf-8,escaping,htmlspecialchars,Php,Utf 8,Escaping,Htmlspecialchars,嗨,我目前正在开发一个系统,用户可以提交评论 问题是,当我回显转义字符串时,HTML实体并没有像预期的那样显示,但是出于某种原因,如果我在页脚中包含版权HTML实体,它会显示出来,并且工作正常吗 提交的字符串 Why can't i submit this Why can't i submit this 输出的字符串 Why can't i submit this Why can't i submit this 输出将如下所示,这不是我想要的。 用于转义

嗨,我目前正在开发一个系统,用户可以提交评论

问题是,当我回显转义字符串时,HTML实体并没有像预期的那样显示,但是出于某种原因,如果我在页脚中包含版权HTML实体,它会显示出来,并且工作正常吗

提交的字符串

Why can't i submit this
Why can't i submit this
输出的字符串

Why can't i submit this
Why can't i submit this
输出将如下所示,这不是我想要的。

用于转义字符串的函数

function escape($text) {
    return htmlspecialchars($text, ENT_QUOTES, 'UTF-8');
}
我用这个来确保我的网站使用UTF-8

元标记

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta charset="UTF-8">
连接

define("DB_SERVER", "mysql:host=myhost;dbname=mydb;charset=utf8");
define("DB_USER", "my user");
define("DB_PASS", "my password");
define("DB_NAME", "my database");

function dbCon() {
    try {
        $dbCon = new PDO(DB_SERVER, DB_USER, DB_PASS);
    } catch (Exception $ex) {
//        echo $ex->getMessage();
        echo "An error has occured";
    }
    return $dbCon;
}

Ummm
ENT\u引号将转换
到它们的HTML实体等价物-它正按照您告诉它的方式执行。。。您想要
ENT\u COMPAT
ENT\u NOQUOTES
实体不显示为实体吗?应该是这样吗?但是如果您在web浏览器中查看HTML实体,它将呈现
'作为
-当您查看源代码时,您看到了哪些?使用查看源代码而不是检查元素-一个显示代码,另一个显示DOM。@iiiml0sto1 1。)是否向DB插入注释?2.)在插入数据库之前是否使用htmlspecialchars?如果是这样,您不应该……。如果您的目标是防止XSS,那么您应该在不转义的情况下存储输入,然后在显示时调用
escape()
。这将对