zoukankan      html  css  js  c++  java
  • PHP 长字符串替换操作性能(替换多换注释的代码)

    因为写一个css合并工具,去掉注释时,发现正则表达式很难写,最后,还是用php来实现吧,但是一不小心写出来的代码居然报内存超出可用的128m!!

    原因是因为我找到/*和*/之后

    $str=substr($str,0,$pos_left).substr($str,$pos_right+2); //最后报错在这里!

    后来改成了:

    function replaceNote($str){
    	$pos0 = strpos($str,'/*');
    	while($pos0!==false){
    		$pos1 = strpos($str,'*/');
    		if($pos1===false){
    			$pos0+=2;
    		}else{
    			$rp = substr($str,$pos0,$pos1-$pos0+2);
    			$str = str_replace($rp,'',$str);
    			$pos0 = strpos($str,'/*');
    		}
    	}
    	$str = str_replace(';',";
    ",$str);
    	if(strlen($str)<100) echo $str;
    	return $str;
    }


     

    速度相当快,比正则表达式快,而且效果好!!

    依据我个人10来年的经验来看,正则表达式不适合太复杂的场景,比如你的新闻小偷,用正则很难实现理想的效果,还是用strpos查找特征字符,来的又快又好

  • 相关阅读:
    Excel Sheet Column Number
    Compare Version Numbers
    Min Stack
    Excel Sheet Column Title
    Find Peak Element
    数据规范化
    Majority Element
    用户唯一登录
    面试总结——Java高级工程师(三)
    Spring AOP 实战运用
  • 原文地址:https://www.cnblogs.com/lein317/p/5067586.html
Copyright © 2011-2022 走看看