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