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 :

Problème avec traitement de chaînes


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 45
    Points : 29
    Points
    29
    Par défaut Problème avec traitement de chaînes
    Probleme d'utilisation de la fonction ereg_replace.
    Afin d'afficher correctement le contenu d'en chaine dans la cellule d'un tableau html, avec prise en compte des retours a la ligne.
    J'applique cette fonction a une chaine :
    [php]
    $chaine=StripCSlashes(trim($_POST['formulaire'])) // je pense pas que cette action soit responsable du probleme mais je la met quand meme
    $formatligne=chunk_split($chaine,160,'<BR>'); // pour obliger un saut de ligne apres une ligne remplie
    $chaine=ereg_replace(chr(13),'<br>',$formatligne); // ligne qui pose un probleme pour moi
    [/php]

    avant l'utilisation de la fonction, $chaine='1'+chr(13)+'2'
    apres l'utilisation de la fonction, $chaine='1'+'<BR>+'2'+'<BR>+'?'+'2>' ou ? est soit un espace ou un caractere non affichable.
    d'apres vous il se passe quoi ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cortex007
    Probleme d'utilisation de la fonction ereg_replace.
    Afin d'afficher correctement le contenu d'en chaine dans la cellule d'un tableau html, avec prise en compte des retours a la ligne.
    J'applique cette fonction a une chaine :
    [php]
    $chaine=StripCSlashes(trim($_POST['formulaire'])) // je pense pas que cette action soit responsable du probleme mais je la met quand meme
    $formatligne=chunk_split($chaine,160,'<BR>'); // pour obliger un saut de ligne apres une ligne remplie
    $chaine=ereg_replace(chr(13),'<br>',$formatligne); // ligne qui pose un probleme pour moi
    [/php]

    avant l'utilisation de la fonction, $chaine='1'+chr(13)+'2'
    apres l'utilisation de la fonction, $chaine='1'+'<BR>+'2'+'<BR>+'?'+'2>' ou ? est soit un espace ou un caractere non affichable.
    d'apres vous il se passe quoi ?
    normalement il t'affiche le resultat de 1+2 donc 3
    si tu veux afficher 1 puis retour a la ligne 2 dans ce cas c'est des guillemets qu'il faut mettre et non pas des apostrophes
    $chaine="1"+chr(13)+"2"
    ereg_replace(chr(13),"<br>",$formatligne) etc

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Moi je ferai:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $chaine = stripslashes(trim($_POST['formulaire']));
    $formatligne = wordwrap($chaine, 160);
    $chaine = str_replace("\r\n" , '<br>', $formatligne);

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    Merci de vos reponse
    ...
    Mince le comportement de str_replace est le meme que celui de ereg_replace
    (ca rajoute des morceau de chaine non pevu)
    pour resumer la situation, je cherche a transformer les chr(13) en <br> dans une chaine pour la voir s'afficher avec un minimum de formatage dans une cellule de tableau ou un cadre. les chr(13) pris en compte devrons etre ceux existant dans la chaine est ceux qui devrons etre introduit dans la chaine pour tenir compte du nombre de colonne du contenant
    Je ne crois pas que le probleme viens du chunk_split la mise en commentaire ou le remplacement par wordwrap dans le code cette fonction et le comportement est le meme

  5. #5
    Invité
    Invité(e)
    Par défaut
    ben met des guillemet comme je t'ai dit ça devrait le faire sans soucis

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    le remplacement par des guillements ne change rien ...
    je commence a croire que la chaine issue du formulaire post doit etre bizard en fait , ca vient d'un textarea si ca peut aider

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 45
    Points : 29
    Points
    29
    Par défaut
    l'utilisation des basiles html preformate <pre> resolvent le probleme

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

Discussions similaires

  1. Problème avec les listes chaînées
    Par yous18 dans le forum C
    Réponses: 38
    Dernier message: 25/10/2007, 22h30
  2. Réponses: 3
    Dernier message: 25/10/2007, 21h57
  3. Réponses: 4
    Dernier message: 03/01/2007, 21h25
  4. [TP 7] Problème avec les listes chaînées (error 202)
    Par thelinekioubeur dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 06/12/2006, 23h15
  5. [Tableaux] Problème avec remplacement dans chaîne
    Par Baptiste Wicht dans le forum Langage
    Réponses: 5
    Dernier message: 13/07/2006, 10h04

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