使用Javascript中包含的JSON数据从HTML检索变量
我有一个简单的HTML文件,其中包含我正试图提取的数据,以便处理变量使用Javascript中包含的JSON数据从HTML检索变量,javascript,php,html,json,Javascript,Php,Html,Json,我有一个简单的HTML文件,其中包含我正试图提取的数据,以便处理变量 <html> <head> <link rel="stylesheet" type="text/css" href="/app/css/style.css" /> </head> <body> <div class="page"> <div
<html>
<head>
<link rel="stylesheet" type="text/css" href="/app/css/style.css" />
</head>
<body>
<div class="page">
<div class ="pane">
<div class ="chart">
<h1 style='float: left;'>Summary</h1>
<div style='clear: both;'></div>
<script type="text/javascript" src="protovis/protovis-d3.2.js"></script>
<script type="text/javascript+protovis">var data = [
{"label":"A (2)", 'complete': 2.0, 'pending': 0.0}
,{"label":" B (8)", 'complete': 8, 'pending': 0.0}
,{"label":"C (10)", 'complete': 10, 'pending': 0.0}
,{"label":"D (18)", 'complete': 18.0, 'pending': 0.0}
,{"label":"E (21)", 'complete': 21, 'pending': 0.0}
];
</script>
</div>
</div>
</div>
</body>
</html>
总结
风险值数据=[
{“label”:“A(2)”,“complete”:2.0,“pending”:0.0}
,{“label”:“B(8)”,“complete”:8,“pending”:0.0}
,{“label”:“C(10)”,“complete”:10,“pending”:0.0}
,{“label”:“D(18)”,“complete”:18.0,“pending”:0.0}
,{“label”:“E(21)”,“complete”:21,“pending”:0.0}
];
使用PHP,我试图将此HTML中包含的数据解析为变量。即:$A=2
,$B=8
,$C=10
,$D=18
,$E=21
到目前为止,我一直在尝试使用simple_html_dom.php库来读取数据,但无法检索上面JavaScript中包含的JSON内容
如何从上面的HTML中提取“label”:“A(2)”
,以便作为PHP变量访问该值(在本例中为2)
试试这个
var数据=[
{“label”:“A(2)”,“complete”:2.0,“pending”:0.0}
,{“label”:“B(8)”,“complete”:8,“pending”:0.0}
,{“label”:“C(10)”,“complete”:10,“pending”:0.0}
,{“label”:“D(18)”,“complete”:18.0,“pending”:0.0}
,{“label”:“E(21)”,“complete”:21,“pending”:0.0}
];
输出
对于(var i=0;i
试试这个
var数据=[
{“label”:“A(2)”,“complete”:2.0,“pending”:0.0}
,{“label”:“B(8)”,“complete”:8,“pending”:0.0}
,{“label”:“C(10)”,“complete”:10,“pending”:0.0}
,{“label”:“D(18)”,“complete”:18.0,“pending”:0.0}
,{“label”:“E(21)”,“complete”:21,“pending”:0.0}
];
输出
对于(var i=0;i我用file\u get\u contents()
解决了它
注意:
解析实际上只是一个快速而肮脏的解决方案。只有当文件中只有一个[
和一个]
必须标记json字符串时,解析才有效。因此,如果您需要在很多文件上使用此方法,您应该使用另一种解析方法
将html读入字符串:
$html=file\u get\u contents(“my\u file.html”);
解析html中的json字符串(注意到这是一种糟糕的做法,只是针对您的确切问题的一种快速而肮脏的解决方案):
$json=substr($html,strpos($html,['),strpos($html,['))-(strpos($html,[')-1));
将单引号替换为双引号(因为需要双引号才能使字符串成为有效的json):
$json=str\u replace(“'”、“\”、$json);
使用json\u decode
将json转换为php数组。注意:需要将第2个参数设置为true
才能使用“关联模式”:
$my\u array=json\u decode($json,true);
在这里,当您执行var\u dump($my\u array)
时,您会看到所有内容都保存到php数组中:
array(5) {
[0]=>
array(3) {
["label"]=>
string(5) "A (2)"
["complete"]=>
float(2)
["pending"]=>
float(0)
}
[1]=>
array(3) {
["label"]=>
string(6) " B (8)"
["complete"]=>
int(8)
["pending"]=>
float(0)
}
...
]
我用file\u get\u contents()
解决了这个问题
注意:
解析实际上只是一个快速而肮脏的解决方案。只有当文件中只有一个[
和一个]
必须标记json字符串时,解析才有效。因此,如果您需要在很多文件上使用此方法,您应该使用另一种解析方法
将html读入字符串:
$html=file\u get\u contents(“my\u file.html”);
解析html中的json字符串(注意到这是一种糟糕的做法,只是针对您的确切问题的一种快速而肮脏的解决方案):
$json=substr($html,strpos($html,['),strpos($html,['))-(strpos($html,[')-1));
将单引号替换为双引号(因为需要双引号才能使字符串成为有效的json):
$json=str\u replace(“'”、“\”、$json);
使用json\u decode
将json转换为php数组。注意:需要将第2个参数设置为true
才能使用“关联模式”:
$my\u array=json\u decode($json,true);
在这里,当您执行var\u dump($my\u array)
时,您会看到所有内容都保存到php数组中:
array(5) {
[0]=>
array(3) {
["label"]=>
string(5) "A (2)"
["complete"]=>
float(2)
["pending"]=>
float(0)
}
[1]=>
array(3) {
["label"]=>
string(6) " B (8)"
["complete"]=>
int(8)
["pending"]=>
float(0)
}
...
]
下面是使用PHP Simple HTML DOM Parser将数据中的标签
值解析为变量的方法
使用以下方法之一创建DOM对象
// Create a DOM object from a string
$html = str_get_html('<html><body>Hello!</body></html>');
// Create a DOM object from a URL
$html = file_get_html('http://www.google.com/');
// Create a DOM object from a HTML file
$html = file_get_html('test.htm');
希望能有所帮助。以下是使用PHP Simple HTML DOM Parser将数据中的标签
值解析为变量的方法
使用以下方法之一创建DOM对象
// Create a DOM object from a string
$html = str_get_html('<html><body>Hello!</body></html>');
// Create a DOM object from a URL
$html = file_get_html('http://www.google.com/');
// Create a DOM object from a HTML file
$html = file_get_html('test.htm');
希望这能有所帮助。我不理解你的问题。PHP是基于服务器的,所以你必须将你想在PHP中使用的任何数据发送到你的服务器(通过Ajax)对不起,谢谢你的提问。我正在使用simple\u HTML\u dom.PHP和$HTML=file\u get\u HTML('status.HTML')阅读上面的HTML文件并试图以这种方式读取文件的内容。但是,我不完全确定我是否走上了正确的道路。@messerbill说了什么。在PHP中获取数据后,您打算如何处理这些数据?是否希望将其显示在同一html页面上?-如果是,那么您可以轻松地使用(例如)操作DOMjQuery,根本不需要PHP。在将数据提交到服务器之前是否有特殊事件?谢谢@low_rents。我需要将两个值加在一起,并通过curl post将所有这些变量输出到远程页面,以更新远程页面。我的curl更新工作正常