PHP - Introduction

Les bases de la programmation web serveur avec PHP

Pierre Blarre - Florian Rodriguez

1. Avez-vous déjà des bases en PHP ?

Responses: 0

, Oui, Non, NSPP , 0, 0, 0

qr-code.png

2. Le PHP : Présentation

  • PHP = Hypertext Preprocessor
  • Open Source, conçu pour le développement web.
  • Intégré facilement dans le HTML.
  • Langage interprété, nécessite un serveur web.
  • Connaissances requises : HTML, CSS.

3. Serveur / Résumé en image

client-serveur-php.png

3.1. Serveur web et cycle de vie d’une requête

  • Pour pouvoir générer une page HTML avec un script PHP, il va être nécessaire d’avoir un serveur web qui :
    • Analyse l’url demandée par le visiteur
    • Si l’url doit appeler un script PHP
    • Dans ce cas, appeler le script PHP correspondant et l'exécuter
    • Renvoyer une page HTML

3.2. Serveur web

  • On a besoin d’un serveur web et de php:
    • LAMP, WAMP, XAMPP
    • On peut lancer un serveur avec

      php -S localhost:2023
      

4. Premier script PHP / Exemple

  <html>
    <head>
        <title>Test PHP</title>
    </head>
    <body>
        <?php echo "<p>Bonjour le monde</p>"; ?>
    </body>
</html>
<html>
  <head>
    <title>Test PHP</title>
  </head>
  <body>
    <p>Bonjour le monde</p>
  </body>
</html>

4.1. Premiers pas avec la syntaxe

  • Le code PHP doit nécessairement être inclus entre la balise ouvrante:
    <?php
  • et la balise fermante:
    ?>
  • Chaque instruction (entendez chaque ligne) doit être terminée par un point virgule ;
  • Les variables commencent toujours par le symbole dollar $ pour être différenciées des fonctions.

4.2. Autre exemple

<!DOCTYPE html>
<html>
  <head>
    <title>Bienvenue dans notre cours PHP</title>
  </head>
  <body>
    <?php
      $cours = ["PHP", "HTML", "SQL"];
      echo "<ul>";
      foreach ($cours as $cour) {
          echo "<li>$cour</li>";
      }
      echo "</ul>";
    ?>
</body>
</html>
<!DOCTYPE html>
<html>
  <head>
    <title>Bienvenue dans notre cours PHP</title>
  </head>
  <body>
    <ul><li>PHP</li><li>HTML</li><li>SQL</li></ul></body>
</html>

4.3. Remarques

  • Un fichier PHP va renvoyer le code qui n’est pas contenu dans les balises
    <?php et ?> tel quel au navigateur
  • Puisque le PHP renvoie le texte tel quel au navigateur, si le texte renvoyé est sous forme de balises html, alors le navigateur va interpréter ces balises et générer le html correspondant
  • On peut maintenant utiliser toutes les fonctions PHP disponible pour générer du HTML.
  • Dans cet exemple, on a utilisé un tableau avec des valeurs fixées, mais on aurait pu récupérer des valeurs depuis une base de données, un fichier json, etc.

5. Variables et types de données

  • Déclaration : $nom_variable = valeur;
  • Types principaux :
    • string : "Je suis une chaîne"
    • integer : 42
    • float : 3.14
    • bool : true / false
    • null : NULL
  • En PHP, comme en Javascript, il n’est pas obligatoire de spécifier le type de données d’une variable. Il est aussi possible de changer le type de données de la variable en lui assignant une nouvelle valeur:

    $une_variable = 2;      // integer
    $une_variable = "test"; // string
    $une_variable = false;  // bool
    
  • On dit que PHP et Javascript sont des langages “non typés”, car ils permettent ces changements de type. Ceci apporte son lot d’avantages et d’inconvénients. Dans d'autres langages ceci n’est pas permis!

5.1. Chaînes de caractères (string)

  • Déclaration :

    $nom = "Pierre";
    $nom = 'Pierre';
    
  • Échappement :

    $variable = "Mon \"nom\" est Pierre";
    $variable = 'Je m\'appelle Pierre';
    

5.2. Affichage et concaténation

  • Avec guillemets doubles :

    $age = 17;
    echo "Le visiteur a $age ans";
    
  • Avec guillemets simple, on doit utiliser la concaténation :

    echo 'Le visiteur a ' . $age . ' ans';
    

6. Opérateurs et structures de contrôle

  • Opérateurs:
    • Arithmétiques
      • +, -, *, /, %, ++, --
    • Comparaison
      • =, !=, <, >, < =, = >
    • Logiques
      • &&, ou and, ou AND,
      • ||, ou or, ou OR,
      • !
  • Structures de contrôle
    • Conditionnelles
      • if, else, elseif, switch
    • Boucles
      • for, while, foreach

6.1. Conditions

  • if/elseif/else :

    if ($age >= 18) {
        echo "Majeur";
    } else {
        echo "Mineur";
    }
    
  • switch :

    switch ($couleur) {
        case 'rouge':
            echo "La couleur est rouge";
            break;
        case 'bleu':
            echo "La couleur est bleu";
            break;
        default:
            echo "Couleur inconnue";
    }
    
  • ternaire :

    echo ($age >= 18) ? "Majeur" : "Mineur";
    

6.2. Boucles

  • while :

    $i = 1;
    while ($i <= 100) {
        echo "Ligne n°$i<br />";
        $i++;
    }
    
  • for :

    for ($i = 1; $i <= 100; $i++) {
        echo "Ligne n°$i<br />";
    }
    

7. Tableaux (Arrays)

  • Numérotés :

    $prenoms = array('François', 'Michel', 'Nicole');
    $prenoms[2]= 'Sophie';
    $prenoms[]= 'Julien'; // Ajoute "Julien" à la fin du tableau
    echo $prenoms[1]; // Affiche "Michel"
    
  • Associatifs :

    $coord = array(
        'prenom' => 'François',
        'ville' => 'Marseille'
    );
    echo $coord['ville']; // Affiche "Marseille"
    $coord['age'] = 45; // Ajoute une nouvelle entrée au tableau
    

    La flèche => permet d'associer une clé à une valeur dans un tableau associatif.

7.1. Tableau (Arrays)

Les arrays numérotés permettent de stocker une série d'éléments du même type, comme des prénoms. Chaque élément du tableau contiendra alors un prénom.

Les arrays associatifs permettent de découper une donnée en plusieurs sous-éléments. Par exemple, une adresse peut être découpée en nom, prénom, nom de rue, ville…

8. Parcourir un tableau

  • Avec for :

    for ($i = 0; $i < count($prenoms); $i++) {
        echo $prenoms[$i] . '<br />';
    }
    
  • Avec foreach :

    foreach($prenoms as $prenom) {
        echo $prenom . '<br />';
    }
    
    foreach($coord as $cle => $valeur) {
        echo "$cle : $valeur<br />";
    }
    

9. Fonctions

  • Déclaration :

    function affichePersonne($personne) {
        echo $personne['nom'] . " " . $personne['prenom'];
    }
    
  • Appel :

    $florian = array("nom" => "Rodriguez", "prenom" => "Florian");
    affichePersonne($florian);
    

10. print_r (débogage)

  • Permet d’afficher le contenu d’une variable (tableau, objet, etc.)
  • Exemple :

    $fruits = array("pomme", "banane", "orange");
    print_r($fruits);
    
    • Affiche :

      Array (
      [0] => pomme
      [1] => banane
      [2] => orange
      )
      

11. Ressources