我想創建一個抓取網站內容的PHP腳本。因此我們假設它抓住了該網站的所有源代碼,並且說出我需要哪些代碼行。有使用其他網頁的源代碼的PHP功能嗎?
在PHP中有沒有一個函數可以讓你這樣做,或者它是不可能的?免責聲明:我不打算將此用於任何非法目的,也不要求您寫任何代碼,只是告訴我它是否可行,如果可以的話我會如何去做。另外我只是問一般情況,不是因爲任何特定的原因。謝謝! :)
我想創建一個抓取網站內容的PHP腳本。因此我們假設它抓住了該網站的所有源代碼,並且說出我需要哪些代碼行。有使用其他網頁的源代碼的PHP功能嗎?
在PHP中有沒有一個函數可以讓你這樣做,或者它是不可能的?免責聲明:我不打算將此用於任何非法目的,也不要求您寫任何代碼,只是告訴我它是否可行,如果可以的話我會如何去做。另外我只是問一般情況,不是因爲任何特定的原因。謝謝! :)
file('http://the.url.com')
從url返回一行數組。
所以行24做到這一點:
$lines = file('http://www.whatever.com');
echo $lines[23];
這聽起來像一個可怕的想法,但在這裏我們去:
使用file_get_contents()
來獲取文件。如果Web服務器首先處理它,則無法獲取源,因此您可能需要使用擴展名,如.txt
。除非你用密碼保護文件,顯然任何人都可以得到它。
使用explode()
與\n
分隔符將源代碼拆分爲行。
使用array_slice()
來獲得你需要的行。
eval()
該代碼。
注意:如果你只是想HTML輸出,那麼忽略有關步驟1中的源位和很明顯,你可以跳過整個eval()
事情。
網站(你可以抓住)的內容是該網站的東西從源代碼不同(你不能)。 – Jon 2011-03-23 00:56:33
我的意思是HTML,而不是任何服務器端源 – 2011-03-23 00:57:19
通常更簡單的是'file_get_contents(「http:// remote/page」)'。但是這適合提取HTML。我不確定這是你抓取源代碼或代碼行的意思。 (從遠程.php腳本接收代碼是不可能的;除非特別準備。) – mario 2011-03-23 00:58:45