如何使用php解析javascript DOM post数据?
我的JavaScript将一些数据发送到php,我的php代码尝试对其进行解析,但总是失败!php接收数据并将其放置在文本区域中,但在解析之前未对其进行良好格式化。有谁能告诉我如何正确格式化接收到的数据,使其可以通过?提前谢谢 javascript书签如何使用php解析javascript DOM post数据?,javascript,php,json,urldecode,Javascript,Php,Json,Urldecode,我的JavaScript将一些数据发送到php,我的php代码尝试对其进行解析,但总是失败!php接收数据并将其放置在文本区域中,但在解析之前未对其进行良好格式化。有谁能告诉我如何正确格式化接收到的数据,使其可以通过?提前谢谢 javascript书签 javascript: (function() { var d = window.open('about:blank'), a = d.document; a.write('<!DOCTYPE html>
javascript: (function() {
var d = window.open('about:blank'),
a = d.document;
a.write('<!DOCTYPE html><html><head><title></title></head><body></body></html>');
a.close();
var b = a.body.appendChild(a.createElement('form'));
b.setAttribute('method', 'post');
b.setAttribute('action', 'http://mywebsite.com/test.php');
var c = b.appendChild(a.createElement('input'));
c.setAttribute('type', 'hidden');
c.setAttribute('name', 'DOM');
c.setAttribute('value', encodeURIComponent(document.documentElement.innerHTML));
b.submit()
})()
$code2=$_POST['DOM'];通过php接收的数据如下所示:
%7B%0A%20%20%20%20%22success%22%3A%201%2C%0A%20%20%20%20%22items%22%3A%20%5B%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22id%22%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22cherry%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22img%22%3A%20%22images%5C%2Fitems%5C%2F213433243324342cherry_fruits_logo.png%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url3%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22cat_id%22%3A%20%2255%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url2%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D234123423432143242%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D23423524353454234252%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22id%22%3A%20%222%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22mango%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22img%22%3A%20%22images%5C%2Fitems%5C%2F968756756mango_fruits_logo.png%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url3%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D34524358098019234123%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22cat_id%22%3A%20%2255%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url2%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%5C%2Fsession%3D34524358098019234123%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D34523454364362345134%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A
php上的实际数据应如下所示:
{
"success": 1,
"items": [{
"id": "1",
"name": "cherry ",
"img": "images\/items\/213433243324342cherry_fruits_logo.png",
"item_url3": "http:\/\/awebsite.com\/do?session=",
"cat_id": "55",
"item_url2": "http:\/\/awebsite.com\/do?session=234123423432143242",
"item_url": "http:\/\/awebsite.com\/do?session=23423524353454234252"
}, {
"id": "2",
"name": "mango",
"img": "images\/items\/968756756mango_fruits_logo.png",
"item_url3": "http:\/\/awebsite.com\/do?session=34524358098019234123",
"cat_id": "55",
"item_url2": "http:\/\/awebsite.com\/do\/session=34524358098019234123",
"item_url": "http:\/\/awebsite.com\/do?session=34523454364362345134"
}
您的数据似乎也是UTF-8编码的,因此要对其进行解码,还可以使用
utf8\u decode()
:
您的数据似乎也是UTF-8编码的,因此要对其进行解码,还可以使用
utf8\u decode()
:
你的javascript代码是什么?似乎您正在搜索url内附字符串,您可以只发送JSON。显示您的实际AJAX请求(标题和正文)或相应的JS代码谢谢您的回复。我编辑了我的第一篇博文,包括bookmarklet javascript代码。你认为问题出在javascript或php部分吗?你不应该对输入值应用
encodeURIComponent
,因为它将在表单提交时自动编码谢谢我删除了encodeURIComponent现在php接收的数据已格式化,我必须删除一些额外的代码从接收到的数据中提取html,使其成为有效的json,并且我能够正确解析它!你的javascript代码是什么?似乎您正在搜索url内附字符串,您可以只发送JSON。显示您的实际AJAX请求(标题和正文)或相应的JS代码谢谢您的回复。我编辑了我的第一篇博文,包括bookmarklet javascript代码。你认为问题出在javascript或php部分吗?你不应该对输入值应用encodeURIComponent
,因为它将在表单提交时自动编码谢谢我删除了encodeURIComponent现在php接收的数据已格式化,我必须删除一些额外的代码从接收到的数据中提取html,使其成为有效的json,并且我能够正确解析它!
{
"success": 1,
"items": [{
"id": "1",
"name": "cherry ",
"img": "images\/items\/213433243324342cherry_fruits_logo.png",
"item_url3": "http:\/\/awebsite.com\/do?session=",
"cat_id": "55",
"item_url2": "http:\/\/awebsite.com\/do?session=234123423432143242",
"item_url": "http:\/\/awebsite.com\/do?session=23423524353454234252"
}, {
"id": "2",
"name": "mango",
"img": "images\/items\/968756756mango_fruits_logo.png",
"item_url3": "http:\/\/awebsite.com\/do?session=34524358098019234123",
"cat_id": "55",
"item_url2": "http:\/\/awebsite.com\/do\/session=34524358098019234123",
"item_url": "http:\/\/awebsite.com\/do?session=34523454364362345134"
}
$str = '%7B%0A%20%20%20%20%22success%22%3A%201%2C%0A%20%20%20%20%22items%22%3A%20%5B%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22id%22%3A%20%221%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22cherry%20%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22img%22%3A%20%22images%5C%2Fitems%5C%2F213433243324342cherry_fruits_logo.png%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url3%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22cat_id%22%3A%20%2255%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url2%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D234123423432143242%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D23423524353454234252%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22id%22%3A%20%222%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22mango%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22img%22%3A%20%22images%5C%2Fitems%5C%2F968756756mango_fruits_logo.png%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url3%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D34524358098019234123%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22cat_id%22%3A%20%2255%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url2%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%5C%2Fsession%3D34524358098019234123%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22item_url%22%3A%20%22http%3A%5C%2F%5C%2Fawebsite.com%5C%2Fdo%3Fsession%3D34523454364362345134%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A';
$result = utf8_decode(urldecode($str));
print_r($result);