php - 在PHP中使用preg_match提取部分序列化数据

标签 php mysql serialization preg-match

我希望从存储在 MySql 数据库中的序列化数组中提取一些数据。我继承了这个,一些记录被打破了,但我仍然可以提取一些信息。当我反序列化时,它确实返回了一个错误,所以不幸的是,这是不可能的。

这是一些序列化数据:-

s:16:"current_postcode";s:8:"TT12 3TT";

我希望使用 preg_match 从中提取值,但我需要一些帮助来尝试在 PHP 中提取它。

你能帮忙吗?

最佳答案

你可以试试这个:

preg_match_all('/"([^"]+)"/', $data, $matches);

preg_match_all('/(?:s:16:|s:8:)"([^"]+)"/', $data, $matches);

但最后一个仅在您要查找的给定数据部分始终具有 s:16 或 s:8(数据项的长度)时才有效。否则不正确

关于php - 在PHP中使用preg_match提取部分序列化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40174435/

相关文章:

mysql - 使用 Dropwizard、Hibernate 和 MySQL 进行 UTF-8 编码

PHPUnit - 测试 SQL 查询的有效性

c++ - Arduino电路没有响应

c# - 按下播放后,Unity序列化不同列表中的对象不相等

尽管 error_handling = 1 PHP error_get_last 得到警告

c# - 良好做法 : Loop And If statement

PHP 设置 Mysql 每小时限制

java - Java RMI 如何(在实现级别)加载+定义类?

php - error_handlers 页面在部署时不显示

php - Google Docs 文档选择器?