문자열 치환 질문 입니다。 채택완료
웹프리죤
1년 전
조회 938
@@는 제목 #$ 문딘 시작 $# 문단 종료 ^^색깔 강조 -보라색
php 로 어떻게 치환해야 하는건가요¿
$text = str_replace("@", "
", $text); 게 하니까 @ 。。 @ 로 감싸고 있어서
맨 앞 맨 뒤를 어떻게
。。 </p> 로 치환해야 하는지요
@ 내 아이의 활동성 기질 특성 @ 6-10 중에 1~ 2개를 체크하셨다면 지금 아이는 기질 성향 중 활동이 많은 아이로 보여집니다. 6-10 중에 3개~5개를 체크하셨다면 지금 아이는 기질 성향 중 활동이 매우 많은 아이로 보여집니다. @기질 정의@
아이를 키우실 때 부모님들이 정말 답답해하고 답을 찾을 수 없어 힘들어하시는 부분이 바로 기질과 관련된 부분입니다. 기질은 이성적인 판단과 논리적인 생각으로 만들어지는 것이 아니라 아이가 타고난 생물학적 특성입니다. 특히 오감이 너무 예민하게 발달 된 경우, 외부에서 새로운 자극이 들어올 때 이것을 무시하지 못하다 보니 순한 아이들에 비해 자극을 크게 받아들입니다.
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
1년 전
다음 코드가 도움이 될지 모르겠습니다.
</p>
<p><?php
function parse_test($str, $opts) {
$replaced = preg_replace_callback('/(?:@|\^\^|#\$)(.*?)(?:@|\^\^|\$#)/', function ($matches) use ($opts) {
$tmp = '';</p>
<p> </p>
<p> if (substr($matches[0], 0, 2) == '^^') {
$tmp = str_replace('::REPLACEMENT::', $matches[1], $opts['emphasis']);
} else if (substr($matches[0], 0, 2) == '#$') {
$tmp = str_replace('::REPLACEMENT::', $matches[1], $opts['sentence']);
} else if (substr($matches[0], 0, 1) == '@') {
$tmp = str_replace('::REPLACEMENT::', $matches[1], $opts['title']);
}</p>
<p> </p>
<p> return $tmp;
}, $str);</p>
<p> </p>
<p> return $replaced;
}
?></p>
<p> </p>
<p><style>
.s-tit {
font-size: 2em;
font-weight: bold;
}
.s-cont {
border: 0.1em dotted gray;
}
.emphasis {
color: purple;
font-weight: bold;
}
</style></p>
<p> </p>
<p><?php</p>
<p>$str1 = <<<HEREDOC
@ 내 아이의 활동성 기질 특성 @
6-10 중에 1~ 2개를 체크하셨다면 지금 아이는 기질 성향 중 활동이 많은 아이로 보여집니다.
6-10 중에 3개~5개를 체크하셨다면 지금 아이는 기질 성향 중 활동이 매우 많은 아이로 보여집니다.</p>
<p> </p>
<p>@기질 정의@
</p>
<p>아이를 키우실 때 부모님들이 정말 답답해하고 답을 찾을 수 없어 힘들어하시는 부분이 바로 기질과 관련된 부분입니다. 기질은 이성적인 판단과 논리적인 생각으로 만들어지는 것이 아니라 아이가 타고난 ^^생물^^학적 특성입니다. #\$특히 오감이 너무 예민하게 발달 된 경우,\$# 외부에서 새로운 자극이 들어올 때 이것을 무시하지 못하다 보니 ^^순한^^ 아이들에 비해 자극을 크게 받아들입니다.
HEREDOC;</p>
<p> </p>
<p>$parse_test_opts = [
'title' => '<p class="s-tit">::REPLACEMENT::</p>',
'sentence' => '<p class="s-cont">::REPLACEMENT::</p>',
'emphasis' => '<span class="emphasis">::REPLACEMENT::</span>'
];</p>
<p> </p>
<p>echo parse_test($str1, $parse_test_opts);
?></p>
<p>
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
웹프리죤
1년 전
답변 너무 감사한데.. 먼가 잘 안되서요..
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인