PHP Initiation

Formation PHP

Nous sommes le 05/09/2010, bonne matinée, il est 09:09:00 , 762 visites Récapitulatif | Débogage | Accueil
Récapitulatif

Recapitulatif

 

Code PHP

Commentaires

Version <?php
phpinfo ();
?>
Permet d'afficher les informations détaillées de la version de votre langage PHP
echo <?php
// Affichage de texte
echo "Bonjour";
?>
Affiche du texte, utilisé pour un sortie de texte
Variables <?php
$texte = "Je suis une chaine de caractere";
echo "$texte<br>";
echo "$texte $texte $texte <br>";
$l = "long";
$c = "court";
echo "Je suis un $l $l $l $l $l $l texte !<br>";
echo "Je suis un texte $c <br>";
$i = 10;
$j = 5;
/* La variable $i et $j contiennent une valeur numérique
, donc il n'y a pas de guillemets */

echo $i, "+", $j, "=", $i+$j;
/* Dans notre fonction echo les variables qui contiennent
des valeurs numériques ne sont pas entourées par des
guillemets*/

?>
 
Condition if if(condition){
instruction;
}
else{
instruction;
}

<?php
$i = -12;
if ($i<0) {
   echo "$i est plus petit que 0";
}
else {
   echo "$i n'est pas plus petit que 0";
}
?>
 
Condition if imbriquée if(condition){
instruction;
}
elseif {
instruction;
}
else {
instruction;
}


<?php
$i = 50;
if ($i<0) {
   echo "$i est plus pêtit que 0";
} else if ($i>0){
   echo "$i est plus grand que 0";
} else {
   echo "$i est nul";
}
?>
 
Commande SWITCH <?php
switch
($variable){
case "Gerard";
   instruction;
   break;

case"Jeanne";
   instruction;
   break;

case"Robby";
   instruction;
   break;

default:
   instruction;
   break;
}
?>
Si plusieurs tests sont effectués sur le contenu de la même variable, la commande SWITCH est plus adapté

L'instruction switch équivaut à une série d'instructions if . En de nombreuses occasions, vous aurez besoin de comparer la même variable (ou expression) avec un grand nombre de valeurs différentes, et d'exécuter différentes parties de code suivant la valeur à laquelle elle est égale. C'est exactement à cela que sert l'instruction switch .
Boucle while <?php
$j=1;
while($j<7){
echo $j++;
}
?>
<?php
$t = "Je crée mon propre texte<br>";
$i = 0;
while ($i<9) {
echo "$t";
$i++;
}
?>
La valeur 0 est assignée à $i - puis à chaque cycle de la boucle, il est augmenté de 1 jusqu'à ce que $i atteigne la valeur 9
A ce moment la condition '$i<9) n'est plus vraie, et la boucle est interrompue
Boucle for <?php
for($d=1;$d<11;$d++){ // Initialise la variable, condition de continuité, expression
echo $d;
}
?>
La commande for est une autre possibilité pour faire une boucle
Boucle foreach foreach( $array as $value )
<?php
$array = array( 1, 1, 2, 3, 5, 8, 13 );
foreach( $array as $value ) // Pas d'accolades
echo $value . '<br />';
?>
foreach( $array as $key => $value )
<?php
$array = array( 'premier' => 'N° 1', 'deuxieme' => 'N° 2', 'troisieme' => 'N° 3');
foreach( $array as $key => $value )
echo 'Cet élément a pour clé "' . $key . '" et pour valeur "' . $value . '"<br />';
?>
Utilisé dans les tableaux

Formulaires

Formulaire HTML pour envoyer
Page en PHP pour récupérer la variable
Envoyer les données avec la page formulaire.html
<form action="formde.php" method="post">
Veuillez saisir un nom
<input name="nom" />
<input type="submit" value="Envoyer" />
</form>
Récupérer la variable dans une autre page

<?php
echo "Vous avez saisi $_POST['nom'];
?>
 

Fonctions

 

Code php

Commentaires

Fonctions function Nomfonction ($parametre, ...)
{
   // Les commandes sont placées ici
   return $resultat
    // Si la fonction retrourne une valeur, indiquez là dans la commande return
}
Un élément important de chaque langage est la capacité à regrouper plusieurs commandes en une seule, et à considérer cette nouvelle commande comme une fonction.
Pour ce faire, il convient d'utiliser la commande function suivie du nom de la fonction. elle même suivie des paramètres à transmettre placés entre parenthèses et désignés comme étant des arguments de la fonction.
Créer la fonction convertir des euros en dollar avec un arrondi à 2 chiffres <?php
function ConvDollar($prix) {
    $Calcul=$prix*1.341; // Taux de change le 30 Décembre 2009 1.341
    return $Calcul;
}
echo ConvDollar(10.54); // 10.54 est la valeur a calculé avec la fonction
?>
 
addslashes() string addslashes ( string $str )
<?php
$str = "Votre nom est-il O'reilly ?";
// Affiche : Votre nom est-il O\'reilly ?
echo addslashes($str);
?>
Ajoute des antislashs dans une chaîne
Retourne la chaîne str , après avoir échappé tous les caractères qui doivent l'être, pour être utilisée dans une requête de base de données. Ces caractères sont les guillemets simples ('), guillemets doubles ("), antislash (\) et NUL (le caractère NULL).
array_pop()    
array_push() int array_push ( array &$array , mixed $var [, mixed $... ] )
<?php
$array[] = $var;
?>
<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>
Empile un ou plusieurs éléments à la fin d'un tableau

Si vous utilisez la fonction array_push() pour ajouter un élément à un tableau, il est mieux de la remplacer par l'opérateur $array[] = qui évite le passage par une fonction.
array_push() émettra une alerte si le premier argument n'est pas un tableau. Ceci diffère du comportement de $var[] où un nouveau tableau est créé.
array_merge()    
copy() copy(string fichier_depart, string fichier_destination)

<?php
if(@copy("fichier.txt","copy_fichier.txt")) {
   echo "Le fichier fichier.txt a été copié en copy_fichier.txt.";
}
else {
   echo "Erreur";
}
?>
Permet de copier coller un fichier
count() <?php
$Prenoms2=array('Maurice','Jean','Pierre','Paul','Gérard');
echo count($Prenoms2) ." prénoms dans le tableau";
?>
Compte le nombre de valeurs dans un tableau
date() <?php
echo date("d/m/Y H:s"); // Affiche la date du jour et l'heure
?>
Affiche la date, l'heure ...
empty() empty ($var )
<?php
$var = 0;
                   
// Evalué à vrai car $var est vide
if (empty($var)) {
  echo '$var vaut soit 0, vide, ou pas définie du tout';
}
                   
// Evalué à vrai car $var est défini
if (isset($var)) {
  echo '$var est définie même si elle est vide';
}
?>
Détermine si une variable contient une valeur non nulle
exit    
explode()

array explode ( string $delimiter , string $string [, int $limit ] )
<?php
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
?>
<?php
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>

Coupe une chaîne en segments
fclose() <?php
$compteur=fopen('compter.txt','r+');
$visites=fgets($compteur,7);
fclose($compteur);
?>
Pemet de fermer un fichier
fgetc() fgetc(string pointeur)

<?php
$fichier = fopen("fichier.txt","r");
$premier = fgetc($fichier);
echo "Premier Caractère : " . $premier;
fclose($fichier);
?>
fgetc() permet d'extraire le premier caractère du fichier
fgets() fgets(string pointeur, string longueur)

<?php
$source4="fichier.txt";
$fichier4=fopen($source4,"r+");
echo fgets($fichier4,4);
?>
La fonction fgets() permet d'extraire une chaîne d'une certaine longueur.
Il faut aussi savoir que la fonction extrait la chaîne de la longueur précise définie en argument, plus un caractère et que la fonction s'arrête aux sauts de lignes
fgetss() fgetss(string pointeur, string longueur) La fonction fgetss() a quasiment la même utilité que la fonction fgets() sauf qu'elle n'extrait ni les balises HTML, ni les balises PHP
file() file(string fichier)

<?php
$premier = file("essai.txt");
echo "Première Ligne du fichier : " . $premier[0];
?>
La fonction file() permet de mettre le contenu entier d'un fichier ouvert dans un tableau
file_exists() file_exists(string fichier)

<?php
if(file_exists("essai.txt")) {
echo "Fichier existant";
}
else {
echo "Introuvable !";
}
?>
Pour vérifier si un fichier existe
fopen( fopen("fichier.txt", "r")

<?php
if($ouverture = @fopen("fichier.txt", "r"))
{
echo "L'ouverture du fichier est possible car la fonction fopen retourne TRUE";
}
else
{
echo "Ouverture du fichier impossible car fopen retourne FALSE";
}
?>
Permet d'ouvrir un fichier
Valeur Opérations permises :
a Ouverture du fichier pour : écrire et créer le fichier. L'écriture commence a la fin du fichier
a+ Mêmes fonctions que ci-dessus sauf que la lecture est permise.
r Ouverture d'un fichier en lecture seule.
r+ Mêmes fonctions que ci-dessus sauf qu'il est possible d'écrire dans le fichier. L'écriture commence au début du fichier.
w Ouverture du fichier en écriture seulement. Création du fichier si celui-ci n'existe pas sauf que les données contenues précédemment sont effacées.
w+ Mêmes fonctions sauf qu'il est possible de lire dans le fichier.
fputs() fputs(string pointeur, string chaîne, (string longueur))

Permet d'écrire dans un fichier
fpassthru() fpassthru(string pointeur);

<?php
$fichier = fopen("essai.txt","r");
fpassthru($fichier);
?>
Permet d'afficher tout le contenu d'un fichier dans le navigateur
fread() fread(string pointeur, string longueur);

<?php
$fichier = fopen("essai.txt","r");
$premier = fread($fichier, 10);
echo "Dix Premiers Caractères : " . $premier;
fclose($fichier);
?>
La fonction fread() permet de lire une chaîne de caractère dans un fichier ouvert, jusqu'a la longueur indiquée en argument
fwrite() fwrite(string pointeur, string chaîne, (string longueur))

Permet d'écrire dans un fichier
getdate()
Array ( [seconds] => 0 [minutes] => 9 [hours] => 9 [mday] => 5 [wday] => 0 [mon] => 9 [year] => 2010 [yday] => 247 [weekday] => Sunday [month] => September [0] => 1283670540 )
<?php
$today = getdate();
print_r($today);
?>
Retourne la date/heure
array  getdate ( int   timestamp )

getdate retourne un tableau associatif contenant les informations de date et d'heure du timestamp timestamp (lorsqu'il est fourni, sinon, le timestamp de la date/heure courante), avec les champs suivants :

gettype() <?php
$prenom='toto';
echo 'La variable prénom est de type: ' .gettype($prenom);
?>

Permet de tester le type de variable

  • integer
  • string
  • boolean
header() <?php
header("HTTP/1.0 404 Not Found");
?>
<?php
/* Redirige le client vers le site PHP */
header("Location: http://www.php.net/");

/* Garantie que le code ci-dessous n'est jamais exécuté. */
exit();
?>
Envoie un en-tête HTTP
location: permet de faire une redirection
htmlspecialchars()

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

 

Convertit les caractères spéciaux en entités HTML

htmlspecialchars() est pratique pour éviter que des données fournies par les utilisateurs contiennent des balises HTML, comme pour un forum ou un chat.

Les remplacements effectués sont :

  • "&amp;" (et commercial) devient "&amp;"
  • "&quot;" (guillemets doubles) devient "&quot;" lorsque ENT_NOQUOTES n'est pas utilisée.
  • "'" (guillemet simple) devient "&#039;" uniquement lorsque ENT_QUOTES est utilisée.
  • "&lt;" (inférieur à) devient "&lt;"
  • "&gt;" (supérieur à) devient "&gt;"
PHP Manual
implode()    
include() <?php
include('haut.inc.php');
?>
Permet d'inclure un fichier dans une page
isset() isset($variable)
<?php
$var="toto"; // VRAI
$var1=1; // VRAI
if(isset($var) && isset($var1)){
echo "Les deux variables sont affectées";
}
else{
echo "Erreur, la variable n'est pas définie";
}
?>
Détermine si une variable est affectée
list()    
mktime() mktime(heure, minutes, secondes, mois, jour, an)
<?php
$vieux_timestamp = mktime(13, 45, 26, 2, 5, 1998);
echo 'Le timestamp du 05/02/1998 à 13h 45min 26s était : ' . $vieux_timestamp;
?>
Permet de récupérer le timestamp à partir d'une date
nl2br string nl2br ( string $string [, bool $is_xhtml = true ] )
Exemple avec nl2br()
<?php
echo nl2br("foo isn't\n bar");
?>
Exemple avec génération de code HTML valide avec le paramètre is_xhtml
<?php
echo nl2br("Welcome\r\nThis is my HTML document", false);
?>
Insère un retour à la ligne HTML à chaque nouvelle ligne
print_r() bool  print_r ( mixed   expression , bool   return )

<?php
$a = array ('a' => 'pomme',
                'b' => 'banane',
                'c' => array ('x','y', 'z'));
print_r ($a);
?>

<?php
$b = array ('m' => 'mangue', 'foo' => 'bar', 'x' => array ('x', 'y', 'z'));
$resultat = print_r ($b, true);
//$resultat contient maintenant le résultat de print_r()
?>
<?php

// Une autre méthode pour afficher tous les cookies
print_r($_COOKIE);
?>
Affiche des informations lisibles pour une variable.

print_r affiche des informations à propos d'une variable, de manière à ce qu'elle soit lisible. Pour une chaîne, un entier ou un double, la valeur elle même sera affichée. Pour les tableaux, les valeurs seront présentées dans un format qui montre les clés et les valeurs. Une notation similaire est disponible pour les objets. print_r et var_export afficheront également les propriétés protégées et privées d'un objet en PHP 5, contrairement à var_dump .

Gardez en tête que print_r place le pointeur de tableau à la fin du tableau. Utilisez reset pour le ramener au début.

time() <?php
$timestamp=time();
echo "Afficher le Timestamp: " .$timestamp;
?>
Affiche le Timestamp
rename() rename(string nom_depart, string nom_nouveau)

<?php
if(@rename("fichier.txt","nouveau_fichier.txt")) {
echo "Le fichier fichier.txt a été renommé en nouveau_fichier.txt.";
}
else echo "Erreur";
?>
Permet de renommer un fichier
require() <?php
   require('haut.inc.php');
?>
Permet d'inclure un fichier
require permet à la différence d'include de couper l'exécution du script PHP si le fichier à inclure n'a pu être inclus
require_once()    
rewind()  rewind ( resource   handle )

rewind replace le pointeur du fichier handle au début. Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.
Le pointeur de fichier doit être valide, et avoir été correctement ouvert par fopen .
Note:
Si vous avez ouvert le fichier en mode d'ajout ("a" ou "a+"), toutes les données que vous écrirez dans ce fichier seront toujours ajoutées, sans se soucier de la position du pointeur de fichier.
session_destroy()  

session_destroy() détruit toutes les données associées à la session courante. Cette fonction ne détruit pas les variables globales associées à la session, de même, elle ne détruit pas le cookie de session. Pour accéder à nouveau aux variables de session, la fonction session_start() doit être appelée de nouveau.

Pour détruire complètement une session, comme faire sortir l'utilisateur, l'identifiant de la session doit également être effacé. Si un cookie est utilisé pour propager l'identifiant de session (comportement par défaut), alors le cookie de session doit être effacé. La fonction setcookie() peut être utilisée pour cela.

session_id() <?php
echo session_id();
?>
Affiche le numéro de session PHP, retourne l'id de la session en cours
session_is_register() bool session_is_registered ( string $name )

Vérifie si une variable est déclarée pour la session en cours

Cette fonction est OBSOLETE depuis PHP 5.3.0. Nous vous encourageons vivement à ne plus l'utiliser.
session_name()   Retourne le nom de la session en cours
session_register()  

session_register() enregistre toutes les variables de nom name dans la session courante. Le nombre de variables enregistrées est libre. Les noms peuvent être passés comme des chaînes, ou comme des tableaux contenant des chaînes ou des tableaux. Pour chaque nom, session_register() place la variable dans la session courante, pour la sauvegarde de fin de script.

Vous pouvez aussi créer une variable de session, simplement en ajoutant l'index approprié dans la variable $_SESSION ou $HTTP_SESSION_VARS (PHP < 4.1.0).

session_start() <?php
session_start();
?>
Permet de démarrer une session
Placer le code PHP avant tout code HTML
session_unset()   Detruit toutes les variables de la session en cours
session_write_close() <?php
session_write_close()
?>
cette commande écrit les valeurs des variables de session sur le serveur et ferme la session.
setcookie() <?php
$timestamp_expire = time() + 365*24*3600; // Le cookie expirera dans un an
setcookie('pseudo', 'Khof', $timestamp_expire); // On écrit un cookie
setcookie('pays', 'France', $timestamp_expire); // On écrit un autre cookie...
// Et SEULEMENT MAINTENANT, on peut commencer à écrire du code html
?>
setcookie() définit un cookie qui sera envoyé avec le reste des en-têtes. Comme pour les autres en-têtes, les cookies doivent être envoyés avant tout autre sortie (c'est une restriction du protocole HTTP, pas de PHP). Cela vous impose d'appeler cette fonction avant toute balise <html> ou <head>.
sprintf() sprintf ("instruction de formatage", argument)

<?php
$prix = 15.154454545;
$tva = 1.196;
$calcul = $prix*$tva;
// Formatage avec sprintf
$resultat = sprintf("%01.2f", $calcul);
echo "Le r&eacute;sultat est de $resultat euros";
?>
Permet de formater une chaine de caractéres (ou un nombre) et la renvoie formatée
Instruction de formatage pour le format monétaire
Toujours affiché avec 2 chiffres aprés la virgule
sprintf ("%01.2f", $variable)
PHP Manual
srand() <?php
srand();
$rand1=rand(0,5); // rand permet de générérer un nombre aléatoire
$rand2=rand(6,9);
$resultat=$rand1+$rand2;

echo "Calculer la somme de ces valeurs " .$rand1 ." + " .$rand2 ." Le total est " .$resultat;

?>
srand permet d'initialiser le générateur de nombres aléatoires.
strpos() strpos( $chaine, $lettre ) renvoie la position de la première occurence de $lettre dans la chaîne $chaine ou false si la lettre n'est pas trouvée
substr() substr( $chaine, $start, $length ) renvoie $length caractères de $chaine après la position $start
unset() <?php
// Destruction d'une seule variable
unset($foo);
// Destruction d'un élément de tableau
unset($bar['quux']);
// Destruction de plusieurs variables
unset($foo1, $foo2, $foo3);
?>
Permet de détruire une variable
unlink() unlink(string fichier)

<?php
if(@unlink("fichier.txt"))
{
Echo "Le fichier fichier.txt a été supprimé.";
}
else echo "Erreur";
?>
Permet de supprimer un fichier
var_dump()    

Fonctions MySQL

 

Code php

Commentaires

mysql_connect   Connecte une base de données
mysql_pconnect $hostname = "localhost";
$database = "ma_base_de_donnee";
$username = "toto";
$password = "toto";
$Clients_formes = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR);
 
mysql_select_db $Selection_sites = mysql_select_db($database,$Clients_formes) Sélectionne une base de données
mysql_error $Clients = mysql_query($Requete_Clients) or die(mysql_error());

// Autre exemple
$reponse = mysql_query("SELECT nom FROM jeux_video") or die(mysql_error());
Ce code qu'on a rajouté ne fera rien s'il n'y a pas d'erreur.
S'il y a eu une erreur en revanche, il affichera des informations détaillées sur l'erreur qui vous permettront de comprendre ce qui ne va pas dans votre requête.
mysql_query $Clients = mysql_query($Requete_Clients) or die(mysql_error()); Contient la requête
mysql_fetch_array    
mysql_fetch_assoc $Ligne_Clients = mysql_fetch_assoc($Clients);  
mysql_num_rows $Total_Clients = mysql_num_rows($Clients);  
mysql_free_result() mysql_free_result($Clients);

// Autre exemple
<?php
$result = mysql_query("SELECT id,email FROM 
people WHERE id = '42'");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
/* Utilisation du résultat */
$row = mysql_fetch_assoc($result);

/* Maintenant, nous libérons le résultat et continuons
 notre script */
mysql_free_result($result);

echo $row['id'];
echo $row['email'];
?>

libère toute la mémoire et les ressources utilisées par la ressource de résultat result .

mysql_free_result() n'est à appeler que si vous avez peur d'utiliser trop de mémoire durant l'exécution de votre script. Toute la mémoire associée à l'identifiant de résultat sera automatiquement libérée.

La ressource de résultat qui vient d'être évaluée. Ce résultat vient de l'appel à la fonction mysql_query().

mysql_close   Ferme la connexion à la base de données

Sélectionner une base de données

// Table clients
$Selection_Clients = mysql_select_db($database,$Clients_formes);
$Requete_Clients = ("SELECT ID, Nom, Telephone, Logo FROM clients ORDER BY ID DESC LIMIT 0,5 ");
$Clients = mysql_query($Requete_Clients) or die(mysql_error());
$Ligne_Clients = mysql_fetch_assoc($Clients);
$Total_Clients = mysql_num_rows($Clients);
Nous sommes le 05/09/2010 LC Formateur