PHP音译

18 php transliteration

有没有将所有外国字符转换为Az等价物的解决方案?我在Google上进行了大量搜索,找不到解决方案,甚至找不到字符和等价物列表.原因是我想要显示只有Az的URL,以及处理这些角色时的大量其他旅行.

tro*_*skn 24

您可以使用iconv,它具有特殊的音译编码.

当字符串"// TRANSLIT"附加到tocode时,将激活音译.这意味着当一个字符无法在目标字符集中表示时,它可以通过一个或几个看起来与原始字符相似的字符来近似.

- http://www.gnu.org/software/libiconv/documentation/libiconv/iconv_open.3.html

请参阅此处以获取与您的用例匹配的完整示例.


Sha*_*ady 13

如果您使用的是iconv,请确保在尝试音译之前正确设置了语言环境,否则某些字符将无法正确音译

setlocale(LC_CTYPE, 'en_US.UTF8');
Run Code Online (Sandbox Code Playgroud)


Ily*_*ich 9

这将尽可能多地将外国字符(包括西里尔字母,中文,阿拉伯语等)转换为它们的Az等价物:

$AzString = transliterator_transliterate('Any-Latin;Latin-ASCII;', $foreignString);
Run Code Online (Sandbox Code Playgroud)

您可能希望首先安装 PHP Intl扩展.

  • Debian(Ubuntu)的命令:`sudo aptitude install php5-intl`。在这里,您可以找到[完整的文件名或URL功能](http://www.jasom.net/php-prepare-sanitize-transliterate-convert-change-user-string-input-for-filename-or-url-地址)。 (2认同)

Kem*_*Dağ 7

如果您遇到不支持PHP 5.4或更高版本的开发和发布环境,则应使用iconv或自定义Transliteration库.

在iconv的情况下,我发现它非常无益,特别是在阿拉伯语或西里尔字母表上使用它.我会选择PHP 5.4内置的Transliteration类或自定义的Transliteration类.

其中一个解决方案提到了一个我没有测试过的自定义库.

当我使用Drupal时,我喜欢他们的音译模块,我最近移植它以使其在没有Drupal的情况下可用.


您可以在此处下载并使用如下:

<?php

include "JTransliteration.php";

$mombojombotext = "?????????????????????????";
$nonmombojombotex = JTransliteration::transliterate($mombojombotext);

echo $nonmombojombotex;

?>
Run Code Online (Sandbox Code Playgroud)