echo strlen('18779873531'); //正常显示 11
echo strlen('13605951301 '); //显示 14
这是什么情况? 导致多个服务的手机验证不通过,库入不了。
1
kuddy 2018-07-12 16:16:46 +08:00
mb_strlen 多字节字符串 utf8 这些了解下?
|
2
cydian 2018-07-12 16:16:48 +08:00 via Android
空格?
|
3
hahasong 2018-07-12 16:18:31 +08:00
需要 trim 一下,末尾有控制符
|
4
wslans 2018-07-12 16:21:31 +08:00
判断前去空格
|
5
qiayue 2018-07-12 16:22:44 +08:00
echo json_encode(array($phone)); 看看输出的字符你就知道了
|
6
Light3 2018-07-12 16:24:44 +08:00
trim 一下啊 兄弟。。。
你自己都不搞搞输入的字段嘛。。 |
7
LeoSocks 2018-07-12 16:24:52 +08:00 via iPhone
第二个明显多了空格。
|
8
beaconfire 2018-07-12 16:25:35 +08:00
trim 不一定能处理完,还是正则吧 |
9
yksoft1 2018-07-12 16:30:29 +08:00
把字符串用正则把第一个只含有数字和'-'的子串分离出来?
|
10
baijunyao 2018-07-12 16:33:38 +08:00
不是空格; trim 去不掉的;正则可以解决;
$phone = '13605951301 '; echo strlen($phone); //15 echo '<hr>'; echo strlen(preg_replace("/\D/", '', $phone)); // 11 |
11
xbonline 2018-07-12 16:36:13 +08:00
哈哈哈
|
12
baijunyao 2018-07-12 16:40:52 +08:00 1
在各种 IDE 中看不出来;到了 vim 就原形毕露了;
|
13
caijihui11 OP |
14
gclove 2018-07-12 17:45:06 +08:00
@caijihui11 你 14 个字符那里有个额外的编码,16 进制 E2 80 AC
|
15
947211232 2018-07-13 08:51:32 +08:00
感觉又一个不谷歌的 novice_phper,天啊
|