如何从HTML代码块中获取URL?

时间:2012-12-14 16:28:26

标签: php

  

可能重复:
  Grabbing the href attribute of an A element

我有以下代码:

<?php $a= "<a href="http://www.kqzyfj.com/click-6331466-10751223" target="_top">
<img src="http://www.tqlkg.com/image-6331466-10751223" width="300" height="250" alt="Kaspersky Anti-Virus 2013" border="0"/></a>" ?>

请建议我如何在php中检索网址(http://www.kqzyfj.com/click-6331466-10751223)。

3 个答案:

答案 0 :(得分:3)

如果您要解析HTML以从锚标记中提取href属性值,请使用HTML / DOM Parser(绝对不要使用正则表达式)。

PHP Simple HTML DOM Parser

PHP XML DOM

OR

Don't use regexes to parse HTML。使用PHP DOM:

$DOM = new DOMDocument;
$DOM->loadHTML($str); // Your string

//get all anchors
$anchors = $DOM->getElementsByTagName('a');

//display all hrefs
for ($i = 0; $i < $anchors->length; $i++)
    echo $anchors->item($i)->getAttribute('href') . "<br />";

如有必要,您可以首先使用href检查节点是否有hasAttribute()

link

答案 1 :(得分:0)

尝试jqueryDOMXPATH

以下是DOMXPATH

的链接

使用Jquery,您可以通过为其添加选择器来获取其值,例如id

<a href="http://www.kqzyfj.com/click-6331466-10751223" target="_top" id='url'>

然后,将其作为,

访问
$(document).ready(function(){
 var link = $("#url").attr("href");
});

答案 2 :(得分:-2)

您可以使用正则表达式:

preg_match("/href=\"(http:\/\/.*)\"/U",$a, $matches);

它会搜索'href =“'和'”'之间的文字 $ matches [1]将包含您的网址。