我想foo='bar'从字符串中找到并替换- 一个常见的样式表链接
<link rel='stylesheet' href='http://www.foo.com/bar/baz.min.css' type='text/css' id='23434' foo='bar' media='all'/>
Run Code Online (Sandbox Code Playgroud)
意思是:foo可能到处都是,之后<link rel='styleshet'可能有空格,引号可以是单引号'或双引号"
到目前为止我的表达
/<link rel=[',"]stylesheet[',"].*(id=[',"].*[',"])/i
Run Code Online (Sandbox Code Playgroud)
显然它忽略了第一个和最后一个引用之间的引用 - 我尝试了一个负面的看法,但没有成功.
使用HTML解析器:
// this is just a snippet for testing and demonstration purposes.
// The OP works with a complete HTML document.
$html = "<link rel='stylesheet' href='foo.com/bar/baz.min.css' type='text/css' id='23434' foo='bar' media='all'/>";
$dom = new DOMDocument();
$dom->loadHTML($html);
$selector = new DOMXPath($dom);
foreach($selector->query('//link[@type="text/css"]') as $link) {
$link->removeAttribute('id');
$link->removeAttribute('media');
}
echo $dom->saveHTML();
Run Code Online (Sandbox Code Playgroud)
看到它在这里工作:
| 归档时间: |
|
| 查看次数: |
113 次 |
| 最近记录: |