注意:下面的所有函数都没有用正则。

以上为取出第一个匹配的三个函数,实现相同的目的

复制代码 代码如下:

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

$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

{

$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

{

$my = explode($end,$m[$i]);

$a[] = $my[0];

unset($my);

}

return $a;

}

速度又快了一些!

由上可以看出,并不是数组处理函数(explode)比字符串处理函数(substr等)慢,也不是那个比这个快,因为在匹配多个数据的时候匹配的越多数组函数的优势越大,处理字符串就象切蛋糕一样越切越小。匹配单个字符串运用切的思路去做也是一样的效果(str_cut)。关键还是在---算法!算法写的好,什么函数都是一样哦!

php采集正则,php不用正则采集速度探究总结相关推荐

  1. php正则匹配sg-nc-wap_php正则匹配

    概述 正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配.替换.截取匹配的字符串.常用的语言基本上都有正则表达式,如JavaScript.java等.其实,只有了解一种语言的正 ...

  2. 融合一致性正则与流形正则的半监督深度学习算法

    融合一致性正则与流形正则的半监督深度学习算法 王杰1,2, 张松岩1,2, 梁吉业1,2 1山西大学计算机与信息技术学院 2计算智能与中文信息处理教育部重点实验室 摘要:半监督学习已被广泛应用于大数据 ...

  3. awk,sed,grep运用正则与扩展正则

    1.正则与扩展正则的概述 2.示例 grep 过滤工具 ---格式:grep [选项] "正则表达式" 文件 egrep 过滤工具 ---格式:egrep [选项] "扩 ...

  4. 【编译原理】正则文法与正则式的等价性

    正则文法到正规式的转换规则: 文法表达式 正则式 规则1 A->xB B->y A=xy 规则2 A->xA|y A=x*y 规则3 A->x A->y A=x|y 正则 ...

  5. L1正则和L2正则的比较分析

    参考文献 1.L1正则和L2正则的比较分析详解 2.比较全面的L1和L2正则化的解释 3.正则化项L1和L2的区别 4.L1 相比于 L2 为什么容易获得稀疏解? 5.正则化L1和L2的区别 6.LR ...

  6. Java计算闰年计算1800-2050年任何一天下一天的日期,不用正则之穷举法(原创)

    老样子,话不多说,直接上图.(有亿点长) package 数据结构和算法;import java.util.Scanner;public class a2022914 {public static v ...

  7. Python 爬虫复习之爬取笔趣阁小说网站(不用正则)

    前言 小说网站-笔趣阁:URL:https://www.qu.la/ 笔趣阁是一个盗版小说网站,这里有很多起点中文网的小说,该网站小说的更新速度稍滞后于起点中文网正版小说的更新速度.并且该网站只支持在 ...

  8. WP采集插件教程不用谢规则的Wordpress采集

    在SEO中一直有一句话"内容为王,外链为后",这是否可以说明内容是SEO种重要的一环呢?如果不是,那么你觉得seo中重要的是什么呢?seo每个环节都重要,而且每个环节都是紧紧相扣的 ...

  9. php正则 与 js正则

    PHP中的正则表达式函数 在PHP中有两套正则表达式函数库.一套是由PCRE(Perl Compatible Regular Expression)库提供的.PCRE库使用和Perl相同的语法规则实现 ...

最新文章

  1. Java并发编程之CAS
  2. IBM X3650 M4服务器安装centos找不到硬盘的解决方法
  3. Linux 系统内存分析
  4. C++实现complex number复数的算法(附完整源码)
  5. shiro学习(10):servelet实现权限认证一
  6. PaperNotes(5)-Conditional Generative Adversarial Nets
  7. 原生html冻结表头,CSS如何实现表头冻结效果
  8. javascript window.open
  9. php关于apache配置,关于PHP和apache的配置
  10. WORD中如何进行双行合一
  11. 16家上市银行股票代码
  12. 假设检验之t检验详解
  13. 华为认证HCIP是什么?有什么用?
  14. Tbase数据库入坑记
  15. VS2010 中文版本
  16. 2021-01-19 灵动ICPC集训
  17. 弘辽科技:胡润研究院发布《2020胡润中国10强电商》榜单,第二名很意外
  18. python爬虫从入门到实践pdf百度云_PYTHON网络爬虫从入门到实践.pdf
  19. 订单系统设计 --- 订单中心存储方案
  20. OmniPlan 3 破解 中文

热门文章

  1. 【Linux】修改Linux操作系统字符集与Oracle数据库一致
  2. MYSQL主从不同步延迟原理分析及解决方案
  3. Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
  4. 解决 ModuleNotFoundError: No module named ‘requests‘ 问题
  5. 移动端HTML5音频与视频问题及解决方案
  6. 我不断收到“ Uncaught SyntaxError:意外令牌o”
  7. MISCONF Redis配置为保存RDB快照
  8. 编译用于高放射性环境的应用程序
  9. win11多桌面功能怎么使用 win11多桌面设置步骤
  10. 不可重复读和幻读的区别_面试官:MySQL的可重复读级别能解决幻读吗