PHP 调整文本不适用于特殊字符的功能?
PHP function to adapt texte not working with special characters?
我正在努力使用根据字符串的第一个字母调整文本的函数。
$str = "élo";
function deD($str) {
return (in_array(mb_strtolower($str[0]), array('a', 'e', 'é', 'è', 'ê', 'h', 'i', 'o', 'u')) ? 'd\'' : 'de ').$str;
}
echo deD($str).'</br>';
echo $str[0];
输出:
德埃洛
�
预期输出:
德洛
é
基本上,mb_strtolower应该可以防止所有特殊字符被误读。
我尝试了不同的选择,但我仍然弄错了。
我希望该函数适用于所有重音类型。
有什么想法吗?
非常感谢来自法国!
您需要为文件设置utf-8编码。尝试将其放在顶部:
header('Content-type: text/html; charset=utf-8');
然后,使用 mb_substr($str, 0, 1)
而不是 $str[0]
function deD($str) {
return (in_array(mb_strtolower(mb_substr($str, 0, 1)), array('a', 'e', 'é', 'è', 'ê', 'h', 'i', 'o', 'u')) ? 'd\'' : 'de ').$str;
}
$str = 'élo';
echo deD($str).'<br>';
echo mb_substr($str, 0, 1);
mbstring 中使用的默认国家语言设置 (NLS)。请注意,此选项会自动定义 mbstring.internal_encoding,并且 mbstring.internal_encoding 应放在 php.ini
中的 mbstring.language 之后
我正在努力使用根据字符串的第一个字母调整文本的函数。
$str = "élo";
function deD($str) {
return (in_array(mb_strtolower($str[0]), array('a', 'e', 'é', 'è', 'ê', 'h', 'i', 'o', 'u')) ? 'd\'' : 'de ').$str;
}
echo deD($str).'</br>';
echo $str[0];
输出: 德埃洛 �
预期输出: 德洛 é
基本上,mb_strtolower应该可以防止所有特殊字符被误读。 我尝试了不同的选择,但我仍然弄错了。 我希望该函数适用于所有重音类型。
有什么想法吗?
非常感谢来自法国!
您需要为文件设置utf-8编码。尝试将其放在顶部:
header('Content-type: text/html; charset=utf-8');
然后,使用 mb_substr($str, 0, 1)
$str[0]
function deD($str) {
return (in_array(mb_strtolower(mb_substr($str, 0, 1)), array('a', 'e', 'é', 'è', 'ê', 'h', 'i', 'o', 'u')) ? 'd\'' : 'de ').$str;
}
$str = 'élo';
echo deD($str).'<br>';
echo mb_substr($str, 0, 1);
mbstring 中使用的默认国家语言设置 (NLS)。请注意,此选项会自动定义 mbstring.internal_encoding,并且 mbstring.internal_encoding 应放在 php.ini
中的 mbstring.language 之后