fork download
  1. <?php
  2.  
  3. $carriers = [
  4. '/^(?=\d*$)(?:.{12}|.{15})$/' => 'FEDEX',
  5. '/^(1Z)/' => 'UPS',
  6. ];
  7.  
  8.  
  9. $trackingNumber = [
  10. '9999 9999 9999',
  11. '1Z 999 AA1 01 2345 6784',
  12. ];
  13.  
  14.  
  15.  
  16. foreach($trackingNumber as $tracking){
  17. foreach($carriers as $pattern => $carrier){
  18. if(preg_match($pattern, str_replace(' ', '', $tracking))){
  19. echo "Carrier is {$carrier} for $tracking matches {$pattern}\n";
  20. break;
  21. }
  22. }
  23. }
Success #stdin #stdout 0.02s 23928KB
stdin
Standard input is empty
stdout
Carrier is FEDEX for 9999 9999 9999 matches /^(?=\d*$)(?:.{12}|.{15})$/
Carrier is UPS for 1Z 999 AA1 01 2345 6784 matches /^(1Z)/