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

你们遇到过这种情况吗? var_dump 打印出的相同字符串,但结果却不相同。

  •  
  •   veike · 2018-08-05 18:24:39 +08:00 · 2587 次点击
    这是一个创建于 2062 天前的主题,其中的信息可能已经有所发展或是发生改变。

    昨天在 segmentfault 看到的。

    $strA = '8888 ‬'; $strB = '8888';

    打印出的结果

    code

    var_dump($strA); var_dump($strB);

    result

    string(7) "8888 ‬" string(4) "8888"

    这个是在 segmentfault 上看到的。原文链接: https://segmentfault.com/a/1190000015886986 然而我在 php7.0 7.2 5.6 打印结果均正常,你们是否遇到这种情况。

    7 条回复    2018-08-05 21:46:57 +08:00
    Tyanboot
        1
    Tyanboot  
       2018-08-05 18:29:21 +08:00 via Android
    后面有不可见字符,所以长度不是 4。我猜你是手打了两个字符串“ 8888 ”然后 dump 了一下。
    dobelee
        2
    dobelee  
       2018-08-05 18:34:19 +08:00 via Android
    这种情况,通常是在浏览器打印,从而 dom 渲染后隐藏了<a> <td>等标签,在写爬虫时比较常见,建议用 cli 调试或 chrome view source。
    qilishasha
        3
    qilishasha  
       2018-08-05 18:35:05 +08:00 via iPhone
    鬼知道你这空格占几个字符
    34C
        4
    34C  
       2018-08-05 19:33:41 +08:00 via iPhone
    前几天不就有帖子在讨论
    inkedawn
        5
    inkedawn  
       2018-08-05 21:40:03 +08:00
    不可见字符多了去了,你打印正常,是他发文章的时候把那特殊字符弄丢了而已
    inkedawn
        6
    inkedawn  
       2018-08-05 21:45:03 +08:00
    $a="test";
    $b="t  est ‬";
    $c="t  e  st ‬";

    var_dump($a); var_dump($b); var_dump($c);
    inkedawn
        7
    inkedawn  
       2018-08-05 21:46:57 +08:00
    v2ex 有自动排版发不了,贴到 gist 了,你运行看看是不是

    https://gist.github.com/inkedawn/1a9bbe1cafcd5ef75fa1f4425b4dfbb1
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5756 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 06:12 · PVG 14:12 · LAX 23:12 · JFK 02:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.