Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript中包含的JSON数据从HTML检索变量_Javascript_Php_Html_Json - Fatal编程技术网

使用Javascript中包含的JSON数据从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文件,其中包含我正试图提取的数据,以便处理变量

<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更新工作正常