웹모아
웹모아[가입] 로그인 / 회원가입   검색     


  
토막소스
 

str_replace() 한글치환 보강
2008-06-02 23:48:57 댓글:(0)   조회:2112
 

<?php 
 $str = '오예동물 잘되는지..'; 
 echo str_replace( '예' ,'yes', $str ); 
/* 
 출력 -> "오yes탙es?잘되는지.." 
 기대한 결과는 '오yes동물 잘되는지..' 이지만, 
 연속된 한글코드 '오예동물  잘되는지..' 단어속에는 '예' 가 두번 찾아지게 된다. 

 이것은 2바이트 체계의 한글을 무시해서 생기는 일이며, 
 '동'의 뒷자리 1바이트와 '물'의 앞자리 1바이트가 합쳐져 '예'라는 단어와 
  같은코드로 해석되어 생기는 일이다. 
*/ 

// ------------------------------------------------------------------- 
 function Han_replace( $search, $to, $str ) { 

    // 한글만 단어별로 늘리서,, 앞뒤의 코드가 섞이는것을 방지함. 

    $ESC = "\x1b"; // 키보드로 입력할 수 없는 [Esc]코드, 

    $pattern1 = "/([\x80-\xff].)/"; 
    $pattern2 = "/([\x80-\xff].)$ESC/"; 

    $str = preg_replace( $pattern1, "\1$ESC", $str ); // 모든 한글단어 뒤에 $ESC를 추가함. 
    $search = preg_replace( $pattern1, "\1$ESC", $search ); // 찾을 문자도 같은 패턴으로 바꿈, 
    $str = str_replace( $search, $to, $str ); // 일단 때려 바꾸고. 

    return preg_replace( $pattern2, "\1", $str ); // 한글 뒤에 추가했던 $ESC를 지움. 
 } 
 $str = '오예동물 잘되는지..'; 
 echo Han_replace( '예' ,'yes', $str ); 
 //  출력 -> 오yes동물 잘되는지.. 
?> 

utf-8 지원하지 않는 쪽에서, 
단어필터링을 위해 만들었던 함수입니다.
. 


[이전글]  XML<-->Array 클래스
[다음글]  php로 텍스트라인에서 영문 한글 특수문자 숫자 지우기


 
댓글쓰기는 회원(로그인 하신분) 이상 가능합니다.


 댓글 (0)

  
토막소스
페이지: 1 / 13   

 php에서 UTF-8, EUC-KR 인코딩 변경
열람:80   2015.02.28


 PHP- 파일 다운로드시 속도 제한하기
열람:82   2014.01.04


 이미지 사이즈 비율대로 축소
열람:1670   2013.12.10


 PHP- 파일 다운로드시 속도 제한하기
열람:3388   2013.03.23


   파일 다운로드 속도 제한
열람:3184   2013.03.23


 ffmpeg 설치 후 php 업로드 간단 테스트
열람:3667   2012.07.11


 새청없이 주소검색
열람:2813   2010.01.19


 EUC-KR<=>UTF-8 상호변환 하기
열람:2812   2008.09.07


 키를 이용한 암호화/복호화 함수입니다.
열람:3163   2008.09.05


 간단한 암호화/복호화 함수
열람:2584   2008.09.05



[1]  [2]  [3]  [4]  [5]  

복수단어 검색은 공백(space)로 구분해 주세요.




 
최근 글 [손님]
 
인기 글 [손님]
[홈마스타] [RE] input type=\\
[홈마스타] 카네기의 지도론