请帮我解决这个问题。
我的代码是:
preg_match_all('/<(link|style|script)(.*?)(\/>|<\/style>|<\/script>)/i', $tpl_content, $styles);
如果链接标记以“&gt;”结尾,则无效(仅当链接标记以'/&gt;'结尾时才有效。
谢谢!
答案 0 :(得分:0)
不确定你是否也想要标签之间的所有东西,它在一个未被捕获的组中:
/(<(?:link|style|script)(?:.*?)(?:\/)?>)(?:(?<=^|>)[^><]+?(?=<|$))(<\/(?:style|script)>)?/i
我会在这个btw中使用PREG_SET_ORDER标志。 foreach行,[0]是完全匹配,[1]是start / all,[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);