web-dev-qa-db-fra.com

PHP preg_replace / preg_match vs PHP str_replace

Quelqu'un peut-il me donner un bref résumé des différences s'il vous plaît?

À mon avis, ils font tous les deux la même chose?

Merci

34
benhowdle89

str_replace remplace une occurrence spécifique d'une chaîne, par exemple "foo" ne correspondra et ne remplacera que: "foo". preg_replace fera la correspondance des expressions régulières, par exemple "/f.{2}/" fera correspondre et remplacera "foo", mais aussi "fey", "fir", "fox", "f12", etc.

[ÉDITER]

Voir par vous-même:

$string = "foo fighters";
$str_replace = str_replace('foo','bar',$string);
$preg_replace = preg_replace('/f.{2}/','bar',$string);
echo 'str_replace: ' . $str_replace . ', preg_replace: ' . $preg_replace;

La sortie est:

str_replace: bar fighters, preg_replace: bar barhters

:)

42
mingos

str_replace remplacera simplement une chaîne fixe par une autre chaîne fixe, et ce sera beaucoup plus rapide.

Les fonctions d'expression régulière vous permettent de rechercher et de remplacer par un motif non fixe appelé expression régulière . Il existe de nombreuses "saveurs" d'expression régulière qui sont pour la plupart similaires mais qui ont certains détails différents; celui dont nous parlons ici est les expressions régulières compatibles Perl ( PCRE ).

S'ils vous ressemblent, vous devez utiliser str_replace.

13
Jon

str_replace Recherche des occurrences de texte pur tandis que preg_replace Recherche des modèles.

5