Aide-mémoire PHP

Pour certains clients, je développe des outils web pour faciliter leur vie. Pour cela, j’utilise PHP comme langage du côté serveur.

Étant donné que je ne fais pas cela régulièrement, j’ai besoin d’un aide-mémoire pour la syntaxe ainsi que les fonctions propres au langage.

Voici donc mon aide-mémoire qui me facilite la vie. Pour l’ensemble des fonctions, il suffit de visiter le site officiel de php : php.net

 

IF : Lors de la comparaison le double égal (==) converti le type string en numérique dans le cas qu’un des deux types soient numériques comme dans l’exemple suivant :

if (1 == ‘1’) echo “true 1 equals ‘1’ <br/>”;

 

Si 3 égal (===) la conversion de type ne se fait pas. Donc 1 n’est pas égale à ‘1’.

 

Syntaxe IF.. Else :

 

If

(date(“l”) == “Wednesday”) {

$tax_rate = $tax_rate + 4 ;

$wages = $salary * 0.4 ;

$msg_color = “red” ;

} elseif ($weekday == “Tuesday”) {

$discount = $tax_rate * 0.06 ;

} else {

$tax_rate = $tax_rate + 2 ;

$wages = $salary * 1.4 ;

$msg_color = “blue” ;

}

 

SWITCH..CASE syntaxe:

 

switch (value being tested) {

case first possible value:

// run some code

[break;]

case 2nd possible value:

// run some code

[break;]

default:

// if nothing else is true, do this

}

 

WHILE Syntaxe :

 

$repeat = 1 ;

while ($repeat <= 25) {

echo “the counter is: ” . $repeat . “<br/>” ;

$repeat ++ ;

}

 

OU

 

$repeat = 0 ;

do {

$repeat ++ ;

echo “the counter is: ” . $repeat . “<br/>” ;

} while ($repeat <= 25);

 

FOR syntaxe :

 

for ($i = 0; $i <= 25; $i++) {

echo “the counter is: ” . $i . “<br/>” ;

}

 

Définir un cookie:

 

setcookie(“Nom_Cookie”, “information”, durée);

 

Si la durée est 0, le cookie expirera lorsque le fureteur se fermera. Il est souhaitable de toujours mettre une durée d’expiration pour avoir un cookie neuf et qu’il puisse faire ce que nous voulons.

 

Lire un cookie :

 

$Cookie_data =  $_COOKIE(“Nom_Cookie”);

 

Session:

 

Une session fait sensiblement la même chose qu’un cookie sauf qu’il réside sur le serveur Web.

La session est sauvegardée sur le serveur à l’endroit indiqué dans le php.ini avec la variable session.save_path.

Le nom des fichiers de session débute par “sess_” suivi d’un ensemble de lettres et chiffres aléatoires. La session est active tant que le fureteur est ouvert.

 

Pour démarrer une session : session_start();

exemple:

 

session_start( );

$today = date(“Y-m-d”) ; // load todays date in YYYY-MM-DD format

$_SESSION[‘today’] = $today ; // add that value into the session

$_SESSION[‘login_name’] = “Peter” ; // add a session value for login name

 

echo:
La fonction echo peut être remplacée par = avant une chaine de caractère. Par contre dans le php.ini, il faut que le paramètre ‘shot_open_tag’ soit configuré à ON pour que le tag de remplacement soit valide.

 

var_dump
: Permet de faire un echo mais avec plus d’information comme le type et la longueur avant le contenu de la variable.

 

Les chaines de caractères:

 

Les chaines de caractères peuvent être définies par un simple guillemet ‘ ou un double guillemet ” . Le double guillemet permet de concaténer des variables à l’intérieur sans être obligé de fermer la chaine. Avec le simple apostrophe, il faut fermer et utiliser le caractère de concaténation (le point .) et rouvrir. Les caractères d’échappement (escape) fonctionnent qu’avec le double apostrophe.

 

Exemple:      echo ” cette phrase utlise une $variable  pour concaténer”;

echo ‘cette phrase utilise une ‘.$variabke.’ pour concaténer‘;

 

Il est également possible d’utiliser le style HEREDOC pour des grandes chaines de caractères sur plusieurs lignes comme pour les commandes SQL. Il suffit d’utiliser trois signes plus petit (<<<) plus un nom associé. (Sensible à la casse)

 

Exemple :

 

$string = <<< RightHERE

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Fusce eget nisl a metus rhoncus placerat ac ac nisl.

Fusce consectetur tempus “tincidunt. Proin congue

dapibus neque”, at congue lectus volutpat in.

Duis commodo, est tempor aliquam molestie, odio dolor fringilla arcu,

nec iaculis est libero vitae erat.

RightHERE;

 

Les fonctions de chaines usuelles

 

trim ($chaine, $recherche) :
Right and left trim. La fonction trim peut également supprimer d’autres caractères ou mot en début et fin de chaine en ajoutant la chaine à rechercher comme deuxième paramètres.

exemple:  trim (“la maison contient des fenêtres”, “lafenêtres”);

résultat : ” maison contient des “

 

ltrim($chaine) : Left trim

rtrim($chaine) : Right trim

 

ucwords($chaine) : Transforme la première lettre de chaque mot de la chaine en majuscule.

strtoupper($chaine) : transforme la chaine entière en majuscule

strtolower($chaine) : transforme la chaine entière en minuscule.

ucfirst($chaine) : Transforme la première lettre de la chaine en majuscule.

lcfirst($chaine) : Transforme la première lettre de la chaine en minuscule.

str_word_count($chaine) : Compte le nombre de lignes dans la chaine.

strlen($chaine) : Retourne la longueur de la chaine.

strstr($chaine, $recherche) : Retourne une chaine à partir de la chaine recherchée. Sensible à la casse.

stristr($chaine, $recherche) : Retourne une chaine à partir de la chaine recherchée. Non Sensible à la casse.

exemple : strstr(“La maison est petite”, “est”);

résulat :  “est petite”

strpos ($chaine, $recherche) : Retourne la position dans une chaine à partir d’une chaine de recherche. Si pas trouvé retourne FALSE.

str_replace($recherche, $remplace, $chaine) : Remplace la chaine recherchée par la une chaine de remplacement.

substr($chaine, position, longueur) : Extraction de caractères dans une chaine à partir de la position voulue pour une longueur précisée.

strip_tags ($chaine) : Enlèves les balises  HTML contenues dans une chaine.

strip_tags ($chaine, $balise) : Enlèves l’ensemble de balises HTML à l’exception des balises indiquées.

addslashes: Ajoute des barres obliques (Slash) en avant des caractères spéciaux comme l’apostrophe (‘)

html_entity_decode ($chaine): Retourne les caractère HTML decode sous format $gt pour >, $lt pour <, $amp pour &, etc..

str_shuffle ($chaine) : Réorganise aléatoirement une chaine de caractères.

MD5 ($chaine) : retourne une chaine encryptée sur 32 bits hexadecimal. (Pour la même chaine, le code d’encryption sera toujours le même)

 

Les vecteurs

La création de vecteurs est souvent pratique pour manipuler une série de valeur dans une même variable.

 

Méthodes de créations de vecteurs

$MonVecteur[0] =1;

$MonVecteur[1] =2;

$MonVecteur[] = 3;


Le dernier élément indique l’ajout à la suite du vecteur le chiffre 3. Ce qui permet de ne pas se soucier de l’indice.


Il existe une autre méthode pour définir un vecteur mais en plus condensé.

$MonVecteur = array(0 => 1, 1 => 2, 2 => 3);


Pour créer un vecteur vide :  $MonVecteur = array();

Comme indice ou index on peut également utiliser des chaines de caractères. Par contre ces chaines doivent être uniques.

 

Il est également possible de créer des vecteurs à 2 ou plusieurs dimensions.

 

$MonVecteur[‘Fruit’] = array(“Pomme”, “Poire”, “Clementines”);

$MonVecteur[‘Legume’] = array(‘Choux’, ‘Brocoli’);


Pour supprimer un élément dans un vecteur la fonction

 

array_splice ($monVecteur, 2) : Permet d’effacer le 3e élément dans un vecteur. Le deuxième paramètre indique d’effacer à partir du  deuxième élément. Donc s’il y a d’autres éléments, après, ils seront également détruits. Pour définir  un nombre de suppression, il faut ajouter un troisième paramètre contenant le nombre de suppressions à effectuer. La fonction array_splice permet également de retourner les éléments effacés dans une autre variable qui sera également défini automatiquement par PHP comme un vecteur.

 

$VDetruit = array_splice($MonVecteur, 2, 3);`


Une autre fonction qui permet de supprimer un élément en particulier est la fonction

unset ($Vecteur[index]);

 

Cette fonction est plus efficace que la fonction array_splice.

 

Foreach permet de parcourir l’ensemble du vecteur:

exemple :

$monVecteur = array(‘Un’ => 1, ‘Deux’ => 2,

‘fname’ => “Peter”, ‘initial’ => “B”,

‘lname’ => “Tardif”, ‘telephone’ => “555-5555”) ;

foreach ($monVecteury as $key => $value) {

echo “La clé est: ” . $key . ” et sa valeur est: ” . $value . “<br/>”;

}

 

On peut également avoir seulement les valeurs sans les clés en faisant :

foreach ($monVecteur as $value)

 

Les fonctions utiles pour les vecteurs

 

Les tris :


sort ($vecteur) : Tri du vecteur ascendant

rsort ($vecteur) : Tri du vecteur descendant

asort ($vecteur) : Tri du vecteur ascendant met en conservant

arsort:

ksort:

krsort:

 

Mathématique :

 

array_sum($vecteur) : Retourne la valeur de l’addition des valeurs du vercteur.

count($vecteur) : Retourne le nombre d’élément dans le vecteur

round($variable): Arrondi la variable numerique

 

Divers :

 

array_unique($vecteur) : Cette fonction permet de trouver les doublons et de les supprimer dans le vecteur.

in_array($recherche, $vecteur) : Cette fonction permet de trouver un élément dans un vecteur. Retourne True ou False.

array_seach ($recherche, $vecteur, True) : Cette fonction permet de retourner la position d’un élément du vecteur. Le troisième paramètre est un booléen     indiquant d’effectuer une recherche avec le mot entier ou pas.

shuffle( $vecteur) : permet de réorganiser les éléments du vecteur de manière aléatoire.

array_rand ($vecteur) : Permet de retourner une clé du vecteur de manière aléatoire.

extract($vecteur, EXTR_SKIP) : Extrait les éléments du vecteurs en plusieurs variables. Si EXTR_SKIP est founi, cela indique de laisser les variables qui existes déjà. Cette fonction valide également si la clé peut être utilisée comme clé (Les clés numériques ne peuvent être utilisés comme variable).

array_merge($vecteur1, $vecteur2) : Permet de fusionner 2 vecteur en 1 seul.

compact :  Convertie une série de variable en vecteur;

array_walk($vecteur, ‘function’) : Permet d’appeler une fonction pour chaque élément du vecteur.

array_diff ($vecteur1, $vecteur2) : Retourne les différences entre les deux vecteurs.

 

Toutes les fonctions sur les vecteurs se retrouvent à l’adresse suivante : http://ca.php.net/manual/fr/book.array.php