2008-12-14 7 views
1
<?php 
$string = 'The quick brown fox jumped over the lazy dog.'; 
$patterns[0] = '/quick/'; 
$patterns[1] = '/brown/'; 
$patterns[2] = '/fox/'; 
$replacements[0] = 'slow'; 
$replacements[1] = 'black'; 
$replacements[2] = 'bear'; 
echo preg_replace($patterns, $replacements, $string); 
?> 

Ok les gars, Maintenant, j'ai le code ci-dessus. Cela fonctionne bien. Maintenant, par exemple, je voudrais aussi remplacer "paresseux" et "chien" avec "lent" Ce que je dois faire maintenant est comme ça, non?remplacement de tableaux PHP multi-mots

<?php 
$string = 'The quick brown fox jumped over the lazy dog.'; 
$patterns[0] = '/quick/'; 
$patterns[1] = '/brown/'; 
$patterns[2] = '/fox/'; 
$patterns[3] = '/lazy/'; 
$patterns[4] = '/dog/'; 
$replacements[0] = 'slow'; 
$replacements[1] = 'black'; 
$replacements[2] = 'bear'; 
$replacements[3] = 'slow'; 
$replacements[4] = 'slow'; 
echo preg_replace($patterns, $replacements, $string); 
?> 

Ok.

Donc ma question est, est-il possible que je peux faire comme ce

$patterns[0] = '/quick/', '/lazy/', '/dog/'; 
$patterns[1] = '/brown/'; 
$patterns[2] = '/fox/'; 
$replacements[0] = 'slow'; 
$replacements[1] = 'black'; 
$replacements[2] = 'bear'; 

Merci

+0

Quelqu'un qui le devrait devrait retagger ceci avec regex et peut-être supprimer des tableaux. – jmucchiello

Répondre

2

Vous pouvez utiliser des tuyaux pour "Alternation":

$patterns[0] = '/quick|lazy|dog/'; 
+0

Merci, La sortie est exactement ce que j'attends. –

0

Vous pouvez aussi simplement attribuer tableau comme ainsi:

$patterns = array('/quick/','/brown/','/fox/','lazy/',/dog/'); 

qui affectent bien sûr 0-4

2

pourquoi ne pas utiliser str_replace?

$output = str_replace(array('quick', 'brown', 'fox'), array('lazy', 'white', 'rabbit'), $input) 
Questions connexes