我在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.

09-26 23:08
查看更多