在PHP中,strtolower
和mb_strtolower
之间有什么区别?
如果我想转换提交的电子邮件地址,要转换为小写,我应该使用哪一个?有没有这样的电子邮件:Name@Domain-Test.com
如果有这样的电子邮件,我是否仍应将提交的电子邮件地址转换为小写?
答案 0 :(得分:10)
用strtolower();对波兰人不起作用
<?php strtolower("mĄkA"); ?>
将返回:mĄka;
最佳解决方案 - 使用mb_strtolower()
<?php mb_strtolower("mĄkA",'UTF-8'); ?>
将返回:mąka
见strtolower()&amp; PHP手册中的mb_strtolower()
答案 1 :(得分:5)
strtolower和mb_strtolower之间的区别是什么?
mb_ *函数使用多字节字符串。手册说:
与strtolower()相比,'alphabetic'由Unicode字符属性决定。因此,此函数的行为不受区域设置的影响,并且它可以转换任何具有“字母”属性的字符,例如A-umlaut(Ä)。
-
是否有这样的电子邮件:Name@Domain-Test.com
是的,我想可能会有像这样的电子邮件地址。我发现一般来说,电子邮件地址不区分大小写,所以我不打算改变他们的情况。
答案 2 :(得分:4)
mb_函数也适用于Multi-Byte(unicode)字符串。电子邮件地址不应区分大小写 - 没有太多理由将它们转换为较低的。
答案 3 :(得分:0)
如果您在Unicode字符串上使用此函数而没有告诉PHP它是Unicode,那么您将破坏字符串。特别是,在2字节UTF-8字符中常见的带有波浪号的大写字母“ A”将转换为带有波浪号的小写字母“ a”。
from scipy.optimize import fmin_l_bfgs_b
import numpy as np
def obj_fun(x):
fx = 2*x**2 + 2*x + 1
grad = np.array([4*x + 2])
return fx, grad
fmin_l_bfgs_b(obj_fun, x0=[12])
非常慢,如果您有数据库连接,则可能需要使用它来将字符串转换为小写。甚至mb_strtolower()
和其他编码也是可能的。