新闻资讯
记录首创点滴进步 见证远行
我们一直紧跟时代前沿,聚焦行业实时动态,发布公司最新资讯,欢迎您的关注
您目前的位置:网站首页 > 新闻资讯 > 网站常识 >

PHP中循环替换与数组替换时间大PK

发布日期:2013-05-06文章来源:首创网络浏览次数:672次
    PHP中循环替换与数组替换时间大PK。在做sql注入中,有替换关键词的处理,将那些update等操作数据库的关键词进行了替换,防止sql注入,在替换使用的方法中看到了两种,一种是循环替换一种是数组进行替换,下面对两种替换进行......
    本文关键字:PHP,中,循环,替换,与,数组,时间,大,PHP,中,循环,
  PHP中循环替换与数组替换时间大PK。在做sql注入中,有替换关键词的处理,将那些update等操作数据库的关键词进行了替换,防止sql注入,在替换使用的方法中看到了两种,一种是循环替换一种是数组进行替换,下面对两种替换进行了效率的对比。
  看下面的例子
  <?php  $str="insertintoab,casdfsae;alerttest,update,delete,forasp.cn,string,script,language,bingbangbasdf,insertintoab,casdfsae;alerttest,update,delete,google,string,script,language,bingbangbasdf,insertintoab,casdfsae;alerttest,update,delete,google,string,script,str_replace,bingbangbasdf,insertintostr_replace,casdfsae;alerttest,update,delete,wangzhanzhizuoxuexiwang,string,script,language,bingbangbasdf,insertintoab,casdfsae;alerttest,update,delete,google,str_replace,script,language";
  $search_key_array=array("update","insert","delete");
  $replace_key_array=array("%a%adate","%b%bsert","%c%clete");
  $begin=microtime()+time();
  $str2=$str;
  //这里循环1万次,扩大处理时间的比例
  for($i=0;$i<10000;++$i){
  //循环式的替换
  //foreach($search_key_arrayas$k=>$v){
  //if(strpos($str,$v))str_replace($v,$replace_key_array[$k],$str2);
  //}
  //数组式的替换
  str_replace($search_key_array,$replace_key_array,$str2);
  $str2=$str;
  }
  $end=time()+microtime();
  echo$end-$begin;
  ?>
  采用循环式的查找替换,我们输出4次的时间
  1.0.37859010696411
  2.0.41898488998413
  3.0.39051914215088
  4.0.41148495674133
  平均值大概在0.4秒
  采用数组替换式的时间
  1.0.2435348033905
  2.0.24601316452026
  3.0.21609592437744
  4.0.2502121925354
  平均时间在0.24秒
  从实际测试状况看,数组替换比循环替换快了约66%,所以以后要用数组替换。
    本文由邯郸网络公司首创网络整理编辑发布,请勿转载、复制、摘抄等!

+ 查看更多我们的客户 / Our client

0310-4559740
400-990-1661
    24小时报务热线
    18931045623
在线客服
首创网络邯郸公司
邯郸公司
电话:0310-4559740 / 18931045623  地址:邯郸市丛台区颐高广场B座13层1304室