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