我希望能够使用preg_replace从HTML中删除内联css {}块。有人知道正则表达式吗?
更新
我不会控制页面。我想从页面中删除所有标记,只留下内容。
答案 0 :(得分:5)
有一个很棒的3rd-party library可以让像这样的简单DOM操作非常简单。
$html = new simple_html_dom();
$html->load($inputString);
foreach($html->find('style') as $style)
$style->outertext = '';
$outputString = $html->save();
如果由于某些原因无法使用第三方库,使用PHP's built-in DOM module仍然是比正则表达式更好的选择。
如果您想保留代码但仅因某些原因删除其内容,请使用innertext
代替outertext
。
答案 1 :(得分:0)
对于剥离内联css,这种方法对我来说似乎很奇怪。你为什么不使用javascript甚至jQuery来处理这个问题?
只需使用jQuery调用removeAttr。
答案 2 :(得分:0)
首先,正则表达式不是解析HTML的方法。如果您确实想要解析HTML,并且无法使用现有解决方案,那么请在PHP中使用DOM模块。 http://php.net/manual/en/book.dom.php
幸运的是,PHP已经有了一个从HTML块中删除标签的功能。它被称为strip_tags()
。 http://php.net/manual/en/function.strip-tags.php