Mettre en formeExaminerManipuler Les fonctions printf() et sprintf Le traitement de chaîne de caractère 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 printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Les spécificateurs de type Le traitement de chaîne de caractère 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 printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Les spécificateurs de type Le traitement de chaîne de caractère Exemple : $i = 123; print "$i vaut : "; printf ("%c comme lettre\n", $i); //Renvoi "{" printf ("%f comme décimal\n", $i); //Renvoi printf ("%s comme chaîne\n", $i); //Renvoi "123" printf ("%b comme binaire\n", $i); //Renvoi printf ("%o comme octal\n", $i); //Renvoi 173 printf ("%X comme hexadécimal\n", $i);//Renvoi 7B AULAS printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Les spécificateurs de remplissage Le traitement de chaîne de caractère 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 " " printf ("% 8s", 123); //Renvoi " 123" printf ("%'a8s", 123);//Renvoi "aaaaa123" AULAS printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Les spécificateurs de largeur Le traitement de chaîne de caractère 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 "); printf ("%30s", "Alignement à droite"); AULAS printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Les spécificateurs de précision Le traitement de chaîne de caractère Disponible uniquement pour les nombres à virgule, il permet de mentionner le nombre de chiffres à afficher après la virgule. Exemple : printf ("%.3f", ); //Renvoi AULAS printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Exercice 1 Le traitement de chaîne de caractère 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 et pour forcer la page HTML à utiliser une chasse fixe. AULAS printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Exercice 1 Le traitement de chaîne de caractère Soit un tableau : $produits = array ("Salade"=>"1.15", "Baguette"=>"1.00", "Lardons"=>0.9); printf ("%-20s%20s\n", "Nom", "Prix"); AULAS printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Exercice 1 Le traitement de chaîne de caractère Soit un tableau : $produits = array ("Salade"=>"1.15", "Baguette"=>"1.00", "Lardons"=>0.9); printf ("%-20s%20s\n", "Nom", "Prix"); printf ("%'-40s\n", ""); AULAS printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Exercice 1 Le traitement de chaîne de caractère 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 printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Exercice 1 Le traitement de chaîne de caractère 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 printf()Spécificateurs... de type... de remplissage... de larqeur... de précision
Mettre en formeExaminerManipuler Déterminer la longueur d'une chaîne Le traitement de chaîne de caractère strlen ($chaine) $chaine = "Un Baudet chargé de reliques, S'imagina qu'on l'adorait."; AULAS strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Déterminer la longueur d'une chaîne Le traitement de chaîne de caractère 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 strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Extraire une chaîne à partir de … Le traitement de chaîne de caractère 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 strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Extraire une chaîne à partir de … Le traitement de chaîne de caractère 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 strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Extraire une chaîne à partir de … Le traitement de chaîne de caractère 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 strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Extraire une chaîne à partir de … Le traitement de chaîne de caractère 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 strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Rechercher une chaîne dans … Le traitement de chaîne de caractère 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 strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Rechercher une chaîne dans … Le traitement de chaîne de caractère 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 strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Morceller une chaîne avec … Le traitement de chaîne de caractère 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 strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Morceller une chaîne avec … Le traitement de chaîne de caractère $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 strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Exercice 2 Le traitement de chaîne de caractère Retirez et affichez les paires nom=valeur de l'url suivante : $chaine=" Attention: souvenez vous que strtok peut recevoir plusieurs séparateurs en argument. AULAS strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Exercice 2 Le traitement de chaîne de caractère Retirez et affichez les paires nom=valeur de l'url suivante : $chaine=" Retirez et affichez les paires nom=valeur de l'url suivante : $delimitateur = "&?"; $mot = strtok ($chaine, $delimitateur); AULAS strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Exercice 2 Le traitement de chaîne de caractère Retirez et affichez les paires nom=valeur de l'url suivante : $chaine=" Retirez et affichez les paires nom=valeur de l'url suivante : $delimitateur = "&?"; $mot = strtok ($chaine, $delimitateur); while (is_string($mot)) { } AULAS strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler Exercice 2 Le traitement de chaîne de caractère Retirez et affichez les paires nom=valeur de l'url suivante : $chaine=" Retirez et affichez les paires nom=valeur de l'url suivante : $delimitateur = "&?"; $mot = strtok ($chaine, $delimitateur); while (is_string($mot)) { if ($mot) print "$mot "; $mot = strtok($delimitateur); } AULAS strlen()strstr()substr()strpos()strtok()
Mettre en formeExaminerManipuler ltrim(), trim() et rtrim()/chop() Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse Php dispose des fonctions trim standards qui permettent de supprimer les espaces et caractères de présentation: \n \t, etc.
Mettre en formeExaminerManipuler ltrim(), trim() et rtrim()/chop() Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse 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. "
Mettre en formeExaminerManipuler ltrim(), trim() et rtrim()/chop() Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse 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."
Mettre en formeExaminerManipuler ltrim(), trim() et rtrim()/chop() Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse 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."
Mettre en formeExaminerManipuler str_replace() Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse 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.
Mettre en formeExaminerManipuler Modifier la casse de manière globale Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse strtoupper ($chaine) Cette fonction transforme $chaine en majuscule. print strtoupper ($chaine); //Renvoi " GAUTHIER MARIE, VOYAGEURS EN VAPEUR, SLND. "
Mettre en formeExaminerManipuler Modifier la casse de manière globale Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse 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. "
Mettre en formeExaminerManipuler Modifier la casse de manière spécifique (pour mémoire) Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse ucfirst ($chaine) Cette fonction met la première lettre de $chaine en majuscule. print ucfirst ($chaine); //Renvoi " GauThIer marIe, Voyages en vapeur, slnd. "
Mettre en formeExaminerManipuler Modifier la casse de manière spécifique (pour mémoire) Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse 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. "
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse 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).
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse $chaine = " \t\tGauThIer marIe, Voyages en vapeur, slnd."; print "Avant: $chaine "; print "Apres: $chaine";
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse $chaine = " \t\tGauThIer marIe, Voyages en vapeur, slnd."; print "Avant: $chaine "; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); print "Apres: $chaine";
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse $chaine = " \t\tGauThIer marIe, Voyages en vapeur, slnd."; print "Avant: $chaine "; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); print "Apres: $chaine";
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse $chaine = " \t\tGauThIer marIe, Voyages en vapeur, slnd."; print "Avant: $chaine "; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); print "Apres: $chaine";
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse $chaine = " \t\tGauThIer marIe, Voyages en vapeur, slnd."; print "Avant: $chaine "; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); //$tab[0] contient GauThIer //$tab[1] contient marIe print "Apres: $chaine";
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse $chaine = " \t\tGauThIer marIe, Voyages en vapeur, slnd."; print "Avant: $chaine "; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); $tab[0] = strtoupper($tab[0]); //GAUTHIER print "Apres: $chaine";
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse $chaine = " \t\tGauThIer marIe, Voyages en vapeur, slnd."; print "Avant: $chaine "; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); $tab[0] = strtoupper($tab[0]); $tab[1] = "(".ucwords(strtolower($tab[1])).")"; print "Apres: $chaine";
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse $chaine = " \t\tGauThIer marIe, Voyages en vapeur, slnd."; print "Avant: $chaine "; $tab = explode(" ",trim(substr($chaine,0,strpos($chaine,",")))); $tab[0] = strtoupper($tab[0]); $tab[1] = "(".ucwords(strtolower($tab[1])).")"; // (Marie) print "Apres: $chaine";
Mettre en formeExaminerManipuler Exercice 3 Le traitement de chaîne de caractère AULAS NettoyerRemplacerModifier la casse $chaine = " \t\tGauThIer marIe, Voyages en vapeur, slnd."; print "Avant: $chaine "; $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";