Tutoriel PHP

PHP

Découvez les bases de PHP dans mon support de formation dédié à ce puissant langage orienté web.


HTML HTML5 CSS Dreamweaver Bootstrap

Recapitulatif sur les fonctions en PHP

Je vous propose de consulter cette liste reprenant quelques fonctions PHP (Elle n'est pas compléte).

Pour retrouver la liste compléte des fonctions en PHP, vous pouvez consulter le site php.net

Fonctions Code PHP Commentaires
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_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éé.

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")+2; // Affiche la date du jour et l'heure
echo date("H:i:s") ; // Affiche l'heure
?>

 

Affiche la date, l'heure ...

date_diff

<?php
$datetime1 = date_create($date);
$datetime2 = date_create($date_terminee);
$interval = date_diff($datetime1, $datetime2);

echo $interval->format('%R%a days');
?>

Permet de faire un calcul entre 2 dates

die

die(message)

<?php
$site = "http://www.w3schools.com/";
fopen($site,"r")
or die("Unable to connect to $site");
?>

La fonction die() affiche un message et permet de quitter le script en cours.

die() est un alias de exit

dirname()

Renvoie le chemin du dossier parent

string dirname ( string $path [, int $levels = 1 ] )

Renvoie le chemin parent d'un chemin représentant un fichier ou un dossier, qui correspond à levels niveau(x) plus haut que le dossier courant.

Liste de paramètres :

path

Un chemin, sous Windows, les slash (/) et antislash (\) sont utilisés comme séparateurs de dossier. Dans les autres environnements, seul le slash (/) est utilisé.

levels

Le nombre de dossiers parents plus haut, doit être un entier supérieur à 0.

Valeur de retour :

Retourne le dossier parent du chemin. S'il n'y a pas de slash dans le chemin path, un point ('.') sera retourné, indiquant le dossier courant. Sinon, la chaîne retournée sera le chemin path dont on aura supprimé tous les /component.

<?php
echo dirname("/etc/passwd") . PHP_EOL;
echo dirname("/etc/") . PHP_EOL;
echo dirname(".") . PHP_EOL;
echo dirname("/usr/local/lib", 2);
?>

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

exit (message)

<?php
$site = "http://www.w3schools.com/";
fopen($site,"r")
or exit("Unable to connect to $site");
?>

Affiche un message et termine le script courant.

exit

void exit ( int $status )

<?php
$filename = '/path/to/data-file';
$file = fopen($filename, 'r')
    or exit("Impossible d'ouvrir le fichier ($filename)");
?>

Affiche un message et termine le script courant.

Termine le script courant. Les fonctions d'extinction et les destructeurs d'objets seront toujours exécutés même si exit est appelé.

exit est une construction de langage et peut être appelé sans parenthèse si aucun paramètre status n'est passé.

Liste de paramètres

status

Si status est une chaîne de caractères, cette fonction affichera le status juste avant de sortir.

Si le paramètre status est un entier, cette valeur pourra être utilisée comme statut de sortie et ne sera pas affichée. Le statut de sortie peut être dans l'intervalle 0-255, le statut de sortie 255 est réservé par PHP et ne doit pas être utilisé. Le statut 0 est utilisé pour terminer le programme avec succès.

Note: PHP >= 4.2.0 n'affiche pas le message status si c'est un entier.

Valeurs de retour

Aucune valeur n'est retournée.

explode()

Exemple 1
<?php
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
?>

Exemple 2
<?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

array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX] )

delimiter

Le séparateur.

string

La chaîne initiale.

limit

Si limit est défini et positif,le tableau retourné contient, au maximum, limit éléments, et le dernier élément contiendra le reste de la chaîne.

Si le paramètre limit est négatif, tous les éléments, excepté les -limit derniers éléments sont retournés.

Si limit vaut zéro, il est traité comme valant 1.

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

filesize()

<?php
// Affiche  somefile.txt: 1024 bytes
$filename = 'somefile.txt';
echo $filename . ': ' . filesize($filename) . ' bytes';

?>

Lit la taille d'un fichier

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.

fpassthru()

fpassthru(string pointeur)

<?php
$fichier = fopen("essai.txt","r");
fpassthru($fichier);
?>

Permet d'afficher tout le contenu d'un fichier dans le navigateur

fputs()

fputs(string pointeur, string chaîne, (string longueur))

fputs($fichier,'Texte a ajouter')

Permet d'écrire dans un fichier
fputs — Alias de fwrite

fputscsv()

int fputcsv ( resource $handle , array $fields [, string $delimiter = ',' [, string $enclosure = '"' ]] )

<?php

$list = array (
   array('aaa', 'bbb', 'ccc', 'dddd'),
   array('123', '456', '789'),
   array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
    fputcsv($fp, $fields);
}

fclose($fp);
?>

Formate une ligne en CSV et l'écrit dans un fichier

handle : Le pointeur de fichier doit être valide et pointer sur un fichier ouvert avec succés par fopen() ou fsockopen() (et pas encore fermé par fclose().

fields : Un tableau de valeurs.

delimiter : Le paramétre optionnel delimiter spécifie le délimiteur (un seul caractére).

enclosure : Le paramétre enclosure spécifie le caractére d'encadrement (un seul caractére).

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

function()

function Nomfonction ($parametre, ...)
{
   // Les commandes sont placées ici
   return $resultat
    // Si la fonction retrourne une valeur, indiquez là dans la commande return
}

<?php
// Créer la fonction convertir des euros en dollar avec un arrondi à 2 chiffres

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
?>

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.

getdate()

<?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 (lorsqu'il est fourni, sinon, le timestamp de la date/heure courante)

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");

/* Redirige le client vers le site PHP */
header("location: http://www.php.net/");

// Téléchargement de fichier
// Vous voulez afficher un pdf
header('Content-type: application/pdf');

// Il sera nommé downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// Le source du PDF original.pdf
readfile('original.pdf');

/* Garantie que le code ci-dessous n'est jamais exécuté. */
exit();
?>

Envoie un en-tête HTTP
location: permet de faire une redirection

htmlentities

string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

<?php
$str = 'Un \'apostrophe\' en <strong>gras</strong>';

// Affiche : Un 'apostrophe' en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($str);

// Affiche : Un &#039;apostrophe&#039; en &lt;strong&gt;gras&lt;/strong&gt;
echo htmlentities($str, ENT_QUOTES);
?>

 

Convertit tous les caractères éligibles en entités HTML.

htmlentities() est identique à la fonction htmlspecialchars(), sauf que tous les caractères qui ont des équivalents en entités HTML sont effectivement traduits.

Si vous voulez réaliser l'opération inverse, vous devez utiliser la fonction html_entity_decode().

En savoir +

htmlspecialchars

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

<?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

Certains caractères ont des significations spéciales en HTML, et doivent être remplacés par des entités HTML pour conserver leurs significations. Cette fonction retourne une chaîne de caractères avec ces modifications. Si vous avez besoin que toutes les sous-chaînes en entrée qui sont associées à des entités nommées soient transformées, utilisez la fonction htmlentities().

Si la chaîne en entrée passée à cette fonction et le document final partagent le même jeu de caractères, cette fonction est suffisante pour préparer l'entrée pour une inclusion dans la plupart des contextes d'un document HTML. Si cependant, l'entrée peut présenter des caractères qui ne sont pas codés dans le jeu de caractères du document final, et que vous souhaitez épargner ces caractères (comme des numériques ou des entités nommés), cette fonction et la fonction htmlentities() (qui n'encodes que les sous-chaînes qui ont des entités nommés équivalentes) ne sont pas suffisantes. Vous devez utiliser la fonction mb_encode_numericentity() à la place.

En savoir +

htmlspecialchars()

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

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;"
implode()

Exemple 1 :

<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

// Chaîne vide lors de l'emploi d'un tableau vide :
var_dump(implode('hello', array())); // string(0) ""
?>

Exemple 2 :

<?php
// array containing data
   $array = array(
      "name" => "John",
      "surname" => "Doe",
      "email" => "j.doe@intelligence.gov"
   );

   // build query...
   $sql  = "INSERT INTO table";

   // implode keys of $array...
   $sql .= " (`".implode("`, `", array_keys($array))."`)";

   // implode values of $array...
   $sql .= " VALUES ('".implode("', '", $array)."') ";

   // execute query...
   $result = mysql_query($sql) or die(mysql_error());
?>

Exemple 3 :

<?php
// Permet de récupérer les différentes valeurs du $_POST['id_appreciations_fk'] contenu dans des checkboxs, que nous séparrons par une virgule
$id_appreciations_fk=implode(',',$_POST['id_appreciations_fk']);
?>

Rassemble les éléments d'un tableau en une chaîne.

string implode ( string $glue , array $pieces )

implode() peut, pour des raisons historiques, accepter les paramétres dans un sens ou dans l'autre. Pour des raisons de cohérence avec explode(), toutefois, il est préférable d'utiliser l'ordre des arguments tels que documenté.

glue
Par défaut, il vaut la chaîne vide ''. Ce n'est pas l'utilisation recommandée de la fonction implode(). Nous vous recommandons de toujours utiliser les deux paramétres pour être compatible avec les anciennes versions.

pieces
Le tableau de chaînes à rassembler

Valeurs de retour
Retourne une chaîne contenant la représentation en chaîne de caractéres de tous les éléments du tableau pieces, dans le même ordre, avec la chaîne glue, placée entre deux éléments.

include()

<?php
include('haut.inc.php');
?>

Permet d'inclure un fichier dans une page autant de fois que vous le voulez

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

ksort

bool ksort ( array &$array [, int $sort_flags = SORT_REGULAR ] )

<?php
$fruits = array("d"=>"lemon", "a"=>"orange", "b"=>"banana", "c"=>"apple");
ksort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

 

Trie un tableau suivant les clés

Liste de paramètres

array

Le tableau d'entrée.

sort_flags

Vous pouvez modifier le comportement de cette fonction en utilisant le paramètre optionnel sort_flags. Pour plus de détails, voyez le manuel pour la fonction sort().

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

list

<?php

$info = array('coffee', 'brown', 'caffeine');

// Liste toutes les variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";

// Liste certaines variables
list($drink, , $power) = $info;
echo "$drink has $power.\n";

// Ou bien, n'utilisons que le troisième
list( , , $power) = $info;
echo "I need $power!\n";

// list() ne fonctionne pas avec les chaînes de caractères
list($bar) = "abcde";
var_dump($bar); // NULL
?>

Assigne des variables comme si elles étaient un tableau.
Tout comme array(), list() n'est pas une véritable fonction, mais un élément de langage, qui permet de rassembler les variables varname, ... sous forme de tableau, pour les assigner en une seule ligne.

En savoir +

mail()

mail ( $destinaire, $Sujet, $Message, $Par_additionels)

Permet l'envoi d'email.

Désormais un certain noimbre de serveurs peuvent bloquer cette fonction.

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

move_uploaded_file()

move_uploaded_file ( $filename , $destination )

Vérifie si l'upload s'est bien passé ET place le fichier dans le répertoire spécifié

Liste des paramétres :
filename : Le nom du fichier téléchargé.
destination : La destination du fichier déplacé

mysql_connect()

mysql_connect ("nom_hote","login","mot_de_passe")

mysql_connect ne doit plus être utilisé, il est préférable d'utiliser mysqli_connect

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

phpinfo()

<?php
phpinfo();
?>

Permet d'afficher les informations détaillées de la version de votre langage PHP

print_r

<?php
$today = getdate();
print_r($today);
?>

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.

rename()

rename("nom_depar"t, "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_once()

<?php
require_once('includes/connection.inc.php');
?>

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.

reset

<?php

$array = array('step one', 'step two', 'step three', 'step four');

// Par défaut, le pointeur est sur le premier élément
echo current($array) . "<br />\n"; // "step one"

// on saute deux éléments
next($array);
next($array);
echo current($array) . "<br />\n"; // "step three"

// on remet le pointeur au début
reset($array);
echo current($array) . "<br />\n"; // "step one"

?>

reset — Remet le pointeur interne de tableau au début

Description

mixed reset ( array &$array )

reset() replace le pointeur de tableau array au premier élément et retourne la valeur du premier élément.

Liste de paramètres

array

Le tableau d'entrée.

Valeurs de retour

Retourne la valeur du premier élément du tableau, ou FALSE si le tableau est vide.

return

return retourne le contrôle du programme au module appelant. L'exécution reprend alors à l'endroit de l'invocation du module.

Si appelée depuis une fonction, la commande return termine immédiatement la fonction, et retourne l'argument qui lui est passé. return interrompt aussi l'exécution de commande eval() ou de scripts.

Si appelée depuis l'environnement global, l'exécution du script est interrompue. Si le script courant était inclus avec la structure include ou require, alors le contrôle est rendu au script appelant. De plus, si le fichier du script courant a été inclus via l'instruction include, alors la valeur retournée sera utilisée comme résultat de l'instruction include. Si return est appelée depuis le script principal, alors l'exécution du script s'arrête. Si le script courant est auto_prepend_file ou auto_append_file dans le fichier php.ini, alors l'exécution du script s'arrête.

Pour plus d'informations, voyez retourner des valeurs.

 

Note: Notez que puisque return est une structure de langage, et non une fonction, les parenthèses entourant les arguments ne sont pas nécessaires. Il est classique de les oublier et vous devriez le faire car PHP travaillera moins dans ce cas.

Note: Si aucun paramètre n'est fourni, alors les parenthèses peuvent être omises et NULL sera retourné. L'appel à la fonction return avec des parenthèses mais sans argument résultera en une alerte d'analyse.

Note: Vous ne devriez jamais utiliser les parenthèses autour de la variable retournée lorsque vous la retournez par référence, car cela ne fonctionnera pas. Vous ne pouvez retourner que les variables par référence, et non le résultat du traitement. Si vous utilisez return ($a);, alors vous ne retournez pas une variable mais le résultat de l'expression ($a) (qui est, bien sûr, la valeur de $a).

En savoir +

rewind()

rewind ( resource   handle )

<?php
$handle = fopen('output.txt', 'r+');

fwrite($handle, 'Really long sentence.');
rewind($handle);
fwrite($handle, 'Foo');
rewind($handle);

echo fread($handle, filesize('output.txt'));

fclose($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.

round()

round($var,Nb_decimales)
<?php
$Prix=18.4542215;
echo round($Prix,2); // Arrondi la variable prix à 2 décimales
?>

round permet d'arrondir une valeur

session_id()

string session_id ([ string $id ] )

<?php
echo session_id();
?>

Lit et/ou modifie l'identifiant courant de session

session_id() est utilisé pour récupérer ou définir l'identifiant de session pour la session courante.

Si id est fourni, il remplacera l'identifiant courant de session. session_id() doit alors être appelé avant session_start(). Suivant le gestionnaire de sessions que vous utilisez, tous les caractères ne seront pas acceptés dans cette valeur. Par exemple, le gestionnaire de sessions par défaut, basé sur les fichiers, n'accepte que les caractères compris dans l'intervalle a-z, A-Z et 0-9 !

Note: Lorsque vous utilisez les sessions avec les cookies, le fait de spécifier un id pour session_id() fera qu'un nouveau cookie sera toujours envoyé lors de l'appel à session_start(), sans se soucier si l'identifiant de session courant est identique à celui qui vient d'être défini.

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()

string session_name ([ string $name ] )

<?php
/* choisi le nom de session  : WebsiteID */

$previous_name = session_name("WebsiteID");

echo "L'ancien nom de la session était $previous_name<br />";
?>

Lit et/ou modifie le nom de la session

session_name() retourne le nom de la session courante. Si le paramétre name est fourni, session_name() modifiera le nom de la session et retournera l'ancien nom de la session.

Le nom de la session est réinitialisé à la valeur par défaut, stockée dans session.name lors du démarrage. Ainsi, vous devez appeler session_name() pour chaque demande (et avant que les fonctions session_start() ou session_register() ne soient appelées).

Liste de paramètres

name

Le nom de session est utilisé comme nom pour les cookies et les URLs (i.e. PHPSESSID). Il ne doit contenir que des caractères alphanumériques ; il doit être court et descriptif (surtout pour les utilisateurs ayant activé l'alerte cookie). Si name est fourni, le nom de la session courante sera remplacé par cette valeur.

Avertissement

Les noms de session ne peuvent pas contenir uniquement des chiffres, au moins une lettre doit être présente. Sinon, un identifiant de session sera généré à chaque fois.

 

session_start()

<?php
session_start();
?>

Permet de démarrer une session
Placer le code PHP avant tout code HTML

session_unset()

<?php
session_unset();
?>

Détruit toutes les variables d'une session

Ne détruisez pas $_SESSION avec unset($_SESSION) car cela désactivera la possibilité d'enregistrer des variables de session à partir du tableau superglobal $_SESSION.

session_write_close()

void session_write_close ( void )

<?php
session_write_close()
?>

Écrit les données de session et ferme la session

Termine la session courante, après avoir stocké les données.

Les données de session sont généralement stockées à la fin de votre script, automatiquement, sans besoin d'appeler explicitement session_write_close(). Mais durant toute l'exécution du script, les données de session sont verrouillées en écriture, et un seul script peut opérer sur la session en même temps. Lorsque vous utilisez des frames avec des sessions, vous vous en rendrez compte en voyant les frames se rafraîchir les uns après les autres. Vous pouvez réduire le temps de calcul de ces pages en refermant la session aussitôt que possible, ce qui libère les données pour les autres scripts.

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.

static

<?php
function Fonction_statique(){
 static $var2 = 0;
 $var2++;
 echo $var2;
}


Fonction_statique ();
// affiche 1 c'est-à-dire premier appel à la fonction, $var2 est initialisé à 0 une seule fois
// et incrementé de 1


Fonction_statique ();
// affiche 2, $var2 a gardé la valeur précédente et l'incrémente de 1.
?>

Une variable statique déclarée à l'intérieur d'une fonction à l'aide de l'instruction static permet à une variable de garder sa valeur à chaque appel de la fonction. L'initialisation d'une variable statique se fait au début de la fonction et à chaque appel de la fonction dans le script elle gardera la valeur du dernier appel.

strcmp()

<?php
$var1 = "Bonjour";
$var2 = "bonjour";
if (strcmp($var1, $var2) !== 0) {
    echo "$var1 n'est pas égal à $var2 par comparaison sensible à la casse.";
}
?>

Comparaison binaire de chaînes.

int strcmp ( string $str1 , string $str2 )

Notez que cette comparaison est sensible à la casse.

Valeurs de retour :
Retourne < 0 si str1 est inférieure à str2; > 0 si str1 est supérieure à str2, et 0 si les deux chaînes sont égales.

strrchr()

<?php
$path = '/www/site1/index.php';
$filename = substr(strrchr($path, "/"), 1);
echo $filename; // "index.php"
?>

Trouve la dernière occurrence d'un caractère dans une chaîne.

string strrchr ( string $haystack , mixed $needle )

Retourne le segment de la chaîne haystack qui commence avec la dernière occurrence de needle, jusqu'à la fin de la chaîne haystack.

Liste de paramètres :

haystack

La chaîne dans laquelle on doit chercher.

needle

Si needle contient plus d'un caractère, seul le premier sera utilisé. Ce comportement est différent de celui de strchr().
Si needle n'est pas une chaîne, il est converti en entier, et utilisée comme caractère de code ASCII correspondant.

Valeur de retour :

Retourne la portion de la chaîne, ou FALSE si needle n'est pas trouvé

strtolower

<?php
$prenom="CHRISTOPHE";
// Permet d'afficher le prénom en minuscule
strtolower($prenom);
?>

Permet d'afficher uen chaîne de caractère en miniscule

strtotime

int strtotime ( string $time [, int $now = time() ] )

Exemple : 1 Exemple avec strtotime()

<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>

Exemple : 2 Vérification d'erreur

<?php
$str = 'Pas bon';

// Avant PHP 5.1.0, vous devez comparer avec  -1, au lieu de false
if (($timestamp = strtotime($str)) === false) {
   echo "La chaîne ($str) est boguée";
} else {
   echo "$str == " . date('l dS \o\f F Y h:i:s A', $timestamp);
}
?>

Transforme un texte anglais en timestamp

La fonction strtotime() essaye de lire une date au format anglais fournie par le paramètre time, et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 UTC), relativement au timestamp now, ou à la date courante si ce dernier est omis.

Chaque paramètre de la fonction utilise le décalage horaire par défaut à moins qu'un décalage horaire y soit explicitement paramétré. Soyez vigilant à ne pas utiliser un décalage horaire différent pour chaque paramètre à moins que ce soit ce dont vous avez besoin. Reportez-vous à la fonction date_default_timezone_get() afin de savoir comment définir un décalage horaire par défaut.

Liste de paramètres

time

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

now

Le timestamp, représentant la date courante, utilisé pour le calcul relative des dates.

Valeurs de retour

Retourne un timestamp en cas de succès, FALSE sinon. Avant PHP 5.1.0, cette fonction retournait -1 en cas d'échec.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide, et/ou un message de type E_STRICT ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

strtoupper

<?php
$prenom="christophe";
// Permet d'afficher le prénom en majuscule
strtoupper($prenom);
?>

Permet de passer une chaîne de caractères en majuscule

str_replace

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

Exemple #1 Exemple 1 avec str_replace()

<?php
// Génère : <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");

// Génère : Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

// Génère : You should eat pizza, beer, and ice cream every day
$phrase  = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy   = array("pizza", "beer", "ice cream");

$newphrase = str_replace($healthy, $yummy, $phrase);

// Génère : 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;

?>

Exemple #2 Exemple 2 avec str_replace()

<?php
// Ordre des remplacements
$str     = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order   = array("\r\n", "\n", "\r");
$replace = '<br />';

// Traitement du premier \r\n, ils ne seront pas convertis deux fois.
$newstr = str_replace($order, $replace, $str);

// Affiche F car A est remplacé par B, puis B est remplacé par C, et ainsi de suite...
// Finalement, E est remplacé par F
$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

// Affiche : apearpearle pear
// Pour les mêmes raisons que plus haut
$letters = array('a', 'p');
$fruit   = array('apple', 'pear');
$text    = 'a p';
$output  = str_replace($letters, $fruit, $text);
echo $output;
?>

Remplace toutes les occurrences dans une chaîne

str_replace() retourne une chaîne ou un tableau, dont toutes les occurrences de search dans subject ont été remplacées par replace.

Si vous n'avez pas besoin de règles de remplacement compliquées (comme les expressions rationnelles), utilisez cette fonction au lieu de la fonction preg_replace().

Liste de paramètres

Si les paramètres search et replace sont des tableaux, alors la fonction str_replace() prendra une valeur de chaque tableau et les utilisera pour la recherche et le remplacement sur subject. Si les paramètres replace a moins de valeurs que le paramètre search, alors une chaîne de caractères vide sera utilisée comme valeur pour le reste des valeurs de remplacement. Si le paramètre search est un tableau et que le paramètre replace est une chaîne de caractères, alors cette chaîne de caractères de remplacement sera utilisée pour chaque valeur de search. L'inverse n'a pas de sens.

Si search ou replace sont des tableaux, les éléments sont traités du premier, au dernier.

search

La valeur à chercher, autrement connue comme le masque. Un tableau peut être utilisé pour désigner plusieurs masques.

replace

La valeur de remplacement à substituer aux valeurs trouvées. Un tableau peut être utilisé pour désigner plusieurs valeurs de remplacement.

subject

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.

count

Si fournie, cette variable contiendra le nombre de remplacements effectués.

Valeurs de retour

Cette fonction retourne une chaîne, ou un tableau, contenant les valeurs remplacées.

 

substr

string substr ( string $string , int $start [, int $length ] )

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

?>

Trouver des caractéres dans une chaîne string

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.

time()

<?php
$timestamp=time();
echo "Afficher le Timestamp: " .$timestamp;
?>

Affiche le Timestamp

ucfirst

<?php
$prenom="christophe";
// Permet d'afficher le prénom avec une majuscule en début
ucfirst($prenom);
?>

Permet de passer la premère lettre d'une chaîne de caractères en majuscule

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

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