我不关心库是什么,但我需要一种方法从页面的<.body.>中提取<.script.>元素(作为字符串).然后我想在<./ body.>之前插入提取的<.script.>.
理想情况下,我想将<.script.> s提取为2种类型;
1)外部(具有src属性的那些)2)嵌入式(代码在<.script.> <./ script.>之间)
到目前为止,我已经尝试过phpDOM,Simple HTML DOM和Ganon.
我对它们中的任何一个都没有运气(我可以找到链接并删除/打印它们 - 但每次都失败了脚本!).
替代
/sf/ask/1639042121/
(很抱歉重新发布,但已经过了24小时的尝试和失败,使用替代库,失败更多等).
基于来自@ alreadycoded.com的可爱的RegEx答案,我设法将以下内容整合在一起;
$output = "<html><head></head><body><!-- Your stuff --></body></html>"
$content = '';
$js = '';
// 1) Grab <body>
preg_match_all('#(<body[^>]*>.*?<\/body>)#ims', $output, $body);
$content = implode('',$body[0]);
// 2) Find <script>s in <body>
preg_match_all('#<script(.*?)<\/script>#is', $content, $matches);
foreach ($matches[0] as $value) {
$js .= '<!-- Moved from [body] --> '.$value;
}
// 3) Remove <script>s from <body>
$content2 = preg_replace('#<script(.*?)<\/script>#is', '<!-- Moved to [/body] -->', $content); …Run Code Online (Sandbox Code Playgroud)