我有一个PHP变量,乍一看看起来像序列化数据,但在检查时似乎没有效果..
O:30:"myschedule":1:{s:41:"myschedule_timestamp";s:10:"1547735354";}
我正在尝试修改时间戳,但保持其余部分完整,我最好的方法是什么?
我应该看看正则表达式还是类似的东西?
答案 0 :(得分:0)
在这里使用preg_replace
似乎是一个可行的选择。我们可以使用以下模式匹配您的序列化字符串:
(.*")\d+(".*)$
然后我们可以在插入新时间戳时将更新后的字符串拼凑在一起(我在下面使用NEW_ID
进行强调,但可能这是一些数字)。
$input = 'O:30:"myschedule":1:{s:41:"myschedule_timestamp";s:10:"1547735354";}';
$input = preg_replace('/(.*")\d+(".*)$/', '$1NEW_ID$2', $input);
echo $input;
Hello, world! O:30:"myschedule":1:{s:41:"myschedule_timestamp";s:10:"NEW_ID";}