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 :

[Tableaux] Retout chariot: cas d'école.


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut [Tableaux] Retout chariot: cas d'école.
    Bonjour à tous,

    Alors j'ai une chaine stockée dans mysql qui contient des retours chariots simple (touche entrée lors de la saisie d'un formulaire).

    Lorsque je récupère cette chaine pour remplir la balise description d'une page web, je n'arrive pas à me défaire de ces retours chariot... J'ai tout essayé. Enfin presque sinon ça marcherait non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $description_fiche = str_replace("<br>","",$description_fiche);
    $description_fiche = str_replace("<br />","",$description_fiche);
    $description_fiche = nl2br($description_fiche);  
    $description_fiche = str_replace(CHR(10),"",$description_fiche);  
    $description_fiche = str_replace(CHR(13),"",$description_fiche); 
    $description_fiche = str_replace('\r',"",$description_fiche); 
    $description_fiche = str_replace('\n',"",$description_fiche); 
    $description_fiche = strip_tags($description_fiche);  
    $description_fiche = stripslashes($description_fiche);
    Malgrés tout ça si je fais un echo de $description_fiche j'ai toujours mes retour chariot qui d'ailleurs sont interprettés comme des <br />

    Aidez moi.... Je deviens dingue !!!

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Tu cherches à faire quoi ? Si c'est à transformer des retours chariots en <br />, c'est la fonction nl2br.
    Si tu veux les supprimer, c'est sans doute "\n" ou "\r" qu'il faut que tu recherches, et pas '/n' ou '/r'.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Bonjour et merci pour votre réponse...

    - J'ai modifié les slashes comme indiqué dans votre réponse mais rien y fait...
    - Ce que je veux faire: Supprimer tout retour chariot quelque soit sa forme...

    En fait je récupère un bout de texte pour le mettre dans la balise description de ma page html mais je n'arrive pas à enlever les retours chariot.

    Y a t'il une technique en hexadécimal pour retrouver le code qui déclenche le retour à la ligne... Vu que ça marche pas avec tous les essais de codes présentés au debut de ce topic, y a t'il quelque chose que j'ai oublié ?

    Merci d'avance...

  4. #4
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par cybertj
    Bonjour et merci pour votre réponse...

    - J'ai modifié les slashes comme indiqué dans votre réponse mais rien y fait...
    - Ce que je veux faire: Supprimer tout retour chariot quelque soit sa forme...

    En fait je récupère un bout de texte pour le mettre dans la balise description de ma page html mais je n'arrive pas à enlever les retours chariot.

    Y a t'il une technique en hexadécimal pour retrouver le code qui déclenche le retour à la ligne... Vu que ça marche pas avec tous les essais de codes présentés au debut de ce topic, y a t'il quelque chose que j'ai oublié ?

    Merci d'avance...
    Ben déjà faudrait savoir si c'est un retour à la ligne avec des caractères que tu dois éliminer, ou un retour HTML. A toi de nous le dire.

    Si c'est un retour HTML, je te suggère str_ireplace plutôt que str_replace.
    Si c'est un retour par caractère, teste aussi "\r\n".

    Mais comme on ne sait toujours pas ce qu'il y a dans ta chaîne, c'est difficile de t'aider.

  5. #5
    Membre habitué Avatar de kodokan
    Profil pro
    Lycéen
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Points : 170
    Points
    170
    Par défaut
    Salut

    Je crois que je trompe pas : tu recrée des <br> après les avoir supprimés !

    regarde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $description_fiche = str_replace("<br>","",$description_fiche);
    $description_fiche = str_replace("<br />","",$description_fiche);
    $description_fiche = nl2br($description_fiche);
    Pourquoi tu fais ça ? ca recrée des retour chariots

    a moins que je trompe lamentablement comme d habitude ...

  6. #6
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par kodokan
    Pourquoi tu fais ça ? ca recrée des retour chariots
    Parce qu'il lit les réponses trop vite...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    31
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 31
    Points : 31
    Points
    31
    Par défaut
    '\n' sera traité en tant que chiane de caractères
    "\n" serra traité en tant que retout chariot

    <?php
    echo 'Salut, \n je suis Simon !';
    // Salut, \n je suis Simon

    echo "Salut, \n je suis Simon !";
    /*
    Salut,
    je suis Simon
    */
    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Bon désolé je crois vraiment que j'ai pas été clair...

    1) Dans phpmyadmin avec mysql si je visualise le texte concerné je vois juste des retour à la ligne sans <br> ou <br /> ni rien d'autre... C'est un simple retour à la ligne comme dans wordpad. Est ce clair ? sinon merci de me dire ce que je dois préciser.

    2) Le code php cité en début de topic représente les différentes alternatives essayées mais je ne l'ai pas toutes essayées en même temps. Est ce calir ?

    3) J'ai pas utilisé nl2br() en espérant recréer le <br> juste derrière... Je voulais juste essayer de remplacer mes retours chariots inconnus par des <br> que je pourrais facilement supprimer ensuite.

    J'espère avoir été plus clair ...

    Merci de vous interesser à mon problème ...

    Au fait non je ne lis pas trop vite...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Donc j'ai testé et ça donne toujours rien...

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    pas sur d'avoir compris, mais si j'ai compris ce que tu souhaites faire, je te suggère :
    • d'abord faire un nl2br
    • ensuite faire un str_replace de <br> en ''

  11. #11
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par cybertj
    1) Dans phpmyadmin avec mysql si je visualise le texte concerné je vois juste des retour à la ligne sans <br> ou <br /> ni rien d'autre... C'est un simple retour à la ligne comme dans wordpad. Est ce clair ? sinon merci de me dire ce que je dois préciser.
    Non c'est pas clair, tu ne dis toujours pas ce qu'il y a dans ta chaîne. Alors on va t'aider...
    Suppose que ta chaîne est dans $test (prends un exemple d'une chaîne courte). Exécute le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for($i = 0; $i < strlen($test); $i++) {
      printf("%x-",ord($test[$i]));
    }
    Et fais-nous un copier-collé du résultat. Comme ça on saura enfin quels caractères tu as dans ta chaîne, et on pourra peut-être t'aider...

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Voila ce que j'obtiens... J'ai mis que un ou deux mots pour pas que vous cherchiez pendant deux heures...

    42-6f-6e-6a-6f-75-72-2e-d-d-76-6f-69-6c-61
    J'espère que ça vous aidera à m'aider...

    Merci d'avance

  13. #13
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Tu as deux caractères CR (carriage return, soit "\r").
    Est-ce que le code suivant résoud ton problème ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $description_fiche = str_replace("\r\r","",$description_fiche);
    Attention à bien mettre les codes entre guillemets doubles.

    PS Ya un Mac dans l'histoire ?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Merci pour ta réponse...

    J'ai copier coller ton code mais avec un seul \r et ça suffit... Au fait non je n'ai pas de mac... Cela pourrait il venir de la structure des tables ?

    Petite question, comment as tu fait pour convertir l'hexadécimal que je t'ai donné.

    Merci vraiment pour ton aide...

  15. #15
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par cybertj
    Petite question, comment as tu fait pour convertir l'hexadécimal que je t'ai donné.
    J'ai juste regardé une table ASCII.

Discussions similaires

  1. cas d'école - exclusion mutuelle
    Par zais_ethael dans le forum C
    Réponses: 5
    Dernier message: 01/12/2006, 08h14
  2. Sous requête et performance. Un cas d'école ?
    Par asaintleger dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/11/2006, 11h04
  3. [Tableaux] Retour chariot pour un code HTML propre
    Par beastman007 dans le forum Langage
    Réponses: 10
    Dernier message: 09/03/2006, 17h43
  4. [Tableaux] Retour Chariot dans une boucle
    Par tchoukapi dans le forum Langage
    Réponses: 3
    Dernier message: 07/11/2005, 14h45

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