我有 1 个仅包含关联数组的 javascript 文件。(此文件将由测试工具生成,因此不允许更改此 r)。我需要在 php 文件中使用该数组的值,以便我可以将这些值存储在数据库中。请指定如何执行此操作?
问问题
194 次
2 回答
1
你最好的选择是使用 JSON。PHP 本身不支持 Javascript,但 JSON 是许多平台都理解的 Javascript 的一个常见子集(这意味着如果您需要在其他地方重用这些数据,它将得到更广泛的支持)。
特别是,您从文件中读取字符串,然后使用 json_decode:
$json_str = file_get_contents("json_file.js");
json_vals = json_decode($json_str);
根据您的评论:
<?php
$json_orig = <<<'json_oend'
var mime_samples =
[ {
'mime': 'application/xhtml+xml',
'samples': [{
'url': 'demo.testfire.net/',
'dir': '_m0/0', //it is for show trace
'linked': 2,
'len': 9645 }] },
{
'mime': 'text/html',
'samples': [{
'url': 'demo.testfire.net/.htaccess.aspx--\x3e\x22\x3e\x27\x3e\x27\x22\x3csfi000??001v275174\x3e',
'dir': '_m1/0', //it is for show trace
'linked': 2,
'len': 34 }] } ];
json_oend;
$json_str = preg_replace("/var[^=]*=/m", "", $json_orig);
$json_str = preg_replace("/;.*/m", "", $json_str);
$json_str = preg_replace("/'/m", "\"", $json_str);
$json_str = preg_replace("/\\/\\/.*/", "", $json_str);
$json_str = preg_replace("/\\\\x/", "\\u00", $json_str);
$json_val = json_decode($json_str, true);
for($i=0; $i<count($json_val); ++$i)
{
$samples = $json_val[$i]["samples"];
for($j=0; $j<count($samples); ++$j)
{
echo "$i.$j\n";
echo $samples[$j]['url'];
echo "\n";
}
}
?>
于 2012-10-10T08:42:10.927 回答