제목 | [함수] url에서 한글만 추출해서 인코딩 하는 함수입니다.. | ||
---|---|---|---|
글쓴이 | 터프키드 | 작성시각 | 2009/09/04 19:25:48 |
|
|||
처음으로 팁게에 글을 쓰네요^^ 웅파님이 아이디어를 주셔서 구글링, 스쿨링 해서 만들어봤습니다 function get_encoded_hurl($str) { preg_match_all('/[\x{1100}-\x{11ff}\x{3130}-\x{318f}\x{ac00}-\x{d7af}]+/u', $str, $matches); foreach($matches as $key2 => $val2) { $cnt = count($val2); if($cnt > 0) { foreach($val2 as $key3 => $val3) { $str = str_replace($val3, urlencode($val3), $str); } } } return $str; } // 사용 $encoded_url = get_encoded_hurl("http://어쩌구 저쩌구/하하-우리는_천재님들~good") PHP 스쿨의 송효진님이 오래전에 07년도에 답변달아놓은 글을 참조해서 바꿔봤습니다만.. 아마 foreach를 두번 돌리는 방법보다 더 좋은 방법이 있을듯 한데요.. 왜 두번 돌렸나면요.. http://어쩌구 저쩌구/하하-우리는_천재님들~good 이럴경우에 하하, 우리는, 천재님들이 리턴되서 join 해버리면 "하하우리는천재님들"이 되서 바꿀수가 없더라구요.. 그렇다고 특수문자까지 해석하면서 하긴 제 실력이... 더 좋은 방법이 생각나시면 꼭 답변으로 알려주세요;ㅠㅠ 좋은 주말되시구요.. 제가 오늘 급 야근 하게되서.. (금욜날;;) 정모참석을 못할거 같습니다.. 담에 꼭 참석할께요 |
|||
다음글 | 클라이언트 에서 form validation해주는 j... (1) | ||
이전글 | matchbox 0.9.4에서 form_validati... (1) | ||
변종원(웅파)
/
2009/09/05 19:54:16 /
추천
0
|
터프키드
/
2009/09/07 19:42:52 /
추천
0
네 대부분 블로그 url인데 pretty url을 사용하면서 한글로 쓰는 블로그들이 많더라구요
접수된 블로그주소를 한글만 변경해야되서.. 근데 언제 또 어떤 문제가 생길지 모르겠어요 하도 다양해서..; |
kirrie
/
2009/09/09 22:15:24 /
추천
0
function mb_urlencode($url) { return str_replace( array('%3A', '%2F', '%3F', '%3D', '%26'), array(':', '/', '?', '=', '&'), urlencode($url) ); }일단 전체 url에 대해서 urlencode를 쓰면 영문과 숫자를 제외한 멀티바이트 캐릭터와 특수기호가 다 인코딩 됩니다. 여기에 착안해서 전체 url을 인코딩 한 다음에 : / ? = & 등 기본적으로 url에 사용되는 특수기호만 원래 기호로 치환하면 되지 않을까요? |
전 주소를 프로그램에서 생성을 하면 그냥 한글부분만 urlencode 해서 붙인다라는 이야기였습니다.
어쨌든 괜찮은 함수 하나 더 생겼습니다.
감사합니다.