首先,当我看到您的数据(项目列表)时,我认为 <ul> <li>
会更好:
<ul>
<li>I am item 1</li>
<li>I am item 2</li>
<li>I am item 3</li>
<li>I am item 4</li>
</ul>
对于您的 preg_replace,如果您简单地使用 str_replace (更便宜),它会更好
str_replace(array("<div>","</div>","<p>","</p>"), array("<li>","</li>","<ul>","</ul>"),$yourHtml)
然后你删除空的<p></p>
(现在<ul></ul>
)str_replace("<ul></ul>", "",$yourHtml)
但更好的解决方案是自己编辑插件并定义不同的输出!
不过,另一个“更好”的解决方案是使用preg_match_all获取数组中的所有项目。
例子:
$html="<p>
<div>my item 1</div>
<div>my item 2</div>
<div>my item 3</div>
<p></p>";
preg_match_all("#<div>(.*)</div>#",$html,$matchs);
var_dump($matchs[1]);
//var_dump output : array(3) { [0]=> string(9) "my item 1" [1]=> string(9) "my item 2" [2]=> string(9) "my item 3" }
如果您没有(我<div>
的意思是 : )此代码可以正常工作。<div>
<div> my <div>item 1</div></div>
通过这种方式,您可以将所有数据放在一个数组中,并且它们更易于操作。我不知道你的 php 学位,但只是执行一个 foreach 循环
foreach($matchs[1] as $v){
//$v is one item
}