我不明白是怎么回事。
基本上我有一个javascript文件,我们找到一个多维数组。在我的php文件中,我用"json_decode"解码file.js,我检查我必须添加的数组和"多维数组"内的最后一个数组。如果不相同,则添加。
问题是加法不能…
这是file.js:
var eru = [
[" 12 July-20 July 2015",18]
];
这个file.php :
$intervallo= " 10 July-16 July 2015"
$numvulc= 25;
$aggiornamento= array($intervallo,$numvulc);
$fileeru= "out/eru.js";
$json = json_decode(file_get_contents($fileeru), true);
// how many arrays there are into multidimensional array **eru**
$counteru= count($eru);
//maybe here there's problem
if($eru[$counteru] != $aggiornamento){
$eruzioni[]= $aggiornamento;
}
$eru= json_encode($eru);
$eru= 'var eru= '.$eru.';';
file_put_contents($fileeru,$eru);
比较是不同的,那么我希望文件。js现在是这样的:
var eruzioni = [
[" 12 July-20 July 2015",18],
[" 10 July-16 July 2015",25]
];
while is so:
var eruzioni = [
[" 10 July-16 July 2015",25]
];
只有$aggiornamento和最后一个数组被删除…当然,如果在比较两个数组时相等,则不等于什么,文件也没有被修改。
要将javascript文件解析为json,需要删除它周围的var表达式。由于您似乎不确定您使用的是var eru =
还是var eruzioni =
,所以我只使用了第一个括号。
修改:
$json = json_decode(file_get_contents($fileeru), true);
To this:
$file_contents = file_get_contents($fileeru);
$json_string = substr($file_contents,strpos($file_contents,'['),-1);
$json = json_decode($json_string);
编辑添加:考虑以下代码(我替换了文件函数,因此您可以将其粘贴到phpcodepad.com中,看看它是如何工作的)
$intervallo= " 15 July-25 July 2015";
$numvulc= 30;
$aggiornamento= array($intervallo,$numvulc);
//$fileeru= "out/eru.js";
//$file_contents = file_get_contents($fileeru);
//GET DATA FROM STRING INSTEAD OF FILE
$file_contents = 'var eruzioni = [
[" 12 July-20 July 2015",18],
[" 10 July-16 July 2015",25]
];';
$json_string = substr($file_contents,strpos($file_contents,'['),-1);
$json = json_decode($json_string);
// how many arrays there are into multidimensional array **eru**
$counteru= count($json);
//maybe here there's problem
if($json[$counteru-1] != $aggiornamento){
$json[]= $aggiornamento;
}
$eru= json_encode($json);
$eru= 'var eru= '.$eru.';';
//file_put_contents($fileeru,$eru);
//ECHO INSTEAD OF WRITE TO FILE
echo '<pre>' . $eru . '</pre>';