32
Traitement des chaînes echo(‘texte’) : Achage simple printf(‘PHP version %d en %s’, 5, ‘fr’) : Achage 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 acher simplement le caractère %

Bases de php - Partie 4

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

Page 1: Bases de php - Partie 4

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 %

Page 2: Bases de php - Partie 4

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

Page 3: Bases de php - Partie 4

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

Page 4: Bases de php - Partie 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]);

Page 5: Bases de php - Partie 4

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

Page 6: Bases de php - Partie 4

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

Page 7: Bases de php - Partie 4

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.

Page 8: Bases de php - Partie 4

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 &lt;, &gt; et &amp; 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

Page 9: Bases de php - Partie 4

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.

Page 10: Bases de php - Partie 4

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

Page 11: Bases de php - Partie 4

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 ’

Page 12: Bases de php - Partie 4

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

Page 13: Bases de php - Partie 4

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

Page 14: Bases de php - Partie 4

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).

Page 15: Bases de php - Partie 4

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.

Page 16: Bases de php - Partie 4

EXERCICES

Page 17: Bases de php - Partie 4

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)

Page 18: Bases de php - Partie 4

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é

Page 19: Bases de php - Partie 4

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é)

Page 20: Bases de php - Partie 4

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.)

Page 21: Bases de php - Partie 4

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

Page 22: Bases de php - Partie 4

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

Page 23: Bases de php - Partie 4

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

Page 24: Bases de php - Partie 4

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

Page 25: Bases de php - Partie 4

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.

Page 26: Bases de php - Partie 4

EXERCICES

Page 27: Bases de php - Partie 4

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

Page 28: Bases de php - Partie 4

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

Page 29: Bases de php - Partie 4

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)

Page 30: Bases de php - Partie 4

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

Page 31: Bases de php - Partie 4

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é ;))

Page 32: Bases de php - Partie 4

EXERCICES