News Ticker

Menu

PHP 5 Memento



Introduction :

Cet article sert de memento, il n'est adapté à l'apprentissage de PHP qu'aux gens ayant quelques notions d'algorithmique et de programmation. Pour ceux qui n'ont jamais fait de programmation, des tutos plus adaptés vous guideront pas à pas (voir la partie I si dessous).
  


I - Ou apprendre le PHP gratuitement sur le net ?

Voici quelques liens intéressants pour apprendre le PHP de manière plus approfondie :

II - Les commentaires et variables
Commentaires sur une ligne :

// Commentaire sur une ligne
# autre commentaire sur une ligne


Commentaires sur une à plusieurs lignes :

/* Commentaire
sur plusieurs
lignes */


Les variables :

$variable = 10; // variable normale qui a pour valeur 10 par affectation
$array = array ("bonjour", "salut"); // tableau de deux case ayant pour valeur respective "bonjour" et "salut"
$tab[0] = 100; // première case du tableau $tab qui a pour valeur 100 par affectation
$_GET, $_POST, $_SESSION, $_COOKIE, $_REQUEST, etc // différentes variables superglobales


III - Les structures de contrôles
Les opérateurs de comparaison :

Opérateur Désignation
== Égalité
<  Infériorité (stricte)
>  Supériorité (stricte)
<= Infériorité (non stricte)
>= Supériorité (non stricte)
!= Différence
=== Identique (type et valeur)
!== Différence (type ou valeur)


Les booléens :
Opérateur Désignation
&& ET logique
|| OU logique
! NON logique

Condition if :

if ($variable <= 100) // Si $variable a une valeur inférieure ou égale à 100
{
        // traitements dans le cas ou $variable est inférieur ou égale à 100
}
else if ($variable <= 200) // Sinon si $variable a une valeur inférieure ou égale à 200
{
        // traitements dans le cas ou $variable est comprise entre 101 et 200
}
else
{
        // traitements dans le cas ou $variable est strictement supérieur à 200
}

Condition switch :

switch ($variable) // selon la valeur de $variable
{
        case "bonjour": // Cas "bonjour" => si la valeur de $variable est "bonjour"
                // Traitements dans le cas où $variable à pour valeur "bonjour"
                break;
        case 10: // Cas "10" => si la valeur de $variable est de 10
                // Traitements dans le cas où $variable à pour valeur 10
                break;
        default: // Cas "sinon" ou "defaut" => si $variable à pour valeur, une valeur différente de "bonjour" ou 10;
                // traitements
               break; // ici facultatif

}
III - Les structures itératives

Les opérateurs de comparaison et booléens : 

ils sont les mêmes que pour les structures de contrôles.

La boucle while :

$i = 0;
$j = FALSE;
while ($i < 10 || $j != TRUE) // Tant que $i est in ferieur à 10 ET tant que $j est différent de FALSE, répeter

{
       $i++; // $i = $i +1

       if ($i == 5) // Si $i = 5
               $j = TRUE;
}
La boucle for :

$i = 0;
$j = FALSE;
for ($i = 0 ; $i < 10 && $j == FALSE ; $i++) 
// Pour $i de 0 jusqu'à 10 (pas de 1) et tant que $j à pour valeur FALSE, répeter

{
       // traitements  
}

La boucle foreach :

$tab = array (1,2,3,4);
foreach ($tab as $value)
/* Parcours le tableau case par case et associe $value à la case du tableau ou
   se situe l'index en cours */

{
       $value = $value * 2; // On multiplie la valeur par 2  
}

Le tableau $tab contiendra, après l'exécution de la boucle, ces valeurs (dans l'ordre) : 2,4,6 et 8 

IV - Les fonctions 

Fonctions et procédures   :
 // fonction (retourne une valeur)
function nom_fonction ($parametre1, $parametre2)
{
        return $parametre1 + $parametre2; 
       // on retourne une valeur (additionnant les deux paramètres ou arguments)
}

// procédure (ne retourne rien)
function nom_fonction ($parametre1, $parametre2)
{
       echo $parametre1 + $parametre2; 
       // on affiche une valeur (additionnant les deux paramètres ou arguments)
}


Fonctions testant l'existance et le contenu d'une variable   :

isset ($variable) // renvoie TRUE si $variable n'est pas égale à NULL sinon FALSE
empty ($variable) /* renvoie TRUE si $variable n'est pas vide (différent de NULL, de "", de FALSE, d'un tableau vide, d'une variable déclarée par le mot clef var mais sans valeur) sinon FALSE */


Fonctions d'affichage  :

echo "hello world";
print "salut tout le monde";
printf ("Bonjour %s", "tux");
print_r ($tableau); // pour débugger


Fonctions d'inclusions  :

include ("chemin/fichier.php"); // warning si le fichier n'existe pas
require ("chemin/fichier.php"); // erreur si le fichier n'existe pas
require_once ("chemin/fichier.php"); // erreur si le fichier n'existe pas et permet de le ré-inclure

Fonctions d'approximation numérique :

ceil (3.4); // retourne l'entier supérieur à 3.4 (4)
floor (3.4); // retourne l'entier inférieur à 3.4 (3)
round (3.4); // retourne l'entier le plus proche de 3.4 (3)


Fonctions de chaînes de carractères :

strlen ($chaine); // retourne la longueure de la chaîne
strpos ($chaine1, $chaine2); // retourne la position de $chaine1 dans $chaine2
$chaine = str_replace ("a", "b", $chaine); // remplace 'a' par 'b' dans $chaine

$chaine = preg_replace ("/a/", "b", $chaine); // pareil que precedement
$tableau = preg_split ("//", $chaine); // stocke chaque carractère d'une chaîne dans un tableau
$tableau = explode (";", $chaine); // éclate $chaine dans un tableau en fonction du carractère ";"
$chaine2 = substr (0, 9, $chaine); //stocke dans $chaine2 le contenu de $chaine entre la position 0 et 9
$chaine = nl2br ($chaine); // remplace tout les retour à la ligne (\n et \n\r) par des balises <br />
$chaine = htmlentities ($chaine); // conversion des carractères spéciaux en entités HTML

$chaine = html_entity_decode ($chaine) // conversion des entités HTML en carractères spéciaux
$chaine = addslashes ($chaine); // echape certains carractères comme " ou ' ou \ par un \
$chaine = stripslashes ($chaine); // retire les carractères d'echappement
preg_match ("/^[0-9]*$/", $chaine); /* vérifie que le contenu de $chaine correspond à l'expression régulière
placée en paramètre (ici qu'il s'agit d'une chaine uniquement composé de chiffres entre 0 et 9). Renvoie TRUE ou FALSE */

Fonction de taille de tableau :

sizeof ($tableau); // retourne le nombre d'éléments d'un tableau $tableau

Fonction de redirection :

Attention : les redirections sont a écrire avant tout affichage HTML

$url = "http://adresse_url_choisie"; // adresse de redirection
$tps = 3; // temps de redirection (en secondes)
header ("Refresh: $tps ; URL='$url'"); // redirige vers l'adresse $url en $tps secondes

Fonction pour envoyer un E-MAIL :
// expéditeur
$lexpediteur = "adresse_email@service.com";

// entête de l'Email

$headers  = "From: ".$expediteur."\n"; // expediteur
$headers .= "Reply-To: ".$expediteur."\n"; // pour répondre
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"\n"; // encodage (pour interpréter le code HTML)
$headers .= "Content-Transfer-Encoding: 8bit";

// sujet de l'Email
$subject = "Sujet du message";

// message
$msg = "   Salut !!!";

// destintaire
$dest = "adresse_email2@service.com";

// envoi de l'Email
mail ($dest, $subjetc, $msg, $headers);

V - La gestion de fichiers

Accès rapide  :

$chaine = file_get_contents ("nom_fichier.txt"); // lecture (stocke le contenu du fichier dans une chaine)
file_put_contents ("nom_fichier.txt", $chaine); // écrit le contenu de $chaine dans le fichier


Accès approfondis   :

$fichier = fopen ("nom_fichier.txt", "r+"); // ouvre le fichier
$tableau = file ($fichier); // stocke le contenu du fichier ligne par ligne dans un tableau
fwrite ("nom_fichier.txt", $chaine); // écrit le contenu de $chaine dans le fichier


VI - Les sessions

session_start (); // activer les sessions
$_SESSION['ma_session'] = "mon_pseudo";  // stocke la chaîne "mon_pseudo dans la session "ma_session
$_SESSION['ma_session'] = NULL; // vide la session "ma_session"
session_destroy (); // détruit les sessions en cours


VII - La gestion de base de données

Pour MySQL :
// connexion et selection d'une base MySQL
$connexion = mysql_connect ("serveur", "user", "mot_de_passe", "base") or die ("Connexion impossible à MySQL ...");
mysql_select_db ("base", $connexion) or die ("Selection de la base impossible ...");

// fermeture de la base

mysql_close ($connexion);

Remarque : il existe des fonctions similiares à mysql_connect () comme mysql_pconnect () qui a l'avantage de n'ouvrir qu'une seule connexion par identifiant de base en cours (mysql_close () est inutile dans ce cas donc). On parle ici de connexion persistante.

// Exécuter et exploter le résultat d'une requête de type SELECT :
$sql = "SELECT * FROM table;"; // requête contenue dans une chaîne
$req = mysql_query ($sql) or die ("Erreur".mysql_error()); // exécution de la requête
// mysql_error () affiche le message d'erreur de MySQL en cas d'erreur


if (mysql_num_rows ($req) >= 1) // Si la requête contient une ou plusieurs ligne
{
        // On parcours les lignes du résultat et on stocke la ligne dans $res
        while ($res = mysql_fetch_array ($req))
        {
                echo $res['champs_1']; // On affiche le contenu du champs "champs_1" de la table (ligne par ligne)
        }
}

// Pour une requête de type INSERT il suffit de faire :
mysql_query ("INSERT INTO table VALUES ('valeur');");

Maintenant utilisons les fonctions mysqli (v4.1 et 5 de PHP) :

// connexion et selection d'une base MySQL
$link = mysqli_connect ("serveur", "user", "mot_de_passe", "base"); 

// Exécuter et exploter le résultat d'une requête de type SELECT :
$sql = "SELECT * FROM table;"; // requête contenue dans une chaîne
$req = mysqli_query ($link, $sql); // exécution de la requête

while ($ligne_res = mysqli_fetch_assoc ($req))
{
                print_r ($ligne_res); // On affiche la ligne de la requête
}

Pour PostgreSQL :

// Connexion à une base
$str_connexion = "host=localhost port=5432 dbname=base user=util password=passwd";
$db_connexion = pg_connect ($str_connexion);
// connexion à une base de données nommée "base" sur l'hôte "localhost" avec un nom d'utilisateur "util" et un mot de passe "passwd"

// fermeture de la base
pg_close ($db_connexion);

Remarque : De même que pour mysql_pconnect (), il existe une fonction pg_pconnect ().

// Exécuter et exploter le résultat d'une requête de type SELECT :
$sql = "SELECT * FROM table;"; // requête contenue dans une chaîne
$req = pg_exec ($sql) or die ("Erreur".pg_errormessage()); // exécution de la requête
// pg_errormessage () affiche le message d'erreur de PgSQL en cas d'erreur


if (pg_num_rows ($req) >= 1) // Si la requête contient une ou plusieurs ligne
{
        // On parcours les lignes du résultat et on stocke la ligne dans $res
        while ($res = pg_fetch_array ($req))
        {
                echo $res['champs_1']; // On affiche le contenu du champs "champs_1" de la table (ligne par ligne)
        }
}

// Pour une requête de type INSERT il suffit de faire :
pg_exec ("INSERT INTO table VALUES ('valeur');");


Avec PDO :

PDO est une classe qui a l'avantage de fonctionner avec différent SGBD dont les principaux qui sont Oracle, PostgreSQL et MySQL.   

// Connexion à une base
$str_connexion = "mysql:dbname=base;host=serveur"; 
// connexion à une base de données MySQL nommée "base" sur l'hôte "serveur"
$pdo_connexion = new PDO ($str_connexion, "utilisateur", "mot_de_passe");

// Exécuter et exploter le résultat d'une requête de type SELECT :

$sql = "SELECT * FROM table;"; // requête contenue dans une chaîne

foreach ($pdo_connexion->query($sql) as $ligne)
    print_r ($ligne)


Share This:

  • To add an Emoticons Show Icons
  • To add code Use [pre]code here[/pre]
  • To add an Image Use [img]IMAGE-URL-HERE[/img]
  • To add Youtube video just paste a video link like http://www.youtube.com/watch?v=0x_gnfpL3RM