$str=ltrim("852546","852"); echo $str;
我设想是 去除前面的 852 但结果是去除了 8525
$str=ltrim("852546","852"); echo $str;
我设想是 去除前面的 852 但结果是去除了 8525
1
Sanko May 5, 2019 via Android
|
2
maichael May 5, 2019
第二个参数是一个“字符集”,不是一个“字符串”。
|
3
Telegram May 5, 2019
同好奇
|
4
leadfast May 5, 2019
同好奇+1
|
5
donething May 5, 2019 via Android
不懂
|
6
haiyang416 May 5, 2019
去掉固定字符串可以用 str_replace。
|
7
haiyang416 May 5, 2019
trim 函数的第二个参数可以理解为正则里面的 [852]。
|
8
nazor May 5, 2019
去掉前面的所有的 8,5,2 所以会去掉两个 5
|
9
leadfast May 5, 2019
|
10
NjcyNzMzNDQ3 May 5, 2019
有趣的问题,代替方案例如 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 May 5, 2019
>>> trim('852546245258', '852');
=> "4624" |
12
wufeng OP 理解了 我以为是字符串
现在用 str_replace 代替了 |
13
juneszh May 5, 2019
看看 document 就能找到答案。。。
|
14
NjcyNzMzNDQ3 May 5, 2019
@wufeng 用 preg_replace 吧,你用的 ltrim 说明你要替换开头的字符,str_replace 所有位置都会被替换的。
|
15
supuwoerc May 5, 2019
试试 str_replace
|