php字符串基本操作

2018-07-29  本文已影响0人  春风之旅

字符串操作

在php开发过程中有些基础知识一时想不起来,如果同事间合作略显尴尬,小编整理了一些对字符串的基本操作的知识点供大家参考。如有误点还请指点,谢谢。
1.字符串简介

字符串是指由零个或多个字符串构成的一个集合,这里所说的字符主要包含以下几种类型。

1.数字类型:1,2,3等。
2.字母类型:a,b,c等。
3.特殊字符型:#,¥,%等。
4.不可见字符型:换行符(\n),回车符(\r),Tab字符(\t)等。

其中,不可见字符是比较特殊的一组字符,它用来控制字符串格式化输出,在浏览器上不可见,只能看到字符串输出的结果。

2.单引号和双引号的使用方法及区别

字符串同城一串的整体作为操作对象,一般用单引号或者双引号表示一个字符。单引号和双引号在使用上有一定的区别。

$s1 = "张三" ;  echo $s1  : 张三
$s2 = '李四';  echo $s2 :李四

对比

$s4 = "你好s1" ;  输出: 你好张三
$s4 = "你好s2" ;  输出:你好$s2

总结:就是说双引号中的变量PHP会解析,而单引号中的变量PHP不会解析.

3.字符串的连接符

半角句号"."是字符串链接符,可以吧两个或两个以上的字符串链接成一个字符串.

例如:

<?php
$name = "PHP";
$name1 = "是世界上最好的语言!";
echo $name.$name1;
?>
结果为:PHP是世界上最好的语言!

4.字符串操作

4.1 去除字符串收尾空格和特殊字符方法

1.trim()函数:去除首尾字符和特殊符,并返回处理后的字符
2.ltrim()函数:去除字符串左边的空格和特殊字符
3.rtrim()函数:去除字符串右边的空格和特殊字符

例如:string trim(strimg str[,string charlist]);

str:表示要操作的字符串对象
charlist:可选参数,表示指定要从字符串中删除哪些字符,如果不设置则删除所有字符
charlist可选参数:

4.2 字符串转义

字符串转义、还原的方法有两种:一种是手动转义&字符串还原数据,另一种是自动转义&还原字符串数据;

1.手动转义,还原字符串数据.

在字需要转义的字符串前面加"\"转移符. 对于数据量较大的字符串建议使用自动转义函数转义.

注意:手动转义的字符串可以使用 addcslashes()函数进行字符串还原.

2.自动转义,还原字符串数据.

注意:如果参数charlist中包含\n,\r等字符,讲义C语言风格转换,而其他非字母数字且ASCII码值低于32或高于126的字符均转换成八进制表示.

4.3 获取字符串长度

1.strlen()函数:获取字符串长度值,例如:int strlen(string str)

说明:汉字占两个字符,数字,英文,小数点,下划线和空格占一个字符.

2.strlen()函数在获取字符串长度的同时也可以检测字符串长度.

<?
if(strlen($_POST['pwd'])<6){        //检测是否小于6
    echo "<script>alert('用户名或密码不得小于6位!');history.back();</script>";
}else{
    echo "用户信息合法!";
}

4.4 截取字符串

1.substr() 函数:分割字符串 例如:string substr(string str,int start [,int length])

if(strlen($text)>30){
    echo substr($text,0,30)."...";
}else{
    echo $text;
}

注意:如果截取字符串有中文请尽量保持截取偶数个字符,如果截取的值是奇数,可能会导致字符乱码,因为一个中文字占两个字符,解决办法就是应用substr()编写一个自定义函数.

4.5 比较字符串

strcmp($str1,$str2) 字节大小比较区分大小写
strcasecmp($str1,$str2) 字节大小比较不区分大小写
strnatcmp($str1,$str2)  自然排序法比较区分大小写(主要是字符串中含有的数字比较,不分前后)
strnatcasecmp($str1,$str2)  自然排序比较不区分大小写
strncmp(string str1,strimg str2,int len)    指定从源字符串位置开始比较,
len是用来比较字符串中的前n个字符

PHP中常用的字符串比较方法: 按字节进行比较:strcmp()strcasecmp()函数这两个函数区别是strcmp()函数区分大小写,而strcasecmp()函数不区分字符大小写,函数strnatcmp()同上

例如:

$str1 = "编程使我快乐!";

$str2 = "编程使我快乐!";

$str3 = "teacher";

$str4 = "TEACHER";

echo strcmp($str1,$str2);   //这两个字符串相等

echo strcmp($str3,$str4);   //该函数区分大小写

echo strcasecmp($str3,$str4);   //该函数不区分大小写

结果: 0   1   0

分析:如果两个字符串大小相等返回0, 函数1比函数2大则返回值大于0,函数1比函数2小则返回值小于0,如果大小写不一致strcmp函数返回1,strcasecmp函数返回0,因此strcmp函数可以用于用户登录用户名和密码的验证.

注意:自然运算中1比2小,而计算机序列中1比2大.

4.6 检索字符串

1.strstr()函数查找指定的关键字(区分大小写)

语法:string strstr(string haystack,string needle);

2.strchr()函数与其正好相反,该函数是从字符串后序的位置开始检索子串的.

3.substr_count()函数检索子串出现的次数:语法:int substr__count(string haystack,string needle)haystack:指定字符串,needle:指定字符

4.7 替换字符串

替换字符串可以通过两个函数实现:

1.str_ireplace()函数 当确定要替换的字符串时使用

2.substr_replace()函数 不确定要替换的字符串使用(下标)

 str_ireplace()函数

语法格式如下:mixed str_ireplace(mixed search,mixed replace,mixed subject [,int &count]),使用新的字符串(子串)替换原始字符串中被指定要替换的字符串。

说明:将所有在参数subject中出现的参数search以参数replace取代,参数count表示取代字符串执行的次数,本函数不区分大小写。如果要区分大小写可以使用 str_replace函数

substr_replace()函数

语法:string substr_replace(string str,string repl,int start,[int length])

说明:如果参数start设为负数,而参数length数值小于或等于start数值,那么length的值自动为0。

4.8 字符串格式化

php中字符串格式化分为多种,按照格式分为字符串格式化和数字字符串格式化。数字字符串格式化最常用。

number_format()函数用来将数字字符串格式化

语法:string number_format(float number [int num_decimal_places,][string dec_seperator,string thousands_separator]);

注意:该函数有4个参数:可以有1个,2个,4个。不能只给3个。

1.$number:舍去小数点后面值,且第三位数字以逗号隔开。
2.num_decimal_places:(可选)格式化到小数点后第num_decimal_places位。且每3位用逗号分开,
3.dec_seperator:用来替代小数点'.';
4.thousands_seperator:用来替代第3位数字隔开的逗号(,)。

例如:

$number = 111555444.3306;
echo number_format($number,2,'.','.');

一个参数的值:111,555,444
两个参数的值:111,555,444.33
四个参数的值:111.555.444.33

4.9分割字符串

explode()函数:分割字符串,该函数将按照指定的规则对字符串进行分割,返回值为数组。

语法格式:array explode(string separator,string str[,int (limit)]);

1.separator:必要参数,指定分割的标识符,如果为空返回false,如果separator包含的值在str中找不到,那么explode函数将返回包含str单个元素的数组。
2.str:必要参数,指定将要被进行分割的字符串。
3.limit:可选参数,如果设置了limit参数,则返回的数组包含最多limit个元素,而最后的元素将包含str的剩余部分,如果limit参数是负数,则返回除了最后一个limit个元素外的所有元素。

5.0合成字符串

implode()函数:可以将数组中的内容合成一个新字符串。

语法格式如下:string implode(string glue,array pieces)

1.glue:字符串类型,指定分隔符
2.pieces:数组配型,指定要被合并的数组。
说明:explode()函数和implode()函数是两个相对的函数,一个用于拆分一个用于合成。

以上是对字符串的基本操作分类的各种函数,重点

上一篇下一篇

猜你喜欢

热点阅读