Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2011, 10h27   #1
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
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 :
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.
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 10h45   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
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 :
$content = substr(strip_tags($content), 0, 300).'...';
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 10h57   #3
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
Bonjour,

Effectivement, je peux faire comme ça.
Mais du coup, je perds la mise en forme.
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 11h34   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
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 :
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.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 12h22   #5
Membre confirmé
 
Avatar de renaud26
 
Inscription : mars 2003
Messages : 1 043
Détails du profil
Informations personnelles :
Âge : 48
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : mars 2003
Messages : 1 043
Points : 285
Points : 285
Ok, je te remercie.
Belle journée.
renaud26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h22.


 
 
 
 
Partenaires

Hébergement Web