美文网首页php社区
php 中文字符反转总结

php 中文字符反转总结

作者: jtw | 来源:发表于2018-05-07 14:31 被阅读0次

总结一下平时开发过程中遇到反转字符串功能带中文函数实现。

第一种

<?php

function reverse($str) {

    $len = mb_strlen($str, 'utf-8');

    for ($i = 0; $i < $len; $i++) {

        $arr[] = mb_substr($str, $i, 1, "utf-8");

    }

    return implode("", array_reverse($arr));

}

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

print_r(reverse("php是世界上最好得语言qwe"));

第二种

<?php
header("content-type:text/html;charset=utf-8");

function str_rev_gb($str){
 
  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=join($array);
  return $string;
}

或者

function myStrrev($str,$encoding='utf-8'){

    $newstr = '';

    $len = mb_strlen($str);

    for($i=$len-1; $i>=0; $i--){

        $newstr .= mb_substr($str,$i,1,$encoding);

    }

    return $newstr;

}

上面用到得俩个自带函数 array_reverse 与 krsort 他们得区别是:

array_reverse() 将数组倒序排序,键值改变
krsort() 将数组倒序排序,键值不变

$array = array('0'=>a,'1'=>b,'2'=>c);

$a = array_reverse($array);
krsort($array);

print_r($array);
echo "__________";
print_r($a);

得出结果
Array ( [3] => c [2] => b [0] => a ) ________Array ( [0] => c [1] => b [2] => a )

相关文章

网友评论

    本文标题:php 中文字符反转总结

    本文链接:https://www.haomeiwen.com/subject/pwjmhftx.html