Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2011, 20h31   #1
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 0
Points : 0
Par défaut Remplacer ereg_replace par preg_replace

Bonjour tt le monde,

Svp je voudrais changer ereg_replace par preg_replace ci-dessous :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
$Correction = $Email;
$Correction = trim(ereg_replace ('(%20)',  ' ', $Correction));
$Correction = trim(ereg_replace ('<br>' ,  '' , $Correction));
$Correction = trim(eregi_replace('(%3c)',  '.', $Correction));
$Correction = trim(eregi_replace('}'   ,  'e', $Correction));
$Correction = trim(ereg_replace ("[](){}<> \t=$£µ§¤#^'`¨~²[]\"<>*", '' , $Correction));								
   if (!strstr($Correction, '@') && strstr($Correction, 'à')) { $Correction = str_replace('à', '@', $Correction); }
  $Correction = strtr($Correction, 'ÄÂÀâäàãéèêëËÉÈÙ€îïìôõöÖÔÒùûüçLJ*/:', 'aaaaaaaeeeeeeeeeeiiioooooouuucccc-..');	// Attention 'Ù' devient 'e' !
  $Correction = ereg_replace('[\\|/%\'°";?,‚!]', '.', $Correction);
  $Correction = ereg_replace('( |\. | \.|\.\.|\.-|-\.)', '.', $Correction);
  $Correction = ereg_replace('(--|-\.-|-_|_-)', '-', $Correction);
et ici :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
else
	{
	$Tmp_Correction = ereg_replace($Erreur['Correction'], $Erreur['Remplacement'], $Correction);
 
	if ($Correction != $Tmp_Correction)
	{
		$Correction = $Tmp_Correction;
 
	}
	else
	{
	$Correction = ereg_replace($Erreur['Correction'],   $Erreur['Remplacement'], $Correction);
	continue;
 
	}
 
     }
mr_insane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 20h35   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Et quel est ton problème ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 20h45   #3
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 0
Points : 0
Ben le prb c'est que ça marche sur PHP4 mais pas sur la dernière version du PHP5, donc je voulais remplacer ereg_replace puisque il est "deprecated".

Merci
mr_insane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 20h57   #4
Invité régulier
 
Françoise
Inscription : janvier 2011
Messages : 6
Détails du profil
Informations personnelles :
Nom : Françoise
Âge : 62

Informations forums :
Inscription : janvier 2011
Messages : 6
Points : 7
Points : 7
Par défaut j'ai peut-être la solution

bonjour
pour adapter un portail php4 au php5 on m'a dit
remplacer ereg par mb_ereg ou preg_match
j'ai remplacé par mb_ereg et ça a marché partout
alors peut-être
Fran
frannyz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 23h27   #5
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Citation:
Ben le prb c'est que ça marche sur PHP4 mais pas sur la dernière version du PHP5, donc je voulais remplacer ereg_replace puisque il est "deprecated".
ca ce n'est pas ton problème, c'est ce que tu veux faire.
Qu'est ce que tu n'arrives pas a faire dans ce passage d'une fonction a l'autre ?
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 23h59   #6
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 0
Points : 0
Merci frannyz, je vais la tester tt de suite.

Sabotage: J'ai des erreurs dans mon fichier log dû a cette fonction.
Merci bcp pour vos réponses les gars
mr_insane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 08h03   #7
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Si tu ne nous donnes pas les erreurs, ca va etre difficile de te dire ce que tu fais mal.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 11h39   #8
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 0
Points : 0
Merci pour ton aide sabotage,

ereg_replace() : REG_EMPTY in ..... ligne 177
ereg_replace() : REG_EMPTY in ..... ligne 177
ereg_replace() : REG_EMPTY in ..... ligne 186

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
else
	{
	$Tmp_Correction = ereg_replace($Erreur['Correction'], $Erreur['Remplacement'], $Correction);  <---- ligne 177
 
	if ($Correction != $Tmp_Correction)
	{
		$Correction = $Tmp_Correction;
 
	}
	else
	{
	$Correction = ereg_replace($Erreur['Correction'],   $Erreur['Remplacement'], $Correction); <----- ligne 186
	continue;
 
	}
 
     }
Cordialement,
mr_insane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 11h54   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
c'est pas dur faut juste lire la doc...
http://www.php.net/manual/fr/regexp....delimiters.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 11h56   #10
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 0
Points : 0
Bonjour Frannyz,

J'ai testé ta solution, mais malheureusement ne fait pas le travail, par contre je n'ai eu aucune erreur sur mon log
mr_insane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 13h37   #11
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 0
Points : 0
Citation:
Envoyé par stealth35 Voir le message
c'est pas dur faut juste lire la doc...
http://www.php.net/manual/fr/regexp....delimiters.php
Oui Stealth, t'as touché le prb mais comment ajouter des delimeters ici :

Code :
1
2
 
$Tmp_Correction = preg_replace($Erreur['Correction'], $Erreur['Remplacement'], $Correction);
J'ai essayé ceci mais ça marche pas
Code :
1
2
 
$Tmp_Correction = preg_replace('/$Erreur['Correction']/', $Erreur['Remplacement'], $Correction);
Merci
mr_insane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 15h02   #12
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
C'est une erreur de syntaxe PHP que tu as :
Code :
$Tmp_Correction = preg_replace('#' . $Erreur['Correction'] .'#', $Erreur['Remplacement'], $Correction);
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 16h04   #13
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 0
Points : 0
et ben voilà, Merci bcp Sabotage

Une 'tite question, les métacaractères sont plus valide ici :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
 
$Correction = $Email;
$Correction = trim(preg_replace ('#(%20)#',  ' ', $Correction));
$Correction = trim(preg_replace ('#<br>#' ,  '' , $Correction));
$Correction = trim(preg_replace('#(%3c)#i',  '.', $Correction));
$Correction = trim(preg_replace('#}#i'   ,  'e', $Correction));
$Correction = trim(preg_replace ('@[](){}<> \t=$£µ§¤#^`¨~²[]\"<>*@i', '' , $Correction));								
	if (!strstr($Correction, '@') && strstr($Correction, 'à')) { $Correction = str_replace('à', '@', $Correction); }
$Correction = strtr($Correction, 'ÄÂÀâäàãéèêëËÉÈÙ€îïìôõöÖÔÒùûüçLJ*/:', 'aaaaaaaeeeeeeeeeeiiioooooouuucccc-..');	/
$Correction = preg_replace('#[\\|/%\'°";?,‚!]#', '.', $Correction);
erreur vient d'ici-->> $Correction = preg_replace('#( |\. | \.|\.\.|\.-|-\.)#', '.', $Correction);
$Correction = preg_replace('#(--|-\.-|-_|_-)#', '-', $Correction);
Par exemple pour remplacer un "espace" avec "" il me met "." ( point ) au lieu de "" ( vide)

Merci pour ton aide
mr_insane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 16h14   #14
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
à quoi il sert ton code ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 17h01   #15
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 0
Points : 0
Bonjour,

à corriger et nettoyer les adresses emails
mr_insane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 17h11   #16
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 466
Points : 8 466
Citation:
Envoyé par mr_insane Voir le message
Bonjour,

à corriger et nettoyer les adresses emails
ouai donc le même boulot que FILTER_SANITIZE_EMAIL
http://www.php.net/manual/fr/filter....nitization.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 11h02   #17
Invité de passage
 
Inscription : mai 2007
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 11
Points : 0
Points : 0
Merci stealth35 et sabotage pour votre help
mr_insane est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h43.


 
 
 
 
Partenaires

Hébergement Web