我在wordpress中有一个wp_usermeta
表和一个名为meta_key
的值,这个值包含一系列连接的值,如下所示。
如何提取该值中wp_s2member_custom_fields
旁边的数据?
a:12:{
s:7:"country";
s:2:"CA";
s:4:"city";
s:8:"Brampton";
s:5:"state";
s:7:"Ontario";
s:8:"zip_code";
s:6:"L6T4E7";
s:3:"age";
s:13:"25–34 years";
s:8:"blog_url";
s:22:"http://www.blog.com";
s:16:"blog_description";
s:106:"A blog about blogging";
s:15:"monthly_uniques";
s:4:"1000";
s:13:"facebook_page";
s:55:"http://www.facebook.com/myfacebookpage";
s:14:"facebook_likes";
s:3:"128";
s:15:"twitter_account";
s:31:"http://twitter.com/mytwitterpage";
s:17:"twitter_followers";
s:3:"392";}
实际上,所有这些值都在一行上,为了清楚起见,把它们放在单独的行上
我需要以不同的方式提取这些数据来显示报告。我该如何添加以下语句来拉取
monthly_uniques
、城市、邮政编码等? 最佳答案
当Wordpress将一个数组输入数据库时,它会执行一个称为序列化的操作,将数组转换为您提供的字符串格式。要反转此过程并返回相同的数组,只需通过PHP的内置unserialize()函数运行上面的字符串,该函数将以上述方式返回关联数组。
所以像这样:
$string = 'a:12:{s:7:"country";s:2:"CA";s:4:"city";s:8:"Brampton";s:5:"state";s:7:"Ontario";s:8:"zip_code";s:6:"L6T4E7";s:3:"age";s:13:"25–34 years";s:8:"blog_url";s:22:"http://www.blog.com";s:16:"blog_description";s:106:"A blog about blogging";s:15:"monthly_uniques";s:4:"1000";s:13:"facebook_page";s:55:"http://www.facebook.com/myfacebookpage";s:14:"facebook_likes";s:3:"128";s:15:"twitter_account";s:31:"http://twitter.com/mytwitterpage";s:17:"twitter_followers";s:3:"392";}';
$array = unserialize($string);
$array['monthly_uniques']; //This will give you the monthly_uniques field.