0

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

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

4

1 回答 1

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 解析器将是正确的解决方案。

于 2013-06-10T13:13:48.703 回答