下面有一段html li 标签列表:
$liStr='
<li title="001" class="lic">001</li>
<li title="002" class="lic">002</li>
<li title="003" class="lic">003</li>
<li title="004" class="lic">004</li>
<li title="005" class="lic">005</li>
';
需求是将这些列表转换成纯文本数组,例如:
["001","002","003","004","005"]
实现方法如下:
//首先写一个正则匹配
$preg="/<li title=\"(.*)\" class=\"(.*)\">\"(.*)\"<\/li>/";
//将匹配到的字符串替换成您想要的
$pregStr=preg_replace($preg,"$1,",$liStr);
//$1是$preg中第一个通配符“(.*)”所匹配到的内容,“,”逗号是将匹配到的字符用逗号分隔开来
得到的字符串如下:
echo $pregStr;
//显示结果
001,002,003,004,005,
然后再将字符串用explode()函数分割成数组:
$arr=explode(",",$pregStr);
//得到的数组如下
print_r($arr);
//显示结果
array([0]=>"001",[1]=>"002",[2]=>"003",[3]=>"004",[4]=>"005",[5]=>"")
因为最后一个分割逗号后面没有字符内容了,所以数组的最后一个元素内容为空,所以需要将最后一个数据元素给去掉(使用 unset()函数):
unset($arr[count($arr)-1]);
print_r($arr);
//显示结果
array([0]=>"001",[1]=>"002",[2]=>"003",[3]=>"004",[4]=>"005")
现在就大功告成了,以上就是php使用正则替换及字符串分割将li标签列表分割成纯文本数组的全过程。
转载于: https://www.dsboke.com/2020/05/25/php_yong_preg_replace_he_explode_jiang_li_lie_biao_fen_ge_cheng_chun_wen_ben_shu_zu/