有没有将所有外国字符转换为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)
这将尽可能多地将外国字符(包括西里尔字母,中文,阿拉伯语等)转换为它们的Az等价物:
$AzString = transliterator_transliterate('Any-Latin;Latin-ASCII;', $foreignString);
Run Code Online (Sandbox Code Playgroud)
您可能希望首先安装 PHP Intl扩展.
如果您遇到不支持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)
归档时间: |
|
查看次数: |
23423 次 |
最近记录: |