2026, 새로운 도약을 시작합니다.

foreach문 문의 드립니다~ 채택완료

안녕하세요?

알림톡 관련된 작업중입니다.

보낼 문장을 불러온 후에 #{치환} 이런 형태의 문장만 추출하고 싶습니다.

예를들어 아래와 같은 보낼 문자가 있다면...

【교육/행사명】 : #{교육명}
【교육(행사)일시】 : #{행사일}
【참가비용】 : #{비용}
【참가방법】 : 홈페이지 참조
【장소】 : #{장소}

빨강색으로 표시한 내용만 추출해서 다른 문장으로 교체하려고 합니다.

#{ } 안의 내용을 추출하는 것입니다.

이런 경우 어떤식으로 추출해야 하나요?

초보라자 아무 시작도 못하고 있습니다.

도움 부탁드립니다~

답변 4개

채택된 답변
+20 포인트

지금과 같은 경우에는 foreach 를 잘 사용하지 않는 편입니다.

str_replace() 로 간편하게 적용할 수 방법이 있습니다.

ex.

Copy


$content = "【교육/행사명】 : #{교육명}

【교육(행사)일시】 : #{행사일}

【참가비용】 : #{비용}

【참가방법】 : 홈페이지 참조

【장소】 : #{장소}

";

$arr_s = array('#{교육명}', '#{행사일}', '#{비용}', '#{장소}');

$arr_r = array($wr_1, $wr_2, $wr_3, $wr_4);

$str = str_replace($arr_s, $arr_r, $content);

echo $str;

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

답변 감사합니다. ${}의 형식으로 되어 있는것을 먼저 추출해야만 알려주신 방법을 사용할 수 있을것 같습니다.
str_replace() 함수에서,

#{교육명} 을 추출하여 $wr_1 텍스트로 교체합니다.
#{행사일} 을 추출하여 $wr_2 텍스트로 교체합니다.
....

추출 및 교체까지 한번에 처리하는 방법입니다.

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

Copy
로그인 후 평가할 수 있습니다

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

텍스트에서 특정한 규칙으로 감싸져있거나 써져있는것을 출력하려면 정규식을 활용하셔야 합니다.

로그인 후 평가할 수 있습니다

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

예를들어 변수값 $aaa 에배열로 들어왔을때

foreach($aaa as $value){

   $content = 【교육/행사명】 : $value[aa] -- 데이터값
    【교육(행사)일시】 :$value[bb] -- 데이터값
   【참가비용】 : $value[cc] -- 데이터값
   【참가방법】 : 홈페이지 참조
   【장소】 : $value[dd] -- 데이터값

  여기서 $content를 가지고 보내면 될거같은디요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

답변 감사합니다. 혹시 아래와 같이 추출하려면 어떻게 해야 하나요?
그러니까 #{} 괄호의 형식으로 된것만 표시하는 것입니다.

#{교육명}
#{행사일}
#{비용}
#{장소}

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

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

로그인
🐛 버그신고