Home  >  Article  >  Backend Development  >  Solution to the problem of using strrev to flip Chinese garbled characters in PHP

Solution to the problem of using strrev to flip Chinese garbled characters in PHP

高洛峰
高洛峰Original
2017-01-14 13:50:461333browse

The example in this article describes the solution to the problem of using strrev to flip Chinese garbled characters in PHP. Share it with everyone for your reference, the details are as follows:

When using strrve in PHP to flip Chinese, garbled characters will appear

For example:

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

The running result is:

��鮗遠籹䄚綗氕潇�)(verrts��翽䆐焤�

The solution is to rewrite a cnstrrev function yourself

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

The running result is:

处理使用strrev()函数时的乱码问题+题问码乱的时数函)(verrts用使理处

I hope this article will be helpful to everyone in PHP programming.

For more related articles on how to solve the problem of using strrev to flip Chinese garbled characters in PHP, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn