PHP 字符串相关常用操作方法

PHP 字符串相关操作方法

并置运算符

并置运算符 (.) 用于把两个字符串值连接起来。

$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);// 2
echo 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

猜你喜欢

转载自blog.csdn.net/lhkuxia/article/details/128682391