2011-03-24 31 views
1

如何使用preg匹配获取此字符串的链接?使用preg匹配获取标签的内容全部

<h3 class='post-title entry-title'> 
<a href='http://domain.blogspot.com/2011/03/blog-post_111.html'>Test Post</a> 
</h3> 

这是我做的,到目前为止

<?php 

$string = file_get_contents('http://www.domain.com'); 

    $regex_pattern = "/<h3 class=\'post-title entry-title\'>([^`]*?)<\/h3>/"; 

unset($matches); 
preg_match_all($regex_pattern, $string, $matches); 


foreach ($matches[0] as $paragraph) { 
echo $paragraph; 
echo "<br>"; 
} 
?> 

谢谢!

回答

0

也许/href='([^']*)'/gi有帮助吗?

当创建正则表达式RegExr是一个很好的工具。但是正则表达式要慢得多。你可以用更多的代码和3个函数strlen,strpos和substr获得相同的效果。这将是如何处理这个问题的最佳版本之一。

尝试

function between ($before , $after , $subject) 
{ 
    $subject = $subject; 
    $start = strpos ($subject , $before); 
    if ($start !== false) 
    { 
     $end = strpos ($subject , $after , $start); 
     if ($end !== false) 
     { 
      return substr ($subject , $start + strlen ($before) , $end - ($start + strlen ($before))); 
     }; 
    }; 
    return false; 
} 
1

不要使用正则表达式来解析HTML。改为使用像DOMDocument这样的DOM解析器。

+0

您好CanSpice和感谢信息。请你能给我一个关于如何转换我的代码的例子吗?我用它更新了我的帖子。 – EnexoOnoma 2011-03-24 20:29:23