0

英語の標準数値をペルシア語(ペルシア語)またはアラビア語の数値に変換する関数があります。

function farsinum($str){
  if (strlen($str) == 1){
    $str = "0".$str;
    $out = "";
    for ($i = 0; $i < strlen($str); ++$i) {
      $c = substr($str, $i, 1); 
      $out .= pack("C*", 0xDB, 0xB0 + $c);
    }
  }
  return $out;
}

しかし、この関数は1 23 ...の代わりに010203 ...を生成します...ここで何かを変更する必要があると思います。

$out .= pack("C*", 0xDB, 0xB0 + $c);

助けていただければ幸いです。

4

1 に答える 1

1

この関数は1桁を変換します:

function farsinum ($digit) {
  return pack("C*", 0xDB, 0xB0 + substr($digit, 0, 1));
}

9より大きい数値を変換する場合は、単純なループで修正できます。

function farsinum ($number) {

  // Work with a string so we can use index access
  $number = (string) $number;

  // We'd better add some error checking, to make sure we only accept digits
  if (!ctype_digit($number)) return FALSE;

  // Loop characters and convert them
  for ($i = 0, $out = '', $length = strlen($number); $i < $length; $i++) {
    $out .= pack("C*", 0xDB, 0xB0 + $number[$i]);
  }

  // Return the result
  return $out;

}

負の数と浮動小数点数がペルシア語のテキストでどのように表現されているかを説明するリソースが見つかりません。必要な場合は、出力をどのように表示するかを教えてください。

于 2012-05-23T11:57:20.757 に答える