테스트 사이트 - 개발 중인 베타 버전입니다

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

as12as 5년 전 조회 2,446

</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개

채택된 답변
+20 포인트
5년 전

참조하세요.

$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개

a
as12as
5년 전
올려진 소스가 어디까지나 참고용인데
저 소스 아니면 바로 적용 하기가 어려울 듯 보입니다.
(<\?php.+\?>) 이 부분이 PHP 소스 부분인가 보네요.
[code]
<?php
if(true) echo 'hi';
?>
[/code]
이렇게 줄 바꿈된 소스에는 적용이 안되는데요.
방법이 있을런지요?

댓글을 작성하려면 로그인이 필요합니다.

5년 전

</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개

a
as12as
5년 전
Warning: preg_match_all(): Unknown modifier 'g' in 를 뿌리고 죽어 버림
백수1995
5년 전
[code]
$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]

테스트 직접 해봄 ^^

댓글을 작성하려면 로그인이 필요합니다.

5년 전

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

 

</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개

a
as12as
5년 전
노가다라 그렇지 나쁘지는 않네요. 답변 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인