如何使用 PHP 解析序列化数据?

2024-03-27

这是我的序列化数据的示例:

a:10:{s:7:"contact";s:1:"1";s:19:"profile_affiliation";s:23:"University, Inc.";s:18:"profile_first_name";s:3:"Ben";s:22:"profile_street_address";s:19:"8718 Tot Ave. S.";s:12:"profile_city";s:6:"Mobile";s:13:"profile_state";s:2:"AL";s:15:"profile_country";s:3:"USA";s:15:"profile_zipcode";s:5:"36695";s:18:"profile_home_phone";s:10:"2599494420";s:17:"profile_last_name";s:6:"Powers";}

我希望能够使用 PHP 解析它并显示值,如下所示:

  • 个人资料名:本
  • profile_last_name:权力
  • 个人资料状态: AL

我知道我需要像这样反序列化它:

$unserialize = unserialize($data);

但我在用 PHP 解析数组时遇到了麻烦。我不断收到“为 foreach() 提供的参数无效”错误和不正确的数组输出。


这就是您正在寻找的

    <?php

    $serialized = 'a:10:{s:7:"contact";s:1:"1";s:19:"profile_affiliation";s:23:"University, Inc.";s:18:"profile_first_name";s:3:"Ben";s:22:"profile_street_address";s:19:"8718 Tot Ave. S.";s:12:"profile_city";s:6:"Mobile";s:13:"profile_state";s:2:"AL";s:15:"profile_country";s:3:"USA";s:15:"profile_zipcode";s:5:"36695";s:18:"profile_home_phone";s:10:"2599494420";s:17:"profile_last_name";s:6:"Powers";}';

    $fixed = preg_replace_callback(
        '/s:([0-9]+):"(.*?)";/',
        function ($matches) { return "s:".strlen($matches[2]).':"'.$matches[2].'";';     },
        $serialized
    );
    $original_array=unserialize($fixed);
    echo "<pre>";
    print_r($original_array);   

您序列化的字符串已损坏,因此您需要先修复它反序列化 it

output

    Array
    (
        [contact] => 1
        [profile_affiliation] => University, Inc.
        [profile_first_name] => Ben
        [profile_street_address] => 8718 Tot Ave. S.
        [profile_city] => Mobile
        [profile_state] => AL
        [profile_country] => USA
        [profile_zipcode] => 36695
        [profile_home_phone] => 2599494420
        [profile_last_name] => Powers
    )

输出:-https://eval.in/785908 https://eval.in/785908

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 PHP 解析序列化数据? 的相关文章

随机推荐

  • 在tomcat上多次部署同一个应用程序

    我想在同一个 tomcat 实例上为不同的 客户 多次部署相同的应用程序 由于我对 tomcat 和其他应用程序服务器没有真正的经验 所以我没有起点 当我简单地生成像app1 war和app2 war这样的war文件 基于相同的代码 时 它
  • 如何通过属性值从字典中获取项目

    我有一个Dictionary
  • html 标签属性内的字符显示为问号

    我的应用程序允许用户上传带有 嵌入 标题的图像 这些标题取自 exif 数据 foreach exif read data image jpg 0 true as key gt section foreach section as name
  • 如何在 xib 文件中使用“First Responder”?

    我读到了有关响应者链的内容 基本上我读到了有关 UI 事件如何在响应者链上传递 如何处理它们以及如何传递的内容 我还使用了 becomeFirstResponder 和 resignFirstResponder 但我仅将它们用于基本任务 例
  • Hibernate 从 HqlSqlWalker 抛出 NullPointerException

    我有一个 Web 应用程序 其中有一个搜索表单 并且 HQL 是动态生成的 此外 用户可以单击列标题根据需要对项目进行排序 有些列从结构的深处获取数据 例如 我有这个 HQL 它可以完美地工作 SELECT s FROM Applicati
  • Javamail 无法收到所有邮件

    我试图获取我的 Gmail 的所有邮件 但只能获取 250 封 根据https javaee github io javamail FAQ gmailsettings https javaee github io javamail FAQ
  • Android短信设置唯一ID

    我正在尝试开发一个发送和接收 SMS 消息 除其他外 的 Android 应用程序 我希望我的应用程序短信能够轻松识别 我不想使用 SMS 消息正文作为这个唯一标识符 我认为必须有一个我可以使用的 SMS 消息属性 遗憾的是 我未能找到一个
  • 直接调用功能组件

    无状态功能组件只是一个接收函数props并返回 React 元素 const Foo props gt
  • 单独程序集中的 ASP.NET Core MVC 控制器

    我正在使用 ASP NET MVC Core RC 2 我有一个针对完整 NET 框架的 Web 项目 我在解决方案中还有一个单独的类库 也针对完整的框架 在类库中 我有一个控制器 标有路由属性 我已经从网络项目中引用了类库 该程序集引用了
  • 捆绑 ES6 文件而不进行转译

    我可能遗漏了一些明显的东西 但在发布此内容之前我进行了很多搜索 说实话 我很震惊没有找到解决方案 我想将 ES6 文件捆绑到单个模块中 但是由于我用于测试的浏览器支持 ES6 因此实际上不想转译任何内容 我不知道该怎么做 我正在使用 web
  • 如何使 可编辑?

    我找到了一些示例 解释了如何使输入类型 文件不可编辑 喜欢
  • 如何将浮动子 div 的高度扩展到父级的高度?

    我的页面结构如下 div class parent div class child left floatLeft div div class child right floatLeft div div 现在child leftDIV 的内容
  • 如何获得鲜明的人物形象?

    我有一个类似的代码 string code AABBDDCCRRFF 在此代码中 我只想检索不同的字符 输出应该是这样的 ANS ABDCRF string code AABBDDCCRRFF string answer new Strin
  • .net/java 中有哪些优秀的集体智能开源库?

    或者有任何广泛利用集体智慧的开源项目吗 看看书吧集体智慧 https rads stackoverflow com amzn click com 0596529325作者 托比 塞加兰 它涵盖了很多主题 例如亚马逊如何生成推荐等 书中有很多
  • 在 TypeScript 中将变量定义为可区分联合的一种变体

    我有以下打字稿代码 它使用可区分的联合来区分一些相似的对象 interface Fish type FISH interface Bird type BIRD flyingSpeed number interface Ant type AN
  • Magento REST API 身份验证

    有没有办法从代码传递登录凭据 而不是每次在弹出窗口中输入凭据进行登录授权 您不需要每次都需要登录凭据进行授权 OAuth 成功授权后您将获得访问令牌和访问密钥 稍后使用它们进一步调用 API Oauth 协议就是这样工作的 我猜 Magen
  • PDO:使用 mysql INSERT ON DUPLICATE KEY UPDATE 检查更新或插入的记录

    使用 PDO PHP 和 MySQL 当我使用某个记录时 如何检查记录是否被插入或更新INSERT ON DUPLICATE KEY UPDATE陈述 我见过一个使用的解决方案mysql affected rows 对于 PHP 但我正在寻
  • 在循环期间使用 while mysql_fetch_array 和 UPDATE

    我正在尝试从一个表中提取数据 将列与变量进行比较 然后如果它们匹配 则添加它们并更新另一个表上的字段 看来 UPDATE 只在 while 循环内工作一次 并将该一次的值放入整个表中该列的每一行中 奇怪的是 当我回显它时 所有值都是正确的
  • 数据表导出到 Excel <选择选项>

    在我的测试页中 我插入了一个选项列表 我需要仅将所选值导出到 Excel 但现在我的 Excel 结果包括 选择选项 的所有列表 My code
  • 如何使用 PHP 解析序列化数据?

    这是我的序列化数据的示例 a 10 s 7 contact s 1 1 s 19 profile affiliation s 23 University Inc s 18 profile first name s 3 Ben s 22 pr