php
installer un serveur privé sur ubuntu | ||||
---|---|---|---|---|
LAMP ou WAMP | sudo apt install apache2 php libapache2-mod-php php-mysql sudo default-mysql-server php-mysql mysql_secure_installation | |||
modifier les droit du fichier www : | cd /var/ sudo chown <utilisateur>:www-data ./ -R | |||
creer un lien | ln -s /var/www/ /home/ozome/Bureau/l2/s4/programmation\ web/www | |||
debug/troubleshooting | ini_set('display_errors',1); ini_set('display_startup_errors',1); error_reporting(E_ALL); |
Fonctions sur les variables | ||||
---|---|---|---|---|
debugger | <div id="DebugConsole" style="min-width:960px;background-color: #F57D7D;border:1px solid #FF0000;"> <center><h2>CONSOLE DE DEBUG</h2></center> </td> </tr> </table> <?php echo '<pre>'; <th COLSPAN="5"> <HR size=20 noshade> print_r($GLOBALS); <TABLE class="tableau" BORDER="4"> <Tr> <th COLSPAN="5"> <Div Align="center" > <pre> quelques fonctions </pre> </div> </tr> echo '</pre>'; <tr> <th colspan="3">types </tr> ?> <tr> <th>gettype() <td> permet de récupérer le type d'une variable <td> </tr></div> | |||
isset(variable) | permet de savoir si la variable à été affecté 1 sinon "vide" | |||
unset(variable) | détruit une variable | |||
var_dump(variable) | affiche les informations sur une variable | |||
define(string,valeur) | défini une constante (valeur fixe) | define("PI",3.141592) |
Fonctions Mathématiques | ||||
---|---|---|---|---|
abs() | valeur absolue | |||
ceil() | arrondi au supérieur | |||
floor() | arrondi à l'inférieur | |||
exp() | expodentiel | |||
log() | logarithme | |||
max(val1,val2) | le maximum de deux valeur | |||
mt_rand(min,max) mt_srand(microtime()) | génère une valeur aléatoire entre min et max depuis la graine initialise la graine depuis le 1er janvier 1970 | |||
round() | arrondie | |||
sqrt() | ??? |
les Chaines | ||||
---|---|---|---|---|
. | pour concaténer deux chaines | |||
chr(0x65) | retourne une chaine d'un seul caractère correspondant au code en exa | |||
strtolower("aBCd") | met en minuscule | abcd | ||
strtoupper("aBCd") | met en majuscule | ABCD | ||
trim(" aBcF sdf ") | supprimer les caractère invisibles en début et fin de chaine | aBcF sdf | ||
nl2br("ligne1\nligne2") | insère < br > devant tout les caractère de fin de ligne | ligne1 ligne2 | ||
strlen("abcd") | longueur de la chaine | 4 | ||
strcmp("abcd","aac") | compare la grandeur des deux chaines 0 ou 1 | |||
strpos("une ligne pour chercher","ne") strpos("une ligne pour chercher","ne",2) | donne la position de la chaine2 dans la chaine1 donne la position de la ième occurence de la chaine2 dans la chaine1 | 1 7 | ||
strrev("abcd") | inverse la chaine | dcba | ||
substr("une ligne pour chercher",4,5) | retourne la sous chaine en position 4 et de longueur 5 | ligne | ||
str_replace("ne","NE","une ligne pour chercher") | remplace toutes les occurences de la chaine1 par la chaine2 dans la chaine3 | uNE ligNE pour chercher | ||
addslashes(chaîne) | ajoute des backslaches au caractères ' " \ de la chaine | |||
sprintf('$x=%d',3) | formatte l'affichage comme en c | $x=3 | ||
explode(séparateur,chaine) | découpe la chaine en sous chaine en utilisant le séparateur | |||
implode(séparatteur,array) | retourne une chaine contenant tout les élèments du tableau séparé par le séparateur |
les conditions | ||||
---|---|---|---|---|
if(condition) {instruction} else {instruction} | < ?php $a=mt_rand(0,10); i($a%2==0) {echo "a vaut $a".",il est pair"; echo "< br >";} else {echo "a vaut $a".",il est impair"; echo "<br>";} ?> | Exécution (valeur aléatoire à chaque exécutions): a vaut 5, il est impair | ||
if(expression conditionelle1) {instruction si condition1 est vraie} elseif(expression conditionelle2) {instruction si condition2 est vraie} else {instruction sinon} | <?php $a=mt_rand(0,10); i($a==0) {echo "a vaut $a".",est zero"; echo "< br >";} elseif($a==1) {echo "a vaut $a".",est 1"; echo "< br >";} else {echo "a vaut $a".",a est différent de 1 et 0"; echo "<br>";} ?> | Exécution (valeur aléatoire à chaque exécutions): a vaut 0, est zero | ||
do{ instruction }while(condition) while(condition) {instruction} } | <?php $i=0; $n=4; do{ print("\$i=$i<br>"); $i +=1; }while($i<$n); $i=0; print("puis<br>"); while($i<$n) { print("\$i=$i<br>"); $i++; } ?> | Execution $i=0 $i=1 $i=2 $i=3 puis $i=0 $i=1 $i=2 $i=3 | ||
for | <?php $max=14; for($nombre=1;$nombre<=$max;$nombre++) { $divisible=FALSE; for ($diviseur=floor($nombre/2);!$divisible && ($diviseur>1);$diviseur--) {$divisible=($nombre%$diviseur==0);} if(!$divisible) print("$nombre est premier "); } ?> | execution 1 est premier 2 est premier 3 est premier 5 est premier 7 est premier 11 est premier 13 est premier |
les tableau | ||||
---|---|---|---|---|
$tab=array(x1,x2,x3,...) $tab=array(x1=>y1,x2=>y2,x3=>y3,...) | on crée un tableau et on le rempli on crée un tableau associatif de x1,y1 $tab[x1] renvoie y1 | |||
$tab[] | si l'indice n'est as déclarée il est automatiquement affecté à l'indice le plus élevé +1 | |||
count($tab) | permet d'avoir le nbr d'élement du tableau | |||
unset() | permet de supprimer une case au milieux d'un tableau | |||
array_values(tableau) | retourne un tableau contenant uniquement les cases définies | |||
In_array(valeur,tableau) | retourne true si la valeur se trouve dans le tableau | |||
explode(séparateur,chaîne) | découpe la chaine en sous chaines | |||
implode(séparateur,array) | retourne une chaine contenant tout les éléments du tableau séparés | |||
sort(array) | trie le tableau dans l'ordre croissant des éléments | |||
ksort(array) | trie le tableau associatif selon l'ordre croissant des clés | |||
array_key_exists(clef,tableau) | retroune TRUE si une clé existe dans un tableau | |||
array_keys(tableau) | retourne un tableau de toutes les clef du tableau en paramètre | |||
array_splice(tableau,position,nombre) | supprime nombre d'éléments du tableau à partir de la position | |||
array_splice(tableau,position,nombre,tab_remplace) | supprime et remplace par les éléments du tableau de remplacement | |||
array_pop(tableau) | dépile et retourne le dernier éléments du tableau, retourne NULL si vide | |||
array_push(tableau,elem1,elem2) | empile à la fin du tableau les élements | |||
array_shift(tableau): | depile le premier elements | |||
array_slice(tableau,position,nombre) | retourne un sous tableau extrait du tableau à la position composé de n nombre | |||
array_sum(tableau) | retourne la somme des valeurs du tableau |
calculs | ||||
---|---|---|---|---|
$tab1==$tab2 | sur des tableau associatifs retourne TRUE si les 2 tableau on les mêmes paires (clefs,éléments) sur des tableau indicés retourne TRUE si les 2 tableaux on les mêmes éléments aux mêmes endroits | |||
$tab1===$tab2 | tableau associatifs: retourne TRUE si les 2 tableaux ont les mêmes paires (clefs,elements) dans le même ordre | |||
$tab1+$tab2 | tableau associatifs: réalise l'union des paires sur le critère des clefs. Dans le cas d'éléments de même clefs, c'est celui du tableau de gauche qui est retenue |
pointeur | ||||
---|---|---|---|---|
current(tableau) | retourne l'élément courant pointé par le pointeur interne | |||
next(tableau) | incrémente le pointeur interne retourne la valeur qu'il pointe retourne false s'il déborde du tableau ou si l'éléments pointé est NULL | |||
end(tableau) | positionne le pointeur interne du tableau juqu'au dernier éléments retourne la valeur de cet élément | |||
prev(tableau) | décrémente le pointeur plustot que de l'avancer retourne la valeur du nouvel élément pointé ou false si l'élément pointé est NULL | |||
reset(tableau) | replace le pointeur de tableau au premier élément retourne la valeur du premier élément |
les fonctions | ||||
---|---|---|---|---|
function nom_fonction([$param_1[=val_def],...,$param_N[=val_def]]) { instruction ... [return valeurs...;] } $resultat=nom_fonction([arg_1,...,arg_N]); | ||||
include | inclu et exécute un fichier PHP, en cas d'erreur affiche un warning | |||
require | inclu et exécute un fichier PHP en cas d'échec provoque une erreur fatale et arrète le script | |||
func_get_args() | retourne un tableau contenant les arguemnets transmis à la fonction | |||
list(x1,x2)=divisionEntiere($entier,$divisuer) | permet de récupérer le quotient et le reste | |||
declare(strict_type=1) | ??? | |||
global["var1"]=0 | on défini la variable globale global $a | |||
$GLOBALS['variable'] | variable super globale |
les formulaires | |||||
---|---|---|---|---|---|
< form METHOD=... ACTION=... [...]> | |||||
METHOD | |||||
POST | correspond à un envoie de donnée dans le corp de la requète | ||||
GET | correspond à un envoie de donnée dans l'url | ||||
ACTION | permet d'indiquer l'url qui va recevoir les données | ||||
enctype | "application/x-www-form-urlencode" : par défault "multipart/form-data" : pour envoyer des fichiers | détermine comment les donnée encoyées sont encodées |
les formulaires | |||||
---|---|---|---|---|---|
< INPUT type=... name=... [...]> | |||||
name | désigne l'élément | ||||
value | éventuellement une valeur initiale | ||||
type | défini des objets | ||||
text | petit champs pour que l'utilisateur saisisse un nombre ou une phrase | ||||
button | pour cliquer dessus | ||||
checkbox | case à cocher information on off | ||||
radio | case à cocher mais une seul (si rien n'est coché n'envoie rien) | ||||
hidden | champ caché pour transmettre des informations vers le serveur | ||||
password | champ texte mais masquant le texte tapé | ||||
reset | pour remettre le formulaire dans son état initiale | ||||
submit | envoie les données vers le serveur | ||||
image | meme principe que submit mais c'est une image au lieu d'un bouton | ||||
file | affiche un bouton pour selectionner un fichier de l'ordinateur | ||||
textarea | < textarea> </textarea > | ||||
select | <select name="toto" > <option value="truc" >choix1</option > <option value="machin" >choix2</option > < /select> |
variables superglobales | |||||
---|---|---|---|---|---|
$GLOBALS | contient le nom des variable (les clefs sont les noms) | ||||
$_SERVER | |||||
$_SERVER['HTTP_ACCEPT_LANGUAGE'] | language accepté par le navigateur | ||||
$_SERVER['HTTP_HOST'] | nom de domaine du serveur | ||||
$_SERVER['HTTP_USER_AGENT'] | type de navigateur | ||||
$_SERVER['REMOTE_ADDR'] | adresse ip du client | ||||
$_SERVER['SERVER_ADDR'] | adresse ip du serveur | ||||
$_SERVER['PHP_SELF'] | Nom du script en cour d'execution | ||||
$_GET | contient les nom et les valeurs des données issues d'un formulaire via get | ||||
$_POST | contient les nom et les valeurs des données issues d'un formulaire via post | ||||
$_COOKIE | contient les nom des cookie enregistré chez le client (les nom sont les clefs) | ||||
$_FILES | |||||
$_FILES["MonFichier"]["name"] | contient le nom du fichier sur le poste client | ||||
$_FILES["MonFichier"]["type"] | contient le type MIME initial du fichier et permet un controle ou une scensure | ||||
$_FILES["MonFichier"]["size"] | donne la taille réelle du fichier transférer | ||||
$_FILES["MonFichier"]["tmp_name"] | donne le nom temporaire que donne le serveur au fichier | ||||
Boolean move_uploaded_file(String "fichtmp",String "fichfinal") | pour procéder à l'enregistrement et au renomage du fichier | ||||
$_ENV | contient le nom des vqriables d'environnement qui sont changeante selon les serveurs ex date | ||||
$_REQUEST | contient l'enssemble des variables superglobales ex $_GTE , $_COOKIE | ||||
$_SESSION | contient l'enssemble des variables de sessions et leurs valeurs |
ouverture et fermeture d'un fichier | ||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
fopen |
| fopen(String $NomFichier,String mode) | ||||||||||||||||||||||||||||||||||||||||||
fclose | fermeture d'un fichier | Boolean fclose($idfile) | ||||||||||||||||||||||||||||||||||||||||||
$id_file=fopen("monFichier.txt","a"); if(!$id_file)echo "problème accès fichier"; | ||||||||||||||||||||||||||||||||||||||||||||
Flock($id_file,LOCK_SH) ou Flock($id_file,1) | bloque l'écriture dans le fichier mais laisse libre accès en lecture | |||||||||||||||||||||||||||||||||||||||||||
Flock($id_file,LOCK_EX) ou Flock($id_file,2) | bloque en lecture et en ecriture | |||||||||||||||||||||||||||||||||||||||||||
Flock($id_file,LOCK_UN) ou Flock($id_file,3) | libère le verou installé précedemment | |||||||||||||||||||||||||||||||||||||||||||
fwrite() fputs() | insère une chaine dans le fichier | fwrite($id_file,"toto") | ||||||||||||||||||||||||||||||||||||||||||
fgets(resource $id_file) | lit le fichier ligne par ligne | String fgets(resource $id_file) | ||||||||||||||||||||||||||||||||||||||||||
fgetc(resource $id_file) | lit le fichier caractère par caractère | String fgetc(resource $id_file) | ||||||||||||||||||||||||||||||||||||||||||
fpassthru($id_file) | Lit tout le reste d'un fichier jusqu'à la fin et dirige le résultat vers la sortie standard. | |||||||||||||||||||||||||||||||||||||||||||
readfile("nom_fichier") | Lit un fichier et l'envoie dans le buffer de sortie. | |||||||||||||||||||||||||||||||||||||||||||
copy("nom_fichier","nom_copie") | copie un fichier | Boolean copy(String "nom_fichier",string "nom_copie")|||||||||||||||||||||||||||||||||||||||||||
rename("nom_fichier","nom_futur") | renommer un fichier | Boolean rename(String "nom_fichier",string "nom_futur") | ||||||||||||||||||||||||||||||||||||||||||
Boolean unlink("fichier_à_effacer") | fichier à effacer |
les expresions régulières | |||||
---|---|---|---|---|---|
[[:alpha]] | n'importe que lettre | ||||
[[:digit:]] ou \d | n'importe quel chiffre | ||||
\D | tout caractère sauf numérique | ||||
\w | une lettre [a-z][A-Z] une lettre accentué un chiffre ou '_' | ||||
\W | le contraire de \w | ||||
[[:alnum:]] | n'importe quel letre ou chiffre | ||||
[[:space:]] ou \s | n'importe quel espace blanc | ||||
\S | tout caractère sauf ceux défini par \s | ||||
[[:punct:]] | n'importe quel signe de ponctuation | ||||
[[:lower:]] | n'importe quel lettre en minuscule | ||||
[[:upper:]] | n'importe quel capitable | ||||
[[:blank:]] | espace ou tabulation | ||||
\b | ="word boundary character" espace, ponctuation, début d'un texte, fin d'un texte | ||||
\B | le contraire de \b |
relation avec mysql | |||||
---|---|---|---|---|---|
Ressource mysqli_connect('url_serveur','user','password',' base'); | |||||
url_serveur | url du serveur | ||||
user | le login | ||||
password | le mot de passe | ||||
base | le nom de la base de donnée | ||||
Boolean mysqli_ping($idcom) | idcom= identifiant de ressourse | permet de vérifier si la connexion est active | |||
mysqli_select_db($idcom,$nom_base) | renvoie true si la base existe | apres l'appel les requete sont effectuées sur la base choisie | |||
Boolean mysqli_close([$idcom]) | il faut mettre fin a la connexion dès que possile | permet de mettre fin à la connexion | |||
mysqli_query($idcom,requete) | permet de faire une requète (sans point virgule à la fin) | ||||
mysqli_num_rows(liste_resulat_requette) | retourne le nombre de lignes d'un résultat de requète sql | ||||
mysqli_data_seek(liste_resultat_requette,position) | positionne le pointeur interne | doit être compris entre 0 et mysqli_num_rows(liste_resulat_requette)-1 | |||
mysqli_field_name(liste_resultat_requete,entier) | retourne le nom ou l'alias de l'entier passé en paramètre | ||||
Array mysqli_fetch_array(liste_resultat_requette) | parcour la liste des resultat d'une requette sql, optionnel Mysqli_assoc permet d'avoir un tableau associatif | while($row=mysqli_fetch_array($result)) echo $row[0].','.$row[1].','.$row[2].','.$row[3] | |||
mysqli_connect_error() | retourne le texte de la dernière erreur généré par connect | ||||
mysqli_connect_errno() | retourne le numéro associé à l'erreur du dernier connect | ||||
mysqli_error() | retroune le texte associé à la dernière erreur généré par la dernière requète | ||||
mysqli_connect_errno() | retroune le numéro associé à la dernière erreur généré par la dernière requète |
les cookie | |||||
---|---|---|---|---|---|
Boolean setcookie(nom,valeur,date_expiration,chemin,domaine,securité) | |||||
Sring nom | sert à identifier le cookie | ||||
string valeur | définie le contenue du cookie | ||||
Seconde date_expiration | en l'absence de date d'expiration le cookie est détruit à la fermeture de la session | ||||
String chemin | contien le chemin d'ccès au dossier qui contiennent les scripts autorisé à acceder aux cookies | ||||
domaine | le domaine autorisé à accèder au cookie | ||||
sécurité | valeur booléene (0 ou 1) indique si le cookie doit être transmis en https ou http |
mysqli_fetch_field | |||||
---|---|---|---|---|---|
name | Le nom de la colonne | ||||
orgname | Le nom original de la colonne si un alias a été spécifié | ||||
table | Le nom de la table à laquelle ce champs appartient (s'il n'a pas été calculé) | ||||
orgtable | Le nom original de la table si un alias a été spécifié | ||||
def | Reservé pour la valeur par défaut. Actuellement toujours "" | ||||
db | Base de données (depuis PHP 5.3.6) | ||||
catalog | Nom du catalogue, toujours "def" (depuis PHP 5.3.6) | ||||
max_length | La longueur maximale du champs pour le jeu de résultats | ||||
length | La largeur du champs, comme spécifiée dans la définition de table | ||||
charsetnr | Le numéro du jeu de caractères pour ce champs | ||||
flags | Un entier représentant le bit-flags pour ce champs | ||||
type | Le type de données utilisées pour ce champs | ||||
decimals | Le nombre de décimales utilisées (pour les champs de type entier) |