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