字符串在PHP中使用的非常频繁,操作字符串的函数也非常多,这里总结一些常用的字符串处理函数,以便复习查阅。
strlen()
获取字符串长度
int strlen ( string $string )
返回给定的字符串 string 的长度。
参数
string 需要计算长度的字符串。
返回值
成功则返回字符串 string 的长度;如果 string 为空,则返回 0。
substr()
返回字符串的子字符串
string subset(string $string, int $start [, int $lenght])
参数
string 输入字符串,必须至少一个字符
start 如果 start 是非负数,返回的字符串将从 string 的 start 位置开始,从 0 开始计算。例如,在字符串 "abcdef" 中,在位置 0 的字符是 "a",位置 2 的字符串是 "c" 等等。如果 start 是负数,返回的字符串将从 string 结尾处向前数第 start 个字符开始。如果 string 的长度小于 start,将返回 FALSE。
length 如果提供了正数的 length,返回的字符串将从 start 处开始最多包括 length 个字符(取决于 string 的长度)。如果提供了负数的 length,那么 string 末尾处的许多字符将会被漏掉(若 start 是负数则从字符串尾部算起)。如果 start 不在这段文本中,那么将返回一个空字符串。如果提供了值为 0,FALSE 或 NULL 的 length,那么将返回一个空字符串。如果没有提供 length,返回的子字符串将从 start 位置开始直到字符串结尾。
返回值
返回提取的子字符串, 或者在失败时返回 FALSE。
trim()
去除字符串首尾处的空白字符或者其他字符
string trim ( string $str [, string $charlist = " \t\n\r\0\x0B" ] )
此函数返回字符串 str 去除首尾空白字符后的结果。如果不指定第二个参数,trim() 将去除这些字符:
" " (ASCII 32 (0x20)),普通空格符。
"\t" (ASCII 9 (0x09)),制表符。
"\n" (ASCII 10 (0x0A)),换行符。
"\r" (ASCII 13 (0x0D)),回车符。
"\0" (ASCII 0 (0x00)),空字节符。
"\x0B" (ASCII 11 (0x0B)),垂直制表符。
参数
str 待处理的字符串。
charlist 可选参数,过滤字符也可由 charlist 参数指定。一般要列出所有希望过滤的字符,也可以使用 ".." 列出一个字符范围。
输出结果:
string(32) " These are a few words :) ... "
string(16) " Example string
"
string(11) "Hello World"
string(28) "These are a few words :) ..."
string(24) "These are a few words :)"
string(5) "o Wor"
string(14) "Example string"
返回值
过滤后的字符串。
strtolower()/strtoupper()
将字符串转化为小写/大写
string strtolower ( string $string )
string strtoupper ( string $string )
将 string 中所有的字母字符转换为小写/大写并返回。
参数
string 输入字符串。
返回值
返回转换后的小写字符串。
explode()
使用一个字符串分割另一个字符串
array explode ( string $delimiter , string $string [, int $limit ] )
此函数返回由字符串组成的数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。
参数
delimiter 边界上的分隔字符。
string 输入的字符串。
limit 如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。如果 limit 是 0,则会被当做 1。
返回值
此函数返回由字符串组成的 array,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。如果 delimiter 为空字符串(""),explode() 将返回 FALSE。 如果 delimiter 所包含的值在 string 中找不到,并且使用了负数的 limit , 那么会返回空的 array, 否则返回包含 string 单个元素的数组。
strpos()
查找字符串首次出现的位置
mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )
返回 needle 在 haystack 中首次出现的数字位置。
参数
haystack 在该字符串中进行查找。
needle 如果 needle 不是一个字符串,那么它将被转换为整型并被视为字符的顺序值。
offset 如果提供了此参数,搜索会从字符串该字符数的起始位置开始统计。和 strrpos()、 strripos()不一样,这个偏移量不能是负数。
返回值
返回 needle 存在于 haystack 字符串起始的位置(独立于 offset)。同时注意字符串位置是从0开始,而不是从1开始的。如果没找到 needle,将返回 FALSE。
str_split
将字符串转换为数组
array str_split ( string $string [, int $split_length = 1 ] )
将一个字符串转换为数组。
参数
string 输入字符串。
split_length 每一段的长度。
输出结果:
Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => F
[7] => r
[8] => i
[9] => e
[10] => n
[11] => d
)
Array
(
[0] => Hel
[1] => lo
[2] => Fri
[3] => end
)
返回值
如果指定了可选的 split_length 参数,返回数组中的每个元素均为一个长度为 split_length 的字符块,否则每个字符块为单个字符。如果 split_length 小于 1,返回 FALSE。如果 split_length 参数超过了 string 超过了字符串 string 的长度,整个字符串将作为数组仅有的一个元素返回。
md5
计算字符串的 MD5 散列值
string md5 ( string $str [, bool $raw_output = false ] )
使用RSA 数据安全公司的 MD5 报文算法计算 str 的 MD5 散列值。
参数
str 原始字符串。
raw_output 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。
返回值
以 32 字符十六进制数字形式返回散列值。
sha1
计算字符串的 sha1 散列值
string sha1 ( string $str [, bool $raw_output = false ] )
利用美国安全散列算法 1 计算字符串的 sha1 散列值。
参数
str 输入字符串。
raw_output 如果可选的 raw_output 参数被设置为 TRUE,那么 sha1 摘要将以 20 字符长度的原始格式返回,否则返回值是一个 40 字符长度的十六进制数字。
返回值
返回 sha1 散列值字符串。