Cakephp读写json文件。

时间:2012-03-09 11:50:14

标签: php cakephp cakephp-1.3 json

我是cakephp的新手。我试图将json输出保存为webroot中的文件。我也想把文件读成数组。

我知道我们可以使用json_encode($ array)将数组作为json对象输出。但我无法创建并将json文件读入数组。

我感谢任何帮助。

2 个答案:

答案 0 :(得分:9)

//write
$json = '{"key":"value"}';
$file = new File('/path/to/file', true);
$file->write($json);
//read
$file = new File('/path/to/file');
$json = $file->read(true, 'r');
$json2array = json_decode($json);

答案 1 :(得分:3)

  

注意:此代码属于模型或控制器中的方法。

尽管cetver的答案在技术上是正确的,但它不是很好的" cakey"。

对于CakePHP,我会做以下事情:

$json = '{"key":"value"}';
$json2 = json_encode(array("a" => 1, "b" => 2));
$path = APP . '[YOUR FOLDER NAME]' . DS . 'json';
$path2 = APP . '[YOUR FOLDER NAME]' . DS . 'json2';
$jsonFromFile;
$json2FromFile;

//write
if(!file_exists($path))
    file_put_contents($path, $json);

if(!file_exists($path2))
    file_put_contents($path2, $json2);

//read
if(!file_exists($path))
    $jsonFromFile = file_get_contents($path, true);
if(!file_exists($path2))
    $json2FromFile = file_get_contents($path2, true);

说明:

  • $ json是一个标准的预写JSON字符串,这里没有混淆
  • $ json2向您展示了如何为存储目的对json字符串进行编码和数组(或对象)的示例
  • $ path使用一些CakePHP常量。 " APP"它为您提供了一个可解析的应用程序文件夹路径& " DS"它用作系统安全的目录分隔符
  • 然后检查以确保我们的文件不存在,此时我们使用方法" file_put_contents"写我们的文件。

快乐的编码。