Php 从html中删除特定标记,同时避免使用iFrame

Php 从html中删除特定标记,同时避免使用iFrame,php,javascript,jquery,html,regex,Php,Javascript,Jquery,Html,Regex,我需要从HTML示例中删除一些特定的标记。 为了避免使用iframe,我在PHP文件中使用curl和getJSON获得了一个HTML页面。我将在我的.js中获得结果, 但我不会把整个HTML粘贴到我自己的div中。 我想这是因为在一个HTML结构中不能有多个HTML、HEAD和BODY标记 <!DOCTYPE html> <html> <head> <style>some style</style>

我需要从HTML示例中删除一些特定的标记。 为了避免使用iframe,我在PHP文件中使用
curl
和getJSON获得了一个HTML页面。我将在我的.js中获得结果, 但我不会把整个HTML粘贴到我自己的div中。 我想这是因为在一个HTML结构中不能有多个HTML、HEAD和BODY标记

<!DOCTYPE html>
<html>
    <head>
        <style>some style</style>
        <title>Title of the document</title>
    </head>    
    <body>
        The content of the document......
    </body>
</html>

某种风格
文件标题
文件的内容。。。。。。
现在在上面的结构中,我不需要HTML、BODY和HEAD标记,但我需要CSS的样式标记,所以我只想删除HTML、BODY和HEAD标记。 删除后,我需要将其附加到我的div中(所有这些问题都是因为我不想使用iframe)。 如何删除它?我想到了
strip\u tags()
preg\u replace
或一些正则表达式函数,但不知道最好的方法。 请帮我找到最好的方法。 它可以是PHP、JavaScript或JQuery。
但我会建议答案是否在javascript和jquery中,因为我希望在我的JS中执行此操作,但如果需要,PHP也可以工作

使用DOM解析器,正则表达式不用于解析HTML

下面的示例使用
DOMDocument
解析器来提取所需的元素
$html
是使用cURL检索的HTLM文档

libxml_use_internal_errors(true); //Prevents Warnings, remove if desired
$dom = new DOMDocument();
$dom->loadHTML($html);
$styleNode = $dom->getElementsByTagName("style")->item(0);
$style = $dom->saveHTML($styleNode);
$body = "";
foreach($dom->getElementsByTagName("body")->item(0)->childNodes as $child) {
    $body .= $dom->saveHTML($child);
}

echo $style;
echo $body;
假设使用getJson调用此脚本,则使用
$style
$body
创建一个json对象,并将其传递回要插入页面的javascript

据我所知,这应该是您的申请流程:

客户端加载页面->。getJSON调用php脚本->说php脚本使用cURL->此代码运行->json对象被传递回。getJSON->来自的成功回调。getJSON将新HTML添加到页面


为什么不在php中使用$strip_标记var来去除异常?

您区分服务器端和客户端吗?请记住这一点,重新表述你的问题。你相信你的网站所吸收的页面内容吗?如果不是的话,你很容易受到使用这种技术的客户端和服务器端攻击。谢谢你编辑@bradMace@LuisSiquot:是的,在客户端,我只需要将要附加到div的内容,不是整个HTML结构,这就是我如何删除标记,从而获得可以附加到div的结构??是的,我确实信任从该站点@allinone吸取的内容
$strip_标记
var是什么?我从来没有听说过这个。我相信他指的是php函数strip_tags(),但是如何使用异常状态是可以的,但是我没有得到任何关于这个函数的响应