2011-02-13 71 views
0

即时通讯使用file_get_contents()和源是一个网址。我也使用Ajax插入到页面的HTML。


加载时的页面:阅读网页(含动态内容),并保存

<div> 
    <!-- Html goes here when the insert button is pressed --> 

    <input type="button" onclick="insertHtml()" value="insert"/> 
    <input type="button" onclick="saveThisPage()" value="save"/> 
</div> 


当HTML与AJAX动态补充说:

<div>  
    <!-- Html goes here when the insert button is pressed --> 
     <div>Some text here...</div> 
     <div>Some text here...</div> 
     <div>Some text here...</div> 

    <input type="button" onclick="insertHtml()" value="insert"/> 
    <input type="button" onclick="saveThisPage()" value="save"/> 
</div> 



现在我要救什么file_get_contents()回报,将数据存储到mysql数据库中。

我按“保存”按钮,将查询发送到PHP文件中读取页面(网址源)......除了内容被保存,当下载,而新数据,即内容
<div>Some text here...</div>

什么我该怎么办?我使用什么功能?

+0

你不能用file_get_contents来做到这一点。 – 2011-02-13 18:38:35

+0

@alecgorge:那我该怎么做呢? – Zebra 2011-02-13 18:39:43

+0

那么你可以使用某种形式的浏览器远程处理,如果你想在javascript执行后读取html。不知道为什么@alecgorge与你保密,但在这里看到一个可能的实现http://stackoverflow.com/questions/3836095/control-virtual-web-browser-in-any-language – mario 2011-02-13 18:44:54

回答

2

要理解你所要做的事情仍然很困难。但基于我的回答这个评论:

@coosal:我忘了添加“保存”按钮在我的问题。但过程1.页面加载,2.我按“插入和数据被添加和3.我按”保存“和页面被保存。php被称为AFTER阿贾克斯加载数据

你可以这样做。简单地实现节约触发另一个AJAX请求到PHP脚本,然后保存完整页面的HTML页面上的按钮:

<button onClick="$.post('save.php', {content:$('body').html()})"> 

然后简单地通过接收到完整的HTML正文:

file_put_contents("/tmp/saved.html", $_POST["content"]); // or mysql_* 
1

当您使用file_get_contents()加载数据时,请求页面内的任何Ajax代码都不会执行。你需要一个浏览器来做到这一点。

1

这是不实际的,甚至不可能使用file_get_contents()来检索文件的全部内容以及要通过ajax调用的文件的内容,因为php在执行javascript之前已经获取了数据javascript完全是客户端脚本,我不认为这是可能的。

0

如果您想要执行的JavaScript,你应该通过浏览器组件来获取数据。在Windows上,您可以使用IE的IWebBrowser2界面。 在其他平台上,您可以使用gecko