如何使用PHP获取HTML标记中的属性值

时间:2013-05-16 05:28:05

标签: php regex domdocument

我有一个像

这样的字符串
$str = '<a href="http://www.example.com/example_link">This is the Example Link</a>';

我想从php中的上述字符串中获取href值(http://www.example.com/example_link)和文本值(This is the Example Link)

如何从字符串中获取这些值,Any Efficient方式。我需要使用PHP DOM还是REGEX?

注意:字符串中可能会出现多个锚<a>标记。

2 个答案:

答案 0 :(得分:0)

如果您确定您的字符串将采用正确的xml格式,那么您可以使用 simplexml_load_string

试试这个

<?php
$str = '<a href="http://www.example.com/example_link">This is the Example Link</a>';
$xml  = simplexml_load_string($str);
echo "<pre>";
print_r($xml);
 ?>

它会返回一个对象,你可以访问任何你想要的东西

DEMO

答案 1 :(得分:0)

首先找到链接

  

`   //正则表达式过滤器
  $ reg_exUrl =“/(http|https | ftp | ftps):/ [@ zA-Z0-9-.] +。[ - zA-Z] {2,3}(/\ S*)? /“;
  //您要为网址过滤的文字
  $ text ='This is the Example Link';
  //检查文本中是否有网址
  if(preg_match($ reg_exUrl,$ text,$ url)){
         $链接= $网址[0];
  其他{
         $ link ='发生了一些问题';
  }

现在找到锚点之间的文字

  

$link_text = preg_replace('/<a.*?>/i', '', $text);
$link_text = preg_replace('/<\/a>/i', '', $link_text);
?>