2011-02-13 72 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