couper un news en html

couper un news en html - PHP - Programmation

Marsh Posté le 26-08-2004 à 21:12:19    

salut a tous.
Je suis en train de crée un newser pour un de met site et je veut faire un systeme qui coupe la news au bout de x character definie dans par une variable.Mais mon probleme vien du faite que les news seront en html et si je coupe la news en plein milieu d un tag html sa va foute la merde  :bounce: .Donc j aimerais savoir commant verifier si je coupe pas un tag html .
Voila le dbut de mon code :

Code :
  1. if (strlen($text) > $news_data['conf_news_longeur'])
  2.               {
  3.               $text = substr($text, 0, $news_data['conf_news_longeur']);
  4.       $text .= "...";
  5.               }


jétais parti sur l idé de verifier sur 50 caractere de chaque coté du point ou je coupe si il ya avé pas de < :

Code :
  1. $ftext = substr($text, $config_data['conf_news_longeur'] - 50, 100);
  2. if( ereg('<',$ftext))
  3. {
  4. }

 
mais apres je c sait pas trop koi faire  :bounce: .
 
voila merci ceux qui voudrons bien m aider.
 
ps: dsl s il y avait deja un post similaire mais la fonction rechercher du forum est desactivé  :jap:

Reply

Marsh Posté le 26-08-2004 à 21:12:19   

Reply

Marsh Posté le 27-08-2004 à 11:31:41    

Déjà il faut compter les caractères _utiles_ de la news : faut pas compter les tags (pour peu qu'un <span class="azerty..."> traine dedans la news fera 3 caractères).
donc il faut faire strlen (striptags($text))
 
après il faut retrouver le dernier mot à prendre en compte dans la news avec les tags, un ereg () fera l'affaire en cherchant dans $text l'indice du texte qui est à supprimer.
ex: ... c'est l'histoire de tot|o à la plage ... (le | marque la limite désirée)
-> chercher la position de 'o à la plage' dans la news originale.
ça peut être chaud, à moins de couper au mot près ?
 
ensuite je pense qu'il faut inclure le prochain tag à condition qu'il soit fermant :
dans le cas de .....<b>.... tot|o ...</b>...
si toto est le dernier mot à inclure, rajouter le </b> dans la sélection.
 
pas si facile ton truc :pt1cable: ...

Reply

Marsh Posté le 27-08-2004 à 15:40:29    

en fauie je crois aprés réfléxion que c' est pas fesable se que je veut faire car imaginons que le text doit couper en plein milieu de :
<strong><u><a href="jhfd">o le bo lien</a> whaaaaaaa</u><span class="qsdsd">super le span</a></strong>
 
 
ou meme que sa coupe en plein milieu d' un tableau a 10 row sa devien ingerable ...
 
Quel qu'un a déja fait un truc dans ce genre ???


Message édité par leplusapte le 27-08-2004 à 15:41:50
Reply

Marsh Posté le 27-08-2004 à 15:49:14    

Sur de l'html pur non (càd sur de l'html avec toutes ses balises). Sur du partiel oui.

Reply

Marsh Posté le 27-08-2004 à 16:55:22    

Pourquoi ne pas supprimer les balises html sur la partie qui doit afficher les 50 premieres caracteres ?

Reply

Marsh Posté le 27-08-2004 à 20:48:17    

2 solutions qui se presente a moi pour le moment serait de mettre soi 2 champ de text un qui apparet quant la news est couper et lautre la suite de la news et lautre solition seraity de mettre un tag dans la news du style {CUT} a lendroit ou on vaut couper la news

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed