PHP Regular表示删除<h1>标签(及其内容)

dot*_*tty 3 php regex

干草,我似乎无法在网上找到任何正则表达式删除

<h1></h1>
Run Code Online (Sandbox Code Playgroud)

标签(及其内容).

任何人都可以帮助你.

nik*_*org 6

不要使用正则表达式,使用像PHP Simple HTML DOM这样的工具.

// Construct dom from string
$dom = str_get_html($html);

// ...or construct dom from file/url
$dom = file_get_html($path);

// strip h1 tags (and their content)
foreach ($dom->find('h1') as $node) {
    $node->outertext = '';
}
Run Code Online (Sandbox Code Playgroud)

  • 我说"一个工具*喜欢*PHP Simple HTML DOM",而不是"你绝对应该使用PHP Simple HTML DOM".我选择演示它,因为它是我个人熟悉的工具,比如使用它的简单性,并且能够提供一个示例. (2认同)

tur*_*bod 5

preg_replace('@<h1[^>]*?>.*?<\/h1>@si', '', $htmlsource);
Run Code Online (Sandbox Code Playgroud)

  • 对于您的一种情况,但我怀疑在所有情况下都不是。谨慎使用。 (2认同)

kar*_*m79 5

您还可以使用PHP的DOM扩展模块

$domDocument = new DOMDocument;
$domDocument->loadHTMLFile('http://example.com');
$domNodeList = $domDocument->getElementsByTagname('h1');
$domElemsToRemove = array();
foreach ($domNodeList as $domElement) {
    $domElemsToRemove[] = $domElement;
}
foreach($domElemsToRemove as $domElement) {
    $domElement->parentNode->removeChild($domElement);
}
var_dump($domDocument->saveHTML());
Run Code Online (Sandbox Code Playgroud)