国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php采集速度探究總結

php采集速度探究總結

2019-10-29 15:20php教程網 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)。關鍵還是在---算法!算法寫的好,什么函數都是一樣哦!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人午夜视频在线观看 | 久久精品日产第一区二区三区 | 成人av电影在线 | 久久久免费电影 | 免费在线观看毛片 | 狠狠操夜夜操 | 国产一级片播放 | 国产精品初高中精品久久 | 91视频8mav| 久久福利电影 | 中文字幕第二页 | 国产麻豆91视频 | 欧美日韩在线播放 | 欧美精品在线播放 | 黄色一级片在线观看 | 欧美视频免费看 | 亚洲在线影院 | 欧美精品一区二 | 久久久久久av | 亚洲资源站| 亚洲精品乱码久久久久久按摩观 | av在线官网 | 久久精品青青大伊人av | 国产午夜精品一区二区三区视频 | 日韩精品一区二区三区四区 | 综合久久综合 | 精品国产区 | 另类sb东北妇女av | 特黄特黄aaaa级毛片免费看 | 婷婷久久综合 | 中文字幕亚洲一区 | 啪啪网站免费 | 亚洲精品二区 | 久久这里精品 | 精品综合久久 | av一区二区三区 | 精品第一页 | 亚洲综合色视频在线观看 | 久久免费黄色网址 | 成人av免费 | 国产一级黄 |