0

我有一个从包含 Array 的特定设备生成的output.js文件:

var OUT=new Array (0x80,0x00,0x40,0x0026,0x0011,0x0014,0x0013,0x0018,0x0017,0x03FD,0x0116)

如何使用 PHP 访问该数组,以便在任何位置轻松打印指定的 Array[x]:

print $OUT[4];

使用简单的 JS,我可以做到:

document.write(OUT[4]);

如果我也可以像 txt 文件一样用 PHP 处理 output.js,然后拆分并“像数组一样做”,但我认为可以正确使用它.. ^_^

对此有何提示或建议?:)

谢谢!

4

3 回答 3

2

如果您想直接使用 PHP 获取文件,那么您可以编写自定义解析器(如果您相信文件格式一致,则使用正则表达式)或通过与 JavaScript 引擎交互

否则,假设 JavaScript 在网络浏览器中运行……</p>

最简单的方法是使用createElementand appendChildwhile 循环遍历一个数组来创建一个元素,该form元素包含数组hidden中每个元素的输入(具有foo[]满足 PHP 用来填充$_POST和友元的算法的名称),然后submit()表格。

或者,您可以将数组序列化为字符串(例如,如果您知道数据中没有逗号,则使用逗号分隔)并使用它创建一个查询字符串 ( var qs = "?foo=" + encodeURIComponent(serialised_array);),然后使用XMLHttpRequest传递它。

于 2012-10-06T19:59:48.890 回答
0

您可以使用 json 来执行此操作

var jsonString  = JSON.stringify(OUT);

然后

document.getElementById('IdOfYourFormInputField').value = jsonString;

// 隐藏元素类型

现在,当您提交表单时,您将在 $_POST 字段中获得 json 字符串

所以你可以像解码它

$phpArray = json_decode($_POST['NameOfYoutInputEleMent']);

就是这样!!!

于 2012-10-06T20:05:16.817 回答
0

最简单的方法是使用像 jQuery 这样的库,而不是自己动手......

<head>
<script src="http://code.jquery.com/jquery.min.js">
....

然后在您计算数据时,将其发布到 PHP 服务器

var OUT = new Array (0x80,0x00,0x40,0x0026,0x0011,0x0014,0x0013,0x0018,0x0017,0x03FD,0x0116);
$.ajax({
    url: 'http://www.example.com/receiver.php'  //change example.com to your server
    ,type: 'POST' //use POST so don't have to worry about URL length
    ,data: {out: OUT} //pass contents of 'OUT' in variable 'out'
    ,dataType: 'json' //use JSON formatting of data
    ,error: function() { 
        alert("Failed to contact server"); 
    }
    ,complete: function() {
        alert("Finished sending data to server.");
    }
});

在receiver.php

$OUT = json_decode( $_POST['out'] ); // 'out' matches the parameter name in jQuery Ajax call
print_r( $OUT ); //print contents of array $OUT 
于 2012-10-06T20:32:22.260 回答