2013-10-18 5 views
0

그래서 내가 도메인 이름은 Alphabeticaly 도메인과 배열을 정렬하고 IDN은

나는 테이블에 도메인 이름을 표시해야합니다
Array() { 
    [0] => Array() { 
     [id]=>int 
     [name]=>string 
     [something]=>string/int... 
    } 
    [38] => Array() { 

    } 
} 

배열을이 도메인을 루프 물마루 배열을 누른 다음 $ domain [ 'name']을 변환하여 xn--sfasdf-dfg.com이 아닌 사람이 읽을 수있는 IDN을 표시합니다. 하지만이 도메인 이름은 W와 Y 사이에 있습니다. X로 시작하기 때문에 유니 코드 이름 някво-име.com (N으로 시작)로 정렬하려면이 도메인 이름이 M과 O 사이에 있어야하며 사이에 있어야합니다. W와 Y. 어떻게 할 수 있는지 아는 사람이 있습니까? Google에서 검색했지만 아무도 그러한 문제에 관해 쓴 적이 없습니다. 나는 usort와 uasort PHP 함수를 시도하지만 순서는 완전히 잘못되었다.

감사합니다, 야니 Krystev

답변

-1

някво-име.com "N"로 시작하지 않는, 그것은 영어를 "N"과 같은 소리 키릴 문자 "에"로 시작합니다. 문자가 인 경우 문자를 정렬하려면 힘든 시간이 필요합니다. 편지로 정렬하고 싶다면, 다른 알파벳이고 Z 이후 나 A 이전이어야합니다.

모든 도메인을 유니 코드로 디코딩하고 영어 도메인을 유니 코드로 변환하고 유니 코드 목록을 정렬합니다. 유니 코드 정렬을 위해 일반적인 내장 함수를 사용합니다.

+0

"영어 도메인을 유니 코드로 변환 하시겠습니까?" 그게 무슨 뜻 이죠? 어떻게 "example.com"을 유니 코드로 변환합니까? –

0

기술 용어에 대한 정렬 (또는 기술 용어와의 대조)은 복잡한 문제입니다. 이미 한 언어 안에서만 그렇지만 언어를 혼합하면 더욱 그렇습니다. 도메인 이름 문자열과 관련된 문맥이 없으며 어떤 언어인지 알지 못합니다. 문자 만있는 문자열이 있습니다 (ASCII 만 사용하는 모든 언어 간에도 정렬 순서는 동일하지 않습니다).

먼저 정렬하고 작동시킬 언어를 정의해야합니다. 그런 다음 조합을 수행 할 도구가 있지만 기본적인 도구는 아닙니다.

예를 들어, libc에서 LC_COLLATE 변수는 국제화를 위해 올바르게 프로그래밍 된 모든 도구에 영향을 미치므로이를 고려합니다.

libicu 그런 또 다른 큰 도서관 처리 일들이, https://www-01.ibm.com/software/globalization/icu/

PHP는 주위의 래퍼 인 intl 확장자가 볼 수 있습니다. http://php.net/manual/en/class.collator.php에서 특히 Collator 클래스 참조 :

적절한 로케일 구분 정렬 순서 부에 대한 지원과 문자열 비교 기능을 제공합니다.