2012-02-09 52 views

Trả lời

3

Phạm vi có thể hoạt động với bảng chữ cái phương tây chuẩn vì các ký tự A qua Z là các giá trị liên tiếp trong bộ ký tự ASCII (và UTF-8).

Ký tự tiếng Do Thái không phải là ký tự ASCII (xem this list) nhưng bạn có thể đặt phạm vi ban đầu của giá trị số UTF-8 và sau đó chỉ array_map đối với ký tự.

4

Bạn có thể làm một cái gì đó như thế này:

function utfOrd($c) {  
    return intval(array_pop(unpack('H*', $c)),16);  
} 

function utfChr($c) { 
return pack('H*', base_convert("$c", 10, 16)); 
} 

var_dump(array_map('utfChr', range(utfOrd('א'), utfOrd('ת')))); 

Prints:

array 
    0 => string 'א' (length=2) 
    1 => string 'ב' (length=2) 
    2 => string 'ג' (length=2) 
    3 => string 'ד' (length=2) 
    4 => string 'ה' (length=2) 
    5 => string 'ו' (length=2) 
    6 => string 'ז' (length=2) 
    7 => string 'ח' (length=2) 
    8 => string 'ט' (length=2) 
    9 => string 'י' (length=2) 
    10 => string 'ך' (length=2) 
    11 => string 'כ' (length=2) 
    12 => string 'ל' (length=2) 
    13 => string 'ם' (length=2) 
    14 => string 'מ' (length=2) 
    15 => string 'ן' (length=2) 
    16 => string 'נ' (length=2) 
    17 => string 'ס' (length=2) 
    18 => string 'ע' (length=2) 
    19 => string 'ף' (length=2) 
    20 => string 'פ' (length=2) 
    21 => string 'ץ' (length=2) 
    22 => string 'צ' (length=2) 
    23 => string 'ק' (length=2) 
    24 => string 'ר' (length=2) 
    25 => string 'ש' (length=2) 
    26 => string 'ת' (length=2) 

Nếu bạn cần một số nhân vật nhiều hơn, bạn có thể sử dụng để tạo ra mảng hardcoded của bạn hoặc sáp nhập vài dãy.

+1

+1 để thực sự thực hiện mã. Chỉ cần nhớ sử dụng UTF-16 khi lặp lại một trình duyệt –

+0

Đây là một chức năng tuyệt vời. Tôi tự hỏi nếu nó có thể làm việc cho thực sự chuyển đổi số (ví dụ - "12" == "יב") –

Các vấn đề liên quan