php如何将数据写入json?

时间:2011-06-10 20:39:32

标签: php json

我是php的新手。我想制作php页面缓存,从mysql查询数据并将数据存储为json格式。

我有很多问题:

  1. 我应该存储哪种类型的文件? .json.txt.cache?因为我还需要使用json解码返回数据到页面。

  2. 我想使用cron选项卡,编写许多mysql查询并写入一个json文件。我应该选择什么编写代码? fopen, fwritefile_get_contents或其他命令? (不要覆盖数据,但继续写。我将删除文件并在下一个cron时间更新它)

  3. 如果多次写入json数据(同时写入10个或更多mysql查询并写入相同的json文件,每个json子格式如{name: ".$row['name']."}),如何完成顶部{ {1}}和底部{制作一个标准的json数据格式?

    { //如何添加此

    {name:“。$ row ['name']。”}

    {name:“。$ row ['name']。”}

    //来自10多个mysql查询的许多名称

    } //这一个

  4. 感谢。

4 个答案:

答案 0 :(得分:7)

这是json_encode()

  

json_encode() - 返回值

的JSON表示
<?php
$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);

echo json_encode($arr);
?>

答案 1 :(得分:2)

  

我应该存储哪种类型的文件

没关系。没有固定的扩展名,但我会选择.json只是为了清楚文件应包含的内容。

  

我应该选择哪种编写代码?

只需使用file_put_contents将JSON字符串(请参阅下一节)放入文件中。

  

每个json子格式如

真的不想使用该方法。它可能会工作一段时间,但当你需要处理诸如引用和特殊字符转义之类的东西时会变得非常复杂。不要重新发明轮子,而是使用PHP的内置JSON functions

使用PHP的字符串,数字和数组创建所需的数据结构,然后依靠json_encode将其转换为字符串。

最值得注意的是,取决于您的php array()的外观,您可能会获得JSON []{}

答案 2 :(得分:2)

  1. 将文件保存为.txt或.json不会有所作为。

  2. 我认为这一切的焦点都在json_encode页面。以下是该页面的示例:

  3. 此代码:

    <?php
    $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
    
    echo json_encode($arr);
    ?>
    

    输出如下:

    {"a":1,"b":2,"c":3,"d":4,"e":5}
    

    3。您可以使用fopenfwrite写入您的文件。 fopen的第二个参数是模式,你想使用'a'来追加。

答案 3 :(得分:0)

不要编写自己的缓存,因为您在PHP中编写的任何内容都会比本机扩展(如APC或memcached甚至MySQL本身!!)所支持的速度慢。

不要缓存为JSON。 JSON并不特别“快速”序列化。如果您正在进行缓存,则根本不想进行任何序列化。只需按原样保存即可。

MySQL会为您查询缓存。如果性能有问题,请首先调整MySQL查询和数据库模式。缓存是您想要做的绝对最后优化之一。

如果您想要一种简单的缓存方法,请创建一个名为“缓存”的MySQL表并使用它。如果您想要快速(小)文件访问,请使用MySQL(严重)。如果您想要更快的缓存访问,请使用内存缓存,如APC或memcached。