php - 什么是 PHP 字符串是否以另一个字符串结尾的最有效测试?

标签 php string performance

测试字符串 $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/

相关文章:

c - 如何提高 64 位 C/intel 汇编程序的内存性能/数据局部性

c++ - 长数组性能问题

php - 如何从 Facebook 应用程序获取顶部 URL?

php - 使用PHP通过FTP下载文件夹

c++ - `std::string` 是否在内部将其字符存储为签名字符?

c - 将 C 字符串传递给返回 C 字符串指针的函数

javascript - 根据最大字符长度拆分字符串,但要考虑单词

java - 如何提高每 'n' 分钟运行一次的循环的性能

php - 如何向 Pinnacle 购物车添加新的支付网关

PHP 断开 HTTP 连接