前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP中文字符串反转编码错误解决方式

PHP中文字符串反转编码错误解决方式

作者头像
申霖
发布2020-06-22 15:32:10
5740
发布2020-06-22 15:32:10
举报
文章被收录于专栏:小白程序猿小白程序猿

在使用PHP处理字符串反转的时候,我们第一反应是使用PHP的内置函数strrev来处理,思维上是没有问题的,但是我们需要知道一个问题,函数strrev是否可以处理中文汉字的字符串呢?带着疑问我们一起来看一下。

一、strrev函数介绍

1、定义:反转字符串

2、用法:

代码语言:javascript
复制
strrev(string)

3、参数:必需传递参数。规定要反转的字符串

4、适用版本:PHP4+

5、示例

代码语言:javascript
复制
<?php
    echo strrev("I love China!");
?>

6、运行结果

代码语言:javascript
复制
!ianihC evol I

二、实例测试

1、测试英文字符串

内容:I love China

代码:

代码语言:javascript
复制
<?php
    echo strrev("I love China");
?>

运行结果:

代码语言:javascript
复制
ianihC evol I

结论:可以正常将字符串进行转化,无任何异常。

2、测试中文字符串

内容:我爱中国

代码:

代码语言:javascript
复制
<?php
    echo strrev("我爱中国");
?>

运行结果:

代码语言:javascript
复制
��學䱈瑈�

结论:无法将中文字符串进行转换,出现乱码情况

3、测试英文+中文字符串

内容:我爱China

代码:

代码语言:javascript
复制
<?php
    echo strrev('我爱China');
?>

运行结果:

代码语言:javascript
复制
anihC��瑈�

结论:可以将英文字符串进行正常反转,中文汉字部分依旧出现乱码情况。

三、中文字符串反转解决方案

方案一:使用mb_substr() 函数和mb_strlen函数相互结合对字符串进行循环截取拼合。

示例代码:

代码语言:javascript
复制
function mb_strrev($str){
    $r = '';
    for ($i = mb_strlen($str); $i>=0; $i--) {
        $r .= mb_substr($str, $i, 1);
    }
    return $r;
}
echo mb_strrev("我爱中国");
echo mb_strrev("我爱China");
echo mb_strrev("I love China");

运行结果:

代码语言:javascript
复制
国中爱我
anihC爱我
anihC evol I

结论:此方法可以将字符串进行反转

四、结论

PHP内置函数strrev可以将纯字母类型的字符串进行反转,如果字符串内含有中文、中文符号则无法反转。需要使用函数相互结合方式进行反转。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-06-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、strrev函数介绍
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档