我有以下compress()函数:
function compress($input){
$from = array("\r\n", "\n");
$to = array('', '');
$output = str_replace($from, $to, $input);
while(true){
$output = str_replace(" ", " ", $output);
if (strpos($output, " ") === FALSE){
break;
}
}
return $output;
}
我正在使用它来压缩输出HTML代码,使其不包含任何换行符,也不会超过2个后续空格。
我想知道如果使用正则表达式替换,这会更快,更优化。但是,即使这样,我也不知道该怎么做。
有什么想法吗?
答案 0 :(得分:2)
怎么样:
return preg_replace(
'# {2,}#',
' ',
preg_replace(
'#\r?\n#s',
'',
$input
)
);
我相信这会做你所建议的,而不是更多。至于它是更快还是更有效,你必须进行一些测试,我不能随便说。 preg_replace
通常相对昂贵。我在这里打电话两次,所以有相当多的开销。但这是一个如何使用p_r来实现它的例子。