2010-11-08 12 views
2

En utilisant PHP Je cours str_replace plusieurs fois de suite pour changer une chose avec une autre comme ceci:suremployé str_replace et ne peut pas trouver une meilleure façon

$a = str_replace("cake", "c_", $a); 
$a = str_replace("backup", "bk_", $a); 
$a = str_replace("tax_documents", "tax_", $a); 

Et ainsi de suite pour trente lignes. Quel est le moyen le plus efficace de le faire?

Répondre

9

Vous pouvez écrire les règles de remplacement comme ceci:

$replacements = array(
      'cake' => 'c_', 
      'backup' => 'bk_', 
    'tax_documents' => 'tax_' 
); 

Ensuite, utilisez str_replace comme ceci:

$toReplace = array_keys($replacements); 
$replaceWith = array_values($replacements); 
$a = str_replace($toReplace, $replaceWith, $a); 
+0

Je préfère cela à la solution de netcoder parce que je trouve le tableau associatif plus clair. – notJim

+0

Encore mieux que le mien! –

0

preg_replace().

1

Utilisez les tableaux!

$a = str_replace(array("cake", "backup", "tax_documents"), array("c_", "bk_", "tax_"), $a); 
0

Essayez:

$ a = str_replace (array ("tax_documents", "sauvegarde", "gâteau"), array ("tax_", "bk_", "c_"), $ a)

+0

@netcoder me devança: P –

2

La fonction str_replace prendra des tableaux pour la recherche et remplacer des arguments. Essaye ça.

$finds = array("cake", "backup", "tax_documents"); 
$reps = array("c_", "bk_", "tax_"); 
$a = str_replace($finds, $reps, $a); 
Questions connexes