我正在尝试从包含相对链接的html页面中提取所有链接。我正在使用正则表达式获取所有网址 - 这很容易 - 但我也希望找到相关链接。所以我希望能够找到:
<a href="http://www.google.com">Some Link</a>
我也希望能够找到
<a href="somepage.php">Some Other Link</a>
我需要尽可能快地使用尽可能少的内存,所以我试图避免使用DOM等东西。有人有什么想法吗?
答案 0 :(得分:2)
尝试这样的事情。可以吗?
$a = '<a href="http://www.google.com">Some Link</a>';
$p = '/href=\"(?<href>.*?)\">(?<content>.*?)</';
preg_match_all($p, $a, $m);
var_dump($m);
和
$b = '<a href="somepage.php">Some Other Link</a>';
preg_match_all($p, $b, $m2);
var_dump($m2);
如果您不需要参考<href>
,可以访问$m['href']
这样的数据,那么您可以起飞,以便模式成为
$p = '/href=\"(.*?)\">(.*?)</';
答案 1 :(得分:0)
怎么样
\<a.*?(?:href=['"](.*)?['"]|\>)