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 :

probleme de replace


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Autodidacte
    Inscrit en
    Octobre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autodidacte

    Informations forums :
    Inscription : Octobre 2006
    Messages : 58
    Par défaut probleme de replace
    bonjour, j'ai un petit soucis avec les "\r\n", "\n", et "\r\n\r\n" je voudrait m'en débarrasser car ca me pourri mon affichage.

    voir la : http://www.clubofficine.fr/emplois/index.php

    je ne trouve pas la cause et je n'arrive pas en m'en débarrasser.


    voici les différents bout de code testé sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $annonce = str_replace("\n", "<br />", $donnees['annonce']); 
    	$annonce = str_replace("\r\n", "<br />", $annonce);
    	$annonce = str_replace("\r\n\r\n", "<br />", $annonce);	
    	echo $annonce;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $annonce=$donnees['annonce'];
    $annonce=str_replace(Chr(13), "", $annonce);
    $annonce=str_replace(Chr(10), "", $annonce);
    echo $annonce;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $patterns[0] = "\n";
    $patterns[1] = "\r\n";
    $patterns[2] = "\r\n\r\n";
    $replacements[2] = '<br />';
    $replacements[1] = '<br />';
    $replacements[0] = '<br />';
    echo preg_replace($patterns, $replacements, $donnees['annonce']);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo nl2br($donnees['annonce']);
    voici un copier coller du champs "annonce" de l'enregistrement n°62 de la table concerné...

    pharmacien(ne) en affaires réglementaires \r\n\r\ndelarom est une jeune entreprise de cosmétique naturelle haut de gamme distribuée en pharmacie en france et à l’international. delarom est née en février 2008 et compte déjà plus de 40 collaborateurs en france et en europe. son développement exponentiel nous pousse aujourd’hui à créer un poste de pharmacien en affaires réglementaires cosmétiques pour renforcer notre équipe au siège commercial de la garenne-colombes (92).\r\n\r\nmissions : \r\n-constitution de dossiers cosmétiques \r\n-contrôle des sous-traitants\r\n-contact avec les organismes de contrôle technique\r\n\r\nexpérience : 3 ans d’expériences seraient un plus. \r\nsalaire : à négocier selon profil.\r\ncontrat : ccd ou cdi à convenir. \r\nposte à pourvoir immédiatement. \r\nposte situé à la garenne colombes (92)\r\n\r\ncontact : envoyer cv et lettre de motivation à marion bauchère mbauchere@delarom.fr \r\ntel : 01 56 83 31 01 \r\ndelarom 30 rue lucien jeannin 92250 la garenne-colombes\r\n\r\n\r\n
    pour le traitement, j'ai fait des modifs pour tanter de supprimer le probleme donc je ne sais plus trop comment c'etait a l'origine...

    en tout cas voila comment c'est a présent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $annonce=htmlspecialchars($_POST['annonce']);
    $annonce=stripslashes($annonce);
    $annonce=mysql_real_escape_string($annonce);
    mais je suppose que c'etait comme la page "modifier" qui n'a pas été modifié...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $annonce=stripslashes($_POST['annonce']);
    $annonce=htmlspecialchars($annonce);
    $annonce=strtolower($annonce);
    $annonce=mysql_real_escape_string($annonce);
    ou est mon erreur? comment la corriger ?

    merci par avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Bonjour,

    Je pense qu'il faudrait plutot voir pourquoi tu te retrouves avec ca dans ta base de donnée plutot que de vouloir les retirer a l'affichage.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 135
    Par défaut
    si la fonction nl2br te retourne des "\n\r" à l'affichage, c'est que ta base de donnée ne contient pas des "\n" ou "\r", mais des "\\n" et "\\r"

    ... donc si tu veux vraiment virer les \n et \r à l'affichage (et non a l'enregistrement, comme le fait remarquer sabotage, je pense qu'un replace sur les "\\r" et "\\n" serait plus approprié

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 135
    Par défaut
    Blague à part
    le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $annonce = str_replace("\n", "<br />", $donnees['annonce']); 
    	$annonce = str_replace("\r\n", "<br />", $annonce);
    	$annonce = str_replace("\r\n\r\n", "<br />", $annonce);	
    	echo $annonce;
    ne peut être efficace... si t'as des "\r\n", vu que tu remplaces direcement les "\n" par des "<br />", tu te retrouves ensuite avec des "\r<br />", et tes appels à str_replace sont ensuite inneficaces il faudrait appeler ça dans l'ordre inverse ! Mais la fonction nl2br fait très bien ce boulot pour toi normalement

Discussions similaires

  1. problem avec replace
    Par julien.63 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/01/2007, 17h40
  2. probleme fonction replace
    Par silver_78 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/07/2006, 12h07
  3. Javascript : probleme fonction replace
    Par chico_du_33 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 06/03/2006, 15h11
  4. Probleme avec replace() et une "Cote"
    Par Yannis06 dans le forum Oracle
    Réponses: 3
    Dernier message: 11/10/2005, 12h48

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