2012-03-21 172 views
6

我正在尋找一種方法,可以從用戶在PHP中給出的URL中預覽另一個網頁。在PHP中抓取網頁

我想僅檢索頁面的標題,圖像(如網站的徽標)以及一些文本或描述(如果可用)。有沒有簡單的方法來做到這一點,沒有任何外部庫/類?由於

到目前爲止,我已經使用DOCDocument類,加載HTML並在屏幕上顯示它嘗試過,但我不認爲這是做

+1

是的。有。你用Google嗎?你有沒有嘗試過任何東西? – 2012-03-21 21:41:43

+1

是的,我不會問這裏,如果我沒有 – federicot 2012-03-21 21:43:27

+1

所以...你試過了什麼? – 2012-03-21 21:44:30

回答

14

我建議你考慮simple_html_dom。它會使它變得非常簡單。

下面是如何拉標題和第一圖像的工作示例。

<?php 
require 'simple_html_dom.php'; 

$html = file_get_html('http://www.google.com/'); 
$title = $html->find('title', 0); 
$image = $html->find('img', 0); 

echo $title->plaintext."<br>\n"; 
echo $image->src; 
?> 

這是另一個沒有外部庫的例子。我應該注意到,在HTML上使用正則表達式不是一個好主意。

<?php 
$data = file_get_contents('http://www.google.com/'); 

preg_match('/<title>([^<]+)<\/title>/i', $data, $matches); 
$title = $matches[1]; 

preg_match('/<img[^>]*src=[\'"]([^\'"]+)[\'"][^>]*>/i', $data, $matches); 
$img = $matches[1]; 

echo $title."<br>\n"; 
echo $img; 
?> 
+0

謝謝你的回答。我想我會堅持簡單的HTML Dom解析器庫,然後,每個人都在推薦它 – federicot 2012-03-21 22:13:43

2

您可以使用SimpleHtmlDom這樣做的正確方法。然後查找標題和img標籤或您需要做的其他事情。

+1

我曾經使用過的最好的第三方庫之一。高度推薦它。 – cchana 2012-03-21 21:56:00