440 likes | 506 Views
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.
E N D
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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