Php function serialize() returns s:value 但我不想要这个 's:'。我该怎么办?
Php function serialize() returns s:value but i don't want this 's:'.What should I do?
我得到这个 O/P:
s:287:"a:3:{s:6:"演员";a:2:{s:4:"姓名";s:6:"演员";s:5: "价值";s:38:"菲丽希缇·琼斯、迭戈·鲁纳、艾伦·图代克";}s:8:"导演";a:2:{s:4:"姓名";s:8:"导演";s :5:"价值";s:14:"加雷斯爱德华兹";}s:6:"作家";a:2:{s:4:"名字";s:6:"作家";s:5: "value";s:36:"Chris Weitz, Tony Gilroy, John Knoll";}}";
我的代码:-
<?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() function. This function checks for data, that has to be serialized by calling maybe_serialize()。由于 BC 的原因,它双重序列化已经序列化的字符串,如函数注释中所述。
结论:将未序列化的数组传递给add_post_meta()
函数即可。
我得到这个 O/P:
s:287:"a:3:{s:6:"演员";a:2:{s:4:"姓名";s:6:"演员";s:5: "价值";s:38:"菲丽希缇·琼斯、迭戈·鲁纳、艾伦·图代克";}s:8:"导演";a:2:{s:4:"姓名";s:8:"导演";s :5:"价值";s:14:"加雷斯爱德华兹";}s:6:"作家";a:2:{s:4:"名字";s:6:"作家";s:5: "value";s:36:"Chris Weitz, Tony Gilroy, John Knoll";}}";
我的代码:-
<?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() function. This function checks for data, that has to be serialized by calling maybe_serialize()。由于 BC 的原因,它双重序列化已经序列化的字符串,如函数注释中所述。
结论:将未序列化的数组传递给add_post_meta()
函数即可。