如何使用PHP从网站获取文本?

时间:2011-07-18 03:45:16

标签: php web

所以,我正在研究PHP脚本,其中一部分需要能够查询网站,然后从中获取文本。

首先,我需要能够查询某个网站的网址,然后我需要能够在查询后从该网站的文本中获取文本,并能够将该文本从函数中返回。 / p>

我如何查询网站并从中获取文字?

7 个答案:

答案 0 :(得分:11)

最简单的方法:

file_get_contents()

这将为您提供网页的来源。

你可能想要更完整的东西,所以请查看cURL,以便更好地处理错误,设置用户代理,什么不是。

从那里,如果你只想要文本,你将不得不解析页面。为此,请参阅:How do you parse and process HTML/XML in PHP?

答案 1 :(得分:7)

我会进行dom搜索,看看http://www.php.net/manual/es/domdocument.load.php Domxpath也可能非常有用:http://php.net/manual/en/class.domxpath.php

$doc = new DOMDocument;
$doc->load("http://mysite.com");
$xpath = new DOMXpath($doc);
$elements = $xpath->query("*/div[@id='yourTagIdHere']");

答案 2 :(得分:0)

您可以使用file_get_contents或者如果您需要更多控制(即提交POST请求,设置用户代理字符串......),您可能需要查看cURL。< / p>

file_get_contents示例:

$content = file_get_contents('http://www.example.org');

基本cURL示例:

$ch = curl_init('http://www.example.org');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3');

$content = curl_exec($ch);

curl_close($ch);

答案 3 :(得分:0)

如果您安装了Curl,请使用它。否则:

$website = file_get_contents('http://google.com');

然后,您需要在字符串中搜索所需的文本。你如何做到这一点取决于网站和你想要阅读的文字。

答案 4 :(得分:0)

你需要使用CURL。您可以获得一些样本here

答案 5 :(得分:0)

如果您想要更多控制,请使用cURL。否则:file_get_contents ..

$url  = "http://www.example.com/test.php";  // Site URL.
$site = file_get_contents($url);             // Gets site response.

答案 6 :(得分:0)

是否可以通过使用上面列出的方法从网页获取所有内容,然后使用正则表达式删除打开和关闭括号之间的所有字符来完成此操作?

一个看起来像这样的页面:

<html><style> h1 { font-style:... }</style><h1>stuff in here</h1></html>

然后在正则表达式之后变为

h1 { font-style:... }stuff in here

因为我们要删除各种标签之间的所有代码,例如[style]标签,我们可以先使用正则表达式删除[style和/ style]之间的所有字符,这样我们就可以了:

stuff in here

这会有用吗?如果你认为它会或者你预见到错误,请回复,因为我想用这种解析创建一个工具。