• php 翻转字符串


    //方法一
    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
    
    	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() 函数的别名。

  • 相关阅读:
    自注意力中的不同的掩码介绍以及他们是如何工作的?
    sklearn 中的两个半监督标签传播算法 LabelPropagation和LabelSpreading
    Linux 操作指令
    在 KubeSphere 中使用 DevOps 部署 Java 微服务配置监控预警
    Hbase学习
    Linux系统swappiness参数在内存与交换分区之间优化作用
    Linux shell中2>&1的含义解释
    kafka 学习
    Grafana 重置admin密码
    linuxsource: not found ubuntu执行脚本报错
  • 原文地址:https://www.cnblogs.com/gyfluck/p/9224544.html
Copyright © 2020-2023  润新知