Maison  >  Article  >  développement back-end  >  Résoudre le problème de l'inversion des caractères chinois tronqués dans la fonction strrev en PHP

Résoudre le problème de l'inversion des caractères chinois tronqués dans la fonction strrev en PHP

一个新手
一个新手original
2017-09-06 16:59:541684parcourir

Lorsque vous utilisez strrve en PHP pour retourner le chinois, des caractères tronqués apparaîtront

Par exemple :

header("Content-Type: text/html; charset=utf-8");
echo strrev("处理使用strrev()函数时的乱码问题")."<br>";


Le résultat en cours d'exécution est :

�� 鮗La solution est de réécrire vous-même une fonction cnstrrev

Le résultat en cours d'exécution est :

header("Content-Type: text/html; charset=utf-8");
$str = &#39;处理使用strrev()函数时的乱码问题&#39;;
function cnstrrev($str)
{
    $len = strlen($str);
    for($i = 0; $i < $len; $i++)
    {
        $char = $str{0};
        if(ord($char) > 127) //ord()函数取得第一个字符的ASCII码,如果大于0xa0(127)的话则是中文字符
        {
            $i+=2;//utf-8编码的情况下,一个中文字符占三个字节
            if($i < $len)
            {
                $arr[] = substr($str, 0, 3);//utf-8编码的情况下,一个中文字符占三个字节
                $str = substr($str, 3);
            }
        }
        else
        {
            $arr[] = $char;
            $str = substr($str, 1);//否则为非中文,占一个字符
        }
    }
    return join(array_reverse($arr));//以相反的元素顺序返回数组:
}
echo $str.&#39;+&#39;.cnstrrev($str);
Gérer le problème de code tronqué lors de l'utilisation de la fonction strrev() + la fonction time avec du code tronqué) (verts utiliser la poignée

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn