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

PHP & Base de données Discussion :

erreur avec ereg_replace


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut erreur avec ereg_replace
    bonjour, voila j'ai un problème.

    je n'arrive pas à faire fonctionner ce programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // formatage de l'url pour passage sans erreur de syntaxe
    function f_str($n)
    {
    	$n = strtolower($n);
    	$n = strtr($n,"AÁÂAÄAàáâaäaOÓÔOÖOoóôoöoEÉEËêéèëÇçIÍÎIiíîiUÚUÜuúuüyNn","aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
    	$n = trim($n);
    	$n = stripslashes($n);
    	$n = ereg_replace(" ","-",$n);
    	$n = ereg_replace("---","-",$n);
    	$n = ereg_replace("--","-",$n);
    	$n = ereg_replace('[^A-Za-z0-9\_\.\-]', '', $n);
    	return $n;
    }
    pourtant cette fonction marchait très bien sur un autre poste durant mon stage ...
    mais chez moi, ça ne marche pas. la seule différence est la version de wamp, j'ai la dernière. celle que j'utilisais au travail datait un peu.
    j'utilise cette fonction en local, l'erreur est la suivante :
    Function ereg_replace() is deprecated in ...
    aux lignes 9, 10, 11 et 12. autrement dit c'est la fonction ereg_replace qui fait tout planter.

    comment puis-je améliorer cette fonction pour qu'elle fonctionne dans toutes les situations ?

    merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Points : 192
    Points
    192
    Par défaut
    Depuis PHP 5.3.0 la fonction ereg_replace est devenue obsolète.

    Il te faut utiliser preg_replace à la place.

    Va voir ici pour savoir comment l'utiliser

  3. #3
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    merci, j'essaie de comprendre ce genre de syntaxe mais pour moi c'est un vrai hachoir :s

    peux-tu m'aide pour l'écriture de ces lignes stp ? j'ai un peu de mal à comprendre

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    seule cette ligne me pose problème, je ne sais pas comment la convertir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $n = ereg_replace('[^A-Za-z0-9\_\.\-]', '', $n);

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Août 2007
    Messages : 156
    Points : 192
    Points
    192
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("/Une_regex_de_ce_que_tu_veux_remplacer/", "ce_par_quoi_tu_veux_remplacer", $dans_quoi_tu_veux_remplacer);
    exemple pour ta première :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $n = preg_replace("/\s/ ","-",$n);
    EDIT :

    pour celle que tu n'arrives pas essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $n = preg_replace("/[^\w\.\-]/", "", $n);

  6. #6
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Sinon,il me semble que les fonction ereg* se sont vu renommer en mb_ereg*...

    http://php.net/manual/fr/function.mb-ereg-replace.php

    Mais sinon, comme dit précédemment,il vaut mieux se tourner vers preg et ses copines

Discussions similaires

  1. [RegEx] Erreur avec ereg_replace()
    Par darkloy dans le forum Langage
    Réponses: 4
    Dernier message: 19/06/2010, 09h55
  2. [RegEx] obtention d'une erreur avec ereg_replace()
    Par jiojioforever dans le forum Langage
    Réponses: 6
    Dernier message: 28/05/2007, 10h12
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

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