gpt4 book ai didi

php采集速度探究总结

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章php采集速度探究总结由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

注意:下面的所有函数都没有用正则。  以上为取出第一个匹配的三个函数,实现相同的目的    。

  1. function str_cut($str ,$start$end) {//取出第一个匹配,效率最高,先分割再替换  
  2. $content = strstr$str$start );  
  3. $content = substr$contentstrlen$start ), strpos$content$end ) - strlen$start ) );  
  4. return $content;  
  5. }  
  6. function str_cut1($str ,$start$end) {//取出第一个匹配,效率中,直接查找替换  
  7. $x = strpos($str$start);  
  8. return substr($str$x+strlen($start), strpos($str$end)-$x+strlen($end));  
  9. }  
  10.  
  11. function str_cut3($content,$start,$end){//取出第一个匹配,字符串越大,速度越慢!  
  12. $my = explode($start,$content);  
  13. $my = explode($end,$my[1]);  
  14. return $my[0];  
  15. }  

以下为取出所有匹配的3个函数(全部原创),实现相同的采集目的  。

  1. function strcut($str ,$start$end//先搜个数,速度中等  
  2. {  
  3.     ifstrpos$str , $start ) )  
  4.     {  
  5.             $sum = substr_count($str,$start);  
  6.  
  7.             $carr = array();  
  8.             for($i=0;$i<$sum;$i++){  
  9.                 $str = strstr$str$start );  
  10.                 $str = substr$strstrlen($start));  
  11.                    $carr[] = substr$str, 0, strpos$str$end ) );  
  12.             }  
  13.  
  14.             
  15.  
  16.     }  
  17.     return $carr;  
  18. }  
  19.  
  20. function str_cut_all($str ,$start$end,$carr=array()) //递归,运行效率最慢!  
  21. {  
  22.     ifstrpos$str , $start ) )  
  23.     {  
  24.             $str = strstr$str$start );  
  25.             $str = substr$strstrlen($start));  
  26.                $carr[] = substr$str, 0, strpos$str$end ) );  
  27.                ifstrpos$str , $start ) )  
  28.             {  
  29.                    return str_cut_all($str ,$start$end ,$carr );  
  30.                }  
  31.  
  32.     }  
  33.     return $carr;  
  34. }  
  35.  
  36. function my_Ca($content,$start,$end){//取出所有匹配,效率最快,因为只读一次,字符串越大越明显  
  37.     $m = explode($start,$content);  
  38.     $a = array();  
  39.     for$i = 1;$i < count($m);$i++ )  
  40.     {  
  41.         $my = explode($end,$m[$i]);  
  42.         $a[] = $my[0];  
  43.         unset($my);  
  44.     }  
  45.     return $a;  
  46. }  

注意my-Ca比较  如果这样写:  。

  1. function my_Ca($content,$start,$end){//取出所有匹配  
  2. $m = explode($start,$content);  
  3. $a = array();  
  4. $sum = count($m);  
  5. for$i = 1;$i < $sum;$i++ )  
  6. {  
  7. $my = explode($end,$m[$i]);  
  8. $a[] = $my[0];  
  9. unset($my);  
  10. }  
  11. return $a;  
  12. }  

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

最后此篇关于php采集速度探究总结的文章就讲到这里了,如果你想了解更多关于php采集速度探究总结的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com