치환문제 질문합니다.
<?
include_once './_common.php';
$stx = "개";
$urldecode = urldecode($stx);
$name = "엔키노";
$content = $name;
$content = strip_tags($content);
$content = cut_str($content, 300);
$content = str_replace($urldecode, "<b>$urldecode</b>", $content);
echo $content;
?>
위와 같은 코드로 사용하면 캡처된 이미지처럼 글자가 깨집니다.
환경은 euc-kr 입니다만...
해결 방법을 알려주세요.
include_once './_common.php';
$stx = "개";
$urldecode = urldecode($stx);
$name = "엔키노";
$content = $name;
$content = strip_tags($content);
$content = cut_str($content, 300);
$content = str_replace($urldecode, "<b>$urldecode</b>", $content);
echo $content;
?>
위와 같은 코드로 사용하면 캡처된 이미지처럼 글자가 깨집니다.
환경은 euc-kr 입니다만...
해결 방법을 알려주세요.

첨부파일
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 14개
선리플 후 감상(?) --;;;
어떤 결과를 원하는게 아니라 str_replace()함수의 이해못할 버그를 알려주고 싶은거 같아요
아무래도 모두 낚인거 같습니다 포인트가 오만점에다가 마지막에 고양이 비웃는 모습을 보면 좀 수상함 ....ㅋㅋ
생각해본건 두가지 해결방법 입니다.
1. iconv 함수를 이용하여 utf-8 로 변환 후 str_replace 다시 iconv 로 euckr 변환 후 출력
2. mysql 함수를 사용하는 것.
아래 코드는 mysql 함수를 사용한 예제입니다.
<?
include_once './_common.php';
$stx = "개";
$urldecode = urldecode($stx);
$name = "엔키노";
$content = $name;
$content = strip_tags($content);
$content = cut_str($content, 300);
//$content = str_replace($urldecode, "<b>$urldecode</b>", $content);
$qry = sql_fetch("select replace('$content', '$urldecode', '<b>$urldecode</b>') as result");
$conten = $qry[result];
echo $content;
?>
echo str_replace('개', '', '엔키노');
출력물 : 엔통
function str_replace2($from, $to, $str)
{
$from = addslashes($from);
$to = addslashes($to);
$str = addslashes($str);
$qry = sql_fetch("select replace(\"$str\", \"$from\", \"$to\") as result");
return $qry[result];
}
db 부하가 걸리려나 --;;
글타면, 이런 경우 안당할려면 앞으로 모든 홈페쥐는 utf-8로 만들어야 겠네요 컹~ (심각하게 고민중...)
euc-kr에서 한글길이는 2
utf-8에서는 잘 나오는데 euc-kr에서는 잘 안나오고,
음... 곱슬최씨님의 의견이 유력...