par
moogli » 29 avr. 2014, 15:25
Bonjour,
Je voudrais créér un script qui me permettrait de récupérer les 3 premiers mots de chaque phrase dans un texte défini.
pour cela je pense qu'il faudrait que je créé une boucle pour parcourir tous le texte mais j'ai beau chercher j'avoue que je bloque.
Avez-vous une idée svp ??
Merci.
salut,
Il n'y a que moi que cela choque un explode sur un espace pour ne prendre que les 3 premiers index du tableau généré ? (sur un pharse de 6 mots, cela passe mais sur cinquante mots ?).
utiliser stpos et sustr semble tout aussi indiqué.
exemple
<?php
$chaine = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed.';
$pos1 = strpos($chaine, ' ');
$pos2 = strpos($chaine, ' ', $pos1 + 1);
$pos3 = strpos($chaine, ' ', $pos2 + 1);
$mot1 = substr($chaine, 0, $pos1);
$mot2 = substr($chaine, $pos1 + 1, $pos2 - $pos1 - 1);
$mot3 = substr($chaine, $pos2 + 1, $pos3 - $pos2 - 1);
echo 'La chaine <br/>', $chaine, '<br /> le 1er mot : |', $mot1, '|<br /> le 2ème : |', $mot2, '|<br />', 'le 3ème : |', $mot3, '|';
reste a mettre cela dans une fonction pour faire propre et l'ajouter la séparation des phrases.
personnes n'utilise
trim histoire d'éviter les problèmes s'il y a un espace en début de chaines ?
Ce qui va fatalement arriver si tu "split" sur les points et que la typo est respectée (un point est toujours suivis d'un espace donc explode va prendre ce qui suis le point pour le début de la chaîne et la tu auras un premier "mot" "vide").
@+
[quote="napoleon59"]Bonjour,
Je voudrais créér un script qui me permettrait de récupérer les 3 premiers mots de chaque phrase dans un texte défini.
pour cela je pense qu'il faudrait que je créé une boucle pour parcourir tous le texte mais j'ai beau chercher j'avoue que je bloque.
Avez-vous une idée svp ??
Merci.[/quote]
salut,
Il n'y a que moi que cela choque un explode sur un espace pour ne prendre que les 3 premiers index du tableau généré ? (sur un pharse de 6 mots, cela passe mais sur cinquante mots ?).
utiliser stpos et sustr semble tout aussi indiqué.
exemple
[php]<?php
$chaine = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sed.';
$pos1 = strpos($chaine, ' ');
$pos2 = strpos($chaine, ' ', $pos1 + 1);
$pos3 = strpos($chaine, ' ', $pos2 + 1);
$mot1 = substr($chaine, 0, $pos1);
$mot2 = substr($chaine, $pos1 + 1, $pos2 - $pos1 - 1);
$mot3 = substr($chaine, $pos2 + 1, $pos3 - $pos2 - 1);
echo 'La chaine <br/>', $chaine, '<br /> le 1er mot : |', $mot1, '|<br /> le 2ème : |', $mot2, '|<br />', 'le 3ème : |', $mot3, '|';[/php]
reste a mettre cela dans une fonction pour faire propre et l'ajouter la séparation des phrases.
personnes n'utilise [url=http://www.php.net/trim]trim[/url] histoire d'éviter les problèmes s'il y a un espace en début de chaines ?
Ce qui va fatalement arriver si tu "split" sur les points et que la typo est respectée (un point est toujours suivis d'un espace donc explode va prendre ce qui suis le point pour le début de la chaîne et la tu auras un premier "mot" "vide").
@+