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

请教一个小问题,浏览器打印 PHP 数组时怎么自动换行

  •  
  •   hyd8323268 · 2019-06-22 16:36:41 +08:00 · 5215 次点击
    这是一个创建于 1983 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看到别的人的用 print 或者 vardump 打印的时候都是自动换行的,我的都是一行,每次都得 F12 才能方便看

    54 条回复    2019-06-24 09:44:37 +08:00
    xnode
        1
    xnode  
       2019-06-22 16:42:37 +08:00
    ."\n";
    hyd8323268
        2
    hyd8323268  
    OP
       2019-06-22 16:44:12 +08:00
    @xnode 不是 是数组,打印出来以后都在一行,我是想问这么弄成自动规整过的
    KomeijiSatori
        3
    KomeijiSatori  
       2019-06-22 16:44:55 +08:00
    view-source: 啊

    浏览器默认是不渲染 \r\n 的
    hyd8323268
        4
    hyd8323268  
    OP
       2019-06-22 16:46:05 +08:00
    @KomeijiSatori 什么意思....
    des
        5
    des  
       2019-06-22 16:46:44 +08:00
    <pre><? var_dump($aa); ></pre>
    hyd8323268
        6
    hyd8323268  
    OP
       2019-06-22 16:47:37 +08:00
    @des 不是,不需要在代码里面修改
    x86
        7
    x86  
       2019-06-22 16:48:55 +08:00
    别人开了 xdebug 的拓展
    hyd8323268
        8
    hyd8323268  
    OP
       2019-06-22 16:49:23 +08:00
    @x86 我也开了 xdebug 了 还是没有
    x86
        9
    x86  
       2019-06-22 16:51:17 +08:00
    @hyd8323268 #8
    看下 php.ini 里的 html_errors 开启了没
    x86
        10
    x86  
       2019-06-22 16:53:05 +08:00
    另外说下你什么环境?
    如果是 PHPStudy 的话软件中开启 debug 是错误的,要手动在配置文件里把 xdebug 路径修正
    garlics
        11
    garlics  
       2019-06-22 16:57:25 +08:00 via Android
    截图看看?
    EscYezi
        12
    EscYezi  
       2019-06-22 17:00:18 +08:00 via iPad   ❤️ 1
    print_r
    datou
        13
    datou  
       2019-06-22 17:01:27 +08:00   ❤️ 1
    <br />
    hongdaworks
        14
    hongdaworks  
       2019-06-22 17:03:06 +08:00
    使用预定义格式<pre>标签包数组打印代码
    iyaozhen
        15
    iyaozhen  
       2019-06-22 17:06:35 +08:00 via Android
    你能不能来个图?
    youzi118
        16
    youzi118  
       2019-06-22 17:08:30 +08:00
    echo "<pre>";
    wxyoung
        17
    wxyoung  
       2019-06-22 17:13:02 +08:00
    右键 -> 查看源代码
    hyd8323268
        18
    hyd8323268  
    OP
       2019-06-22 17:14:57 +08:00
    @wxyoung 不是我想要的效果
    wentaoliang
        19
    wentaoliang  
       2019-06-22 17:15:00 +08:00 via iPhone
    查看源代码...就可以了
    hyd8323268
        20
    hyd8323268  
    OP
       2019-06-22 17:15:06 +08:00
    @x86 是 phpstudy
    misaka19000
        21
    misaka19000  
       2019-06-22 17:15:39 +08:00 via Android
    哈哈,PHP 果然是世界上最好语言
    hyd8323268
        22
    hyd8323268  
    OP
       2019-06-22 17:15:44 +08:00
    @iyaozhen 大哥你教我怎么能上传图 : )
    hyd8323268
        23
    hyd8323268  
    OP
       2019-06-22 17:16:08 +08:00
    @wentaoliang 我就是为了省这一步
    x86
        24
    x86  
       2019-06-22 17:17:06 +08:00   ❤️ 1
    @hyd8323268 #20
    PHPstudy 的话找 php.ini 文件,拉倒最下面把 xdebug 的路径改正确,作者预留的是他的路径
    hyd8323268
        25
    hyd8323268  
    OP
       2019-06-22 17:22:35 +08:00
    @x86 我现在的内容如下:

    [XDebug]
    xdebug.profiler_output_dir="D:\work_tool\phpstudy\PHPTutorial\tmp\xdebug"
    xdebug.trace_output_dir="D:\work_tool\phpstudy\PHPTutorial\tmp\xdebug"
    zend_extension="D:\work_tool\phpstudy\PHPTutorial\php\php-5.6.27-nts\ext\php_xdebug.dll"

    这个 zend_extension 是我修改过的,还是不可以,这个扩展文件也是有的
    youzi118
        26
    youzi118  
       2019-06-22 17:24:03 +08:00
    @hyd8323268 你试下我说的,在打印的数组前面加上
    echo "<pre>";
    hyd8323268
        27
    hyd8323268  
    OP
       2019-06-22 17:26:19 +08:00
    @youzi118 是可以的 但是我想怎么不这样强行修改,去改 print_r 的原代码?我担心有时候会出问题
    youzi118
        28
    youzi118  
       2019-06-22 17:31:52 +08:00   ❤️ 1
    @hyd8323268 我倒是没有考虑过你说的问题,我工作的时候一直这么用的,打印数据的话肯定也是测试,不会应用到生产环境中.
    dobelee
        29
    dobelee  
       2019-06-22 18:03:39 +08:00 via Android
    无语。。。这玩意还要改源代码。
    自己实现一个方法,自动包含 pre 不就好了,或者自动把\n 替换成<br>。
    Canon1014
        30
    Canon1014  
       2019-06-22 18:28:32 +08:00
    ```php
    function dd($data){
    echo "<pre>";
    var_dump($data);
    echo "</pre>";
    die();
    }
    ```
    Laravel 写多了喜欢用 dd
    写到一个公共函数的文件下
    在框架入口文件引入
    baobao1270
        31
    baobao1270  
       2019-06-22 18:38:34 +08:00
    把 HTTP Header 设成 text/plain
    ben1024
        32
    ben1024  
       2019-06-22 19:02:02 +08:00 via iPhone
    <pre> or <br/>
    jiejiss
        33
    jiejiss  
       2019-06-22 20:21:09 +08:00
    Content-Type: text/plain
    ShundL
        34
    ShundL  
       2019-06-22 20:41:45 +08:00
    xdebug.overload_var_dump ???
    我觉得你应该放一张“别的人的 print ”截图看看效果。。。或者把时间精力用在写 bug 上。
    yc8332
        35
    yc8332  
       2019-06-22 20:44:24 +08:00
    你没有开 xdebug。。。不然就自己加下 pre 标签
    Rekkles
        36
    Rekkles  
       2019-06-22 23:25:57 +08:00
    用 composer 么,全局 composer 加载一个 var_dump,把 laravel 的 dd 方法复制一下 启动 php 的时候加载

    [地址]( https://learnku.com/articles/5075/php-global-uses-the-laravel-helper-function-dd)
    hundan
        37
    hundan  
       2019-06-23 00:50:31 +08:00 via Android
    找个 var_dump 的浏览器插件吧
    1762628386
        38
    1762628386  
       2019-06-23 01:42:51 +08:00
    **百度:css 自动换行**
    1762628386
        39
    1762628386  
       2019-06-23 01:44:33 +08:00
    ```
    <style>
    .divcss5{ border:1px solid #00F; height:120px; width:200px;word-wrap:break-word}
    </style>
    ```
    realpg
        40
    realpg  
       2019-06-23 02:41:16 +08:00
    @hyd8323268 #2
    右键,查看网页源代码
    msg7086
        41
    msg7086  
       2019-06-23 05:09:22 +08:00
    print_r 输出的是纯文本,你浏览器吃的是 HTML。
    你要么 1. 改掉 print_r 输出 HTML。
    你要么 2. 写函数用 HTML 包住输出。
    你要么 3. 用 CSS 格式化纯文本。
    你要么 4. 让浏览器以纯文本渲染文件。

    1 太麻烦了。
    2 #26 #30 #36
    3 #39
    4 #33
    要是 2 3 4 都不喜欢的话,自己下载 PHP 改源码自己编译去吧……
    vacker
        42
    vacker  
       2019-06-23 05:59:15 +08:00 via Android
    不用楼上那么麻烦,chrome 浏览器有扩展,https://github.com/zxlie/FeHelper 是你想要的
    pixiaotiao
        43
    pixiaotiao  
       2019-06-23 08:33:18 +08:00 via Android
    print_r 查看源代码不是换行的吗
    way2create
        44
    way2create  
       2019-06-23 10:01:07 +08:00
    1 xdebug+html_errors=On
    2 pre 或很多框架也自带打印函数
    3 view-source
    ipwx
        45
    ipwx  
       2019-06-23 10:11:57 +08:00
    Content-Type: text/plain; charset=utf-8
    jimxu16
        46
    jimxu16  
       2019-06-23 10:40:32 +08:00 via iPhone
    看到别人的时候问下别人不就好了
    liuzhiyong
        47
    liuzhiyong  
       2019-06-23 11:00:46 +08:00 via Android
    pre 标签应该管用。
    VeryZero
        48
    VeryZero  
       2019-06-23 11:28:05 +08:00
    echo '<pre>';
    var_dump(array());
    flxxy
        49
    flxxy  
       2019-06-23 13:33:39 +08:00 via Android
    print_r($arr)
    davin
        50
    davin  
       2019-06-23 14:04:32 +08:00
    .print {white-space: pre-wrap}
    如果你打印的时候就没有换行,那就是没换行了。
    chen2019
        51
    chen2019  
       2019-06-23 14:15:20 +08:00 via Android
    输出之前 先 exho "<pre>"
    chen2019
        52
    chen2019  
       2019-06-23 14:15:50 +08:00 via Android
    echo "<pre/>";
    moodasmood
        53
    moodasmood  
       2019-06-24 09:44:03 +08:00
    直接 php test.php 这样运行?你别在浏览器里面运行啊
    moodasmood
        54
    moodasmood  
       2019-06-24 09:44:37 +08:00
    你用 phpstorm 的话,直接在代码文件上右键,运行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:34 · PVG 22:34 · LAX 06:34 · JFK 09:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.