PHP计算格式化字符串中的元素

时间:2013-04-19 07:07:31

标签: php arrays string

这一天令人难以置信,所以我需要一些帮助。 在给定的字符串中,如下面的内容:

$str = 'a:1:{s:8:"post_tag";a:5:{
i:460;a:5:{s:11:"wpseo_title";s:8:"demodemo";s:10:"wpseo_desc";s:8:"demodemo";s:13:"wpseo_bctitle";s:8:"demodemo";s:13:"wpseo_noindex";s:7:"default";s:21:"wpseo_sitemap_include";s:1:"-";}
i:459;a:5:{s:11:"wpseo_title";s:8:"testtest";s:10:"wpseo_desc";s:8:"testtest";s:13:"wpseo_bctitle";s:8:"testtest";s:13:"wpseo_noindex";s:7:"default";s:21:"wpseo_sitemap_include";s:1:"-";}
i:462;a:5:{s:11:"wpseo_title";s:7:"bikey77";s:10:"wpseo_desc";s:7:"bikey77";s:13:"wpseo_bctitle";s:7:"bikey77";s:13:"wpseo_noindex";s:7:"default";s:21:"wpseo_sitemap_include";s:1:"-";}
i:463;a:5:{s:11:"wpseo_title";s:7:"dimitra";s:10:"wpseo_desc";s:7:"dimitra";s:13:"wpseo_bctitle";s:7:"dimitra";s:13:"wpseo_noindex";s:7:"default";s:21:"wpseo_sitemap_include";s:1:"-";}
i:464;a:5:{s:11:"wpseo_title";s:8:"dimitra1";s:10:"wpseo_desc";s:8:"dimitra1";s:13:"wpseo_bctitle";s:8:"dimitra1";s:13:"wpseo_noindex";s:7:"default";s:21:"wpseo_sitemap_include";s:1:"-";}
}}';

如何计算以i开头的子串数:XXX ...并以......结尾?}}

子串示例:

i:460;a:5:s:11:"wpseo_title";s:8:"demodemo";s:10:"wpseo_desc";s:8:"demodemo";s:13:"wpseo_bctitle";s:8:"demodemo";s:13:"wpseo_noindex";s:7:"default";s:21:"wpseo_sitemap_include";s:1:"-";}

2 个答案:

答案 0 :(得分:0)

看起来你正在处理序列化数组,所以......

$data = unserialize($str);
echo count($data['post_tag']);

答案 1 :(得分:0)

这是序列化数据,反序列化

$arr = unserialize($str);
echo count($arr['post_tag']);