• 请不要在回答技术问题时复制粘贴 AI 生成的内容
berumotto
V2EX  ›  程序员

看到这么一句代码

  •  
  •   berumotto ·
    noberumotto · May 18, 2020 · 7290 views
    This topic created in 2361 days ago, the information mentioned may be changed or developed.

    改个项目看到这句代码,php 的,用途是替换一个换行。然而它不用换行符,直接回了个车🤪

    str_replace('
    
    ', '',$str);
    
    34 replies  •  2020-05-19 10:50:58 +08:00
    zarte
    zarte
    May 18, 2020
    1
    有可能不是回车。。。可能是 /r/n 之外的
    k9982874
    k9982874
    May 18, 2020
    2
    乍一看一脸懵 B,去 PHP 测试了一下是可以用的,这是个大神。
    acthtml
    acthtml
    May 18, 2020❤️15
    3
    是个大神,所见即所得
    ningfan120
    ningfan120
    May 18, 2020
    4
    牛逼,长见识
    ila
    ila
    May 18, 2020 via Android
    5
    php 单引号管多行可以这样做,
    python 这样做更麻烦。
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    May 18, 2020
    6
    这样不知道会不会有不同平台换行符的问题
    berumotto
    berumotto
    OP
    May 18, 2020
    7
    @littleylv linux 下因为这个写法出了 bug,所以我才找到它的
    berumotto
    berumotto
    OP
    May 18, 2020
    8
    @zarte 然而目的就是为了替换回车
    shintendo
    shintendo
    May 18, 2020
    9
    这个写法的可读性明显不如换行符吧,更别提潜在的兼容性问题
    lepig
    lepig
    May 18, 2020
    10
    替换的时候一般都是`\r\n`或者`\n` 这种应该在平台上有兼容性问题。 在 windows 下回车就是\r\n Linux 上是\n mac 上好像是\r
    NotFoundEgg
    NotFoundEgg
    May 18, 2020❤️5
    11
    所见即所得 果然 php 是世界上最好的语言
    idealhs
    idealhs
    May 18, 2020
    12
    woc 牛逼
    bravecarrot
    bravecarrot
    May 18, 2020❤️1
    13
    所见即所得 笑死我了
    yafoo
    yafoo
    May 18, 2020 via Android
    14
    用编辑器处理多余的换行时,经常用这种方法,但是这样会完全变成一行,所以我都是把两个换行替换成一个换行,多执行几次就 ok 了。
    xizon
    xizon
    May 18, 2020❤️1
    15
    感觉还是 PHP_EOL 比较好使
    enjoyCoding
    enjoyCoding
    May 18, 2020
    16
    @littleylv 有的 看编辑器格式 windows 默认 \r\n mac 和 Linux 默认 \r
    windows 写完 linux 和 mac 用不了
    qiayue
    qiayue
    May 18, 2020
    17
    临时打印些信息要换行,我也常这样用
    U7Q5tLAex2FI0o0g
    U7Q5tLAex2FI0o0g
    May 18, 2020
    18
    @xizon #15 如果是一个在 windows 下编辑的 txt,到 linux 服务器上用 PHP_EOL 解析,会不会有问题?
    hejw19970413
    hejw19970413
    May 18, 2020
    19
    @enjoyCoding mac 是 \r Linux 是 \n windows \r\n
    enjoyCoding
    enjoyCoding
    May 18, 2020
    20
    @hejw19970413 受教啦 感谢!
    systemcall
    systemcall
    May 18, 2020 via Android
    22
    次世代的 WYSWYG,比别的编程语言领先了一个时代
    php 是世界上最好的语言
    xnode
    xnode
    May 18, 2020
    23
    ... PHP_EOL 这个就是门槛太低的缘故....
    maggch
    maggch
    May 18, 2020 via Android
    24
    @hejw19970413 mac 早就是 n 了,r 是老黄历了
    Huelse
    Huelse
    May 18, 2020
    25
    @berumotto #7 应该是因为这个文件是在 win 下编辑所以 linux 下就用不了了,可以验证下在 linux 下重写看看还有没有效
    Marstin
    Marstin
    May 18, 2020
    26
    长见识了
    siganushka
    siganushka
    May 18, 2020
    27
    PHP_EO L 就是专门干这个的,还跨平台,这么硬编码不会被打么?
    justseemore
    justseemore
    May 18, 2020
    28
    说 PHP_EOL 的,没有考虑过 这个没准是 window 编辑器下的换行呢, 服务器是 linux 的,
    justseemore
    justseemore
    May 18, 2020
    29
    hgc81538
    hgc81538
    May 18, 2020
    30
    通用的寫法應該是 str_replace(array("\r", "\n"), '', $str);
    lululau
    lululau
    May 18, 2020 via iPhone
    31
    人家这个才是真正的换行符好吧,你说的那个反斜杠嗯,是换行符的转义形式🤦‍♂️
    siganushka
    siganushka
    May 18, 2020
    32
    @zpfhbyx PHP_EOL 是获取当前换行符的 const,不同平台其值不一样,你要说在 win 下开发在 linux 运行,那可以用 \r 和 \n,怎么着也不能那样些。
    justseemore
    justseemore
    May 18, 2020
    33
    @siganushka 我知道 PHP_EOL 的用法..这个不用强调,我更倾向于不了解业务就说 PHP_EOL 是不严谨的,只不过是没用\r
    \n 啥的去替换回车呗.
    pigzzz
    pigzzz
    May 19, 2020
    34
    PHP_EOL
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4853 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 06:53 · PVG 14:53 · LAX 22:53 · JFK 01:53
    ♥ Do have faith in what you're doing.