2012-03-21 115 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