V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
richangfan
V2EX  ›  编程

PHP 太坑了,一直走下坡路不是没有原因的

  •  
  •   richangfan · 171 天前 · 4838 次点击
    这是一个创建于 171 天前的主题,其中的信息可能已经有所发展或是发生改变。
    echo strlen('\r\n'); //输出 4
    echo strlen("\r\n"); //输出 2
    

    就因为上面的区别,导致生成的邮件一直发不出去

    75 条回复    2023-09-06 13:40:17 +08:00
    php01
        1
    php01  
       171 天前   ❤️ 1
    地球有时候确实没引力,能够理解的。
    garlics
        2
    garlics  
       171 天前   ❤️ 8
    双引号里面内容转义,单引号里面内容不转义,这个基础的语法你都不知道吗?
    hahasong
        3
    hahasong  
       171 天前   ❤️ 31
    怡笑大方,用 PHP 的半吊子太多了能不走下坡路吗
    OceanBreeze
        4
    OceanBreeze  
       171 天前   ❤️ 6
    典型的拉不出屎怪茅坑。
    InDom
        5
    InDom  
       171 天前
    确实,怪不得觉得太坑了。
    brader
        6
    brader  
       171 天前   ❤️ 1
    敢问楼主用的是 PHPSTORM 吗?是的话我相信你应该看到了这两个写法很明显的高亮颜色区别,单引号的时候,\都解析为字符串了,编辑器也是用的黄色高亮。双引号的时候,\r 是整体的,编辑器都高亮别的颜色了,和其他字符串都很明显的区别
    demoshengxw
        7
    demoshengxw  
       171 天前
    那你需要先了解下单引号和双引号的区别。在你的代码中双引号包裹的最终对应的一个换行符序列,单引号包裹就完全当成字符串。
    mrgeneral
        8
    mrgeneral  
       171 天前   ❤️ 4
    本山:怎么你到哪儿,哪都大环境不好,你是破坏大环境的人啊?
    sarices
        9
    sarices  
       171 天前   ❤️ 1
    哈,今天最大的笑话,出现问题应该找下原因,知道原因了你就不会发帖了。
    ldx78203199
        10
    ldx78203199  
       171 天前   ❤️ 1
    这跟语言啥关系。。虽然我是搞 java 的 但是这个明显是自己问题,计算机世界 别说 2 个引号不同,你多个空格都可能是巨大的变化
    richangfan
        11
    richangfan  
    OP
       171 天前
    @garlics
    要求程序输入什么就输出什么,不做多余的事很过分吗?
    下面 Golang 的代码就老老实实输出 2
    ```
    fmt.Println(len("\r\n"))
    ```
    fkdtz
        12
    fkdtz  
       171 天前   ❤️ 4
    哈哈哈哈,没想到楼主又是你,你这一天可太欢乐了。
    参考楼主之前的帖子:“吃铜炉火锅被烫,所以建议不要吃铜炉火锅。”
    哈哈哈哈,我感觉楼主你把论坛玩明白了。
    😋 😋 😋
    QlanQ
        13
    QlanQ  
       171 天前
    哎,你是专门来黑 PHP 的吧
    ochatokori
        14
    ochatokori  
       171 天前 via Android
    朋友,来写 nodejs 吧,就没有这个问题了🐶
    1423
        15
    1423  
       171 天前   ❤️ 3
    楼主似乎在探索一种新型的吸引眼球的发帖方法
    弱智+反转+装傻

    屡试不爽,人类真是脆弱,遇到这种帖子就忍不住点进来骂一句 SB
    cin
        16
    cin  
       171 天前   ❤️ 9
    #11 @richangfan 那你觉得下面这两输出一样吗

    ```
    fmt.Println(len("\r\n"))
    fmt.Println(len(`\r\n`))
    ```
    Rache1
        17
    Rache1  
       171 天前
    要是说这个在 PHP 文档藏得深的话,也就不说你了,可是这个就在字符串章节的第一段



    PHP: String 字符串 - Manual
    https://www.php.net/manual/zh/language.types.string.php
    spicy777
        18
    spicy777  
       171 天前   ❤️ 5
    sheeta
        19
    sheeta  
       171 天前
    连单引号与双引号的区别都不知道,别跟别人说你是写 PHP 的
    wonderfulcxm
        20
    wonderfulcxm  
       171 天前
    自己基础不过关还怪语言,贻笑大方了,哈哈
    wonderfulcxm
        21
    wonderfulcxm  
       171 天前   ❤️ 1
    @fkdtz 难怪,原来是一天吃一顿,而且只吃铜炉火锅的那个。。。
    hefish
        22
    hefish  
       171 天前
    op 自己赶紧反思一下,毕竟 php 是世界上最好的语言。。。
    能把微服务搞好,就完美了。
    BGLL
        23
    BGLL  
       171 天前
    这个是 unix 的特性,很多语言也这样如 Perl, Dart
    dobelee
        24
    dobelee  
       171 天前
    你知道 php 为什么走下坡路?就是这样的半吊子太多了。
    sytnishizuiai
        25
    sytnishizuiai  
       171 天前
    大哥,换个语言黑行不行
    kakki
        26
    kakki  
       171 天前 via Android
    。。。我还以为你有什么 PL 方面的见解。
    InkAndBanner
        27
    InkAndBanner  
       171 天前
    已打钓鱼 tag ,感觉在刻意装蠢污染论坛
    emeab
        28
    emeab  
       171 天前
    来点 JS 笑话
    ```
    "foo" + +"bar"; // -> 'fooNaN'
    !!"false" == !!"true"; // -> true
    !!"false" === !!"true"; // -> true
    NaN === NaN; // -> false
    ```
    Felldeadbird
        29
    Felldeadbird  
       171 天前
    楼主闹笑话了。
    lincanbin
        30
    lincanbin  
       171 天前
    这种一种叫“raw string literal”的语法糖,除了 php ,其他语言也有。
    可能是类似``或者"""""",当然,在 php 下是用''
    wellerman
        31
    wellerman  
       171 天前
    这不不亚于之前在 V2 上看到的“时间戳分本地时间戳和国际时间戳”
    adoal
        32
    adoal  
       171 天前
    unix shell 也是这样的习惯
    linwuhi
        33
    linwuhi  
       171 天前
    我是楼主 我都没有自信再来 v2 了
    zhaokun
        34
    zhaokun  
       171 天前
    @richangfan 不让 go 写个单引号试试?
    BigShot404
        35
    BigShot404  
       171 天前
    楼主但凡你会百度,都不至于说出这个笑话
    Oceanhime
        36
    Oceanhime  
       171 天前
    引战行为,话说楼主是研究了两天怎么发邮件吗?
    guanhui07
        37
    guanhui07  
       171 天前
    自己基础不过关还怪语言,贻笑大方了
    Immortal
        38
    Immortal  
       171 天前   ❤️ 1
    根据大家评论翻了下 op 的历史发帖
    欢乐加倍
    jevonszmx
        39
    jevonszmx  
       171 天前
    单引号和双引号的使用是 php 最最最基础的一部分了
    haha512
        40
    haha512  
       171 天前
    php 全身都是可吐槽的槽点,OP 却偏偏避开了所有槽点(O(∩_∩)O~
    Dart
        41
    Dart  
       171 天前
    不知道为啥还用这个。不是用 PHP_EOL ?
    akira
        42
    akira  
       171 天前   ❤️ 1
    等下,字符串长度和 邮件发不出去有啥关系
    richangfan
        43
    richangfan  
    OP
       170 天前
    @Dart @akira
    Gmail 的 PHP SDK 没提供生成邮件的接口,要自己做,邮件里面的换行符跟 HTTP 一样是`\r\n`
    shench
        44
    shench  
       170 天前
    骂你都是抬举你
    Seanfuck
        45
    Seanfuck  
       170 天前
    以我研究,php 走下坡路主要是 laravel 和 composer 流行,使 php 简单易用的核心优势丧失导致。
    jonsmith
        46
    jonsmith  
       170 天前
    看标题想来吐槽下,看内容我竟无力吐槽。。。
    humbass
        47
    humbass  
       170 天前 via Android
    楼主说的也没错,没有 Laravel 续命,PHP 应该进棺材了。
    ryalu
        48
    ryalu  
       170 天前
    @Immortal #38 笑不活了~原谅我不厚道到笑了

    建议 op 下次提问前可以先问一遍 chatgpt ,省的再问出这种令人啼笑皆非的问题哈哈。但换句话来说,给大家逗乐子你是专业的,谢谢你今天带给我的乐子🐶
    zhuzhibin
        49
    zhuzhibin  
       170 天前 via iPhone
    快跑啊 php 要 G 啦 准备失业了
    killerv
        50
    killerv  
       170 天前
    你说 PHP 走下坡路是没问题的,但是你这个例子是在自爆……
    cooooler
        51
    cooooler  
       170 天前
    @Seanfuck 反了吧,laravel 和 composer 拯救了 php
    draguo
        52
    draguo  
       170 天前
    @Seanfuck 不是,还是因为小公司少了,以前大众创业万众创新的时候需求量很大。没有 composer 跟 laravel ,php 早不行了
    ztxcccc
        53
    ztxcccc  
       170 天前
    @cooooler 是 composer 和 symfony
    8355
        54
    8355  
       170 天前
    哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
    dobelee
        55
    dobelee  
       170 天前
    @Immortal 看了铜锅和 SMTP 表示有被笑到。🤣
    AreYou0k
        56
    AreYou0k  
       170 天前
    别整天惦记你那个 PHP 了, 快来学前端, 月入 30K, 还不用区分单引号和双引号 .
    Leung818
        57
    Leung818  
       170 天前
    点进来之前:PHP 不会又出什么大坑吧?
    点进来之后:就这???(黑人问号脸)
    nothingistrue
        58
    nothingistrue  
       170 天前
    单引号不转移,双引号转移,这确实不是 BUG ,也确实是 Shell 、Perl 、Javascript 等的传统用法。但这种容易引起混淆的用法,不就是大坑吗。
    yunye
        59
    yunye  
       170 天前
    还以为两军阵前你有什么高论。。。。。。。。。
    ShundL
        60
    ShundL  
       170 天前
    单双引号的区别都不太清楚的 php 程序员在说 php 要走下坡路了,那真要走下坡路了,而且坡不小
    iyaozhen
        61
    iyaozhen  
       170 天前
    @richangfan 你是一点没认真学呀,那 go 的话 fmt.Println(len("\\r\\n")) 应该输出什么?
    zengzizhao
        62
    zengzizhao  
       170 天前
    OP 还是别用 PHP 了
    OP 在哪个公司的,说出来让大家也避避坑
    zhangchimr
        63
    zhangchimr  
       170 天前 via iPhone
    我一个门外汉都看笑了,单引号双引号是否一样,就取决于你的自以为是吗……
    julyclyde
        64
    julyclyde  
       170 天前
    不过,发邮件还需要自己去 SMTP 那边发送\r\n 吗?不是调个库就行了?
    Seanfuck
        65
    Seanfuck  
       170 天前
    @cooooler @draguo 确实创业公司喜欢用 laravel 这些,但是大都死了(而且死得还挺快的),留下的都是用老程序的,究竟是谁拯救了谁?
    makun123
        66
    makun123  
       170 天前
    今日摸鱼最佳笑话
    dz5362
        67
    dz5362  
       170 天前
    今日摸鱼最佳笑话+1
    jchnxu
        68
    jchnxu  
       170 天前
    我觉得楼主说的也没错。。尤其是跨语言的开发者,不看文档只求速效的话,是容易被坑
    maigebaoer
        69
    maigebaoer  
       170 天前 via Android
    单双引号问题,这是 PHP 入门常识吧
    ZXCDFGTYU
        70
    ZXCDFGTYU  
       170 天前
    @jchnxu 但是出了问题都不去百度搜一搜就站这跳脚骂街 php 搞拉不出怪地球引力那套这就确实是沾点啥了
    ZXCDFGTYU
        71
    ZXCDFGTYU  
       170 天前
    写代码这项工作对于你来说还是太高科技了,改行吧球球了
    encro
        72
    encro  
       170 天前
    这样賺铜币真快!!!
    2NUT
        73
    2NUT  
       170 天前
    这个不怪 php
    jchnxu
        74
    jchnxu  
       170 天前
    @ZXCDFGTYU 我感觉大概是急了,哈哈。。毕竟他还是自己找到了不是

    实话实说,我也有这样的时候,卡在小问题上着急了
    ZXCDFGTYU
        75
    ZXCDFGTYU  
       169 天前
    @jchnxu 这种着急的时候谁都有,但是沉下心来仔细分析抽丝剥茧查找问题就能发现原因并且解决问题,但是跟这货一样出来跳脚骂街丢人现眼... 唉,物种多样性吧这只能说是。有这个功夫去社区跳脚骂街,百度一下早都解决了,放那没味儿的屁纯就是这人
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1318 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 17:38 · PVG 01:38 · LAX 09:38 · JFK 12:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.