Преобразовать пронумерованный в подчеркнутую Систему транслитерации китайских иероглифов?

Это - перенесенный от исходных проектов ПК. Первоначально ПК только имели до 2 дисководов для гибких дисков, маркировал A и B. Некоторое время спустя жесткие диски были добавлены и стали диском C.

6
задан Makoto 4 May 2012 в 05:29
поделиться

1 ответ

<?php
$in = 'nin2 hao3 ma';
$out = 'nín hǎo ma';

function replacer($match) {
  static $trTable = array(
    1 => array(
      'a' => 'ā',
      'e' => 'ē',
      'i' => 'ī',
      'o' => 'ō',
      'u' => 'ū',
      'ü' => 'ǖ',
      'A' => 'Ā',
      'E' => 'Ē'),
    2 => array('i' => 'í'),
    3 => array('a' => 'ǎ')
  );
  list(, $word, $i) = $match;
  return str_replace(
    array_keys($trTable[$i]),
    array_values($trTable[$i]),
    $word); }

// Outputs: bool(true)
var_dump(preg_replace_callback('~(\w+)(\d+)~', 'replacer', $in) === $out);
1
ответ дан 8 December 2019 в 17:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: