我不确定如何命名我需要的内容,我希望在PHP中将字符转换为更“正常”的字符集,例如:
ş to become s
ţ to become t,
ă to become a
我有罗马尼亚城镇名称,我想在URL中使用更多“普通”字符。 我想我想将罗马尼亚字符转换为美国(或者将其称为正确名称)。
答案 0 :(得分:5)
这个怎么样:
$text = str_replace(array("ş","ţ","ă"),array("s","t","a"),$text);
答案 1 :(得分:5)
您想要做的是称为音译。 在intl扩展中有一个Transliterator(仅限PHP 5.4):http://www.php.net/manual/en/transliterator.transliterate.php
示例:
$str = 'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ';
$rule = 'NFD; [:Nonspacing Mark:] Remove; NFC';
$myTrans = Transliterator::create($rule);
echo $myTrans->transliterate($str);
//aaaaaceeeeiiiinooooouuuuyy
//AAAAACEEEEIIIINOOOOOUUUUY
答案 2 :(得分:2)
正如在这里已经说过的,你想做的事情叫做音译,但在你的情况下这可能并不总是正常工作 - 你真正想要做的就是产生一个'slug'(不要问我为什么会这样做......)来自人类提供的输入,即在网址中使用。
请查看以下代码:http://trac.symfony-project.org/browser/plugins/sfPropelActAsSluggableBehaviorPlugin/lib/sfPropelActAsSluggableBehaviorUtils.class.php,了解如何制作可靠的url-safe和人类可读的标识符。
答案 3 :(得分:1)
您可以使用str_replace
。
$text = str_replace( array( 'ş', 'ţ', 'ă' ), array( 's', 't,', 'a' ), $text );
答案 4 :(得分:1)
我会继续使用PHP提供给我们的更复杂的音译系统。关于iconv功能。
示例如下:
$city = iconv('UTF-8', 'ASCII//TRANSLIT', $city);
var_dump($city);
答案 5 :(得分:0)
查看strtr,用特定替换替换特定字符。
echo strtr($string, "äåö", "aao");