我有这个函数将所有特殊字符转换为大写:
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中使用它?
答案 0 :(得分:1)
您是否尝试过使用mb_strtoupper()?在我的计算机上,这至少会转换您定义的所有字符,尽管它也可能不合需要地转换其他字符。
例如:
$str = àáâãäåæçèéêëìíîïðñòóôõöøùúûüý;
$str = mb_strtoupper($str);
echo $str;
// Prints ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝ