récupérer du texte dans une chaine de caractère

Eléphanteau du PHP | 19 Messages

28 avr. 2014, 21:45

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.

Eléphanteau du PHP | 19 Messages

28 avr. 2014, 21:47

et je pensais me baser sur la ponctuation pour trouver des repères dans le texte.

Eléphant du PHP | 422 Messages

28 avr. 2014, 22:08

Hello

Regarde du côté de la fonction explode()
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Eléphanteau du PHP | 19 Messages

28 avr. 2014, 22:45

effectivement j'ai réussit à séparer mon texte phrase par phrase avec la ponctuation mais je n'arrive pas à faire une boucle car je ne sais pas quoi mettre comme compteur.

Eléphanteau du PHP | 19 Messages

28 avr. 2014, 22:50

Je pourrais compter le nombre de points, point d'interrogation et point d'exclamation présent dans le document pour faire ma boucle mais je ne suis pas convaincu que ce soit la solution la plus rapide et efficace je me trompe ?

Eléphanteau du PHP | 19 Messages

28 avr. 2014, 23:04

j'ai réussit à faire ma boucle :-) par conte maintenant je cherche une fonction qui me permettent de prendre les 3 premier mots de chaque phrase. Y a t il une fonction pour çà ou bien faut-il que je fasse une autre boucle pour séparer tous les 3 mots ?

Eléphanteau du PHP | 19 Messages

28 avr. 2014, 23:30

ou plutot le top serait de faire un explode(" ",$Mon_contenu) mais tous les 3 mots

Administrateur PHPfrance
Administrateur PHPfrance | 658 Messages

28 avr. 2014, 23:41

Si tu fais un explode sur les espaces tu auras un tableau en retour.
Sur ce tableau tu récupères les trois premiers éléments. Rien de plus simple.

$tab = explode(" ", $machaine);
$mot1 = $tab[0];
$mot2 = $tab[1];
...
Co-auteur du livre PHP 7 avancé
Co-auteur du livre Performances PHP : Audit et optimisation LAMP
Co-fondateur de l'Association Française des Utilisateurs de PHP http://www.afup.org
Formateur PHP pour Openska

Eléphanteau du PHP | 19 Messages

28 avr. 2014, 23:46

ok mais avec les boucle j'ai vraiment du mal
$test2 = "mon texte que je voudrais séparer tous les 3 mots";
$teste = explode(" ", $test2);

foreach($teste AS $a => $valeur)
{
$mot1 = $teste[0];
$mot2 = $teste[1];
$mot3 = $teste[2];
echo $mot1, $mot2, $mot3;
echo $valeur.'<br />';
}

Eléphanteau du PHP | 19 Messages

29 avr. 2014, 00:02

je débute vraiment donc pas évident

Eléphanteau du PHP | 19 Messages

29 avr. 2014, 00:27

J'y ai cru mais çà ne marche pas du tout. Si quelqu'un peut m'aider je suis preneur.

$test2 = "Mon texte que je voudrais séparer tous les 3 mots";
$teste = explode(" ", $test2);
foreach($teste AS $a => $valeur)
{
$i == 0;
$mot1= $valeur;
$mot2= $valeur[i+1];
$mot3= $valeur[i+2];
echo $mot1." ".$mot2." ".$mot3."<br/>";
$i = $i + 3;
}

Eléphanteau du PHP | 19 Messages

29 avr. 2014, 09:35

$test="mon texte que je voudrais séparer en 3 mots"
$teste = explode(" ", $test2);

$i == 0;
foreach($teste AS $a)
{
$mot1= $teste[i+1];
$mot2= $teste[i+2];
$mot3= $teste[i+3];
echo $mot1."/".$mot2."/".$mot3."<br/>";
$i = $i + 3;
}

Mon texte est bien sindé en 3 mais il répète les meme mots tous le temps le $i + 3 ne marche pas

Eléphanteau du PHP | 12 Messages

29 avr. 2014, 09:45

$test="mon texte que je voudrais séparer en 3 mots"
$teste = explode(" ", $test2);

$i == 0;
foreach($teste AS $a)
{
$mot1= $teste[i+1];
$mot2= $teste[i+2];
$mot3= $teste[i+3];
echo $mot1."/".$mot2."/".$mot3."<br/>";
$i = $i + 3;
}

Mon texte est bien sindé en 3 mais il répète les meme mots tous le temps le $i + 3 ne marche pas
Salut !

Peut être une erreur lorsque tu nous as copié ton code, mais il manque des "$" sur les "i" dans dans ta variable $teste.
De même $i == 0 retourne un booléen, il te faut "$i = 0", un seul = pour une attribution.

Autre chose, que j'ai sûrement mal compris, mais quel est l'intérêt de faire un foreach si tu ne sers pas du $a ?

Edit : oublie d'un mot dans ma phrase ^^"

Eléphanteau du PHP | 19 Messages

29 avr. 2014, 10:29

Merci une partie de l'erreur venait de l'oublie du dollar et de la variable en booléen :-).

Pour la boucle je ne vois pas comment faire. En gros je voudrais que ma boucle fonctionne tant qu'il y reste des séquences de 3 mots à mettre à la suite.

Eléphanteau du PHP | 19 Messages

29 avr. 2014, 10:44

En gros pour ma boucle je voudrais lui dire ceci :

Tant que la valeur du tableau est différent de null alors execute le code sinon arrete.