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 :

afficher des actualités et enlever les balises inutiles


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut afficher des actualités et enlever les balises inutiles
    Bonjour,
    je crée une interface permettant à l'administrateur de créer des actualités que ensuite tous les visiteurs pourront voir.
    Cette interface utilise l'éditeur TinyMce (ce qui permet à l'administrateur de mettre des images dans l'actualité). Tout ce qui a été saisi dans TinyMce est enregistré en bdd donc pour que les visiteurs puissent afficher les actus, il suffit de lire le contenu de la table en bdd. Le souci est qu'il y a des infos à éliminer en bdd (à ne pas montrer aux visiteurs). Il est plus simple de montrer un exemple :
    <p>texte de l'actu du 30/10<img title="ccctestfrelon.png" src="http://dev.arnaudpoo.fr\/assets/upload/ccctestfrelon.png" alt="" width="430" height="379"></p>.
    Ce que je voudrais est n'afficher que texte de l'actu du 30/10<img title="ccctestfrelon.png" src="http://dev.arnaudpoo.fr\/assets/upload/ccctestfrelon.png" alt="" width="430" height="379"> donc enlever les balises <p> et </p> mais pas toutes les balises html de la chaîne de caractères vu qu'il ne faut pas enlever img. Ca se fait probablement avec une regex, mais j'y connais rien à ces trucs-là...Merci de l'aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Le but d'utiliser Tiny MCE est justement de pouvoir insérer des balises html
    Le contenu de la base de données est ensuite affiché sur la page html, donc les balises ne sont pas visibles...
    Je ne comprends pas l'utilité de les supprimer ?

  3. #3
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 785
    Points : 3 048
    Points
    3 048
    Par défaut
    Je réponds sur "je souhaite supprimer des tags" : va voir https://www.php.net/manual/en/function.strip-tags.php

  4. #4
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Merci pour vos réponses.
    Christophe, j'ai déjà pensé à strip_tags (d'ailleurs, la page que tu m'indiques est déjà ouverte chez moi). En relisant cette doc, je me dis que le paramètre optionnel pourrait me servir : strip_tags($text,'<img>').

    A l'heure actuelle, le code pour afficher les actus est :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {
    foreach ($this['array_actus'] as $actu) { ?>
            <?= $actu['actu_date'] ?> : <?= nl2br($actu['actu_text']) ?><br/>
    <?php }} ?>
    Et le résultat sur mon exemple est 2023-10-30 : <p>texte de l'actu du 30/10<img title="ccctestfrelon.png" src="http://dev.arnaudpoo.fr\/assets/upload/ccctestfrelon.png" alt="" width="430" height="379"></p>.
    D'où mon idée d'enlever les balises de paragraphe. Mais le problème semble être ailleurs, sachant que si je fais l'essai en dehors du site, l'affichage est correct (et il n'est pas causé par nl2br)...

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Quand je vois le résultat je pense soit que tu affiches ton actu dans une balise pre, soit qu'il y a une opération qui rajoute des html entities ...

    tu devrais jeter un coup d'oeil au code html généré et nous montrer à quoi il ressemble

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    2023-10-30 : &lt;p&gt;texte de l'actu du 30/10&lt;img title=&quot;ccctestfrelon.png&quot; src=&quot;http://dev.arnaudpoo.fr\/assets/uplo...elon.png&quot; alt=&quot;&quot; width=&quot;430&quot; height=&quot;379&quot;&gt;&lt;/p&gt;<br/>

  7. #7
    Membre éclairé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 351
    Points : 719
    Points
    719
    Par défaut
    Bonjour,

    SpaceFrog semble avoir vu juste : les balises sont remplacées par des entités html dans ta vue.

    Les balises html sont bien présentes dans la bdd (pas d'entités html dans la bdd) ?

    Si c'est le cas, le problème semble venir de ta vue.
    Tu utilises PHPEcho pour ce projet (tu en parle souvent) ? C'est surement lui qui est responsable de l'affichage des entités dans ce cas, à voir si tu peux désactiver l'échappement appliqué par PHPEcho uniquement lors de l'affichage du contenu de l'éditeur.

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 663
    Points
    66 663
    Billets dans le blog
    1
    Par défaut
    Tu stockes comment les actu en entrée lorsque tu les mets dans la base de données ??
    Elle sont sous quel format dans ta base ? avec ou sans html entities ?

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 470
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 470
    Points : 5 828
    Points
    5 828
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Pytet Voir le message
    Tu utilises PHPEcho pour ce projet (tu en parle souvent) ? C'est surement lui qui est responsable de l'affichage des entités dans ce cas, à voir si tu peux désactiver l'échappement appliqué par PHPEcho uniquement lors de l'affichage du contenu de l'éditeur.
    C'était bien là le problème. Par défaut, PHPEcho échappe ce qu'il reçoit, or là, il ne faut pas. Mais un helper de ce moteur de rendu le permet. Voilà le code qui élimine ce problème d'affichage :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php foreach ($this->raw('array_actus') as $actu) { ?>
            <?= $actu['actu_date'] ?> : <?= nl2br($actu['actu_text']) ?><br/>
    <?php } ?>

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

Discussions similaires

  1. [MySQL] Chiffre décimal, enlever les zéros inutiles
    Par morgan47 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 03/07/2007, 02h46
  2. Réponses: 10
    Dernier message: 30/01/2007, 15h29
  3. Comment enlever les zeros inutiles d'un float
    Par Skorpyon69 dans le forum C
    Réponses: 18
    Dernier message: 04/12/2006, 21h08
  4. Enlever les services inutiles ?
    Par Michaël dans le forum Sécurité
    Réponses: 6
    Dernier message: 25/10/2005, 16h12
  5. Enlever les espaces inutiles d'un AnsiString
    Par jamesb dans le forum C++Builder
    Réponses: 2
    Dernier message: 27/01/2005, 12h40

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