使用PHP提取url

时间:2011-05-12 12:10:15

标签: php regex

  

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

嗨,我在PHP中有这个字符串

<iframe frameborder="0" width="320" height="179" src="http://www.dailymotion.com/embed/video/xinpy5?width=320&wmode=transparent"></iframe><br /><a href="http://www.dailymotion.com/video/xinpy5_le-buzz-pippa-middleton-agace-la-reine_news" target="_blank">Le buzz Pippa Middleton agace la Reine !</a> <i>par <a href="http://www.dailymotion.com/direct8" target="_blank">direct8</a></i>

我想使用preg_match或其他php功能从锚点href属性中提取url

3 个答案:

答案 0 :(得分:3)

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()

答案 1 :(得分:1)

您可以使用

if (preg_match('#<a\s*[^>]*href="([^"]+)"#i', $string, $matches))
echo $matches[0];

答案 2 :(得分:0)

试试这个正则表达式

(?<=href=\")[\w://\.\-]+