首页 > 解决方案 > PHP函数来适应texte不使用特殊字符?

问题描述

我正在努力使用一个根据字符串的第一个字母来调整文本的函数。

            $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];

输出:de élo ...</p>

预期输出:d'éloé

基本上,mb_strtolower 应该防止所有特殊字符被误读。我尝试了不同的选择,但我仍然弄错了。我希望该功能适用​​于所有重音类型。

任何想法 ?

非常感谢法国!

标签: phpmbstring

解决方案


您需要为文件设置 utf-8 编码。试着把它放在顶部:

header('Content-type: text/html; charset=utf-8');

然后,代替$str[0],使用mb_substr($str, 0, 1)

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);

推荐阅读