Rappel de base : PHP

Le PHP est un langage serveur. Il s’utilise sur les serveurs de type Apache, généralement avec le SGBD MySql. Il est gratuit et…voilà.

Bases

PHP c’est une syntaxe simple qui s’inclue dans des pages HTML traditionnelles.

L’ouverture de balise PHP est nécessaire et fait via « <?php //instruction ?> ». Les variable quant à elles sont identifié via le symbole $ : $variable.

<?php echo "Visiteur n°$nbre_visiteurs"; ?>
// mais ces balises marchent aussi :
<? echo 'Visiteur n°'.$nbre_visiteurs; ?> //On concatène avec . sur les 'chaines'
<% %>
<?= ?>
/* Même si elles sont moins utilisées */

Avec PHP, on utilisera le langage de Base de donnée SQL appelé MySQL.
Pour des raisons notamment de sécurité, il est conseillé d’utiliser PDO.

//SELECT champs1, champs2, champs3 FROM table ORDER BY champs1 DESC LIMIT 0, 10
//INSERT INTO table(champs1, champs2, champs3, champs4) VALUES ("Value1", "Value2", "Value3", "Value4")';
//UPDATE table SET champs1 = "value", champs2 = "value2" WHERE champs = "value3"

$host = "localhost";
$dbname="mydatabase";
$user="root";
$password="";
$connexionString = "mysql:host=$host;dbname=$dbname;charset=utf8":
try
{
	$pdo = new PDO($connexionString, $user, $password);
}
catch (Exception $e)
{
    die('Erreur : ' . $e->getMessage());
}

// Ecriture de la requête
$sqlQuery = 'INSERT INTO table(champs1, champs2, champs3, champs4) 
VALUES (:champs1, :champs2, :champs3, :champs4)';

// Préparation
$insertRecipe = $pdo->prepare($sqlQuery);

// Exécution !
$insertRecipe->execute([ //cela évite les injections sql
    'champs1' => 'Valeur1',
    'champs2' => 'Valeur2',
    'champs3' => 'Valeur3',
    'champs4' => 'Valeur4' 
]);

Les opérandes

Classiquement, le if s’écrit ainsi :

if ($isEnabled == true) 
{
  //Instructions
}else if (!$isEnabled && $pantroufle AND $truc = "machin")
{
  //Instructions
}
else if ($isTall  || $isBig OR $isGiant)
{
  //Instructions
}
else
{
   //Instructions
}

//Les ternaires sont aussi utilisable :
$var = ($userAge >= 18) ? true : false;

A savoir qu’elle peuvent s’utiliser dans une page HTML détachées du reste.

<?php if ($QuiAlapero==0): ?>
<p> Personne ne à l'apéro.</p>
<?php elseif ($QuiAlapero<5): ?>
<p> Y'aura quelque personne à l'apéro.</p>
<?php else: ?>
<p> Y'aura du monde à l'apéro (+ de 5 personnes)</p>
<?php endif; ?>

De même la structure switch est assez classique :

switch ($var)
{
  case 0: 
    Instructions();
  break;
  default:
    Instructions();
}

Enfin, pour parcourir des données, différentes boucles :

<?php

//Via un while
$index = 0;
while ($index<= 2) 
{
    // instructions
    $index++;
}

//Via un for
for ($index = 0; $index <= 2; $index++)
{
    // instructions
}

//via un foreach
foreach ($elements as $key => $value) // Ou uniquement "$value"
    echo "$value ($key)"; // Affichera "valeur (0)" pour un array["valeur"]
}
?>

<!--//Via l'un des deux "inclus" dans du HTML pour l'insertion -->
<?php for ($lines = 0; $lines <= 1; $lines++): ?>
        <li><?php echo $recipes[$lines][0] . ' (' . $recipes[$lines][2] . ')'; ?></li>
<?php endfor; ?>

Variables, objets, tableaux

//Superglobales
$_GET["key"];//key étant le nom de la valeur passé en url
$_POST["key"];
$_SESSION["key"]; //La superglobale s'initialise/se récupère via session_start()
$_COOKIES["name"]; //setcookie("NAME","Value",$expirationDate)
$_FILES["FieldName"];//contient ['name'],['type'],['size'],['tmp_name'] et ['error']

//Tableau classique
$userArray0 = array('Val1', 'Val2', 'Val3', 'Val4');
$userArray1 = ['Val1', 'Val2', 'Val3', 'Val4'];
$userArray1[4] = 'Val5'; //Ajoute une valeur à l'emplacement Val6
$userArray1[] = true; //Pousse une nouvelle valeur

//Tableau associatif
$userArray2 = [
    'Key1' => 'Value1',
    'Key2' => 'Value2',
    'Key3' => 'Value3',
    'Key4' => true,
];

//Puis, pour afficher rapidement un tableau à des fin de deboggage
echo '<pre>';
print_r($recipes);
echo '</pre>';

Fonctions

Une fonction peut indiquer le type des paramètres et son type de retour.

function DoSomethingGreat(string $value) : bool
{
    $result = false;
    
    //Instructions sur $value

    return $result;
}

Pour manipuler / rechercher

//Dans un tableau
$IsKeyExists = array_key_exists('Key1',$userArray2);
$IsValueExists = in_array($value,$userArray2); //$value peut être string ou string[]
$key = array_search('Value3',$userArray2);
count

//Dans une variable
$newValue = str_replace("banane","poire","j'aime les bananes"); //newValue = "j'aime les poires"
$length = strlen($value);

Essentielles

  • isset() pour vérifier l’existence d’une donnée
  • empty() pour vérifie qu’une variable texte est vide
  • filter_var() pour vérifier qu’une donnée correspond à son template (regex)
  • include() pour inclure un fichier dans une page.
  • setcookie() pour créer un cookie

Utiles

Sources
  • https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql
  • https://www.php.net/docs.php

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *