sorry for the large size of this post
i ran a time test with Pear's Benchmark iteration class...
you can read more abou that here:
pear.php.net
here are the results of several runs:
regex fetching : 0.000209
substr fethcing : 0.000185
regex fetching : 0.000212
substr fethcing : 0.000181
regex fetching : 0.000218
substr fethcing : 0.000183
regex fetching : 0.000215
substr fethcing : 0.000184
here is the code i used
<?php
include "Benchmark/Iterate.php";
$lines_of_file = array(
"[Fri Mar 01 23:53:57 2002] [52 Vicar] Sharahelous (Human) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [60 Hierophant] Mangue (Unknown) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [60 Crusader] Caan (Human) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [53 Pathfinder] Aedwlan (Unknown) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [56 Myrmidon] Chandos (Wood Elf) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [58 Evoker] Andjor (High Elf) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [47 Rogue] Alkarin (Dark Elf) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [58 Beguiler] Lamaen (High Elf) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [56 Conjurer] Senye (High Elf) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [ANONYMOUS] Fasad <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [60 Crusader] Barraind (Human) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [58 Templar] Larorf (Dwarf) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [60 Hierophant] Tovok (Wood Elf) <Shining Path>",
"[Fri Mar 01 23:53:57 2002] [ANONYMOUS] Perkins",
"[Fri Mar 01 23:53:57 2002] [58 Myrmidon] Madine (Barbarian) <Shining Path>"
);
function regex_test( $lines_of_file ) {
$regex = "/^.{4}\s(.{3})\s(.{2})\s(.{8})\s(.{4})/";
foreach ( $lines_of_file as $line ) {
$results = array();
preg_match( $regex, $line, $results );
}
}
function substr_test( $lines_of_file ) {
foreach ( $lines_of_file as $line ) {
$month = substr( $line, 5, 3 );
$day = substr( $line, 9, 2 );
$year = substr( $line, 21, 4 );
$time = substr( $line, 12, 8 );
}
}
$benchmark = new Benchmark_Iterate;
$benchmark->run(10000, 'regex_test', $lines_of_file );
$result = $benchmark->get();
echo "regex fetching : {$result['mean']}<br>";
$benchmark->run(10000, 'substr_test', $lines_of_file );
$result = $benchmark->get();
echo "substr fethcing : {$result['mean']}<br>";
?>