Copy
<?php
if ($is_category && $list[$i]['ca_name']) { ?>
<?php
$list[$i]['ca_name'] = str_replace($list[$i]['ca_name'], '<span style="color:#f00">' . $list[$i]['ca_name'] . '</span>', $board['bo_category_list']);
}
?>
이 구문을 하나의 div로 감싸려면 어떻게 해야할까요 ?
div태그안에 넣으면 쉬운데,
지금 코드 하단에 $list[$i]['ca_name']를 출력하는 구문이 한개 더있다보니까, 하단에 있는 $list[$i]['ca_name']구문에 적용이 되더라구요... 중복문제가 아닌가 싶네요 ㅠㅠ
답변 2개 / 댓글 2개
채택된 답변
+20 포인트
위 코드가
$list[$i]['ca_name'] 의 값을 치환하여 치환된 결과값을 저장하는 로직이기 때문에
해당 로직 하단에서
$list[$i]['ca_name'] 의 값은 치환이 된 후의 값을 갖고 있게 됩니다.
출력하는곳이 두군데인데 한군데는 A.치환 된 후, 한군데는 B.치환되기 전의 값을 출력하고싶고,
출력 순서가 A -> B 라면
A 출력전에 변수의 값을 바꾸지 마시고 치환결과만 출력하신 다음
Copy
echo str_replace($list[$i]['ca_name'], '<span style="color:#f00">' . $list[$i]['ca_name'] . '</span>', $board['bo_category_list']);
B를 출력하시면 될것 같네요
Copy
echo $list[$i]['ca_name'];
A,B 모두 출력 후에 최종적으로 $list[$i]['ca_name'] 의 값이 치환 후의 값을 갖길 원하시는건지 원본 값을 원하시는건지 모르겠지만,
최종적으로 원하는 값이 치환 후의 값이라면
Copy
$ca_name_bak = str_replace($list[$i]['ca_name'], '<span style="color:#f00">' . $list[$i]['ca_name'] . '</span>', $board['bo_category_list']);
// A출력
echo $ca_name_bak;
// B출력
echo $list[$i]['ca_name'];
// 최종적으로 치환 된 후 값으로 변경
$list[$i]['ca_name'] = $ca_name_bak;
답변을 작성하려면 로그인이 필요합니다.
그러면 혹시
echo str_replace($list[$i]['ca_name'], '<span style="color:#f00">' . $list[$i]['ca_name'] . '</span>', $board['bo_category_list']);
여기가 이제 선택된 카테고리는 span안에 들어있는데, 선택되지 않은카테고리도, 각각 span태그로 감싸려면 어떻게 해야할까요?