Kaldırmak için PHP Düzenli ifade

4 Cevap php

Hay, i kaldırmak için herhangi bir online düzenli ifadeler bulmak için görünmüyor olabilir

<h1></h1>

etiketleri (ve onların içeriği).

Herkes bu konuda bir el ödünç ve yardımcı olur.

4 Cevap

Gibi bir araç kullanmak, bir regex kullanmayın 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 = '';
}

Orada yok çünkü, birini bulamıyorum.

<h1> etiketler keyfi derin iç içe olabilir beri düzenli ifadeler, bu görev için uygun değildir. (Edit: Tomalak onlar için izin verilmez dikkat çekti, ama gerçekte kötülük). Yerine HTML çözümleyici deneyin.

Eğer hiçbir yerde belgede <h1>Foo <h1> Bar</h1></h1> gibi bir yapı olabilir emin olabilirsiniz eğer Turbod ifadesi çalışacaktır.

Edit: Depending on your scenario, a css style like h1 { display: none !important; } might do the trick.

Da kullanabilirsiniz PHP's DOM extension module:

$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());

Neden kullanmayın strip_tags?