0

请帮我解决这个问题。

我的代码是:

    preg_match_all('/<(link|style|script)(.*?)(\/>|<\/style>|<\/script>)/i', $tpl_content, $styles);

如果链接标签以“>”结尾,它将不起作用(仅当链接标签以“/>”结尾时才有效。

谢谢!

4

1 回答 1

0

不确定您是否还想要标签之间的所有内容,它位于以下未捕获的组中:

/(<(?:link|style|script)(?:.*?)(?:\/)?>)(?:(?<=^|>)[^><]+?(?=<|$))(<\/(?:style|script)>)?/i

我会在这个 btw 中使用 PREG_SET_ORDER 标志。foreach 行,[0] 是整个匹配,[1] 是开始/全部,[2] 是可选的结束标记

$string = '<link lan="hello"/><script language=\'javascript\'>$(document).ready(function() {}</script>'
$returnValue = preg_match_all('/(<(?:link|style|script)(?:.*?)(?:\\/)?>)(?:(?<=^|>)[^><]+?(?=<|$))(<\\/(?:style|script)>)?/i', $string , $matches, PREG_SET_ORDER);
于 2013-11-26T19:00:26.467 回答