从PHP中删除HTML中的所有样式属性

时间:2015-09-03 16:40:38

标签: javascript php html ajax scrape

我必须加载HTML页面的主体,没有任何样式属性,没有链接图像和所有不是“纯文本”的内容。我想在PHP中做到并尝试非常解决方案,但我还没有解决。我用我的脚本调用ajax来加载html页面,然后使用正则表达式我取出了我想要清除它的主体。你能帮助我吗?这是ajax调用:

$.ajax({
       type: "GET"
       url: "core/proxy.php?url="+cerca,              
       success: function(data){
       var body = data.replace(/^[\S\s]*<body[^>]*?>/i, "")
       .replace(/<\/body[\S\s]*$/i, "");
        $("div#risultato").html(body);
    },
      error: function(){
      alert("failed");
    }
    });
});

3 个答案:

答案 0 :(得分:2)

您可以使用jQuery来获取body

的文本内容

因此,在success函数中,您将获取data,将其转换为jQuery对象并在div中插入文本。

$('div#risultato').html($(data).find('body').text());

答案 1 :(得分:1)

插入style后,您可以按标记清除body属性:

function clearStyles(element) {
    element.setAttribute('style', '');
    for (var i = 0; i < element.children.length; i++) {
        clearStyles(element.children[i]);
    }
}

clearStyles(document.body);

<强> http://jsfiddle.net/n9ocxa0g/

或直接使用jQuery:

jQuery('body *').attr('style', '');

答案 2 :(得分:0)

Jose Antonio Riaza Valverde我纠正但没有任何改变:

$.ajax({
            //definisco il tipo della chiamata
            type: "GET",
            //url della risorsa da contattare
            url: "core/proxy.php?url="+cerca,
            //azione in caso di successo
            success: function(data)
            {
                var body = data.replace(/^[\S\s]*<body[^>]*?>/i, "")
                .replace(/<\/body[\S\s]*$/i, "");
                $("div#risultato").html(body);
                clearStyles(document.getElementById('risultato'));

            },
            //azione in caso di errore
            error: function()
            {
                alert("Chiamata fallita");
            }
    });
});

和功能:

function clearStyles(element) {
element.setAttribute('style', ' ');
element.setAttribute('img', ' ');
element.setAttribute('a', ' ');
for (var i = 0; i < element.children.length; i++) {
    clearStyles(element.children[i]);
}

}