Posts Tagged ‘explode’

implode vs join in php

Tuesday, July 15th, 2008

This one really surprised me. I expected these functions to be faster. Both these functions allow you to convert an array into a string. implode is the opposite of explode and join allows you to join the items in an array with a ‘glue’ string. In this case the array had 100 items.

implode vs join
implode: 47.2712550163 seconds
join: 50.1287050247 seconds
Time saved: 2.85745000839 seconds; 5.70022705949%

5% doesn’t seem like all that much but 2 microseconds shouldn’t be ignored.

Php:Cookie Expiry

Monday, June 30th, 2008

Problem
Short expiry cookies depend on users having their system clocks set correctly.

Solution
Don’t depend on the users having their clocks set right. Embed the timeout based on your server’s
clock in the cookie.

<?php
$value = time()+3600 . ‘:’ . $variable;
SetCookie(’Cookie_Name’,$value);
?>
Then when you receive the cookie, decode it and determine if it is still valid.

<?php
list($ts,$variable) = explode(’:',$Cookie_Name,2);
if($ts < time()) {

} else {
SetCookie(’Cookie_Name’,”);
}
?>

split() or explode()

Saturday, June 28th, 2008

The split() function supports regular expressions, while explode() does not. It is often faster to use explode() when you do not need to use regular expressions.I done yet another test. I used split() to split a string without regular expression requirements, and then used explode() to split the same string. I repeated this 1,000,000 times. My results are:

split(): 5.453 seconds
explode(): 3.556 seconds
Time saved: 1.897 seconds; 34.79%

Displaying Page Loading Time (Steps and Sample Code)

Saturday, June 28th, 2008

Here is how to display your page’s loading time:

1. Use the function microtime() to get the time in micro-seconds
2. Use the explode() function to turn the micro-time into an array.
3. Combine the two parts to the array (the micro-seconds to the seconds).
4. Repeat steps 1,2 and 3 for the bottom of the page
5. Take the time taken at the end of the page from the time taken at the top of the page to determine the total loading time.
6. After rounding the microtime, return it to the browser.

At the top of your page, place:

$m_time = explode(” “,microtime());
$m_time = $m_time[0] + $m_time[1];
$starttime = $m_time;
?>

At the bottom of your page, place:

$round = 3;// The number of decimal places to round the micro time to.
$m_time = explode(” “,microtime());
$m_time = $m_time[0] + $m_time[1];
$endtime = $m_time;
$totaltime = ($endtime - $starttime);
echo “Page loading took:”. round($totaltime,$round) .” seconds”;
?>