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 :

str_replace avec $_POST


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut str_replace avec $_POST
    bonjour,

    je souhaite remplacer tous les accent dans une chaine de caractère que je récupère via la méthode post:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $Nom2 = $_POST["Name"];
    $Accents = array("Â", "Ä", "À","â","ä","à","Ê","Ë","È","é","è","ê","ë","Î","Ï","Ì","î","ï","ì","Ö","Ô","Ò","ö","ô","ò");
    $SansAcc = array("A", "A", "A","a","a","a","E","E","E","e","e","e","e","I","I","I","I","i","i","O","O","O","o","o","o");
     
    $Nom = str_replace($Accents, $SansAcc, $Nom2);
    Je tiens à précisé que cette variable $Nom, je l'insère dans une base de données, et que si cette variable $Nom2 je la fixe à une valeur(ex: "té"), cela fonctionne.

    Je récupère bien la viariable $_POST["Name"], mais la fonctions str_replace ne traite pas cette variable.

    Merci de bien vouloir m'éclairer sur ce problème.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 420
    Par défaut
    écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $Nom2 = $_POST["Name"];
    var_dump($Nom2);
    $Accents = array("Â", "Ä", "À","â","ä","à","Ê","Ë","È","é","è","ê","ë","Î","Ï","Ì","î","ï","ì","Ö","Ô","Ò","ö","ô","ò");
    $SansAcc = array("A", "A", "A","a","a","a","E","E","E","e","e","e","e","I","I","I","I","i","i","O","O","O","o","o","o");
     
    $Nom = str_replace($Accents, $SansAcc, $Nom2);
    ça affiche quoi maintenant ?

  3. #3
    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
    Par défaut
    Tu peux utiliser preg_replace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $Nom2 = $_POST["Name"];
    $Accents = array('/Â/', '/Ä/', '/À/', ...., /'ò/');
    $SansAcc = array('A', 'A', 'A', .... ,'o');
    preg_replace($Accents , $SansAcc , Nom2);
    ?>

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    écris :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $Nom2 = $_POST["Name"];
    var_dump($Nom2);
    $Accents = array("Â", "Ä", "À","â","ä","à","Ê","Ë","È","é","è","ê","ë","Î","Ï","Ì","î","ï","ì","Ö","Ô","Ò","ö","ô","ò");
    $SansAcc = array("A", "A", "A","a","a","a","E","E","E","e","e","e","e","I","I","I","I","i","i","O","O","O","o","o","o");
     
    $Nom = str_replace($Accents, $SansAcc, $Nom2);
    ça affiche quoi maintenant ?
    bonjour et merci de bien vouloir m'aider.
    ca m'affiche bien que ces une chaine de caractère:

    string(3) "eeé"

    Mais cela ne marche toujours pas.

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    Citation Envoyé par Fench Voir le message
    Tu peux utiliser preg_replace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $Nom2 = $_POST["Name"];
    $Accents = array('/Â/', '/Ä/', '/À/', ...., /'ò/');
    $SansAcc = array('A', 'A', 'A', .... ,'o');
    preg_replace($Accents , $SansAcc , Nom2);
    ?>
    Bonjour et merci à toi quasi de bien vouloir m'aider.
    J'ai essayer ta méthode et celle-ci ne fonctionne pas car ca ne fait pas le remplacement.

  6. #6
    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
    Par défaut
    J'imagine que tu as corrigé l'erreur que j'avais faite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_replace($Accents , $SansAcc , Nom2);
    En
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_replace($Accents , $SansAcc , $Nom2);
    Peut être aussi en ne prennant pas la même variable ...
    Je vais tester de mon côté

  7. #7
    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
    Par défaut
    Ok ça marche chez moi, juste une petite erreur ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $Nom2 = $_POST["Name"];
    $Accents = array('/Â/', '/Ä/', '/À/', ...., /'ò/');
    $SansAcc = array('A', 'A', 'A', .... ,'o');
    $Nom3 = preg_replace($Accents , $SansAcc , $Nom2);
    ?>
    $Nom3 sera ok !!!

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    Citation Envoyé par Fench Voir le message
    Ok ça marche chez moi, juste une petite erreur ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $Nom2 = $_POST["Name"];
    $Accents = array('/Â/', '/Ä/', '/À/', ...., /'ò/');
    $SansAcc = array('A', 'A', 'A', .... ,'o');
    $Nom3 = preg_replace($Accents , $SansAcc , $Nom2);
    ?>
    $Nom3 sera ok !!!
    Oui j'ai bien modifier la petite erreur que tu avait faite et meme en changeant le nom de variable, ça me change pas les caractères accentués. je ne boit pas du tout d'ou cela peu venir.

    voila mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $Nom2 = $_POST["Name"];
    	$Accents = array('/é/', '/è/', '/ë/');
    	$SansAcc = array('e', 'e', 'e');
    	$Nom = preg_replace($Accents , $SansAcc , $Nom2);
    	var_dump($Nom);

  9. #9
    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
    Par défaut
    moi, j'ai fait ce test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $Nom2 = 'étoile des mers àà';
    echo $Nom2.'<br/>';
    $Accents = array('/é/', '/à/');
    $SansAcc = array('e', 'a');
    $Nom3 = preg_replace($Accents , $SansAcc , $Nom2);
    echo $Nom3;
    Résultat:
    étoile des mers àà
    etoile des mers aa
    alors je sais pas

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    Ben j'ai creer une page aussi plus simplifier avec un formulaire qui envoi ma donné et qui la traite, mais celle-ci n'est pas traité.

    Je ne voit pas pourquoi.

    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
    19
    20
    21
     
    echo '<form action="AdministrationEquipestest.php" method="post">';
    echo '<table border="0">';
    echo '<tr>';
    echo '<td>Saison:</td>';
    echo '<td>';
    echo '<select name="Saison" id="Saison">';
    echo '<option value="2011/2012">2011/2012</option>';
    echo '<option value="2012/2013">2012/2013</option>';
    echo '<option value="2013/2014">2013/2014</option>';
    echo '</select>';
    echo '</td>';
    echo '<td>Equipe:</td>';
    echo '<td>';
    echo '<input type"=text" maxlength="70" size="15" name="Name" value="'.$Name.'">';
    echo '</td>';
    echo '<td><input type="submit" name="CreeEquipe" value="Crée"></td>';
    echo '</tr>';
    echo '</table>';
    echo '</form>';
    ?>
    et voila le traitement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $Nom2 = $_POST["Name"];
    $Accents = array('/é/', '/è/', '/ë/');
    $SansAcc = array('e', 'e', 'e');
    $Nom = preg_replace($Accents , $SansAcc , $Nom2);
    var_dump($Nom);

  11. #11
    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
    Par défaut
    Dans quelle format est ta chaine en entrée, moi je travaille tout en utf8 alors que peut être tu es sous le navigateur en iso et du coup les caractères spéciaux avec des accents ne sont pas reconnus.

    Malheureusement je suis pas spécialiste là dessus mais regardes déjà utf8_decode ou autres ...

  12. #12
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 63
    Par défaut
    Merci de ton aide, car 'était bien cela.
    Mes pages traitaient les données en iso et ne changer pas les caractères.
    du coup en utilisant la fonctions utf8_encode, cela fonctionne.

    Merci beaucoup.

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

Discussions similaires

  1. str_replace avec des tableaux
    Par robbiano78 dans le forum Général Java
    Réponses: 2
    Dernier message: 04/02/2008, 10h08
  2. Problème avec $_POST
    Par zoukinette76 dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2007, 14h12
  3. [FPDF] Problème avec $_POST
    Par coco38 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 23/04/2007, 13h46
  4. pb avec $_post
    Par marie20 dans le forum Langage
    Réponses: 9
    Dernier message: 13/03/2007, 17h54
  5. isset() toujours vrai avec $_POST
    Par mrttlemonde dans le forum Langage
    Réponses: 6
    Dernier message: 16/03/2006, 10h33

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