0

可能重复:
获取 A 元素的 href 属性

我有以下代码:

<?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 中检索 URL( http://www.kqzyfj.com/click-6331466-10751223 )。

4

3 回答 3

4

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

PHP 简单的 HTML DOM 解析器

PHP XML DOM

或者

不要使用正则表达式来解析 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 />";

如有必要,您可以先检查该节点是否有hrefusing 。hasAttribute()

和这个链接

于 2012-12-14T16:38:39.073 回答
0

尝试jquery要么DOMXPATH

这是DOMXPATH的链接

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

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

然后访问它,

$(document).ready(function(){
 var link = $("#url").attr("href");
});
于 2012-12-14T16:33:39.877 回答
-2

您可以使用正则表达式:

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

它将搜索 'href="' 和 '"' $matches[1] 之间的文本将包含您的网址。

于 2012-12-14T16:57:39.190 回答