// 將每個字元都轉換為 ASCII
$string = 'Москва́';
$string = Transliterator::create('Any-Latin; Latin-ASCII')->transliterate($string);
print $string;
// 結果為 "Moskva"
(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)
Transliterator::create -- transliterator_create — 建立轉寫器
物件導向風格
$id
, 整數 $direction
= Transliterator::FORWARD): ?Transliterator程序風格
透過 ID 開啟一個 Transliterator。
此函式目前沒有說明文件;僅提供其參數列表。
id
ID。可以使用 Transliterator::listIDs() 取得所有已註冊的轉寫器 ID 列表。
direction
方向,預設為 Transliterator::FORWARD。也可以設定為 Transliterator::REVERSE。
成功時返回一個 Transliterator 物件,失敗時返回 null
。
// 將每個字元都轉換為 ASCII
$string = 'Москва́';
$string = Transliterator::create('Any-Latin; Latin-ASCII')->transliterate($string);
print $string;
// 結果為 "Moskva"
一個很好的非拉丁語系語言 create 的例子是土耳其語。
它同時有大寫字母 I 和小寫字母 ı,這使得其他 strtolower 之類的函式失效。
$text = "Iğdır";
echo Transliterator::create("tr-Lower")->transliterate($text);
將返回正確的結果 ığdır,而不是 iğdır。
如果您想深入了解正在發生的事情,請閱讀 ICU 專案文件:http://userguide.icu-project.org/transforms/general
這個 API 呼叫基本上只是 ICU 轉寫的包裝器。