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

Rhy*_*Guy 1 php replace str-replace

AŠA
Run Code Online (Sandbox Code Playgroud)

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);
}
Run Code Online (Sandbox Code Playgroud)

问题 它没有取代"AŠA"字样中的字符"Š"

Kar*_*oos 10

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

案例示例:

$str = 'AŠA';
$str = iconv('UTF-8', 'ASCII//TRANSLIT', $str); // ASA
Run Code Online (Sandbox Code Playgroud)


Hub*_*eds 6

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

怎么样transliterator_transliterate。适用于 PHP >= 5.4

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

参考 PHP NET:transliterator_transliterate