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

这篇具有很好参考价值的文章主要介绍了php 中文字符串反转【字符串】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

场景:英文字符串反转 使用 方法  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;
    }
}

 文章来源地址https://www.toymoban.com/news/detail-607471.html

到了这里,关于php 中文字符串反转【字符串】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 代码随想录--字符串-反转字符串

    编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:

    2024年02月09日
    浏览(38)
  • 算法刷题-字符串-反转字符串II

    简单的反转还不够,我要花式反转 力扣题目链接 给定一个字符串 s 和一个整数 k,从字符串开头算起, 每计数至 2k 个字符,就反转这 2k 个字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,

    2024年02月09日
    浏览(35)
  • c++:string相关的oj题(把字符串转换成整数、344.反转字符串、387. 字符串中的第一个唯一字符、917. 仅仅反转字母)

    传送门 首先处理空字符串为空的情况() 再处理第一个字符可能为 + - 的情况,直接定一个 flag 初始化为1,遇到 - 就赋值为-1 接下来就利用迭代器进行循环,如果是字符数字就直接使用 ret = ret * 10 + (*it - \\\'0\\\'); 是其他字符,直接return 0;了 传送门 大家学习了c++,可能直接就想

    2024年01月23日
    浏览(68)
  • 实例35---字符串反转,如将字符串 “www.runoob.com“ 反转为 “moc.boonur.www“。

    本系列为C语言菜鸟100道基础经典例题详解刷题系列。点滴成长,一起逆袭。 实例35—字符串反转( 字符串数组逆序输出 ),如将字符串 “www.runoob.com” 反转为 “moc.boonur.www”。 对c语言的字符串进行反转,将abcdef反转为fedcba的办法有很多,而我所使用的方法是 for循环来将字

    2024年02月04日
    浏览(32)
  • 力扣344.反转字符串

    原题链接:力扣344.反转字符串 思路: 直接双指针,一个指向开头一个指向末尾,使用swap进行交换即可 要注意终止条件为两个i s.size(),不能为 开头指针等于尾指针,因为在字符串是奇数字符个数情况下,指针会越界 全代码: class Solution { public: void reverseString(vector s) { int le

    2024年02月05日
    浏览(40)
  • c++:string相关的oj题(415. 字符串相加、125. 验证回文串、541. 反转字符串 II、557. 反转字符串中的单词 III)

    传送门 首先,定义两个指针 index1 和 index2 分别指向两个输入字符串的最后一位,用来从后往前遍历字符串。 然后定义一个变量 next 用来表示进位,初始化为 0。 接下来使用一个循环来遍历两个字符串,直到 index1 和 index2 都小于 0。在循环中,每次取出 index1 和 index2 对应位置

    2024年01月23日
    浏览(43)
  • 第8天-代码随想录刷题训练-字符串● 344.反转字符串 ● 541. 反转字符串II ● 剑指Offer 05.替换空格 ● 151.翻转字符串里的单词 ● 剑指Offer58-II.左旋转字符串

    LeetCode链接 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 swap常见的两种交换形式 常见的值交换 通过位运算 LeetCode链接 给定一个

    2024年02月04日
    浏览(41)
  • LeetCode-344. 反转字符串

    LeetCode-344. 反转字符串 题解一(Java) 作者:@仲景 直接双指针前后一直交换即可

    2023年04月26日
    浏览(33)
  • LeetCode:344. 反转字符串

    🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀 算法专栏: 👉🏻123 题目描述 :编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须 原地修改 输入数组、使用 O(1) 的额外

    2023年04月24日
    浏览(54)
  • 力扣541.反转字符串II

    原题链接:力扣541.反转字符串II 思路: 其实在遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k 就可以了,然后判断是否需要有反转的区间。 因为要找的也就是每2 * k 区间的起点,这样写,程序会高效很多。 全代码:

    2024年02月06日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包