当前位置: 首页 > 面试题库 >

从外部网站获取标题和元标签

高奇
2023-03-14
问题内容

我想尝试弄清楚如何获得

<title>A common title</title>
<meta name="keywords" content="Keywords blabla" />
<meta name="description" content="This is the description" />

即使按任何顺序排列,我也听说过PHP Simple HTML DOM解析器,但是我真的不想使用它。除了使用PHP简单HTML
DOM解析器之外,是否有解决方案的可能。

preg_match 如果它是无效的HTML,将无法执行此操作吗?

cURL可以使用preg_match做类似的事情吗?

Facebook做这样的事情,但可以通过以下方式正确使用:

<meta property="og:description" content="Description blabla" />

我想要这样的东西,以便有人发布链接时,它应该检索标题和元标记。如果没有meta标签,那么它将被忽略,或者用户可以自行设置(但我稍后会自己做)。


问题答案:

这应该是这样的:

function file_get_contents_curl($url)
{
    $ch = curl_init();

    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

    $data = curl_exec($ch);
    curl_close($ch);

    return $data;
}

$html = file_get_contents_curl("http://example.com/");

//parsing begins here:
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');

//get and display what you need:
$title = $nodes->item(0)->nodeValue;

$metas = $doc->getElementsByTagName('meta');

for ($i = 0; $i < $metas->length; $i++)
{
    $meta = $metas->item($i);
    if($meta->getAttribute('name') == 'description')
        $description = $meta->getAttribute('content');
    if($meta->getAttribute('name') == 'keywords')
        $keywords = $meta->getAttribute('content');
}

echo "Title: $title". '<br/><br/>';
echo "Description: $description". '<br/><br/>';
echo "Keywords: $keywords";


 类似资料:
  • 本文向大家介绍WordPress 获取网站标题,包括了WordPress 获取网站标题的使用技巧和注意事项,需要的朋友参考一下 示例 要么 输出结果 基于这些样本设置

  • 问题内容: 请注意,Google新闻在每篇文章摘要的底部都有来源。 卫报-美国广播公司新闻-路透社-彭博社 我正在尝试模仿。 例如,提交网址后,我想返回 php这怎么可能? 问题答案: 我的答案正在扩展@AI W使用页面标题的答案。以下是完成他所说的代码。 输出值 华盛顿时报-政治,最新消息,美国和世界新闻 如您所见,这并不完全是Google所使用的,因此这使我相信他们可以获得URL的主机名并将其

  • 本文向大家介绍WordPress 获取网站标语,包括了WordPress 获取网站标语的使用技巧和注意事项,需要的朋友参考一下 示例 输出结果 基于这些样本设置

  • 我想得到每个链接,是在所以我想有:

  • 本文向大家介绍android Jsoup获取网站内容 android获取新闻标题实例,包括了android Jsoup获取网站内容 android获取新闻标题实例的使用技巧和注意事项,需要的朋友参考一下 近期做简单的新闻客户端界面使用到了Jsoup获取,使用起来特别方便,这也是被我一个学长称为学android网络必学的一个东西,在此也是分享一下自己近期所学。 首先还是给出效果: 上面是通过text

  • 问题内容: 我正在使用jQuery和 此插件 从外部站点提取内容。 使用以下代码,效果很好: 但是,我真正想做的只是从目标站点中拉出一个部分(div),我知道这仅在使用该方法时才可行,而在时才可行。 然后,我找到了 这段代码 ,但是当我尝试将其构建到代码中时,它似乎不起作用,如下所示: 调查Firebug上的请求,该请求看起来确实成功,但是代码似乎无法在目标站点上找到以下标记: 我是否需要确保目标