php 中文字符串反转【字符串】

news2024/12/26 21:22:57

场景:英文字符串反转 使用 方法  strrev($str)  ,但是中文字符串怎么反转呢?

代码

/**
 * 多字符 字符串反转
 * @param string $string 字符串
 * @param string $encoding 编码
 * php >= 7.4  否则需要实现 mb_str_split 多字符变成字符串
 */
function mb_strrev($string , $encoding = null){
    if(is_null($encoding)){
        $encoding = mb_internal_encoding();
    }
    // 把字符串变成数组
    $arr = mb_str_split($string , 1 ,$encoding);
    // 数组反转
    return implode('',array_reverse($arr));
}

输出 

var_dump(mb_strrev('你好 hello w阿斯利康大家坷拉就少得可怜ord!'));
// string(57) "!dro怜可得少就拉坷家大康利斯阿w olleh 好你"

引用: mb_str_split 实现方式

php中mb_str_split分割字符串为数组的函数介绍与使用以及低版本php函数实现_php split字符串分割字符串_豆子林的博客-CSDN博客mb_str_split将返回一个字符串数组,这是一个支持字符变长编码以及1、2、4字节字符定长编码版本的str_split()。 如果指定了length参数,则将字符串按指定的字符长度(而不是字节长度)拆分为块。 可以选择指定encoding参数,这样是很好的做法。mb_str_split函数将返回字符串数组。php8.0开始此函数在失败时不再返回false,而是返回空数组。_php split字符串分割字符串https://blog.csdn.net/llgde/article/details/131367251

附上代码: 

/**
 * 分割字符串
 */
if (!function_exists('mb_str_split')) {
    function mb_str_split($string, $split_length = 1, $encoding = null)
    {
        if (is_null($encoding)) {
            $encoding = mb_internal_encoding();
        }
 
        if ($split_length < 1) {
            return [];
        }
 
        $length = mb_strlen($string, $encoding);
        $parts = [];
        for ($i = 0; $i < $length; $i += $split_length) {
            $parts[] = mb_substr($string, $i, $split_length, $encoding);
        }
 
        return $parts;
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/792251.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【雕爷学编程】Arduino动手做(88)---水流量传感器模块4

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

Centos7安装cloudreve+onlyoffice

Centos7安装cloudreveonlyoffice 1.安装onlyoffice 1.1 安装onlyoffice镜像 docker run -i -t -d -p 801:80 --restartalways -e JWT_ENABLEDfalse --name onlyoffice \-v /home/xxx/important_onlyoffice/logs:/var/log/onlyoffice \-v /home/xxx/important_onlyoffice/dat…

Linux搭建Promtail + Loki + Grafana 轻量日志监控系统

一、简介 日志监控告警系统&#xff0c;较为主流的是ELK&#xff08;Elasticsearch 、 Logstash和Kibana核心套件构成&#xff09;&#xff0c;虽然优点是功能丰富&#xff0c;允许复杂的操作。但是&#xff0c;这些方案往往规模复杂&#xff0c;资源占用高&#xff0c;操作苦…

可视化时序输入与输出|python

请帮我生成可视化图的python代码&#xff0c;输入是xxx变量&#xff0c;输出是xxx变量&#xff0c;横坐标是时间&#xff0c;输入用蓝线表示&#xff0c;输出用黄线表示&#xff0c;然后输入和输出在时间维度上是分别一个在前&#xff0c;一个在后。 import matplotlib.pyplot…

安全狗深度参与编写的《云原生安全配置基线规范》正式发布!

7月25日&#xff0c;由中国信息通信研究院、中国通信标准化协会主办的2023可信云大会在北京顺利开幕。 作为国内云原生安全领导厂商&#xff0c;安全狗受邀出席此次活动。 厦门服云信息科技有限公司&#xff08;品牌名&#xff1a;安全狗&#xff09;成立于2013年&#xff0c…

《算法竞赛·快冲300题》每日一题:“凹”

《算法竞赛快冲300题》将于2024年出版&#xff0c;是《算法竞赛》的辅助练习册。 所有题目放在自建的OJ New Online Judge。 用C/C、Java、Python三种语言给出代码&#xff0c;以中低档题为主&#xff0c;适合入门、进阶。 文章目录 题目描述题解C代码Java代码Python代码 “ 凹…

Java SpringMvc

0目录 java SpringMvc拓展 1.SpringMvc 创建工程&#xff0c;导入依赖 配置 web.xml文件 配置Spring配置文件&#xff0c;resources目录下新建applicationContext.xml 控制层配置 新建list.jsp并测试 Web.xml详解 如果required是true必须要传参 设置默…

深度揭秘C++继承:理解面向对象编程的核心概念

目录 一.继承1.继承与面向对象2.继承方式访问权限3.切片&#xff08;赋值转换&#xff09;4.作用域5.默认成员函数6.友元与静态函数7.解决菱形继承的二义性与数据冗余8.继承与组合 一.继承 1.继承与面向对象 我们知道C语言是面向过程的编程语言&#xff0c;C在C语言的基础上进…

【TiDB理论知识06】PD架构与作用

目录 一 PD的架构与功能 PD架构 PD作用 名词解释 路由功能 二 TSO的分配 概念 分配过程 性能问题 高可用问题 三 PD的调度原理 总流程 1 信息收集 2 生成调度 3 执行调度 四 Label的作用 Label的配置 给TiKV打标签 PD配置 一 PD的架构与功能 PD架构 PD集群…

机器学习|学习类型-监督学习

让我们来讨论什么是机器学习如下所示&#xff1a; 如果机器在给定任务中的性能随着经验的改善而改善&#xff0c;则可以说机器正在从过去的经验&#xff08;数据馈入&#xff09;中学习某些类别的任务。例如&#xff0c;假设一台机器必须预测客户今年是否会购买特定的产品&…

指针进阶(三)

指针进阶&#xff08;三&#xff09; 指针习题组&#xff1a; 01&#xff1a; int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);printf( "%d,%d", *(a 1), *(ptr - 1));return 0; }运行结果&#xff1a; 原因&#xff1a;这里a是数组名&a…

点云拟合球体

前言&#xff1a;在很多情况下&#xff0c;需要根据点云来拟合球体&#xff0c;本博文主要介绍各种方法的拟合情况及优缺点&#xff0c;希望对各位小伙伴有所帮助&#xff01; 目录 1. vtkFitImplicitFunction进行球拟合 2. 四点求解球 1. vtkFitImplicitFunction进行球拟合 …

汽车减震器弹簧阻尼模型及python代码

U为主动减震施加的力。 通过python control库&#xff0c;可以得到在单位脉冲激励下X1的响应曲线 import control import matplotlib.pyplot as pltM1 2500 M2 320 K1 80000 K2 500000 b1 350 b2 15020s control.TransferFunction.sH (b1*b2*s*s (b1*K2b2*K1)*s K1*…

foreverlasting and fried-chicken hdu7293

Problem - 7293 题目大意&#xff1a;给出一个n个点&#xff0c;m条边的图&#xff0c;问其中包含了几个下面这样的子图 1<n<1000; 思路&#xff1a;我们要找两个点u,v&#xff0c;他们至少有4个公共点&#xff0c;且至少有一个点的度数至少为6&#xff0c;其中还要判断…

【Nodejs】Koa基本使用

1.简介 koa 是由 Express 原班人马打造的&#xff0c;致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用&#xff0c;通过组合不同的 generator&#xff0c;可以免除重复繁琐的回调函数嵌套&#xff0c;并极大地提升错误处理的效率。koa 不在内核方…

Python+Playwright自动化测试--标签页操作(tab)

1.简介 标签操作其实也是基于浏览器上下文&#xff08;BrowserContext&#xff09;进行操作的&#xff0c;而且宏哥在之前的BrowserContext也有提到过&#xff0c;但是有的童鞋或者小伙伴还是不清楚怎么操作&#xff0c;或者思路有点模糊&#xff0c;因此今天单独来对其进行讲…

msvcr71.dll丢失或(找不到)的解决办法

在使用电脑有时候今天没有问题隔天我们再打开软件时候&#xff0c;就遇到电脑提示msvcr71.dll丢失的问题&#xff0c;完全不知道怎么回事跟怎么解决&#xff0c;今天本文章给大家详细介绍msvcr71.dll丢失的解决方法&#xff0c;跟丢失的原因。 1.是什么msvcr71.dll msvcr71.dl…

windows 抓取网页视频的url

fd抓视频链接 Filddler4官网&#xff1a; https://www.telerik.com/download/fiddler 复制 预先设置&#xff1a;打开 Fiddler&#xff0c;选择菜单栏 -> Tools -> Fiddler Options&#xff0c;在 HTTPS 选项卡中勾选 Decrypt HTTPS traffic&#xff0c;然后重启Fidd…

【云原生系列】openstack搭建过程及使用

目录 搭建步骤 准备工作 正式部署OpenStack 安装的过程 安装组件如下 登录页面 进入首页 创建实例步骤 上传镜像 配置网络 服务器配置 dashboard配置 密钥配置免密登录 创建实例 绑定浮动ip 免密登录实例 搭建步骤 准备工作 1.关闭防火墙和网关 systemctl dis…

Ip-Limit: 轻量级注解式IP限流组件(二)

author: van , ggfanwentaogmail.comIp-Limit-Example: 轻量级注解式IP限流组件使用样例 项目简介 该项目为ip-limiter的使用示例项目。 ip-limiter地址&#xff1a; https://github.com/DDAaTao/ip-limiter 示例项目文件树 └─example├─handler│ └─BaseException…