Page 1 sur 2
récupérer du texte dans une chaine de caractère
Posté : 28 avr. 2014, 21:45
par 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.
Re: récupérer du texte dans une chaine de caractère
Posté : 28 avr. 2014, 21:47
par napoleon59
et je pensais me baser sur la ponctuation pour trouver des repères dans le texte.
Re: récupérer du texte dans une chaine de caractère
Posté : 28 avr. 2014, 22:08
par telnes
Hello
Regarde du côté de la fonction explode()
Re: récupérer du texte dans une chaine de caractère
Posté : 28 avr. 2014, 22:45
par napoleon59
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.
Re: récupérer du texte dans une chaine de caractère
Posté : 28 avr. 2014, 22:50
par napoleon59
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 ?
Re: récupérer du texte dans une chaine de caractère
Posté : 28 avr. 2014, 23:04
par napoleon59
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 ?
Re: récupérer du texte dans une chaine de caractère
Posté : 28 avr. 2014, 23:30
par napoleon59
ou plutot le top serait de faire un explode(" ",$Mon_contenu) mais tous les 3 mots
Re: récupérer du texte dans une chaine de caractère
Posté : 28 avr. 2014, 23:41
par cyruss
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];
...
Re: récupérer du texte dans une chaine de caractère
Posté : 28 avr. 2014, 23:46
par napoleon59
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 />';
}
Re: récupérer du texte dans une chaine de caractère
Posté : 29 avr. 2014, 00:02
par napoleon59
je débute vraiment donc pas évident
Re: récupérer du texte dans une chaine de caractère
Posté : 29 avr. 2014, 00:27
par napoleon59
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;
}
Re: récupérer du texte dans une chaine de caractère
Posté : 29 avr. 2014, 09:35
par napoleon59
$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
Re: récupérer du texte dans une chaine de caractère
Posté : 29 avr. 2014, 09:45
par Arkeins
$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 ^^"
Re: récupérer du texte dans une chaine de caractère
Posté : 29 avr. 2014, 10:29
par napoleon59
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.
Re: récupérer du texte dans une chaine de caractère
Posté : 29 avr. 2014, 10:44
par napoleon59
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.