PHP学习之基础教程 (一) 字符串相关函数
(看到面试题有这个,在这里做一下笔记,放假了,要回家了,博客这两天先不更新呢,小程序的笔记不急呀,后面的内容我在思考怎么讲的清楚点,特别是令牌和微信支付)
十一种常用 字符串相关函数
1.explode()函数 (分隔)
开发过程中需要对字符串进行分隔,获取部分字符串
声明如下:
array explode(string $separator,string $str[,int $limit])
array | $separator | $str | $limit |
---|---|---|---|
数据类型 | 字符串的分隔符 | 要分隔的字符串 | (可选)最多包含的元素个数 |
limit为正数:返回的元素将最多包含limit个元素,其中最后的元素将包含$str的剩余部分
limit为负数:返回除了最后的limit个元素外的所以元素
limit为0:它会当做1
用代码试一下:
从左向右,从第一个“ ,” 开始截取
如果separator传入的字符串在str中不到,那么 explode画数将返回包合str单个元素的数组;
如果给参教separator传入空值,那么 explode()函数将返回 false
2.implode()函数 (拼接)
可以通过调用implode()函数实现字符数组的拼接功能
string implode(string $glue,array $arr)
array | $glue | $arr |
---|---|---|
数据类型 | 字符串的连接符 | 要连接的数组 |
用代码试一下:
3.strcmp()函数 (比较)
比较字符串大小
int strcmp(string $str1,string $str2)
(整型比较)
需要注意的是,在PHP中,每个字符都有对应的ASCII码值。
首先比较第一个字符的大小如果相等则继续比较第二个字符、如果第二个字符也相同,则继续比较第三个字符,以此类推,直到比较到有不相同的字符或者到字串的结尾オ结束比较,此时返回比较结果。
如果字符串str1和str2相等,则函数返画0;
如果小于,则函数返回值小于0的值;
如果大于,则函数返回大于0的值。
用代码试一下:
注意:strcmp()和“==”都可以比较
strcmp()相等时返回 0
双等号返回 true
4.str_replace()函数 (替换)
对字符串的字符进行替换
$str str_replace(string $search,sttring $replace,string $subject[, int $count])
$search | $replace | $subject | $count |
---|---|---|---|
目标值 | 替换值 | 需要被操作的字符串 | 目标值被替换的次数 |
注意:完成str_replace()函数调用后,该参数还可以在函数的外部直接被调用
用代码试一下:
5.substr()函數 (截取)
开发中需要截取字符串的一部分
(获取字符串的某个字串)
string substr ( string $str , int $start [, int $length ] )
$str | $start | length |
---|---|---|
待处理的字符串 | 此处开始截取 | 截取字串的长度 |
($length为空默认截取到字符串的末尾)
用代码试一下:
6.strten()函数 (测长)
统计字符串的长度,字符的个数
int strlen(string $str)
7.trim()函数 (滤白)
过滤字符串中的空白字符,如输入密码时的过滤空格
string trim(string $str[,string $charlist])
charlist是可选的,如果指定了 charlist指定的字符,若没有,则删除字符串中的空白字符
PHP中,常见空白字符:
1."\0" ASCII 0, NULL
2."\t" ASCII 9 , 制表符
3."\n" ASCII10,新行
4.“x0B” ASCII11,垂直制表符
5.“r” ASCI113,回车
6." " ASCII32,空格
8.strtoupper()函数 (换大)
把字符串换为大写
(相对 strtolower() 改成小写)
9.strstr()函数 (第一)
查找字符串的第一个匹配项
二进制安全
string strstr (string $haystack , mixed $needle [,bool $before_needle=FALSE ])
$haystack | $needle | $before_needle |
---|---|---|
输入的字符串 | 要查找的字符串 | 可选参数 |
注意:
此功能区分大小写。对于不区分大小写的搜索,请使用 stristr()。
10.strrchr()函数 (最后)
查找字符串中最后一个字符
string strrchr ( string $haystack ,mixed $needle )
$haystack | $needle |
---|---|
输入的字符串 | 要查找的字符串 |
注意:此功能是二进制安全的。
二进制安全:只关心二进制化的字符串,不关心具体格式.只会严格的按照二进制的数据存取.不会妄图已某种格式解析数据.有时候以错误的格式打开一个文件,会导致文件发生不可逆的损坏.而二进制安全就是说会避免这种损坏
11.strcoll()函数 (区比)
基于区域的字符串比较
strcoll ( string $str1 , string $str2 )
请注意,此比较区分大小写
如果str1小于, 则返回<0 str2;
如果str1大于 0则> 0 str2,
如果它们相等则为0
函数strcoll,它是非二进制安全,而strcmp则是二进制安全的
对比一下
(在火车上赶的)
真的很抱歉,水平有限,对于这些函数只能大致了解他们的功能,对于他们背后的意义和价值,以及他们之间的区别不能很好理解
所以建议大家最好还是对照PHP手册仔细看一看