반응형
작업상 필요에 따라 html를 채취해 데이터베이스에 저장해야 한다.사용에 지장을 주지 않도록 와이드 스타일을 삭제하셔야 합니다.예컨대 그림과 div에 있는 width, height 등이다.
그러나 채취한 html에는 대소문자, 중간에 빈 칸 등 양식이 다르다.
그래서 php 정칙으로 다음과 같은 방법을 써서 이 진기한 꽃들을 걸러낸다.
코드는 다음과 같습니다
<?php
/**
* 가로 세로 스타일 지우기
* @param String $content 내용
* @return String
*/
function clear_wh($content){
$config = array('width', 'height');
foreach($config as $v){
$content = preg_replace('/'.$v.'\s*=\s*\d+\s*/i', '', $content);
$content = preg_replace('/'.$v.'\s*=\s*.+?["\']/i', '', $content);
$content = preg_replace('/'.$v.'\s*:\s*\d+\s*px\s*;?/i', '', $content);
}
return $content;
}
?>
데모:
<?php
$html = <<<HTML
<div style="text-align:center" width="500" height="300">
<div style="Width : 100px ; Height: 100 px;">
<img src="/images/test.jpg" width=400 height = 200>
<div style="float:left; width: 100px; height : 200 px;"></div>
</div>
<div style="width : 100 px ;height: 100px">
<img src="/images/test.jpg" width=400 height = 200>
</div>
</div>
HTML;
echo '<xmp>';
echo '원내용:'.PHP_EOL;
echo $html.PHP_EOL.PHP_EOL;
echo '필터링된 내용:'.PHP_EOL;
echo clear_wh($html);
echo '</xmp>';
?>
출력:
원내용:
<div style="text-align:center" width="500" height="300">
<div style="Width : 100px ; Height: 100 px;">
<img src="/images/test.jpg" width=400 height = 200>
<div style="float:left; width: 100px; height : 200 px;"></div>
</div>
<div style="width : 100 px ;height: 100px">
<img src="/images/test.jpg" width=400 height = 200>
</div>
</div>
필터링된 내용:
<div style="text-align:center" >
<div style=" ">
<img src="/images/test.jpg" >
<div style="float:left; "></div>
</div>
<div style="">
<img src="/images/test.jpg" >
</div>
</div>
반응형
'개발 꿀팁 > PHP' 카테고리의 다른 글
php 배열에서 지정된 여러 열을 반환하는 방법 (0) | 2022.09.12 |
---|---|
php 로컬 및 원격 파일 존재 여부 판단 (0) | 2022.09.12 |
php 함수는 가변적인 수의 인자를 사용합니다 (0) | 2022.09.05 |
php가 ffmpeg를 호출하여 비디오 정보를 가져옵니다 (0) | 2022.09.05 |
php 자급자족 id를 기반으로 고유 번호 클래스 만들기 (0) | 2022.09.05 |