Neoboot Posté 9 Octobre 2003 Partager Posté 9 Octobre 2003 Bonjour à tous, je cherche le moyen de supprimer plusieur mot d'un texte donc dans mon exemple il y aurait : $texte = "lever le couteau sur l'assiette"; $inutile = array("le","la","les","lo","lu");$new_text = eregi_replace($inutile, " ", $texte); Seulement au lien d'avoir comme résultat : "lever couteau sur l'assiette"; j'ai "ever couteau sur l'assiette"; J'ai essayé avec preg_replace et j'ai le même résultat Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 10 Octobre 2003 Partager Posté 10 Octobre 2003 $texte = "lever le couteau sur l'assiette"; $inutile = array("le","la","les","lo","lu"); $new_text = eregi_replace($inutile, " ", $texte); Ca, c'est ton code. Or eregi_replace prend comme parametres : string,string, et string. Or tu lui transmet array,string et string. Donc il répond : ca marche pas, je retourne la phrase telle quelle. A ce propos, j'ai comme résultat de new_text : "lever couteau sur l'assiette"; Essaie un truc : $texte = "lever le couteau sur l'assiette"; $inutile = array("le","la","les","lo","lu"); foreach($inutile as $key=>$value){ $texte = eregi_replace($value, "", $texte); } echo "<br>".$texte; A+, Anonymus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Guest exabs Posté 10 Octobre 2003 Partager Posté 10 Octobre 2003 $texte = "lever le couteau sur l'assiette"; $tab1 = array(" le "," la "," les "," lo "," lu ");$tab2 = array("","","","","");$new_text = str_replace($tab1, $tab2, $texte); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Neoboot Posté 10 Octobre 2003 Auteur Partager Posté 10 Octobre 2003 (modifié) $texte = "lever le couteau sur l'assiette"; $tab1 = array(" le "," la "," les "," lo "," lu ");$tab2 = array("","","","","");$new_text = str_replace($tab1, $tab2, $texte); merci beaucoup j'ai un petit penchant pour ta solution et pour mon cas je modifirais par str_replace($tab1, " ",$texte); Modifié 10 Octobre 2003 par Neoboot Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 10 Octobre 2003 Partager Posté 10 Octobre 2003 parce que tu veux faire le minimum de lignes ? alors voilà : $texte = "lever le couteau sur l'assiette, la où les petits lu sont à l'eau (non, pas à lo, à leau"; $inutile = array("'le'","'la'","'les'","'lo'","'lu'"); $newtexte=preg_replace($inutile,"",$texte); echo $newtexte; voilà, A+, Anonymus.. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Neoboot Posté 10 Octobre 2003 Auteur Partager Posté 10 Octobre 2003 oui, enfaite je preferais sa solution car j'ai encore un peu de mal à utiliser les "foreach" Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 10 Octobre 2003 Partager Posté 10 Octobre 2003 foreach ==>> <? $tableau[0]="a"; $tableau[1]="b"; $tableau[2]="c"; $tableau[3]="d"; foreach($tableau as $cle=>$valeur){ echo "<br>clé=".$cle; echo"<br>valeur=".$valeur; } ?> donc on voit bien que la variable $tableau contient 4 valeurs. La valeur 'a' est à la position 0, autrement dit : la clé 0 contient la valeur a la clé 1 contient la valeur b etc. Il est donc possible de dire : pour chaque paire 'clé=>value de 'tableau' autrement dit : foreach ($tableau as $key=>$value) on écrit la clé, puis la valeur, autrement dit, echo $key echo $value donc : foreach ($tableau as $key=>$value){ // code... } Voilà. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Neoboot Posté 10 Octobre 2003 Auteur Partager Posté 10 Octobre 2003 c'est bon, je viens de comprendre ( apres avoir relu plusieur fois ) J'ai reussi à faire un petit truc sympas à l'instant. Merci bien je sens que sa va bien me servir Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 17 Octobre 2003 Partager Posté 17 Octobre 2003 Pour finir j'ajouterais que l'avantage de foreach sur le for($a=... est le suivant : Dans un tableau, les index se suivent : $array[0]="quelque chose"; $array[1]="autre chose"; $array[2]="encore autre chose"; $array[3]="ca c'est pas grand chose"; $array[4]="et caetera"; donc, on peut dire : for($a=0;$a<count($array);$a++){ echo "<br>".$array[$a]; } Seulement, on peut avoir besoin d'effacer l'entrée d'un tableau : unset ($array[3]); // puisque c'est pas grand chose On se retrouve donc avec le tableau suivant : $array[0]="quelque chose"; $array[1]="autre chose"; $array[2]="encore autre chose"; $array[4]="et caetera"; et la boucle for ne marchera plus : for($a=0;$a<count($array);$a++){ echo "<br>$a ".$array[$a]; } affichera l'erreur suivante : Undefined offset: 3 autrement dit, l'entrée $array[3] n'existe pas ... Avec foreach, le probleme est différent Foreach ne regarde pas le numéro de l'index, il dit simplement : Pour chaque entrée Autrement dit, s'il en manque une, on passe à la suivante. Pour foreach, le tableau $array = array(0=>"quelque chose",1=>"autre chose",2=>"encore autre chose",4=>"et caetera"); sera parcouru ainsi : foreach($array as $key=>$value){ echo "<br>$key ".$value; } et affichera : 0 quelque chose 1 autre chose 2 encore autre chose 4 et caetera Autre avantage du foreach : Il n'a pas besoin de numéro d'index : $array = array("couleur"=>"rouge","type"=>"break","puissance"=>"400"); foreach($array as $key=>$value){ echo "<br><b>".$key."</b> : ".$value; } sortira : couleur : rouge type : break puissance : 400 Voilà un bref passage sur les avantages du foreach par rapport au for. Anonymus. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Beatnykk Posté 20 Octobre 2003 Partager Posté 20 Octobre 2003 merci je viens d'apprendre un truc : le foreach m'a toujours semblé plus simple à utiliser que le for, qui me faisait des erreurs php. maintenant je sais pourquoi : je devais avoir une liste discontinue à traiter !! bon chang mais ché bin choure ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant