【发布时间】:2010-10-26 09:22:56
【问题描述】:
在 PHP 中,strtolower 和 mb_strtolower 有什么区别?
如果我想将提交的电子邮件地址转换为小写,我应该使用哪一个?有没有这样的邮箱:Name@Domain-Test.com
如果有这样的email,提交的email地址还要转小写吗?
【问题讨论】:
在 PHP 中,strtolower 和 mb_strtolower 有什么区别?
如果我想将提交的电子邮件地址转换为小写,我应该使用哪一个?有没有这样的邮箱:Name@Domain-Test.com
如果有这样的email,提交的email地址还要转小写吗?
【问题讨论】:
strtolower();不适用于波兰字符
<?php strtolower("mĄkA"); ?>
将返回:mĄka;
最佳解决方案 - 使用 mb_strtolower()
<?php mb_strtolower("mĄkA",'UTF-8'); ?>
将返回:mąka
请参阅 PHP 手册中的 strtolower() 和 mb_strtolower()
【讨论】:
strtolower 和 mb_strtolower 有什么区别?
mb_* 函数适用于多字节字符串。手册说:
与 strtolower() 相比,'alphabetic' 由 Unicode 字符属性决定。因此,此函数的行为不受语言环境设置的影响,它可以转换任何具有“字母”属性的字符,例如 A-umlaut (Ä)。
-
有没有这样的邮件:Name@Domain-Test.com
是的,我想可能会有这样的电子邮件地址。我发现一般来说,电子邮件地址是不区分大小写的,所以我不会费心更改它们的大小写。
【讨论】:
mb_ 函数也适用于Multi-Byte (unicode) 字符串。电子邮件地址不应该区分大小写 - 没有太多理由将它们转换为小写。
【讨论】:
如果你在一个 unicode 字符串上使用这个函数而不告诉 PHP 它是 unicode,那么你会损坏你的字符串。特别是,带有波浪号的大写“A”(常见于 2 字节 UTF-8 字符)被转换为带有波浪号的小写“a”。
mb_strtolower() 非常慢,如果您有数据库连接,您可能希望使用它将字符串转换为小写。甚至latin1/9 (iso-8859-1/15) 和其他编码也是可能的。
【讨论】: