PHP学习笔记——常用字符串操作函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ZLANBL085321/article/details/86242194

1、自动转义、还原字符串

  1. string addslashes(string str)
    参数str为将要被操作的字符串。
    该函数用来给字符串str加入斜线“\”,对指定字符串中的字符进行转义,能转义的字符包括单引号“’”、双引号“"”、反斜杠“\”、NULL字符“0”。该函数比较常用的地方就是在生成SQL语句时,对SQL语句中的部分字符进行转义。所有数据在插入数据库之前,有必要应用addslashes()函数进行字符串转义,以免特殊字符未经转义在插入数据库时出现错误。

2)string stripslashes(string str)
该函数用来将应用addslashes()函数转义后的字符串str返回原样,但数据在插入数据库之前必须再次进行转义。

3)string addcslashes(string str, string charlist)
实现对指定字符串中的字符进行转义,即在指定的字符charlist前加上反斜线。通过该函数可以将要添加到数据库中的字符串进行转义,从而避免出现乱码等问题。参数str为将要被操作的字符串,参数charlist指定在字符串中哪些字符前加上反斜线“\”,如果参数charlist中包含有“\n”、“\r”等字符,将以C语言风格转换,而其他非字母数字且ASCII码低于32位及高于126的字符均转换成以八进制表示。在定义参数charlist的范围时,需要明确在开始和结束的范围内的字符。

4)string stripcslashes(string str)
用来将应用addcslashes()函数转义的字符串str返回原样。

2、获取字符串长度
int strlen(string str)
用于回去指定字符串str的长度。汉字占2个字符,数字、英文、英文标点符号、下划线和空格各占1个字符。

3、截取字符串
string substr(string str, int start,[ int length])
参数str用来指定字符串对象。参数start用来指定开始截取字符串的位置,如果start为负数-N,则从字符串倒数第N个字符开始截取。参数length为可选项,指定截取字符的个数,如果length为负数,则表示截取到倒数第length个字符。

4、比较字符串
1)int strcmp(string str1, string str2)
按字节进行字符串比较,该函数区分字符串的大小写(strcasecmp()函数不区分大小写)。如果相等则返回0;如果参数str1大于参数str2则返回1;如果参数str1小于str2则返回-1。

2)int strnatcmp(string str1, string str2)
按自然排序法进行字符串比较,该函数区分字符串的大小写(strnatcasecmp()函数不区分大小写)。自然排序法比较的是字符串中的数字部分,将字符串中的数字按照大小进行排序。如果相等则返回0;如果参数str1大于参数str2则返回1;如果参数str1小于str2则返回-1。注意,在自然排序法中,2比10小;在计算机序列中,10比2小,因为“10”在的第一个字符是1,它小于2。

3)int strncmp(string str1, string2, int len)
比较字符串中的前n个字符,该函数区分字母大小写。如果相等则返回0;如果参数str1大于参数str2则返回1;如果参数str1小于str2则返回-1。

5、检索字符串
1)string strstr(string haystack, string needle)
获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。如果执行成功,则返回剩余字符串(存在相匹配的字符);如果没有找到相匹配的字符,则返回false。参数haystack用来指定从哪个字符串中进行搜索;参数needle用来指定搜索的对象,如果该参数是一个数值,那么将搜索与这个数值的ASCII值相匹配的字符。本函数区分字母的大小写。而strrchr()函数从字符串后序的位置开始检索子串。

2)int substr_count(string haystack, string needle)
获取指定字符在字符串中出现的次数。haystack是指定的字符串,needle是指定的字符。

6、替换子字符串
1)mixed str_replace(mixed search, mixed replace, mixed subject[, int &count])
使用新的子字符串替换原始字符串中被指定要替换的字符串,该函数区分字母大小写。参数search指定需要查找的字符串;参数replace指定替换的值;参数subject指定查找的范围;参数count表示替换字符串执行的次数。该函数可以以数组的方式传递参数,函数返回的是一个字符串还是数组,取决于被操作的对象是字符串还是数组。如果原始字符串subject是一个数组,则该函数会依次用replace替换subject数组中每个元素中的search子字符串,同时该函数的返回值为一个数组。

2)mixed str_ireplace(mixed search, mixed replace, mixed subject[, int &count])
将指定的字符串替换为另外一个指定的字符串,本函数不区分大小写。参数的意义参照str_replace()函数。

7、去除字符串中空白字符和特殊字符
1)string ltrim(string str[, string charlist])
去除字符串左边的空白字符或指定字符串。

2)string rtrim(string str[, string charlist])
去除字符串右边的空白字符或指定字符串。

3)string trim(string str[, string charlist])
去除字符串开始位置及结束位置的空白字符或指定字符串。

以上函数中,参数charlist为可选参数,指定需要从指定的字符串中删除哪些字符,如果不设置该参数,则所有的默认可选字符(“\0”空值、“\t”tab制表符、“\n”换行符、“\x0B"垂直制表符、“\r”回车符、“”空白字符)都将被删除,也可以在charlist参数中指定要过滤的特殊字符。

8、格式化字符串
string number_format(float number,[int num_decimal_places,string dec_seperator,]string thousands_seperator)
该函数可以有一个、两个或四个参数,不能是三个参数。如果只有一个参数number,number格式化后会舍去小数点后的值,且每1000就会以逗号“,”来隔开;如果有两个参数,number格式化后会到小数点第num_decimal_places位,且每1000就会以逗号“,”来隔开;如果有4个参数,number格式化后会到小数点第num_decimal_places位,dec_seperator用来替代小数点“.”,thousands_seperator用来替代每1000隔开的逗号“,”。

9、分割字符串
array explode(string separator, string str[,int limit])
该函数可以将指定字符串中的内容按照某个规则进行分割,返回值为数组。参数separator指定分隔符,如果separator为空字符串,函数将返回false,如果separator所包含的值在str中找不到,函数将返回包含str某个单元素的数组。参数str指定将要被进行分割的字符串。参数limit可选,如果设置了limit参数,则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分;如果limit参数是负数,则返回除了最后的-limit个元素外的所有元素。

10、字符串与HTML相互转换
string htmlentities(string str[,int quote_style, string charset])
将所有的字符都转换成HTML字符串。参数str指定要转换的字符串;参数quote_style可选,选择如何处理字符串中的引号,有3个可选值:(1)ENT_COMPAT转换双引号,忽略单引号,它是默认值;(2)ENT_NOQUOTES忽略双引号和单引号;(3)ENT_QUOTES转换双引号和单引号。参数charset可选,确定转换所使用的字符集,默认字符集是“ISO-8859-1”,指定字符集后就能避免转换中文字符出现乱码问题。htmlentities()函数支持的字符集有:BIG5(繁体中文)、BIG5-HKSCS(香港扩展的BIGS,繁体中文)、cp866(DOS特有的西里尔字符集)、cp1251(Windows特有的西里尔字符集)、cp1252(Windows特有的西欧字符集)、EUC-JP(日文)、GB2312(简体中文)、ISO-8859-1(西欧,Latin-1)、ISO-8859-15(西欧,Latin-9)、KOI8-R(俄语)、Shift-JIS(日文)、UTF-8(ASCII兼容的多自己8编码)

没有更多推荐了,返回首页