//方法一
function strrev_charset($string,$charset='utf-8'){
if(!is_string($string) || !mb_check_encoding($string,$charset)){
return '翻转失败';
}else{
$arr = [];
$str_len = mb_strlen($string,$charset);
for($i=0;$i<$str_len;$i++){
$char = mb_substr($string,$i,1,$charset);
array_unshift($arr,$char);
}
return implode($arr);
}
} //方法二
function utf8_strrev($str){
//u 此修正符打开一个与perl不兼容的附加功能. 模式字符串被认为是utf-8的. 这个修饰符 从unix版php 4.1.0或更高, win32版php 4.2.3开始可用. php 4.3.5开始检查模式的utf-8合法性.
//s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。
preg_match_all('/./us', $str, $array);//把每个字符都放到数组里
return join('',array_reverse($array[0]));//翻转数组,转化为字符串
} $str = '世界你好 123 奋斗拼搏 abc';
echo strrev_charset($str);//cba 搏拼斗奋 321 好你界世
toBr();
echo utf8_strrev($str);//cba 搏拼斗奋 321 好你界世
toBr();
echo strrev($str);//含中文时乱码,cba ��漋旖拥� 321 ��堽䌕疸�

结论:
方法一用到的函数:
is_string(string),判断是否是字符串;
mb_check_encoding(string,encoding),检查字符串在指定的编码里是否有效;
mb_strlen(string,encoding),获取字符串的长度(可以包含中文);
mb_substr(string,start,lenth,encoding), 获取部分字符串(可以包含中文);
array_unshift(array,new_value,new_value2,...),向数组开头插入新元素;
implode(array),返回由数组元素组合成的字符串,这种省略第一个参数,第二个参数放第一个位置的方式不推荐;
implode(separator,array),返回由数组元素组合成的字符串,推荐使用这种。

方法二用到的函数:
preg_match_all(pattern,string,match_result),执行一个全局正则表达式匹配(注意匹配到的结果数组是二维数组);
array_reverse(array,preserve),以相反的元素顺序返回数组(第二个参数是否保留键名);
join(),是 implode() 函数的别名。

最新文章

  1. 如何用PowerShell列出你机器上的.NET Framework的版本号和SP服务补丁
  2. php try catch throw 用法
  3. asp.net 查询好的数据后 排序显示在桌面上
  4. Qt的学习资料比起其它C/C++的GUI组件来说已经算很全的了
  5. What is hmux in resin?
  6. [转载] FFmpeg 错误 C4996: ‘avcodec_alloc_frame’: 被声明为已否决 解决方法
  7. .net RAW(16)与GUID互相转换
  8. delphi datasnap 心跳包
  9. Eclipse+Maven创建webapp项目&lt;一&gt; (转)
  10. numpy中的matrix矩阵处理
  11. 利用libcurl进行post
  12. Java 高级开发必修知识---反射
  13. Java后缀数组-求sa数组
  14. 异步使用委托delegate --- BeginInvoke和EndInvoke方法
  15. (转) jmeter 获取cookie
  16. Django中操作Redis
  17. mysql从入门到放弃-入门知识介绍
  18. 如何将sql查询出的结果,用符号隔开
  19. 【socket-python应用】控制泓格ET-7044通信模块输入DI输出DO
  20. spring boot 程序打jar包及运行

热门文章

  1. 磁盘格式化mke2fs
  2. 一段字符串中间提取json字符串
  3. checkbox设置复选框的只读效果不让用户勾选
  4. 洛谷 P2894 [USACO08FEB]酒店Hotel
  5. codevs 1219 骑士游历 1997年
  6. 51nod 1031 骨牌覆盖
  7. IOS OS X 中集中消息的传递机制
  8. (转)Spring4.2.5+Hibernate4.3.11+Struts2.3.24整合开发
  9. 洛谷 P3146 248 题解
  10. Linux基础测试