首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过链接获取网站标题

通过链接获取网站标题
EN

Stack Overflow用户
提问于 2010-12-03 19:00:30
回答 10查看 88.3K关注 0票数 43

注意谷歌新闻是如何在每一篇文章节选的底部有源代码的。

卫报- ABC新闻-路透社-彭博社

我只是想模仿一下。

例如,在提交URL http://www.washingtontimes.com/news/2010/dec/3/debt-panel-fails-test-vote/时,我希望返回The Washington Times

如何使用php实现这一点?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-12-03 19:20:00

我的答案是扩大@AI W的答案使用标题的网页。下面是完成他所说的代码。

代码语言:javascript
复制
<?php

function get_title($url){
  $str = file_get_contents($url);
  if(strlen($str)>0){
    $str = trim(preg_replace('/\s+/', ' ', $str)); // supports line breaks inside <title>
    preg_match("/\<title\>(.*)\<\/title\>/i",$str,$title); // ignore case
    return $title[1];
  }
}
//Example:
echo get_title("http://www.washingtontimes.com/");

?>

输出

华盛顿时报-政治,打破新闻,美国和世界新闻

正如你所看到的,这并不是Google所使用的,所以这让我相信他们会得到一个URL的主机名并将其与他们自己的列表相匹配。

http://www.washingtontimes.com/ =>华盛顿时报

票数 66
EN

Stack Overflow用户

发布于 2010-12-03 19:15:17

代码语言:javascript
复制
$doc = new DOMDocument();
@$doc->loadHTMLFile('http://www.washingtontimes.com/news/2010/dec/3/debt-panel-fails-test-vote/');
$xpath = new DOMXPath($doc);
echo $xpath->query('//title')->item(0)->nodeValue."\n";

输出:

债务委员会未能通过测试投票--华盛顿时报

显然,您还应该实现基本的错误处理。

票数 36
EN

Stack Overflow用户

发布于 2010-12-03 20:30:21

通过使用域主页上的get_meta_tags(),纽约时报可以带回一些可能需要截断但可能有用的内容。

代码语言:javascript
复制
$b = "http://www.washingtontimes.com/news/2010/dec/3/debt-panel-fails-test-vote/" ;

$url = parse_url( $b ) ;

$tags = get_meta_tags( $url['scheme'].'://'.$url['host'] );
var_dump( $tags );

其中包括“华盛顿时报”就影响我们国家未来的问题发表突发新闻和评论。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4348912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档