一、trim()函数
该函数用于去除字符串首尾空格和特殊字符,并返回去掉空格和特殊字符后的字符串。
语法格式:string trim(string str,[string charlist]);
str 是要操作的字符串对象,
charlist 是可选参数,指定需要从字符串中删除哪些字符,如果不设置该参数,则所有的可选字符都将被删除。
charlist 除了下面的可选值外,也可以提供去除的特殊字符。
\0:null,空值
\t:tab,制表符
\n:换行符
\x0B:垂直制表符
\r:回车符
“ ”:空格
二、ltrim()函数
该函数用于去除字符串左边的空格和特殊字符。
语法格式:string ltrim(string str,[string charlist]);
参数说明和trim() 类似。
三、rtrim()函数
该函数用于去除字符串右边的空格和特殊字符。
语法格式:string rtrim(string str,[string charlist]);
参数说明和trim() 类似。
四、手动转义,还原字符串数据
字符串可以使用单引号(‘),双引号(“”),界定符(<<<)3种方式定义。使用字符串如果存在与脚本混合的字符串,就必须对字符进行转义处理。需要在字符串前面使用转义符号(“\”)。
如:要表示单引号(‘),可以写成 (\’)。要表示字符串I’m,可以写成(I\’m)
手动转义的字符串可以应用addcslashes()函数进行还原。
五、自动转义,还原字符串数据
addslashes() 函数用来为字符串str 加入反斜线“\”
语法格式:string ltrim(string str,[string charlist]);
stripslashes() 函数用来将使用过addslashes()函数转义后的字符串str还原。
语法格式:string stripslashes(string str);
addcslashes() 函数实现转义中字符串中的字符,也就是在指定的字符charlist前加上反斜杠“\”
语法格式:string addcslashes(string str,string charlist);
参数str是将要操作的字符串,参数charlist指定在字符串中哪些字符前加上反斜杠“\”。如果包含了\n、\r等字符,将以C语言风格转换,而其他非字母数字且ascii 码低于32或者高于126的字符均被转换为八进制表示。还有设置参数charlist的范围的时候,需要明确在开始和结束范围内的字符串。
stripcslashes() 函数用来将使用过 addcslashes()函数转义后的字符串str还原。
语法格式:string stripcslashes(string str);
在缓存文件中,一般对缓存数据的值采用 addcslashes()函数进行指定范围的转义。
六、strlen()函数
该函数用来获取/检测字符串的长度。
语法格式:string rtrim(string str,[string charlist]);
汉字占两个字符,数字、英文、小数点、下划线和空格占一个字符。
七、substr()函数
该 函数用来截取指定字符串中指定长度的字符
语法格式:string substr(string str,int start,[int length]);
str:指定字符串对象
start:指定开始截取字符串的位置,如果为负数,则从字符串的末尾开始截取
length:可选参数,指定截取字符串的个数,如果为负数,则表示取到倒数第length个字符。
注意:start 指定位置是从0开始计算的,也就是字符串中的第一个字符的位置表示为0。
注意:substr()函数在截取中文字符串时候,如果截取的字符串个数是奇数的时候,那么会导致截取的中文字符串出现乱码,这是因为一个中文字符是由两个字节组成的。所以substr()函数适用于对英文字符串的截取,想要对中文字符串进行截取,避免出现乱码,最好的办法就是应用substr()编写一个自定义函数。
八、比较字符串
1、按字节进行字符串的比较
strcmp()函数:区分字符的大小写的比较
strcasecmp() 函数:不区分字符的大小写得比较
语法格式:string addslashes(string str);
参数str1和str2是要比较的两个字符串,如果相等返回值0。如果str1大于str2返回值大于0。如果str1小于str2返回值小于0
2、按自然排序法进行字符串的比较
strnatcmp() 函数就是按照自然排序法进行字符串比较,自然排序法就是比较字符串中的数字部分,将字符串中的数字按照大小进行比较。
语法格式:string stripslashes(string str);
参数str1和str2是要比较的两个字符串,如果相等返回值0。如果str1大于str2返回值大于0。如果str1小于str2返回值小于0
注意:(不可思议,待确认)在自然运算法则中,2比10小,而在计算机序列中,10比2小,因为“10”中的第一个数字是“1”,它小于2
按照自然排序法进行比较,还可以使用区分大小写的的strnatcasecmp()函数。
3、指定从源字符串的位置开始比较
strncmp()函数用来比较字符串中的前n个字符。
语法格式:string addcslashes(string str,string charlist);
参数str1和str2是要比较的两个字符串,len 是 必选参数,指定每个字符串中参与比较字符的数量,如果相等返回值0。如果str1大于str2返回值大于0。如果str1小于str2返回值小于0
九、检索字符串
1、strstr()函数查找指定的关键字
该函数是获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。如果执行成功,则返回获取的子字符串(存在相匹配的字符),如果失败则返回false。
语法格式:string strstr(string haystack,string needle);
haystack 参数是必要参数,指定的是从哪个字符串中进行搜索
needle 参数是必要参数,指定要搜索的对象。如果参数是一个数值,那么将搜索与这个数值的ascii值相匹配的字符
<?php
$str1 = “/upload/image/图片.jpg”;
echo strstr($str1,”.”);
?>
输出结果:.jpg
strchr()函数和它的意思是相反的,该函数是从字符串后序的位置开始检索子串
2、使用substr_count()函数检索子串出现的次数
语法格式:string stripcslashes(string str);
参数 haystack 是指定的字符串,参数 needle 是指定的字符。
<?php
$str1 = “今天是2021年1月28日星期四”;
echo substr_count($str1,”是”);
?>
输出结果:1
检索子串出现的次数一般常用于搜索引擎中,针对字串在字符串中出现的次数进行统计,便于用户第一时间掌握子串在字符串中出现的次数。
十、替换字符串
1、str_ireplace()函数
该函数是使用新的字符串(子串)替换原始字符串中被指定要替换的字符串。
语法格式:string ltrim(string str,[string charlist]);
将所有在参数subject 中出现的参数search以参数replace取代,参数count表示取代字符串执行的次数。
search:必选参数,指定需要查找的字符串
replace:必选参数,指定替换的值
Subject:必选参数,指定查找的范围
Count:可选参数,获取执行替换的次数
该函数执行替换的操作时候不区分大小写,如果需要对大小写进行区分,可以使用str_replace()函数。
该函数常用到搜索引擎的关键字处理中,可以对使用字符串替换技术将搜索到的字符串中的关键字替换颜色,比如关键字描红,方便用户查看搜索结果。
<?php
$str1 = “今天是2021年1月28日星期四”;
$str2 = “星期四”;
echo str_ireplace($str2,”<font color=’red’>”.str2.” </font> ”,$str1);
?>
运行结果:
今天是2021年1月28日星期四 //星期四 是红色的
2、substr_replace()函数
该函数是对指定字符串中的部分字符串进行替换。
语法格式:strIng substr_replace(string str,string repl,int start,[int length]);
Str:指定要操作的原始字符串
Repl:指定替换后的新字符串
Start:指定替换字符串的开始位置。正数表示起始位置从字符串开头开始,负数表示起始位置从字符串的结尾开始,0表示起始位置字串的第一个字符
Length:可选参数。指定替换的字符串长度。默认是整个字符串。正数表示起始位置从字符串开头开始,负数表示起始位置从字符串的结尾开始,0表示插入而非替代
注意:如果参数start 设置为负数,而参数length数值小于或者等于start数值,那么length的值自动为0。
<?php
$str1 = “今天是2021年1月27日星期三”;
$str2 = “昨天”;
echo substr_replace($str1,$str2,0);
?>
运行结果:
昨天是2021年1月27日星期三
十一、格式化字符串
格式化可以是字符串的格式化和数字字符串的格式化。
数字字符串的格式化:
string number_format(float number,[int num_decimal_places],[string dec_seperator,string thousands_separator]);
该函数的参数可以是一个,两个或者四个参数,但不能是三个参数。
如果有一个参数number,number会被格式化成舍去小数点后的值,且第3个数字会以逗号(,)来隔开。
如果有两个参数,number会被格式化到小数点第num_decimal_places位,且每3位数字会以逗号(,)来隔开。
如果有四个参数,number会被格式化到小数点第num_decimal_places位,dec_seperator 用来替代小数点(.),thousands_separator 用来替代第3位数字隔开的逗号(,)
<?php
$num = 2158.85;
echo number_format($num);
echo “<br/>”;
echo number_format($num,2);
echo “<br/>”;
$num 2= 15865464147.545642187;
echo number_format($num2,2,’.’,’#’);
?>
运行结果:
2,158
2,158.96
15#865#464#147.54
十二、explode() 分割字符串
该函数按照指定的规则对一个字符串进行分割,返回值为数组
语法格式:array explode(string separator,string str,[int limit]);
separator:必要参数,指定分割的字符串,如果是空字符串(“”),将返回false,如果所包含的值在str中找不到,那么将返回 包含str单个元素的数组
str:必要参数,指定要进行分割的字符串
limit:可选参数。如果设置了该参数,将返回的数组包含最多limit个元素,而最后的元素将包含str的剩余部分。如果参数是负数,则返回除了最后的-limit个元素外的所有元素。
<?php
$str = “今天是@2021年1月28日@星期四”;
$str_array = explode($str);
print_r($str_array);
?>
运行结果:
Array( [0] =>今天是 [1] =>2021年1月28日 [2] => 星期四 );
十三、implode 合成字符串
该函数可以将数组的内容组合成一个新的字符串
语法格式:string implode(string glue,array pieces);
参数 glue 是字符串类型,指定分割符,参数pieces 是数组类型,指定要被合并的数组。
<?php
$str = “今天是@2021年1月28日@星期四”;
$str_array = explode($str);
$new_str = implode(“#”,$str_array);
echo $new_str;
?>
运行结果:
今天是#2021年1月28日#星期四
明天我们来看看正则表达式的简单使用