fork(1) download
  1. <?php
  2.  
  3.  
  4. $nr_loops = 1000000; // 1 milhão
  5. $link = '13542345/essa_e_minhastring';
  6.  
  7. // explode
  8. $before = microtime(true);
  9. for ($i=0 ; $i<$nr_loops ; $i++) {
  10. $partes = explode("/", $link);
  11. }
  12. echo $partes[0]." | ";
  13. $after = microtime(true);
  14. echo ($after-$before)/$i . " sec / por explode\n";
  15.  
  16. // preg_match
  17. $before = microtime(true);
  18. $pattern = '/[^\/]+/';
  19. for ($i=0 ; $i<$nr_loops ; $i++) {
  20. preg_match($pattern, $link, $partes, PREG_OFFSET_CAPTURE);
  21. }
  22. $after = microtime(true);
  23. echo $partes[0][0]." | ";
  24. echo ($after-$before)/$i . " sec / por preg_match\n";
  25.  
  26. // strtok
  27. $before = microtime(true);
  28. for ($i=0 ; $i<$nr_loops ; $i++) {
  29. $parte = strtok($link, '/');
  30. }
  31. $after = microtime(true);
  32. echo $parte." | ";
  33. echo ($after-$before)/$i . " sec / por strtok\n";
  34.  
  35. // substr
  36. $before = microtime(true);
  37. for ($i=0 ; $i<$nr_loops ; $i++) {
  38. $parte = substr($link, 0, strpos($link, "/"));
  39. }
  40. $after = microtime(true);
  41. echo $parte." | ";
  42. echo ($after-$before)/$i . " sec / por substr\n";
  43.  
  44.  
Success #stdin #stdout 0.39s 82944KB
stdin
Standard input is empty
stdout
13542345 | 7.9003810882568E-8 sec / por explode
13542345 | 2.0149707794189E-7 sec / por preg_match
13542345 | 4.8128128051758E-8 sec / por strtok
13542345 | 5.2464962005615E-8 sec / por substr