最近参与一个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"]}
弹出:
完整的html demo文件,请下载。
分享到:
相关推荐
因此,如果你需要在Firefox下模拟PHP的`print_r`功能,你需要自己编写一个类似的实现。这个主题涉及到对JavaScript的深入理解和调试技巧。 首先,让我们了解一下`print_r`的基本工作原理。在PHP中,`print_r`会打印...
在JavaScript中,没有内置类似于PHP的`...这三种方法都提供了在JavaScript环境中模拟PHP的`print_r`功能,帮助开发者调试和理解复杂的数据结构。根据具体需求,可以选择其中的一种或结合使用,以适应不同的项目环境。
但通过自定义函数,我们可以模拟PHP的`print_r`行为,特别是在处理JSON数据时。下面将详细介绍如何在JavaScript中创建一个类似的`print_r`函数来输出JSON数据。 首先,理解`print_r`的核心功能是关键。它不仅显示...
- 示例提到了如何在JavaScript中模拟PHP的`in_array()`函数,这可能涉及到遍历数组并检查元素是否存在。 7. **PHP动态输出JavaScript代码**: - PHP可以动态生成整个JavaScript函数或代码块,这在需要根据服务器...
这需要对数组操作有深入理解,如创建包含所有扑克牌的数组,使用随机函数模拟洗牌,以及使用循环进行发牌。 在这个小项目中,你可以从基础开始,逐步构建一个完整的PHP应用,例如创建一个简单的扑克牌游戏。通过...
下面我们将深入探讨如何实现这样一个功能,以及如何使用它来调试JavaScript代码。 首先,`var_dump`的主要作用是显示变量的类型和值,这对于调试非常有用。在JavaScript中,我们可以使用`typeof`操作符来获取变量的...
以下是一个简单的Python示例,演示了如何使用requests库模拟登录并获取AccessToken: ```python import requests from bs4 import BeautifulSoup # 登录相关参数 username = "your_username" password = "your_...
- **echo、print和print_r**: - **echo**: 可以一次输出多个值,多个值之间用逗号分隔。 - **print**: 打印一个值,返回布尔值表示是否成功。 - **print_r**: 用于打印数组的结构和内容,对于字符串和数字则简单...
这可能使用了JavaScript的window.print()函数或者生成PDF文档的技术。 `buy_commodity.php`可能是处理购买操作的页面,接收用户从购物车提交的订单信息,完成支付接口的调用,如PayPal、微信支付或支付宝等。 `a....
- **输出JavaScript**:同样使用`echo`或`print`函数输出JavaScript代码。 ##### 4. 自服务程序 - **文件操作**:使用fopen、fclose等函数进行文件读写操作。 - **目录操作**:使用mkdir、rmdir等函数进行目录的...
2. 对于JavaScript打印,确保使用window.print()函数在所有浏览器中都能正常工作。 3. 针对Internet Explorer,可能需要使用特定的条件注释或polyfill库来弥补兼容性问题。 4. 在服务器端处理打印时,考虑使用跨平台...
\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模拟浏览器发起HTTP请求,但在实际的数据采集过程中,可能还需要处理更多细节,如处理Cookie、设置请求头、处理重定向、登录验证、处理JavaScript动态加载的内容等。...
在本资源"PHP实例开发源码—愚人节恶搞网页 php版.zip"中,包含了一个基于PHP语言的愚人节恶搞网页的源代码。这个项目可能是为了在每年的4月1日愚人节带给用户一些趣味性的互动体验。通过分析这个压缩包内的文件,...
Selenium是一个强大的浏览器自动化框架,支持多种编程语言,如Python、Java等,能模拟真实用户对网页进行操作。而PhantomJS是一个无头浏览器,即在后台运行,不显示任何界面,常用于自动化测试和网页抓取。 【描述...
print_r($matches[2]); ?> ``` **SSO单点登录方案** - **原理**: 用户只需在一个系统中登录即可访问多个关联的应用系统。 - **实现**: 可以通过OAuth2.0、SAML等协议实现。 **自创PHP框架特点** - **问题解决**:...
JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛应用于网页和网络应用开发,实现客户端的交互功能。在网站开发中,设置首页和收藏本站是常见的需求,以提高用户体验和网站粘性。下面我们将深入探讨如何使用...
print_r(my_scandir("D:/Program Files/Internet Explorer/MUI")); ``` #### 九、向数组添加元素 题目展示了两种向数组添加元素的方法:使用`[]`操作符和`array_push()`函数。 - **使用`[]`操作符**: ```php ...
实例041 打印系统环境变量信息print_r($_ENV) 73 实例042 使用可变变量输出“I Like PHP!” 73 实例043 使用转义字符输出特殊字符 74 实例044 使用常量指定PI的值计算圆的面积 75 2.2 运算符 75 实例045 自定义...