[ create a new paste ] login | about

Link: http://codepad.org/rxTt79PC    [ raw code | output | fork ]

PHP, pasted on Mar 6:
<?php

function posncut( $input, $delim, $x ) {
    $p = -1;
    for( $i = 0; $i !== $x; ++ $i ) {
        $p = strpos( $input, $delim, $p + 1 );
        if( $p === false ) {
            return '';
        }
    }
    return substr( $input, 0, $p + 1 );
}
function boomcut( $input, $delim, $x ) {
    $a = explode( $delim, $input, $x + 1 );
    array_pop( $a );
    return implode( $delim, $a ) . '#';
}

$str = 'Hello# m#y name # is Ala#n Colem#n';
$del = '#';

echo "posncut:\n" . posncut( $str, $del, 4 ) . "\n";
$start = microtime(true);
for( $i = 0; $i < 50000; ++ $i ) {
    posncut( $str, $del, 4 );
}
$stop = microtime(true);

echo '50000 loops took ' . ($stop - $start) . " seconds\n";

echo "boomcut:\n" . boomcut( $str, $del, 4 ) . "\n";
$start = microtime(true);
for( $i = 0; $i < 50000; ++ $i ) {
    boomcut( $str, $del, 4 );
}
$stop = microtime(true);

echo '50000 loops took ' . ($stop - $start) . " seconds\n";

?>


Output:
1
2
3
4
5
6
posncut:
Hello# m#y name # is Ala#
50000 loops took 0.49981284141541 seconds
boomcut:
Hello# m#y name # is Ala#
50000 loops took 0.44343495368958 seconds


Create a new paste based on this one


Comments: