Problème avec preg_replace

Résolu
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008 - 21 avril 2006 à 16:08
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008 - 23 avril 2006 à 17:58
Bonjour,

Je souhaite remplacer une chaîne de caractère par une autre.
J'ai opté pour preg_replace mais cela ne fonctionne pas.

Voici pour simplifier mon exemple.

Merci par avance.
Cdt

<?php
$text 'document.form_update.x2x2x1x0x0x0xjan.value Number (document.form_update.x3x2x1x1x0x0xjan.value) + Number (document.form_update.x3x2x1x2x0x0xjan.value) + Number (document.form_update.x3x2x1x3x0x0xjan.value)document.form_update.x2x2x2x0x0x0xjan.value = Number (document.form_update.x3x2x2x1x0x0xjan.value) + Number (document.form_update.x3x2x2x2x0x0xjan.value) + Number (document.form_update.x3x2x2x3x0x0xjan.value)document.form_update.x2x2x3x0x0x0xjan.value = Number (document.form_update.x3x2x3x1x0x0xjan.value) + Number (document.form_update.x3x2x3x2x0x0xjan.value) + Number (document.form_update.x3x2x3x3x0x0xjan.value)';

$find = ')doc';
$replace = '); doc';

echo preg_replace($find, $replace, $text);
?>

3 réponses

nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
21 avril 2006 à 16:22
C'est bon.
Désolé pour le dérangement.
J'ai opté pour str_replace();

<?php
$text 'document.form_update.x2x2x1x0x0x0xjan.value Number (document.form_update.x3x2x1x1x0x0xjan.value) + Number (document.form_update.x3x2x1x2x0x0xjan.value) + Number (document.form_update.x3x2x1x3x0x0xjan.value)document.form_update.x2x2x2x0x0x0xjan.value = Number (document.form_update.x3x2x2x1x0x0xjan.value) + Number (document.form_update.x3x2x2x2x0x0xjan.value) + Number (document.form_update.x3x2x2x3x0x0xjan.value)document.form_update.x2x2x3x0x0x0xjan.value = Number (document.form_update.x3x2x3x1x0x0xjan.value) + Number (document.form_update.x3x2x3x2x0x0xjan.value) + Number (document.form_update.x3x2x3x3x0x0xjan.value)';

echo str_replace(")doc", "); doc", $text);
?>

En revanche, si quelqu'un veut bien m'expliquer pourquoi cela fonctionne avec str et non avec preg,je suis preneur.
Merci
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
21 avril 2006 à 21:55
Salut,

il me semble que ça vient des parenthèses qui sont considérées dans tes preg comme des caractères spéciaux, il aurait fallu mettre des caractères d'échappement devant (antislash dans le cas présent).

Mais de toute façon c'est mieux que ça n'ait pas fonctionné car str_replace est plus rapide que preg_replace :-)

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
nougitch Messages postés 431 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 17 novembre 2008
23 avril 2006 à 17:58
Merci pour tes petits conseils antho ;-)
@+
0
Rejoignez-nous