阻止php自动将'@'编码为' - '

时间:2015-01-08 11:19:01

标签: encoding

我使用电子邮件地址代码:

$a = "b@b.com"; 
$b = 'b%40b.com';
$c = urldecode($b);

echo ($a . ' ' . $c);

在浏览器上,两个变量都正确显示:b@b.com

但是如果我在服务器上使用$ a或$ c作为用户名来读取用户的帐户,我会收到错误,因为它们的值是:b& #8212; b.com(删除空格)。

如果我使用调试器在第一行代码后立即检查$ a的值,则表明$ a已经具有“b— b.com”值。所以没有可以对其进行编码的额外步骤。

请注意& —不是@符号的html代码,而是破折号的代码( - )。

我尝试了str_replace(),但它不起作用。

PHP Version 5.3.8

更新:这是一个调试器错误,他们说他们会修复。感谢名单。

1 个答案:

答案 0 :(得分:0)

好吧,我发现它仍然可以在控制器内部工作 - 尽管调试器显示了' @'作为'& #8212;'

但它仍然很奇怪。也许它只是一个调试器问题,因为其他一切看起来都很好。感谢名单。

更新:这是一个调试器错误,他们说他们会修复。感谢名单。