| 제목 | [함수] 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 해서 붙인다라는 이야기였습니다.
어쨌든 괜찮은 함수 하나 더 생겼습니다.
감사합니다.