浏览器友好的变量输出

2018-11-09 02:38:56来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

PHP打印变量一般有echo、print_r、var_dump等方式,但是这些方式打印的变量在浏览器上显示的效果都不是很友好,所以一些PHP框架都会带有自己的打印变量的方法。这里我把ThinkPHP框架打印变量的dump方法提取出来,自己平时测试代码打印变量可以用该方法,这样在浏览器上的显示效果更加友好。

/**
 * 浏览器友好的变量输出
 * @access public
 * @param  mixed       $var   变量
 * @param  boolean     $echo  是否输出(默认为 true,为 false 则返回输出字符串)
 * @param  string|null $label 标签(默认为空)
 * @param  integer     $flags htmlspecialchars 的标志
 * @return null|string
 */
function dump($var, $echo = true, $label = null, $flags = ENT_SUBSTITUTE)
{
    $label = (null === $label) ? '' : rtrim($label) . ':';

    ob_start();
    var_dump($var);
    $output = preg_replace('/\]\=\>\n(\s+)/m', '] => ', ob_get_clean());

    if (PHP_SAPI == 'cli') {
        $output = PHP_EOL . $label . $output . PHP_EOL;
    } else {
        if (!extension_loaded('xdebug')) {
            $output = htmlspecialchars($output, $flags);
        }

        $output = '<pre>' . $label . $output . '</pre>';
    }

    if ($echo) {
        echo($output);
        return;
    }

    return $output;
}

$arr = [
    ['name' => 'itbsl', 'priority' => 23],
    ['name' => 'jack', 'priority' => 3],
    ['name' => 'rose', 'priority' => 12],
    ['name' => 'pick', 'priority' => 45],
    ['name' => 'binbin', 'priority' => 68],
    ['name' => 'didi', 'priority' => 56789],
    ['name' => 'abc', 'priority' => 0],
];

dump($arr);

输出结果的样式为:

array(7) {
  [0] => array(2) {
    ["name"] => string(5) "itbsl"
    ["priority"] => int(23)
  }
  [1] => array(2) {
    ["name"] => string(4) "jack"
    ["priority"] => int(3)
  }
  [2] => array(2) {
    ["name"] => string(4) "rose"
    ["priority"] => int(12)
  }
  [3] => array(2) {
    ["name"] => string(4) "pick"
    ["priority"] => int(45)
  }
  [4] => array(2) {
    ["name"] => string(6) "binbin"
    ["priority"] => int(68)
  }
  [5] => array(2) {
    ["name"] => string(4) "didi"
    ["priority"] => int(56789)
  }
  [6] => array(2) {
    ["name"] => string(3) "abc"
    ["priority"] => int(0)
  }
}

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:php 人人商城 生成 临时微信二维码,并保存成海报图片 有效期一

下一篇:[日常] HTTP连接管理