1

我正在使用 PHP 的get_meta_tags()函数来获取不同网页的元标记。我想知道获取<h1>网页标签内容的最佳方法是什么。我应该使用file_get_contents(),还是有更好的方法?

4

4 回答 4

4

是的,我会使用:

$page = file_get_contents('http://example.com');
$matches = array();
preg_match( '#<h1>(.*?)</h1>#', $page, $matches );

你的信息应该在$matches

于 2012-08-02T03:15:30.940 回答
1

file_get_contents()可以为您获取页面的内容。获得内容后,如何提取h1标签取决于您。

您可以尝试一个简单的正则表达式来返回第一个h1标签的内容:

$contents = file_get_contents($url);
preg_match_all("/<h1>(.*?)<\/h1>/", $contents, $matches);
$h1 = $matches[1];

但是,在处理 HTML 时,我更喜欢使用 DOM 解析器。PHP Simple HTML DOM Parser非常易于使用。就像是:

$contents = file_get_contents($url);
$html = str_get_html($contents);
$h1 = $html->find("h1")[0];

注意:我没有测试这些代码片段。只是一些样本可以帮助您入门。

于 2012-08-02T03:23:12.037 回答
0

<h1>标签不是元标签,因此您不能使用该功能get_meta_tags()。HTML 文档中的元标记是<head>包含页面信息的部分中的标记,而不是内容本身。

PHP.DOM可能是获取所需信息的最佳方式。这是一个不错的教程的链接,应该可以让您很好地开始。

于 2012-08-02T03:14:32.417 回答
0

尝试使用简单的 HTML DOM

代码:

<?php
require_once('simple_html_dom.php');
$raw = '<h1>blah</h1>'; // Set the raw HTML of the webpage here
$html = str_get_html($raw);
$h1 = $html->find('h1', 0)->plaintext;
echo $h1;
?>
于 2012-08-02T03:15:43.863 回答