Sommaire du site
Présentation
Comment apprendre
L'équipement
La page web
Styles et CSS
HTML, structure de la page
HTML, éléments du corps
Le langage JavaScript
JavaScript, objets "core"
JavaScript, DOM, les bases
JavaScript, DOM, node
JavaScript, compléments
Le langage PHP, les bases
PHP, fonctions utiles
PHP pour le web
PHP, compléments
SQL, introduction
MySQL et PHP pour le web
MySQL, plus loin...
Applications AJAX
Annexes utiles
Fichier .htaccess
Sécurité des sites web
Conception d'un site web
Référencement,
syndication
Page mise à jour le : 12-08-2015
Si pour le JavaScript il n'était pas question de présenter l'ensemble des fonctions, c'est encore plus vrai pour le PHP. En effet la bibliothèque des fonctions internes est énorme, par exemple il y a près de 100 fonctions qui opèrent sur les chaînes de caractères.
De plus l'éventail des possibilités est bien plus grand qu'en JavaScript car, le PHP s'exécutant sur le serveur, la bibliothèque dispose de fonctions liées à la machine comme la gestion des fichiers, les accès aux bases de données ainsi que les fonctionnalités réseau.
Sur ce site nous nous bornerons à parler des fonctions les plus utiles, pour les détails et les autres fonctions il est indispensable de consulter le site de référence du langage.
De plus la description des fonctions présentées ici n'est pas toujours très détaillée. La consultation du site de référence est aussi conseillée avant d'utiliser ces fonctions.
Le site web de référence est « www.php.net » il contient la description de toutes les fonctions PHP.
On accède à la version française des références des fonctions par :
http://www.php.net/manual/fr/funcref.php
On peut indiquer le nom (partiel) d'une fonction dans la case « search for » du haut de la fenêtre pour obtenir sa description avec quelques exemples et voir dans la partie gauche de la fenêtre toutes des autres fonctions du même thème.
Il est important de remarquer qu'au début de la description d'une fonction est indiquée, sous le nom de la fonction, la version de PHP à laquelle elle s'applique. En effet PHP évolue, de nouvelles fonctions sont ajoutées, d'autres deviennent obsolètes, parfois la liste des paramètres est modifiée.
Il est donc important de connaître la version de PHP qui exécutera vos scripts.
Une fonction de PHP : 'phpinfo()' permet de connaître la configuration du système serveur. Elle donne non seulement le numéro de version de PHP mais d'autres renseignements sur sa configuration.
Pour cela, il suffit de créer une page sur le serveur avec uniquement ce contenu :
Et d'adresser cette page sur le serveur avec un navigateur. Elle affichera tous les renseignements concernant la configuration.
Il est préférable de garder l'adresse de cette page pour vous et ne pas la lier avec le reste du site car d'éventuels "pirates" pourraient tirer profit de ces informations.
Dans le cas (conseillé) où vous utilisez un serveur local pour la mise au point de vos réalisations avant de les transférer sur un serveur web de production, il est évidemment souhaitable que ces deux serveurs aient des configurations proches.
Comme il n'est pas toujours simple de modifier la configuration du serveur de production (surtout s'il est
mutualisé) il vaut mieux adapter la configuration du serveur local en modifiant le fichier de configuration
« php.ini ». Pour un serveur de type « apache », il s'agit d'un fichier texte situé dans le sous-répertoire
« apache » du répertoire d'installation du serveur. Ce fichier est généralement auto-documenté (commentaires en
anglais) mais on trouve une référence (en français) sur :
http://www.php.net/manual/fr/ini.list.php
Une des possibilités très intéressante du PHP et la possibilité d'inclure un fichier dans la page courante. On peut ainsi inclure dans la page, non seulement du code PHP, mais aussi de l'HTML et du JavaScript.
Pour cela il existe quatre fonctions : 'include()', 'include_once()', 'require()', 'require_once()'.
Les quatre incluent à l'emplacement de la fonction le contenu du fichier passé en paramètre. Si ce fichier n'est pas accessible, les deux fonctions 'include' produisent un message d'alerte et l'exécution du script de poursuit. En revanche, dans ce cas, les fonctions 'require' arrêtent l'exécution.
Le suffixe '_once' fait que si le fichier a déjà été inclus dans la page il ne le sera pas une seconde fois.
Notez que si le fichier inclus contient du code PHP celui-ci doit être entre '<?php' et '?>'
Exemple, fragment de page :
Et le fichier « tete.php »
Le premier paramètre 'nom' devient un synonyme du second 'valeur'.
'valeur' peut être une expression.
Attention, 'nom' n'est pas une variable.
Exemple :
Cette instruction de définition est très utilisée dans les fichiers inclus.
Deux instructions (qui ne sont pas des vraies fonctions) arrêtent immédiatement l'exécution du script, la suite ne sera pas traitée..
Elles sont totalement équivalentes.
Le paramètre chaîne 'msg' est produit en sortie. Il peut être absent.
Cette fonction renvoie 'TRUE' (vrai) si toutes les variables passées en paramètres 'var' existent est ne sont pas 'null'.
Cette fonction est très utilisée pour déterminer l'existence de variables définies par le serveur ou celles transmises par des formulaires HTML.
Cette fonction supprime (détruit) les variables passées en paramètres. S'il s'agit de variables de type tableau, tout le tableau est supprimé.
A l'intérieur d'une fonction 'unset' ne supprime que les variables locales.
Cette fonction produit (en sortie) le type et la valeur des variables passées en paramètres. Si elles sont structurées comme de type tableau, le contenu est détaillé récursivement.
Il s'agit d'une fonction intéressante pour la mise au point des applications, notamment pour observer les valeurs transmises par un formulaire HTML.
Et voici une application utile pour connaitre les variables prédéfinies du serveur.
On notera que la partie PHP est dans un élément HTML 'pre' afin d'avoir un affichage correctement mis en forme.
Elle est très proche de 'vat_dump' mais trois différences :
Les chaînes de caractères sont considérées par le PHP comme des tableaux de caractères. Il est donc possible d'utiliser la notation indicée pour accéder à un caractère de la chaîne (on commence à 0).
Ces fonctions produisent en sortie du texte qui sera intégré au code HTML de la page.
Nous avons déjà vu 'echo' et 'var_dump', en voici une intéressante pour la mise en forme de valeurs numériques.
Cette fonction, bien connue des programmeurs C, Java, etc. affiche, selon les spécifications du paramètre 'format', le contenu des paramètres qui suivent.
Le paramètre 'format' est une chaîne qui doit indiquer pour chaque valeur à afficher le type d'affichage et la nature de la mise en forme.
Le spécificateur de format commence par le caractère '%' et se termine par un caractère indicateur de type d'affichage : 'd' pour décimal, 'e' et 'f' pour "virgule flottante", 's' pour chaîne (entre autres). Entre les deux est indiquée la taille d'affichage.
Quelques exemples :
Cette fonction 'printf' renvoie le nombre de caractères produits. C'est rarement utilisé.
La description détaillée du paramètre 'format' est donnée dans le manuel à la fonction 'sprintf()' :
http://www.php.net/manual/fr/function.sprintf.php
Renvoie le nombre de caractères de la chaîne 'ch'.
Renvoie la chaine 'ch' en ayant supprimé les caractères invisibles (espaces, tabulateurs, sauts de ligne) :
au début et à la fin pour 'trim', en début ou en fin uniquement pour 'ltrim' et 'rtrim' respectivement.
Pour 'strpos(ch; r)', renvoie la position (on commence à 0) de la première occurrence de 'r' dans
'ch'.
'stripos' renvoie la même valeur mais en ignorant majuscules/minuscules dans la recherche.
Pour 'strrpos' ce sera la position de la dernière occurrence. Idem pour 'strripos' mais en ignorant majuscules/minuscules.
'strstr(ch, r)' renvoie la fin de la chaîne issue de 'ch' à partir de la première occurrence de 'r' (incluse).
'stristr' fait la même chose en ignorant majuscules/minuscules dans la recherche.
Renvoie la fin de la chaîne 'ch' à partir de la position 'deb' (incluse). Si 'lg' est indiqué ce sera la longueur maximale de la chaîne renvoyée.
On peut donner à 'deb' une valeur négative, dans ce cas il indiquera une position à partir de la fin de 'ch'.
'explode(sep, ch)' renvoie un tableau de chaînes, fragments de 'ch' séparés par 'sep'.
'implode(sep, tab)' renvoie une chaîne formée des éléments du tableau 'tab' et reliés par 'sep'.
Ces deux fonctions sont très pratiques pour transformer une date entre les formats européen et japonais :
Renvoie le nombre d'éléments (de lignes) du tableau 'tab'.
Renvoie 'TRUE" si la 'clef" existe dans le tableau 'tab'. Elle est surtout utilisée pour les clefs non numériques ( tableaux associatifs).
Recherche 'valeur' comme composante dans le tableau 'tab' et si trouvée renvoie son indice (clef). Si non trouvée renvoie 'FALSE'.
Attention dans les tableaux ayant un indice 0, ne pas confondre 0 avec 'FALSE'.
Bonne solution :
Alors que :
if (array_search('Jean', $tab))...
n'aurais pas permis de trouver 'Jean'.
Ce n'est pas une vraie fonction mais un élément du langage. Elle est utilisée pour affecter à des variables simples le contenu d'un tableau.
Ces deux fonction trient (classent) le tableau 'tab' en ordre croissant pour 'sort' ou décroissant pour 'rsort'.
Les fonctions ne sont pas adaptées à trier un tableau de tableaux. Pour cela, il faut utiliser la fonction ci-dessous.
Cette fonction trie les tableaux passés en paramètres, le dernier est trié en fonction du tri des précédents. Cette fonction est adaptée au tri des tableaux multidimensionnels mais il faut passer par des tableaux intermédiaires.
Exemple, trier des ouvrages selon les auteurs et (ensuite) les titres.
On crée deux tableaux : $auteurs et $titres.
La fonction array_multisort() va classer les tableaux $auteurs et $titres,
puis le tableau $oeuvres selon les tris des tableaux précédents.
Il n'y a pas vraiment de type date et heure en PHP. Le système utilise le "timestamp" UNIX qui est un nombre
entier donnant le nombre de secondes écoulées depuis le 1° janvier 1970 à 0h.
Come il s'agit de nombres il est donc facile de faire des opérations arithmétiques et de comparaisons sur ces
valeurs.
Renvoie la date-heure courante du serveur en secondes depuis le 01-01-1970 00:00:00.
Attention aux fuseaux horaires, cela correspond à l'heure locale du serveur.
'microtime()' renvoie une chaîne de caractères indiquant la date_heure courante du serveur comportant deux valeurs numériques (sous forme texte) séparées par un espace. La première est le nombre de microsecondes depuis le début de la seconde actuelle exprimée en seconde donc sous la forme "0.xxxxxx00", la suivante le nombre de secondes écoulées depuis le 01-01-1970 00:00:00.
'microtime(TRUE)' renvoie le nombre de secondes écoulées depuis le 01-01-1970 00:00:00.0 sous la forme d'un nombre à virgule.
Attention, tous les serveurs ne disposent pas de ces fonctions.
Renvoie une valeur date-heure correspondant aux paramètres. Ceux-ci peuvent être omis en partant de la fin, ils seront remplacés par les valeurs courantes.
Renvoie une chaîne de caractères représentant date et heure du paramètre 'dh' selon le format défini par le paramètre 'fmt'. Ce paramètre est une chaîne de caractères où certains représentent des composantes de date et heure.
Voici quelques caractères de format :
Caractère | Signifie |
Y | Année sur 4 chiffres |
m | Numéro du mois sur 2 chiffres avec éventuellement 0 initial |
d | Numéro du jour sur 2 chiffres avec éventuellement 0 initial |
H | Heure sur 2 chiffres avec éventuellement 0 initial |
i | Minute sur 2 chiffres avec éventuellement 0 initial |
s | Seconde sur 2 chiffres avec éventuellement 0 initial |
Dans la chaîne de format les caractères qui ne sont pas reconnus comme symbole conservent leur valeur. On peut aussi 'neutraliser' un caractère de symbole en le préfixant par '\'.
Voir la liste complète des spécificateurs :
http://www.php.net/manual/fr/function.date.php
Exemple, pour connaitre l'heure des lever et coucher de soleil à Lyon :
La fonction 'date_sun_info' renvoie un tableau associatif donnant (entre autres) les heures des lever, coucher du soleil pour une date, une latitude et une longitude données.