가끔씩 정균님 홈에 들렸다가..
php-lib란게 있길래 가끔 레퍼런스 구경하다 갑니다
;;
멋진 한국 라이브러리 기대하고 있겠습니다
: KSX 1001 이외의 범위의 2 byte 문자에 대한 처리가 없어서
: 그런거죠.
:
: http://oops.org/manual/korean-extension/ :
: 에서 extension 을 받아서 substr_lib() 함수를 사용하시면
: 될겁니다.
:
: 다만, 현재 "똠, 햏" 과 같은 KSX 1001 범위외의 문자를 처리를
: 할 수는 있지만 IE 와 같이 POST 로 넘어온 위의 문자들은 NCR
: 코드로 변경이 되기 때문에 ) 과 같이 짤릴 겁니다.
:
: 이건 지금 처리하는 루틴을 만들고 있습니다.
아마 수일내로
: 수정이 가능할 듯 합니다.
:
: mbstring 이 mulibyte string 을 처리한다는 것인데 일본어 밖에
: 지원이 안되죠. 일본에서 만들고 있으니까요.
; 한국어가 제대
: 로 처리가 되려면 한국인이 참여를 해야 하는데, 제가 mbstring
: 을 건드려 볼려다가 너무 복잡해서, 그냥 새로 만들고 있는 겁니다.
:
: JSBoard 에서 사용하던 유용한 함수들을 oops phplib 라는 이름으로
: 배포하고 있었는데, 이것들을 모두 extension 으로 만든거니, 웹상
: 에서 사용할 편리한 함수들이 꽤 있을 겁니다.
:
: : 제목에서 글자가 깨져버렸네요;;
: : '햏' 이 글자입니다
;;
: :
: :
: : mbstring이;; 아마 일본에서 만든 패치 적용시킨 걸꺼에용;;
: : mbstring을 넣었을 경우에 phpinfo()에 보면..
: :
: : 일본 어쩌구저쩌구;;
: : 이런 게 있었던 거 같은데..
: :
: : jsp에서는.. 멀티바이트용으로 짜르면;;
: : 햏이라던지..
: :
: : 쌍시옷 받침이 들어가는 글자중에 일부가..
: : 깨지더라구요;;
: :
: :
: :
: : 몇가지 글자를 한글로 인식하지 않는 문제점이 있는듯 싶던데
;;
: : 지송한데 체크 좀 해봐주심
: :
: :
: :
: :
: : : 이곳 게시판에 관련 내용이 없어서
: : : 적습니다.
: : :
: : : [PHP] 조금 빠른 dio_open(), mb_strcut() 함수
: : :
: : :
: : : 1. Direct IO functions
: : :
: : : http://www.php.net/manual/en/function.dio-open.php : : :
: : : dio_open() 관련 함수를 사용하려면 PHP를 컴파일할 때,
: : :
: : : --enable-dio
: : : or
: : : --enable-dio=shared
: : :
: : : 옵션을 주고 컴파일해야 합니다.
: : :
: : : 이 함수는 PHP/4.2.0 부터 추가되었군요..
: : :
: : : 실제로 fopen(), fread(), fgets() 함수와 수행속도를
: : : 비교해 봤는데 약간(거의 무시할 정도로) 빠르더군요...
: : :
: : : -- 사용예(4.2.0 이상시) -------------
: : : function get_file($file)
: : : {
: : : if($fp = dio_open($file,O_RDONLY)) {
: : : $content = dio_read($fp,filesize($file));
: : : dio_close($fp);
: : : }
: : : return $content;
: : : }
: : :
: : : function put_file($file, $content)
: : : {
: : : if($fp = dio_open($file,O_WRONLY)) {
: : : $bytes = dio_write($fp,$content);
: : : dio_close($fp);
: : : }
: : : return $bytes;
: : : }
: : : ------------------------------------
: : :
: : : resource dio_open ( string filename, int flags [, int mode])
: : :
: : : flags :
: : : O_RDONLY - 읽기 모드
: : : O_WRONLY - 쓰기 모드
: : : O_RDWR - 읽기와 쓰기 모드
: : : O_CREAT - 파일이 존재하지 않으면 파일 생성
: : : O_EXCL - O_CREAT와 O_EXCL이 설정되면 dio_open()은 fails
: : : O_TRUNC - 파일이 존재하면 쓰기 모드, 파일 크기는 zero(0)
: : : O_APPEND - 파일에 내용 추가하기
: : : O_NONBLOCK - non blocking 모드 설정
: : :
: : :
: : : 2. Multi-Byte String Functions
: : :
: : : http://www.php.net/manual/en/ref.mbstring.php : : :
: : : mb_strcut(), mb_substr() 함수를 사용하려면,
: : :
: : : --enable-mbstring (또는 --enable-mbstring=shared)
: : : --enable-mbstr-enc-trans (옵션)
: : : --enable-mbregex (옵션)
: : :
: : : 옵션을 주고 컴파일해야 합니다.
: : :
: : : mb_substr()와 mb_strcut()함수는 동일합니다.
: : : 이 두개의 함수는 2 bytes 문자를 자를때 아주 유용하더군요..
: : : 이 함수를 사용하기 위해서는 PHP/4.0.6 이상이어야 합니다.
: : : 그외 mb_xxx() 다른 함수를 사용하려면 4.2.0 이상이어야 합니다.
: : :
: : : 실제로 한글과 영문, 특수문자, 숫자가 조합된
: : : 문자를 순서대로 잘라봤는데 아주 아주 괜찮더군요...
: : : 속도도 비교적 빠르고.....
: : :
: : :
: : : 예:
: : : string mb_substr ( string str, int start [, int length [, string
: : : encoding]])
: : :
: : : -------------------------
: : : $str = '한글dd나라.gksrmskfk.한.38@$%d';
: : : for($i=1; $i<=mb_strlen($str); $i++) {
: : : echo mb_substr($str,0,$i);
: : : echo '<BR>'."";
: : : }
: : : -------------------------
: : :
: : : 조금이나 도움이 되었으면 합니다.