1 / 44

Le traitement de chaîne de caractère

Le traitement de chaîne de caractère. Mettre en forme. Examiner. Manipuler. printf(). Spécificateurs ... de type. ... de remplissage. ... de larqeur. ... de précision. Les fonctions printf() et sprintf.

Download Presentation

Le traitement de chaîne de caractère

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Les fonctions printf() et sprintf La fonction printf() formate le contenu d'une chaîne de caractère à l'aide d'instructions appelées spécifications de conversion. Les données reformatées sont présentées dans la chaîne de caractère par un symbole "%" et sont fournis en argument dans l'ordre où elles apparaissent dans la chaîne. printf("ma %s de %s", "chaine", "caractère");//Renvoie "ma chaine de caractère" sprintf() permet de reformater une chaine puis de la placer dans une variable sans qu'elle apparaissent à l'écran: $nvChaine = sprintf ("ma %s de %s", "chaine", "caractère"); AULAS - 2007

  2. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Les spécificateurs de type Les spécificateurs de type - obligatoires après le % - permettent de forcer la conversion de la variable dans le type indiqué. Spécificateur Description c équivalent ASCII d'un entier d Décimal f Double s Chaîne b Binaire o Octal x Hexadécimal X Hexadécimal en majuscule AULAS - 2007

  3. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Les spécificateurs de type Exemple : $i = 123; print "$i vaut : "; printf ("%c comme lettre\n", $i); //Renvoi "{" printf ("%f comme décimal\n", $i); //Renvoi 123.000000 printf ("%s comme chaîne\n", $i); //Renvoi "123" printf ("%b comme binaire\n", $i); //Renvoi 1111011 printf ("%o comme octal\n", $i); //Renvoi 173 printf ("%X comme hexadécimal\n", $i);//Renvoi 7B AULAS - 2007

  4. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Les spécificateurs de remplissage Cet indicateur facultatif permet d'indiquer le caractère de remplissage à utiliser pour obtenir une chaîne de longueur fixe. Les caractères " " et "0" sont facilement disponibles. Les autres lettres sont disponibles précédées d'un " ' ". Le spécificateur de remplissage se place entre le % et le spécificateur de type: Exemple : printf ("%08s", 123); //Renvoi "00000123" printf ("% 8s", 123); //Renvoi "     123" printf ("%'a8s", 123); //Renvoi "aaaaa123" AULAS - 2007

  5. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Les spécificateurs de largeur Cet indicateur facultatif permet d'indiquer le nombre minimal de caractères que doit occuper le champ. Si ce nombre est positif, il sera aligné à gauche, s'il est négatif, il sera aligné à droite. Exemple : printf ("%-30s", "Alignement à gauche <BR>"); printf ("%30s", "Alignement à droite"); AULAS - 2007

  6. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Les spécificateurs de précision Disponible uniquement pour les nombres à virgule, il permet de mentionner le nombre de chiffres à afficher après la virgule. Exemple : printf ("%.3f", 5.14196); //Renvoi 5.142 AULAS - 2007

  7. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Exercice 1 Soit un tableau : $produits = array ("Salade"=>"1.15",                     "Baguette"=>"1.00",                    "Lardons"=>0.9); Faites en sorte (à l'aide de printf()) qu'il s'affiche de la manière suivante (on a pris pour largeur 40 caractères tout inclus): Nom Prix ---------------------------------------- Salade 1.15 Baguette 1.00 Lardons 0.90 Pensez à utiliser les balises <PRE> et </PRE> pour forcer la page HTML à utiliser une chasse fixe. AULAS - 2007

  8. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Exercice 1 Soit un tableau : $produits = array ("Salade"=>"1.15",                     "Baguette"=>"1.00",                    "Lardons"=>0.9);printf ("%-20s%20s\n", "Nom", "Prix"); AULAS - 2007

  9. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Exercice 1 Soit un tableau : $produits = array ("Salade"=>"1.15",                     "Baguette"=>"1.00",                    "Lardons"=>0.9);printf ("%-20s%20s\n", "Nom", "Prix"); printf ("%'-40s\n", ""); AULAS - 2007

  10. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Exercice 1 Soit un tableau : $produits = array ("Salade"=>"1.15",                     "Baguette"=>"1.00",                    "Lardons"=>0.9);printf ("%-20s%20s\n", "Nom", "Prix"); printf ("%'-40s\n", "");  printf ("%-20s%20.2f\n", $clef, $valeur); AULAS - 2007

  11. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision Exercice 1 Soit un tableau : $produits = array ("Salade"=>"1.15",                     "Baguette"=>"1.00",                    "Lardons"=>0.9);printf ("%-20s%20s\n", "Nom", "Prix"); printf ("%'-40s\n", ""); foreach ($produits as $clef=>$valeur) {  printf ("%-20s%20.2f\n", $clef, $valeur); } AULAS - 2007

  12. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Déterminer la longueur d'une chaîne strlen ($chaine) $chaine = "Un Baudet chargé de reliques, S'imagina qu'on l'adorait."; AULAS - 2007

  13. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Déterminer la longueur d'une chaîne strlen ($chaine) $chaine = "Un Baudet chargé de reliques, S'imagina qu'on l'adorait."; print "Cette chaine comporte ".strlen($chaine)." caractères."; //Renvoi 56 AULAS - 2007

  14. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Extraire une chaîne à partir de … strstr ($chaine, "toto") Cette fonction permet de rechercher la sous-chaîne "toto" dans $chaine. Cette fonction renvoie 0 si la sous-chaîne n'est pas trouvée, sinon elle renvoie la partie de $chaine qui débute avec la sous-chaîne. AULAS - 2007

  15. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Extraire une chaîne à partir de … strstr ($chaine, "toto") Cette fonction permet de rechercher la sous-chaîne "toto" dans $chaine. Cette fonction renvoie 0 si la sous-chaîne n'est pas trouvée, sinon elle renvoie la partie de $chaine qui débute avec la sous-chaîne. $chaine = "Un Baudet chargé de reliques, S'imagina qu'on l'adorait."; print strstr($chaine, "ag"); //Renvoi "agina qu'on l'adorait." AULAS - 2007

  16. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Extraire une chaîne à partir de … substr ($chaine, début_recherche [, longueur]) Cette fonction retourne une sous-chaîne extraite de $chaine à partir de la position debut_recherche et, si vous utilisez l'argument facultatif, sur une longueur de longueur caractères. AULAS - 2007

  17. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Extraire une chaîne à partir de … substr ($chaine, début_recherche [, longueur]) Cette fonction retourne une sous-chaîne extraite de $chaine à partir de la position debut_recherche et, si vous utilisez l'argument facultatif, sur une longueur de longueur caractères. print substr ($chaine, -8, 4); //Renvoi "ador" AULAS - 2007

  18. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Rechercher une chaîne dans … strpos ($chaine, "toto" [, début_recherche]) Cette fonction retourne la position de la sous-chaîne "toto" dans $chaine. Elle admet un troisième argument facultatif, qui permet de préciser l'endroit à partir duquel vous souhaitez démarrer la recherche. AULAS - 2007

  19. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Rechercher une chaîne dans … strpos ($chaine, "toto" [, début_recherche]) Cette fonction retourne la position de la sous-chaîne "toto" dans $chaine. Elle admet un troisième argument facultatif, qui permet de préciser l'endroit à partir duquel vous souhaitez démarrer la recherche. print strpos ($chaine, "ag"); //Renvoi 34 AULAS - 2007

  20. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Morceller une chaîne avec … strtok ($chaine, délimiteurs) Cette fonction morcelle $chaine à chaque fois qu'un caractère des caractères délimiteurs est trouvé (il peut y en avoir plusieurs). En vous basant sur le caractère espace, vous pouvez ainsi diviser une chaîne en autant d'éléments qu'il y a de mots. On peut passer en argument plusieurs caractères délimiteurs. $delimitateur = " ";$mot = strtok ($chaine, $delimitateur); while (is_string($mot)){ if ($mot) //Permet d'éliminer les espaces doubles  print "$mot"; $mot = strtok($delimitateur);} AULAS - 2007

  21. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Morceller une chaîne avec … $tableau = explode (delimiteur, $chaine) Cette fonction fait la même chose que strtok() à ceci près que chaque élément récupéré est mis dans un tableau. $delimitateur = " "; $tableau = explode ($delimitateur, $chaine); print_r($tableau); Attention : contrairement à toutes les fonctions vues jusqu'ici, explode() attend $chaine en second argument. AULAS - 2007

  22. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Exercice 2 Retirez et affichez les paires nom=valeur de l'url suivante : $chaine="http://www.ici.org/index.php,?user=toto&mdp=facile&age=22&page=223"; Attention: souvenez vous que strtok peut recevoir plusieurs séparateurs en argument. AULAS - 2007

  23. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Exercice 2 Retirez et affichez les paires nom=valeur de l'url suivante : $chaine="http://www.ici.org/index.php,?user=toto&mdp=facile&age=22&page=223"; Retirez et affichez les paires nom=valeur de l'url suivante : $delimitateur = "&?"; $mot = strtok ($chaine, $delimitateur); AULAS - 2007

  24. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Exercice 2 Retirez et affichez les paires nom=valeur de l'url suivante : $chaine="http://www.ici.org/index.php,?user=toto&mdp=facile&age=22&page=223"; Retirez et affichez les paires nom=valeur de l'url suivante : $delimitateur = "&?"; $mot = strtok ($chaine, $delimitateur); while (is_string($mot)) { } AULAS - 2007

  25. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler strlen() strstr() substr() strpos() strtok() Exercice 2 Retirez et affichez les paires nom=valeur de l'url suivante : $chaine="http://www.ici.org/index.php,?user=toto&mdp=facile&age=22&page=223"; Retirez et affichez les paires nom=valeur de l'url suivante : $delimitateur = "&?"; $mot = strtok ($chaine, $delimitateur); while (is_string($mot)) {  if ($mot)   print "$mot<BR>";  $mot = strtok($delimitateur); } AULAS - 2007

  26. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse ltrim(), trim() et rtrim()/chop() Php dispose des fonctions trim standards qui permettent de supprimer les espaces et caractères de présentation: \n \t, etc. AULAS - 2007

  27. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse ltrim(), trim() et rtrim()/chop() Php dispose des fonctions trim standards qui permettent de supprimer les espaces et caractères de présentation: \n \t, etc. $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd. "; print ltrim ($chaine); //Renvoi "GauThIer marIe , Voyages en vapeur, slnd. " AULAS - 2007

  28. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse ltrim(), trim() et rtrim()/chop() Php dispose des fonctions trim standards qui permettent de supprimer les espaces et caractères de présentation: \n \t, etc. $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd. "; print ltrim ($chaine); //Renvoi "GauThIer marIe , Voyages en vapeur, slnd. " $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd. "; print trim ($chaine); //Renvoi "GauThIer marIe , Voyages en vapeur, slnd." AULAS - 2007

  29. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse ltrim(), trim() et rtrim()/chop() Php dispose des fonctions trim standards qui permettent de supprimer les espaces et caractères de présentation: \n \t, etc. $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd. "; print ltrim ($chaine); //Renvoi "GauThIer marIe , Voyages en vapeur, slnd. " $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd. "; print trim ($chaine); //Renvoi "GauThIer marIe , Voyages en vapeur, slnd." $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd. "; print chop ($chaine); //Renvoi " GauThIer marIe , Voyages en vapeur, slnd." AULAS - 2007

  30. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse str_replace() str_replace (chaine_rechercher, chaine_remplacement, $chaine) Cette fonction remplace toutes les occurences de chaine_rechercher par chaine_remplacement dans la chaîne $chaine. $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd. "; print str_replace ("e", "a", $chaine); //Renvoi " GauThIar marIa , Voyagas an vapaur, slnd. " Attention : contrairement à toutes les fonctions vues jusqu'ici, str_replace() attend la chaîne en dernier argument. AULAS - 2007

  31. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Modifier la casse de manière globale strtoupper ($chaine) Cette fonction transforme $chaine en majuscule. print strtoupper ($chaine); //Renvoi " GAUTHIER MARIE , VOYAGEURS EN VAPEUR, SLND. " AULAS - 2007

  32. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Modifier la casse de manière globale strtoupper ($chaine) Cette fonction transforme $chaine en majuscule. print strtoupper ($chaine); //Renvoi " GAUTHIER MARIE , VOYAGEURS EN VAPEUR, SLND. " strtolower ($chaine) Cette fonction transforme $chaine en minuscule. print strtolower ($chaine); //Renvoi " gauthier marie , voyages en vapeur, slnd. " AULAS - 2007

  33. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Modifier la casse de manière spécifique (pour mémoire) ucfirst ($chaine) Cette fonction met la première lettre de $chaine en majuscule. print ucfirst ($chaine); //Renvoi " GauThIer marIe , Voyages en vapeur, slnd. " AULAS - 2007

  34. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Modifier la casse de manière spécifique (pour mémoire) ucfirst ($chaine) Cette fonction met la première lettre de $chaine en majuscule. print ucfirst ($chaine); //Renvoi " GauThIer marIe , Voyages en vapeur, slnd. " ucwords ($chaine) Cette fonction met la première lettre de chaque mot de $chaine en majuscule. print ucwords ($chaine); //Renvoi " GauThIer MarIe , Voyages En Vapeur, Slnd. " AULAS - 2007

  35. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 Récupérez dans la chaîne : " \t\tGauThIer marIe , Voyages en vapeur, slnd. " le nom et le prénom de l'auteur et présentez les de la manière suivante : DELACROIX (Eugène). AULAS - 2007

  36. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd."; print "Avant: $chaine<BR>"; print "Apres: $chaine"; AULAS - 2007

  37. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd."; print "Avant: $chaine<BR>"; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); print "Apres: $chaine"; AULAS - 2007

  38. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd."; print "Avant: $chaine<BR>"; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); print "Apres: $chaine"; AULAS - 2007

  39. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd."; print "Avant: $chaine<BR>"; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); print "Apres: $chaine"; AULAS - 2007

  40. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd."; print "Avant: $chaine<BR>"; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); //$tab[0] contient GauThIer //$tab[1] contient marIe print "Apres: $chaine"; AULAS - 2007

  41. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd."; print "Avant: $chaine<BR>"; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); $tab[0] = strtoupper($tab[0]); //GAUTHIER print "Apres: $chaine"; AULAS - 2007

  42. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd."; print "Avant: $chaine<BR>"; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); $tab[0] = strtoupper($tab[0]); $tab[1] = "(".ucwords(strtolower($tab[1])).")"; print "Apres: $chaine"; AULAS - 2007

  43. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd."; print "Avant: $chaine<BR>"; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); $tab[0] = strtoupper($tab[0]); $tab[1] = "(".ucwords(strtolower($tab[1])).")"; // (Marie) print "Apres: $chaine"; AULAS - 2007

  44. Le traitement de chaîne de caractère Mettre en forme Examiner Manipuler Nettoyer Remplacer Modifier la casse Exercice 3 $chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd."; print "Avant: $chaine<BR>"; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); $tab[0] = strtoupper($tab[0]); $tab[1] = "(".ucwords(strtolower($tab[1])).")"; $chaine = $tab[0]." ".$tab[1]; print "Apres: $chaine"; AULAS - 2007

More Related