我想删除 php 中的以下行
<img class="hSprite" src="something" width="160" height="120"
sprite="/t/3010187.jpg" id="3010187">
我尝试了以下方法,但它不起作用
preg_replace("@<img class=\"hSprite\".*?>@s", "", $html);
编辑 我想删除整行,这样就不会有任何输出
最佳答案
为什么你不在这里使用 dom 和 xpath 查询在 php 中尝试 dom 类,它能够从该 img 节点中删除该类。不要依赖正则表达式来处理 dom 相关的事情,使用 php 团队提供的 Dom 类。
$text =
<<<heredoc
<img class="hSprite" src="something" width="160" height="120"
sprite="/t/3010187.jpg" id="3010187">
heredoc;
$doc = new DOMDocument();
$doc->loadHTML($text);
//$img = $doc->getElementsByTagName("img")->item(0);
$xpath = new DOMXPath($doc);
$expression = "//*[contains(@class, 'hSprite')]";
$classElements = $xpath->query($expression);
foreach ($classElements as $element) {
//$element->attributes->getNamedItem("class")->nodeValue = '';
$element->parentNode->removeChild($element);
}
//echo $doc->saveHTML($img);
echo $doc->saveHTML();
关于php - 使用 preg_replace 删除 img 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29967246/