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;
정규식 말고 노가다식 어떻세요? ㅎㅎ
$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);
그냥 이렇게만 하면 안되던가요?
!-->
답변을 작성하시기 전에 로그인 해주세요.