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 :

Utilisation de la fonction str_replace


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut Utilisation de la fonction str_replace
    Bonjour à tous,

    j'ai une difficulté avec la fonction str_replace();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    str_replace ( "i", "", "titi", $count)
    me remonte bien dans count= 2 et me renvoi bien "tt"

    en revanche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    str_replace ( "<p>", "", "<p>titi</p>", $count)
    me renvoi un count =0 et donc ne modifie pas ma chène de caractere. Sauriez vous pourquoi?

    merci de votre aide.
    "La connaissance s'accroît quand on la partage."(Socrate)

    Si vous trouvez vous même la solution au POST que vous venez de poser, indiquez nous comment vous avez fait

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 305
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 305
    Points : 15 633
    Points
    15 633
    Par défaut
    je viens de tester ce code et il fonctionne bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo str_replace ( "<p>", "", "<p>titi</p>", $count) . "\n"; // affiche "titi</p>"
    echo $count . "\n"; // affiche "1"

  3. #3
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut
    Je voulais effectivement simplifié le probleme et je retrouve le bec dans l'eau car tel quel, ça fonctionne:

    en réalité je fais la chose suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $descReport =  htmlentities(trim($_POST['descReport']));
    echo "-$descReport-<br>"; // me retourne exactement <p>titi</p> bien que je sais pas si il n'y a pas de caractere invisible avant ou après.
    str_replace("<p>","",$descReport,$count);
    echo"$count <br>"; // me renvoi helas 0
    pour information, cette page provient de "tinymce" que j'utilise pour formater du texte dans mon site web. "Tinymce" est je crois celui que vous utilisez pour developpez.com.

    Donc je revalide ça ne fonctionne pas de cette façon une petite idée?
    "La connaissance s'accroît quand on la partage."(Socrate)

    Si vous trouvez vous même la solution au POST que vous venez de poser, indiquez nous comment vous avez fait

  4. #4
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    c'est parce que tu utilises htmlentities avant sur ta variable.

    htmlentities transforme "<" en "&lt;" et ">" en "&gt;". Cette fonction permet de transformer les caractères spéciaux HTML pour éviter qu'ils soient interprétés par le navigateur.

    La solution, c'est de n'utiliser htmlentities qu'avant envoi au navigateur (au dernier moment), c'est à dire faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $descReport =  trim($_POST['descReport']);
    $descReport = str_replace("<p>","",$descReport,$count);
    echo"$count <br>";
    echo htmlentities($descReport);

  5. #5
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut
    donc oui ça fonctionne, merci pour l'aide apporté. C'etait pernicieux car l'écran me retournait <p>titi></p> alors que la chene réel etait "&lt;p&gt;titi&lt;/p&gt; ce qui est casiment indetectable quand on debug sous IE.

    je vais regarder s'il existe un debugger php pour eclipse...
    "La connaissance s'accroît quand on la partage."(Socrate)

    Si vous trouvez vous même la solution au POST que vous venez de poser, indiquez nous comment vous avez fait

  6. #6
    Membre actif Avatar de turican2
    Profil pro
    Inscrit en
    Août 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2006
    Messages : 257
    Points : 239
    Points
    239
    Par défaut
    ce code regle mon probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $descReport =  html_entity_decode($_POST['descReport'], ENT_NOQUOTES);
    $urlNom =   html_entity_decode($_POST['urlNom'], ENT_NOQUOTES);
    $urlLien =   html_entity_decode($_POST['urlLien'], ENT_NOQUOTES);
     
    $descReport= str_replace("<p>","",$descReport,$count);
    $descReport= str_replace('</p>',"",$descReport,$count);
     
    $urlNom= str_replace("<p>","",$urlNom);
    $urlNom= str_replace("</p>","",$urlNom);
     
    $urlLien= str_replace("<p>","",$urlLien);
    $urlLien= str_replace("</p>","",$urlLien);
    ça evite en sorti de tinymce d'avoir un paragraphe à chaque nouvel article.

    merci de m'avoir orienté
    "La connaissance s'accroît quand on la partage."(Socrate)

    Si vous trouvez vous même la solution au POST que vous venez de poser, indiquez nous comment vous avez fait

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

Discussions similaires

  1. Utilisation de la fonction "str_replace"
    Par mathias59 dans le forum Langage
    Réponses: 10
    Dernier message: 11/03/2009, 09h59
  2. Utilisation de la fonction de déploiement
    Par mchicoix dans le forum XMLRAD
    Réponses: 4
    Dernier message: 01/03/2005, 14h35
  3. [LG]Utilisation de la fonction Random
    Par chloe95 dans le forum Langage
    Réponses: 1
    Dernier message: 01/03/2005, 14h20
  4. Utilisation de la fonction qsort
    Par Jsmeline dans le forum C
    Réponses: 8
    Dernier message: 28/01/2005, 12h40
  5. [LG]librairies : utiliser seulement quelques fonctions
    Par wwwroom dans le forum Langage
    Réponses: 13
    Dernier message: 14/05/2004, 22h50

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