Programmation PHP/Bases du langage

Un livre de Wikilivres.

PHP est un langage dont les programmes s'exécutent côté serveur pour produire la réponse à une requête HTTP, ou une commande shell.

En général, il produit une réponse dans un langage de notation (ex : HTML, XML, ou JSON), et le code PHP peut s'intégrer dedans, par exemple dans les balises HTML comme montré dans ce chapitre introductif.

Il peut également produire une sortie dans un format binaire, par exemple une image PNG produite dynamiquement pour une représentation graphique des données, ou un fichier quelconque pour filtrer les accès à des fichiers téléchargeables.

Dans les premiers chapitres, seul le cas de la sortie en HTML est abordé.

Intégration du code[modifier | modifier le wikicode]

Pour que PHP interprète votre code, vous devez remplir deux conditions :

  1. Votre code doit être placé dans un fichier d'extension .php (selon la configuration du serveur cela peut varier), ouvert via un serveur web en HTTP.
  2. Votre code doit être compris entre deux balises : <?php ... ?>. Tout ce qui n'est pas compris entre ces balises n'est pas interprété par PHP :
<!DOCTYPE html>
<html>
<head>
    <title>Le titre de l'onglet</title>
    <meta charset="utf8" />
</head>
<body>
    <p>Du texte en html</p>

    <? echo 'un exemple de texte en php'; ?>

    <p>Encore du texte en html</p>

    //Écriture recommandée et universelle
    <?php
        echo "Encore du texte en php";
    ?>

<body>
</html>

Logo

L'utilisation des balises <? ?> (sans le mot "php") peut poser des problèmes de compatibilité. Il faut en effet que pour cela, la directive short_open_tags soit activée dans la configuration de l'environnement, ce qui n'est pas le cas sur la plupart des serveurs mutualisés et hébergements gratuits. Imaginez que vous changiez de serveur avec un interpréteur qui ne reconnaisse pas les balises courtes, il vous faudra alors modifier les balises de chaque fichier, travail fastidieux. Il est donc conseillé de prendre l'habitude d'utiliser les balises de la forme <?php ?>, reconnue universellement.

Pour regarder si votre configuration prend en compte ce type de balises, entrez le code suivant :

    <?php
        phpinfo();
    ?>

Cela affichera le contenu du php.ini. Pour l'obtenir en CLI :

php -r "phpinfo();"

Autre exemple : trouver le .ini utilisé :

php7.3 -r "echo php_ini_loaded_file().PHP_EOL;"

Il est possible de trouver des extensions de fichiers comme .phtml, .php3 ou autres. Il est cependant conseillé d'utiliser l'extension .php qui garantit son interprétation par PHP.

 Dans le cas des fichiers .php qui commencent par <?php et finissent par ?>, la balise fermante est optionnelle voire déconseillée.

Les directives[modifier | modifier le wikicode]

Il est possible de définir certains comportements de PHP lors de la compilation par des directives inscrites dans la commande declare()[1]. Par exemple :

 declare(encoding = 'UTF-8');

Références[modifier | modifier le wikicode]