티스토리 뷰

PHP Tip

정규표현식을 이용한 팁

깜장하마 2011. 3. 8. 11:20

//------------------------------------------------
// 추출
//------------------------------------------------
// a태그 관련 추출하기 
preg_match_all("|<a[^>]+>(.*)</a>|U",$str,$out1, PREG_PATTERN_ORDER);  
preg_match_all("|<a[^>]+>.*</a>|U",$str,$out2, PREG_PATTERN_ORDER);  
preg_match_all("^<a.*<\/a>^U", $str, $out3); 

// http로 시작하는 것 추출 
preg_match_all("((http)://[a-z0-9-]+.[][a-zA-Z0-9:&#@=_~%;?/.+-]+)",$str,$out4, PREG_PATTERN_ORDER);  

// 이미지 추출 
preg_match_all("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i", $str, $out5); 


//------------------------------------------------
// 처음 나온는 이미지 추출(jpg,gif,png)
//------------------------------------------------
$photo = getImg($str); 
//print_r ($photo); 

function getImg($content) { 
    $img = ""; 
    preg_match("<img [^<>]*>", $content, $imgTag); 
  
    if($imgTag[0]){  
        if( stristr($imgTag[0], "http://") ) { 
            preg_match("/http:\/\/.*\.(jp[e]?g|gif|png)/Ui", $imgTag[0], $imgName); 
            $img = $imgName[0]; 
        } else { 
            preg_match("/.*\.(jp[e]?g|gif|png)/Ui", $imgTag[0], $imgName); 
            $img = $imgName[0]; 
        } 
    } 

    return $img; 
}



//------------------------------------------------
// 특정 웹페이지를 읽어 그 페이지에 있는 이미지 추출
//------------------------------------------------
$startPage  = "1";      // 시작 페이지 
$endPage    = "2";     // 마지막 페이지 

for($i=$startPage; $endPage+1 > $i;$i++) 

    $data           = "";   // 초기화 
    $datafile       = "http://xxxx.com/photo.html?page=$i"; // 리스트 페이지 
    $fp             = @fopen($datafile, "r"); 
    while (!feof ($fp)) 
    { 
        $data .= fgets($fp); 
    } 
    fclose($fp); 

    preg_match_all("/<img[^>]*src=[\"']?([^>\"']+)[\"']?[^>]*>/i",$data, $matches); 

    foreach($matches as $key => $value) 
    { 
        foreach($value as $key_2 => $value_2) 
        { 
            echo $value_2."<br />"; 
        } 
        break; 
    } 


댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함