Php preg_match all将所有脚本标记内容抓取到数组中

Php preg_match all将所有脚本标记内容抓取到数组中,php,javascript,regex,Php,Javascript,Regex,我正在做模板系统。我确实有来自用户的html文档输入,其中包含html标记和javascript代码 我很喜欢html标签。我只想匹配所有javascript代码并将其添加到数组中,以便在页面底部加载它 我尝试使用preg_match bot查找脚本标记内容,但未运行。我的代码: $strPattern = "/<script>[^(<\/script>)]<\/script>/i"; preg_match_all( $strPattern,

我正在做模板系统。我确实有来自用户的html文档输入,其中包含html标记和javascript代码

我很喜欢html标签。我只想匹配所有javascript代码并将其添加到数组中,以便在页面底部加载它

我尝试使用preg_match bot查找脚本标记内容,但未运行。我的代码:

    $strPattern = "/<script>[^(<\/script>)]<\/script>/i";
    preg_match_all( $strPattern, $strReturn, $arrMatches);
    echo 'matches---';
    var_dump( $arrMatches );
    $strReturn = preg_replace($strPattern, '', $strReturn);
$strPattern=“/[^()]/i”;
preg_match_all($strPattern、$strReturn、$arrrmatches);
回声“匹配---”;
var_dump($);
$strReturn=preg_replace($strPattern,,$strReturn);
我遗漏了什么?

使用PHP DOMDOCUMENT,

您可以遍历和处理DOM树,并相应地格式化它。
与REGEX相比,这会让你的生活更轻松。

这很好,我也试过了。它工作了,但无法替换/清除源字符串中的脚本标记。您可以读取节点,然后按此处所述删除它:,然后将其附加到文档底部。如果没有,它还会添加头、体和doctype。。。我不要