使用html内容动态填充数组而不剥离标记

时间:2013-06-10 13:06:21

标签: php html

我有一些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>";

我想动态地完成上述任务。

1 个答案:

答案 0 :(得分:0)

有很多方法可以做到这一点。我的第一种方法是使用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>';
...

编辑:这可以推广到与其他标签相匹配,但是在复杂性要求超过正则表达式能够解析的能力之后,应该使用DOM解析器。

如果你想匹配一组固定的非嵌套标签,这种方法是可行的,但如果所需的标签是可嵌套的或自动关闭的,那么正则表达式不是可行的方法,使用简单的DOM解析器将是正确的解决方案。