当前位置: 首页 > 面试题库 >

在PHP中序列化或json?

裘兴思
2023-03-14
问题内容

所以我需要用PHP编码数组并将其以纯文本格式存储在MySQL数据库中,我的问题是我应该使用serialize()还是json_encode()?它们各自的优缺点是什么?

我认为他们中的任何一个都会在这种情况下这样做。但是,您想要哪一个,为什么呢?如果用于数组以外的东西?


问题答案:

的主要优点serialize:它特定于PHP,这意味着 它可以表示PHP类型 ,包括您自己的类的实例-
并且在反序列化数据时,您将获得对象,仍然是类的实例。

json_encodeJSON的 主要优点是:JSON并非特定于PHP:有一些库可以用几种语言进行读取/写入-这意味着,如果您希望某些东西
可以用其他语言来处理, 那就比PHP 更好。

JSON字符串比序列化的字符串更容易 手工 读取/写入/修改。

另一方面,由于JSON并非特定于PHP,因此它不了解特定于PHP的内容-例如数据类型。

作为旁注:

  • 即使两者之间的速度差异很小,也没关系:您可能不会序列化/反序列化大量数据
  • 您确定这是在数据库中存储数据的最佳方法吗?
    • 在数据库中,您将无法对序列化的字符串进行很多查询:如果没有wherePHP的干预,您将无法使用子句中的数据,也无法对其进行更新…


 类似资料:
  • 本文向大家介绍php中序列化与反序列化详解,包括了php中序列化与反序列化详解的使用技巧和注意事项,需要的朋友参考一下 把复杂的数据类型压缩到一个字符串中 serialize() 把变量和它们的值编码成文本形式 unserialize() 恢复原先变量 eg: 结果:a:3:{i:0;s:3:"Moe";i:1;s:5:"Larry";i:2;s:5:"Curly";} Array ( [0] =

  • 问题内容: 这是基本代码: 我努力了: 和: 而且都不起作用。有人有主意吗? 问题答案: 该代码对我有用:

  • 问题内容: 我正在使用python访问由Drupal安装管理的数据库。我想在Drupal中访问的数据作为PHP序列化对象保存在数据库中。 是否有任何预构建的python模块可以将PHP序列化对象反序列化为python对象?我已经做了一些搜索,却一无所获。 我意识到我可以从头开始编写自己的解析器,但是我宁愿使用经过尝试和测试的东西。 问题答案: 您在寻找phpserialize吗?

  • 本文向大家介绍详解PHP中的序列化、反序列化操作,包括了详解PHP中的序列化、反序列化操作的使用技巧和注意事项,需要的朋友参考一下 数据(变量)序列化(持久化) 将一个变量的数据"转换为"字符串,但并不是类型转换,目的是将该字符串存储在本地。相反的行为成为反序列化。 流程: 具体实例: 1.在xxx1.php中进行序列化操作 2.在xxx2.php中进行反序列化操作 以上就是本文的全部内容,希望对

  • 问题内容: 我只想要对象的第一个深度级别(我不需要任何子级)。我愿意使用任何可用的图书馆。大多数库仅在达到递归深度时才会抛出异常,而不仅仅是忽略。如果这不可能,是否有一种方法可以忽略给定特定数据类型的特定成员的序列化? 编辑:假设我有一个像这样的对象: 我想删除任何子级(甚至是复杂类型)以返回这样的对象: 问题答案: 在Json.NET中,可以使用和序列化程序之间的一些协调。 自定义在对象启动时增

  • 问题内容: 我已经开始在我的第一个android应用程序上进行工作,并且具有处理多层图像的应用程序。我能够将项目文件的平面版本导出为PNG,但我希望能够保存分层图像以供以后编辑(包括应用于某些层的任何选项,例如基于文本的层)。 无论如何,我已经确保需要写入文件的类是“可序列化的”,但是由于android.graphics.Bitmap不可序列化这一事实而遇到了一些障碍。以下代码实质上将位图作为PN