`
muyu
  • 浏览: 223273 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用js模拟PHP的print_r功能

阅读更多

最近参与一个PHP与flash交互的项目,数据格式采用json。一些返回信息中包含中文,中文字符值大于 255 的以 %uxxxx 格式存储,不利于调试代码。同事提供了一个网址,可以把json数据通过Ajax在服务器端解析,并返回经过语法着色的关联数组,非常清晰。

 

我抱着学习的目的,用js模拟了该功能。主要是递归处理对象:

 

 $(document).ready(function(){
    $('#btn').click(function(){
      var jsonStr = $('#jsonData').val();
      var json = eval('('+jsonStr+')');
      (function(){
        var print_r = function(o, depth) {
          var result = '';
          depth || (depth=1);
          var indent = new Array(4*depth+1).join(' ');
          var indentNext = new Array(4*(depth+1)+1).join(' ');
          var indentNextTwo = new Array(4*(depth+2)+1).join(' ');
          var tmp = '';
          var type = typeof o;
          switch(type) {
            case 'string':
            case 'number':
            case 'boolean':
            case 'undefined':
            case 'function':
              tmp += indent + indentNext + o + "\n";
              break;
            case 'object':
            default:
              for(var key in o) {
                tmp += indentNextTwo + '[' + key + '] = ';
                tmp += print_r(o[key], (depth+1));
              }
          }
          result += type + "\n";
          result += indentNext + '(' + "\n";
          result += tmp;
          result += indentNext + ')' + "\n";
          return result;
        };
        alert(print_r(json));
      }(json));
    });
  });

 注:上述代码需要jquery框架

 

-------------

演示

-------------

输入:{"error":["\u627e\u4e0d\u5230\u8be5\u6848\u4ef6\u4fe1\u606f"]}

弹出:

 

打印出类似print_r的关联数组

 

完整的html demo文件,请下载。

 

 

 

 

0
0
分享到:
评论
1 楼 javne 2010-08-22  
如果你用firebug也可以直接
console.dir(object)

相关推荐

    firefox下,javascript的print_r实现

    因此,如果你需要在Firefox下模拟PHP的`print_r`功能,你需要自己编写一个类似的实现。这个主题涉及到对JavaScript的深入理解和调试技巧。 首先,让我们了解一下`print_r`的基本工作原理。在PHP中,`print_r`会打印...

    JavaScrip实现PHP print_r的数功能(三种方法)

    在JavaScript中,没有内置类似于PHP的`...这三种方法都提供了在JavaScript环境中模拟PHP的`print_r`功能,帮助开发者调试和理解复杂的数据结构。根据具体需求,可以选择其中的一种或结合使用,以适应不同的项目环境。

    javascript仿php的print_r函数输出json数据

    但通过自定义函数,我们可以模拟PHP的`print_r`行为,特别是在处理JSON数据时。下面将详细介绍如何在JavaScript中创建一个类似的`print_r`函数来输出JSON数据。 首先,理解`print_r`的核心功能是关键。它不仅显示...

    javascript里使用php代码实例.docx

    - 示例提到了如何在JavaScript中模拟PHP的`in_array()`函数,这可能涉及到遍历数组并检查元素是否存在。 7. **PHP动态输出JavaScript代码**: - PHP可以动态生成整个JavaScript函数或代码块,这在需要根据服务器...

    初学php的一个小项目

    这需要对数组操作有深入理解,如创建包含所有扑克牌的数组,使用随机函数模拟洗牌,以及使用循环进行发牌。 在这个小项目中,你可以从基础开始,逐步构建一个完整的PHP应用,例如创建一个简单的扑克牌游戏。通过...

    Javascript中的var_dump函数实现代码

    下面我们将深入探讨如何实现这样一个功能,以及如何使用它来调试JavaScript代码。 首先,`var_dump`的主要作用是显示变量的类型和值,这对于调试非常有用。在JavaScript中,我们可以使用`typeof`操作符来获取变量的...

    新浪微博2模拟登陆

    以下是一个简单的Python示例,演示了如何使用requests库模拟登录并获取AccessToken: ```python import requests from bs4 import BeautifulSoup # 登录相关参数 username = "your_username" password = "your_...

    php面试试题及答案

    - **echo、print和print_r**: - **echo**: 可以一次输出多个值,多个值之间用逗号分隔。 - **print**: 打印一个值,返回布尔值表示是否成功。 - **print_r**: 用于打印数组的结构和内容,对于字符串和数字则简单...

    PHP购物车模块源码

    这可能使用了JavaScript的window.print()函数或者生成PDF文档的技术。 `buy_commodity.php`可能是处理购买操作的页面,接收用户从购物车提交的订单信息,完成支付接口的调用,如PayPal、微信支付或支付宝等。 `a....

    php程序员菜鸟成长手记——php入门教程

    - **输出JavaScript**:同样使用`echo`或`print`函数输出JavaScript代码。 ##### 4. 自服务程序 - **文件操作**:使用fopen、fclose等函数进行文件读写操作。 - **目录操作**:使用mkdir、rmdir等函数进行目录的...

    兼容所有浏览器的快速Web打印控件

    2. 对于JavaScript打印,确保使用window.print()函数在所有浏览器中都能正常工作。 3. 针对Internet Explorer,可能需要使用特定的条件注释或polyfill库来弥补兼容性问题。 4. 在服务器端处理打印时,考虑使用跨平台...

    异步mysql客户端async-mysql-php.zip

    \r\n \r\n \r\n \r\n \r\n \u8f6f\u4ef6\u9996\u9875\r\n \u8f6f\u4ef6\u4e0b\u8f7d\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\nwindow.changyan.api.config({\r\nappid:...

    PHP curl模拟浏览器采集阿里巴巴的实现代码

    尽管这个代码示例展示了如何使用PHP cURL模拟浏览器发起HTTP请求,但在实际的数据采集过程中,可能还需要处理更多细节,如处理Cookie、设置请求头、处理重定向、登录验证、处理JavaScript动态加载的内容等。...

    PHP实例开发源码—愚人节恶搞网页 php版.zip

    在本资源"PHP实例开发源码—愚人节恶搞网页 php版.zip"中,包含了一个基于PHP语言的愚人节恶搞网页的源代码。这个项目可能是为了在每年的4月1日愚人节带给用户一些趣味性的互动体验。通过分析这个压缩包内的文件,...

    selenium+phantomjs实现新浪微博模拟登陆

    Selenium是一个强大的浏览器自动化框架,支持多种编程语言,如Python、Java等,能模拟真实用户对网页进行操作。而PhantomJS是一个无头浏览器,即在后台运行,不显示任何界面,常用于自动化测试和网页抓取。 【描述...

    PHP架构师 指南 设计

    print_r($matches[2]); ?> ``` **SSO单点登录方案** - **原理**: 用户只需在一个系统中登录即可访问多个关联的应用系统。 - **实现**: 可以通过OAuth2.0、SAML等协议实现。 **自创PHP框架特点** - **问题解决**:...

    JS 设置首页和收藏本站

    JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,实现客户端的交互功能。在网站开发中,设置首页和收藏本站是常见的需求,以提高用户体验和网站粘性。下面我们将深入探讨如何使用...

    php面试大全

    print_r(my_scandir("D:/Program Files/Internet Explorer/MUI")); ``` #### 九、向数组添加元素 题目展示了两种向数组添加元素的方法:使用`[]`操作符和`array_push()`函数。 - **使用`[]`操作符**: ```php ...

    PHP开发实战1200例源码

    实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 实例043 使用转义字符输出特殊字符 74 实例044 使用常量指定PI的值计算圆的面积 75 2.2 运算符 75 实例045 自定义...

Global site tag (gtag.js) - Google Analytics