Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1592 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Scinder un texte html sans casser les balises

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Scinder un texte html sans casser les balises

n°2007409
Alisteroid
Posté le 06-07-2010 à 14:47:37  profilanswer
 

Bonjour,
 
J'ai besoin de scinder un long texte HTML et d'en récupérer les 100 premiers caractères(par exemple)
 
Le problème est que le 100 ème caractère peut être contenu dans une balise html ,
 
Genre "<b> coucou </b>"
 
Si le dernier u est le 100 ème caractères, mon texte scindé ne pourra plus être interprété et je verrai le <b> s'afficher au lieu d'être interprété.
 
Connaissez vous un moyen (un script) de scinder ce texte proprement ,
 
Merci :jap:

mood
Publicité
Posté le 06-07-2010 à 14:47:37  profilanswer
 

n°2007437
Pascal le ​nain
Posté le 06-07-2010 à 15:29:29  profilanswer
 

Tes 100 caractères sont comptés à partir de la source ou du rendu ?

n°2007456
stealth35
Posté le 06-07-2010 à 16:01:02  profilanswer
 

avec strip_tags ;)  (si la mise en forme n'est pas importante pour les 100 caractères)

Message cité 1 fois
Message édité par stealth35 le 06-07-2010 à 16:01:56
n°2007464
Pascal le ​nain
Posté le 06-07-2010 à 16:21:49  profilanswer
 

stealth35 a écrit :

avec strip_tags ;)  (si la mise en forme n'est pas importante pour les 100 caractères)


 
Il veut peut-être garder le code html...
 
Par contre, attention aux XSS... Assure-toi que le texte html est de source sûre...

n°2007465
stealth35
Posté le 06-07-2010 à 16:23:05  profilanswer
 

Pascal le nain a écrit :


 
Il veut peut-être garder le code html...
 
Par contre, attention aux XSS... Assure-toi que le texte html est de source sûre...


 
d'ou la petite condition après  ;)  

n°2007466
rufo
Pas me confondre avec Lycos!
Posté le 06-07-2010 à 16:26:59  profilanswer
 

sebondus, t'as un autre problème, c'est qu'il peut y avoir dans ton texte d'autres balises HTML ouvertes qui peuvent être fermées bien après les 100 caractères :/
A mon avis, faut que tu parses la chaîne contenant les 100 1er caractères et que tu relèves toutes les balises ouvertes qui n'ont pas été fermée et tu les ajoutes à la fin de tes 100 caractères. Mais bonjour le risque que la mise en page devienne n'importe quoi... On peut connaître le besoin initial?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2007468
Dj YeLL
$question = $to_be || !$to_be;
Posté le 06-07-2010 à 16:39:37  profilanswer
 

Il y a un truc absolument anormal... c'est que tu aies besoin de bosser sur du code HTML ...
 
Tout ce qui est traitement doit être fait en dehors du code.
 
Il sort d'où ton texte à scinder ? Pourquoi il y a déjà du code HTML avant même que tu ne traite la chaine ? :??:


---------------
Gamertag: CoteBlack YeLL
n°2007471
Pascal le ​nain
Posté le 06-07-2010 à 16:44:04  profilanswer
 

Je devine qu'il s'agit d'un extrait de 100 caractères d'un article par exemple...

n°2007472
stealth35
Posté le 06-07-2010 à 16:46:44  profilanswer
 
n°2007473
Dj YeLL
$question = $to_be || !$to_be;
Posté le 06-07-2010 à 16:49:56  profilanswer
 

Pascal le nain a écrit :

Je devine qu'il s'agit d'un extrait de 100 caractères d'un article par exemple...


 
Peu importe qu'il s'agisse d'un article, d'une news, d'un message de forum ou quoi que ce soit d'autre ... le fait est que dans la majorité des cas ce n'est pas normal d'avoir à traiter du code HTML...


---------------
Gamertag: CoteBlack YeLL
mood
Publicité
Posté le 06-07-2010 à 16:49:56  profilanswer
 

n°2007474
Pascal le ​nain
Posté le 06-07-2010 à 16:50:00  profilanswer
 


 
Vu le nombre de boucles imbriquées et de regexps, je conseille l'utilisation d'un fichier de cache :p
 

Dj YeLL a écrit :


 
Peu importe qu'il s'agisse d'un article, d'une news, d'un message de forum ou quoi que ce soit d'autre ... le fait est que dans la majorité des cas ce n'est pas normal d'avoir à traiter du code HTML...


 
Pafo.
Peut être qu'il récupère le code html d'un article sur un site web, et qu'il fait un extrait... Un peu comme facebook quand tu postes un lien...

Message cité 1 fois
Message édité par Pascal le nain le 06-07-2010 à 16:53:32
n°2007481
stealth35
Posté le 06-07-2010 à 17:02:52  profilanswer
 

Pascal le nain a écrit :


 
Vu le nombre de boucles imbriquées et de regexps, je conseille l'utilisation d'un fichier de cache :p
 


 
ouai ca pas l'air génial  :whistle:  

n°2007728
Alisteroid
Posté le 07-07-2010 à 13:47:50  profilanswer
 

En fait c'est un backoffice ou on peut entre la description d'un element, on peut y inclure des balises <p>, <b>, <a>, <i>, etc ... bref pour metttre un peu en forme le texte.
 
Le probleme est que je n'ai pas de deuxieme champ contenant  une description courte, d'ou mon besoin de scinder ce premier champ.

n°2007731
stealth35
Posté le 07-07-2010 à 13:56:30  profilanswer
 

Alisteroid a écrit :

En fait c'est un backoffice ou on peut entre la description d'un element, on peut y inclure des balises <p>, <b>, <a>, <i>, etc ... bref pour metttre un peu en forme le texte.
 
Le probleme est que je n'ai pas de deuxieme champ contenant  une description courte, d'ou mon besoin de scinder ce premier champ.


 
est ce important de la garder la mise en forme pour le résumé ?

n°2007739
rufo
Pas me confondre avec Lycos!
Posté le 07-07-2010 à 14:28:00  profilanswer
 

si c'est un lien hypertexte, ça serait dommage de perdre cette "mise en forme".
 
Sinon, l'autre solution, ça serait de modifier le backoffice pour rajouter un champ (si t'as accès au code source).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2007899
imed_bouzi​di
Posté le 07-07-2010 à 22:24:31  profilanswer
 

la solution est simple. il faut penser à utiliser le css au lieu de php pour ne pas avoir des balises ouvertes.
il suffit de mette le texte dans une div avec une langueur fixe et de lui attribuer la propriété overflow:hidden; pour que le texte qui dépasse la longueur n'apparait pas
 
<div style="height:200px;width:400px;overflow:hidden;">
ICI TEXTE
</div>

n°2007972
Alisteroid
Posté le 08-07-2010 à 10:38:55  profilanswer
 

J'y ai même pas pensé :D, bref je crois que je vais rajouter un champ dans le backoffice

n°2008072
Pascal le ​nain
Posté le 08-07-2010 à 15:35:39  profilanswer
 

imed_bouzidi a écrit :

la solution est simple. il faut penser à utiliser le css au lieu de php pour ne pas avoir des balises ouvertes.
il suffit de mette le texte dans une div avec une langueur fixe et de lui attribuer la propriété overflow:hidden; pour que le texte qui dépasse la longueur n'apparait pas
 
<div style="height:200px;width:400px;overflow:hidden;">
ICI TEXTE
</div>


 [:everything4free]

n°2008997
imed_bouzi​di
Posté le 13-07-2010 à 13:06:33  profilanswer
 

Je ne sais pas ce qui est bizarre dans la solution que j'ai proposé ! C'est simple, rapide et ça fonctionne  ;)

n°2009066
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 13-07-2010 à 20:08:08  profilanswer
 

ouais mais ô combien crade !
tu ne résous pas le problème, tu le contournes ...


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°2009203
Pascal le ​nain
Posté le 14-07-2010 à 23:40:37  profilanswer
 

Imagine que l'article fait 5 pages...

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Scinder un texte html sans casser les balises

 

Sujets relatifs
modifier une ligne precise d'un fichier texte[resolu]html tout simple
creer des liens html sous kompozersurligner totalité d'une ligne html
Explication balises méta et link[HTML/JS] application du setTimeOut pour un effet "machine à ecrire"
FPDF Mettre en gras un morceau de textecheckbox en fonction d'un champ texte
Insérer du texte dans un textarea 
Plus de sujets relatifs à : Scinder un texte html sans casser les balises


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR