小编the*_*ss1的帖子

php:解析html:从body中提取脚本标签并在</ body>之前注入?

我不关心库是什么,但我需要一种方法从页面的<.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)

php dom html-content-extraction

0
推荐指数
2
解决办法
8541
查看次数

标签 统计

dom ×1

html-content-extraction ×1

php ×1