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 :

Utilisation de la fonction preg_replace()


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Utilisation de la fonction preg_replace()
    Bonjour a tous !

    Je viens de m'inscrire sur le forum car j'ai un problème sur mon code php que je n'arrive pas a comprendre/régler.

    Donc voila mon problème :


    J'ai une page ou je reçois les résultats d'un formulaire. Les résultat reçu je souhaite les envoyer a une fonction qui va supprimer tout les caractère spéciaux en les remplaçant pas des caractère simple ex : "é" devient 'e'. Mon problème est que quand j'envoie mes données a ma fonction, ma fonction retourne rien du tout, cependant ma fonction marche correctement. Je vais vous mettre un bout de code pour vous expliquer plus clairement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
    require 'Cv.class.php';
    require 'CvManager.class.php';
    $db = new PDO('mysql:host=localhost;dbname=test', '*******', '****');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
    $cvmanager = new CvManager($db);
    echo $_POST['prenom']; // affiche 'ééé';
    echo $_POST['nom']; // affiche 'ààà';
    $toto = 'ééééàéàààààà';
    echo $toto // Affiche des case noir avec des point d'interrogation comme si il y a un problème d'encodage.
    echo $cvmanager->filter($_POST['prenom']); // j'envoie a ma fonction et j'affiche le résultat. Or rien ne s'affiche
    echo $cvmanager->filter($_POST['nom']); // j'envoie a ma fonction et j'affiche le résultat. Or rien ne 'affiche
    echo $cvmanager->filter($toto); // Et alors la j'envoie ma variable $toto a la fonction et l'echo m'affiche 'eeeeaeaaaaaa';
    ?>

    je vous met ici le code de ma fonction filter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public function filter($in) 
    {
    	$in = strtolower($in);
    	$search = array('@[éèêë]@i','@[àâä]@i','@[îï]@i','@[ûùü]@i','@[ôö]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_]@');
    	$replace = array ('e','a','i','u','o','c','_','');
    	return preg_replace($search, $replace, $in);
    }


    Donc je ne comprend pas pourquoi ma fonction ne marche pas lorsque je lui envoie des variable issu d'un formulaire mais que tout fonctionne correctement lorsque je déclare une variable et l'envoie a ma fonction. Si une personne sait d'où viens le problème sa serait sympa de m'aider car sa fait un moment que je galère decu (j'espère avoir été clair)

  2. #2
    Membre éprouvé
    Homme Profil pro
    Touche à tout informatique autodidacte
    Inscrit en
    Janvier 2007
    Messages
    811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Touche à tout informatique autodidacte

    Informations forums :
    Inscription : Janvier 2007
    Messages : 811
    Points : 915
    Points
    915
    Par défaut
    Bonjour,
    Un simple
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST['prenom'];

    qu'est ce que ça donne?

    Autrement,
    il ne manquerait pas un ; à la fin?

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Alors si je fait un simple cela va afficher correctement ce que contient la variable en fonction des données saisie dans le formulaire. Sinon en effet il manque un ';' je l'ai probablement supprimer lorsque j'ai rédiger mon message.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    plutôt qu'un echo, essaye un var_dump sur les résultats, histoire de savoir ce que preg_replace te renvoie réellement.
    Tu peux aussi ajouter un echo au niveau de strtolower dans ta fonction.

  5. #5
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Pour ma part, j'aurais fait:!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public function filter($in) 
    {
    	$in = strtolower($in);
    	$search = array('@[éèêë]@i','@[àâä]@i','@[îï]@i','@[ûùü]@i','@[ôö]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_]@');
    	$replace = array ('e','a','i','u','o','c','_','');
                 $result = preg_replace($search, $replace, $in);
                 echo $result;
    	return $result;
    }
    $result devrait être vide !

Discussions similaires

  1. [LG]Utilisation de la fonction time
    Par kmitz dans le forum Langage
    Réponses: 4
    Dernier message: 08/04/2005, 14h05
  2. Utilisation de la fonction de déploiement
    Par mchicoix dans le forum XMLRAD
    Réponses: 4
    Dernier message: 01/03/2005, 15h35
  3. [LG]Utilisation de la fonction Random
    Par chloe95 dans le forum Langage
    Réponses: 1
    Dernier message: 01/03/2005, 15h20
  4. Utilisation de la fonction qsort
    Par Jsmeline dans le forum C
    Réponses: 8
    Dernier message: 28/01/2005, 13h40
  5. [LG]librairies : utiliser seulement quelques fonctions
    Par wwwroom dans le forum Langage
    Réponses: 13
    Dernier message: 14/05/2004, 23h50

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