2012-05-04 76 views
0

我有一個用PHP編寫的頁面,在PHP寫入頁面後,我希望能夠搜索HTML源代碼以查找某些標記。這是不可能的/不明智的?數據抓取頁面JUST用PHP編寫

我想在當一切都已經在技術上已經被寫入HTML腳本的末尾使用的file_get_contents,我想我可能會打破我的頁面暫時這樣(打我的主機上的資源限制)

我的主要目標是試圖找出如何使用Javascript來逐個更改我的頁面元素。我想我可以做的,如果我可以找到我試圖改變的HTML標籤...哪些PHP寫在...在同一頁。

對Javascript很新穎,你看。

+0

你能解釋一下你打算用Javascript做什麼?一個一個地改變元素?按課程? ID?哪種類型的元素?這是有用的,因爲Javascript將幫助您即時更改內容,但取決於您想要更改的內容,它可能會有所不同。 – Vladimir

+0

我有點困惑。你是否需要你的PHP腳本來搜索標籤以便爲JavaScript提供某種暗示?因爲如果您只想在編寫JavaScript之前瞭解文檔的結構,那麼您可以像平常一樣運行PHP,並以您喜歡的方式檢查輸出。 – Chuck

+0

我想要做的是弄清楚如何動畫列表。看,頁面顯示一個列表(不是李格式)的帖子,基於條目組合成一個文本文件,內在。因此,當它吐出到HTML中時,它是一個製作的帖子的集合,並通過它們的div標籤進行特定的分隔和着色....靜態版本工作正常,所以現在我想要做的是動畫化每篇文章,我不確定如何定位每個帖子來做到這一點。也許是每個div標籤內的每個div標籤的foreach相當於一個master wrapper div標籤。我甚至不知道我是否應該使用PHP。不知道哪裏開始 – user1159454

回答

1

你可以很容易地做到這一點,客戶端,與jQuery。

如果你絕對需要使用php來處理服務器端,並且在生成代碼時絕對不能這樣做,那麼可以使用ob_start()捕獲輸出,然後使用ob_get_contents()將其放入字符串中做ob_end_clean()將其刷新到瀏覽器。

0

您可以在大多數瀏覽器中右鍵單擊您的渲染網頁並選擇一些「查看源代碼」的變體。或者,您可以將網頁的內容cURL,並將其視爲文本文件。

此外,file_get_contents();發出一個新的請求來獲取頁面/文件的內容。所以,如果你加載一個頁面,並且在底部,它會嘗試獲取頁面內容,它會永久加載一個新頁面,然後再加載一個頁面。您正在創建一個無限循環,並耗盡您分配的資源,這取決於您的託管服務提供商。

0

如果我沒有理解錯了,頁面加載後,你想改變自己的HTML輸出,所以,

<?php 
echo "<div id='mydiv'></div>"; 
?> 
<script type="text/javascript"> 

     window.onload = function() { 
     document.getElementById("mydiv").innerHTML = "updated html"; 
     } 

</script> 
0

除非你捕獲它的輸出爲您生成的網頁,例如:

<?php 

ob_start(); 
.... page building here ... 
$page = ob_get_clean(); 
echo $page; 
?> 

你將沒有任何工作。但是,如果您按上述方式進行捕獲,那麼您只需將$頁面送入DOM並在那裏操作即可。

但是這引發了一個問題......如果您需要在頁面生成後更改頁面,爲什麼不改變它的構建方式呢?