PHP /替换非拉丁字符与其对应物

时间:2013-02-05 09:12:21

标签: php replace str-replace

字符

AŠA

PHP

<?php

foreach (glob("*.jpg") as $filename) {
    $search = array("Š");
    $replace = array("S");

    $newname = str_replace($search, $replace, $filename);
    echo $filename.'<br>'.$newname;

    //($filename, realpath(dirname(__FILE__)).'/'.$newname);
}

问题 它不会取代单词“AŠA”中的字符“Š”

2 个答案:

答案 0 :(得分:10)

查看iconv(),它允许您将字符串转换为指定的编码。

您的案例示例:

$str = 'AŠA';
$str = iconv('UTF-8', 'ASCII//TRANSLIT', $str); // ASA

答案 1 :(得分:4)

上一种方法不适用于拉丁字符,如ü或áéíóú它返回'a'e'i'o'u而不是aeiou。

transliterator_transliterate怎么样?适用于PHP&gt; = 5.4

$str = 'AŠAáéíóú';    
transliterator_transliterate('Any-Latin; Latin-ASCII;', $str); //ASAaeiou

Reference PHP NET: transliterator_transliterate