<?php

// Color via GET
$color_init = ( isset($_GET['color']) ) ? $_GET['color'] : "%23123456";
$repeat = ( isset($_GET['repeat']) && is_numeric($_GET['repeat']) ) ? $_GET['repeat'] : 2000000;


// For the record
echo "Looping $repeat times<br /><br />";


// Time the strpos() way
$time_a1 = microtime(true);
echo "Start strpos(): $time_a1<br />";

for ( $i = 0; $i < $repeat; $i++ ){
    if ( 0 === strpos( $color_init, '#' ) )
	$color = substr( $color_init, 1 );
    elseif ( 0 === strpos( $color_init, '%23' ) )
        $color = substr( $color_init, 3 );
    else $color = $color_init;
}

echo "Final strpos() color: $color<br />";
$time_a2 = microtime(true);
echo "End strpos(): $time_a2<br />";
echo "Total time: " . ($time_a2 - $time_a1) . "<br /><br />";


// Time the trim() way
$time_b1 = microtime(true);
echo "Start trim(): $time_b1<br />";

for ( $i = 0; $i < $repeat; $i++ ){
    //$color = trim( urldecode( $color_init ), "#" ); //used as 2nd trim
    $color = trim( urldecode( $color_init ), "# \t\r\n\0\x0B" ); //replace existing diff's trim
    //$color = trim( urldecode( trim( $color_init ) ), "#" ); //double trim
}

echo "Final trim() color: $color<br />";
$time_b2 = microtime(true);
echo "End trim(): $time_b2<br />";
echo "Total time: " . ($time_b2 - $time_b1) . "<br /><br />";
