我使用电子邮件地址获得此代码:
$a = "[email protected]";
$b = 'b%40b.com';
$c = urldecode($b);
echo ($a . ' ' . $c);
在浏览器上,两个变量都正确显示:[电子邮件受保护]
但是如果我在服务器上使用 $a 或 $c 作为用户名来读取用户的帐户,则会收到错误,因为它们的值为:b& #8212;b.com(删除空格)。
如果我在第一行代码之后立即使用调试器检查 $a 的值,则表明 $a 已经具有“b& #8212;b.com”值。所以没有额外的步骤可以对其进行编码。
请注意—不是@符号的html代码,而是破折号(-)的代码。
我尝试了 str_replace(),但它不起作用。
PHP 版本 5.3.8
更新:这是一个调试器错误,他们表示将修复。谢谢。
好吧,我发现它仍然可以在控制器内部正常工作 - 尽管调试器将“@”的值显示为“—”。
但是还是很奇怪。也许这只是一个调试器问题,因为其他一切看起来都很好。谢谢。
更新:这是一个调试器错误,他们表示将修复。谢谢。