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

  FORUM HardWare.fr
  Programmation
  PHP

  Chaine de caractère et HTML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Chaine de caractère et HTML

n°1942771
webPx
Posté le 20-11-2009 à 12:34:36  profilanswer
 

Bonjour à tous.
 
Je suis en train de mettre au poin un petit outil de résumé automatique sur un site existant.
Les articles sont stockés dans la base de donnée en html donc il y a de partout des <p> des <span> des &eacute; ...
 
J'ai décidé arbitrairement de coupé le texte au 160 premiers caractères ou au mot d'avant mais mon script est capable de coupé des mots de ce genre
mati&ea au lieu de couper au mot d'avant "matière".
 
On ma lancer une piste de dévellopement mais je ne sais pas comment la traiter.
En gros on m'a dit de chercher à a chaque caractère accentué en html, d'aller à la lettre en dur plus loin...
 
Auriez vous une idée ou une solution à mon problème ?
 
Le code :
 

Code :
  1. <? if(strlen($row['10'])>=$max){
  2.    $texte=substr($row['10'],0,$max) . "..." ;
  3.    echo "<div class='intro'>".$texte."</div>"; ?>

mood
Publicité
Posté le 20-11-2009 à 12:34:36  profilanswer
 

n°1942790
stealth35
Posté le 20-11-2009 à 13:19:58  profilanswer
 

mais normalement tu devrais pas avoir de &eacute si ta prise en chage de l'encodage était bien faites.
 
si a une epoque j'avais un truc du style, qui trouvais le premiere espace disponible avant le 160 caratere et je coupais a ce moment la

n°1942796
webPx
Posté le 20-11-2009 à 14:04:25  profilanswer
 

Je n'ai pas bien compris ton message.
 
Le site est en encodage utf-8 d'ou les &eacute et compagnie...

n°1942799
stealth35
Posté le 20-11-2009 à 14:07:37  profilanswer
 

si ton site a une en tete  ut8 et que ton fichier html est en utf8, dans cas la ta pas besion de faire &eacute.

n°1942801
webPx
Posté le 20-11-2009 à 14:10:40  profilanswer
 

L'entête HTML est en Utf-8. Les données affichés sont toutes stockés dans une bdd en html d'ou mon problème.
 
Pour les suggestions du genre changer l'encodage du site, ou le fonctionnement, ce n'est pas envisagé.

n°1942805
stealth35
Posté le 20-11-2009 à 14:13:24  profilanswer
 

une base de donnée en html ?
 
sinon ducoup t'en pense quoi de la solution de l'espace pour le coupage des chaine ?

n°1942806
webPx
Posté le 20-11-2009 à 14:16:28  profilanswer
 

Elle me parait intéréssante mais je ne sais pas comment la mettre en place avec ça
 
$texte=substr($row['10'],0,$max) . "..." ;
 

n°1942811
stealth35
Posté le 20-11-2009 à 14:26:43  profilanswer
 

$text = substr($s, 0, strrpos(substr($s, 0, 165), ' '));

n°1942846
webPx
Posté le 20-11-2009 à 15:51:13  profilanswer
 

Merci de ton aide sa a l'air de fonctionner mais par contre maintenant cela me coupe des mots...

n°1942851
stealth35
Posté le 20-11-2009 à 16:06:51  profilanswer
 

ah,t'as un exemple ?
 
normalement la ce que je fait,
je prend ta chaine de 160 caractère, je cherche le dernier espace, et je tronque la chaine principal a partir de la. ce que ferai que techniquement t'aura toujours moins de 160, et tout dépens du dernier mot (5-6 lettres en moyenne)

mood
Publicité
Posté le 20-11-2009 à 16:06:51  profilanswer
 

n°1942854
webPx
Posté le 20-11-2009 à 16:10:50  profilanswer
 

Oui tu as raison, c'est moi qui est à coté de la plaque en ce vendredi soir, vu que je rajoute les ... directement à la fin de la chaine de caractèe j'ai cru voir des mots coupés mais non ...
 
Merci encore de ton aide ;)
 
 
PS: J'ai horreur du traitement des chaines de caractère en PHP :p

n°1942921
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 20-11-2009 à 18:40:45  profilanswer
 

J'avais écrit une petite fonction pour ça, une fois, tu peux t'en inspirer...
 

Code :
  1. /*
  2.  * ExtractText displays some characters of a whole text
  3.  * input $text, the whole text {string}
  4.  * input $max_char, number max of characted for a small text {int}
  5.  *
  6.  * @returns {string}
  7.  */
  8. function ExtractText($text,$max_char)
  9. {
  10.  // Test if length > limit
  11.  if (strlen($text)>$max_char)
  12.  {
  13.   // Select maximum chars
  14.   $text = substr($text, 0, $max_char);
  15.   // Retrieving last whitespace position (no truncate word)
  16.   $position_space = strrpos($text, " " );
  17.   $text = substr($text, 0, $position_space);
  18.   // Adding "..."
  19.   $text = $text." [...]";
  20.  }
  21.  return $text;
  22. };


 
en paramètres : $text ton texte, $max_chars ton 160...


---------------
NewsletTux - outil de mailing list en PHP MySQL

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

  Chaine de caractère et HTML

 

Sujets relatifs
Help: html/php basic[PHP / HTML] Afficher une image avant l'exécution d'un long script php
Importer des données d'un fichier HTML dans Excel[HTML/CSS/Javascript] Calcul coté client avec visualisation
convertir une chaine de char en entierCreation d'un CV en ligne en HTML
Parser une page HTML avec mot de passe[RESOLU] Probleme couleur PC et MAC en HTML!! HELP PLZ :)
[php] Enlever les balises html d'une chaine de caractère 
Plus de sujets relatifs à : Chaine de caractère et HTML


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