PHP - 从HTML中提取文本

4
我有一段包含HTML标签的长字符串。
<p>
<img>
<span> 

还有很多其他标签。

有没有办法从这个字符串中仅提取标签内的文本?

2个回答

10
如果您想提取标签内的所有文本,则简单的方法是剥离标签:strip_tags() 如果您想删除特定标签,也许此SO问题可以帮到您。

1

我知道我会因为这个而受到很多抨击,但对于像这样的简单任务,我会使用正则表达式。

preg_match_all('~(<span>(.*?)</span>)~', $html, $matches);

$matches[0] 将包含所有的 span 标签及其内容,$matches[1] 仅包含内容。

对于更复杂的内容,您可能需要查看 PHP Simple HTML DOM 解析器 或类似工具:

// Create DOM from URL or file
$html = str_get_html($html);

// Find all images
foreach($html->find('img') as $element) {
   echo $element->src . '<br>';
}

等等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接