• S'inscrire
  • Affichage des résultats 1 à 9 sur 9

    Discussion: Le langage PHP

    1. #1
      x_octet
      Guest

      Par défaut Le langage PHP


      Introduction
      topnext

      * PHP est un langage de script qui permet de créer des pages Web dynamiques
      * Ces pages sont des pages HTML classiques, mais qui peuvent contenir du code PHP

      <HTML>
      <HEAD>
      <TITLE>Test de l'outil PHP</TITLE>
      </HEAD>
      <BODY>


      <?php echo "Salut les amis !"; ?>


      </BODY>
      </HTML>

      * Syntaxe du langage assez semblable à celle du langage C, avec des emprunts à Perl et à Java
      Généralités
      previoustopnext

      * Les pages contenant des ordres PHP se terminent par .php3
      * Pour debugger : les fichiers .phps sont affichables en couleur (syntax hilighting)
      * Les ordres PHP sont interprétés par le serveur
      * PHP peut être installé comme module par Apache et Microsoft Internet Information Server, soit 90% des serveurs du marché. Solution la plus performante.
      * PHP peut aussi être installé dans n'importe quel serveur Web sous la forme d'un programme CGI. Dans ce cas toutes les pages contenant des ordres PHP devront être passée en paramètre à l'interprète PHP situé dans le répertoire /cgi-bin du serveur.
      * Outil gratuit, OpenSource, livré en standard avec la distribution Red Hat Linux
      * Concurrent de l'outil ASP de Microsoft, il existe même des convertisseurs ASP vers PHP
      * En Juin 1998, 150.000 sites Web utilisaient des pages PHP (sources Netcraft)
      Traitement des formulaires HTML
      previoustopnext

      * Adieu les CGIs ! Récupèrer les paramètres d'un formulaire HTML est enfantin !

      <FORM ACTION="TraiteFormulaire.php3" METHOD="POST">
      Votre nom : <INPUT TYPE=TEXT NAME=nom>
      Votre age : <INPUT TYPE=TEXT NAME=age>
      <INPUT TYPE=SUBMIT NAME="Ok">
      </FORM>

      Lorsque on clique sur le bouton Ok de la page Web contenant le formulaire précédent, la page TraiteFormulaire.php3 est appelée. Cette dernière contient des ordres PHP :
      ...

      Bonjour <?php echo $nom; ?>,


      vous avez bien <?php echo $age; ?> ans

      cette année ?
      ...

      Interfaçage avec une base de données
      previoustopnext

      * Interfaçage avec une base de données hyper simple ! Le point fort de PHP.
      * Supporte indifféremment Oracle, Sybase, mSql, MySQL, Solid, PostgresSQL, dBase, Informix, dbm, etc... en mode natif
      * Supporte également l'accès à toutes les BD qui proposent un pont ODBC
      * Moyen le plus simple (à part Java/JDBC) d'attaquer une BD Microsoft depuis Linux/Unix
      Exemple d'utilisation avec MySQL
      previoustopnext

      ...
      mysql_connect($hostname, $username, $password) or die("Connexion impossible");
      @mysql_select_db("$dbName") or die("Impossible d'accèder à la base $dbName");

      $query = "SELECT * FROM $usertable WHERE (annee LIKE 'ESSI3');
      $result = mysql_query($query);

      $number = mysql_numrows($result);

      i = 0;
      if ($number == 0) {
      print "<CENTER>

      Il n'y a aucun élève en ESSI3!</CENTER>";
      elseif ($number > 0) {
      $nom = mysql_result($result, $i, "nom");
      $email = mysql_result($result, $i, "email");

      print "Nom = $nom, email = $email
      ";
      i++;
      }

      ...

      Authentification HTTP
      previoustopnext

      <?php
      if(!isset($PHP_AUTH_USER)) {
      Header("WWW-Authenticate: Basic realm=\"My Realm\"");
      Header("HTTP/1.0 401 Unauthorized");
      echo "Texte affiché si l'utilisateur appuie sur le bouton Cancel";
      exit;
      } else {
      echo "Bonjour $PHP_AUTH_USER.

      ";
      echo "Vous avez un mot de passe égal à $PHP_AUTH_PW.

      ";
      }
      ?>

      Téléchargement de fichier avec PHP
      previoustopnext

      * Soit le formulaire HTML suivant :

      <FORM ENCTYPE="multipart/form-data" ACTION="PageTraiteUpload.php3" METHOD=POST>
      <INPUT TYPE="HIDDEN" name="MAX_FILE_SIZE" VALUE="1000">
      Fichier à envoyer : <INPUT NAME="NomFichier" TYPE="FILE">
      <INPUT TYPE="SUBMIT" VALUE="Uploader le fichier choisi">
      </FORM>

      Ce formulaire propose à l'utilisateur de séléctionner un fichier qu'il désire uploader sur un site. La page PageTraiteUpload.php3 va se charger du travail

      Script de téléchargement
      previoustopnext

      <?php
      echo "Nom du fichier temporaire où se trouve le fichier côté serveur : $NomFichier

      ";
      echo "Nom original du fichier côté client : $NomFichier_name

      ";
      echo "Taille du fichier uploadé : $NomFichier_size

      ";
      echo "Type MIME du fichier reçu : $NomFichier_type

      ";

      /* Copie du fichier stocké dans le répertoire temporaire vers sa destination */
      copy($NomFichier, "/u/I3S/buffa/uploads/$NomFichier_name");
      ?>


      * En effet le fichier uploadé arrive dans le répertoire temporaire du serveur...
      Support pour les cookies
      previoustopnext

      * Voir http://www.netscape.com/newsref/std/cookie_spec.html pour tout savoir sur les cookies !
      * Une page peut installer un cookie par appel à la fonction SetCookie() avant qu'elle n'affiche quelque chose sur la sortie standard (les cookies sont dans le HEADER http)

      SetCookie("TestCookie", "Test Value");
      SetCookie("TestCookie", $value, time()+3600); /* expire dans une heure */

      * Un cookie envoyé par le client sera récupéré sous la forme d'une variable dans la page Web

      echo $TestCookie;

      Manipulation d'expressions régulières
      previoustopnext

      * Puissantes fonctions de manipulation des expressions régulières (norme POSIX) : ereg, ereg_replace, eregi, eregi_replace, split

      ereg("abc", $string); /* vrai si $string contient abc */
      ereg("^abc", $string); /* vrai si abc au début de $string */
      ereg("abc$", $string); /* vrai si abc à la fin de $string */
      eregi("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT); /* Vrai si le navigateur utilisé est
      Netscape 2 ou 3, ou MSIE 3 */
      ereg_replace("^", "
      ", $string); /* insère
      au début de $string */

      ...
      Structures de base (1)
      previoustopnext

      * Basé sur des expressions, non typé

      function double($i) {
      return $i * 2;
      }

      $b = $a = 5;
      $c = $a++;
      $e = $d = ++$b;
      $f = double($d++);
      $g = double($++e);
      $h = $g += 10;

      Structures de base (2)
      previoustopnext

      * if..then..else, do..while, for, while, switch ressemblent à ceux du C, à part que les variables sont non typées

      for($i = 0; $i < 10; $i++) {
      echo $i;
      }

      * ordres include, require pour insèrer du code situé dans un fichier externe :

      include('fonctions.inc');

      Fonctions (1)
      previoustopnext

      * Fonctions standards

      function foo($arg1, $arg2, ... $argn) {
      echo "Exemple de fonction";
      return $valeur_retour;
      }

      Fonctions (2)
      previoustopnext

      * Fonctions possèdant une liste d'aguments (liste d'objets séparés par le caractère '.'), passage de paramètres par valeur, par référence

      // Passage de paramètres par référence

      function foo2(&$arg) {
      $arg .= " et voici la fin de la phrase...";
      }

      // Passage de paramètres par valeur
      function foo3($arg) {
      $arg .= " et voici la fin de la phrase...";
      }

      $str = "Ceci est le début de la phrase";
      foo3($str);
      echo $str; // Affiche "Ceci est le début de la phrase"

      foo2($str);
      echo $str; // Affiche "Ceci est le début de la phrase et voici la fin de la phrase"

      PHP orienté objet ???
      previoustopnext

      * Une classe est une collection de variable et de fonctions, un peu comme dans les langages par objets

      <?php
      class caddie {
      var $item; // tableau des item que l'on a dans le caddie

      // Ajoute $num articles de type $article_number au caddie
      function add_item($article_number, $num) {
      $this->items[$article_number] += $num;
      }

      }
      ?>

      $monCaddie = new caddie;
      $monCaddie->add_item("14", 2); // Ajoute deux articles de type 14 à mon caddie

      Fonctions prédéfinies (1)
      previoustopnext
      API incroyablement riche !!!! (527 pages le référence manual). On distingue plusieurs groupes de fonctions prédéfinies

      * Fonctions de manipulation de chaînes de caractères : AddSlashes, Chop, crypt, explode, htmlspecialchars, htmlentities, QuoteMetan rawurldecode, print, printf, sprintf, etc... 50 fonctions !
      * Fonctions de manipulation de variables : gettype, is_array, is_double, empty, doubleval, etc...
      * Fonctions de manipulation de tableaux et listes : array, array_walk, key, list, key, ksort, asort...
      * Fonctions de manipulation de dates, heures, calendriers : date, checkdate, gmdate, getdate, time, etc... API très riche !
      * Fonctions mathématiques : sin, cos, sqr, sqrt, number_format
      * Fonctions de gestion des expressions régulières : ereg, eregi, ereg_replace, eregi_replace, split
      Fonctions prédéfinies (2)
      previoustopnext

      * Fonctions de gestion des URLs : parse_url, urldecode, urlencode, etc...
      * Les fonctions spécifiques au serveur Apache : apache_lookup_uri, etc...
      * Fonctions de manipulation de fichiers et répertoires : dir, chdir, opendir, etc... copy, rename, chmod, chgrp, fopen, fclose, fgetc, fgets...
      * Fonctions de gestion de processus externes : system, exec, etc...
      * Fonctions relatives aux Bases de Données. Classées par type de BD supportée : dBase, dbm, MiniSQL, MySQL, Oracle... plus ODBC
      * Fonctions HTTP : setcookie, header
      Fonctions prédéfinies (3)
      previoustop

      * Fonctions de gestion/manipulation/génération d'images : ImageCreate, ImageColorTransparent, etc... API très riche. Possibilité de générer des boutons au vol avec surimpression de texte, etc...
      * Fonctions mail : mail pour envoyer un mail plus gestion complète du protocole IMAP, API de 50 fonctions...
      * Fonctions propres à PHP et à sa configuration : error_log, get_cfg_var, get_current_user, phpinfo, etc...
      * Fonctions diverses : eval, exit, serialize, unserialize, sleep, etc...
      * Fonctions réseau : fsockopen, gethostbyaddr, gethostbyname, etc...
      * Fonctions de support pourle format PDF : génération de fichiers PDF au vol : PDF_open, PDF_close, PDF_end_page, etc.. 60 fonctions !
      * Fonctions de gestion du protocole SNMP
      * Fonctions de compression/decompression : support pour gzip : gzope, gzread, etc...
      * Fonctions de support pour le langage XML : le parsing est implemente, mais pas la validation...

      :fgf

    2. #2
      the best m
      Guest

      Par défaut

      thank you very much :GDFFG

    3. #3
      X_badr-revolution_X
      Guest

      Par défaut

      vraiment trés trop fort en programmation :fgf

    4. #4
      AZKRI
      Guest

      Par défaut

      :fgf :fgf :fgf

      merci bpppppp

    5. #5
      babisimo
      Guest

      Par défaut

      Bon travail... :KKDS mais si ta des cours sur fichier ça serais bon :hyju

    6. #6
      StuR
      Guest

      Par défaut

      Pour le Php le meilleur référence reste tjr -> http://www.php.net/manual/fr/

    7. #7
      java76
      Guest

      Par défaut

      <echo>

    8. #8
      simoxby
      Guest

      Par défaut

      merci khoya

    9. #9
      Laura77
      Guest

      Par défaut beau sujet

      merci

    Discussions similaires

    1. Les meilleurs cours et tutoriels PHP : Pour débuter 1
      By webmaster in forum Forum Java script & PHP & XHTML & CSS
      Réponses: 7
      Dernier message: 26/05/2009, 11h56
    2. Le langage XML
      By x_octet in forum Forum Java script & PHP & XHTML & CSS
      Réponses: 3
      Dernier message: 10/03/2009, 09h12
    3. Les meilleurs cours et tutoriels PHP : Pour débuter 2
      By webmaster in forum Forum Java script & PHP & XHTML & CSS
      Réponses: 0
      Dernier message: 10/06/2008, 10h08
    4. Introduction au Visual Basic
      By x_octet in forum Visual Basic 6.0 & Pascal
      Réponses: 8
      Dernier message: 20/08/2007, 05h38
    5. Apprentissage du langage Vbscript ( Debutant et Expert )
      By AZKRI in forum Forum Visual Studio .Net
      Réponses: 11
      Dernier message: 02/05/2006, 09h12

    Règles de messages

    • You may not post new threads
    • You may not post replies
    • You may not post attachments
    • You may not edit your posts
    •