php 中的 startsWith() 和 endsWith() 函数
如何编写两个函数,如果字符串以指定的字符/字符串开头或以它结尾,则返回?
例如:
$str = '|apples}';
echo startsWith($str, '|'); //Returns true
echo endsWith($str, '}'); //Returns true
如何编写两个函数,如果字符串以指定的字符/字符串开头或以它结尾,则返回?
例如:
$str = '|apples}';
echo startsWith($str, '|'); //Returns true
echo endsWith($str, '}'); //Returns true
从 PHP 8.0 开始,您可以使用
str_starts_with
手动和
str_ends_with
手动
echo str_starts_with($str, '|');
function startsWith( $haystack, $needle ) {
$length = strlen( $needle );
return substr( $haystack, 0, $length ) === $needle;
}
function endsWith( $haystack, $needle ) {
$length = strlen( $needle );
if( !$length ) {
return true;
}
return substr( $haystack, -$length ) === $needle;
}
您可以使用substr_compare
函数来检查“开始于”和“结束于”:
function startsWith($haystack, $needle) {
return substr_compare($haystack, $needle, 0, strlen($needle)) === 0;
}
function endsWith($haystack, $needle) {
return substr_compare($haystack, $needle, -strlen($needle)) === 0;
}
这应该是 PHP 7(基准测试脚本)上最快的解决方案之一。针对 8KB 干草堆、各种长度的针头以及完整、部分和无匹配的案例进行了测试。strncmp
对于开始使用是一个更快的触摸,但它不能检查结束结束。