以符合人类阅读的方式打印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
以符合人类阅读的方式打印php数组【转载】的更多相关文章
- 人类阅读的优越方式打印php数组
在程序开发过程中:打印数据进行查看调试是非常频繁的:如果没有一种易于阅读的样式那是相当痛苦的:先定义一个数组: $array=array( 't0'=>'test0', 't1'=>'te ...
- WWT在中国:一个改变了人类探索宇宙方式的少年梦想
想象一下,在宇宙中超光速飞行,访问行星.星云.恒星和小行星将是多么美妙的体验.现在,中国的孩子们已经可以坐在屋子里,仰望穹顶,去探索星球之间无穷的奥秘. 在微软研究院.微软亚洲研究院及中国科学院国家天 ...
- 如何以编程方式打印到在 MFC 中的非默认打印机
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105790245b09c0252bd7a74a2485d315d2390f0750 ...
- 五分钟学Java:打印Java数组最优雅的方式是什么?
在逛 Stack Overflow 的时候,发现了一些访问量像安第斯山一样高的问题,比如说这个:打印 Java 数组最优雅的方式是什么?访问量足足有 220W+,想不到啊,这么简单的问题竟然有这么多 ...
- 【译】更快的方式实现PHP数组去重
原文:Faster Alternative to PHP’s Array Unique Function 概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一 ...
- 更快的方式实现PHP数组去重(转)
概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组.这个函数大多数情况下都能工作得很好.但是,如果你尝试在一个大的数组里使用array_u ...
- 更快的方式实现 PHP 数组去重
概述 使用PHP的array_unique()函数允许你传递一个数组,然后移除重复的值,返回一个拥有唯一值的数组.这个函数大多数情况下都能工作得很好.但是,如果你尝试在一个大的数组里使用array_u ...
- 类模板、Stack的类模板实现(自定义链栈方式,自定义数组方式)
一.类模板 类模板:将类定义中的数据类型参数化 类模板实际上是函数模板的推广,可以用相同的类模板来组建任意类型的对象集合 (一).类模板的定义 template <类型形参表> clas ...
- 指针数组的初始化和遍历,并且通过for循环方式、函数传参方式进行指针数组的遍历
/************************************************************************* > File Name: message.c ...
随机推荐
- 新浪微博资深大牛全方位剖析 iOS 高级面试
第1章 课程简介本章对这门课程所讲述内容进行概要介绍,其中包括课程目标.适合人群,课程特色.课程收获.课程安排等.整个课程学习完结后,有机会获得电话模拟面试及内推. 1-1 课前必读(不看会错过一个亿 ...
- C++编写简单的Service和Client
在上一步的基础上 编写Service节点 这里,我们将创建一个简单的service节点("add_two_ints_server"),该节点将接收到两个整形数字,并返回它们的和. ...
- ddt Ui 案例2
准备用例文件:testcase1.py testcase2.py import ddt import unittest from HTMLTestRunner import HTMLTestRunne ...
- 【VCS】种草VSCode
VSCode官网 特点:更轻量.集成Git.快速diff:文件目录管理,自定义配置,插件库 种草推文 下载地址 下载安装VSCode之后按照种草推文指南 配置VSC的扩展开发(有个前提:注册了Micr ...
- java crm 进销存 springmvc SSM 项目 系统 源码
系统介绍: 1.系统采用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC浏览器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM ...
- Flask租房项目总结
该Flask项目历时3天,开发小组6人,目的是开发一个租房web项目,该项目采用前后端分离模式. Flask租房项目总结 分析需求文档,需要完成的功能模块有: 登陆注册 首页展示,首页搜索 详情展示, ...
- java核心技术-多线程之线程基础
说起线程,无法免俗首先要弄清楚的三个概念就是:进程.线程.协程.OK,那什么是进程,什么是线程,哪协程又是啥东西.进程:进程可以简单的理解为运行在操作系统中的程序,程序时静态代码,进程是动态运行着的代 ...
- Windows Mysql8 设置大小写敏感
windows系统无法改成 lower_case_table_names=0, 因为windows默认是1,就算改也只能改成2,以下截自 MySQL 8.0 Reference Manual 然后,当 ...
- 配置bond
注意:配置bond要有两个以上的网口 1.配置文件所有目录:/etc/sysconfig/network-scripts 网口配置文件名规则:以ifcfg-开头,然后接着是网口名 例如:eth0的配置 ...
- 腾讯云Mac图床插件
背景 随着博客越写越多,难免会遇到需要插入图片来说明的情况. 图床选择 首先调研了市面上的图床服务,本着稳定长期的目标,过滤掉了打一枪换一个地方的野鸡小网站,剩余比较靠谱的优缺点如下. 图床 优点 缺 ...