Neoboot Posté 9 Octobre 2003 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
Anonymus Posté 10 Octobre 2003 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.
Guest exabs Posté 10 Octobre 2003 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);
Neoboot Posté 10 Octobre 2003 Auteur 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
Anonymus Posté 10 Octobre 2003 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..
Neoboot Posté 10 Octobre 2003 Auteur Posté 10 Octobre 2003 oui, enfaite je preferais sa solution car j'ai encore un peu de mal à utiliser les "foreach"
Anonymus Posté 10 Octobre 2003 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à.
Neoboot Posté 10 Octobre 2003 Auteur 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
Anonymus Posté 17 Octobre 2003 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.
Beatnykk Posté 20 Octobre 2003 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 !
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant