Winamp가지고 놀기
처음 | Winamp가지고 놀기 | 방명록 & 게시판 | 자료실 | 블로그  
mb_substr() Function Customize
FrontPageMTitleIndexSFindPageDRecentChanges
Total 155 pages
EEditText D I (del)
ID
Password


Contents

1 목적
2 방법
3 구현
4 실제 적용한 code
5 Screenshots
5.1 mb_string()을 쓰기 전
5.2 mb_string()을 쓴 후
5.3 mb_string()에 20자를 자르기
5.4 이 방법을 쓰고 난 후
6 마무리

1 목적 #

mb_substr() 은 한글이은 알파벳이든 무조건 한 글자로 세어서 자르는데, 알파벳 글자 폭이 한글보다 작아서 길이가 달라 눈에 거슬린다. 길이를 최대한 비슷하게 해 보자.

2 방법 #

mb_substr() 로 잘라낸 문자열 안에 알파벳 갯수를 센다. 알파벳 갯수만큼 잘라낸 문자열 바로 뒷부분을 더 자른다. 추가된 부분에서 알파벳이 아닌 글자 갯수를 센다. 이렇게 해서 (처음 입력한 길이 + 알파벳 갯수 - 알파벳이 아닌 글자 갯수) 를 해서 잘라낼 글자 수를 정한다.

3 구현 #

  1. mb_substr()로 잘라냄, 문자열1 이라 하면
  2. 정규표현식을 이용, 문자열1 에서 알파벳이 아닌 글자를 지움, 문자열2 라고 하면
  3. 문자열2의 문자열 길이를 구함
  4. mb_substr()로 문자열1 바로 뒤에서 부터 문자열2의 길이만큼 더 잘라냄, 문자열3 이라 하면
  5. 정규표현식을 이용, 문자열2 에서 알파벳인 글자를 지우고(문자열4) 문자열 길이를 구함
  6. 잘라야 할 길이 = 처음 입력한 길이 + 문자열2의 길이 - 문자열4의 길이
  7. mb_substr()로 위에서 구한 길이만큼 잘라냄

4 실제 적용한 code #



5 Screenshots #

5.1 mb_string()을 쓰기 전 #

http://bmp.pe.kr/blog/wp-content/uploads/2008/04/comment-before.jpg
글자는 알파벳 기준 40자로 잘랐으며, 한글 한 글자는 알파벳 두 글자로 계산하였다.

5.2 mb_string()을 쓴 후 #

http://bmp.pe.kr/blog/wp-content/uploads/2008/04/comment-wrong1.jpg
한글, 알파벳 구분 없이 40자를 세어서 자른 것을 확인할 수 있다.

5.3 mb_string()에 20자를 자르기 #

http://bmp.pe.kr/blog/wp-content/uploads/2008/04/comment-wrong2.jpg
마찬가지로 한글, 알파벳 구분 없이 20자를 세어서 잘라 길이가 많이 다르다.

5.4 이 방법을 쓰고 난 후 #

http://bmp.pe.kr/blog/wp-content/uploads/2008/04/comment-after.jpg
mb_string()을 이용하고 20자를 자르게 하였다. 길이가 그래도 많이 비슷해 졌다.

6 마무리 #

  • 정규표현식을 두번이나 쓰고, 문자열을 두번이나 더 자른다.
  • 어쨌든 원하는 모양을 만들었으니 만족-_-

Best viewed with Mozilla latest. Powered by MoniWiki.