Upload
regis-lutter
View
268
Download
0
Embed Size (px)
DESCRIPTION
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
Citation preview
Traitement des chaînesecho(‘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 %
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
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
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]);
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
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
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.
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
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.
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(‘[email protected]’, ‘@‘); retourne @mail.com
stristr() pour ignorer la casse
strrchr() pour l’analyse de droite à gauche
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 ’
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
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
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).
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.
EXERCICES
Fonctions sur les tableauxCompter 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)
Fonctions sur les tableauxarray_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é
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é)
Fonctions sur les tableauxsort($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.)
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
Fonctions sur les tableauxarray_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
Fonctions sur les tableauxarray_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
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
Fonctions sur les tableauxreset($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.
EXERCICES
Fonctions usuellesphpinfo( [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
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
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)
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
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é ;))
EXERCICES