<?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";
?>