euc-kr 단어를 utf-8로 바꾸는법?? 정규식?? 정보
euc-kr 단어를 utf-8로 바꾸는법?? 정규식??본문
초보라 이리해보고 저리해보고 이리찾고 저리찾아도 안되서 질문드립니다.
$content = preg_replace("/(\#([^\s]+)\#)/", "$2", $content);
$content 부분에 #안녕하세요# 이런식으로 들어가있으면 "안녕하세요"가 출력되는것인데요.
안녕하세요 이부분만 utf-8로 변경되서 나오게 하고 싶습니다.
$content = preg_replace("/(\#([^\s]+)\#)/", urlencode(iconv('cp949', 'utf-8', '$2')), $content);
이런식으로 하면 '$2'에 안녕하세요 가 제대로 들어가지를 않고.. $2자체를 문자로 봐버리고..
그냥 $2만 쓰면
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in
오류가 납니다.
그렇다고 "urlencode(iconv('cp949', 'utf-8', '$2'))" 따옴표로 묶으면 이것 자체로 그대로 출력이되버리고...ㅠㅜ
#키워드# 키워드 부분만 utf로 변경하는 방법좀 가르쳐주세요.. 하루종일 이리저리 해도 초보라 포기상태입니다. 안되는것인지..
$content = preg_replace("/(\#([^\s]+)\#)/", "$2", $content);
$content 부분에 #안녕하세요# 이런식으로 들어가있으면 "안녕하세요"가 출력되는것인데요.
안녕하세요 이부분만 utf-8로 변경되서 나오게 하고 싶습니다.
$content = preg_replace("/(\#([^\s]+)\#)/", urlencode(iconv('cp949', 'utf-8', '$2')), $content);
이런식으로 하면 '$2'에 안녕하세요 가 제대로 들어가지를 않고.. $2자체를 문자로 봐버리고..
그냥 $2만 쓰면
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in
오류가 납니다.
그렇다고 "urlencode(iconv('cp949', 'utf-8', '$2'))" 따옴표로 묶으면 이것 자체로 그대로 출력이되버리고...ㅠㅜ
#키워드# 키워드 부분만 utf로 변경하는 방법좀 가르쳐주세요.. 하루종일 이리저리 해도 초보라 포기상태입니다. 안되는것인지..
댓글 전체
urlencode --> urldecode
zzzz님 감사합니다. 그런데 urlencode는 맞는것 같은데요... 예를들어
$content = preg_replace("/(\#([^\s]+)\#)/", urlencode($2), $content);
urlencode($2)가 들어가면 오류가 나고 urlencode('$2')들어가면 $2자체를 단어로 봅니다.
urlencode() 함수안에 어떻게 넣어야 제대로 들어갈지.. 불가능한건지?
$content = preg_replace("/(\#([^\s]+)\#)/", urlencode($2), $content);
urlencode($2)가 들어가면 오류가 나고 urlencode('$2')들어가면 $2자체를 단어로 봅니다.
urlencode() 함수안에 어떻게 넣어야 제대로 들어갈지.. 불가능한건지?
$2 즉 변수는 숫자부터 올수가 없습니다.
$a2 뭐 이런식으로 해보세요
$a2 뭐 이런식으로 해보세요
다들 몬가 오해가 있으신듯합니다. ㅎㅎ
원하시는게 몬지 자신도 애매모호하신듯..
<?
$content="#안녕하세요# 반갑습니다.";
$content = preg_replace("/(\#([^\s]+)\#)/", "$2", $content);
echo $content;
?>
안녕하세요 반갑습니다. 가 나옵니다.
출력된 내용중에서 "안녕하세요" 이부분만을 utf-8 로 출력을 원한다 했는데요
왜 굳이 그래야만 하는지 모르겠지만.
<?
$content="#안녕하세요# 반갑습니다.";
preg_match("/(\#([^\s]+)\#)/", $content, $matches);
$content = preg_replace("/(\#([^\s]+)\#)/", iconv("EUC-KR", "UTF-8", $matches[2]), $content);
echo $content;
?>
방법이야 많겠죠..^^
원하시는게 몬지 자신도 애매모호하신듯..
<?
$content="#안녕하세요# 반갑습니다.";
$content = preg_replace("/(\#([^\s]+)\#)/", "$2", $content);
echo $content;
?>
안녕하세요 반갑습니다. 가 나옵니다.
출력된 내용중에서 "안녕하세요" 이부분만을 utf-8 로 출력을 원한다 했는데요
왜 굳이 그래야만 하는지 모르겠지만.
<?
$content="#안녕하세요# 반갑습니다.";
preg_match("/(\#([^\s]+)\#)/", $content, $matches);
$content = preg_replace("/(\#([^\s]+)\#)/", iconv("EUC-KR", "UTF-8", $matches[2]), $content);
echo $content;
?>
방법이야 많겠죠..^^
태웅님 정말정말 감사드립니다. 딱 원하는것이였는데 이렇게 정상적으로 잘됩니다^^.. 그런데..
$content="#안녕하세요# 정말 #반갑습니다.#";
이런식으로 들어가면 링크같은것은 컨텐츠에 여러개가 들어가있어도 각각에 맞게 변환처리가 되는데요..
가르쳐주신데로 했더니..
안녕하세요 정말 안녕하세요 이런식으로 제일처음것만 계속 똑같이 나옵니다.
컨텐츠 안에 들어가있는 전체에서 여러개가 조건이 만족하면 각각 맞게 변환처리를 할수 있을까요?
$content="#안녕하세요# 정말 #반갑습니다.#";
이런식으로 들어가면 링크같은것은 컨텐츠에 여러개가 들어가있어도 각각에 맞게 변환처리가 되는데요..
가르쳐주신데로 했더니..
안녕하세요 정말 안녕하세요 이런식으로 제일처음것만 계속 똑같이 나옵니다.
컨텐츠 안에 들어가있는 전체에서 여러개가 조건이 만족하면 각각 맞게 변환처리를 할수 있을까요?
원칙적으로 preg_replace 함수는 문자열 치환이 맞습니다.
다만 함수사용법이 특정문자를 원하는문자로 변경하는것에 사용한것이 아닌
추가하거나 삭제하는 부분에만 사용해본지라 맞는지는 모르겠습니다.
정규식을 잘찾아보시면 도움이되실줄압니다. ^^
<?
$content="#안녕하세요# 정말 #반갑습니다.#";
preg_match_all("/(\#([^\s]+)\#)/", $content, $matches);
for ($i=0; $i< count($matches[2]); $i++) {
$pattern = $matches[1][$i];
$pattern = "/$pattern/i";
$str = $matches[2][$i];
$str = iconv("EUC-KR", "UTF-8",$str);
$content = preg_replace($pattern, $str, $content);
}
echo $content;
?>
다만 함수사용법이 특정문자를 원하는문자로 변경하는것에 사용한것이 아닌
추가하거나 삭제하는 부분에만 사용해본지라 맞는지는 모르겠습니다.
정규식을 잘찾아보시면 도움이되실줄압니다. ^^
<?
$content="#안녕하세요# 정말 #반갑습니다.#";
preg_match_all("/(\#([^\s]+)\#)/", $content, $matches);
for ($i=0; $i< count($matches[2]); $i++) {
$pattern = $matches[1][$i];
$pattern = "/$pattern/i";
$str = $matches[2][$i];
$str = iconv("EUC-KR", "UTF-8",$str);
$content = preg_replace($pattern, $str, $content);
}
echo $content;
?>