통합검색

PHP

[PHP] 에디터로 작성한 HTML 코드 중 <img> 와 <img> 사이에 <br> 태그 두개 넣기.

  • 2024.09.23 17:16:42


본인이 운영하는 블로그는 다수의 사진이 입력되는 게시글이 많다.
오랜 기간 블로그 글을 작성하다 보니, 게시글 마다 사진과 사진 사이 여백이 제각각이다.

에디터로 작성된 html코드 중에서 정규식을 통해 <img> 와 <img> 태그 사이를 찾아
<br> 태그가 없거나, 2개 미만 이거나, 2개를 초과하는 경우
무조건 <br> 두개가 삽입 되도록 코드를 변경하여 출력해 줬다.


[!]<img>와 <img>를 찾아 적용[/!] 
모든 <img>와 <img> 사이를 찾아 <br> 두개를 입력해 준다.
 
// 정규식으로 각 <img> 태그 사이에서 <br>을 최대 2개만 남기기 (없거나 2개 미만일 때도 2개로 맞춤)
$pattern = '/(<img[^>]*>)(\s*(<br\s*\/?>\s*)*)/i';
$replacement = '$1<br><br>';
$result = preg_replace($pattern, $replacement, $html);

echo $result;


[!]<img class="lazy">와 <img class="lazy"> 사이만 찾아 적용[/!] 
img 태그에  class="lazy" 와 같이 특정한 조건에 부합하는 경우에만 적용한다. 
 
// 정규식으로 class="lazy"가 있는 <img> 태그에만 적용
$pattern = '/(<img[^>]*class="lazy"[^>]*>)(\s*(<br\s*\/?>\s*)*)/i';
$replacement = '$1<br><br>';
$result = preg_replace($pattern, $replacement, $html);

echo $result;