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的curl实现get和post的代码
Aug 23 PHP
PHP面向接口编程 耦合设计模式 简单范例
Mar 23 PHP
php的list()的一步操作给一组变量进行赋值的使用
May 18 PHP
简单的cookie计数器实现源码
Jun 07 PHP
PHP删除HTMl标签的实现代码
Jun 30 PHP
php文件缓存方法总结
Mar 16 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
php四种定界符详解
Feb 16 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
Apr 26 PHP
Yii框架核心组件类实例详解
Aug 06 PHP
laravel通用化的CURD的实现
Dec 13 PHP
PHP实现简单注册登录系统
Dec 28 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 header示例代码(推荐)
2010/09/08 PHP
学习php笔记 字符串处理
2010/10/19 PHP
关于URL最大长度限制的相关资料查证
2014/12/23 PHP
PHP的APC模块实现上传进度条
2015/10/27 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
2014/12/22 Javascript
jQuery fancybox在ie浏览器下无法显示关闭按钮的解决办法
2016/02/19 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
jQuery表单元素选择器代码实例
2017/02/06 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
angular.js指令中的controller、compile与link函数的不同之处
2017/05/10 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
js实现小时钟效果
2020/03/25 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
[01:10:57]Liquid vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
python实现简单神经网络算法
2018/03/10 Python
Python测试网络连通性示例【基于ping】
2018/08/03 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
如何通过雪花算法用Python实现一个简单的发号器
2019/07/03 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
numpy实现神经网络反向传播算法的步骤
2019/12/24 Python
python3 实现调用串口功能
2019/12/26 Python
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
学生社团文化节开幕式主持词
2014/03/28 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
新教师岗前培训方案
2014/06/05 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
师德师风自查总结
2014/10/14 职场文书
2014年减负工作总结
2014/12/10 职场文书
横店影视城导游词
2015/02/06 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
JS实现简单的九宫格抽奖
2022/06/28 Javascript