php采集速度探究总结(原创)


Posted in PHP onApril 18, 2008

 
注意:下面的所有函数都没有用正则。

以上为取出第一个匹配的三个函数,实现相同的目的

function str_cut($str ,$start, $end) {//取出第一个匹配,效率最高,先分割再替换
$content = strstr( $str, $start );
$content = substr( $content, strlen( $start ), strpos( $content, $end ) - strlen( $start ) );
return $content;
}
function str_cut1($str ,$start, $end) {//取出第一个匹配,效率中,直接查找替换
$x = strpos($str, $start);
return substr($str, $x+strlen($start), strpos($str, $end)-$x+strlen($end));
}

function str_cut3($content,$start,$end){//取出第一个匹配,字符串越大,速度越慢!
$my = explode($start,$content);
$my = explode($end,$my[1]);
return $my[0];
}

以下为取出所有匹配的3个函数(全部原创),实现相同的采集目的

function strcut($str ,$start, $end) //先搜个数,速度中等
{
    if( strpos( $str , $start ) )
    {
            $sum = substr_count($str,$start);

            $carr = array();
            for($i=0;$i<$sum;$i++){
                $str = strstr( $str, $start );
                $str = substr( $str, strlen($start));
                   $carr[] = substr( $str, 0, strpos( $str, $end ) );
            }

          

    }
    return $carr;
}

function str_cut_all($str ,$start, $end,$carr=array()) //递归,运行效率最慢!
{
    if( strpos( $str , $start ) )
    {
            $str = strstr( $str, $start );
            $str = substr( $str, strlen($start));
               $carr[] = substr( $str, 0, strpos( $str, $end ) );
               if( strpos( $str , $start ) )
            {
                   return str_cut_all($str ,$start, $end ,$carr );
               }

    }
    return $carr;
}

function my_Ca($content,$start,$end){//取出所有匹配,效率最快,因为只读一次,字符串越大越明显
    $m = explode($start,$content);
    $a = array();
    for( $i = 1;$i < count($m);$i++ )
    {
        $my = explode($end,$m[$i]);
        $a[] = $my[0];
        unset($my);
    }
    return $a;
}

注意my-Ca比较
如果这样写:

function my_Ca($content,$start,$end){//取出所有匹配
$m = explode($start,$content);
$a = array();
$sum = count($m);
for( $i = 1;$i < $sum;$i++ )
{
$my = explode($end,$m[$i]);
$a[] = $my[0];
unset($my);
}
return $a;
}

速度又快了一些!

由上可以看出,并不是数组处理函数(explode)比字符串处理函数(substr等)慢,也不是那个比这个快,因为在匹配多个数据的时候匹配的越多数组函数的优势越大,处理字符串就象切蛋糕一样越切越小。匹配单个字符串运用切的思路去做也是一样的效果(str_cut)。关键还是在---算法!算法写的好,什么函数都是一样哦!

PHP 相关文章推荐
生成静态页面的PHP类
Jul 15 PHP
文件上传类
Oct 09 PHP
php 无限级 SelectTree 类
May 19 PHP
完美解决PHP中文乱码
Nov 26 PHP
PHP ajax 异步执行不等待执行结果的处理方法
May 27 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
微信自定义分享php代码分析
Nov 24 PHP
php安装扩展mysqli的实现步骤及报错解决办法
Sep 23 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
PHP使用SMTP邮件服务器发送邮件示例
Aug 28 PHP
PHP保留两位小数的几种方法
Jul 24 PHP
PHP项目多语言配置平台实现过程解析
May 18 PHP
Snoopy类使用小例子
Apr 15 #PHP
mysql 中InnoDB和MyISAM的区别分析小结
Apr 15 #PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 #PHP
php zend解密软件绿色版测试可用
Apr 14 #PHP
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 #PHP
php5 mysql分页实例代码
Apr 10 #PHP
Smarty安装配置方法
Apr 10 #PHP
You might like
PHP版微信第三方实现一键登录及获取用户信息的方法
2016/10/14 PHP
tp5.1 框架数据库高级查询技巧实例总结
2020/05/25 PHP
asp.net下利用js实现返回上一页的实现方法小集
2009/11/24 Javascript
精通Javascript系列之数值计算
2011/06/07 Javascript
jquery 简单应用示例总结
2013/08/09 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
JavaScript 变量、作用域及内存
2015/04/08 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
Vue.js手风琴菜单组件开发实例
2017/05/16 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
vue webuploader 文件上传组件开发
2017/09/23 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
webpack配置导致字体图标无法显示的解决方法
2018/03/06 Javascript
vue 实现axios拦截、页面跳转和token 验证
2018/07/17 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
在Django的URLconf中使用命名组的方法
2015/07/18 Python
django迁移数据库错误问题解决
2019/07/29 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
python 模拟登陆github的示例
2020/12/04 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
美国首屈一指的礼品篮供应商:GiftTree
2018/01/06 全球购物
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
在C#中如何实现多态
2014/07/02 面试题
师范大学毕业自我鉴定
2013/11/21 职场文书
业务部主管岗位职责
2014/01/29 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
实习证明格式范文
2014/10/14 职场文书
机关作风建设工作总结
2014/10/23 职场文书
2014年单位法制宣传日活动总结
2014/11/01 职场文书
win10下go mod配置方式
2021/04/25 Golang