| Nous sommes le 05/02/2012, bonne matinée, il est 07:38:06 , 2344 visites | Récapitulatif | Débogage | Accueil |
Téléchargements
Les séquences d'échappement, quant à elles, font de la mise en page
| séquence | effet |
| \t | insère une tabulation |
| \r | effectue un retour chariot |
| \n | effectue un retour à la ligne |
si vos séquences d'échappement ne fonctionnent pas, encadrez votre code des balises HTML <pre> et </pre>.
Contrairement à une variable, une constante ne peut pas être redéclarée.
Pour définir des constantes, on utilise la fonction define()
Par convention, un nom de constante s'écrit en majuscule .
Ne pas oublier d'entourer de ". ." le nom de la constante, sinon elle s'affichera comme du texte.
__FILE__
Le chemin complet de la page en cours__LINE__
Le numéro de la ligne de la constante :PHP_VERSION
PHP_OS
Définition:
C'est une petite information stockée en mémoire temporairement. Ca n'a pas une grande durée de vie.
En PHP, la variable (l'information) existe tant que la page est en cours de génération.
Dès que la page PHP est générée, toutes les variables sont supprimées de la mémoire car elles ne servent plus à rien.
Ce n'est donc pas un fichier qui reste stocké sur le disque dur mais une petite information temporaire.
Ce qu'il faut retenir, c'est qu' une variable est toujours constituée de 2 choses :
L'affectation se fait toujours de la droite vers la gauche
A = B, A va prendre la valeur de B
A = A + B, A va prendre la valeur de A+B
$a = $a+1 ; // identique à la ligne ci dessous
$a ++ ; // Permet d'incrémenter
$a -- ; // Permet de décrémenter
$a = ($b<100);
$a = true; // Le résultat est égal à true
$a = 10;
$a.= 30; // Permet de concaténer, le résultat serait 1030
Une variable peut contenir différents types de données
Une chaîne (ou séquence) de caractères doit être encadrée de guillemets :
- simples (' ') si elle ne contient rien qui nécessite d'être échappé ;
- doubles (" ") si l'on veut que les séquences d'échappement et les variables qu'elle contient soient interprétées (on parle de "substitution de variables") :
Un entier (integer, ou int) est un nombre de l'ensemble des entiers naturels {..., -2, -1, 0, 1, 2, ...}.
On peut l'exprimer de trois manières :
<?php
$a = 1234; // nombre entier en base décimale
$a = 02322; // le même en base octale, préfixé 0
$a = 0x4D2; // le même en base hexadécimale, préfixé 0x
?>
<?php
$Valeur=123; // Variable integer, c'est un entier
$Valeur1=1000/$Valeur;
$Valeur4=$Valeur+$Valeur1;
@$b = 10/0; // En cas d'erreur, le @ permet de ne pas afficher de message d'erreur
echo @$b;
?>
Un nombre réel (float, ou double), appelé aussi "à virgule flottante", peut être exprimé de deux manières :
Détermine le type de variable
| Fonction | retourne TRUE si la variable est : |
| is_array() | un tableau |
| is_bool() | de type booléen |
| is_double() alias de is_float() et de is_real() |
un nombre réel, ou à virgule flottante |
| is_int() alias de is_long() |
un nombre entier |
| is_null() | sans valeur |
| is_numeric() | un nombre, ou une chaîne numérique |
| is_object() | un objet |
| is_resource() | une ressource PHP (pointeur, requête SQL...) |
| is_scalar() | une variable scalaire |
| is_string() | une chaîne de caractère |
$a.=$b;
$a=$a.$b; // La variable $a a la valeur de la concaténation de $a et $b
$a++; // Augmenter de 1
$b--; // Diminuer de 1
?>
| signe | exemple | description |
| + (addition) | $a + $b | additionne $a et $b |
| - (soustraction) | $a - $b | soustrait $b de $a |
| * (multiplication) | $a * $b | multiplie $a par $b |
| / (division) | $a / $b | divise $a par $b |
| % (modulo) | $a % $b | reste de la division de $a par $b |
| ++ | Ajoute 1 | $i ++ (n'est rien d'autre que l'abbréviation de $i=$i+1) |
| -- | Soustrait 1 | $i -- (equivalentà $i=$i-1) |
Insérer des balises HTML dans PHP
Concaténer des chaines de caractères et des variables
En PHP, on utilise le . pour concaténer
<?php
$nom = 'Dupont';
$prenom = 'Pierre';
echo $nom.$prenom; //va afficher "DupontPierre"
echo $nom.' '.$prenom; //va afficher "Dupont Pierre"
echo '$nom.$prenom'; //va afficher "$nom.$prenom"
echo '$nom$prenom'; //va afficher $nom$prenom
$nom .= $prenom; //est équivalent à $nom = $nom . $prenom
echo $nom; //affichera "DupontPierre"
$nom = 'Dupont';
$nom .= ' '.$prenom;
echo $nom; //affichera "Dupont Pierre"
?>
| Caractère | Signification | Exemples de valeurs possibles : |
|---|---|---|
| Jour | ||
| j | Jour du mois sur deux chiffres sans les zéros initiaux | 1 à 31 |
| d | Jour du mois sur deux chiffres avec un zéro initial en fonction du jour | 01 à 31 |
| l (L minuscule) | Jour de la semaine en anglais | Sunday à Saturday |
| w | Jour de la semaine au format numérique | 0 (dimanche) à 6 (samedi) |
| z | Jour de l'année | 0 à 366 |
| Semaine | ||
| W | Numéro de semaine dans l'année (les semaines commencent le lundi) | Exemple : 42 (la 42ème semaine de l'année) |
| Mois | ||
| F | Mois, textuel, version longue; en anglais, comme January ou December | January à December |
| m | Mois au format numérique, avec zéros initiaux | 01 à 12 |
| n | Mois sans les zéros initiaux | 1 à 12 |
| t | Nombre de jours dans le mois | 28 à 31 |
| Année | ||
| L | Est ce que l'année est bissextile | 1 si bissextile, 0 sinon. |
| Y | Année sur 4 chiffres | Exemples : 1999 et 2003 |
| y | Année sur 2 chiffres | Exemples : 99 et 03 |
| Heure | ||
| a | Ante méridien et Post méridien (minuscules) | am ou pm |
| A | Ante méridien et Post méridien (majuscules) | AM ou PM |
| g | Heure (format 12h) sans les zéros initiaux | 1 à 12 |
| G | Heure (format 24h) sans les zéros initiaux | 0 à 23 |
| h | Heure (format 12h) avec les zéros initiaux | 01 à 12 |
| H | Heure (format 24h) avec les zéros initiaux | 00 à 23 |
| s | Secondes avec zéros initiaux | 00 à 59 |
| i | Minutes avec zéros initiaux | 00 à 59 |
| I (i majuscule) | l'heure d'été est activée ou pas 1 si oui, 0 sinon. |
Un timestamp, c'est un nombre.
C'est le nombre de secondes écoulées depuis le 1er Janvier 1970 à Minuit.
Pourquoi depuis le 1er Janvier 1970 à Minuit ? C'est symbolique, il fallait bien prendre un point de départ.
En fait, ça représente le début de l'époque où le système d'exploitation Unix a été créé.
Le 1er Janvier 1970 à Minuit, le timestamp avait pour valeur 0. Aujourd'hui, beaucoup beaucoup de secondes se sont écoulées
Pour afficher le timestamp de la seconde actuelle, on utilise la fonction
time()
Il est possible de fournir un second paramètre à date (après les lettres) : le timestamp sur lequel vous voulez obtenir des informations.
Par défaut, date utilise le timestamp actuel : elle renvoie donc l'heure actuelle, le jour actuel etc...
Mais si vous lui donnez un timestamp, elle fera des calculs sur ce moment-là.
Allez, pour faire un test grandeur nature, je vous donne le timestamp qu'il était au moment où j'ai écrit ces lignes
Exemple
Lorsque vous écrirez une news, il vous suffira d'enregistrer juste le timestamp, et vous serez capables grâce à ce nombre de ressortir toutes les infos possibles et imaginables dessus : le jour où la news a été postée, l'heure qu'il était etc... C'est donc très très puissant !
Enfin, une dernière chose qu'il peut être très utile de savoir faire : vous aimeriez connaître le timestamp qu'il était le 5 Février 1998 à 13h 45min 26s.
Pour récupérer le timestamp correspondant, on va utiliser la fonction mktime. On va lui donner en paramètre une date, et elle va nous ressortir le timestamp correspondant.
Cette fonction peut prendre pas mal de paramètres, en voici la liste dans l'ordre :
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 :
| Clé | Description | Exemple de valeur retournée |
| "seconds" | Représentation numérique des secondes | 0 à 59 |
| "minutes" | Représentation numérique des minutes | 0 à 59 |
| "hours" | Représentation numérique des heures | 0 à 23 |
| "mday" | Représentation numérique du jour du mois courant | 1 à 31 |
| "wday" | Représentation numérique du jour de la semaine courante | 0 (pour Dimanche) à 6 (pour Samedi) |
| "mon" | Représentation numérique du mois | 1 à 12 |
| "year" | Année, sur 4 chiffres | Exemples: 1999 ou 2003 |
| "yday" | Représentation numérique du jour de l'année | 0 à 365 |
| "weekday" | Version texte du jour de la semaine | Sunday à Saturday |
| "month" | Version texte du mois, comme January ou March | January à December |
| 0 | Nombre de secondes depuis l'époque Unix, similaire à la valeur retournée par la fonction time et utilisée par date . | Dépend du système, typiquement de -2147483648 à 2147483647 . |
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.
Gardez en tête que print_r place le pointeur de tableau à la fin du tableau. Utilisez reset pour le ramener au début.
Trouve la position d'un caractère dans une chaîne
Retourne la position numérique de la première occurrence de needle dans la chaîne de caractères haystack.
Liste de paramètres
La chaîne dans laquelle on doit chercher.
Si needle n'est pas une chaîne, il est converti en entier, et utilisé comme caractère de code ASCII correspondant.
Le paramètre optionnel offset vous permet de spécifier à partir de quel caractère dans haystack vous souhaitez commencer la recherche. La position retournée sera toujours relative au début de la chaîne haystack.
Valeurs de retour
Retourne la position, sous la forme d'un entier. Si needle n'est pas trouvé, strpos() retournera FALSE.
Retourne la partie extraite de la chaîne dans le segment de string défini par start et length ou FALSE si une erreur survient
string
La chaîne d'entrée.
start
Si start est positif, la chaîne retournée commencera au caractère numéro start, dans la chaîne string. Le premier caractère est numéroté zéro. Actuellement, dans la chaîne 'abcdef', le caractère à la position 0 est 'a', le caractère à la position 2 est 'c', et ainsi de suite.
Si start est négatif, la chaîne retournée commencera au caractère numéro start à compter de la fin de la chaîne string.
Si string est plus petit ou égal à start caractères de long, FALSE sera retourné.
length
Si length est fourni et est positif, la chaîne retournée contiendra au plus length caractères, en commençant à partir du caractère start (en fonction de la taille de la chaîne string).
Si length est fourni et négatif, alors le même nombre de caractères sera omis, en partant de la fin de la chaîne string. Si start représente une position hors de la chaîne, une chaîne vide sera retournée.
Si le paramètre length est fourni et vaut 0, FALSE ou NULL, une chaîne vide sera retournée.
Si length est omis, la sous chaine commençant à partir de start jusqu'à la fin sera retournée.
Exemple avec start négatif
<?php
$rest = substr("abcdef", -1); // retourne "f"
$rest = substr("abcdef", -2); // retourne "ef"
$rest = substr("abcdef", -3, 1); // retourne "d"
?>
Exemple avec length négatif
<?php
$rest = substr("abcdef", 0, -1); // retourne "abcde"
$rest = substr("abcdef", 2, -1); // retourne "cde"
$rest = substr("abcdef", 4, -4); // retourne ""
$rest = substr("abcdef", -3, -1); // retourne "de"
?>
<?php
echo substr('abcdef', 1); // bcdef
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
// Accéder à un simple caractère dans une chaîne
// peut également être réalisé en utilisant des crochets
$string = 'abcdef';
echo $string[0]; // a
echo $string[3]; // d
echo $string[strlen($string)-1]; // f
?>
Coupe une chaîne en segments
str_replace — Remplace toutes les occurrences dans une chaîne
La valeur à chercher, autrement connue comme le masque. Un tableau peut être utilisé pour désigner plusieurs masques.
La valeur de remplacement à substituer aux valeurs trouvées. Un tableau peut être utilisé pour désigner plusieurs valeurs de remplacement.
La chaîne de caractères ou le tableau sur lequel on va effectuer la recherche et le remplacement, aussi connu sous le nom de haystack.
Si subject est un tableau, alors le remplacement se fera sur chaque élément de celui-ci, et la valeur retournée sera aussi un tableau.
Si fournie, cette variable contiendra le nombre de remplacements effectués.
Permet d'arrondir une valeur numérique
srand permet d'initialiser le générateur de nombres aléatoires.
rand permet de générer un nombre aléatoire
PHP permet de créer ses fonctions personnelles
Avec un paramétre
Avec 2 paramétres
La fonction require() appelle et exécute un code contenu dans un fichier externe.
require permet à la différence d'include de couper l'exécution du script PHP si le fichier à inclure n'a pu être inclus.
En cas d'erreur, le script se coupera complétement
L'instruction require_once() est identique à require() mise à part que PHP
Vérifie si le fichier a déjà été inclus et si c'est le cas, ne l'inclut pas une deuxième fois.
La fonction include() est similaire à require(), à ceci près qu'avec include() le traitement ne s'interrompra pas en cas d'erreur, et le reste de la page s'affichera normalement.
En cas d'erreur avec include() le script continuera de s'éxecuter, il n'émettra qu'une alerte de type E_WARNING
Tester le type de $variable1 avec pour valeur
Si vous ne vous en rappelez plus
| signe | exemple | retourne TRUE si : |
| == (égal) | $a == $b | $a est égal à $b |
| === (identique) | $a === $b | $a est égal et du même type que $b (PHP4 seulement) |
| != (différent) | $a != $b | $a est différent de $b |
| <> (différent) | $a <> $b | $a est différent de $b |
| < (inférieur) | $a < $b | $a est inférieur à $b |
| > (supérieur) | $a > $b | $a est supérieur à $b |
| <= (inférieur ou égal) | $a <= $b | $a est inférieur ou égal à $b |
| >= (supérieur ou égal) | $a >= $b | $a est supérieur ou égal à $b |
| Mot-clé | Signification | Symbole équivalent | Explication | Exemple | retourne TRUE si : |
| AND | Et | && | Vérifie que toutes les conditions sont réalisées | $a && $b $a and $b |
$a et $b retournent TRUE |
| OR | Ou | || | Vérifie qu'une des conditions est réalisée | $a || $b $a or $b |
$a ou $b retourne TRUE |
| xor | OU exclusif | Vérifie qu'une et une seule des conditions est réalisée | $a xor $b | $a ou $b (exclusivement) retourne TRUE | |
| ! | NON logique | Inverse l'état d'une variable booléenne (retourne la valeur 1 si la variable vaut 0, 0 si elle vaut 1) | ! $a | $a retourne FALSE |
if(condition) {
instruction;
}
elseif(condition){
instruction;
}
else{
instruction;
}
La fonction isse
t() verifie si une variable est bien définie,
ce n'est que dans ce cas qu'elle renvoie la valeur vrai (true)
Dans le cas inverse, le résultat du test est false
Détermine si une variable est vide
La fonction empty() retourne TRUE si la chaîne passée en argument est vide
Cette boucle est très utile lorsque vous souhaitez incrémenter une variable sur une certaine plage de valeurs connue à l'avance
$i++ Incrémenter
$i--
Décrémenter
Cette boucle qui est une des plus utilisées en PHP va vous permettre d'effectuer une ou plusieurs actions tant que la condition que vous placerez à l'intérieur des parenthèses sera vérifiée
C'est pour cela que, quel que soit le type de boucle (While ou For), il faut indiquer une condition.
Tant que la condition est remplie, les instructions sont réexécutées. Dès que la condition n'est plus remplie, on sort de la boucle
Pas sur de faire le bloc d'instruction si la condition est fausse
Il faut TOUJOURS s'assurer que la condition sera au moins remplie une fois.
Si elle ne l'est jamais, alors la boucle s'exécutera à l'infini !
PHP refuse normalement de travailler plus d'une quinzaine de secondes.
Il s'arrêtera tout seul s'il voit que son travail dure trop longtemps et affichera un message d'erreur.
Comment savoir lequel prendre quand je dois choisir entre un While et un For ?
While marche à tous les coups.
For ne marche que quand on a un nombre qui s'incrémente, comme on a fait ici. Donc For est parfois plus adapté, mais personne ne vous tuera si, comme moi, vous préférez utiliser un While tout le temps
Elle a des similitudes avec la boucle while.
Néanmoins, une différence de taille les séparent.
Reprenons notre exemple précédent avec la boucle while :
Vous constatez que si on initialise $i à 8, la boucle ne sera jamais exécutée, car dès l'analyse de la condition, 8 < 7 renverra FALSE (8 est bien inférieur à 7 ).
La boucle do-while permet
d'effectuer au moins une fois une opération, et si une condition est vraie, reboucler autant de fois que vous le souhaitez.
Avec le do, il sera au minimum exécuté une fois
Il s'agit de variables qui peuvent contenir plusieurs valeurs.
On peut donc imaginer leur représentation sous forme d'un tableau.
Pour différencier les valeurs, pour savoir comment on va dire à PHP "je veux telle valeur de cette variable" il faut bien distinguer les valeurs par des indices.
Voilà comment on peut représenter tout ça :
| Indice | Valeur |
|---|---|
| 0 | Maurice |
| 1 | Jean |
| 2 | Pierre |
| 3 | Paul |
| 4 | Gérard |
<?php
// Syntaxe 1
$Prenom=array();
$Prenom[0]='Maurice';
$Prenom[1]='Jean';
$Prenom[2]='Pierre';
$Prenom[3]='Paul';
$Prenom[4]='Gérard';
echo $Prenom[4];
?>
<?php
// Syntaxe equivalente
$Prenoms=array(0=>'Maurice',
1=>'Jean',
2=>'Pierre',
3=>'Paul',
4=>'Gérard');
echo $Prenoms[4];
?>
<?php
/* Dans le cas où vous souhaitez garder le premier indice à zéro (et les suivants incrémentés de 1 à chaque fois) vous pouvez également utiliser la syntaxe suivante */
$Prenoms1=array('Maurice','Jean','Pierre','Paul','Gérard');
echo $Prenoms1[4];
?>
Compte le nombre d'éléments d'un tableau ou le nombre de propriétés d'un objet
PHP peut également vous permettre de distinguer les différentes valeurs de vos tableaux par des indices associatifs.
Ils sont constitués de chaînes de caractères.
Prenons cette fois l'exemple d'un article. On va le différencier par plusieurs choses :
<?php
$Article=array();
$Article['Numero']=77;
$Article['Nom']="Cable rond";
$Article['Prix']=7;
echo "Ref: ".$Article['Numero'] ." Article: " .$Article['Nom'] ." Prix: " .$Article['Prix'];
?>
<?php
// Autre syntaxe
$Articles=array('Numero' =>77,
'Nom' => "Cable rond",
'Prix' => 7);
echo "Ref: ".$Articles['Numero'] ." Article: " .$Articles['Nom'] ." Prix: " .$Articles['Prix'];
?>
Si on veut représente le tableau, ça donne ça !:
| France | Paris | 80 |
| Japon | Tokyo | 90 |
| UK | Londres | 70 |
<?php
$tab2=array();
$tab2[0][0]="France";
$tab2[0][1]="Paris";
$tab2[0][2]=80;
$tab2[1][0]="Japon";
$tab2[1][1]="Tokyo";
$tab2[1][2]=90;
$tab2[2][0]="UK";
$tab2[2][1]="Londres";
$tab2[2][2]=70;
for ($m=0;$m<count($tab2);$m++){
echo $tab2[1][$m];
}
?>
foreach se décline en deux versions
foreach($array as $value)
Ainsi, nous parcourons le tableau $array et la valeur de l'élément courant est copié dans $value, qui est ensuite affiché.
Contrairement au tableau précédant, les indices des éléments ne sont pas des nombres (0, 1, 2, ...) mais des chaînes de caractères (on appelle un tel tableau un tableau associatif). Ainsi, si je veux accéder au deuxième élément, je dois procéder comme suit: $array['deuxieme'] .
Il est donc impossible ici d'utiliser for, par contre, avec foreach, aucun problème
Exemple 1:
Exemple 2:
Vous remarquerez que l'on ne met pas les [ ] de $_SERVER!
Il vous permettra un jour d'afficher le contenu de $_POST, $_GET ou encore $_SESSION, ce qui peut parfois s'avérer très utile pour déceler un bug ou une valeur incorrecte dans un script.
On peut aussi imbriquer des boucles foreach, regardez on peut ainsi afficher le contenu d'un tableau à deux dimensions
Le premier foreach parcourt le tableau principal, les valeurs de $key sont successivement 'fruits', 'animaux' et 'pays' tandis que $value contient le tableau qui contient les exemples, c'est donc $value que l'on prend comme tableau pour le deuxième foreach
Exemple 4: