IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Remplacer ereg_replace par preg_replace [RegEx]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 2
    Points
    2
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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, 'ÄÂÀâäàãéèêëËÉÈÙ€îïìôõöÖÔÒùûüçǍ‡*/:', 'aaaaaaaeeeeeeeeeeiiioooooouuucccc-..');	// Attention 'Ù' devient 'e' !
      $Correction = ereg_replace('[\\|/%\'°";?,‚!]', '.', $Correction);
      $Correction = ereg_replace('( |\. | \.|\.\.|\.-|-\.)', '.', $Correction);
      $Correction = ereg_replace('(--|-\.-|-_|_-)', '-', $Correction);
    et ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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;
     
    	}
     
         }

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et quel est ton problème ?

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    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

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 74

    Informations forums :
    Inscription : Janvier 2011
    Messages : 7
    Points : 11
    Points
    11
    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

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    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 ?

  6. #6
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    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

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu ne nous donnes pas les erreurs, ca va etre difficile de te dire ce que tu fais mal.

  8. #8
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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,

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    c'est pas dur faut juste lire la doc...
    http://www.php.net/manual/fr/regexp....delimiters.php

  10. #10
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    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

  11. #11
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Tmp_Correction = preg_replace($Erreur['Correction'], $Erreur['Remplacement'], $Correction);
    J'ai essayé ceci mais ça marche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Tmp_Correction = preg_replace('/$Erreur['Correction']/', $Erreur['Remplacement'], $Correction);
    Merci

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est une erreur de syntaxe PHP que tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Tmp_Correction = preg_replace('#' . $Erreur['Correction'] .'#', $Erreur['Remplacement'], $Correction);

  13. #13
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    et ben voilà, Merci bcp Sabotage

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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, 'ÄÂÀâäàãéèêëËÉÈÙ€îïìôõöÖÔÒùûüçǍ‡*/:', '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

  14. #14
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    à quoi il sert ton code ?

  15. #15
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    à corriger et nettoyer les adresses emails

  16. #16
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 727
    Points
    10 727
    Par défaut
    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

  17. #17
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 2
    Points
    2
    Par défaut
    Merci stealth35 et sabotage pour votre help

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Remplacement par preg_replace
    Par Invité dans le forum Langage
    Réponses: 8
    Dernier message: 11/09/2012, 09h27
  2. Remplacer foncton eregi_replace par preg_replace
    Par Amouna85 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 10/10/2011, 16h40
  3. [RegEx] Remplacer ereg_replace par preg_replace
    Par manuaparis dans le forum Langage
    Réponses: 2
    Dernier message: 26/12/2009, 18h38
  4. [Configuration] remplacement des é par des i
    Par illegalsene dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 18/10/2005, 17h37
  5. [ASP] include remplacer chemin par variable
    Par damn dans le forum ASP
    Réponses: 3
    Dernier message: 01/10/2004, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo