如何使用PHP在一个站点上显示内容?

时间:2010-04-29 00:59:42

标签: php

我曾经听说过这可以使用Curl完成,但我不想显示我网站上外部网站的所有内容,只显示特定div中的内容。怎么办呢?

3 个答案:

答案 0 :(得分:9)

您可以使用PHP Simple DOM Parser抓取页面并轻松选择部分内容。

一样简单:

$html = file_get_html('http://www.google.com/');
$ret = $html->find('div[id=foo]'); 

文档here

如果您要执行的操作是获取http://www.freeoh.net/的标题,则以下代码将起作用。您需要在与以下脚本相同的文件夹中放置simple_html_dom.php和一个名为page.txt的文件(确保该脚本具有读取和写入的权限)。 (我假设您已经启用了cURL,正如您在问题中提到的那样。)

<?php

include 'simple_html_dom.php';

$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, "http://www.freeoh.net/");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_REFERER, "http://www.freeoh.net/");

$result = curl_exec ($curl);
curl_close ($curl);
//write contents of $result to file
$File = "page.txt";
$fh = fopen($File, 'w') or die("can't open file");
fwrite($fh, $result);
fclose($fh);
//turn file into dom object
$page = file_get_html("page.txt");
$header = $page->find("div", 1);
echo $header;

?>

这有点hacky因为我使用cURL来抓取页面,然后需要将它存储在某处,以便PHP Simple HTML Dom解析器能够正确解析它,但它可以工作。

答案 1 :(得分:0)

您可以使用curl从您想要的URL获取html,然后解析结果以“抓取”您想要的div。

答案 2 :(得分:0)

按照乔治所说的那样刮擦 你仍然需要使用Curl和regex。