首页 > 编程笔记 > PHP笔记 阅读:1

PHP常用字符串函数(附带实例)

在开发程序时,经常会涉及对字符串的处理。例如,获取用户名称的首字母、判断用户输入数据的长度等。为此,PHP 提供了字符串函数,以满足不同的开发需求。

PHP 中,常用的字符串函数如下表所示:

表:常用的字符串函数
函数 功能描述
strlen(string $string) 获取字符串的长度
strpos(string $haystack, string $needle, int $offset = 0) 获取指定字符串在目标字符串中首次出现的位置
strrpos(string $haystack, string $needle, int $offset = 0) 获取指定字符串在目标字符串中最后一次出现的位置
str_replace(string $search, string $replace, string $subject, int $count) 对字符串中的某些字符进行替换
substr(string $string, int $start, int $length = null) 获取字符串的子串
explode(string $separator, string $string, int $limit = PHP_INT_MAX) 使用指定的分隔符将目标字符串分割,分割结果是数组
implode(string $separator, array $array) 使用指定的连接符将数组中的元素拼接成字符串
trim(string $string, string $characters) 去除字符串首尾处的空白字符(或指定的字符串)
str_repeat(string $string, int $times) 重复字符串
strcmp(string $string1, string $string2) 比较两个字符串的大小

下面对 strlen()、substr()、str_replace() 和 strcmp() 函数进行详细讲解。

PHP strlen()函数

strlen() 函数用于获取字符串的长度,该函数的返回值类型是整型。在计算长度时,一个英文字符、一个空格的长度都是 1;中文字符的长度取决于字符集,在 UTF-8 字符集中一个中文字符的长度为 3,在 GBK 字符集中一个中文字符的长度为 2。

下面演示针对 UTF-8 字符集 strlen() 函数的使用方法,示例如下:
echo strlen('abc');        // 输出结果:3
echo strlen('中国');       // 输出结果:6
echo strlen('P H P');      // 输出结果:5
从上述示例代码的输出结果可以看出,字符串 "abc" 的长度为 3,字符串 "中国" 的长度为 6,字符串 "P H P" 的长度为 5。

PHP substr() 函数

substr() 函数用于获取字符串的子串,该函数的第 1 个参数是待处理的字符串;第 2 个参数是字符串开始截取的位置;第 3 个参数是截取字符串的长度。

substr() 函数的第 2 个参数和第 3 个参数的使用说明如下:
substr() 函数的使用示例如下:
echo substr('welcome', 3);        // 输出结果:come
echo substr('welcome', 0, 2);     // 输出结果:we
echo substr('welcome', 3, -1);    // 输出结果:com
echo substr('welcome', -4, -1);   // 输出结果:com
从上述代码可以看出,substr() 函数的返回值类型是字符串型。

PHP str_replace()函数

str_replace() 函数用于对字符串中的字符进行替换操作,第 1 个参数表示目标字符串;第 2 个参数表示替换字符串;第 3 个参数表示执行替换的字符串;第 4 个参数是可选的,用于保存字符串被替换的次数。

str_replace() 函数的使用示例如下:
echo str_replace('e', 'E', 'welcome', $count);  // 输出结果:wElcomE
echo $count;                                    // 输出结果:2
在上述示例代码中,输出变量 $count 的值为 2,说明字符串被替换了 2 次。

PHP strcmp()函数

strcmp() 函数用于比较两个字符串,根据字符的 ASCII 值进行比较。该函数的两个参数是待比较的字符串,该函数的返回值有 -1、0、1,具体介绍如下:
strcmp() 函数的使用示例如下:
print_r(strcmp('A', 'a'));   // 输出结果:-1
print_r(strcmp('A', 'A'));   // 输出结果:0
print_r(strcmp('a', 'A'));   // 输出结果:1
在上述示例代码中,字符“A”的 ASCII 值为 65,字符“a”的 ASCII 值为 97,字符“A”和“a”的比较结果为 -1。字符“A”和“A”的比较结果为 0,字符“a”和“A”的比较结果为 1。

相关文章