我希望从存储在MySql DB中的序列化数组中提取一些数据。我继承了这个并且一些记录被破坏但我仍然可以提取一些信息。当我反序列化时,它确实会返回错误,所以不幸的是,这是不可能的。
这是一些序列化数据: -
s:16:"current_postcode";s:8:"TT12 3TT";
我希望使用preg_match从中提取该值,但我需要一些帮助尝试在PHP中提取它。
你能帮忙吗?
答案 0 :(得分:0)
你可以试试这个:
preg_match_all('/"([^"]+)"/', $data, $matches);
或
preg_match_all('/(?:s:16:|s:8:)"([^"]+)"/', $data, $matches);
但最后一个只有在您要查找的给定数据部分始终具有s:16或s:8(数据项的长度)时才有效。否则它不会是正确的