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 :

remplacement de caractères


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Mat67
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 145
    Points : 118
    Points
    118
    Par défaut remplacement de caractères
    Bonjour, lors de la récupération de données d'un formulaire, j'aimerai utiliser une fonction, qui me permettrai de remplacer certains caractères.

    La fonction str_replace ne convient pas tout a fait. Je m'explique :

    Lorsque dans un champ texte l'utilisateur utilise la touche entrée, lorsque je récupère les informations saisies, j'appelle une fonction en javascript, mais l'appel ne ce fait jamais si l'utilisateur utilise la touche entrée.

    firebug m'indique ceci comme erreur :
    unterminated string literal
    [Break on this error] montre('azazaza\n


    et voici le code de l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="Modification/index_courrier.php?num=<? echo $no;?>" onmouseover="montre('<? echo htmlentities(addslashes($comm)); ?>');" onmouseout="cache();">
    Lorsque l'utilisateur tape par exemple :
    aaaaa
    bbb
    cccccc

    si je fait un "echo" de ça, cela donne : aaaaa bbb cccccc

    Donc j'ai pensé utiliser la fonction str_replace et remplacer les espaces par une autre valeur, mais cela ne fonction pas, les espaces ne sont pas reconnu comme étant de "vrai" éspaces.

    Si vous avez des question n'hésitez pas. Merci

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 145
    Points
    145
    Par défaut
    Et en utilisant la fonction nl2br pour transformer les sauts de ligne \n par des <br /> ?

  3. #3
    Membre régulier Avatar de Mat67
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 145
    Points : 118
    Points
    118
    Par défaut
    Exact, c'est ce que je voulais faire, merci.
    Mais cela ne marche toujours pas, l'appel de la fonction reste incorrect :

    unterminated string literal
    [Break on this error] montre('azazaza<br />\n

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 893
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 893
    Points : 16 346
    Points
    16 346
    Par défaut
    La fonction nl2br() ne remplace pas les \n par des <br />, elle rajoute juste un <br /> là où il y a un \n, ce qui fait que le \n reste quand même.

    Il faut que tu utilises la fonction str_replace() pour ce faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    str_replace( "\n", ' ', $comm )
    Et puis :
    Citation Envoyé par Mat67
    Lorsque l'utilisateur tape par exemple :
    aaaaa
    bbb
    cccccc

    si je fait un "echo" de ça, cela donne : aaaaa bbb cccccc

    Donc j'ai pensé utiliser la fonction str_replace et remplacer les espaces par une autre valeur, mais cela ne fonction pas, les espaces ne sont pas reconnu comme étant de "vrai" éspaces.
    Si à l'écran tu crois que ce sont des espaces, ce n'est pas le cas, ce sont juste des retours à la ligne dans le code qui provoquent un espace à l'affichage HTML.

  5. #5
    Membre régulier Avatar de Mat67
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 145
    Points : 118
    Points
    118
    Par défaut
    str_replace( "\n", ' ', $comm ) ne fonctionne pas, j'avais déjà essayé... Pourtantc'est ce qu'il faudrait faire pour que la fonction puisse être appelée.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    149
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Luxembourg

    Informations forums :
    Inscription : Mai 2007
    Messages : 149
    Points : 145
    Points
    145
    Par défaut
    Citation Envoyé par Bisûnûrs Voir le message
    La fonction nl2br() ne remplace pas les \n par des <br />, elle rajoute juste un <br /> là où il y a un \n, ce qui fait que le \n reste quand même.
    Ah ! J'apprends un truc ! En même temps, c'est con d'appeler une fonction nl2br si elle remplace pas les \n par des br.

  7. #7
    Membre régulier Avatar de Mat67
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 145
    Points : 118
    Points
    118
    Par défaut
    keul85, cette fonction replace les \n en général, mais pas dans mon cas, vu que dans les informations que je récupère, il n'y a pas de "\n" mais il remarque qu'il y a un saut de ligne.

    en reprenant l'exemple précédent, le résultat donne :

    aaaaa<br />\nbbb<br />\ncccccc

  8. #8
    Membre régulier Avatar de Mat67
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    145
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 145
    Points : 118
    Points
    118
    Par défaut
    trouvé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $comm = str_replace("\r\n"," ",$comm);
    et hop! sa marche

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

Discussions similaires

  1. Remplacement du caractère ?
    Par Mvu dans le forum ASP
    Réponses: 9
    Dernier message: 06/01/2005, 18h11
  2. Réponses: 11
    Dernier message: 01/12/2004, 19h09
  3. [CR] Chercher et remplacer un caractère dans 1 chaine
    Par franck.cvitrans dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 29/09/2004, 16h42
  4. Fonction permettant de remplacer des caractères
    Par PrinceMaster77 dans le forum ASP
    Réponses: 3
    Dernier message: 06/09/2004, 15h48
  5. Remplacer un caractère
    Par Mvu dans le forum ASP
    Réponses: 5
    Dernier message: 20/07/2004, 09h57

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