마

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

· 2020-08-06 (목) 00:04:53 · 1595

그누보드 안에 있는 여러가지 정규식중  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&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">

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

 

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

정규표현식

30건

+
제목 글쓴이 날짜 조회
21-06-04 조회 1,539
21-08-29 조회 1,431
21-06-24 조회 1,767
21-06-17 조회 1,938
21-06-09 조회 1,163
20-08-14 조회 2,055
20-08-11 조회 1,360
20-08-10 조회 1,473
20-08-09 조회 1,437
20-08-06 조회 1,596
20-08-05 조회 1,323
20-08-05 조회 1,291
20-08-05 조회 1,206
20-08-04 조회 1,721
20-08-04 조회 1,189
20-08-04 조회 1,552
20-08-03 조회 1,681
20-08-03 조회 1,344
20-08-03 조회 1,548
20-08-02 조회 1,532
20-08-02 조회 1,725
20-08-02 조회 1,519
20-08-01 조회 1,630
20-08-01 조회 1,237
20-08-01 조회 1,380
21-06-07 조회 1,665
21-06-04 조회 1,583
21-06-04 조회 1,609
21-06-04 조회 1,330
21-06-04 조회 1,554