PHP 长字符串替换操作性能(替换多换注释的代码)
2013-10-12 20:48
260 查看
因为写一个css合并工具,去掉注释时,发现正则表达式很难写,最后,还是用php来实现吧,但是一不小心写出来的代码居然报内存超出可用的128m!!
原因是因为我找到/*和*/之后
$str=substr($str,0,$pos_left).substr($str,$pos_right+2); //最后报错在这里!
后来改成了:
速度相当快,比正则表达式快,而且效果好!!
依据我个人10来年的经验来看,正则表达式不适合太复杂的场景,比如你的新闻小偷,用正则很难实现理想的效果,还是用strpos查找特征字符,来的又快又好
原因是因为我找到/*和*/之后
$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(';',";\r\n",$str); if(strlen($str)<100) echo $str; return $str; }
速度相当快,比正则表达式快,而且效果好!!
依据我个人10来年的经验来看,正则表达式不适合太复杂的场景,比如你的新闻小偷,用正则很难实现理想的效果,还是用strpos查找特征字符,来的又快又好
相关文章推荐
- PHP 长字符串替换操作性能(替换多换注释的代码)
- php中的正则函数:正则匹配,正则替换,正则分割 所有的操作都不会影响原来的字符串.
- ASP FSO文件操作函数代码(复制文件、重命名文件、删除文件、替换字符串)
- Python 字符串操作实现代码(截取/替换/查找/分割)
- PHP序列号生成函数和字符串替换函数代码
- 黄聪:PHP字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、切割成数组等)
- Python 字符串操作实现代码(截取/替换/查找/分割)
- 字符串进行截取替换操作实例代码
- Python基础教程代码与注释P44 3.1 基本字符串操作 3.2 字符串格式化:精简版
- ASP FSO文件操作函数代码(复制文件、重命名文件、删除文件、替换字符串)
- 亲测可用的PHP上传图片处理代码 带详细注释
- Asp.net 字符串操作基类(安全,替换,分解等)
- Python基础教程代码与注释P55 4.1 字典的使用 4.2.1 dict函数 4.2.3 字典的格式化字符串 4.2.3 字典的格式化字符串
- 编写高质量代码改善C#程序的157个建议[正确操作字符串、使用默认转型方法、却别对待强制转换与as和is]
- Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
- shell 字符串操作(长度,查找,替换)详解
- Python字符串操作之字符串搜索与替换
- php中的字符串操作
- php 字符串操作函数