PHP基础语法– 字符串处理 【七】

一:字符串格式化

1. 清理字符串中多余空格

chop()函数移处字符串后面多余的空白,包括新行。
ltrim()函数移除字符串起始处多余空白
rtrim():chop()的别名
trim():函数移除字符串两边多余的空白。

2. nl2br()函数将字符串作为输入参数,用xhtml中的</br>标记替代字符串的换行符。
echo nl2br(‘aaa\nbb’);

3. 将特殊字符转化为HTML等价形式。可以使用htmlentities()
和htmlspecialchars()。
如果想要去掉字符串中的HTML,可以使用strip_tags()函数

htmlentities():将所有的字符转化为HTML实体字符
//我们只要转特殊字符即可
htmlsepeialchars:

//有一段文字
$str = ‘<i>111</i>’;

echo $str;正常输出到浏览器会将i解析成HTML标签,字符串会斜体

但是

htmlsepeialchars($str) 。 处理后浏览器将会将特殊字符转化为HTML字符实体。

4. 对于字符串来说,某些字符肯定是有效的。但是当数据插入到数据库中的时候可能会引起一些问题。因为数据库会将这些字符解析成为控制符。这些有问题的字符就是引号(单双引号),反斜杠(\)和Null字符

PHP提供了两个专门用于转义字符串的函数。可以将任何字符串写到数据库之前,应该使用addslashes()将他们重新格式化。
在调用addslashes()后,所有引号都加了斜杠。
stripslashes()函数去掉了这些斜杠。

5. 可以重新格式化字符串中的字母大小写。
strtoupper() 将字符串转换为大写。
strtolower() 函数将字符串转换为小写。
ucfirst() 函数将第一个字母转换为大写。
ucwords() 将每个单词第一个字母转换为大写。

6. str_pad() : 将字符串用指定个数的字符填充字符串(默认空格填充)。

二: 操作字符串

使用函数 explode() implode() 和join()

1. explode()函数:使用一个字符串分割另一个字符串

array explode(string separator,string string);

$str = ‘aaabbcc.com@gmail.com’;
$arr = explode(‘@’,$str)
print_r($arr); array(‘yc6-.com’,’gmail.com’ )

2. implode(‘符号’,$arr);将数组用特定的字符组合成字符串
join() implode()的别名
$arr = array(‘Lee’,’Wq’);
$str = implode(‘@’,$arr) //Lee@Wq

3. strtok()函数
一次只从字符串中取出一些片段(称为令牌)。
对于一次从字符串中取出一个单词的处理来说,strtok()比explode()函数的效果更好。

$str = ‘I,will.be#back’;

4. substr()函数
substr():允许我们访问一个字符串给定起点和重点的字符串。这个函数并不适用于我们的例子中。但是当需要得到某个固定字符串中的一部分时,他会非常有用。

//从位置1开始,取3个字符串
echo substr(‘acdefd’,1,3)

5. str_split():分解字符串。返回一个数组。其中各个数组元素分别是字符串参数中的一个字符串。(将字符串中每个字符拆分出来,作为数组的一个单元。)

6. strrev():逆置字符串。

三: 字符串比较

到目前为止,我们已经使用过 ==来比较两个字符串是否相等。
使用PHP可以进行一些更复杂的比较。这些比较分为两类:部分匹配和其他情况。

字符串排序
1. strccmp()
strcasecmp()
strnatcmp()

strccmp()
该函数需要两个进行比较的参数字符串。如果这两个字符串相等,该函数返回0.如果按照字典顺序str1在str2后面(大于str2)就返回一个正数。如果str1小于str2就返回一个负数。这个函数是区分字符串大小写的。

strcasecmp()除了不区分大小写其他和strcmp()一样

strnatcmp()以及与之对应的不区分大小写的strnatcaspecmp()函数是在PHP4中新增的。这两个函数按“自然排序”比较字符串。所谓自然排序是按照人们习惯的顺序进行排序。

2. strspn():返回一个字符串中包含有另一个字符串中字符的第一部分的长度.
找出某个字符串落在另一个字符串遮罩的数目

echo strspan(‘gmail’,’aabbcc.com@gmail.com’); 5

3. strlen():测试字符串的长度。
如果传给他一个字符串,这个函数将返回字符串的穿度
echo strlen(‘hello’);5

4. 确定字符串出现的频率:
substr_count():返回一个字符串在另一个字符串中出现的次数。

echo substr_count(‘aabbc.com@gmail.com’,’c’)//3

四:查找替换字符串

通常我们需要检查一个更长的字符串中是否含有一个特定的子字符串。这种不分匹配通常比测试字符串的完全等价更有价值。

在字符串中查找字符串

1. strstr():在一个比较长的字符串中查找匹配的字符串或者字符。
如果找到则返回字符串,如果没有找到则返回false
注意: strchr()是strstr()的别名

strstr(string haystack,string needle):返回字符串中某个字符串开始处到结束的字符串。
从指定的字符串开始输出之后的字符串

echo stristr(‘aabb.com@gmail.com’,’@’); //@gmail.com

2. strstr()有两个变体:
第一个变体stristr()功能与strstr()一样只不过区别在于不区分字符大小写。
第二个变体strchr() strstr()的别名

3. strpos():查找字符串出现的位置。但是特返回的不是一个字符串。而是返回子字符串needle在字符串中haystack中最先出现的位置。
strps(string haystack,string needle);

echo strpos(‘aabb.com@gmail.com’,’c’);//1

4. strrpos()查找字符串最后出现的位置。

替换字符串

5. str_replace(string needle,string str,string haystack):字符串替换
needle:str中被替换的字符串
str : 代替needle的字符串

将字符串str带入haystack字符创中,将所有的needle置换为str

echo str_replace(‘Lee’,’Zhang’,’This is Lee’);//This is Zhang
6. str_ireplace():不区分大小写

7. substr_repalce(‘aabb.com@gmail.com’,’###’,0,5);
从第零个位置开始(参数3),取出5个来(参数4),将它替换成&&&(参数2)

五:中文处理

mb_strlen()对应函数为strlen()求字符串长度
$str = ‘我是武器’;//四个字符
strlen($str);//8个字符
mb_strlen($str,’utf-8′)//4个字符

mb_strstr()对应函数为strstr()求某字符串到结尾的字符。
mb_strops()对应函数为strops()求字符最先出现的位置。
mb_substr()对应的函数为substr()取出指定的字符串
mb_substr_count()对应的函数为substr_str()返回字符串出现的次数。

本文来自投稿,不代表微擎百科立场,如若转载,请注明出处:https://www.w7.wiki/develop/2481.html

发表评论

登录后才能评论