不再支持/ e修饰符

时间:2018-06-09 15:18:43

标签: php regex php-7

您好我正在使用此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传递给unserialize函数。

0 个答案:

没有答案