Php 加载所有javascript后如何输出DOM?

Php 加载所有javascript后如何输出DOM?,php,javascript,dom,curl,phantomjs,Php,Javascript,Dom,Curl,Phantomjs,作为标题,我的问题是如何输出页面上的所有DOM内容(比如说在服务器计算机上另存为文本文件,或者使用ajax将结果传递给其他php函数) 我做了一些家庭作业,我试着用“curl>DOM.txt”输出所有DOM内容 但是,这种方法不会保存Javascript生成的内容,换句话说,Javascript代码不会运行。 另一种方法是在页面中嵌入一些javascript代码,让页面加载我们想要输出的网站,然后在加载所有内容后使用javascript代码保存所有DOM文件 我不知道是否可以做这样的工作,如果可

作为标题,我的问题是如何输出页面上的所有DOM内容(比如说在服务器计算机上另存为文本文件,或者使用ajax将结果传递给其他php函数)

我做了一些家庭作业,我试着用“curl>DOM.txt”输出所有DOM内容 但是,这种方法不会保存Javascript生成的内容,换句话说,Javascript代码不会运行。 另一种方法是在页面中嵌入一些javascript代码,让页面加载我们想要输出的网站,然后在加载所有内容后使用javascript代码保存所有DOM文件

我不知道是否可以做这样的工作,如果可以,那怎么做

任何机构都可以就如何实现这一目标给出详细答案

我愿意接受任何解决方案,此程序将在我的服务器上运行以提供服务


提前谢谢。

您可以使用
document.documentElement.innerHTML
获取HTML元素的内容(包括头部和身体)。如果您需要一切,可以将
document.doctype
document.documentElement.outerHTML
连接起来

请注意,
outerHTML
不是完全跨浏览器的(它可以在IE和Chrome中使用,但不能在Firefox中使用)-要想了解在Firefox中模拟
outerHTML
的方法,请参阅以下问题:

为什么不:

jQuery(document).ready(function($) {
    $.post(
        '/your_filename.php',
        'html='+$("html").html(),
        function(response){
            alert(response);
        }
    );
});

Javascript是一种客户端语言,因此在服务器上运行它需要专门的技术。PHP实际上具有处理DOM内容的能力,因为它可以在传输到客户端之前构建和修改DOM元素,请阅读更多相关信息


我不太确定您这样做是为了完成什么,但听起来您太努力了:您正在向客户机发送代码,以便客户机可以返回并将代码发送回服务器,以便服务器可以将其保存为文件?尽管如果这是您需要做的,请遵循Brilliand和iambriansreed的建议,使用Javascript/jQuery收集dom元素。

为什么您不认为phantom.js可以?我想这正是它的目的。@iambriansreed:是的,但你真的认为“jQuery”能够完成这项任务吗?@Explosion Pills:我只是在命令行中尝试幻影导出一个har文件。你能给我一些实现这一目标的详细指南吗?非常感谢!谢谢你的回答。那么,您如何输出这个内部javascript对象呢?可能只需要像iambriansreed建议的那样使用jQuery帖子。我的答案是替换
$(“html”).html()
-特别是如果您需要doctype和
标记。我不熟悉phantom.js,但在搜索其文档后,您可能可以通过
WebPage.content
属性完成同样的任务。谢谢您的回答。实际上,一切都是在服务器上完成的,甚至可以将代码发送到“客户端”,这个客户端可能只是一个浏览器,在X会话中运行代码。(phantom.js被设计为运行“headless”或“在服务器上”)@pst我知道在服务器上运行javascript是可能的(从阅读一个名为“Dart”的编程语言项目得知),但是我从来没有真正看到使用它的意义,因为已经有很多健壮的服务器端语言,所以我从来没有真正研究过它。很酷,刚刚测试过。如果我们不使用phantom.js,这将是一个很好的解决方案。