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

PHP & Base de données Discussion :

Utilisation avancée de left [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Utilisation avancée de left
    Bonjour à tous,

    Je souhaiterais que seuls les 300 caractères d'un champ TEXT me soient retournés. Je fais donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT left(content,300) AS small_content FROM table
    L'ennui est que ce champ a été rempli avec un éditeur type TinyMce. Il est donc bourré de balises HTML de mise en forme. Résultat, si je coupe à 300 caractères, comme mon exemple, cela peut trancher en plein milieu d'une balise et flinguer le rendu.

    Comment contourner ce problème ?
    - Peut-on inclure un regex dans la requête pour ignorer les balises ?
    - Ou il faut oublier left et passer par un post-traitement PHP ?
    - Ou ?

    Merci pour vos tuyaux.

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Mon avis: te casse pas la tête avec des regexp.

    Tu fais un select traditionnel et tu fais strip_tags suivi de substr.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $content = substr(strip_tags($content), 0, 300).'...';

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour,

    Effectivement, je peux faire comme ça.
    Mais du coup, je perds la mise en forme.

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    D'une manière ou d'une autre, si tu choisis de ne prendre que les X premier caractères d'un flux HTML, tu t'expose au risque de récupérer un flux incorrect.

    Imagine le cas suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $xhtml = <<< XHTML
    <div style="color: red">
    un trèèèèèèèèèèèèèèès long texte
    </div>
    XHTML;
    C'est pour ça que le mieux c'est encore de ne pas tenir compte de la présentation si tu extrait les 300 premier caractères.

  5. #5
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Ok, je te remercie.
    Belle journée.

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

Discussions similaires

  1. Utilisation avancée du TComboBox,TEdit
    Par remixtech dans le forum Composants VCL
    Réponses: 3
    Dernier message: 04/08/2007, 11h38
  2. Utilisation avancée de SCHTASKS
    Par noirot dans le forum Windows
    Réponses: 1
    Dernier message: 04/04/2007, 09h31
  3. utilisation avancée de tchart
    Par fofmata dans le forum Delphi
    Réponses: 2
    Dernier message: 31/03/2007, 09h13
  4. Utilisation avancée d'un champ numéroAuto
    Par mbzhackers dans le forum Access
    Réponses: 7
    Dernier message: 09/07/2006, 23h28
  5. Question sur utilisation du JOIN LEFT ON
    Par carolinebelle dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/07/2005, 13h57

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