Contents
去空格
- trim()函数去掉头尾两边的空格。
- ltrim()函数去掉开始的空格。
- rtrim()函数去掉结尾的空格。
格式化字符串
在字符串所有新行之前插入 HTML 换行标记
1
string nl2br ( string $string [, bool $is_xhtml = true ] )
为打印输出而格式化字符串
1
2string sprintf(string format[,mixed args..]);
void printf(string format[,mixed args...]);format的类型:
- % - 所有转换类型以%开始
- b - 解释为整数并作为二进制数输出
- c - 解释为整数并作为字符输出
- d - 解释为整数并作为小数输出
- u - 解释为整数并作为非指定小数输出
- f - 解释为双精度并作为浮点数输出
- g - shorter of %e and %f.
- G - shorter of %E and %f.
- o - 解释为整数并作为八进制数输出
- s - 解释为字符串并作为字符串输出
- x - 解释为整数并作为带有小写字母a-f的十六进制数输出
- X - 解释为整数并作为带有小写字母A-F的十六进制数输出
改变字符串中的字符大小写
- 将字符转换为大写:strtoupper()
1
2$str = "i am a boy";
echo strtoupper($str); - 将字符转换为小写 :strtolower()
1
2$str = "I Am A Boy";
echo strtolower($str); - 如果第一个字符是字母,就转换成大写:ucfirst()
1
2$str = "i am a boy";
echo ucfirst($str); - 将字符串中每个单词的第一个字母转成大写:ucwords()
1
2$str = "i am a boy";
echo ucwords($str);
转义字符串
addslashes()函数就是把“转换成\”,或者把\转成双斜杠\等等之类的操作。
1 | $str = '"i am a [\] boy."'; |
输出:"i am a [\] boy."
addslashes()函数相反的函数就是stripslashes()。
编码字符串
htmlspecialchars()函数把&,<,>,“等等,编码成浏览器不能解释的字符。
用字符串函数连接和分隔字符串
分隔字符串:explode()
1
array explode(string separator,string input[,int limit]);
limit
如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。
如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。
如果 limit 是 0,则会被当做 1
1
2
3
4
5$str = "1,2,3,4,5";
$arr = explode(',',$str);
foreach($arr as $v){
echo $v.'<br />';
}既然有分隔就会有整合。不错,implode()和join()函数实现就是和explode()相反的操作。
strtok
1
2string strtok ( string $str , string $token )
string strtok ( string $token )strtok() 将字符串 str 分割为若干子字符串,每个子字符串以 token 中的字符分割。这也就意味着,如果有个字符串是 “This is an example string”,你可以使用空格字符将这句话分割成独立的单词。
注意仅第一次调用 strtok 函数时使用 string 参数。后来每次调用 strtok,都将只使用 token 参数,因为它会记住它在字符串 string 中的位置。如果要重新开始分割一个新的字符串,你需要再次使用 string 来调用 strtok 函数,以便完成初始化工作。注意可以在 token 参数中使用多个字符。字符串将被该参数中任何一个字符分割。
substr
1
string substr ( string $string , int $start [, int $length ] )
start
如果 start 是非负数,返回的字符串将从 string 的 start 位置开始,从 0 开始计算。例如,在字符串 “abcdef” 中,在位置 0 的字符是 “a”,位置 2 的字符串是 “c” 等等。
如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。
如果 string 的长度小于或等于 start,将返回 FALSE。
length
如果提供了正数的 length,返回的字符串将从 start 处开始最多包括 length 个字符(取决于 string 的长度)。
如果提供了负数的 length(就是到倒数第length个字符),那么 string 末尾处的许多字符将会被漏掉(若 start 是负数则从字符串尾部算起)。如果 start 不在这段文本中,那么将返回一个空字符串。
如果提供了值为 0,FALSE 或 NULL 的 length,那么将返回一个空字符串。
如果没有提供 length,返回的子字符串将从 start 位置开始直到字符串结尾。
1
2
3
4
5
6<?php
$rest = substr("abcdef", 0, -1); // 返回 "abcde"
$rest = substr("abcdef", 2, -1); // 返回 "cde"
$rest = substr("abcdef", 4, -4); // 返回 ""
$rest = substr("abcdef", -3, -1); // 返回 "de"
字符串比较
- 字符串排序 如果两个字符串相等,返回0;如果按字典顺序str1在str2后面就返回一个正数,反之。这个函数是区分大小写的。strcasecmp()函数除了不区分大小写之外,其他和strcmp()函数一样。而strnatcmp()则是按照人们习惯的顺序进行排序。它也不区分大小写。
1
int strcmp(string str1,string str2);
返回-1,说明12比2大。1
2
3$str1 = "2";
$str2 = "12";
echo strnatcmp($str1,$str2); - 获取字符串长度
strlen(“hello”),输出结果为5。
使用字符串函数匹配和替换子字符串
在字符串中查找字符串:strstr(),strchr(),strrchr()和stristr()
1
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。该函数区分大小写。如果想要不区分大小写,请使用 stristr()。如果你仅仅想确定 needle 是否存在于 haystack 中,请使用速度更快、耗费内存更少的 strpos() 函数。
- strchr — 别名 strstr()
- strrchr — 查找指定字符在字符串中的最后一次出现
- stristr — strstr() 函数的忽略大小写版本
查找字符串的位置:strpos(),strrpos()
1
int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
返回 needle 在 haystack 中首次出现的数字位置。与 strrpos() 不同,在 PHP 5 之前,该函数可以使用一个完整字符串作为 needle,并且整个字符串都将被使用。
strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
替换子字符串:str_replace(),substr_replace()
- mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
使用replace替换subject中的全部search。count 是要执行替换操作的次数 - mixed substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] )
substr_replace() 在字符串 string 的副本中将由 start 和可选的 length 参数限定的子字符串使用 replacement 进行替换。
- mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
正则表达式
- [:alnum:] 数字字符
- [:alpha:] 字母字符
- [:blank:] 空格与定位字符
- [:cntrl:] 控制字符
- [:digit:] 数字字符
- [:graph:] 非空格字符
- [:lower:] 小写字母字符
- [:print:] 可显示的字符
- [:punct:] 标点符号字符
- [:space:] 空白字符
- [:upper:] 大些字母字符
- [:xdigit:] 十六进制数字