PHP et MySQL

PHP et MySQL

Chaînes de caractères (I)

Une variable chaîne de caractères n’est pas limitée en nombre de caractères.
Elle est toujours délimitée par des simples quotes ou des doubles quotes.
Exemples :
$nom = ‘’Etiévant’’;
$prenom = ‘Hugo’;
Les doubles quotes permettent l’évaluation des variables et caractères spéciaux contenus dans la chaîne (comme en C ou en Shell) alors que les simples ne le permettent pas.
Exemples :
echo ‘’Nom: $nom‘’; // affiche Nom: Etiévant
echo ’Nom: $nom‘; // affiche Nom: $nom
Quelques caractères spéciaux : \n (nouvelle ligne), \r (retour à la ligne), \t (tabulation horizontale), \\ (antislash), \$ (caractère dollars), \’’ (double quote).
Exemple : echo ‘’Hello Word !\n’’;
Opérateur de concaténation de chaînes : . (point)
Exemple 1 :
$foo = ‘’Hello’’;
$bar = ‘’Word’’;
echo $foo.$bar;
Exemple 2 :
$name = ‘’Henry’’;
$whoiam = $name.‘’IV’’;
Exemple 3 :
$out = ‘Patati’;
$out .= ‘’ et patata…’’;
Affichage d’une chaîne avec echo:
Exemples:
echo ‘Hello Word.’;
echo ‘’Hello ${name}\n’’;
echo ’’Nom : ’’, $name;
echo(‘’Bonjour’’);
Quelques fonctions:
strlen($str) : retourne le nombre de caractères d’une chaîne
strtolower($str) : conversion en minuscules
strtoupper($str) : conversion en majuscules
trim($str) : suppression des espaces de début et de fin de chaîne
substr($str,$i,$j) : retourne une sous chaîne de $str de taille $j et débutant à la position $i
strnatcmp($str1,$str2) : comparaison de 2 chaînes
addslashes($str) : déspécialise les caractères spéciaux (‘, ‘’, \)
ord($char) : retourne la valeur ASCII du caractère $char
On peut délimiter les chaînes de caractères avec la syntaxe Here-doc.
Exemple :
$essai = <<<EOD
Ma chaîne ‘’essai’’
sur plusieurs lignes.
EOD;
echo $essai;
La valeur de la variable $essai est délimitée par un identifiant que vous nommez librement. La première apparition de cet identifiant doit être précédée de 3 signes inférieurs <. Sa deuxième apparition doit se faire en premier sur une nouvelle ligne. Cette valeur chaîne se comporte comme si elle était délimitée par des doubles quotes ‘’ ‘’ dans le sens où les variables seront
évaluées. Par contre il est inutile d’échapper les guillemets, c’est-à-dire que la
déspécialisation des doubles quotes devient inutile.

Affichage

Les fonctions d’affichage :
echo() : écriture dans le navigateur
print() : écriture dans le navigateur
printf([$format, $arg1, $arg2]) : écriture formatée comme en C, i.e. la chaîne de caractère est constante et contient le format d’affichage des variables passées en argument
Exemples :
echo ‘’Bonjour $name’’;
print(‘’Bonjour $name’’);
printf(‘’Bonjour %s’’, $name);

Tableaux (I)

Une variable tableau est de type array. Un tableau accepte des éléments de tout type. Les éléments d’un tableau peuvent être de types différents et sont séparés d’une virgule.
Un tableau peut être initialisé avec la syntaxe array.
Exemple :
$tab_colors = array(‘red’, ’yellow’, ’blue’, ‘white’); $tab = array(‘foobar’, 2002, 20.5, $name);
Mais il peut aussi être initialisé au fur et à mesure.
Exemples :
$prenoms[ ] = ‘’Clément’’; $villes[0] = ‘’Paris’’;
$prenoms[ ] = ‘’Justin’’; $villes[1] = ‘’Londres’’;
$prenoms[ ] = ‘’Tanguy’’; $villes[2] = ‘’Lisbonne’’;
L’appel d’un élément du tableau se fait à partir de son indice (dont l’origine est zéro comme en C).
Exemple : echo $tab[10]; // pour accéder au 11ème élément
Parcours d’un tableau.
$tab = array(‘Hugo’, ‘Jean’, ’Mario’);
Exemple 1 :
$i=0;
while($i <= count($tab)) { // count() retourne le nombre d’éléments echo $tab[$i].’\n’;
$i++;
}
Exemple 2 :
foreach($tab as $elem) {
echo $elem.’’\n’’;
}
La variable $elem prend pour valeurs successives tous les éléments du tableau $tab.
Quelques fonctions:
count($tab), sizeof : retournent le nombre d’éléments du tableau
in_array($var,$tab) : dit si la valeur de $var existe dans le tableau $tab
list($var1,$var2…) : transforme une liste de variables en tableau
range($i,$j) : retourne un tableau contenant un intervalle de valeurs
shuffle($tab) : mélange les éléments d’un tableau
sort($tab) : trie alphanumérique les éléments du tableau
rsort($tab) : trie alphanumérique inverse les éléments du tableau
implode($str,$tab), join : retournent une chaîne de caractères contenant les éléments du tableau $tab joints par la chaîne de jointure $str
explode($delim,$str) : retourne un tableau dont les éléments résultent du hachage de la chaîne $str par le délimiteur $delim
array_merge($tab1,$tab2,$tab3…) : concatène les tableaux passés en arguments
array_rand($tab) : retourne un élément du tableau au hasard
Il est possible d’effectuer des opérations complexes sur les tableaux en créant par exemple sa propre fonction de comparaison des éléments et en la passant en paramètre à une fonction de tri de php.
usort($tab, ‘’fonction’’);
Trie les éléments grâce à la fonction fonction définie par l’utilisateur qui doit prendre 2 arguments et retourner un entier, qui sera inférieur, égal ou supérieur à zéro suivant que le premier argument est considéré comme plus petit, égal ou plus grand que le second argument. Si les deux arguments sont égaux, leur ordre est indéfini.
Attention, les variables tableaux ne sont pas évaluées lorsqu’elles sont au milieu d’une chaîne ce caractère délimitée par des doubles quottes.
Exemple :
echo ‘’$tab[3]’’; // syntaxe invalide
echo $tab[3]; // syntaxe valide

Tableaux associatifs (I)

Un tableau associatif est appelé aussi dictionnaire ou hashtable. On associe à chacun de ses éléments une clé dont la valeur est de type chaîne de caractères.
L’initialisation d’un tableau associatif est similaire à celle d’un tableau normal.
Exemple 1 :
$personne = array(‘’Nom’’ => ‘’César’’, ‘’Prénom’’ => ‘’Jules’’);
Exemple 2 :
$personne[‘’Nom’’] = ‘’César’’;
$personne[‘’Prénom’’] = ‘’Jules’’;
Ici à la clé ‘’Nom’’ est associée la valeur ‘’César’’.
Parcours d’un tableau associatif.
$personne = array(‘’Nom’’ => ‘’César’’, ‘’Prénom’’ => ‘’Jules’’);
Exemple 1 :
foreach($personne as $elem) {
echo $elem;
}
Ici on accède directement aux éléments du tableau sans passer par les clés.
Exemple 2 :
foreach($personne as $key => $elem) {
echo ‘’$key : $elem’’;
}
Ici on accède simultanément aux clés et aux éléments.
Quelques fonctions :
array_count_values($tab) : retourne un tableau contenant les valeurs du tableau $tab comme clés et leurs fréquence comme valeur (utile pour évaluer les redondances)
array_keys($tab) : retourne un tableau contenant les clés du tableau associatif $tab
array_values($tab) : retourne un tableau contenant les valeurs du tableau associatif $tab
array_search($val,$tab) : retourne la clé associée à la valeur $val
L’élément d’un tableau peut être un autre tableau.
Les tableaux associatifs permettent de préserver une structure de données.
Quelques fonctions alternatives pour le parcours de tableaux (normaux ou associatifs) :
reset($tab) : place le pointeur sur le premier élément
current($tab) : retourne la valeur de l’élément courant
next($tab) : place le pointeur sur l’élément suivant
prev($tab) : place le pointeur sur l’élément précédant
each($tab) : retourne la paire clé/valeur courante et avance le pointeur
Exemple :
$colors = array(‘’red’’, ’’green’’, ’’blue’’);
$nbr = count($colors);
reset($colors);
for($i=1; $i<=$nbr; $i++) {
echo current($colors).’’<br />’’;
next($colors);
}

Fonctions (I)

Comme tout langage de programmation, php permet l’écriture de fonctions.
Les fonctions peuvent prendre des arguments dont il n’est pas besoin de spécifier le type. Elles peuvent de façon optionnelle retourner une valeur.
L’appel à une fonction peut ne pas respecter son prototypage (nombre de paramètres). Les identificateurs de fonctions sont insensibles à la casse.
Exemple :
function mafonction($toto) {
$toto += 15;
echo ‘’Salut !’’;
return ($toto+10);
}
$nbr = MaFonction(15.1);
/* retourne 15.1+15+10=40.1, les majuscules n’ont pas d’importance */
On peut modifier la portée des variables locales à une fonction.
global permet de travailler sur une variable de portée globale au programme. Le tableau associatif $GLOBALS permet d’accéder aux variables globales du script ($GLOBALS[‘’var’’] accède à la variable $var).
Exemple :
function change() {
global $var; // définit $var comme globale
$GLOBALS[‘’toto’’] ++; // incrémente la variable globale $toto
$var++; // cela sera répercuté dans le reste du programme
}
static permet de conserver la valeur d’une variable locale à une fonction.
Exemple :
function change() {
static $var; // définit $var comme statique
$var++; // sa valeur sera conservée jusqu’au prochain appel
}
On peut donner une valeur par défaut aux arguments lors de la déclaration de la fonction. Ainsi, si un argument est « oublié » lors de l’appel de la fonction, cette dernière lui donnera automatiquement une valeur par défaut décidée à l’avance par le programmeur.
Exemple :
function Set_Color($color=‘’black’’) {
global $car;
$car[‘’color’’] = $color;
}
Forcer le passage de paramètre par référence (équivalent à user de global):
Exemple :
function change(&$var) { // force le passage systématique par référence
$var += 100; // incrémentation de +100
}
$toto = 12; // $toto vaut 12
change($toto); // passage par valeur mais la fonction la prend en référence
echo $toto; // $toto vaut 112
Les paramètres sont passés par copie et les résultats sont retournés par copie (sauf à forcer la référence). Même sans paramètre, un entête de fonction doit porter des parenthèses ( ). Les différents arguments sont séparés par une virgule , . Et le corps de la fonction est délimité par des accolades { }.
Quelques exemples :
function afficher($str1, $str2) { // passage de deux paramètres
echo ‘’$str1, $str2’’;
}
function bonjour() { // passage d’aucun paramètre
echo ‘’Bonjour’’;
}
function GetColor() { // retour d’une variable de type chaîne
return ‘’black’’;
}
Une fonction peut être définie après son appel (en PHP4 du fait de la compilation avant exécution contrairement au PHP3 qui est interprété).
Exemple :
function foo() { // définition de la fonction foo
echo ‘’Foo…’’;
}
foo(); // appel de la fonction foo définie plus haut
bar(); // appel de la fonction bar pas encore définie
function bar() { // définition de la fonction bar
echo ‘’bar!<br />’’;
}
Cet exemple affichera : Foo…bar!.
Grâce à une petite astuce, il est possible de faire retourner plusieurs valeurs d’une fonction. En retournant un tableau ayant pour éléments les variables à retourner. Dans l’appel de la fonction, il faudra alors utiliser la procédure list() qui prend en paramètre les variables à qui ont doit affecter les valeurs retournées. On affecte à list() le retour de la fonction.
Exemple :
function trigo($nbr) {
return array(sin($nbr), cos($nbr), tan($nbr)); // retour d’un tableau
}
$r = 12;
list($a, $b, $c) = trigo($r); /* affectation aux variables $a,$b et $c des éléments du tableau retourné par la fonction trigo */
echo ‘’sin($r)=$a, cos($r)=$b, tan($r)=$c’’; // affichage des variables
Cet exemple affichera ceci :
sin(12)=-0,5365729180, cos(12)=0,8438539587, tan(12)=-0,6358599286

Fonctions dynamiques (I)

Il est possible de créer dynamiquement des fonctions. Pour les déclarer, on affecte à une variable chaîne de caractères le nom de de la fonction à dupliquer. Puis on passe en argument à cette variable les paramètres normaux de la fonction de départ.
Exemple :
function divers($toto) {
echo $toto;
}
$mafonction = ‘’divers’’;
$mafonction(‘’bonjour !’’); // affiche ‘bonjour !’ par appel de divers()
Quelques fonctions permettant de travailler sur des fonctions utilisateur : call_user_func_array, call_user_func, create_function, func_get_arg, func_get_args, func_num_args, function_exists, get_defined_functions, register_shutdown_function.
call_user_func_array($str [, $tab]) : Appelle une fonction utilisateur $str avec les paramètres rassemblés dans un tableau $tab.
Exemple :
function essai($user, $pass) { // fonction à appeler
echo ‘’USER: $user PASSWORD: $pass’’;
}
$params = array(‘’hugo’’,’’0478’’); // création du tableau de paramètres
call_user_func_array(‘’essai’’, $params); // appel de la fonction
Le nom de la fonction à appeler doit être dans une chaîne de caractères.
call_user_func($str [, $param1, $param2, …]) : Appelle une fonction utilisateur éventuellement avec des paramètres.
Exemple :
function essai($user, $pass) {
echo ‘’USER: $user PASSWORD: $pass’’;
}
call_user_func(‘’essai’’, ‘’hugo’’,’’0478’’);
Similaire à call_user_func_array à la différence qu’ici les arguments à envoyer à la fonction à appeler ne sont pas dans un tableau mais envoyés directement en paramètre à call_user_func.
create_function($params,$code) : Crée une fonction anonyme (style lambda). Prend en argument la liste $params des arguments de la fonction à créer ainsi que le code $code de la fonction sous la forme de chaînes de caractères. Il est conseillé d’utiliser les simples quotes afin de protéger les noms de variables ‘$var’, ou alors d’échapper ces noms de variables \$var. Le nom de la fonction créée sera de la forme : lambda_x où x est l’ordre de création de la fonction.
Exemple :
$newfunc = create_function(‘$a,$b’,’’return \$a+\$b;’’); echo ’’Nouvelle fonction anonyme : $newfunc <br />’’; echo $newfunc(5,12).’’<br />’’;
On fabrique ici une fonction qui prend en argument 2 paramètres et renvoie leur somme. On l’appelle avec les nombres 5 et 12. On va donc afficher le nombre 17.
Cet exemple est équivalent à : function lambda_1($a,$b) { return $a+$b; }
func_num_args() : Retourne le nombre d’arguments passés à la fonction en cours.
func_get_arg($nbr) : Retourne un élément de la liste des arguments envoyés à une fonction. Elle ne doit être utilisée qu’au sein d’une fonction. L’indice $nbr commence à zéro et renvoie le $nbr-1 ème paramètre.
Exemple :
function foobar() {
$numargs = func_num_args();
echo ‘’Nombre d’arguments: $numargs<br />’’;
if ($numargs >= 2) {
echo ‘’Le 2ème param : ‘’.func_get_arg(1).‘’<br />’’;
}
}
foobar(‘’foo’’, ‘bar’, 10.5);
Cet exemple affiche la chaîne : ‘Le 2ème param : 10.5’
func_get_args() : Retourne les arguments de la fonction en cours sous la forme d’un tableau.
Exemple :
function somme() {
$params = func_get_args();
$nbr = 0;
foreach($params as $elem) {
$nbr += $elem;
}
return $nbr;
}
echo somme(50,20,3,98,50);
Cette fonction somme retourne la somme de tous ses arguments quel qu’en soit le nombre.

Sommaire PARTIE 1 : PHP
La programmation en PHP. Des centaines de fonctions détaillées et des exemples expliqués en détail.
PARTIE 2 : MySQL
La création et l’interrogation d’une base de données.
PARTIE 3 : Exemple concret
L’étude d’une application web réelle.
PARTIE 4 : Méthodologie
Quelques trucs pour choisir au mieux les solutions les plus adaptés pour résoudre vos problèmes.

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

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