PHP 笔记——String 字符串
1. 定义
- 单引号括起来的字符串被原样输出。
- 双引号字符串中的变量被PHP解析为变量值。
2. 获取字符串长度
strlen(string $string): int
- 在utf-8下,汉字占3个字符,其它情况下2个字符
- 数字、英文、小数点、下划线和空格各占一个字符
3. 截取字符串
substr(string $str, int $start, int $length): string
mb_substr(string $str, int $start, int $length, string $encoding): string
- $encoding:设置字符串的编码格式
4. 比较字符串
4.1 按字节比较
strcmp(string $str1, string $str2): int // 区分大小写
strcasecmp(string $str1, string $str2): int //不区分大小写
4.2 按自然排序法比较
strnatcmp(string $str1, string $str2): int //区分大小写
strnatcasecmp(string $str1, string $str2): int //不区分大小写
自然排序法比较的是字符串的数字部分,将字符串中的数字按照大小进行排序。
4.3 按指定源字符串的位置比较
strncmp(string $str1, string $str2, int $len): int
比较字符串中的前n($len)个字符
4.4 返回值 int
返回值 | 说明 |
---|---|
0 | 字符串相等 |
1 | str1>str2 |
-1 | str1<str2 |
5. 检索字符串
5.1 搜索字符串在另一字符串中的第一次出现
用来获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。如果执行成功,则返回剩余字符串(存在相匹配的字符),否则返回 false。
正序开始检索
strstr(string $haystack, mixed $needle [, bool $before_needle]): string // 区分大小写
stristr(string $haystack, mixed $needle [, bool $before_needle]): string // 不区分大小写
后序开始检索
strrchr(string $haystack, mixed $needle): string // 区分大小写
5.2 检索子串在字符串中出现的次数
substr_count(string $haystack, string $needle): int
6. 替换字符串
str_replace(mixed $search, mixed $replace, mixed $subject, int $count): mixed // 区分大小写
str_ireplace(mixed $search, mixed $replace, mixed $subject, int $count): mixed // 不区分大小写
参数 | 说明 |
---|---|
mixed $search | 要查找的字符串 |
mixed $replace | 指定替换的值 |
mixed $subject | 指定查找范围 |
int $count | 获取执行替换的数量 |
substr_replace(mixed $string, mixed $replacement, mixed $start, mixed $length): mixed
参数 | 说明 |
---|---|
mixed $string | 要操作的原始字符串 |
mixed $replacement | 要替换后的新字符串 |
mixed $start | 要替换字符串开始的位置 |
mixed $length | 指定返回的字符串长度 正数:表示从开头覆盖 负数:表示从结尾保留 0:表示“插入”而非“替代” |
7. 去特殊字符
用于去除字符串开始位置和结束位置的空白字符
trim(string $str): string
用于去除字符串左边的空白字符或者指定字符串
ltrim(string $str, string $character_mask): string
用于去除字符串右边的空白字符或者指定字符串
rtrim(string $str, string $character_mask): string
8. 分割字符串
explode(string $delimiter, string $string): array
参数 | 说明 |
---|---|
$delimiter | 分割符 |
$string | 要被分割的字符串 |
strtok(string $str, string $token): string
strtok(string $token): string
第一次调用 strtok() 函数时使用了 $str 参数。在首次调用后,该函数仅需要 $token 参数
$first_token = strtok('some/thing', '/');
$second_token = strtok('/');
var_dump($first_token, $second_token);
运行结果:
string(4) "some" string(5) "thing"
9. 合成字符串
implode(string $glue, array $pieces): string
参数 | 说明 |
---|---|
$glue | 指定分割符 |
$pieces | 要被合成的数组 |