테스트 사이트 - 개발 중인 베타 버전입니다

[정규식] 재미난? 정규식 Again #16 - 속성편

· 5년 전 · 2131

그누보드 안에 있는 여러가지 정규식중  thumbnail관련 정규식을 찾아 봅니다.

 

lib/common.lib.php

https://github.com/gnuboard/gnuboard5/blob/84dd9f07661a41730cddee4816b8ec806665ca2c/lib/common.lib.php#L2309

[code]

// 에디터 이미지 얻기
function get_editor_image($contents, $view=true)
{
    if(!$contents)
        return false;

    // $contents 중 img 태그 추출
    if ($view)
        $pattern = "/<img([^>]*)>/iS";
    else
        $pattern = "/<img[^>]*src=[\'\"]?([^>\'\"]+[^>\'\"]+)[\'\"]?[^>]*>/i";
    preg_match_all($pattern, $contents, $matchs);

    return $matchs;
}

[/code]

각 게시판에 포함된 이미지 태그를 

 

lib/thumbnail.lib.php 에서 

 

get_list_thumbnail

get_view_thumbnail 중에서.

 

https://github.com/gnuboard/gnuboard5/blob/84dd9f07661a41730cddee4816b8ec806665ca2c/lib/common.lib.php#L2309

 

[code]

        $img = $matches[1][$i];
        preg_match("/src=[\'\"]?([^>\'\"]+[^>\'\"]+)/i", $img, $m);
        $src = $m[1];
        preg_match("/style=[\"\']?([^\"\'>]+)/i", $img, $m);
        $style = $m[1];
        preg_match("/width:\s*(\d+)px/", $style, $m);
        $width = $m[1];
        preg_match("/height:\s*(\d+)px/", $style, $m);
        $height = $m[1];
        preg_match("/alt=[\"\']?([^\"\']*)[\"\']?/", $img, $m);
        $alt = get_text($m[1]);

[/code]

 

각 게시판 글에 포함 된 이미지 태그중에서 attribute를 뽑아내는 정규식입니다.

src, style, alt를  width, height는 style안에서 뽑아냅니다.

 

각각을 찾아서 이미지는 썸네일을 만들고 원본이미지를 포함해서 아래와 같은 링크를 만듭니다.

 

[code]

<a href="//sir.kr/bbs/view_image.php?bo_table=cm_pix&amp;fn=654829463_lOzcMPxZ_5b0f91e594696877dc2950317a83deb4eef1e1cd.jpeg" target="_blank" class="view_image">

     <img src="//sir.kr/data/file/cm_pix/thumb-654829463_lOzcMPxZ_5b0f91e594696877dc2950317a83deb4eef1e1cd_730x548.jpg" alt="">

</a>

[/code]

 

대략 아래와 같은 이미지를 찾아서 뽑아내는 것입니다.

 

지금까지 배운 내용으로 한 문장의 정규식이 필요합니다. (위의 정규식도 참조)

그룹네임은 $src, $style, $width, $height, $alt 입니다. 

 

그런데 이것이 정규식으로 가능할까요?

 

-----------------------------------

<img style="width:100%; height:100%;display:none" src="http://test.com/data/editor/testimage.jpg" alt="test_img">
<img alt="test_img" style="width:100%; height:100%;display:none" src="http://test.com/data/editor/testimage.jpg">
<img src="http://test.com/data/editor/testimage.jpg" style="width:100%; height:100%;display:none"  alt="test_img">

-----------------------------------

 

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
11251
11250
11249
11246
11245
11240
11239
11238
11233
11208
11187
11186
11185
11183
11179
11178
11177
11157
11152
11149
11148
11143
11142
11141
11140
11135
11126
11113
11104
11097