Php 函数 serialize() 返回 s:value,但我不想要这个 's:'。我该怎么办?



我得到了一个O/p:

s: 287:";a: 3:{s:6:"演员";a:2:{s:4:"名字";s:6:"角色";s:5:"价值";s:38:"费利西蒂·琼斯、迭戈·卢纳、艾伦·图迪克";"导演";;a: 2:{s:4:"名称";s:8:"导演";s:5:"值";s:14:"Gareth Edwards";}s:6:";"作家";;a: 2:{s:4:"名称";s:6:"作家";s:5:"价值";s:36:"克里斯·韦茨、托尼·吉尔罗伊、约翰·诺尔";}";;

我的代码:-

<?php
$arr = array("actors"=>array("name"=>"Actors","value"=>"Curt Clendenin, Michael Ornelas, Keaton Shyler, David Uchansky"),"director"=>array("name"=>"Director","value"=>"Colin Fleming, John Garside"),"writer"=>array("name"=>"Writer","value"=>"Colin Fleming (story), John Garside (story), Jerry Renek (story)"));
$sarr = serialize($arr);
add_post_meta(1,'_attributes',$sarr);
?>

我不需要第一个s:287";但这个东西会自动保存在我的数据库中。请帮帮我。。

WordPress函数add_post_meta((试图为自己序列化传递的数据。
$arr = [
'actors' => [
'name' => 'Actors',
'value' => 'Curt Clendenin, Michael Ornelas, Keaton Shyler, David Uchansky',
],
'director' => [
'name' => 'Director',
'value' => 'Colin Fleming, John Garside',
],
'writer' => [
'name' => 'Writer',
'value' => 'Colin Fleming (story), John Garside (story), Jerry Renek (story)',
],
];
// just store it as it is - wordpress does the rest
add_post_meta(1, '_attributes', $sarr);

正如您在add_post_meta()的文档中看到的,它在内部调用add_metadata((函数。此函数检查数据,这些数据必须通过调用maybe_serialize((进行序列化。由于BC的原因,它会对函数注释中提到的已经序列化的字符串进行双重序列化。

结论:只需将未序列化的数组传递给add_post_meta()函数即可。

相关内容

最新更新