Mon premier article

Il y a 10 ans, j’avais publié un article, sur apprendre en programmer en PHP, je le remet a ça place avec une mise à jours 2020, modifié au fur à mesure.

  1. Afficher tous les erreurs en PHP
  2. La fonction date
  3. les tableaux
  4. Afficher la première lettres d’un mot en majuscule
  5. Tableau à trois dimensions
  6. Détecter la langue du visiteur
  7. Afficher le jour de la semaine avec la fonction mktime
  8. Les fonctions
  9. Exemple d’une Classe PHP

Le langage PHP

Le PHP est un langage exécuté du côté serveur là ou le site est hébergé.

<?php
  // Code PHP ...
?>

Ou les balises simple

<?
  // Code PHP ...
?>

Ou pour faire afficher le contenu d’une variable

<?php
  $variable = "Bonjour les amis!!";
?>

On peut afficher comme ceci

<p><?= $variable ?></p>

Ce qui donnera : Bonjour les amis!!

Afficher tous les erreurs en PHP

Commençons par faire afficher tous les erreurs en PHP.

<?php
  // Affichera tous les erreurs (Même les erreurs notice)
  error_reporting(E_ALL);
?>

La fonction date()

La fonction date() affiche la date par exemple si on utilise date(“Y/m/d”) ceci affichera 2010/07/08, “Y” pour année en format quatre chiffres, “m” pour mois en deux chiffres exemple 01 et “d” pour les jours 01.

  <?php
  $date = date("n"); // "n" affichera le mois au format 1, 2, 3 ...

  echo $date;
?>

Ce qui donnera : 7

Les tableaux

Dans exemple ci-dessous nous allons créer un tableau de deux dimensions ou nous on va y insérer les mois de l’année et le faire afficher le mois en lettres exemple juillet.

<?php
  // Générons un mois au format 1, 2, 3 ...
  $date = date("n");

  // Créons maintenant un tableau qui va contenir les mois de l'année
  $mois = array(
    1 => "janvier",
    2 => "février",
    3 => "mars",
    4 => "avril",
    5 => "mai",
    6 => "juin",
    7 => "juillet",
    8 => "août",
    9 => "septembre",
    10 => "octobre",
    11 => "novembre",
    12 => "décembre"
  );

  // Va afficher le mois en cours
  echo $mois[$date];
?>

Ce qui donnera : juillet

Afficher la première lettres d’un mot en majuscule

Pour faire afficher la première lettre d’un mot ou d’une chaine de caractère vous pouvez utiliser la fonction ucfirst().

<?php
  // Générons un mois au format 1, 2, 3 ...
  $date = date("n");

  // Créons maintenant un tableau qui va contenir les mois de l'année
  $mois = [
    1 => "janvier",
    2 => "février",
    3 => "mars",
    4 => "avril",
    5 => "mai",
    6 => "juin",
    7 => "juillet",
    8 => "août",
    9 => "septembre",
    10 => "octobre",
    11 => "novembre",
    12 => "décembre"
  ];

  // Va afficher le mois en cours avec la première lettre en majuscule
  echo ucfirst($mois[$date]);
?>

Ce qui donnera : Juillet

Tableau à trois dimensions

Nous allons créer un tableau qui va contenir les mois de l’année en trois langues anglais, espagnol et français.

<?php
  // Générons un mois au format 1, 2, 3 ...
  $date = date("n");

  $mois = [
    '1' => [
      'EN' => 'january',
      'ES' => 'enero',
      'FR' => 'janvier'
    ],
    '2' => [
      'EN' => 'february',
      'ES' => 'febrero',
      'FR' => 'février'
    ],
    '3' => [
      'EN' => 'march',
      'ES' => 'marzo',
      'FR' => 'mars'
    ],
    '4' => [
      'EN' => 'april',
      'ES' => 'abril',
      'FR' => 'avril'
    ],
    '5' => [
      'EN' => 'may',
      'ES' => 'Mmayo',
      'FR' => 'mai'
    ],
    '6' => [
      'EN' => 'june',
      'ES' => 'junio',
      'FR' => 'juin'
    ],
    '7' => [
      'EN' => 'july',
      'ES' => 'julio',
      'FR' => 'juillet'
    ],
    '8' => [
      'EN' => 'august',
      'ES' => 'agosto',
      'FR' => 'août'
    ],
    '9' => [
      'EN' => 'september',
      'ES' => 'septiembre',
      'FR' => 'septembre'
    ],
    '10' => [
      'EN' => 'october',
      'ES' => 'octubre',
      'FR' => 'octobre'
    ],
    '11' => [
      'EN' => 'november',
      'ES' => 'noviembre',
      'FR' => 'novembre'
    ],
    '12' => [
      'EN' => 'december',
      'ES' => 'diciembre',
      'FR' => 'décembre'
    ]
  ];

  // Français
  echo $mois[$date]['FR'];

  // Séparation par une virgule
  echo ", ";

  // Anglais
  echo $mois[$date]['EN'];

  // Séparation par une virgule
  echo ", ";

  // Espagnol
  echo $mois[$date]['ES'];
?>

Ce qui donnera : juillet, july, julio

Détecter la langue du visiteur

Nous pouvons détecter la langue du visiteur avec la fonction serveur $_SERVER[‘HTTP_ACCEPT_LANGUAGE’].

Par défaut cette fonction affichera si on fait :

<?php
  echo $_SERVER['HTTP_ACCEPT_LANGUAGE'];
?>

Ce qui donnera :

Pour pourvoir utilisé cette fonction pour détecter la langue nous allons la trimer avec la fonction substr(«Variable», «Début», «Nombre de lettres que l’on veut»).

<?php
  // La variable $langue_visiteur contient
  $langue_visiteur = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

  // Nous allons mettre la variable en majuscule :
  $langue_visiteur = strtoupper($langue_visiteur);

  // Affichons le mois présent dans langue du visiteur
  echo "Mois dans la langue du visiteur : ".$mois[$date][$langue_visiteur];
?>

Ce qui donnera : Mois dans la langue du visiteur :

Afficher le jour de la semaine avec la fonction mktime

Nous allons trouver le jour de la semaine présentement, tout d’abord créons un nouveau tableau avec les jours de la semaine.

<?php
  $jour = array(
    0 => "Dimanche",
    1 => "Lundi",
    2 => "Mardi",
    3 => "Mercredi",
    4 => "Jeudi",
    5 => "Vendredi",
    6 => "Samedi"
  );

  // Prenons par exemple vendredi(5)
  echo $jour[5];
?>

Naturellement cela affichera vendredi

Ce que l’on veut c’est affiché le jour actuellement, avec la fonction mktime ce sera possible.

<?php
  $jour = array(
    0 => "Dimanche",
    1 => "Lundi",
    2 => "Mardi",
    3 => "Mercredi",
    4 => "Jeudi",
    5 => "Vendredi",
    6 => "Samedi"
  );

  // w pour le jour en numérique 0, 1, 2, 3, 4, 6
  // 0(heures), 0(minutes), 0(seconde)
  $semaine = date("w", mktime(0, 0, 0, date("n"), date("j"), date("Y")));

  echo "Nous sommes ".$jour[$semaine];
?>

Cela affichera: Nous sommes Jeudi

Les Fonctions

Quand on du code qui pourrai nous servir souvent on a qu’à le mettre dans une fonction.

<?php
  // Cette fonction retourne le jour de la semaine demandé
  function jour_de_la_semaine($date){

  // La function explode va transformer en tableau la date
  $date = explode("-", $date);

  // La date doit être introduit au format 1-1-2010
  $jour = array(
    0 => "Dimanche",
    1 => "Lundi",
    2 => "Mardi",
    3 => "Mercredi",
    4 => "Jeudi",
    5 => "Vendredi",
    6 => "Samedi"
  );

  //Jour en numérique 0, 1, 2, 3, 4, 6
  $num_jour = date("w", mktime(0, 0, 0, $date[0], $date[1], $date[2]));

  //Retourne le jour de la semaine
  return $jour[$num_jour];
?>

Ce qui donnera : Bonjour nous somme : Jeudi

Exemple d’une Classe PHP

Voici une classe PHP faite avec les exemples dans ce site.

<?php
  class Date{
    //désigne la langue par défaut
    var $lang = "FR";

    // Sélectionnons la langue
    function dlangue($langue){
    //permet de mettre le contenu dans la variable $lang
    $this->lang = $langue;
    }

    function dJourSemaine($date){
      // La fonction explode va transformer en tableau la date
      $date = explode("-", $date);

      // La date doit être introduit au format 1-1-2010
      $jour = array(
        0 => array(
          "EN" => "sunday",
          "ES" => "domingo",
          "FR" => "dimanche"
        ),
        1 => array(
          "EN" => "monday",
          "ES" => "lunes",
          "FR" => "lundi"
        ),
        2 => array(
          "EN" => "tuesday",
          "ES" => "martes",
          "FR" => "mardi"
        ),
        3 => array(
          "EN" => "wednesday",
          "ES" => "miércoles",
          "FR" => "mercredi"
        ),
        4 => array(
          "EN" => "thursday",
          "ES" => "jueves",
          "FR" => "jeudi"
        ),
        5 => array(
          "EN" => "friday",
          "ES" => "viernes",
          "FR" => "vendredi"
        ),
        6 => array(
          "EN" => "saturday",
          "ES" => "sábado",
          "FR" => "samedi"
        )
      );

      // Jour en numérique 0, 1, 2, 3, 4, 6
      // mktime()
      $num_jour = date("w", mktime(0, 0, 0, $date[0], $date[1], $date[2]));

      //Retourne le jour de la semaine
      $this->jourSemaine = $jour[$num_jour][$this->lang];
    }

    function dMois($date) {
      $mois = [
        '1' => [
          'EN' => 'january',
          'ES' => 'enero',
          'FR' => 'janvier'
        ],
        '2' => [
          'EN' => 'february',
          'ES' => 'febrero',
          'FR' => 'février'
        ],
        '3' => [
          'EN' => 'march',
          'ES' => 'marzo',
          'FR' => 'mars'
        ],
        '4' => [
          'EN' => 'april',
          'ES' => 'abril',
          'FR' => 'avril'
        ],
        '5' => [
          'EN' => 'may',
          'ES' => 'Mmayo',
          'FR' => 'mai'
        ],
        '6' => [
          'EN' => 'june',
          'ES' => 'junio',
          'FR' => 'juin'
        ],
        '7' => [
          'EN' => 'july',
          'ES' => 'julio',
          'FR' => 'juillet'
        ],
        '8' => [
          'EN' => 'august',
          'ES' => 'agosto',
          'FR' => 'août'
        ],
        '9' => [
          'EN' => 'september',
          'ES' => 'septiembre',
          'FR' => 'septembre'
        ],
        '10' => [
          'EN' => 'october',
          'ES' => 'octubre',
          'FR' => 'octobre'
        ],
        '11' => [
          'EN' => 'november',
          'ES' => 'noviembre',
          'FR' => 'novembre'
        ],
        '12' => [
          'EN' => 'december',
          'ES' => 'diciembre',
          'FR' => 'décembre'
        ]
      ];

      $this->dateMois = ucfirst($mois[$date][$this->lang]);
    }
  }

  $Date=new Date();

  $Date->dlangue("EN");

  $Date->dJourSemaine(date('n-j-Y'));

  print $Date->jourSemaine;

  $Date->dMois(date('n'));

  print " ";

  print date('j');

  print " ";

  print $Date->dateMois;

  print " ";

  print date('Y');
?>

Ce qui affichera : thursday 8 2010