我有一长串HTML包含
<p>
<img>
<span>
和一堆其他标签。
无论如何只能从这个字符串中提取标签内的文本吗?
答案 0 :(得分:9)
如果要提取任何标记中的所有文本,最简单的方法是去除标记:strip_tags()
如果您想删除特定代码,可以this SO questions帮助。
答案 1 :(得分:1)
我知道我会为此付出很多抨击,但对于像这样的简单任务,我会使用正则表达式。
preg_match_all('~(<span>(.*?)</span>)~', $html, $matches);
$matches[0]
将包含所有span标记及其内容,$matches[1]
仅包含内容。
对于更复杂的内容,您可能需要查看PHP Simple HTML DOM Parser或类似内容:
// Create DOM from URL or file
$html = str_get_html($html);
// Find all images
foreach($html->find('img') as $element) {
echo $element->src . '<br>';
}
等