Ecrire du Xième mot à la fin d'une chaîne de caractères

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Ecrire du Xième mot à la fin d'une chaîne de caractères

Re: Ecrire du Xième mot à la fin d'une chaîne de caractères

par Spols » 28 janv. 2014, 10:11

tu doit t'arrèter quand le tableau est vide, pour cela utilise la longueur du tableau sizeof($array);
$mots = 5
$chaine = $row2['contenuNews'];    
function resume_mots($chaine,$mots) { 
$ChaineTab=explode(" ",$chaine);
$NouvelleChaine = ""; 
for($i=mots;$i<sizeof($ChaineTab);$i++) { 
$NouvelleChaine.=" "."$ChaineTab[$i]"; 
}
return substr($NouvelleChaine,1);
}

echo resume_mots($chaine,$mots);
Plusieurs remarque dans ton code,
tu défini la variable $mots et puis tu ne l'utilise pas dans ton code
ta nouvelle chaine commence par un espace, généralement moi j'ajoute l'espace après et je retire le dernier caractère avant de renvoyer la chaine, ici je t'ai fait le contraire, je retire le premier caractère.
Je te conseil de garder toujours la même methodologie pour nommer tes variables, tu as des variables avec majuscule au début d'autre non. Dans un code massif, une méthodologie précise t'aidera à t'y retrouver dans tes variables / constantes, etc.

Seulement là, ce que je souhaite c'est écrire du 5ième mot à la fin (et non pas jusqu'à un nombre précis) de la chaîne. Alors je mets $i=5 mais si ensuite je mets $mots = 10000 (pour être sûr d'arriver à la fin de la chaîne), cela ne marche pas. Y a t-il un moyen de faire? Si oui, lequel? D'avance merci![/quote]

Ecrire du Xième mot à la fin d'une chaîne de caractères

par skywhi » 28 janv. 2014, 10:02

Bonjour,
Pour écrire du premier au (par exemple) 5ième mot d'une chaîne de caractère en php, j'utilise cette fonction:
$mots = 5
$chaine = $row2['contenuNews'];    
function resume_mots($chaine,$mots) { 
$ChaineTab=explode(" ",$chaine);
$NouvelleChaine = ""; 
for($i=0;$i<$mots;$i++) { 
$NouvelleChaine.=" "."$ChaineTab[$i]"; 
}
return $NouvelleChaine;
}

echo resume_mots($chaine,5);
Seulement là, ce que je souhaite c'est écrire du 5ième mot à la fin (et non pas jusqu'à un nombre précis) de la chaîne. Alors je mets $i=5 mais si ensuite je mets $mots = 10000 (pour être sûr d'arriver à la fin de la chaîne), cela ne marche pas. Y a t-il un moyen de faire? Si oui, lequel? D'avance merci!