web-dev-qa-db-ja.com

英語の数字をアラビア数字に変換する

データベースから取得した英語の数字をPHPでアラビア数字の記号に変換するにはどうすればよいですか。

編集:これはアラビア数字がどのように見えるかのいくつかの例です。私はアラブの国に住んでいるので、アラビア数字がどのように見えるかを説明することは避けてください。あなたが助けることができれば、よくそしてよく。偽のアイデアは必要ありません。

http://upload.wikimedia.org/wikipedia/commons/thumb/2/21/Arabic_numerals-en.svg/500px-Arabic_numerals-en.svg.png

18
HyderA

ウィキペディアが呼んでいるものを参照している場合 東アラビア語/インド数字 、単純な置換操作で実行できます。

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

$str = str_replace($western_arabic, $eastern_arabic, $str);
23
Pekka 웃

定義

  • 西部のアラビア数字:「1234567890」。
  • 東部アラビア数字:「١٢٣٤٥٦٧٨٩٠」。

答え

いくつかの関数(Gist.github.com) しばらく前に書きました。

デモ (3v4l.org)

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

コード

<?php

/**
 * Converts numbers in string from western to eastern Arabic numerals.
 *
 * @param  string $str Arbitrary text
 * @return string Text with western Arabic numerals converted into eastern Arabic numerals.
 */
function arabic_w2e($str)
{
    $arabic_eastern = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩');
    $arabic_western = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
    return str_replace($arabic_western, $arabic_eastern, $str);
}

/**
 * Converts numbers from eastern to western Arabic numerals.
 *
 * @param  string $str Arbitrary text
 * @return string Text with eastern Arabic numerals converted into western Arabic numerals.
 */
function arabic_e2w($str)
{
    $arabic_eastern = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩');
    $arabic_western = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
    return str_replace($arabic_eastern, $arabic_western, $str);
}
6
Nabil Kadimi

または、次の場所からこのクラスをダウンロードして使用することもできます: http://www.phpclasses.org/package/6626-PHP-Convert-numbers-to-Arabic-representation.html (テスト済みで動作中) 。乾杯。

3
Mario Awad

特に内容がわかっている場合は、別の言語のリソースファイルを使用してみることをお勧めします。例:2つのファイル言語ファイル、1つはlanguage_ENという名前、もう1つはlangauge_ENが値を英語で格納するためのlanguage_AR、およびアラビア語の場合はlanguage_ARです。

たとえば、番号「1」を保存したい

langauge_ENで、次のようにします。 number.one = 1

次に、langauge_ARで(xはアラビア語の数字「1」のふりをしますが、Unicodeが好ましいと思います)number.one = x

したがって、データベースから取得してそれが数値であることを知った後、生の結果は「1」になります。

したがって、number。+ [データベースからの結果]を使用してlangauage_ARからロードします。このメソッドは、言語の切り替えを可能にするWebページで非常に広く使用されています。したがって、いつでも英語に戻す必要があります。language_ENに戻すだけです。これは数だけでなく機能します。 Gd運

0
C_Rance

変換しようとしていますか?六十九からتسعةوستون? Google翻訳サービスまたは別の翻訳サービスを呼び出すことができるかどうか試してください。それ以外の場合は、独自の numeral パーサーを作成し、アラビア語の知識を使用してアラビア語に翻訳する必要があります。 (ただし、翻訳サービスを使用する方がはるかに簡単です。)(この場合も、PHPには、数値と数字を適切な方法で書き出す関数が既に含まれている可能性があります。)

0
Wim ten Brink