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

问题描述 投票:0回答:1

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

$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

更新:这是一个调试器错误,他们表示将修复。谢谢。

php encoding
1个回答
0
投票

好吧,我发现它仍然可以在控制器内部正常工作 - 尽管调试器将“@”的值显示为“—”。

但是还是很奇怪。也许这只是一个调试器问题,因为其他一切看起来都很好。谢谢。

更新:这是一个调试器错误,他们表示将修复。谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.