使用PHP从不同的站点检索信息

时间:2010-06-26 17:20:50

标签: php dynamic client-side server-side

我想知道是否有办法使用PHP(或任何其他服务器端或甚至客户端[如果可能]语言)从不同的网站获取某些信息(不是像include这样的本地文件) nav.php”。

我的意思是......说我在www.blog.com上有一个博客,我在www.mysite.com有另一个网站

有没有办法收集www.blog.com上的所有h2链接并将它们放在www.mysite.com的div中?

另外,有没有办法可以从blog.com中获取DIV(带有ID的课程)内的全部信息并将其插入mysite.com?

谢谢, 阿米特

4 个答案:

答案 0 :(得分:1)

首先,如果您想从博客中检索内容,请检查博客生成器(即Blogger,WordPress)是否没有API,这要归功于您不必重新发明轮子。通常,优秀的AP提供了良好的文档(意味着所有API中可能有5%是优秀的API),这些文档应该包含PHP,JavaScript,Java等顶级语言的代码示例...再次,如果它是从博客中检索内容,应该有大量的框架供您使用

答案 1 :(得分:0)

查看PHP Simple HTML DOM library

可以很简单:

// Create DOM from URL or file
$html = file_get_html('http://www.otherwebsite.com/');

// Find all images
foreach($html->find('h2') as $element)
       echo $element->src;

答案 2 :(得分:0)

这可以通过将远程网站作为文件打开,然后使用HTML并使用DOM解析器来操作它来完成。

$site_html = file_get_contents('http://www.example.com/');
$document = new DOMDocument();
$document->loadHTML($site_html);
$all_of_the_h2_tags = $document->getElementsByTagName('h2');

了解更多关于PHP's DOM functions的信息,例如抓取其他标签,从DOM的各个部分创建新的HTML,并在您自己的网站上显示。

答案 3 :(得分:0)

您的第一步是使用CURL在其他网站上执行请求,并从您要访问的页面中删除HTML。然后是解析HTML以找到您正在寻找的所有内容的部分。可以使用一堆正则表达式,你可能可以完成工作,但Stackoverflow工作人员可能会对你不满。您还可以获取生成的HTML并使用domDocument object, and loadHTML来解析HTML并加载所需的内容。

此外,如果您控制两个站点,您可以在第一个站点(www.blog.com)上设置一个特殊页面,其中包含您需要的信息,可以使用HTML直接输出格式正确,或者您可以使用XML格式可以从www.mysite.com轻松操作。