2011-03-24 78 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