• 以符合人类阅读的方式打印php数组【转载】


    在程序开发过程中;打印数据进行查看调试是非常频繁的;如果没有一种易于阅读的样式那是相当痛苦的;

    先定义一个数组;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $array=array(
        't0'=>'test0',
        't1'=>'test1',
        't3'=>array(
            'tt0'=>'test0',
            'tt1'=>'test1',
            'tt3'=>'test3',
            )
        );

    如果用php系统函数print_r 或者 var_dump 打印,出来的效果是这样的;

    1
    print_r($array);

    白俊遥博客

    我想除了超神级别的眼力,一般人是很难阅读的;

    还好thinkphp为我们准备了一个靠谱点的dump函数,效果是这样的:

    1
    dump($array);

    白俊遥博客

    dump临时用来打印小数组还可以凑合;如果打印一个结构复杂的数组,这种样式依然不够直观;

    而且;对于php这种弱类型语言来说;数组元素的类型以及长度很多时候并没有那么重要;

    都展示出来;太乱了;

    于是手写一个p函数,效果是这样的;

    1
    2
    3
    4
    function p($data){
        echo '<hr><pre>'.print_r($data,true).'<pre><hr>';
    }
    p($array);

    白俊遥博客

    怎么样;世界瞬间干净整洁了吧,之所以加上2个<hr>标签;主要是为了同时p多个数组时,有个横线来分界;

    在相当长一段时间内都是使用这样一个简陋的函数,直到有一天发现了bootstrap对<pre>的样式定义;于是p函数就 升级为了这个样子;效果是这样的:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    //传递数据以易于阅读的样式格式化后输出
    function p($data){
        // 定义样式
        $str='<pre style="display: block;padding: 9.5px;margin: 44px 0 0 0;font-size: 13px;line-height: 1.42857;color: #333;word-break: break-all;word-wrap: break-word;#F5F5F5;border: 1px solid #CCC;border-radius: 4px;">';
        // 如果是boolean或者null直接显示文字;否则print
        if (is_bool($data)) {
            $show_data=$data 'true' 'false';
        }elseif (is_null($data)) {
            $show_data='null';
        }else{
            $show_data=print_r($data,true);
        }
        $str.=$show_data;
        $str.='</pre>';
        echo $str;
    }
    p($array);

    白俊遥博客

    再次深深感谢bootstrap;

     本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客http://baijunyao.com

  • 相关阅读:
    NOIP2010普及组T3 接水问题 ——S.B.S.
    【NOIP提高组2015D2T1】uva 714 copying books【二分答案】——yhx
    【NOIP合并果子】uva 10954 add all【贪心】——yhx
    #include &lt;NOIP2009 Junior&gt; 细胞分裂 ——using namespace wxl;
    #include &lt;NOIP2008 Junior&gt; 双栈排序 ——using namespace wxl;
    NOIP2010普及组 三国游戏 -SilverN
    NOIP2009 提高组T3 机器翻译 解题报告-S.B.S
    NOIP2010提高组乌龟棋 -SilverN
    NOIP2010提高组 机器翻译 -SilverN
    UVa 297 Quadtrees -SilverN
  • 原文地址:https://www.cnblogs.com/clphp/p/6399166.html
Copyright © 2020-2023  润新知