21

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

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

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

4

7 に答える 7

31

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

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

$str = str_replace($western_arabic, $eastern_arabic, $str);
于 2010-08-02T10:58:21.580 に答える
6

定義

  • 西部のアラビア数字:「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);
}
于 2015-08-16T11:37:05.107 に答える
3

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

于 2011-11-16T11:48:49.183 に答える
0

特に内容がわかっている場合は、別の言語のリソースファイルを使用してみることをお勧めします。例: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運

于 2010-08-02T11:59:09.023 に答える
0

アラビア数字:

function to_arabic_number($number)
{
    $number = str_replace("1","۱",$number);
    $number = str_replace("2","۲",$number);
    $number = str_replace("3","۳",$number);
    $number = str_replace("4","٤",$number);
    $number = str_replace("5","٥",$number);
    $number = str_replace("6","٦",$number);
    $number = str_replace("7","۷",$number);
    $number = str_replace("8","۸",$number);
    $number = str_replace("9","۹",$number);
    $number = str_replace("0","۰",$number);
    return $number;
}

ペルシャの数字:

function to_persian_number($number)
{
    $number = str_replace("1","۱",$number);
    $number = str_replace("2","۲",$number);
    $number = str_replace("3","۳",$number);
    $number = str_replace("4","۴",$number);
    $number = str_replace("5","۵",$number);
    $number = str_replace("6","۶",$number);
    $number = str_replace("7","۷",$number);
    $number = str_replace("8","۸",$number);
    $number = str_replace("9","۹",$number);
    $number = str_replace("0","۰",$number);
    return $number;
}
于 2020-07-12T07:37:42.017 に答える
-1

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

于 2010-08-02T10:28:02.950 に答える
-1

strtrを使用した単純なソリューション:

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

東アラビア語からアラビア語に変換するには:

strtr($str, array_flip(['٠','١','٢','٣','٤','٥','٦','٧','٨','٩']));
于 2016-07-02T07:29:20.213 に答える