Php 通过POST isn'接收的HTML实体;t与在同一页面中创建的实体不可比

Php 通过POST isn'接收的HTML实体;t与在同一页面中创建的实体不可比,php,html,entity,Php,Html,Entity,$\u POST[“poundSymbol”]=“£;”显示为false 这是为什么?我如何绕过它?我认为最安全的方法是使用htmlentities()和其他方法。这样一来,它可以与或£(如果您不需要对£;的支持,请仅保留第二种选择)。对于此类测试,我个人会使用严格的比较: if($_POST["poundSymbol"] === "£" || htmlentities($_POST["poundSymbol"]) === "&pound

$\u POST[“poundSymbol”]=“£;”
显示为false


这是为什么?我如何绕过它?

我认为最安全的方法是使用
htmlentities()
和其他方法。这样一来,它可以与
£(如果您不需要对
£;
的支持,请仅保留第二种选择)。对于此类测试,我个人会使用严格的比较:

if($_POST["poundSymbol"] === "£" || htmlentities($_POST["poundSymbol"]) === "£"){
    //...
}

我认为最安全的方法是使用
htmlentities()
和其他方法。这样一来,它可以与
£(如果您不需要对
£;
的支持,请仅保留第二种选择)。对于此类测试,我个人会使用严格的比较:

if($_POST["poundSymbol"] === "£" || htmlentities($_POST["poundSymbol"]) === "£"){
    //...
}

当你做
var_dump($_POST[“poundSymbol]”)时,你会得到什么?类似于
或者更确切地说
£
string(2)“
可能有助于
html\u实体\u解码
工作。对于加号,它只在使用十六进制代码而不是实体代码时起作用,但不管怎样,问题已经解决了。谢谢。请注意,在OP的情况下,
html\u entity\u decode
并不是真正必要的,只需使用
$\u POST[“poundSymbol”]==“£”
即可。不过,我在回答中没有选择这个选项,因为它在不同的编码下更稳定?类似于
或者更确切地说
£
string(2)“
可能有助于
html\u实体\u解码
工作。对于加号,它只在使用十六进制代码而不是实体代码时起作用,但不管怎样,问题已经解决了。谢谢。请注意,在OP的情况下,
html\u entity\u decode
并不是真正必要的,只需使用
$\u POST[“poundSymbol”]==“£”
即可。不过,我在回答中并没有选择这个选项,因为它在不同的编码下更稳定。