反序列化数据不起作用

2023-12-13

过去 5 个小时我一直在做这个,我被难住了。尝试了最荒谬的功能来尝试修复它,但无济于事。

我正在从 WP 数据库检索数据。在插入之前,数据已使用以下方法序列化了 1 个数组:serialize()来自 PHP 的函数。然后使用 WP 函数将其插入到 WP 数据库中update_user_meta. 这个功能的参考文献说:

$meta_value
(mixed) (required) The new desired value of the meta_key, which must be different from the
existing value. Arrays and objects will be automatically serialized. 
Note that using objects may cause this bug to popup.
    Default: None

这让我觉得数据可能被序列化了两次。尽管经历了很多功能,例如unserialize(), array_map, json_decode,以及这些和更多的组合,我现在得到了以下内容:

$i = 0;
while($i < count($fbData)){

    $someValue = $fbData[$i]['meta_value'];
    $usermeta = array_map( function( $a ){ return $a[0]; }, get_user_meta( $fbData[$i]['user_id'] ));
    if( $usermeta['facebookmeta'] ){
        $unserialized = unserialize( $usermeta['facebookmeta'] );
        //other methods tried: unserialize( unserialize
        // unserialize( json_decode(
        // json_decode( unserialize( json_decode(
        // json_decode( unserialize(
        // unserialize( array_map( 
        // unserialize( array_map( json_decode
        // whole lot others
        var_dump( $unserialized );
    }
$i++;
}

然而这不起作用。这与$fbData:

'facebookmeta' => string 's:668:"a:16:{s:2:"id";s:9:"123456";s:4:"name";s:12:"Henkie";s:10:"first_name";s:4 //and so on

这是结果:

string 'a:16:{s:2:"id";s:9:"123456";s:4:"name";s:12:"Henkie";s:10:"first_name";s:4: //and so on

从结果中可以看出,它只是删除了“s:668:"" 从一开始,这表明它是一个 668 个字符的字符串,其余部分保持不变。

为什么反序列化不能正常工作?


哎呀找到答案了! :) WP 功能隐藏在函数.php来自WP自己。

function maybe_unserialize( $original ) {
    if ( is_serialized( $original ) ) // don't attempt to unserialize data that wasn't serialized going in
        return @unserialize( $original );
    return $original;
}

通过执行以下操作修复了反序列化:

$unserialized = maybe_unserialize( unserialize( $usermeta['facebookmeta'] ));

以整齐的数组形式返回所有内容! :)

开心快乐! :)

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

反序列化数据不起作用 的相关文章

  • jetty服务器运行php代码

    我想配置让jetty运行PHP文件 但到目前为止还没有成功 我在 Eclipse IDE 中安装了 Jetty WTP 工具 当我启动 Jetty 服务器时 我得到了例外 java lang ClassNotFoundException o
  • 包括 PHPUnit 在内的麻烦

    我想开始为我的代码编写测试 因此我使用以下命令安装了最新的 PHPUnit wget http pear phpunit de get phpunit phar chmod x phpunit phar mv phpunit phar us
  • 使用factory faker创建的图像在存储在storage/public/images文件夹中时会被删除

    我正在尝试用假图像填充我的数据库 但是当 faker 将其保存到我的图像文件夹中时 一秒钟后它被删除 并且在我的数据库字段中我得到 0 我可以访问http lorempixel com http lorempixel com 也可以 pin
  • AWS EC2 上的 Wordpress - 分配弹性 IP 后损坏

    所以 我安装了 WordPress 并且运行得很好 我可以通过从实例获得的公共 DNS 访问该站点和 wp admin 但是 一旦我创建了弹性 IP 并将其与实例关联 我就无法再访问 wp admin 并且主页样式表和 JavaScript
  • PHP显示图片从url到主页

    在没有人回答这个问题之后Php Rss feed 在 CDATA gt content encoded 中使用 img https stackoverflow com questions 31771729 php rss feed use
  • PHP中特殊字符的转换

    我已经尝试了很多功能 但我根本无法弄清楚这一点 无论如何 正确的方法 在称为描述的表单字段中 我可以期待各种字符 在将它们提交到数据库之前 需要将它们格式化为 HTML 实体 现在 我的代码 formdesc htmlentities PO
  • 尝试获取联系表单 7 发布数据以调试到屏幕

    我一直在尝试获取联系表单 7 发布数据来调试表单提交 以便我可以将其用于我正在尝试开发的插件 但是 当我使用 var dump 或 print r 时 我无法在任何地方获取数据 我已经从这个开始了 add action wpcf7 befo
  • 如何在 Cakephp 3 中创建按字段集分组的多个复选框

    我在阅读本文档时遇到问题 Cakephp3 Cookbook 表单 创建选择选择器 http book cakephp org 3 0 en views helpers form html creating select pickers我尝
  • Yii 框架:控制器/操作 url 和参数

    在我的申请中 我有ApiController with actionUsers 所以在 YII 中路径变成api users 现在为了获取某些用户信息 我使用以下路径api users id 10其中 10 是用户 ID id路径的一部分基
  • Blueimp jQuery 文件上传,传递额外的表单数据

    我可以使用一些帮助 我已经设法使 blueimp jQuery 文件上传为我工作 但我仍然绝对是一个新手 我对 jQuery 等知之甚少 所以请尝试将其清晰明了地提供给我尽可能简单 我会尝试具体一点 好的 我想实现的是人们可以上传照片 并为
  • 代码点火器 JSON

    你好 我使用 codeigniter 然后我从控制器中的数据库中回显输出 然后在我的视图文件中执行以下操作 但它没有显示任何内容 S 我的模型文件 function forumList this gt db gt select oversk
  • 如何使用表单上的提交按钮传递参数

    我想创建一个可以更改 PHP 制作的 mySQL 中的产品数据的程序 我有自动递增并指定每个产品的键列 当我单击编辑产品链接时 它将传递我从每个产品获得的键值 并链接到 editPage php Key data Key a href ed
  • PHP - 发送带有附件的电子邮件不显示消息内容

    尝试创建一个脚本 我可以在其中发送带有附件的电子邮件 一切正常 除了当我不在电子邮件中添加文件时 我仍然可以看到带有 0B 且没有名称的附件 if isset POST my send email to POST my email to r
  • Laravel 5 / Codeception 未正确路由

    我正在尝试使用代码接收为控制器函数编写 API 测试用例 但遇到了一个问题 即控制器函数的路由似乎未正确评估 并且评估似乎根据我的不同而不同我的测试用例中有 这是我的测试用例中的代码示例 use ApiTester class Custom
  • PHP Netbeans:xdebug 在每个 include() 或 require() 上停止

    我刚刚发现使用 netbeans IDE 中集成的 xdebug 进行 PHP 调试 我认为这很棒 没有它我怎么生活 但有一个问题 如果我在代码深处设置了一个断点 我必须在到达断点之前多次按 继续 F5 因为脚本会在每个 include 和
  • 是否可以使用 Javascript 读取 PHP 会话?

    我正在使用 cakePHP 1 26 在控制器中 我得到了一个包含以下代码行的函数 this gt Session gt write testing user this gt Session gt read testing 现在系统编写了一
  • 在mysql中搜索“SanF”时获取旧金山的记录

    当我搜索 SanF 时获得 San Francisco 记录 SELECT FROM table WHERE col LIKE san Works SELECT FROM table WHERE col LIKE san F Works S
  • 从数据库生成 XML 时出现 PHP 编码错误 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试获取一个简单的 PHP 服
  • 从 CodeIgniter 中的 URL 捕获哈希值 (#)

    我有一个看起来像的网址 mysite com transactions view 123456 效果很好 但是我的客户现在希望在 url 中包含 hashbang mysite com transactions view 123456 现在
  • PHP 与 .= 相反

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 有谁知道是

随机推荐

  • ArrayList:大小如何增加?

    我有一个关于Java的基本问题ArrayList When ArrayList使用默认构造函数声明并初始化 创建 10 个元素的内存空间 现在 当我添加第 11 个元素时 会发生什么 是否会创建具有 20 个 或更多 元素容量的新内存空间
  • C 函数指针

    static void increment long long n n struct test void work fn long long struct test t1 t1 work fn increment 我现在如何实际调用该函数
  • Spring boot mongodb审计错误

    我正在尝试在 Spring Boot 应用程序中配置 mongodb 审核 并且在尝试保留域类时遇到此错误 java lang IllegalArgumentException Couldn t find PersistentEntity
  • F# 不可变的可变大小窗口数据结构

    下面是我需要的数据结构的描述 我想使用不可变的数据结构来实现它 我试图确定 是否有一个现有的数据结构可以支持我在这里尝试做的事情 或者我是否需要创建一个数据结构 如果我需要创建它 什么是好的从哪里开始 构建块 我有稳定的某种类型的传入值流
  • 如何将逻辑符号转换为 Haskell 语法

    我最近在大学学习了 Haskell 我正在做一组练习 下面是我无法理解的一个片段 考虑以下简单的前缀计算器语言的语法 num 0 1 2 3 4 5 6 7 8 9 int num num int expr int expr expr ex
  • 有条件渲染的输入组件不更新值

    使用 jsf 2 和 Primefaces 3 4 我知道有很多类似的问题 但没有一个能解决这个问题 当 panelGrid 内部 用 a 渲染时 true 的固定值
  • 如何使用 numpy 和 portaudio 提取低音、中高音

    如本例所示如何从输入音频流中提取频率信息 使用 PortAudio 我对 portaudio 和 numpy 很好奇 我对 fft 不是 100 确定 如何向 numpy 传递一个块并返回从 1 0 到 1 0 的低音 中音和高音的三个值
  • 如何使用多个LIKE运算符并使用索引

    在我的查询中 我想找到与许多 LIKE 运算符之一匹配的行 我知道 3 种方法 但只有其中一种可以使用索引 让我们从表格开始 CREATE TABLE dir id BIGSERIAL PRIMARY KEY path TEXT NOT N
  • 从 django 连接到多个 mongodb 实例

    我将 mongoengine 与 Django 结合使用 在我的项目中需要连接到两个 MongoDB 实例 同时处理单个请求 如果我使用它 效果很好 connect mdb1 do stuff with mdb1 connect mdb2
  • 如何过滤 CakePHP 中的深层关联

    我有以下表格 活页夹 文档 用户 docs users Doc 属于 Binder Doc hasAndBelongsToMany User 我想获取当前登录用户的活页夹及其关联文档 docs users 表中的关联 user id 我尝试
  • 无需 for 循环即可高效执行一维线性插值

    我正在尝试使用特定精度在 MATLAB 中执行线性插值 我想知道是否有一种有效的方法在 MATLAB 中编写线性插值函数 使其不需要 for 循环并且运行速度非常快 我想将传入的数据修改为特定的位宽 使用 quantize 函数 然后我还想
  • 将 C# double 转换为 Delphi Real48

    我发现了以下问题将 Delphi Real48 转换为 C double但我想走另一条路 从 C 到 Delphi 有谁知道如何做到这一点 我尝试过对代码进行逆向工程 但运气不佳 Update 我正在寻找 C 代码 该代码将采用 doubl
  • 导航栏/选项卡集具有反应性面板编号,但不渲染所有内容

    这个问题似乎是重复的 但让我解释一下为什么不是 我想创造一个闪亮的navbarPage具有固定元素和反应数tabPanels 对其他输入元素做出反应 关于如何创建响应式有很多问题tabsetPanels navbarPages但他们主要是为
  • 如何使用 jQuery 找到元素的绝对位置?

    有没有办法使用 jQuery 查找元素的绝对位置 即相对于窗口开头的位置 offset 将返回元素的偏移位置作为简单对象 例如 var position element offset position left 42 top 567 您可以
  • 以正确方式实现 Android Studio 3.6 时出现的 MultiDex 问题

    我将 Android Studio 更新到 3 6 在一个项目中 我遇到了 MultiDex 问题 并且不断收到此错误Calligraphy和另一个图书馆 E AndroidRuntime FATAL EXCEPTION main Proc
  • Rails:引导下拉菜单不起作用

    我对 Rails 还很陌生 并且一直在关注 Michael Hartl 的教程 一切都进展顺利 直到我进入下拉菜单 该菜单不起作用 然后起作用 现在不起作用 我已经阅读了几篇文章和修复程序 我怀疑我的修修补补已经开始了很简单 我已经做了一些
  • 将 Html.RadioButtonFor 与布尔值一起使用并不是写 Checked="Checked"

    我在使用 RadioButtonFor 帮助程序时遇到问题 当传入的值为 true 时 它 不会在任一单选按钮中显示 检查 当值为 false 时 它 工作得很好 我从我正在处理的项目中复制了这段代码并创建了一个示例应用程序 并且我能够复制
  • DCL 还坏吗?

    据我了解 旧的 JMM 实现惰性单调的 DCL 双重检查锁定 技巧已被破坏 但我认为新的 JMM 和易失性字段已修复它 然而在this不错的文章 显然足够新 可以引用新旧 JMM 和 DCL 中的易失性字段 指出它仍然损坏 我到处读到它已修
  • Spring CORS 不存在“Access-Control-Allow-Origin”标头

    将 web xml 移植到 java 配置后遇到以下问题 No Access Control Allow Origin header is present on the requested resource Origin http loca
  • 反序列化数据不起作用

    过去 5 个小时我一直在做这个 我被难住了 尝试了最荒谬的功能来尝试修复它 但无济于事 我正在从 WP 数据库检索数据 在插入之前 数据已使用以下方法序列化了 1 个数组 serialize 来自 PHP 的函数 然后使用 WP 函数将其插