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 相关文章推荐
第八节 访问方式 [8]
Oct 09 PHP
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
Feb 15 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
Feb 06 PHP
浅谈php和.net的区别
Sep 28 PHP
彻底删除thinkphp3.1案例blog标签的方法
Dec 05 PHP
PHP查询快递信息的方法
Mar 07 PHP
Yii2实现log输出到file及database的方法
Nov 12 PHP
LNMP部署laravel以及xhprof安装使用教程
Sep 14 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
php中通用的excel导出方法实例
Dec 30 PHP
详解Laravel设置多态关系模型别名的方式
Oct 17 PHP
PHP上传图片到数据库并显示的实例代码
Dec 20 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上传文件中文文件名乱码的解决方法
2013/11/01 PHP
PHP简单创建压缩图的方法
2016/08/24 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
javasript实现密码的隐藏与显示
2015/05/08 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
AngularJS 简单应用实例
2016/07/28 Javascript
纯JS实现可拖拽表单的简单实例
2016/09/02 Javascript
js模糊查询实例分享
2016/12/26 Javascript
jQuery 表单序列化实例代码
2017/06/11 jQuery
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
Nuxt v-bind绑定img src不显示的解决
2019/12/05 Javascript
vue项目或网页上实现文字转换成语音播放功能
2020/06/09 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
python中反射用法实例
2015/03/27 Python
Python实现在线程里运行scrapy的方法
2015/04/07 Python
使用Python构建Hopfield网络的教程
2015/04/14 Python
Python运算符重载用法实例分析
2015/06/01 Python
Python实现的爬虫功能代码
2017/06/24 Python
python在非root权限下的安装方法
2018/01/23 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
python矩阵的转置和逆转实例
2018/12/12 Python
在PyTorch中Tensor的查找和筛选例子
2019/08/18 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
python为什么要安装到c盘
2020/07/20 Python
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
Blue Nile中国官网:全球知名的钻石和珠宝网络零售商
2020/03/22 全球购物
新闻系毕业生推荐信
2013/11/16 职场文书
无工作经验者个人求职信范文
2013/12/22 职场文书
关于母亲节的感言
2014/02/04 职场文书
公安派出所所长四风问题个人对照检查材料
2014/10/04 职场文书
Python 用户输入和while循环的操作
2021/05/23 Python
python字典进行运算原理及实例分享
2021/08/02 Python
Python 数据可视化之Bokeh详解
2021/11/02 Python