WordPress 序列化处理相关函数大全
序列化处理是 WordPress 的强项,比如在使用 update_option 的时候,可以把字符串,数组,或者对象直接存进去,WordPress 会自定化进行序列化处理,需要用到的时候,只需要使用 get_option 函数取出数据即可,原本是数组,取出来还是数组,原来是对象,取出来依然是对象,非常方便。
WordPress 是怎么做到的呢?这个就是 WordPress 自己定义了几个序列化处理的相关函数把序列化处理过程做的更简单:
1、maybe_unserialize 函数
maybe_unserialize( $original );
WordPress 的反序列化函数,官方的解释是:Unserialize value only if it was serialized. 意思是它会首先会检测一下当前的字符串是不是序列化之后的字符串,是的话,它才使用 PHP 的 unserialize 函数进行反序列化,如果不是,则直接返回。
2、maybe_serialize 函数
maybe_serialize( $data );
WordPress 的序列化函数,如果是普通字符串,则直接返回,如果 $data 是对象或者数组,则是用 PHP serialize函数对齐进行序列化。特别需要注意的是,如果 $data 是已经序列化的字符串,它还会对其再进行一次序列化操作。下面的例子比较全面解释其用法:
// 字符串不做任何处理,直接返回。
$data = 'Hello World!';
echo maybe_serialize( $data );
// Hello World!
// 整形,浮点型,和布尔型数据也是不做处理,直接返回。
$data = 55;
echo maybe_serialize( $data );
// 55
$data = 4.560
echo maybe_serialize( $data );
// 4.560
$data = true;
$data = maybe_serialize( $data );
// $data = true;
$data = null;
$data = maybe_serialize( $data );
// $data = null
// 对象和数组会被转换成序列化数据
$data = array( 1 => 'Hello World!', 'foo' => 'bar' );
echo maybe_serialize( $data );
// a:2:{i:1;s:12:"Hello World!";s:3:"foo";s:3:"bar";}
// 已经序列化的字符串,会被再次序列化
$data = 'a:2:{i:1;s:12:"Hello World!";s:3:"foo";s:3:"bar";}';
echo maybe_serialize( $data );
// s:50:"a:2:{i:1;s:12:"Hello World!";s:3:"foo";s:3:"bar";}";3、is_serialized 和 is_serialized_string 函数
WordPress 提供了 is_serialized 和 is_serialized_string 这两个用来检测当前字符串是不是序列化字符串的函数。
is_serialized( $data ); is_serialized_string( $data );
简单说:is_serialized 用法更广泛一点,无论数组,对象,字符串被序列化之后的字符串,它判断为 true,而 is_serialized_string 只有字符串被序列化之后,才判断为 true。下面的例子也非常全面的区分两者的区别:
var_dump( is_serialized( serialize(NULL) ) ); // true
var_dump( is_serialized_string( serialize(NULL) ) ); // false
var_dump( is_serialized( serialize(array(1,2,3)) ) ); // true
var_dump( is_serialized_string( serialize(array(1,2,3)) ) ); // false
var_dump( is_serialized( serialize("hello") ) ); // true
var_dump( is_serialized_string( serialize("hello") ) ); // true上一篇:WordPress 用于 filter 的返回默认值函数大全
栏 目:WordPress
下一篇:WordPress 技巧:管理员快速登录其他用户账户
本文地址:https://zz.feitang.co/CMSjiaocheng/25037.html
您可能感兴趣的文章
- 11-11wordpress导航菜单新窗口打开的设置方法
- 11-11WP-PostViews插件如何修改文章阅读数
- 11-11wordpress附件保存目录改为年月日和上传文件重命名为时间戳
- 11-11WordPress 上传媒体库文件重命名 全格式支持
- 11-11解决wordpress安装后更新或者上传文件权限不足的问题
- 11-11wordpress实现主动推送+熊掌号推送同步进行
- 11-11WordPress 添加友情链接设置 nofollow 属性
- 11-11WordPress 实现 wp_list_bookmarks 自定义友情链接排除调用
- 11-11WordPress首页指定或排除某分类文章显示
- 11-11WordPress不同分类调用不同的文章模板


阅读排行
推荐教程
- 09-22wordpress如何添加描述
- 11-11wordpress附件保存目录改为年月日和上传文件重命名为时间戳
- 10-19纯代码给WordPress网站添加独立下载页面功能
- 11-11WordPress之给文章内容中间插入广告的实现方法
- 10-18wordpress无插件调用随机文章的方法
- 10-18WordPress 技巧:WordPress 后台也使用七牛云存储
- 10-24Win10无法调节声音怎么办?Win10无法调节声音的解决方法
- 10-19WordPress上传图片HTTP错误的解决方法
- 10-18让注册用户可以上传自己的头像的WordPress插件-WP User Avatar v2.
- 11-11国外WordPress精美主题如何DIY汉化成中文版呢?





