$str=ltrim("852546","852"); echo $str;
我设想是 去除前面的 852 但结果是去除了 8525
1
Sanko 2019-05-05 11:37:43 +08:00 via Android
|
2
maichael 2019-05-05 11:51:40 +08:00
第二个参数是一个“字符集”,不是一个“字符串”。
|
3
Telegram 2019-05-05 12:15:35 +08:00
同好奇
|
4
leadfast 2019-05-05 12:16:18 +08:00
同好奇+1
|
5
donething 2019-05-05 12:16:53 +08:00 via Android
不懂
|
6
haiyang416 2019-05-05 12:16:58 +08:00
去掉固定字符串可以用 str_replace。
|
7
haiyang416 2019-05-05 12:18:03 +08:00
trim 函数的第二个参数可以理解为正则里面的 [852]。
|
8
nazor 2019-05-05 12:18:46 +08:00
去掉前面的所有的 8,5,2 所以会去掉两个 5
|
9
leadfast 2019-05-05 12:22:03 +08:00
|
10
NjcyNzMzNDQ3 2019-05-05 14:08:28 +08:00
有趣的问题,代替方案例如 substr/preg_repalce/str_replace 皆可。
原因是如二楼所说,ltrim 的第二个参数去掉的二楼说的字符集(即 ASCII )码。 例子来自 php 文档: // trim the ASCII control characters at the beginning of $binary // (from 0 to 31 inclusive) $clean = ltrim($binary, "\x00..\x1F"); str_replace 的第二个参数类型是:@param mixed $replace ltrim 的第二个参数类型是:@param string $character_mask |
11
tongz 2019-05-05 14:16:44 +08:00
>>> trim('852546245258', '852');
=> "4624" |
12
wufeng OP 理解了 我以为是字符串
现在用 str_replace 代替了 |
13
juneszh 2019-05-05 15:08:54 +08:00
看看 document 就能找到答案。。。
|
14
NjcyNzMzNDQ3 2019-05-05 15:12:03 +08:00
@wufeng 用 preg_replace 吧,你用的 ltrim 说明你要替换开头的字符,str_replace 所有位置都会被替换的。
|
15
supuwoerc 2019-05-05 15:18:58 +08:00
试试 str_replace
|