2011-03-24 3 views
1

preg match all을 사용하여이 문자열의 링크를 얻으려면 어떻게해야합니까?preg match all을 사용하여 태그 내용 가져 오기

<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

관련 문제