PHP 코드만 남기는 정규식이 있을까요?

PHP 코드만 남기는 정규식이 있을까요?

QA

PHP 코드만 남기는 정규식이 있을까요?

본문


<div id="image_<?php echo "img_$num"; ?>">
    <img src="<?php echo $img_src; ?>">
</div>

이 코드에서 태그만 모두 날려 버리고


<?php echo "img_$num"; ?>
<?php echo $img_src; ?>

이렇게 남기고 싶은데요...

정규식을 어떤식으로 구성하면 될런지요?

단순히 꺽쇠 기준으로 잡으려니까 PHP 코드도 함께 물려 버리네요.

차라리 PHP 코드 외에 모두 삭제하는 방향으로 식을 만드면 될 거 같은데...

정규식이 좀 약하네요.

이 질문에 댓글 쓰기 :

답변 3

참조하세요.

$str = '<div id="image_<?php echo "img_$num"; ?>">    <img src="<?php echo $img_src; ?>"></div>';

$pattern = "#(<div id=\"image_)(<\?php.+\?>)(.+<img src=\")(<\?php.+\?>)(\"></div>)#i";

$str2 = preg_replace($pattern, '$2 $4', $str);

echo $str2;

올려진 소스가 어디까지나 참고용인데
저 소스 아니면 바로 적용 하기가 어려울 듯 보입니다.
(<\?php.+\?>) 이 부분이 PHP 소스 부분인가 보네요.


<?php
if(true) echo 'hi';
?>

이렇게 줄 바꿈된 소스에는 적용이 안되는데요.
방법이 있을런지요?

정규식 말고 노가다식 어떻세요? ㅎㅎ

 


$text ='<div id="image_<?php echo "img_$num"; ?>">
    <img src="<?php echo $img_src; ?>">
</div>';
$option_1 = "<?php echo ";
$option_2 = "?>";
$text_1 = explode($option_1, $text);
$test_20 = explode($option_2, $text_1[1]);
$text_21 = explode($option_2, $text_1[2]);
$result = $option_1.$test_20[0].$option_2."\n".$option_1.$text_21[0].$option_2."\n";
echo $result;

 

explode()를 이용해서 원하는 결과를 얻으실수 있도록 만들어봤습니다.

좀더 멋지게 할려면 반복문 같은걸 이용하시면 더 다양한 상황에 대해 적용해보실수 있을 것 같습니다.

정규식을 찾으신다면 위 방법 그냥 재미로 보시고요... ㅎㅎ

 

 


$str = '<div id="image_<?php echo "img_$num"; ?>">    <img src="<?php echo $img_src; ?>"></div>';
preg_match_all('/.*(<\?php.+\?>).*/gmu', $$str, $matchs);
var_dump($match);

 

그냥 이렇게만 하면 안되던가요?

 

답변을 작성하시기 전에 로그인 해주세요.
전체 13
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT