2
Indiquez l’intérêt que vous portez à cette question
0

Extraire la 1ere phrase d’un texte

Bonjour, Ceci n’est pas une question, mais plutôt une "astuce".

J’utilise assez souvent la fonction couper{} pour le texte, pour divers usage, mais un en particulier m’a fait imaginer la chose autrement.
J’aime bien mettre une balise title="" sur certaines images notamment. Mais à l’usage, année après année, je trouvais cela dégeu le mode couper à X caractères. Le formatage est chouette, mais les phrases tronquées et du coup pas toujours de sens. Du coup je me suis demandé : comment plutôt que de tronquer #INTRODUCTION à X caractères, comment plutôt utiliser la première phrase.

Extraire la première phrase d’une chaine de caractère (#TEXTE, #INTRODUCTION ..)

Comme vous le savez les fonctions PHP sont parfaitement utilisables dans vos boucles. Pour se faire nous pouvons donc utiliser la fonction : strstr, qui permet de retourner la partie de la chaîne située avant la première occurrence. Partant du principe que la première occurrence qui nous intéresse pour extraire la 1ere phrase, est le 1er point, nous allons chercher à extraire les caractères présent avant le 1er point du texte.

L’exemple PHP de base

<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // Affiche : @example.com

$user = strstr($email, '@', true);
echo $user; // Affiche : name
?>

Comment intégrer cela dans un squelette ? Dans une boucle ?

On peut créer une fonction particulière dans mes_fonctions.php mais on peut aussi tout simplement utiliser strstr comme un flitre dans les boucles, du genre :

[(#INTRODUCTION|strstr{'.',true}|textebrut)].

Dans #INTRODUCTION le code retourne tout les caractères avant le premier point (.). Je rajoute un point à la fin tout de même pour que ça ressemble sémantiquement à une vraie phrase, et le tour est joué.