php反转字符串的三种方法
(假设有字符串abcd,用php实现字符串翻转)
1.第一种php有自带的函数strrev可以轻松实现:
$str = 'abcd';
//第一种自带strrev实现翻转
echo strrev($str);
输出效果:

2.就是把分割字符串到一个数组中,然后遍历拼接:
function joinStrrev($str){
if (strlen($str) <= 1) return $str;
$newstr = '';
//str_split(string,length) 函数把字符串分割到数组中:string 必需。规定要分割的字符串。length 可选。规定每个数组元素的长度。默认是 1。
$strarr = str_split($str,1);
foreach ($strarr as $word) {
$newstr = $word.$newstr;
}
return $newstr;
}
$revstr = joinStrrev($str);
echo $revstr;
输出效果:

3.就是利用递归来做:
function recursionStrrev($str){
if (strlen($str) <= 1) return $str;//递归出口
$newstr = '';
//递归点,substr(string,start,length) :substr() 函数返回字符串的一部分,如果 start 参数是负数且 length 小于或等于 start,则 length 为 0,正数 - 在字符串的指定位置开始,负数 - 在从字符串结尾的指定位置开始,0 - 在字符串中的第一个字符处开始
$newstr .= substr($str,-1).recursionStrrev(substr($str,0,strlen($str)-1));
return $newstr;//递归出口
}
$revstr = recursionStrrev($str);
echo $revstr;
输出效果:

php反转字符串的三种方法的更多相关文章
- python—字符串拼接三种方法
python—字符串拼接三种方法 1.使用加号(+)号进行拼接 字符串拼接直接进行相加就可以,比较容易理解,但是一定要记得,变量直接相加,不是变量就要用引号引起来,不然会出错,另外数字是要转换为字 ...
- {转}Java 字符串分割三种方法
http://www.chenwg.com/java/java-%E5%AD%97%E7%AC%A6%E4%B8%B2%E5%88%86%E5%89%B2%E4%B8%89%E7%A7%8D%E6%9 ...
- (六)C#中判断空字符串的三种方法性能分析
三种方法分别是: string a=""; 1.if(a=="") 2.if(a==string.Empty) 3.if(a.Length==0) 三种方法是等 ...
- 解析Json字符串的三种方法
在很多时候,我们的需要将类似 json 格式的字符串数据转为json, 下面将介绍日常中使用的三种解析json字符串的方法 1.首先,我们先看一下什么是 json 格式字符串数据,很简单,就是 jso ...
- DataTable转换为Json字符串的三种方法
//第一种:使用StringBuilder public string DataTableToJson(DataTable table) { var JsonString = new StringB ...
- python3反转字符串的3种方法
前段时间看到letcode上的元音字母字符串反转的题目,今天来研究一下字符串反转的内容.主要有三种方法: 1.切片法(最简洁的一种) #切片法 def reverse1(): s=input(&quo ...
- JS中把其他类型转换成字符串的三种方法
1.toString()方法 toString()方法返回的是相应值的字符串表现 数值.布尔值.对象和字符串值都有toString()方法,但是null和undefined值没有这个方法 例子: va ...
- python 格式化字符串的三种方法
1)%格式化方法 >>> a = "this is %s %s" % ("my", "apple") >>&g ...
- C++中,访问字符串的三种方法
1.用字符数组存放一个字符串 程序1:定义一个字符数组并初始化,然后输出其中的字符串. #include<iostream> using namespace std; int main() ...
随机推荐
- 实现spaCy实体标注模型
命名实体识别是指对现实世界中某个对象的名称的识别.与词性标注一样,是自然语言处理的技术基础之一.它的作用主要是通过模型识别出文本中需要的实体,也可以推导出实体之间的关系(实体消歧). 本文介绍的是运用 ...
- 浅谈在c#中使用Zlib压缩与解压的方法
作者:Compasslg 介绍 近期用c#开发一个游戏的存档编辑工具需要用 Zlib 标准的 Deflate 算法对数据进行解压. 在 StackOverflow 上逛了一圈,发现 c# 比较常用到的 ...
- ubuntu 缺少动态依赖库
起因 困扰我好久的一个报错,终于解决了 之前我一直以为是 python代码的问题,以为是模块相互调引起的报错,忽略了最后一行这个错误 OSError: libGCBase_gcc421_v3_0.so ...
- Linux文件共享服务之NFS
NFS(Network File System) 网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源.在NFS的应用中,本地NFS的客户端应用可 ...
- CMS Joomla SQL注入漏洞练习(CVE-2017-8917 )
0x01 原理 1.Joomla是内容管理的网站程序,也就是CMS.漏洞原理是com_fields组件,对请求数据过滤不严谨,从而导致sql注入.这个就是有问题的代码,可以看出sql根本没有过滤,通过 ...
- MetInfo Password Reset Poisoning By Host Header Attack
if we know some user's email, the we will can reset the user's email by host header attack. The atta ...
- 【antd Vue】封装upload图片上传组件(返回Base64)
最近需要把上传的图片信息存储到数据库,以base64的方式,需要重新封装一下antd的upload组件 1. 使用方法 引入组件然后配置一下即可使用,配置项包括 defaultImageList,需要 ...
- MBG:mybatis逆向工程使用
一:如果是Maven工程可在pom.xml文件中添加插件 <build> <plugins> <plugin> <groupId>org.mybatis ...
- Java中实现某方法和重写某方法的区别
实现(implements) 实现一个方法,在实现某个接口,或者是继承某个抽象类,在接口和在抽象类中定义的方法,本身是没有实现的,也就是没有方法体,你在当前类中就需要去实现这个方法. 重写(overl ...
- 使用DevExpress的GridControl实现多层级或无穷级的嵌套列表展示
在我早期的随笔<在GridControl表格控件中实现多层级主从表数据的展示>中介绍过GridControl实现二级.三级的层级列表展示,主要的逻辑就是构建GridLevelNode并添加 ...