我需要能够解析一些文本并找到标签具有target ="_ blank"的所有实例....并且对于每个匹配,添加(例如):此链接在关闭标记之前的新窗口中打开.
例如:
之前:
<a href="http://any-website-on-the-internet-or-local-path" target="_blank">Go here now</a>
Run Code Online (Sandbox Code Playgroud)
后:
<a href="http://any-website-on-the-internet-or-local-path" target="_blank">Go here now<span>(This link opens in a new window)</span></a>
Run Code Online (Sandbox Code Playgroud)
这是一个PHP站点,所以我假设preg_replace()将是方法...我只是没有正确编写正则表达式的技能.
提前感谢任何人都可以提供的帮助.
您永远不应该使用正则表达式来解析HTML,除非在非常明确和受控制的情况下.
相反,尝试一个内置的解析器:
$dom = new DOMDocument();
$dom->loadHTML($your_html_source);
$xpath = new DOMXPath($dom);
$links = $xpath->query("//a[@target='_blank']");
foreach($links as $link) {
$link->appendChild($dom->createTextNode(" (This link opens in a new window)"));
}
$output = $dom->saveHTML();
Run Code Online (Sandbox Code Playgroud)
或者,如果将其输出到浏览器,则可以使用CSS:
a[target='_blank']:after {
content: ' (This link opens in a new window)';
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1587 次 |
| 最近记录: |