1. David Wu首页
  2. WordPress
  3. WordPress安装教程

WordPress 序列化处理相关函数大全-WordPress开发教程

序列化处理是 WordPress 的强项,比如在使用 update_option 的时候,可以把字符串,数组,或者对象直接存进去,WordPress 会自定化进行序列化处理,需要用到的时候,只需要使用 get_o

序列化处理是 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

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/121500

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

邮箱地址不会被公开。 必填项已用*标注