php用preg_replace和explode将li列表分割成纯文本数组

By | 2020年5月25日

下面有一段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标签列表分割成纯文本数组的全过程。

发表评论

电子邮件地址不会被公开。 必填项已用*标注