Bonjour,
Je suis à la recherche d'un filtre texte pour afficher la première phrase d'un article (et non les x caractères).
Cela existe ?
Par avance merci
Bruno
Bonjour,
Je suis à la recherche d'un filtre texte pour afficher la première phrase d'un article (et non les x caractères).
Cela existe ?
Par avance merci
Bruno
Bjr,
La première phrase, c'est à dire jusqu'au premier point c'est ça ?
Le 16/03/2017 à 08:27, spip85 a écrit :
Bonjour,
Je suis à la recherche d'un filtre texte pour afficher la première
phrase d'un article (et non les x caractères).Cela existe ?
Par avance merci
Bruno
--
Pierre
Le 16/03/2017 à 09:32, Zedd a écrit :
Bjr,
La première phrase, c'est à dire jusqu'au premier point c'est ça ?
Oui
Le 16/03/2017 à 08:27, spip85 a écrit :
Bonjour,
Je suis à la recherche d'un filtre texte pour afficher la première
phrase d'un article (et non les x caractères).Cela existe ?
Par avance merci
Bruno
Bonjour,
Par ex une fonction dans mes_fonctions.php:
function premphrase($texte) {
return substr($texte, 0, strpos($texte, ".")+1);
}
Ensuite à utiliser [(#TEXTE|premphrase)].
Après il faut peut-être perfectionner: que se passe-t-il si pas de point ? il faut peut-être aussi supprimer les tags HTML s'il y en a ?
Le 16/03/2017 à 09:33, spip85 a écrit :
Le 16/03/2017 à 09:32, Zedd a écrit :
Bjr,
La première phrase, c'est à dire jusqu'au premier point c'est ça ?
Oui
Le 16/03/2017 à 08:27, spip85 a écrit :
Bonjour,
Je suis à la recherche d'un filtre texte pour afficher la première
phrase d'un article (et non les x caractères).Cela existe ?
Par avance merci
Bruno
--
Pierre
Bonjour
Le 16/03/2017 à 11:25, Zedd a écrit :
Après il faut peut-être perfectionner: que se passe-t-il si pas de point ? il faut peut-être aussi supprimer les tags HTML s'il y en a ?
Et aussi tenir compte des points d'interrogation ou d'exclamation... En excluant les cas où ils se trouvent entre parenthèses comme dans "des maisons et aussi (faut-il le préciser?) des immeubles". Si on veut faire propre, on arrive vite à des tests compliqués... ![]()
Et si la phrase comporte des abréviations comme etc., ça va l'interrompre. Rien n'est simple...
Bon courage !
CM
Oui comme je disais il faut perfectionner. C'est pour ça que j'ai posé la question "jusqu'au premier point ?"", ça m'a permis de donner une solution simple ![]()
Si on veut aller plus loin, il faut utiliser des expressions régulières je pense avec preg_match pour trouver la position du/des points considérés comme point d'arrêt.
Le 16/03/2017 à 11:53, Christian Marget a écrit :
Bonjour
Le 16/03/2017 à 11:25, Zedd a écrit :
Après il faut peut-être perfectionner: que se passe-t-il si pas de
point ? il faut peut-être aussi supprimer les tags HTML s'il y en a ?Et aussi tenir compte des points d'interrogation ou d'exclamation... En
excluant les cas où ils se trouvent entre parenthèses comme dans "des
maisons et aussi (faut-il le préciser?) des immeubles". Si on veut faire
propre, on arrive vite à des tests compliqués...Et si la phrase comporte des abréviations comme etc., ça va
l'interrompre. Rien n'est simple...Bon courage !
CM
--
Pierre
Le 16/03/2017 à 08:27, spip85 a écrit :
Bonjour,
Je suis à la recherche d'un filtre texte pour afficher la première
phrase d'un article (et non les x caractères).Cela existe ?
Par avance merci
Bruno
Pompoms, pompoms !!!
Here's a quick helper method that I wrote to get the first N sentences of a given body of text. It takes periods, question marks, and exclamation points into account and defaults to 2 sentences.
function tease($body, $sentencesToDisplay = 2) {
$nakedBody = preg_replace('/\s+/',' ',strip_tags($body));
$sentences = preg_split('/(\.|\?|\!)(\s)/',$nakedBody);
if (count($sentences) <= $sentencesToDisplay)
return $nakedBody;
$stopAt = 0;
foreach ($sentences as $i => $sentence) {
$stopAt += strlen($sentence);
if ($i >= $sentencesToDisplay - 1)
break;
}
$stopAt += ($sentencesToDisplay * 2);
return trim(substr($nakedBody, 0, $stopAt));
}
Bonjour,
merci à tous
plus difficile que je ne pensé
Bruno
Le 16/03/2017 à 14:09, Luis Speciale a écrit :
Le 16/03/2017 à 08:27, spip85 a écrit :
Bonjour,
Je suis à la recherche d'un filtre texte pour afficher la première
phrase d'un article (et non les x caractères).Cela existe ?
Par avance merci
Bruno
Pompoms, pompoms !!!
substring - PHP - get first two sentences of a text? - Stack Overflow
Here's a quick helper method that I wrote to get the first N sentences of a given body of text. It takes periods, question marks, and exclamation points into account and defaults to 2 sentences.
function tease($body, $sentencesToDisplay = 2) {
$nakedBody = preg_replace('/\s+/',' ',strip_tags($body));
$sentences = preg_split('/(\.|\?|\!)(\s)/',$nakedBody);if (count($sentences) <= $sentencesToDisplay)
return $nakedBody;$stopAt = 0;
foreach ($sentences as $i => $sentence) {
$stopAt += strlen($sentence);if ($i >= $sentencesToDisplay - 1)
break;
}$stopAt += ($sentencesToDisplay * 2);
return trim(substr($nakedBody, 0, $stopAt));
}_______________________________________________
liste spip
spip@rezo.net - désabonnement : envoyer un mail à spip-off@rezo.netArchives : https://www.mail-archive.com/spip@rezo.net/maillist.html
Infos : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
Irc : de l'aide à toute heure : http://spip.net/irc