preg_match VS preg_replace
|Après lecture d’un titre comme celui là il est normal de se demander ce qu’on peut comparer entre preg_match et preg_replace. En effet, ces deux fonctions PHP n’ont pas le même but : preg_match test si une chaîne de caractères réponds à un modèle (ou pattern) alors que preg_replace remplace le modèle trouvé par une autre valeur.
La question que je me suis posé est la suivante : Est-il plus intéressant d’utiliser preg_match ou preg_replace pour convertir une date MySQL en format Français ?
(2009-12-13 01:45:00 => 13/12/1988 01:45:00)
Résultat
J’ai développé dans mon laboratoire personnel une toute petite application qui m’a permis d’établir s’il était plus rapide d’utiliser une fonction ou l’autre. Le temps d’exécution de preg_raplace en bleu et celui de preg_match en jaune.

Mes tests
$datetime = '2009-12-13 01:45:00'; $datetimefr_replace = preg_replace( '#^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})$#', '$3/$2/$1 $4:$5:$6', $datetime ); preg_match( '#^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})$#', $datetime, $out ); $datetimefr_match = $out[3].'/'.$out[2].'/'.$out[1].' '.$out[4].':'.$out[5].':'.$out[6];
Si vous voulez vous aussi effectuer ce test, vous trouver ici les tests que j’ai effectué dans le laboratoire. Vous remarquerez que j’ai utilisé deux librairies externes : JPGraph et Un timer perso en PHP.
Test en ligne
Vous pouvez aussi le tester directement sur internet.






