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 相关文章推荐
用文本文件制作留言板提示(下)
Oct 09 PHP
别人整理的服务器变量:$_SERVER
Oct 20 PHP
PHP 定界符 使用技巧
Jun 14 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
深入PHP magic quotes的详解
Jun 17 PHP
php用header函数实现301跳转代码实例
Nov 25 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
简单解决新浪SAE无法上传文件的问题
May 13 PHP
thinkPHP3.2简单实现文件上传的方法
May 16 PHP
php mysql 封装类实例代码
Sep 18 PHP
PhpStorm2020.1 安装 debug - Postman 调用的详细教程
Aug 17 PHP
深入浅析安装PhpStorm并激活的步骤详解
Sep 17 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
CodeIgniter安全相关设置汇总
2014/07/03 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
WordPress中访客登陆实现邮件提醒的PHP脚本实例分享
2015/12/14 PHP
php操纵mysqli数据库的实现方法
2016/09/18 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
jquery如何把数组变为字符串传到服务端并处理
2014/04/30 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
js阻止移动端页面滚动的两种方法
2017/01/25 Javascript
JavaScript实现简单的双色球(实例讲解)
2017/07/31 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
JS中offset和匀速动画详解
2018/02/06 Javascript
js实现鼠标单击Tab表单切换效果
2018/05/16 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
详解Vue-Router源码分析路由实现原理
2019/05/15 Javascript
[01:22:28]DOTA2-DPC中国联赛 正赛 SAG vs RNG BO3 第一场 1月18日
2021/03/11 DOTA
python命令行参数sys.argv使用示例
2014/01/28 Python
TensorFlow 合并/连接数组的方法
2018/07/27 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
python3中替换python2中cmp函数的实现
2019/08/20 Python
深入了解Python在HDA中的应用
2019/09/05 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
《小猪家的桃花树》教学反思
2014/04/11 职场文书
初一学生期末评语
2014/04/24 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
幼儿老师求职信
2014/06/30 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
拾金不昧表扬信
2015/01/16 职场文书
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript