strpos
seems to be in the lead, I’ve tested it with finding some strings in 'The quick brown fox jumps over the lazy dog'
:
strstr
used 0.48487210273743 seconds for 1000000 iterations finding'quick'
strpos
used 0.40836095809937 seconds for 1000000 iterations finding'quick'
strstr
used 0.45261287689209 seconds for 1000000 iterations finding'dog'
strpos
used 0.39890813827515 seconds for 1000000 iterations finding'dog'
<?php
$haystack = 'The quick brown fox jumps over the lazy dog';
$needle="quick";
$iter = 1000000;
$start = microtime(true);
for ($i = 0; $i < $iter; $i++) {
strstr($haystack, $needle);
}
$duration = microtime(true) - $start;
echo "<br/>strstr used $duration microseconds for $iter iterations finding 'quick' in 'The quick brown fox jumps over the lazy dog'";
$start = microtime(true);
for ($i = 0; $i < $iter; $i++) {
strpos($haystack, $needle);
}
$duration = microtime(true) - $start;
echo "<br/>strpos used $duration microseconds for $iter iterations finding 'quick' in 'The quick brown fox jumps over the lazy dog'";
$needle="dog";
$start = microtime(true);
for ($i = 0; $i < $iter; $i++) {
strstr($haystack, $needle);
}
$duration = microtime(true) - $start;
echo "<br/>strstr used $duration microseconds for $iter iterations finding 'dog' in 'The quick brown fox jumps over the lazy dog'";
$start = microtime(true);
for ($i = 0; $i < $iter; $i++) {
strpos($haystack, $needle);
}
$duration = microtime(true) - $start;
echo "<br/>strpos used $duration microseconds for $iter iterations finding 'dog' in 'The quick brown fox jumps over the lazy dog'";
?>