Cours de PHP/MySQL pour l'IEF (Institut Européen de Formation)
Quatrième partie des cours de développement PHP :
- Traitement des chaînes en PHP
- Fonctions sur les tableaux
- Fonctions usuelles en PHP
- Fonctions mathématiques en PHP
- Fonctions de dates en PHP
1. Traitement des chaînes
echo(‘texte’) : Affichage simple
printf(‘PHP version %d en %s’, 5, ‘fr’) : Affichage avec
masques
Les masques sont remplacés les uns après les autres,
dans leur ordre
Le caractère suivant le % désigne le type de donnée : s
(chaîne de caractères), d (nombres entiers), f (nombre à
virgule flottante)
Utiliser %% pour afficher simplement le caractère %
2. Traitement des chaînes
sprintf(‘%s PHP !’, ‘Hello’) : Permet de renvoyer la
chaîne de caractère dans une variable plutôt que
de l’afficher à l’écran
$texte = sprintf(‘%s PHP !’, ‘Hello’);
vprintf() et vsprintf() permet de passer un tableau
en paramètre contenant plusieurs données si il y
en a beaucoup
3. Traitement des chaînes
sscanf() : Permet de faire l’inverse de sprintf() en
scannant une chaîne de caractères et renvoie
donc les valeurs dans un tableau
Ex : sscanf(‘3 arrondi de 3.14’, ‘%d %s de %f’);
fscanf() : Permet la même chose, mais sur un
fichier
4. Traitement des chaînes :
informations d’une chaîne
Accéder à un caractère : $texte(1);
Taille d’une chaîne (comprends le nombre de
signes, espaces et caractères blancs) :
strlen($texte);
Nombre de mots : str_word_count($texte [, 1]);
5. Traitement des chaînes :
recherche
strpos($texte, $recherche [, $startpos]) : Permet de
connaitre la position d’une chaine dans une autre.
Renvoie 0 si la chaîne n’est pas trouvé.
stripos() permet de ne pas tenir compte de la casse
strrpos() permet de faire la recherche de droite à
gauche
strripos() une recherche de droite à gauche sans
tenir compte de la casse
6. Traitement des chaînes :
recherche
strspn($texte, $caracteres) : Permet de rechercher
des caractères et retourne la longueur de la
première sous-chaîne le contenant. (A partir du
début)
strcspn : Retourne la longueur de la première sous-
chaîne ne contenant PAS les caractères
Ces deux fonctions permettent de rechercher par
exemple des caractères interdits transmis par un
utilisateur dans un formulaire
7. Traitement des chaînes :
formatage
addslashes($texte) : Ajout automatique des anti-
slash pour échapper les guillemets, apostrophes
et anti-slash. Utile notamment pour transmettre
une chaîne à une base de donnée SQL.
addcslashes : Identique, mais convertit les fins de
lignes et retours chariots en n et r.
stripslashes() et stripcslashes() permettent de faire
l’opération inverse.
8. Traitement des chaînes :
formatage
htmlspecialchars($texte [, ENT_COMPAT, ISO-8859-1) :
Permet de convertir une chaîne de caractère en format
HTML. Cette fonction permet de retirer les caractères <, >,
& pour les transformer en entités <, > et & et
éviter l’interprétation HTML
Voir documentation PHP pour les 2 paramètres optionnels
htmlentities() permet de convertir tous les caractères
spéciaux en entités, par exemple les caractères accentués
html_entity_decode() réalise l’inverse
9. Traitement des chaînes :
formatage
nl2br($texte) : Convertit toutes les fins de lignes
(n) en <br/> pour être effectives dans le HTML
strip_tags($chaine, ‘<h1><strong>’) : Permet de
retirer toutes les balises HTML d’une chaîne de
caractère. Le second paramètre permet d’en
autoriser certaines. Permet par exemple
d’autoriser les balises <b> et <i> dans des
commentaires sur un blog.
10. Traitement des chaînes :
manipulation
strstr() est similaire à strpos() : Permet de
recherche une chaîne dans une autre, mais
retourne le reste de la chaîne.
Ex : strstr(‘test@mail.com’, ‘@‘); retourne
@mail.com
stristr() pour ignorer la casse
strrchr() pour l’analyse de droite à gauche
11. Traitement des chaînes :
manipulation
substr($texte, $startpos [, $length]) : Renvoie une
sous-chaîne en démarrant à partir de la position
de départ indiqué puis sur la longueur précisée. Si
elle n’est pas précisée, cela renvoie tout le reste
de la chaîne.
$texte = ‘Test de la fonction substr’;
substr($texte, 6, 5) retourne : ‘e la ’
12. Traitement des chaînes :
manipulation
str_replace($recherche, $remplacement, $texte [, $nbr]) :
Permet de remplacer une sous-chaîne par une autre.
La recherche peut être un tableau de chaîne qui seront
toutes remplacées.
Si le remplacement est aussi un tableau, ils sont remplacés
dans le même ordre.
stri_ireplace() : Identique mais ignore la casse.
substr_replace($texte, $remplacement, $position) : permet
de remplacer à partir d’une position
13. Traitement des chaînes :
manipulation
trim($texte [, $carac]) : permet de retirer les
caractères blancs au début et à la fin d’une chaîne
(élagage)
Sont considérés blancs : espace, tabulation,
caractère de fin de ligne, retour chariot
Le second paramètre permet de spécifier des
caractères à retirer
14. Traitement des chaînes :
manipulation
str_pad($texte, $length [, $carac,
STR_PAD_BOTH]) : permet d’ajouter des
caractères pour compléter une chaîne.
Ex : str_pad(‘test’, 10, STR_PAD_RIGHT)
retourne ‘test ’
Par défaut complète des deux côtés avec des
espaces (si les paramètres optionnels ne sont pas
précisés).
15. Traitement des chaînes :
manipulation
strtoupper($texte) : retourne la chaîne en
majuscules
strtolower($texte) : retourne la chaîne en
minuscule
wordwrap($texte [, $length = 75, $separateur =
‘n’, FALSE]) : découpe une chaîne de caractère au
niveau des mots. On peut préciser un séparateur,
par exemple <br/> pour une sortie HTML.
17. Fonctions sur les tableaux
Compter le nombre d’éléments : count($tab);
Présence d’une valeur dans un tableau :
in_array($var, $tab [, strict]);
Rechercher une clé : array_key_exists();
Rechercher une valeur et retourner sa clé :
array_search($var, $tableau [, strict]); (utiliser ===
pour vérifier si la recherche renvoie false, la clé
peut être null)
18. Fonctions sur les tableaux
array_count_values($tableau); : Renvoie le nombre de fois où est
présent chaque élément
array_rand($tableau, [$nbTirage]); : Renvoie au hasard des clés
d’un tableau
extract($tableau); : Pour les tableaux associatifs, crée des variables
à partir des clés du tableau contenant la valeur du tableau
implode($caractere, $tableau); : Concatène toutes les valeurs du
tableau en les séparant avec le caractère spécifié
explode($caractere, $chaine); : Explose une chaîne en tableau en
séparant au niveau du caractère spécifié
19. Fonctions sur les tableaux
array_slice($tableau, $positionDepart, $nombre); :
Renvoie le nombre d’éléments d’un tableau à
partir d’une position spécifiée (tableau commence
à 0)
array_splice($tableau, $positionDepart,
$nombre); : Permet de remplacer des éléments
d’un tableau (ou les retirer si rien n’est spécifié)
20. Fonctions sur les tableaux
sort($tableau[, SORT_NUMERIC]); : Tri un tableau par ordre alphabétique
des valeurs (ou numérique si spécifié)
rsort($tableau); : Tri un tableau par ordre inversé
asort();/arsort(); : Tri un tableau sans modifier les index
ksort();/krsort(); : Tri en fonction des index/clé et non les valeurs
natsort(); : Tri plus « naturel ». Ex avec sort : ‘test1’, ‘test12’, ‘test2’ / avec
natsort() : ‘test1’, ‘test2’, ‘test12’
usort();/uksort(); : Permet de créer ses propres fonctions de tri de tableau
array_multisort(); : Permet de trier plusieurs tableaux dans le même ordre,
toujours par rapport au premier spécifié (puis second si égalité, etc.)
21. Fonctions sur les tableaux
array_keys($tableau); : Renvoie un tableau indexé
des clés du tableau passé en paramètre
array_values($tableau); : Renvoie un tableau
indexé des valeurs du tableau en paramètre
array_flip(); : Intervertit les clés et valeurs d’un
tableau associatif. Si une valeur est présente
plusieurs fois, seule la dernière sera conservée
22. Fonctions sur les tableaux
array_merge($tab1, $tab2 [, $tabX]); : Fusionne des
tableaux ensemble. Si il s’agit de tableau associatif avec
des clés identiques, seule la dernière valeur est
conservée
array_merge_recursive(); : Fusionne les tableaux
ensemble, mais fusionne également les sous-tableaux
ensemble (permet de conserver toutes les valeurs par
exemple)
array_chunk($tableau, $taille); : Sépare un tableau en
plusieurs tableaux de taille définie
23. Fonctions sur les tableaux
array_diff($tab1, $tab2[, $tab3]); : Compare le premier
tableau aux suivants et renvoie les valeurs absentes des
autres tableaux
array_diff_assoc($tab1, $tab2[, $tab3]); : Fonctionne de la
même manière, mais compare l’association clé/valeur
array_intersect($tab1, $tab2[, $tab3]); : Compare le premier
tableau aux suivants et renvoie les valeurs présentes dans
les autres tableaux
array_unique($tableau); : Enlève les valeurs en doublon du
tableau
24. Fonctions sur les tableaux
array_push($tableau, $valeur1[, $valeurX]); : Ajoute
les valeurs à la fin du tableau
array_pop($tableau); : Retourne la dernière valeur
du tableau et la retire du tableau. Si le tableau est
vide, la fonction retourne NULL
array_unshift() et array_shift() font la même chose,
mais avec le début du tableau au lieu de la fin
25. Fonctions sur les tableaux
reset($tableau); : Place le curseur qui parcours le tableau au
début de celui-ci
next($tableau); : Avance le curseur de une place
rev($tableau); : Recule le curseur de une place
end($tableau); : Place le curseur à la fin du tableau
current($tableau); : Retourne la valeur courante du curseur
each($tableau); : Retourne une liste de clé/valeur et passe à la
position suivante (sorte de current() + next()). La fonction
renvoie FALSE si il n’y a plus de valeur.
27. Fonctions usuelles
phpinfo( [type d’information] ); : Permet d’afficher des
informations sur votre serveur et configuration PHP
print_r( $variable ); : Affiche les informations d’une variable de
manière lisible
var_dump( variable ); : Affiche des informations détaillées d’une
variable : type, longueur, etc.
highlight_string( code ); : Affiche du code PHP avec de la
coloration syntaxique
highlight_file( fichier ); : Affiche le contenu d’un fichier avec la
coloration syntaxique
28. Fonctions usuelles :
Mathématique
max($var1, $var2, $var3); et min($tableau1, $tableau2); :
Retourne la(les) valeur(s) maximum ou minimum de
tableaux ou de variables
round($nombre[, $precision]); : Arrondi à l’entier le plus
proche
ceil($nombre); : Arrondi à l’entier supérieur
floor($nombre); : Arrondi à l’entier inférieur
mt_rand($min, $max); (similaire rand(); mais plus efficace) :
Retourne un chiffre au hasard entre la valeur min et max
29. Fonctions usuelles :
Dates
date($format[, $timestamp]); : Retourne la date actuelle ou
celle en second paramètre formatée
Le format est définit avec une chaîne de caractères
définissant les jours, heures, etc. (c.f. Documentation phpnet)
Le timestamp est le nombre de secondes écoulées depuis
1970. strtotime($chaine) permet d’avoir un timestamp d’une
date donnée. mktime() pour avoir un timestamp à partir de
données de jour, heure, minute, etc.
checkdate(mois, jour, année) : Vérifie la validité d’une date
(par exemple pour valider une année bissextile)
30. Fonctions usuelles :
Chiffrement (cryptage)
md5($donnee); : Très utilisé, mais aujourd’hui sensible. A utiliser plutôt
pour vérifier la validité d’un fichier par exemple (fichier complet)
sha1(); : Plus lent que MD5, mais moins de chance de collision
(résultat identique)
sha256/sha512 : Plus lent, mais plus fort, il s’agit des méthodes de
chiffrement à utiliser aujourd’hui
crypt() : Encore utilisé par beaucoup de système, mais également
devenu sensible
bcrypt : Une autre méthode de chiffrement particulièrement efficace
pour des mots de passe
31. Fonctions usuelles
register_shutdown_function(‘#nom_fonction#’); :
Exécute la fonction dont le nom est spécifié lors
de l’arrêt du script. Par exemple pour ressortir des
statistiques d’exécution de votre script ou effacer
des données en base lorsque le script est fini, etc.
eval($variable); => Exécution d’une chaine de
code, par exemple pour faire un site similaire à
« writecodeonline() » (attention à la sécurité ;))