编程 php strpos查找字符串性能对比

2024-11-19 08:15:16 +0800 CST views 2831

##strpos查找字符串性能对比
今天准备要做一个自动获取标签的功能,需要用到查找字符串的功能。于是对php的各个行数进行对比。使用tp5框架并且实际场景中测试
加载文件
strpos() 函数查找字符串在另一字符串中第一次出现的位置。
注释:strpos() 函数对大小写敏感。

	$haystack =[];
        for ($i=0; $i < 10000; $i++) { 
            $haystack[]=$i;
        }
        $tags=[];
        $str=strtolower($str);
        foreach($haystack  as $v){
            if(strstr($str,$v)){
                  $tags[]=$v;
            }
        }

10000次结果:运行时间 : 0.253014s [ 吞吐率:3.95req/s ] 内存消耗:2,133.81kb 文件加载:75
stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)。
注释:stripos() 函数是不区分大小写的。

代码同上 替换
stripos($str,$v)

10000次结果:运行时间 : 11.108635s [ 吞吐率:0.09req/s ] 内存消耗:2,157.81kb 文件加载:75

strrpos() 函数查找字符串在另一字符串中最后一次出现的位置。

注释:strrpos() 函数对大小写敏感。

代码同上 替换
strrpos($str,$v)

10000次结果:运行时间 : 0.336019s [ 吞吐率:2.98req/s ] 内存消耗:2,133.81kb 文件加载:75
strripos() - 查找字符串在另一字符串中最后一次出现的位置(不区分大小写)

代码同上 替换
strripos($str,$v)

10000次结果:运行时间 : 11.933682s [ 吞吐率:0.08req/s ] 内存消耗:2,157.81kb 文件加载:75
正则

preg_match("/{$v}/", $v)

10000次结果:运行时间 : 0.976056s [ 吞吐率:1.02req/s ] 内存消耗:2,249.89kb 文件加载:75
###最后决定用正则
最后代码如下:

preg_match("/{$v}/", $v)
复制全文 生成海报 PHP 性能优化 字符串处理 编程

推荐文章

Golang - 使用 GoFakeIt 生成 Mock 数据
2024-11-18 15:51:22 +0800 CST
用 Rust 玩转 Google Sheets API
2024-11-19 02:36:20 +0800 CST
rangeSlider进度条滑块
2024-11-19 06:49:50 +0800 CST
你可能不知道的 18 个前端技巧
2025-06-12 13:15:26 +0800 CST
一些实用的前端开发工具网站
2024-11-18 14:30:55 +0800 CST
WebSQL数据库:HTML5的非标准伴侣
2024-11-18 22:44:20 +0800 CST
使用 Vue3 和 Axios 实现 CRUD 操作
2024-11-19 01:57:50 +0800 CST
资源文档库
2024-12-07 20:42:49 +0800 CST
Vue3中的v-bind指令有什么新特性?
2024-11-18 14:58:47 +0800 CST
Gin 与 Layui 分页 HTML 生成工具
2024-11-19 09:20:21 +0800 CST
一个简单的html卡片元素代码
2024-11-18 18:14:27 +0800 CST
使用 `nohup` 命令的概述及案例
2024-11-18 08:18:36 +0800 CST
JavaScript设计模式:装饰器模式
2024-11-19 06:05:51 +0800 CST
mysql关于在使用中的解决方法
2024-11-18 10:18:16 +0800 CST
Go 接口:从入门到精通
2024-11-18 07:10:00 +0800 CST
paint-board:趣味性艺术画板
2024-11-19 07:43:41 +0800 CST
PHP 如何输出带微秒的时间
2024-11-18 01:58:41 +0800 CST
Rust 并发执行异步操作
2024-11-19 08:16:42 +0800 CST
Vue3中如何处理跨域请求?
2024-11-19 08:43:14 +0800 CST
MySQL 主从同步一致性详解
2024-11-19 02:49:19 +0800 CST
程序员茄子在线接单