测试字符串 $str
是否以子字符串 $test
结尾的标准 PHP 方法是:
$endsWith = substr( $str, -strlen( $test ) ) == $test
这是最快的方法吗?
最佳答案
阿萨夫所说的是正确的。 PHP 中有一个内置函数可以做到这一点。
substr_compare($str, $test, strlen($str)-strlen($test), strlen($test)) === 0;
如果 $test
比 $str
长,PHP 会给出警告,所以你需要先检查一下。
function endswith($string, $test) {
$strlen = strlen($string);
$testlen = strlen($test);
if ($testlen > $strlen) return false;
return substr_compare($string, $test, $strlen - $testlen, $testlen) === 0;
}
关于php - 什么是 PHP 字符串是否以另一个字符串结尾的最有效测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/619610/