使用PHP解码字符串

使用PHP解码字符串,php,Php,我试图用PHP解码一个字符串,但它似乎没有返回正确的结果 我试过使用html\u entity\u decode以及utf8\u decode(urldecode()) 当前代码: $str = "joh'@test.com"; $decodeStr = html_entity_decode($str, ENT_COMPAT, "UTF-8"); 预期回报为john@test.com我想字符“n”的html实体代码是错误的。 工作示例: $str = "joh&#11

我试图用PHP解码一个字符串,但它似乎没有返回正确的结果

我试过使用
html\u entity\u decode
以及
utf8\u decode(urldecode())

当前代码:

$str = "joh'@test.com";
$decodeStr = html_entity_decode($str, ENT_COMPAT, "UTF-8");

预期回报为
john@test.com

我想字符“n”的html实体代码是错误的。 工作示例:

$str = "john@test.com";
echo $decodeStr = html_entity_decode($str, ENT_COMPAT, "UTF-8");

我认为字符“n”的html实体代码是错误的。 工作示例:

$str = "john@test.com";
echo $decodeStr = html_entity_decode($str, ENT_COMPAT, "UTF-8");

@
的实体不应该是
@而不是
'
哪个是撇号?

@
的实体不应该是
@而不是
'
表示撇号?

表示
n
的HTML实体代码是
&110,而字符串中的实体代码用于单个撇号
。如果要转换单引号,则调用
html\u entity\u decode()
时必须使用
ENT\u quotes
标志,因为默认值为
ENT\u COMPAT | ENT\u HTML401
(来自),它不转换单引号。如果需要其他标志,可以使用管道
|
符号“添加”它们,如:
ENT_HTML401 | ENT_QUOTES

如果您期望
john@test.com

$str = "john@test.com";
$decodeStr = html_entity_decode($str, ENT_COMPAT, "UTF-8");
echo $decodeStr;  // john@test.com
$str = "joh'@test.com";
$decodeStr = html_entity_decode($str, ENT_QUOTES, "UTF-8");
echo $decodeStr; // joh'@test.com
或者,如果您希望看到joh'@test.com

$str = "john@test.com";
$decodeStr = html_entity_decode($str, ENT_COMPAT, "UTF-8");
echo $decodeStr;  // john@test.com
$str = "joh'@test.com";
$decodeStr = html_entity_decode($str, ENT_QUOTES, "UTF-8");
echo $decodeStr; // joh'@test.com

n
的HTML实体代码是
n,而字符串中的实体代码用于单个撇号
。如果要转换单引号,则调用
html\u entity\u decode()
时必须使用
ENT\u quotes
标志,因为默认值为
ENT\u COMPAT | ENT\u HTML401
(来自),它不转换单引号。如果需要其他标志,可以使用管道
|
符号“添加”它们,如:
ENT_HTML401 | ENT_QUOTES

如果您期望
john@test.com

$str = "john@test.com";
$decodeStr = html_entity_decode($str, ENT_COMPAT, "UTF-8");
echo $decodeStr;  // john@test.com
$str = "joh'@test.com";
$decodeStr = html_entity_decode($str, ENT_QUOTES, "UTF-8");
echo $decodeStr; // joh'@test.com
或者,如果您希望看到joh'@test.com

$str = "john@test.com";
$decodeStr = html_entity_decode($str, ENT_COMPAT, "UTF-8");
echo $decodeStr;  // john@test.com
$str = "joh'@test.com";
$decodeStr = html_entity_decode($str, ENT_QUOTES, "UTF-8");
echo $decodeStr; // joh'@test.com

你是怎么编码的?您的原始字符串似乎是
joh'@test.com
。它是由我正在使用的cms编码的-我不确定编码的细节。在不知道编码规则的情况下,您如何解码?您是如何编码的?您的原始字符串似乎是
joh'@test.com
。它是由我正在使用的cms编码的-我不确定编码的细节。在不知道编码规则的情况下,您如何解码它?感谢您的答复-不,它应该是撇号。如果“它应该是撇号,这是正确的”,我们如何解释您的“预期回报是
john@test.com
“?感谢您的回复-不,它应该是撇号是正确的。如果“它应该是撇号是正确的”,我们如何解释您的“预期回报是
john@test.com
”?谢谢你的回答-不,应该是撇号。谢谢你的回答-不,应该是撇号。