【发布时间】:2010-07-19 18:53:50
【问题描述】:
给定一个 URL。获取 URL 中 title 标记内容的最佳方法是什么。
基本上,我想检查http_referrer,如果它存在,请提供一个指向引荐页面的链接。但我希望链接能说出引荐页面的标题。
【问题讨论】:
标签: php
给定一个 URL。获取 URL 中 title 标记内容的最佳方法是什么。
基本上,我想检查http_referrer,如果它存在,请提供一个指向引荐页面的链接。但我希望链接能说出引荐页面的标题。
【问题讨论】:
标签: php
页面 X 的引用页面的 <title> 标记不会存储在 X 中的任何位置。您需要请求引用页面以获取其 <title> 标记。
下面是一些 PHP 代码的链接: Grab the title of a web page (local or remote)
我将稍微修改一下代码以适应您的用例:
<?php
$file = @ fopen($_SERVER['HTTP_REFERER'],"r") or die ("Can't open HTTP_REFERER.");
$text = fread($file,16384);
if (preg_match('/<title>(.*?)<\/title>/is',$text,$found)) {
$title = $found[1];
} else {
$title = " -- no title found -- ";
}
?>
请记住,您不能信任 HTTP_REFERER 变量,因为浏览器(或插件等)可以更改它。 (1)
【讨论】:
按照 GoalBased 的建议,首先在给定的 URL 加载文档。那么:
1) 使用多种 PHP HTML 解析器中的任何一种来查找标题标签。
2) 或者,如果您希望它快速而肮脏,请使用正则表达式来查找字符串 <title>(.*)</title>,这可能比解析快得多,但有时可能会给您带来误报。
【讨论】: