在开发程序时,经常会涉及对字符串的处理。例如,获取用户名称的首字母、判断用户输入数据的长度等。为此,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 个参数的使用说明如下:
- 第 2 个参数为负数 n 时,表示从待处理字符的结尾处向左数第 |n| 个字符开始。
- 省略第 3 个参数时,表示截取到字符串的结尾。
- 第 3 个参数为负数 n 时,表示从截取后的字符串的末尾处去掉 |n| 个字符。
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,具体介绍如下:
- 当第一个字符串小于第二个字符串时,返回结果为 -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。