javascript实现php的print_r函数
来源:互联网 发布:ubuntu默认字体是什么 编辑:程序博客网 时间:2024/06/02 03:52
/** * 打印关于变量的易于理解的信息。 并将结果输出到页面的底部 * 对于window,document的html Object只能输出一维,function类型数据可以输出一维的属性,全部输出会死机 * @param {type} vars 变量 * @param {type} is_return * @returns {String} */function print_r(vars) { var var_type = getType(vars); var str = ''; var table = document.createElement('table'); table.width = "100%"; table.setAttribute('cellpadding', '0'); table.setAttribute('cellspacing', '0'); table.setAttribute('border', '0'); document.body.appendChild(table); table.innerHTML = '<tbody><tr><td id="print_r_now_show"></td></tr><tr><td id="print_r_all_show"></td></tr></tbody>'; if (var_type == 'function' || (typeof vars == "object" && vars !== null) || (var_type == 'array' && parseInt(vars.length) > 0)) {//判读是否为数组 var br = '<br/>';//换行符号 var weidu = 0; var arr = []; (function(vars, key) { var type = getType(vars); var inp = str_repeat(' ', weidu); var inp2 = str_repeat(' ', weidu + 1); key = key ? br + inp + '[' + key + ']=>' : ''; str += inp + key + type + '(' + br; for (var k in vars) { document.getElementById('print_r_now_show').innerHTML = vars[k]; var ktype = getType(vars[k]); if (((ktype == "object" && vars[k] !== null) || (ktype == 'array' && parseInt(vars[k].length) > 0)) && weidu < 1) { str += arr.join(',' + br); arr = []; weidu++; arguments.callee(vars[k], k); } else { arr.push(inp2 + '[' + k + ']=>' + String(vars[k])); } } str += arr.join(',' + br); arr = []; str += br + inp + ')' + br; weidu--; })(vars); var re = new RegExp(br + '( )*' + br, 'g');//去除多余换行符 str = str.replace(re, br); } else { str = var_type + '(' + String(vars) + ')'; } document.getElementById('print_r_all_show').innerHTML = str;}/** * 重复一个字符串 * @param {type} str 要重复的字符串 * @param {type} n 重复次数 * @returns {String} */function str_repeat(str, n) { var ren = ''; for (var i = 0; i < n; i++) { ren += str; } return ren;}/** * 获取变量的数据类型 * @param {type} vars * @returns {unresolved} */function getType(vars) { var type = typeof vars; if (type == 'object') { var type2 = Object.prototype.toString.call(vars); if (type2 == '[object Array]') { type = 'array'; } else if (type2 == '[object Object]') { type = 'object'; } else { type = type2.replace(/[\[\]]/gi, ''); } } return type;}
- javascript实现php的print_r函数
- lua实现php的print_r 函数功能
- javascript仿php的print_r函数输出json数据
- javascript仿php的print_r函数输出json数据
- 实现类似于PHP的print_r功能的函数
- php scandir函数,print_r函数的问题
- php函数var_dump() 、print_r()、echo()
- PHP中echo(),print(),print_r()的区别及打印函数
- PHP中echo(),print(),print_r()的区别及打印函数
- PHP中echo(),print(),print_r()的区别及打印函数
- PHP中echo(),print(),print_r()的区别及打印函数
- PHP 打印函数之 print print_r
- php---print_r
- php中print_r、var_dump和var_export几个函数的用法区别
- php中print_r、var_dump和var_export几个函数的用法区别
- php中echo(),print(),print_r()的区别
- echo(),print(),print_r()的区别 -php
- php中echo(),print(),print_r()的区别
- FBO2
- 2013-9月学习清单
- rowid结构浅析
- 请指点下!我不想浪费资源
- hdu 4701 博弈难题
- javascript实现php的print_r函数
- OpenCv fillPoly polylines
- oracle创建job实践sql
- WINCE6.0文件系统选择
- 【Android 开发教程】在服务中执行耗时操作
- android绑定Service失败原因
- Yii model 中使用表与表之间关联运用(relations)
- 共享内存函数(shmget、shmat、shmdt、shmctl)
- Netty中的Idle事件