본문 바로가기

코딩관련

공백.여백만 있는 p태그 삭제하기 ( php 정규식)



■ 공백.여백만 있는 p태그 삭제하기 ( php 정규식)



$a="<p style=\"line-height: 2;\">&nbsp;</p><center><p>&nbsp;</p></center>";

//==================

$a=preg_replace("/(<p)+(( )+[^>]{0,})?(>)+(&nbsp;<\/p>)/", "★", $a);

//===================
/*
※※※※※※해석   
(<p)+ ◀◀◀◀◀ <p 가 1개이상 있어야하고

( )+  ◀◀◀◀◀ 공백이 1개이상 있어야하고

[^>]{1,} ◀◀◀◀◀ > 닫는태그를 제외한 그외것들(알파벳,특문 등등)이 1개이상 있어야하고 ■(예시) style="color:red;" 

(( )+[^>]{1,})? ◀◀◀◀◀ (공백필수 + 숫자알파벳1개이상필수) ◀◀◀ 이부분을 다시 그룹으로 묶어서 [ 0개이거나 1개일떄 ]

(>)+  ◀◀◀◀◀ 닫는태그 1개이상 
(&nbsp;<\/p>) ◀◀◀◀◀ 괄호안내용 필수  

//===================
※※※※※참조
() ◀◀◀ 괄호는 그룹화를 뜻함
?  ◀◀◀ 없거나 1개일때  
+  ◀◀◀ 1개이상
^  ◀◀◀ 제외 또는 시작( ^ 위치에따라 의미가 달라짐)  
( ) ◀◀◀ 괄호안에 뜨어쓰기는 공백을 뜻함  \s 도 공백임! 
{0,} ◀◀◀ 앞에것이 0개이상 있어야함 (앞에것이 전혀 없거나, 있거나, 여러번 반복되거나.. 상관없이 모두 가능) 
{2,} ◀◀◀ 앞에것이 2개이상 있어야함 (1개만 있거나, 0개이면 해당안됨)
*/
//==================


echo htmlspecialchars($a);