<?php
// -------------------------------------
// test file generator
$filename = 'test.txt' ;
$pattern = '--' . "\r \n " ;
$count_lines = 100000 ; //100k
for ( $i = 0 ; $i < $count_lines ; $i ++ ) {
$lines [ ] = $pattern ;
}
// -------------------------------------
// comparison script
$pattern = "\r \n " ;
$new_pattern = '<br>' ;
$lines = file ( 'test.txt' ) ;
$str_start = xdebug_time_index( ) ;
foreach ( $lines as $line ) {
$str_lines [ ] = str_replace ( $pattern , $new_pattern , $line ) ; }
$str_end = xdebug_time_index( ) ;
$preg_start = xdebug_time_index( ) ;
foreach ( $lines as $line ) {
$preg_lines [ ] = preg_replace ( "#{$pattern} #" , $new_pattern , $line ) ; }
$preg_end = xdebug_time_index( ) ;
echo ( 'str_replace time = ' . round ( $str_end - $str_start , 5 ) ) ; echo '<br>' ;
echo ( 'preg_replace time = ' . round ( ( $preg_end - $preg_start ) , 5 ) ) ;
PD9waHAKCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8gdGVzdCBmaWxlIGdlbmVyYXRvcgoKJGZpbGVuYW1lID0gJ3Rlc3QudHh0JzsKJHBhdHRlcm4gPSAnLS0nIC4gIlxyXG4iOwokY291bnRfbGluZXMgPSAxMDAwMDA7IC8vMTAwawoKZm9yICgkaT0wOyAkaSA8ICRjb3VudF9saW5lczsgJGkrKykgeyAKCSRsaW5lc1tdID0gJHBhdHRlcm47Cn0KCmZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlbmFtZSwgJGxpbmVzKTsKCgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIGNvbXBhcmlzb24gc2NyaXB0CgokcGF0dGVybiA9ICJcclxuIjsKJG5ld19wYXR0ZXJuID0gJzxicj4nOwokbGluZXMgPSBmaWxlKCd0ZXN0LnR4dCcpOwoKJHN0cl9zdGFydCA9IHhkZWJ1Z190aW1lX2luZGV4KCk7CmZvcmVhY2ggKCRsaW5lcyBhcyAkbGluZSkgewoJJHN0cl9saW5lc1tdID0gc3RyX3JlcGxhY2UoJHBhdHRlcm4sICRuZXdfcGF0dGVybiwgJGxpbmUpOwp9CiRzdHJfZW5kID0geGRlYnVnX3RpbWVfaW5kZXgoKTsKCiRwcmVnX3N0YXJ0ID0geGRlYnVnX3RpbWVfaW5kZXgoKTsKZm9yZWFjaCAoJGxpbmVzIGFzICRsaW5lKSB7CgkkcHJlZ19saW5lc1tdID0gcHJlZ19yZXBsYWNlKCIjeyRwYXR0ZXJufSMiLCAkbmV3X3BhdHRlcm4sICRsaW5lKTsKfQokcHJlZ19lbmQgPSB4ZGVidWdfdGltZV9pbmRleCgpOwoKZWNobyAoJ3N0cl9yZXBsYWNlIHRpbWUgPSAnIC4gcm91bmQoJHN0cl9lbmQgLSAkc3RyX3N0YXJ0LCA1KSk7CmVjaG8gJzxicj4nOwplY2hvICgncHJlZ19yZXBsYWNlIHRpbWUgPSAnIC4gcm91bmQoKCRwcmVnX2VuZCAtICRwcmVnX3N0YXJ0KSwgNSkpOwoKZmlsZV9wdXRfY29udGVudHMoJ3N0ci50eHQnLCAkc3RyX2xpbmVzKTsKZmlsZV9wdXRfY29udGVudHMoJ3ByZWcudHh0JywgJHByZWdfbGluZXMpOw==