📜  php 检查字符串是否以 - PHP (1)

📅  最后修改于: 2023-12-03 15:33:38.612000             🧑  作者: Mango

PHP检查字符串是否以指定字符开始或结束

在PHP开发中,有时需要判断一个字符串是否以指定字符开始或结束。这个功能可以通过一些内置函数来轻松实现。本文将对这些函数进行介绍,并提供代码示例。

方法一:substr

substr是PHP内置函数中的一个字符串函数,用于返回字符串中的一部分。通过指定开始位置和长度,可以截取原字符串中的一个子串。

要判断一个字符串是否以指定字符开始,只需要调用substr函数截取原字符串的开头,并和目标字符串进行比较即可。例如:

$string = 'PHP 检查字符串是否以 - PHP';
$prefix = 'PHP';
if (substr($string, 0, strlen($prefix)) === $prefix) {
    echo '字符串以 PHP 开头';
} else {
    echo '字符串不以 PHP 开头';
}

代码中,substr($string, 0, strlen($prefix))表示截取字符串$string的前strlen($prefix)个字符,即从开头截取与目标字符串相同长度的子串。然后使用===运算符比较两个字符串是否相同。如果相同,说明原字符串以目标字符串开头,否则不是。

要判断一个字符串是否以指定字符结尾,同样可以使用substr函数,只需要以相反的顺序截取长度相同的末尾子串,并与目标字符串比较即可。例如:

$string = 'PHP 检查字符串是否以 - PHP';
$suffix = 'PHP';
if (substr($string, -strlen($suffix)) === $suffix) {
    echo '字符串以 PHP 结尾';
} else {
    echo '字符串不以 PHP 结尾';
}

代码中,substr($string, -strlen($suffix))表示截取字符串$string的末尾与目标字符串相同长度的子串,-strlen($suffix)表示从末尾开始计算字符串长度。

方法二:mb_substr

如果字符串内容包含中文字符或其他多字节字符集,使用substr函数可能会出现乱码或不准确的问题。此时可以使用mb_substr函数替代substr函数,用法类似。例如:

$string = 'PHP 检查字符串是否以 - PHP';
$prefix = 'PHP';
if (mb_substr($string, 0, mb_strlen($prefix)) === $prefix) {
    echo '字符串以 PHP 开头';
} else {
    echo '字符串不以 PHP 开头';
}

mb_substr函数的第一个参数是要截取的字符串,第二个参数是开始位置,第三个参数是截取长度。mb_strlen函数用于计算字符串长度,支持多字节字符集。

要判断一个字符串是否以指定字符结尾,使用mb_substr函数同样可以解决多字节字符集问题,例如:

$string = 'PHP 检查字符串是否以 - PHP';
$suffix = 'PHP';
if (mb_substr($string, -mb_strlen($suffix)) === $suffix) {
    echo '字符串以 PHP 结尾';
} else {
    echo '字符串不以 PHP 结尾';
}
方法三:strpos和strrpos

除了使用substrmb_substr函数外,还有另一种判断字符串是否以指定字符开始或结束的方法,那就是使用strposstrrpos函数。其中,strpos函数用于查找一个字符串在另一个字符串中第一次出现的位置,strrpos则用于查找最后一次出现的位置。

要判断一个字符串是否以指定字符开始,可以使用strpos函数,查找目标字符串在原字符串中的位置是否为0:

$string = 'PHP 检查字符串是否以 - PHP';
$prefix = 'PHP';
if (strpos($string, $prefix) === 0) {
    echo '字符串以 PHP 开头';
} else {
    echo '字符串不以 PHP 开头';
}

上面的代码中,strpos($string, $prefix)表示查找原字符串中第一次出现目标字符串的位置,如果为0,则表示原字符串以目标字符串开头。

要判断一个字符串是否以指定字符结尾,则可以使用strrpos函数,查找目标字符串在原字符串中最后一次出现的位置,是否等于原字符串长度减去目标字符串长度:

$string = 'PHP 检查字符串是否以 - PHP';
$prefix = 'PHP';
if (strrpos($string, $prefix) === (strlen($string) - strlen($prefix))) {
    echo '字符串以 PHP 结尾';
} else {
    echo '字符串不以 PHP 结尾';
}

上面的代码中,(strlen($string) - strlen($prefix))表示原字符串长度减去目标字符串长度,即目标字符串最后一次出现的可能位置。

总结

本文介绍了PHP中几种常见的字符串函数,包括substrmb_substrstrposstrrpos,并提供了代码示例,用于检查字符串是否以指定字符开始或结束。开发者可以根据实际需要选择合适的函数来使用。