php - 不再支持 /e 修饰符
问题描述
嗨,我正在使用这个 preg_replace_callback
$data = "a:6:{s:4:"home";s:32:"Rue d'Alsace Lorraine, Toulouse";s:6:"school";s:30:"Avenue de Fronton, Saint-Alban";s:9:"last_name";s:5:"Devis";s:10:"first_name";s:4:"Test";s:5:"phone";s:10:"0611223344";s:12:"got-distance";s:1:"1";}";
$data = preg_replace_callback(
'!s:(\d+):"(.*?)";!se',
function($matches) { return "'s:'.strlen('$2').':\"$2\";'"; },
$data
);
但我的函数返回 null 因为不支持 e 修饰符,任何人都可以帮助解决这个问题,我想我需要更改正则表达式,但我不擅长正则表达式。
这样做的目的是将 $data 传递给反序列化函数。
解决方案
推荐阅读
- python - 问:嵌套 for 循环错误的解决方法是什么 - find() 没有关键字参数
- android - Android Jsoup,为什么我无法获得正确的 img src
- r - 如何使用 Lubridate 包和正则表达式而不是使用单独的函数来处理数据?
- python - SQLite3 3 表连接,列不存在?
- sql - SQL 将 Stretch Date 切割成不同的时间段
- r - 嗨,问题是否有在 R studio 中做 excel 的 RIGHT() 函数?
- rundeck - Rundeck - 根据输入选项动态运行步骤
- algorithm - 为什么Iterative Deepening Search的空间复杂度是O(bm)?
- gitlab-ci - 无服务器到 AWS - Gitlab CICD
- java - 为什么在尝试使用 SAF 打开文件时会调用 `onSaveInstanceState` 函数?