2010-09-18 7 views
1

Je veux preg_replace "Word" en PHP.preg_replace de "Word" dans une phrase et "Word". à la fin d'une phrase

$ret = 'I gave my Word to you.';  
    $pattern = '/\bWord\b/i'; 
    $ret = preg_replace($pattern,"Heart",$ret); 
// echo $ret; = "I gave my Heart to you"; 

Cela fonctionne jusqu'à maintenant. Mais si la phrase est "je vous ai donné ma parole". ou "Je vous ai donné ma parole!" ça ne change pas la "Parole". dans "Coeur".

+3

[Fonctionne bien] (http://www.ideone.com/lAiI7). – kennytm

+0

Si c'est un remplacement si simple, 'str_replace' est peut-être plus rapide que l'expression régulière. – Fanis

+1

@Fanis: 'str_replace' ne détectera pas les limites de mots. – kennytm

Répondre

3

Vous ne savez pas quel est le problème. travaille pour moi.

<? 
    $ret = 'I gave my Word to you Word.'; 
    $pattern = '/\bWord\b/i'; 
    $ret = preg_replace($pattern,"Heart",$ret); 
    var_dump($ret); 
?> 

chaîne (29) "Je vous ai donné mon Coeur."

+2

Pour ajouter à cela, les limites des mots \ b correspondent aux mots avec des caractères [a-zA-Z0-9_]. – Ollie

+0

Hmm, quand je mets ceci dans un seul fichier php cela fonctionne, dans mon autre code pas. peut-être que le problème est dans un autre code. merci jusqu'ici pour ouvrir mes yeux – kalimero

Questions connexes