V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
wufeng
V2EX  ›  问与答

这 PHP 代码 我哪里错了?

  •  
  •   wufeng · 2019-05-05 11:21:01 +08:00 · 2277 次点击
    这是一个创建于 2011 天前的主题,其中的信息可能已经有所发展或是发生改变。

    $str=ltrim("852546","852"); echo $str;

    我设想是 去除前面的 852 但结果是去除了 8525

    15 条回复    2019-05-05 15:18:58 +08:00
    Sanko
        1
    Sanko  
       2019-05-05 11:37:43 +08:00 via Android
    maichael
        2
    maichael  
       2019-05-05 11:51:40 +08:00
    第二个参数是一个“字符集”,不是一个“字符串”。
    Telegram
        3
    Telegram  
       2019-05-05 12:15:35 +08:00
    同好奇
    leadfast
        4
    leadfast  
       2019-05-05 12:16:18 +08:00
    同好奇+1
    donething
        5
    donething  
       2019-05-05 12:16:53 +08:00 via Android
    不懂
    haiyang416
        6
    haiyang416  
       2019-05-05 12:16:58 +08:00
    去掉固定字符串可以用 str_replace。
    haiyang416
        7
    haiyang416  
       2019-05-05 12:18:03 +08:00
    trim 函数的第二个参数可以理解为正则里面的 [852]。
    nazor
        8
    nazor  
       2019-05-05 12:18:46 +08:00
    去掉前面的所有的 8,5,2 所以会去掉两个 5
    leadfast
        9
    leadfast  
       2019-05-05 12:22:03 +08:00
    NjcyNzMzNDQ3
        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
    tongz
        11
    tongz  
       2019-05-05 14:16:44 +08:00
    >>> trim('852546245258', '852');
    => "4624"
    wufeng
        12
    wufeng  
    OP
       2019-05-05 15:04:58 +08:00
    理解了 我以为是字符串
    现在用 str_replace 代替了
    juneszh
        13
    juneszh  
       2019-05-05 15:08:54 +08:00
    看看 document 就能找到答案。。。
    NjcyNzMzNDQ3
        14
    NjcyNzMzNDQ3  
       2019-05-05 15:12:03 +08:00
    @wufeng 用 preg_replace 吧,你用的 ltrim 说明你要替换开头的字符,str_replace 所有位置都会被替换的。
    supuwoerc
        15
    supuwoerc  
       2019-05-05 15:18:58 +08:00
    试试 str_replace
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3217 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 00:04 · PVG 08:04 · LAX 16:04 · JFK 19:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.