php怎么实现字符串无乱码翻转

本文操作环境:windows7系统、PHP7.1版、DELL G3电脑

php怎么实现字符串无乱码翻转?

PHP中实现中文字符串反转避免乱码的方法 :

今天博主在网上看php面试题的时候,看到了这么一个问题,如何实现字符串反转,当时想不是有一个内置函数strrev能实现这个功能吗?后来试了一下,这个函数只能对英文字符进行反转,对中文会有乱码出现。主要原因还是编码上的问题。

PHP中utf-8编码中文当作3个字节计算,gb2312当作2个字节计算。所以想要实现中文字符串的一些功能,首先就要解决编码问题。

今天这个功能就是从编码处下手的。接下来开始讲实现的功能,今天要用到这么几个函数:

is_string()//判断参数是否为字符串,这个大家应该都知道
mb_check_encoding()//用来检查给定的字符串是否属于指定的编码
mb_strlen()//用来获取字符串长度
mb_substr()//用来截取字符串中的字符
krsort()//将数组按键名由大到小排序上述

上面用到了3个mb开头的函数,mb开头的函数都是用于处理多字节字符串的,主要是能指定字符串编码。

mb_check_encoding()接受两个参数,第一个参数要是字符串,第二个参数是输入一个字符编码,然后判断该字符串是否属于该编码,返回一个bool值,若省略第二个参数则默认为内部编码,可通过mb_internal_encoding()查看。

mb_strlen()有两个参数,第一个是字符串内容,第二个是字符串的编码。

mb_substr()有四个参数,第一个是要截取的字符串内容,第二个是开始截取的位置,第三个是截取的长度,第四个是字符串的编码(在本例中要选择utf-8,其他编码都不会得到正确的结果)。

接下来就是完整的代码了,简略的注释都已经标注好了,其实只要看一遍都能看懂:

<?php
    header("Content-type:text/html;charset=utf-8");
    $s="这是我的技术博客,欢迎多多来访!";
                             
    function str_rev($str){
        //先判断参数是否为字符串,且为UTF8编码
        if(!is_string($str)||!mb_check_encoding($str,"utf-8")){
            die("输入的不是utf8类型的字符串");
        }
                                 
        //用mb_strlen函获取算utf8字符串的长度
        $length=mb_strlen($str,"utf-8");
                                 
        //声明一个数组备用
        $arr=array();
                                 
        //将字符串拆开放入数组
        for($i=0;$i<$length;$i++){
            $arr[$i]=mb_substr($str,$i,1,"utf-8");
        }
                                 
        //将数组按键名大小反转
        krsort($arr);
                                 
        //将数组中单个字符元素重新组合成字符串
        $str=implode("",$arr);
                                 
        //将翻转后的字符串返回
        return $str;
    }
                             
    echo $s."<br>";
    echo str_rev($s);

?>

如果文中有任何错误,敬请指出,以便完善。

--结束END--

本文标题: php怎么实现字符串无乱码翻转

本文链接: https://www.lsjlt.com/news/437.html (转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢

  • php怎么实现字符串无乱码翻转

    php实现字符串无乱码翻转的方法:1、创建一个PHP示例文件并设置编码为utf8;2、用mb_strlen函获取算utf8字符串的长度;3、将字符串拆开放入数组;4、将数组按键名大小反转;5、将数组中单个字符元素重新组合成字符串即可。
    阅读数:281 php 翻转
  • php如何实现字符串翻转

    在php中使用strrev()函数对字符串进行翻转,具体方法如下:strrev()函数作用:php中strrev()函数的作用是用于反转一个字符串,并输出。strrev()函数语法:strrev(string)参数:string:需要反转的
    阅读数:898 PHP 字符串
  • php字符串乱码怎么解决

    php字符串乱码的解决办法:1、通过iconv把gb2312置换成utf-8;2、通过mb_convert_encoding函数转换编码。
    阅读数:960 php 乱码
  • php5实现字符串翻转的函数是什么

    php5实现字符串翻转的函数是“strrev()”,该函数的作用就是反转字符串,将字符串中字符的顺序翻转过来,并返回已反转的字符串;语法“strrev(string)”。
    阅读数:370 php 字符串翻转
  • php怎么实现数字转字符串

    php实现数字转字符串的方法:1、创建一个PHP示例文件;2、定义一个数字;3、通过“string strval ( mixed $var )”方法将数字转成字符类型即可。
    阅读数:957 php 数字 字符串
  • php 怎么实现asc转为字符串

    php实现asc转为字符的方法:1、创建一个PHP示例文件;2、通过代码“$i = 65;$ch = chr($i);var_dump($ch);”实现ASCII码转字符即可。
    阅读数:914 php asc
  • php怎么实现字符串的反转

    实现字符串反转的两种方法:1、使用for语句倒序遍历字符串,在循环体中用substr()函数从后向前截取一个个字符,并拼接成新字符串,语法“$r=;for($i=字符串长度-1;$i>=0;$i--){$r.=substr($str,$i,1);}”;2、直接利用strrev()函数反转字符串,语法“strrev($str)”。本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑
    阅读数:952 php字符串 php
  • 利用perl、python、php、shell、sed、awk、c 实现字符串的翻转

    原题:Q:有a.txt文件,里面内容如下 1234569 abcABCabc 要求使用awk打印出以下结果 987654321 cbaCBAcbaA:shell:[root@vps tmp]# rev a.txt 9654321
    阅读数:362 字符串 php python
  • php字符串怎么去掉重复字符

    去重步骤:1、使用str_split()函数将字符串转为字符数组,语法“str_split(字符串,1)”;2、使用array_unique()函数去除字符数组中的重复值,语法“array_unique(字符数组)”;3、使用implode()函数将去重后的字符数组还原成字符串即可,语法“implode(去重后的字符数组)”。本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑在
    阅读数:540 php php字符串
  • php怎么实现对字符串的排序

    实现步骤:1、利用str_split()函数将字符串转为字符数组,语法“str_split(字符串)”;2、使用asort()或arsort()函数来对字符数组进行升序排序或降序排序,语法“asort(字符数组)”或“arsort(字符数组)”;3、使用implode()函数将排序后的字符数组转回字符串,语法“implode(排序后字符数组)”。前端(vue)入门到精通课程:进入学习本教程操作环境:
    阅读数:432 php php数组 php字符串
  • php怎么进行字符串替换

    字符串替换方法:1、使用str_replace()函数,语法“str_replace(查找值,替换值,字符串)”;2、使用substr_replace()函数,语法“substr_replace(字符串,替换值,开始位置,替换长度)”。
    阅读数:418 php 字符串替换
  • php怎么反转字符串abcdefg

    反转方法:1、用strrev()函数,语法为“strrev("abcdefg")”;2、用for语句和substr(),语法“for($i=字符串长度-1;$i>=0;$i--){$r.=substr("abcdefg",$i,1);}”。
    阅读数:520 php 字符串反转
  • php怎么在字符串首部增加字符

    两种实现方法:1、使用字符串连接符“.”将指定字符拼接在字符串开头即可,语法“指定字符 . 字符串”;2、使用substr_replace()函数在字符串开头插入指定字符串,只需要将该函数的第二个参数设置为指定字符,第三个和第四个参数设置为0即可,语法“substr_replace(字符串,指定字符,0,0)”。本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑在PHP中,可以
    阅读数:733 php php字符串
  • php怎么去掉字符串中的某串字符串

    php去掉字符串中的某串字符串的方法:1、创建一个PHP示例文件;2、使用str_replace函数或者preg_replace函数将指定字符串替换为空即可。
    阅读数:240 php
  • php怎么实现字符串反转和数组反转

    在php中,可以使用strrev()和array_reverse()函数实现字符串反转和数组反转。strrev()用于反转字符串,语法为“strrev($string)”。array_reverse()用于反转数组,语法“array_reverse($array,$preserve)”;参数“$preserve”可省略,默认值为“false”,如果值设为TRUE会保留数字的键。本教程操作环境:win
    阅读数:343 php字符串 php php数组
  • php sql 字符串怎么转日期

    php sql字符串转日期的方法:1、通过“date("Y-m-d",strtotime(""));”方式转换;2、通过“date("M-d-Y",mktime(0,0,0,$month,$day,$year));”方式转换。
    阅读数:965 php 字符串 日期
  • json字符串怎么转为php变量

    在php中,可以利用json_decode()函数来将json字符串转换为PHP变量;该函数可用于解码JSON字符串,它接受一个JSON编码的字符串并且把它转换为PHP变量,语法“json_decode($json)”。
    阅读数:612 json字符串 php变量
  • php 字符串怎么转url实体

    php字符串转url实体的方法:1、通过parse_url()解析url;2、对url的中文进行编码和解码;3、通过htmlentities等方法将字符串转换为html实体即可。
    阅读数:938 php
  • php怎么去掉字符串空行

    php去掉字符串空行的方法:1、创建一个PHP示例文件;2、通过“function DeleteHtml($str){...}”方法去掉html中的空行或空白即可。
    阅读数:226 php 空行
  • php怎么将字符串转为小数

    php将字符串转为小数的方法:1、使用number_format()函数,语法“number_format($str,小数位数值)”;2、利用sprintf()函数格式化字符串,语法“sprintf("%.小数位数值f",$str)”。
    阅读数:185 php 字符串转小数