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中变量及部分适用方法
Mar 27 PHP
PHP file_get_contents 函数超时的几种解决方法
Jul 30 PHP
PHP批量上传图片的具体实现方法介绍.
Feb 26 PHP
php实现上传图片生成缩略图示例
Apr 13 PHP
ThinkPHP安装和设置
Jul 27 PHP
php图片添加文字水印实现代码
Mar 15 PHP
ThinkPHP3.2.1图片验证码实现方法
Aug 19 PHP
PHP文件上传操作实例详解
Sep 27 PHP
php json中文编码为null的解决办法
Dec 14 PHP
PHP实现验证码校验功能
Nov 16 PHP
PHP使用pdo实现事务处理操作示例
Sep 05 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
Dec 13 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/04/25 PHP
php自定义函数转换html标签示例
2016/09/29 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
NodeJS的url截取模块url-extract的使用实例
2013/11/18 NodeJs
中止javascript执行的方法
2014/02/14 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
javascript中call apply 的应用场景
2015/04/16 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
2016/06/20 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
Vue动态实现评分效果
2017/05/24 Javascript
React组件中的this的具体使用
2018/02/28 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
Python 字符串大小写转换的简单实例
2017/01/21 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
python实现点对点聊天程序
2018/07/28 Python
浅谈Python中的全局锁(GIL)问题
2019/01/11 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
Python基于requests库爬取网站信息
2020/03/02 Python
Python从MySQL数据库中面抽取试题,生成试卷
2021/01/14 Python
BIBLOO捷克:购买女装、男装、童装、鞋和配件
2017/01/27 全球购物
Java提供了哪些企业应用编程接口
2015/02/13 面试题
sort命令的作用和用法
2013/08/25 面试题
挑战杯创业计划书的写作指南
2014/01/07 职场文书
《莫泊桑拜师》教学反思
2014/04/23 职场文书
疾病防治方案
2014/05/31 职场文书
领导班子个人对照检查材料(群众路线)
2014/09/26 职场文书
钓鱼岛事件感想
2015/08/11 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记