我有一些HTML内容。
。
<p>Ask a question</p><p>Wait for an answer</p><p>Vote up an Answer</p>
我想使用php分别输入每个段落/div或任何其他html元素作为数组的元素
$arr[0]="<p>Ask a question</p>";
$arr[1]="<p>Wait for an answer</p>";
我想动态地完成上面的任务
有很多方法。我的第一种方法是使用preg_match_all()
:
假设你的html在$html
:
preg_match_all( '|<p>.+?</p>|si', $html, $matches );
$matches
将是一个包含1个元素x N个元素的数组的数组,其中N是匹配的个数。
$matches[0][0] == '<p>Ask a question</p>';
$matches[0][1] == '<p>Wait for an answer</p>';
...
Edit:这可以推广到匹配其他标记,但是在复杂性要求超过正则表达式解析能力之后,应该使用DOM解析器。
如果您想匹配一组固定的不可嵌套标记,这种方法可以工作,但是如果所需的标记是可嵌套的或自闭的,那么正则表达式就不是方法,使用简单的DOM解析器将是正确的解决方案。