0

我将 json 值附加到外部文件。使用 ajax 和 post 变量捕获表单数据。我有一个小脚本可以分解 json 数据字符串,并尝试将文件与中间的 post 变量一起内爆(或实际上在末尾)。

<?php

$json_file = "data.json";
$json_data = $_POST["newUpload"]."]}"; 
//something like {"name":"foo","email":"foo@bar.com"}

$fh = fopen($json_file, 'r+'); //I think this is the problem???

$data = fread($fh, filesize($json_file));   
$jsonFrags = explode("]}",$data);
$new_data = implode($json_data,$jsonFrags);
fwrite($fh, $new_data);
fclose($fh);

?>

这是我能想到的最简单的事情,允许用户列表在运行 XAMPP 的网站和互联网访问非常有限的 Windows 机器上增长。一天一次也许两次。

整个 JSON 看起来像这样:

{"uploads": [{"name":"foo","email":"foo@bar.com","imgurl":"http://placehold.it/50x50"}]}

我将文件数据加载到文件$data字符串“]}”的末尾并将其分解。这样它总是附加到最后。但它不会爆炸/内爆给我带来问题。我可以使用 str_replace 并获得相同的结果。运行上面的 PHP 脚本后,我在 data.json 中得到了这个:

{"uploads": [{"name":"foo","email":"foo@bar.com","imgurl":"http://placehold.it/50x50"}]}{"uploads": [{"name":"bar","email":"bar@foo.com","imgurl":"http://placehold.it/100x100"}]}   

我已经能够改变 fopen 的论点以获得不同的结果,这些都不是我希望的结果。有任何想法吗?

4

1 回答 1

1

好吧,您根本没有定义变量$json。PHP 都知道,$json它是空的。您的代码正在尝试打开一个文件(用于读取),但该文件为空!

于 2013-02-13T07:01:28.533 回答