使用 str_starts_with() 和 str_ends_with() 函数可以分别判断字符串是否以指定内容开头或结尾。这两个函数在 php 8.0 及以上版本中可用,直接返回布尔值,无需正则表达式或手动截取子串。

str_starts_with() 如何匹配前缀
str_starts_with() 接收两个参数:待检测的字符串和要查找的前缀。如果字符串以该前缀开始,返回 true,否则返回 false。注意前缀区分大小写。
<?php
$subject = "Hello World";
$prefix = "Hello";
if (str_starts_with($subject, $prefix)) {
echo "Starts with prefix.";
} else {
echo "Does not start with prefix.";
}
// Output: Starts with prefix.运行上述代码会输出 Starts with prefix.。如果将 $prefix 改为 hello(小写),则返回 false,因为该函数是严格区分大小写的。
str_ends_with() 如何匹配后缀
str_ends_with() 同样接收两个参数:待检测的字符串和要查找的后缀。如果字符串以该后缀结束,返回 true,否则返回 false。与开头匹配一样,它也区分大小写。
立即学习“PHP免费学习笔记(深入)”;
<?php
$subject = "file.txt";
$suffix = ".txt";
if (str_ends_with($subject, $suffix)) {
echo "Ends with suffix.";
} else {
echo "Does not end with suffix.";
}
// Output: Ends with suffix.运行上述代码会输出 Ends with suffix.。如果将 $suffix 改为 .TXT,则返回 false。这两个函数在处理文件扩展名检查、URL 路径验证等场景时非常高效且易读。
PHP 7.x 及以下版本的替代方案
对于低于 8.0 的 PHP 版本,没有内置的这两个函数。可以使用 substr() 结合比较运算符来实现相同的功能。例如,判断开头可以使用 substr($string, 0, strlen($prefix)) === $prefix,判断结尾可以使用 substr($string, -strlen($suffix)) === $suffix。虽然功能相同,但代码可读性不如 PHP 8+ 的内置函数。



















