Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在哪里可以找到PHP音译器(Intl)的ID或规则列表?_Php_Transliteration_Intl - Fatal编程技术网

在哪里可以找到PHP音译器(Intl)的ID或规则列表?

在哪里可以找到PHP音译器(Intl)的ID或规则列表?,php,transliteration,intl,Php,Transliteration,Intl,将列出ID,但显然它不是一个完整的列表 在中,ID看起来像: Any-Latin; NFD; [:Nonspacing Mark:] Remove; NFC; [:Punctuation:] Remove; Lower(); 这有点奇怪,因为ID应该是唯一的。这看起来更像一条规则,但如果我将其传递给createFromRules方法:),它就不起作用了 无论如何,我正在尝试从字符串中删除任何标点符号,除了破折号(-)或特定列表中的字符 你知道这可能吗?或者是否有一些文档可以更好地解释音译器的语

将列出ID,但显然它不是一个完整的列表

在中,ID看起来像:

Any-Latin; NFD; [:Nonspacing Mark:] Remove; NFC; [:Punctuation:] Remove; Lower();
这有点奇怪,因为ID应该是唯一的。这看起来更像一条规则,但如果我将其传递给
createFromRules
方法:),它就不起作用了

无论如何,我正在尝试从字符串中删除任何标点符号,除了破折号(
-
)或特定列表中的字符

你知道这可能吗?或者是否有一些文档可以更好地解释音译器的语法?

作为“基本ID”的ID。您给出的示例是“复合id”。你可以看到这张照片

您还可以使用创建自己的规则

您可以查看预先定义的规则:

<?php
$a = new ResourceBundle(NULL, sprintf('icudt%dl-translit', INTL_ICU_VERSION), true);

foreach ($a['RuleBasedTransliteratorIDs'] as $name => $v) {
    $file = @$v['file'];
    if (!$file) {
        $file = $v['internal'];
        echo $name, " (direction $file[direction]; internal)\n";
    } else { 
        echo $name, " (direction: $file[direction])\n";
        echo $file['resource'];
    }
    echo "\n--------------\n";
}

以防万一有人想要一个有效的例子。上面提到的示例(来自php手册)使用了过程风格。要使用面向对象的样式,请使用
create()
而不是
createFromRules()


友好提示:对于内存不足的机器来说,这是一个非常密集的.txt文件,chrome和sublime文本可能会停止响应处理它。。。
removePunctuation($string) {
    $transliterator = Transliterator::create("Any-Latin; NFD; [:Nonspacing Mark:] Remove; NFC; [:Punctuation:] Remove;", \Transliterator::FORWARD);

    return $transliterator->transliterate($string);
}