【发布时间】:2011-02-15 23:35:00
【问题描述】:
我仍在尝试掌握正则表达式,希望有人可以帮助进行简单的查询。我正在尝试解析我网站的主页并提取 H1 标签。
<?php
$string_get = file_get_contents("http://davidelks.com/");
$replace = "$1";
$matches = preg_replace ("/<h1 class=\"title\"><a href=\"([A-Z]|[0-9]|[a-z]|[\s]|[\x21]|[\/]|[\-]|[\.]|[\£]|[\:])*\">([A-Z]|[0-9]|[a-z]|[\s]|[\x21]|[\/]|[\-]|[\.]|[\£]|[\:])*<\/a><\/h1>/", $replace, $string_get, 1);
$string_construct = "Mum " . $matches . " Dad";
echo ($string_construct);
?>
但是,它不仅仅使用 $1 标记显示第一个 HTML 链接,它只是拉入整个页面。
谁能帮忙?
【问题讨论】:
-
您是想学习正则表达式,还是只是解析您的网站?如果是后者,我建议查找 DOM 解析器,例如 PHP 的 SimpleXML。
-
@Cole:您应该使用DOM 来解析网站。 SimpleXML 将只接受有效的 XML 或 XHTML。真正有效的 XHTML 很难找到。与 HTML 解析不同,一个错误,什么也没有发生。
-
感谢您的帮助。
-
@netcoder 哦,对了,这是我以前用过的那个。多文档。感谢指正
标签: php regex html-parsing