首页后端开发PHPPHP怎样对中文字符无乱码翻转?教你两个方法

PHP怎样对中文字符无乱码翻转?教你两个方法

时间2024-03-25 15:50:03发布访客分类PHP浏览296
导读:PHP怎样对中文字符无乱码翻转?对于字符翻转很多朋友都觉得比较简单,使用strrev( 函数不久可以了吧,直接使用使用strrev( 函数对字符串翻转,英文字符是没有问题的,但是中文字符可能会有中文乱码的问题,那么究竟怎样翻转中文字符才无乱...

PHP怎样对中文字符无乱码翻转?对于字符翻转很多朋友都觉得比较简单,使用strrev()函数不久可以了吧,直接使用使用strrev()函数对字符串翻转,英文字符是没有问题的,但是中文字符可能会有中文乱码的问题,那么究竟怎样翻转中文字符才无乱码呢?

本文操作环境:Windows7系统、PHP7.1版、Dell G3电脑。

php如何实现翻转?PHP自定义函数实现翻转中文的功能

对于PHP语言来说,说到字符串翻转大家首先想到应该就是strrev()这个函数了,

strrev定义和用法

strrev() 函数反转字符串。

语法

strrev(string)

参数

string 必需。规定要反转的字符串。

例如:

?php
echo strrev("Hello World!");
    
?>
    

输出结果为:!dlroW olleH

strrev()这个函数对英文很好用,直接可以实现字符串翻转,但是如果是中文的话那么就都是乱码了

例如:

?php
echo strrev("您好世界!");
    
?>

输出结果为:��疸佥娂� 这个结果是不是没有人能看得懂啊。那么下面于老师就给大家分享一下如何反转中文的代码;

第一种方法:

function selfStrrev($str){

//判断输入的是不是utf8类型的字符,否则退出
  if(!is_string($str)||!mb_check_encoding($str,'UTF-8')){
    
    exit("输入类型不是UTF8类型的字符串");

  }
    
  $array=array();
    
  //将字符串存入数组
  $l=mb_strlen($str,'UTF-8');
    //在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算
  for($i=0;
    $i$l;
$i++){
    
    $array[]=mb_substr($str,$i,1,'UTF-8');

  }
    
  //反转字符串
  krsort($array);
    
  //拼接字符串
  $string=implode($array);
    
  return $string;

}
    
$str = "于老师特别帅";
    
echo selfStrrev($str);

输出结果为:帅别特师老于;

第二种方法:

function selfStrrev($str){

//判断输入的是不是utf8类型的字符,否则退出
  if(!is_string($str)||!mb_check_encoding($str,'UTF-8')){
    
    exit("输入类型不是UTF8类型的字符串");

  }
    
  //定义一个新的字符串 用来存储反转后的字符串
  $revStr = "";
    
  $l=mb_strlen($str,'UTF-8');
    //在mb_strlen计算时,选定内码为UTF8,则会将一个中文字符当作长度1来计算
  for($i=$l;
    $i>
    0;
$i--){
    
    $revStr .= mb_substr($str,$i-1,1,'UTF-8');
 //从最后一位开始截取,一直截取到第一位 然后拼接到定义好的新的字符串里面
  }
    
  return $revStr;

}
    
$str = "于老师特别帅";
    
echo selfStrrev($str);
    

输出结果为:帅别特师老于;

这里用到的技术就是mb_XXX 系列函数,需要注意的mb_XXX 系列函数是并不是PHP核心函数,使用前需要确保在php.ini中加载了php_mbstring.dll,即确保“extension=php_mbstring.dll”这一行存在并且没有被注释掉,否则会出现未定义函 数的问题;

关于PHP怎样对中文字符无乱码翻转的方法就分享到这,上述两个方法具有一定的参考价值,感兴趣的朋友可以了解看看。想要了解更多PHP的字符操作作,大家可以关注其它的相关文章。

文本转载自PHP中文网

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PHP怎样对中文字符无乱码翻转?教你两个方法
本文地址: https://pptw.com/jishu/652880.html
用redis实现文章的热度和点赞排行的怎样做呢 火狐支持css改变滚动条的属性是哪两个?

游客 回复需填写必要信息