0

すべての特殊文字を大文字に変換するこの関数があります。

function uc_latin1($str) {
    if(!defined("LATIN1_UC_CHARS"))
        define("LATIN1_UC_CHARS", "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ");
    if(!defined("LATIN1_LC_CHARS"))
        define("LATIN1_LC_CHARS", "àáâãäåæçèéêëìíîïðñòóôõöøùúûüý");
    $str = strtoupper ( strtr ( $str, LATIN1_LC_CHARS, LATIN1_UC_CHARS ) );
    return $str;
}

この関数は、Windows XPを実行している開発用PCで正常に機能しますが、Red Hat Linuxを実行している本番サーバーでテストすると、文字列が大文字になりません。文字列はISO-8859-1でエンコードされています。

Linuxでもどうすれば動作させることができますか?

4

1 に答える 1

1

mb_strtoupper()を使用してみましたか?私のコンピューターでは、これにより、少なくとも、定義したすべての文字が変換されますが、他の文字も変換される可能性があります。

例えば:

$str = àáâãäåæçèéêëìíîïðñòóôõöøùúûüý;
$str = mb_strtoupper($str);
echo $str;
// Prints ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ
于 2010-04-19T17:58:48.003 に答える