PHP 코드만 남기는 정규식이 있을까요? 채택완료
</p>
<p><div id="image_<?php echo "img_$num"; ?>"></p>
<p> <img src="<?php echo $img_src; ?>"></p>
<p></div></p>
<p>
이 코드에서 태그만 모두 날려 버리고
</p>
<p><?php echo "img_$num"; ?></p>
<p><?php echo $img_src; ?></p>
<p>
이렇게 남기고 싶은데요...
정규식을 어떤식으로 구성하면 될런지요?
단순히 꺽쇠 기준으로 잡으려니까 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;
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
</p>
<p>$str = '<div id="image_<?php echo "img_$num"; ?>"> <img src="<?php echo $img_src; ?>"></div>';</p>
<p>preg_match_all('/.*(<\?php.+\?>).*/gmu', $$str, $matchs);</p>
<p>var_dump($match);</p>
<p>
그냥 이렇게만 하면 안되던가요?
답변에 대한 댓글 2개
$matches = '';
$str = '<div id="image_<?php echo "img_$num"; ?>"> <img src="<?php echo $img_src; ?>"></div>';
preg_match_all('/.*(<\?php.*\?>).*/mU', $str, $matches);
var_dump($matches);
[/code]
테스트 직접 해봄 ^^
댓글을 작성하려면 로그인이 필요합니다.
정규식 말고 노가다식 어떻세요? ㅎㅎ
</p>
<p>$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;</p>
<p>
explode()를 이용해서 원하는 결과를 얻으실수 있도록 만들어봤습니다.
좀더 멋지게 할려면 반복문 같은걸 이용하시면 더 다양한 상황에 대해 적용해보실수 있을 것 같습니다.
정규식을 찾으신다면 위 방법 그냥 재미로 보시고요... ㅎㅎ
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
저 소스 아니면 바로 적용 하기가 어려울 듯 보입니다.
(<\?php.+\?>) 이 부분이 PHP 소스 부분인가 보네요.
[code]
<?php
if(true) echo 'hi';
?>
[/code]
이렇게 줄 바꿈된 소스에는 적용이 안되는데요.
방법이 있을런지요?