le traitement de chaîne de caractère
Post on 02-Jan-2016
13 Views
Preview:
DESCRIPTION
TRANSCRIPT
Mettre en forme Examiner Manipuler
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 - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 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
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 "00000123"
printf ("% 8s", 123); //Renvoi " 123"
printf ("%'a8s", 123); //Renvoi "aaaaa123"
AULAS - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 <BR>");
printf ("%30s", "Alignement à droite");
AULAS - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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", 5.14196); //Renvoi 5.142
AULAS - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 <PRE> et </PRE> pour forcer la page HTML à utiliser une chasse fixe. AULAS - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 - 2007
printf() Spécificateurs ... de type ... de remplissage ... de larqeur ... de précision
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
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 - 2007
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
Exercice 2
Le traitement de chaîne de caractère
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
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
Exercice 2
Le traitement de chaîne de caractère
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
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
Exercice 2
Le traitement de chaîne de caractère
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
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
Exercice 2
Le traitement de chaîne de caractère
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
strlen() strstr() substr() strpos() strtok()
Mettre en forme Examiner Manipuler
ltrim(), trim() et rtrim()/chop()
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier 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 forme Examiner Manipuler
ltrim(), trim() et rtrim()/chop()
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier 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 forme Examiner Manipuler
ltrim(), trim() et rtrim()/chop()
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier 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 forme Examiner Manipuler
ltrim(), trim() et rtrim()/chop()
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier 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 forme Examiner Manipuler
str_replace()
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier 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 forme Examiner Manipuler
Modifier la casse de manière globale
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
strtoupper ($chaine)
Cette fonction transforme $chaine en majuscule.
print strtoupper ($chaine);
//Renvoi " GAUTHIER MARIE , VOYAGEURS EN VAPEUR, SLND. "
Mettre en forme Examiner Manipuler
Modifier la casse de manière globale
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier 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 forme Examiner Manipuler
Modifier la casse de manière spécifique (pour mémoire)
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier 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 forme Examiner Manipuler
Modifier la casse de manière spécifique (pour mémoire)
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier 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 forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier 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 forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
$chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd.";
print "Avant: $chaine<BR>";
print "Apres: $chaine";
Mettre en forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
$chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd.";
print "Avant: $chaine<BR>";
$tab = explode(" ",trim(substr($chaine,0,strpos($chaine,","))));
print "Apres: $chaine";
Mettre en forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
$chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd.";
print "Avant: $chaine<BR>";
$tab = explode(" ",trim(substr($chaine,0,strpos($chaine,","))));
print "Apres: $chaine";
Mettre en forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
$chaine = " \t\tGauThIer marIe , Voyages en vapeur, slnd.";
print "Avant: $chaine<BR>";
$tab = explode(" ",trim(substr($chaine,0,strpos($chaine,","))));
print "Apres: $chaine";
Mettre en forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
$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";
Mettre en forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
$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";
Mettre en forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
$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";
Mettre en forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
$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";
Mettre en forme Examiner Manipuler
Exercice 3
Le traitement de chaîne de caractère
AULAS - 2007
Nettoyer Remplacer Modifier la casse
$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";
top related