Converta números em inglês para algarismos arábicos

Como posso converter números em inglês que são recuperados do database para símbolos de números árabes em PHP.

EDIT: Aqui estão alguns exemplos de como os algarismos arábicos são semelhantes. Eu moro em um país árabe, então por favor, não vá me explicar o que os algarismos arábicos se parecem. Se você pode ajudar, bom e bem. Não preciso de idéias falsas.

http://img.bestphpide.com/php/500px-Arabic_numerals-en.svg.png

Se você está se referindo ao que a Wikipedia chama de números árabes / árabes orientais , uma simples operação de substituição deve ser feita.

$western_arabic = array('0','1','2','3','4','5','6','7','8','9'); $eastern_arabic = array('٠','١','٢','٣','٤','٥','٦','٧','٨','٩'); $str = str_replace($western_arabic, $eastern_arabic, $str); 

Definições

  • Números árabes ocidentais: “1234567890”.
  • Números árabes orientais: “1234567890”.

A resposta

Eu escrevi algumas funções (gist.github.com) há um tempo atrás.

Demo (3v4l.org)

  echo arabic_w2e("1234567890"); // Outputs: ١٢٣٤٥٦٧٨٩٠ echo arabic_e2w("١٢٣٤٥٦٧٨٩٠"); // Outputs: 1234567890 

Código

  

Ou você pode simplesmente baixar e usar esta class em: http://www.phpclasss.org/package/6626-PHP-Convert-numbers-to-Arabic-representation.html (Testado e trabalhando). Felicidades.

Você está tentando converter, por exemplo, Sessenta e nove para تسعة وستون? Experimente se você pode ligar para o serviço Google Translate ou outro serviço de tradução. Caso contrário, você deve escrever seu próprio analisador numérico e usar seu conhecimento da língua árabe para traduzi-lo para o árabe. (Mas, o uso de um serviço de tradução seria muito mais fácil.) (Então, novamente, o PHP talvez já tenha uma function que escreva números e dígitos da maneira correta.)

Eu sugiro que você tente usar o arquivo de resources para diferentes idiomas, especialmente se o conteúdo for conhecido. Exemplo: 2 arquivos de idioma de arquivo, 1 nomeado language_EN, outro idioma_AR onde langauge_EN é para armazenar os valores em inglês e language_AR para arabe.

então, por exemplo, você quer armazenar o número “1”

no langauge_EN, faça algo assim. number.one = 1

então, em langauge_AR, (finja x é o número “1” em árabe, mas acho que o unicode é preferido) number.one = x

então, depois que você recupera do database e sabendo que é número, seu resultado bruto é “um”.

então use o número. + [resultado do database] para carregar a partir do langauage_AR Este método é amplamente utilizado em páginas da web que permitem alternar o idioma. Então, em qualquer momento você precisa converter de volta para o inglês, basta mudar para o idioma_EN. Isso funciona não apenas para o número. Gd Luck

Solução simples com strtr :

 strtr($str, ['٠','١','٢','٣','٤','٥','٦','٧','٨','٩']); 

Para converter do árabe oriental para o árabe:

 strtr($str, array_flip(['٠','١','٢','٣','٤','٥','٦','٧','٨','٩'])); 
Intereting Posts