PHP 字符串相关操作方法
- 查找字符位置
- strlen() 获取字符串长度
- mb_strlen() 获取中文等字符串长度
- strpos() 返回字符串在另一字符串中第一次出现的位置(大小写敏感)。
- stripos() 返回字符串在另一字符串中第一次出现的位置(大小写不敏感)。
- strrpos() 查找字符串在另一字符串中最后一次出现的位置(区分大小写)。
- strripos() 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)。
- strstr() 搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。(区分大小写)
- stristr() 搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。(不区分大小写)
- substr() 函数返回字符串的一部分
- mb_substr() 函数返回中文字符串的一部分
- substr_count() 计算子串在字符串中出现的次数。
- substr_replace() 把字符串的一部分替换为另一个字符串。
- 数组字符串转换
- 大小写转换
- 清除空格或指定字符
- 加密
- 字符串替换
- 其他
并置运算符
并置运算符 (.) 用于把两个字符串值连接起来。
$a = 'hello';$b = 'world!'echo $a.' '.$b;// hello world
查找字符位置
strlen() 获取字符串长度
$a = 'hello';echo strlen($a);// 5
mb_strlen() 获取中文等字符串长度
与 strlen 不同的时,它可以通过设置字符编码从而返回对应的字符数,很好的处理了中文字符串的长度问题。
使用 mb_strlen 要开启 mbstring 扩展。
语法
strlen(string[, string $encoding = mb_internal_encoding() ] ))
mb_internal_encoding() 用于设置/获取内部字符编码。
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
encoding | 可选。字符编码。如果省略,则使用内部字符编码。 |
$a = '你好';echo mb_strlen($a);// 2echo strlen($a);// 6
strpos() 返回字符串在另一字符串中第一次出现的位置(大小写敏感)。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
语法
strpos(string,find,start)
参数 | 描述 |
---|---|
string | 必需。规定被搜索的字符串。 |
find | 必需。规定要查找的字符。 |
start | 可选。规定开始搜索的位置。 |
$a = 'hello world!';echo strpos($a,'world');// 6
stripos() 返回字符串在另一字符串中第一次出现的位置(大小写不敏感)。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
语法
stripos(string,find,start)
参数 | 描述 |
---|---|
string | 必需。规定被搜索的字符串。 |
find | 必需。规定要查找的字符。 |
start | 可选。规定开始搜索的位置。 |
$a = 'hello world!';echo stripos($a,'World');// 6
strrpos() 查找字符串在另一字符串中最后一次出现的位置(区分大小写)。
如果在字符串中找到匹配,该函数会返回最后一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
语法
strrpos(string,find,start)
参数 | 描述 |
---|---|
string | 必需。规定被搜索的字符串。 |
find | 必需。规定要查找的字符。 |
start | 可选。规定开始搜索的位置。 |
$a = 'hello world!';echo strrpos($a,'world');// 6
strripos() 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)。
如果在字符串中找到匹配,该函数会返回最后一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
语法
strripos(string,find,start)
参数 | 描述 |
---|---|
string | 必需。规定被搜索的字符串。 |
find | 必需。规定要查找的字符。 |
start | 可选。规定开始搜索的位置。 |
$a = 'hello world!';echo strripos($a,'World');// 6
strstr() 搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。(区分大小写)
语法
strstr(string,search,before_search)
参数 | 描述 |
---|---|
string | 必需。规定被搜索的字符串。 |
search | 必需。规定要搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。 |
before_search | 可选。一个默认值为 “false” 的布尔值。如果设置为 “true”,它将返回 search 参数第一次出现之前的字符串部分。 |
$a = 'hello world!';echo strstr($a,'world');// world!
stristr() 搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。(不区分大小写)
语法
stristr(string,search,before_search)
参数 | 描述 |
---|---|
string | 必需。规定被搜索的字符串。 |
search | 必需。规定要搜索的字符串。如果该参数是数字,则搜索匹配该数字对应的 ASCII 值的字符。 |
before_search | 可选。一个默认值为 “false” 的布尔值。如果设置为 “true”,它将返回 search 参数第一次出现之前的字符串部分。 |
$a = 'hello world!';echo stristr($a,'World');// world!
substr() 函数返回字符串的一部分
注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。
语法
substr(string,start,length)
参数 | 描述 |
---|---|
string | 必需。规定要返回其中一部分的字符串。 |
start | 必需。规定在字符串的何处开始。 正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾的指定位置开始 0 - 在字符串中的第一个字符处开始 |
length | 可选。规定要返回的字符串长度。默认是直到字符串的结尾。 正数 - 从 start 参数所在的位置返回 负数 - 从字符串末端返回 |
echo substr("Hello world",6);// world
mb_substr() 函数返回中文字符串的一部分
注释:如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。
语法
mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] ) : string
参数 | 描述 |
---|---|
string | 必需。规定要返回其中一部分的字符串。 |
start | 必需。规定在字符串的何处开始。 正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾的指定位置开始 0 - 在字符串中的第一个字符处开始 |
length | 可选。规定要返回的字符串长度。默认是直到字符串的结尾。 正数 - 从 start 参数所在的位置返回 负数 - 从字符串末端返回 |
encoding | 可选。字符编码。如果省略,则使用内部字符编码。 |
echo mb_substr("世界你好", 0, 2);// 世界echo substr("世界你好", 0, 2);// �
substr_count() 计算子串在字符串中出现的次数。
注释:子串是区分大小写的。
注释:该函数不计数重叠的子串
注释:如果 start 参数加上 length 参数大于字符串长度,该函数则生成一个警告
substr_count(string,substring,start,length)
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
substring | 必需。规定要检索的字符串。 |
start | 可选。规定在字符串中何处开始搜索。 |
length | 可选。规定搜索的长度。 |
echo substr_count("Hello world. The world is nice","world");// 2
substr_replace() 把字符串的一部分替换为另一个字符串。
如果 start 参数是负数且 length 小于或者等于 start,则 length 为 0
substr_replace(string,replacement,start,length)
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
replacement | 必需。规定要插入的字符串。 |
start | 必需。规定在字符串的何处开始替换。 正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾的指定位置开始 0 - 在字符串中的第一个字符处开始 |
length | 可选。规定要替换多少个字符。默认是与字符串长度相同。 正数 - 被替换的字符串长度 负数 - 从字符串末端开始的被替换字符数 0 - 插入而非替换 |
echo substr_replace("Hello","world",0);// world
数组字符串转换
join() 数组转字符串
join() 函数是 implode() 函数的别名。
语法
join(separator,array)
参数 | 描述 |
---|---|
separator | 可选。规定数组元素之间放置的内容。默认是 “”(空字符串)。 |
array | 必需。要组合为字符串的数组。 |
$arr = array('Hello','World!','Beautiful','Day!');echo join(" ",$arr);// Hello World! Beautiful Day!
explode() 字符串切割为数组
语法
explode(separator,string,limit)
参数 | 描述 |
---|---|
separator | 必需。规定在哪里分割字符串。 |
string | 必需。要分割的字符串。 |
limit | 可选。规定所返回的数组元素的数目。 可能的值: 大于 0 - 返回包含最多 limit 个元素的数组 小于 0 - 返回包含除了最后的 -limit 个元素以外的所有元素的数组 0 - 会被当做 1, 返回包含一个元素的数组 |
$str = "1.2.3";print_r (explode(".",$str));// Array ( [0] => 1 [1] => 2 [2] => 3 )
大小写转换
lcfirst() 字符串首字符转换为小写
lcfirst() 函数把字符串中的首字符转换为小写。
echo lcfirst("Hello world!");// hello world!
ucfirst() 字符串首字符转换为大写
ucfirst() 函数把字符串中的首字符转换为大写。
echo ucfirst("hello world!");// Hello world!
ucwords() 每个单词的首字符转换为大写
ucwords() 函数把每个单词的首字符转换为大写。
echo ucwords("hello world!");// Hello World!
strtoupper() 把所有字符转换为大写
strtoupper() 函数把所有字符转换为大写。
echo strtoupper("hello world!");// HELLO WORLD!
strtolower() 把所有字符转换为小写
strtolower() 函数把所有字符转换为小写。
echo strtolower("HELLO WORLD!");// hello world!
清除空格或指定字符
注意此处是字符,只要左右包含预设值中的字符就会被删除
rtrim() 移除字符串右侧的空白字符或其他预定义字符
$str = "Hello World!";echo rtrim($str,"World!");// Hello (注意还有一个空格)
语法
rtrim(string,charlist)
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
charlist | 可选。规定从字符串中删除哪些字符。如果省略该参数,则移除下列所有字符: “\0” - NULL “\t” - 制表符 “\n” - 换行 “\x0B” - 垂直制表符 “\r” - 回车 " " - 空格 |
ltrim() 移除字符串左侧的空白字符或其他预定义字符
$str = "Hello World!";echo '-'. ltrim($str,"Hello");// - World!
语法
ltrim(string,charlist)
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
charlist | 可选。规定从字符串中删除哪些字符。如果省略该参数,则移除下列所有字符: “\0” - NULL “\t” - 制表符 “\n” - 换行 “\x0B” - 垂直制表符 “\r” - 回车 " " - 空格 |
trim() 移除字符串左右两侧的空白字符或其他预定义字符
$str = "Hello World!";echo trim($str,"Hed!");// llo Worl
语法
trim(string,charlist)
参数 | 描述 |
---|---|
string | 必需。规定要检查的字符串。 |
charlist | 可选。规定从字符串中删除哪些字符。如果省略该参数,则移除下列所有字符: “\0” - NULL “\t” - 制表符 “\n” - 换行 “\x0B” - 垂直制表符 “\r” - 回车 " " - 空格 |
加密
sha1() 计算字符串的 SHA-1 散列
$str = "Hello";echo sha1($str);// f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
语法
sha1(string,raw)
参数 | 描述 |
---|---|
string | 必需。规定要计算的字符串。 |
raw | 可选。规定十六进制或二进制输出格式: TRUE - 原始 20 字符二进制格式 FALSE - 默认。40 字符十六进制数 |
md5() 计算字符串的 MD5 散列
$str = "Hello";echo md5($str);// 8b1a9953c4611296a827abf8c47804d7
语法
md5(string,raw)
参数 | 描述 |
---|---|
string | 必需。规定要计算的字符串。 |
raw | 可选。规定十六进制或二进制输出格式: TRUE - 原始 16 字符二进制格式 FALSE - 默认。32 字符十六进制数 |
字符串替换
str_replace() 替换字符串中的一些字符(区分大小写)。
该函数必须遵循下列规则:
- 如果搜索的字符串是一个数组,那么它将返回一个数组。
- 如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换。
- 如果同时需要对某个数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余的元素将用空字符串进行替换。
- 如果是对一个数组进行查找,但只对一个字符串进行替换,那么替代字符串将对所有查找到的值起作用。
语法
str_replace(find,replace,string,count)
参数 | 描述 |
---|---|
find | 必需。规定要查找的值。 |
replace | 必需。规定替换 find 中的值的值。 |
string | 必需。规定被搜索的字符串。 |
count | 可选。一个变量,对替换数进行计数。 |
str_ireplace() 替换字符串中的一些字符(不区分大小写)。
该函数必须遵循下列规则:
- 如果搜索的字符串是一个数组,那么它将返回一个数组。
- 如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换。
- 如果同时需要对某个数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余的元素将用空字符串进行替换。
- 如果是对一个数组进行查找,但只对一个字符串进行替换,那么替代字符串将对所有查找到的值起作用。
语法
str_ireplace(find,replace,string,count)
参数 | 描述 |
---|---|
find | 必需。规定要查找的值。 |
replace | 必需。规定替换 find 中的值的值。 |
string | 必需。规定被搜索的字符串。 |
count | 可选。一个变量,对替换数进行计数。 |
其他
strrev() 反转字符串。
echo strrev("Hello World!");// !dlroW olleH
来源地址:https://blog.csdn.net/lhkuxia/article/details/128682391