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


PHP count elements in formatted 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:"-";}

看起来你在处理一个序列化的数组,所以…

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

这是已序列化的数据,请将其反序列化

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