PHP8的字符串操作1PHP8知识详解

刘军连挂号 http://baijiahao.baidu.com/s?id=1707688667255876648&wfr=spider&for=pc

字符串是php中最重要的数据之一,字符串的操作在PHP编程占有重要的地位。在使用PHP语言开发web项目的过程中,为了实现某些功能,经常需要对某些字符串进行特殊的处理,比如字符串的格式化、字符串的连接与分割、字符串的比较、查找等一系列操作。用户和系统的交互也基本上是用文字来进行的,因此系统对文本信息,即字符串的处理非常重要。

PHP8中提供了大量用来处理字符串的内置函数,使用这些内置函数,可以在PHP8程序中很方便地完成对字符串的各种操作。在本文中,我们通过具体的实例加深对字符串函数的理解。

1、去除字符串首尾空格和特殊字符

空格在很多情况下是不必要的,所以经常会涉及到清除字符串的空格。比如某些程序中,出现了不必要的空格,就会大大的增加了程序出错的概率。

清理空格和特殊字符,我们用到了trim()、rtrim()和ltrim()函数。

1.1、trim()函数

trim()函数是从字符串两边同时去除空格和特殊字符的。语法格式如下:

trim(string,charlist)

其中,string是需要检查的字符串,charlist为可选参数,用于设置需要被去除的字符。如果不设置该参数,则以下字符将被删除。

a、"\0":NULL,空值。

b、"\t":制表符。

c、"\n":换行符。

d、"\x0B":垂直制表符。

e、"\r":回车符。

f、"":空格。

接下来,我们使用一个案例来做一个示范,代码如下:

?phpa="***我们正在学习的是PHP8###";echo"原文输出的是:".a;echo"br";a=trim(a,"*");//去除前面的*a=trim(a,"#");//去除后面的#echo"处理以后输出的是:".a;?

上面的代码,在PHP8中运行的结果如下:

原文输出的是:***我们正在学习的是PHP###处理以后输出的是:我们正在学习的是PHP1.2、ltrim()函数

ltrim()函数从左侧清楚字符串的空格和特殊字符。语法格式如下:

ltrim(string,charlist)

其中,string是需要检查的字符串,charlist为可选参数,用于设置需要被去除的字符。

示例代码:

?phpa="***PHP8***";echo"原文输出的是:".a;echo"br";a=ltrim(a,"*");//去除左侧的*echo"处理以后输出的是:".a;?

在PHP8中运行的结果是:

原文输出的是:***PHP8***处理以后输出的是:PHP8***1.、rtrim()函数

rtrim()函数从右侧清楚字符串的空格和特殊字符。语法格式如下:

rtrim(string,charlist)

其中,string是需要检查的字符串,charlist为可选参数,用于设置需要被去除的字符。

示例代码:

?phpa="***PHP8***";echo"原文输出的是:".a;echo"br";a=rtrim(a,"*");//去除左侧的*echo"处理以后输出的是:".a;?

在PHP8中运行的结果是:

原文输出的是:***PHP8***处理以后输出的是:***PHP82、获取字符串的长度

在PHP8中,计算字符串长度的函数有:strlen()和mb_strlen()。当字符串全部是英文的时候,strlen()和mb_strlen()是一样的。当字符串里面包含中文字符时二者就不一样了,当有中文的时候就使用mb_strlen()的才行。strlen()就统计不准确了。

说到中文字符,我们就来先说明一下,各种类型的字符串所占用的字节。

数字、英文、小数点、下划线和空格占一个字节。

一个汉字占2-4字节,具体占几个字节,根据使用什么编码决定的。汉字在GBK/GB编码中占2个字节,在UTF-8/Unicode中一般占个字节(2-4字节也有)。一个中文的标点符号,也是两个字符。现在我们写网页的编码基本上都是国际编码UTF-8。

接下来使用strlen()函数和mb_strlen()函数获取字符串的长度。

2.1、strlen()函数

strlen()函数主要用于获取字符串的长度,语法如下:

strlen(str)

其中,str就是需要计算长度的字符串。还有一个就是返回值,如果成功返回字符串str的长度,如果str为空,则返回0.

示例:

?phpa="你好,世界";b="helloworld";c="HELLOWORLD";echo"字符串a的长度为:".strlen(a);echo"br";echo"字符串b的长度为:".strlen(b);echo"br";echo"字符串c的长度为:".strlen(c);?

以上代码在PHP8中,运行的结果为:

字符串a的长度为:15字符串b的长度为:11字符串c的长度为:11

以上结果可以看出,大小写是一样的,但是中文的输出你们觉得对吗?

如果说输出的是字节的大小,那还算是对的,但是如果是字符串的长度,那肯定是不对的。

接下来就学习使用mb_strlen()函数来统计带中文的字符串。

2.2、mb_strlen()函数

mb_strlen()函数用于统计带中文字符串的长度,mb_strlen()函数语法格式如下:

mb_strlen(str,encoding)

其中,str:就是计算长度的字符串。

encoding:就是字符串编码。如果省略,则使用内部字符编码。

返回值:返回具有encoding编码的字符串包含的字符数。多字节的字符被记为1.如果给定的encoding无效则返回FALSE。

mb_strlen()函数和strlen()函数用法上面大体一致,多了一个字符编码的可选参数而已。

示例代码:

?phpa="你好,世界";b="helloworld";c="HELLOWORLD";echo"字符串a的长度为:".mb_strlen(a);echo"br";echo"字符串b的长度为:".mb_strlen(b);echo"br";echo"字符串c的长度为:".mb_strlen(c);?

以上代码在PHP8中的运行结果为:

字符串a的长度为:5字符串b的长度为:11字符串c的长度为:11

字符串的操作的内容太多了,多分一天来写了。明天继续写后面的字符串的操作。




转载请注明:http://www.aierlanlan.com/grrz/8058.html