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 PRO 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 ![]() ![]() |
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,天啊 |