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 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
DedeCMS 核心类TypeLink.class.php摘要笔记
Apr 07 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
php实现文本数据导入SQL SERVER
May 17 PHP
PHP 获取ip地址代码汇总
Jul 05 PHP
php计算税后工资的方法
Jul 28 PHP
php创建图像具体步骤
Mar 13 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
Jan 28 PHP
thinkphp5.1 框架钩子和行为用法实例分析
May 25 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
2015/12/19 PHP
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
jQuery实现简单的日期输入格式化控件
2015/03/12 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
2016/01/27 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
bootstrap实现每隔5秒自动轮播效果
2016/12/20 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
vue项目前端错误收集之sentry教程详解
2019/05/27 Javascript
[09:22]2014DOTA2西雅图国际邀请赛 主赛事第二日TOPPLAY
2014/07/21 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
举例讲解Python中装饰器的用法
2015/04/27 Python
Python 自动化表单提交实例代码
2017/06/08 Python
神经网络相关之基础概念的讲解
2018/12/29 Python
python二维键值数组生成转json的例子
2019/12/06 Python
pandas读取csv文件提示不存在的解决方法及原因分析
2020/04/21 Python
python如何调用java类
2020/07/05 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
总经理职责范文
2013/11/08 职场文书
中秋手机店促销方案
2014/06/16 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
承诺保证书格式
2015/02/28 职场文书
个人工作年终总结
2015/03/09 职场文书
煤矿安全生产工作总结
2015/08/13 职场文书
追悼会答谢词范文
2015/09/29 职场文书