La création de pages web nécessite la plupart du temps la manipulation
de chaînes de caractères.
Nous allons en explorer les principales fonctions disponibles en PHP.
16.1 Qu'est-ce qu'une chaîne de caractères ?
Trois choses à savoir :
-
Le mot anglais qui désigne les chaînes de caractères est
« string » (utile, car la documentation est souvent en
anglais).
- Ayez toujours à portée de main la documentation de PHP.
Par exemple :
http://fr.php.net/manual/fr/html/
Et, d'après le point précédent, allez voir le chapitre
String.
- Une chaîne, c'est n'importe quoi entouré de guillemets
(«
" ») ou d'apostrophes (« ' »). Voici deux
exemples :
"Je suis une chaîne de caractères."
'Je suis aussi une chaîne de caractères.'
16.2 Que choisir ? Guillemets ou apostrophes ?
C'est pareil, sauf que :
-
Si on commence par l'un, on finit par le même. Voici deux
exemples qui NE sont PAS des chaînes de caractères :
"Je ne suis pas une chaîne de caractères.'
'Je ne suis pas non plus une chaîne de caractères."
- Si votre chaîne contient des apostrophes, utilisez des
guillemets, si votre chaîne contient des guillemets, utilisez des
apostrophes. Par exemple :
"J'en révais..."
'Il a dit "Bonjour".'
Remarque : si votre chaîne doit contenir les deux, vous
pouvez utiliser le caractère backslash (« \ ») :
'J\'en révais... Il m\'a dit "Bonjour".'
"J'en révais... Il m'a dit \"Bonjour\"."
- Les variables sont interprétées dans les guillemets, mais pas
dans les apostrophes.
Par exemple si la variable $a vaut 5, l'instruction
« echo "$a"; » affichera « 5 », tandis que
« echo '$a'; » affichera « $a ».
Il en est de même des caractères précédés du caractère
backslash (sauf « \' »).
16.3 Principales utilisations du backslash
Le caractère backslash (« \ ») permet d'introduire dans
les chaînes des caractères qui ne pourraient pas y être sinon (par
exemple des guillemets dans une chaîne entourée de guillemets, des
retours à la ligne, etc...). Comme il est de ce fait lui même un
caractère spécial, il faut une façon particulière de le noter pour
qu'il soit inclus dans une chaîne. Ce sera « \\ ».
Voici un tableau récapitulant les principales utilisations du
backslash :
| code |
signification |
\n |
retour à la ligne |
\t |
tabulation |
\\ |
backslash lui-même (« \ ») |
\" |
guillemet (« " ») dans une chaîne entourée de
guillemets |
\' |
apostrophe (« ' ») dans une chaîne entourée
d'apostrophes |
\$ |
dollar (« $ ») |
16.4 Principales opérations sur les chaînes
-
affectation : Comme toute variable, l'affectation
d'une variable chaîne se fait par le symbole «
= » :
$a="bla bla bla bla...";
- affichage : Comme pour toute valeur, l'affichage se
fait par l'instruction « echo ».
- concaténation : L'opérateur de concaténation est le
point (« . »).
16.5 Principales fonctions
Il ne s'agit là que des fonctions principales, et elles ne
seront pas expliquées, ce qui signifie qu'il vous
faudra aller voir dans la doc de PHP par vos propres moyens.
16.6 Conversions de types
PHP est extrémement tolérant sur les conversions de types et essaiera
toujours de faire le mieux et le plus naturellement possible.
N'en profitez quand même pas trop et prévoyez (et comprenez) toujours
son comportement, cela vous évitera sans doute des déconvenues....
Un exemple de ce qu'on peut faire (mais évitez d'en abuser...) :
<?php
$truc = "5";
echo "$truc (".gettype($truc).")<BR>\n";
$truc = $truc."2";
echo "$truc (".gettype($truc).")<BR>\n";
$truc = $truc*5;
echo "$truc (".gettype($truc).")<BR>\n";
$truc = $truc."2";
echo "$truc (".gettype($truc).")<BR>\n";
$truc = $truc/100;
echo "$truc (".gettype($truc).")<BR>\n";
?>
Ce programme affichera :
5 (string)
52 (string)
260 (integer)
2602 (string)
260.2 (double)
Remarque. La commande « echo "$truc(".gettype($truc).")<BR>\n"; » provoque l'affichage de la valeur de
$truc, suivie de son type entre parenthèses, tout ceci étant
terminé par un passage à la ligne.
16.7 Exercice
Écrire un formulaire qui devra vérifier l'identité de l'utilisateur en
demandant un nom, un prénom et un mot de passe (ce dernier ne devra
pas apparaître à l'écran pendant la frappe).
Tant que l'utilisateur n'est pas recconu, seul s'affiche le
formulaire.
Si l'utilisateur est reconnu, seul s'affiche un message d'accueil.
La casse des valeurs ne devra être prise en compte (c'est-à-dire le
fait que ce soit tapé en majuscules ou en minuscules ne devra pas
changer le comportement des pages).
Les espaces tapés en début ou en fin de mot de passe, de nom ou de
prénom devront être éliminés.
Vous trouverez un exemple à cette adressse :
http://www.grappa.univ-lille3.fr/polys/reseaux-DG/exemples/identite.php