\n"); echo "Vous etes le ".$nbvisites."ieme visiteurs"; // 7.On affiche le compteur à l'écran ?>
  1. Les variables

  2. Contrairement au C, en PHP toutes les variables sont préfixées par un $. Notre premier sript PHP, affectant une variable Hello World Pourrait donc s'écrire comme suit:

    Le code

    <?
    $toto="Hello World";
    $titi=5
    echo "La valeur de toto est :".$toto.$titi;
    ?>
    

    Resultat :

    La valeur de toto est : Hello World5

    Notez que les instructions se terminent par un ";". De plus les variables peuvent etre utilisées sans déclaration préalable.

  3. L'instruction if

  4. L'instruction If se structure classiquement par
    if(condition)
    {
    instruction 1
    }
    else
    {
    instruction 2
    }
    
    La partie else du if étant facultative. L'exemple suivant effectue un branchement en fonction de la valeur de $i.
    if($i < 0)
    echo $i." est inferieur à 0";
    else
    echo $i." est supérieur ou égal à 0";
    
  5. L'instruction switch

  6. Tout comme en C, l'instruction switch compare la valeur d'une expression à une série de constantes et effectue la commande associée à la constante égale à l'instruction. On peut également fournir une instruction default pour le cas où aucune constante n'est égale à l'expression.
    <?php
    $nb1=4;
    $nb2=5;
    switch($nb1*$nb2)
    {
    case 20:
    echo $nb1."*".$nb2."=20";
    break;
    case 21:
    echo $nb1."*".$nb2."=21";
    break;
    default:
    echo "Je ne sais pas multiplier";
    }
    ?>
    

    Resultat :

    4*5=20
  7. Les boucles

  8. Il existe en PHP trois type de boucles.
    1. les boucles pour de syntaxe :
    2. for(init;test;instr)
        {
        instructions;
        }
      
    3. les boucles while
    4. while(condition)
        {
        instructions;
        }
      
    5. les boucles do while
    6. do
        {
        instructions
        }
      while(conditions)
      
    Voici 3 exemples de boucles pour déterminer si un nombre est premier. Le symbole % représente l'opération modulo. :
  9. Les tableaux

  10. La façon la plus simple de creer un tableau est d'utiliser la fonction array: Le code suivant :
        $tab=array(6,5,4,3);
    
    crée un tableau dont les indices 1, 2, 3 et 4 valent respectivement 6, 5,4 et 3.

    On peut également créer un tableau sans affecter tous les indices. L'exemple suivant crée un tableau dont les indices 1,3, 5 et 7 sont respectivment assignés aux valeurs 6,5,4, et 3. Les indices manquant étant non affectés.

    $tab=array(1=>6,3=>5,5=>4,7=>3); 
    Le symbole à la gauche du signe => est appelé la clé tandis que le symbole à la droite correspond à la valeur. La syntaxe générale est donc : clé=>valeur.

    Les clés ne sont pas forcément des chiffres, mais peuvent représenter n'importe quel symbole. L'exemple suivant initialise un tableau dont les indices correspondent au nom, prénom et adresse d'une personne.

    $tab=array("Nom"=>"Dupont","Prenom"=>"Joel","adresse"=>"Caen");
    print_r($tab)
    echo "<br/>Votre nom :".$tab["Nom"];
     

    Résultat

    Array ( [Nom] => Dupont [Prenom] => Joel [adresse] => Caen )
    Votre nom :Dupont

    Enfin, il est possible d'affecter dynamiquement des valeurs d'un tableau à des indices qui n'ont pas été initialisés durant la création. L'exemple suivant ajoute la clé "nom" à un tableau précédement allouée et ajoute une valeur en queue de tableau.

    $tab=array(5,6,7);
    $tab["Nom"]="Dupont";
    $tab[]=8;
    print "<h3> Résultat</h3>";print_r($tab);
         echo "<br/>Votre nom :".$tab["Nom"];
    

    Résultat

    Array ( [0] => 5 [1] => 6 [2] => 7 [Nom] => Dupont [3] => 8 )
    Votre nom :Dupont
  11. Récupération des variables depuis un formulaire

  12. Un formulaire transmet au script php une variable de la forme :
    var1=valeur1&var2=valeur2...
    
    La récupération de valeur des différentes variables à l'intérieur du script PHP se fait en utilisant le tableau associatif $_POST: $_POST['var1'] vaut la valeur de la variable var1 transmis au script PHP.

    voici un exemple de formulaire transmettant une valeur à un script PHP:

    <form method="POST" ACTION="hello.php">
    <p> Entrez vore nom</p>
    <input type="text" name="nom">
    <input type="submit" value="Envoyez">
    </form>
    
    et le code php de la page Hello.php
    echo "<center><h1>Bonjour ".$_POST['nom']."</h1></center>"
    

    Entrez vore nom

  13. Intérogation d'une base PostgreSQL

  14. Les fonctions php permettant d'accéder à une base Postgres sont nombreuses et correspondent généralement aux fonctions disponibles dans libpq. Les principales fonctions sont :

    resource pg_connect ( string connection_string [, int connect_type] )
    Cette fonction ouvre une connection sur une base PostgreSQL. Les paramètres de la connextion sont fournis dans la chaine passée en paramètre suivant le meme schémat que la fonction C PQconnectdb. Une connexion classique se fera sous la forme :
    $conn=pg_connect("host=val1 dbname=val2 user=val3 password=val4");
    
    resource pg_query ( resource connection, string query )
    Cette fonction permet d'envoyer une requete au serveur (en second argument). Le premier argument correspond à la connexion renvoyée par pg_connect. L'exemple suivant effectue une requete sur la table auteurs.
    $query=pg_result($conn,"select nom_auteur,prenom_auteur from auteurs");
    
    bool pg_free_result ( resource result )
    Libère l'espace mémoire associé à une requete
    int pg_num_rows ( resource result )
    Donne le nombre de lignes renvoyées par la requete passée en argument.
    int pg_num_fields ( resource result )
    Donne le nombre de colonnes renvoyées par la requete passée en argument.
    string pg_field_name ( resource result, int field_number )
    Donne le nom de la ieme colonne de la requete. L'identificateur de la requete est passé en premier argument tandis que le numéro de la colonne correspond au second argument.
    string pg_fetch_result ( resource result, int row, mixed field )
    Renvoie une valeur d'une requete située à une ligne et une colonne particulière. L'identificateur de la requete consitue le premier argument, le numéro de la ligne le second argument. Le troisième argument peut etre égal au numéro ou au nom de la colonne.
    L'exemple suivant effectue une requete sur la table auteur d'une base de donnée et renvoie tous les auteurs dont le nom est similaire au nom passé en argument.
    $dbconn=pg_connect("host=postgres dbname=livres user=binomexx") or die ("Connexion Impossible".pg_last_error());
    $requete="select nom_auteur,prenom_auteur from auteurs where nom_auteur like '%";
    $requete.=$_POST[nom]."%'";
    $query=pg_query($dbconn,$requete);
    if(!$query)
      {
        echo "Query error :".$requete;
        exit;
      }
    
    echo "<table border=\"1px\">";
    echo "<tr>";
    for($i=0;$i<pg_num_fields($query);$i++)
      echo "<td>".pg_field_name($query,$i)."</td>";
    echo "</tr>";
    for($i=0;$i<pg_num_rows($query);$i++)
      {
        echo "<tr>";
        for($j=0;$j<pg_num_fields($query);$j++)
          {
    	echo "<td>".pg_fetch_result($query,$i,$j)."</td>";
          }
        echo "</tr>";
      }
    echo "</table>";
    pg_free_result($query);
    pg_close($dbconn);
    

    Résultat :

    Entrez un bout du nom de l'auteur :

  15. Les entrées sorties

  16. Les fonctions php permettant de manipuler les fichiers sont également fort nombreuses et assez similaire au C. Nous nous limiterons ici aux principales fonctions:
    resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )
    ouvre un descripteur sur un fichier dont le nom est passé en premier argument. Le second argument permet de fixer le mode d'ouverture :
    r
    ouverure seulement
    r+
    ouverure/ecriture
    w
    ecriture seulement
    w+
    lecture/ecriture. Le fichier est remis à 0.
    a
    ecriture. Le descripteur de fichier se trouve à la fin du fichier
    a+
    ecriture. Le descripteur de fichier se trouve à la fin du fichier. Si le fichier n'existe pas on essaie de le créer
    x
    crée le fichier et l'ouvre en écriture
    x+
    crée le fichier et l'ouvre en écriture. Échoue si le fichier existe déjà.
    string fgets ( resource handle [, int length] )
    lie une chaine de caractère jusqu'a ce qu'il rencontre un retour chariot ou qu'il dépasse le nombre maximum de caractère à lire (spécifié en second argument).
    int fseek ( resource handle, int offset [, int whence] )
    déplace le pointeur courrant dans le fichier de nb octets (second argument). Le déplacement est par défaut pris par rapport au début du fichier. Si on passe un troisième argument égal à SEEK_CUR ou SEEK_END le déplacement sera calculé respectivement par rapport à la position courante et à la fin du fichier.
    int fwrite ( resource handle, string string [, int length] )
    Écris la chaine passée en second argument dans le fichier. Le dernier argument permet de spécifier le nombre max de caractères à écrire.
    bool is_dir ( string filename )
    indique si le nom passé en argument correspond à un répertoire
    bool is_file ( string filename )
    indique si le nom passé en argument correspond à un fichier
  17. Les Cookies

  18. Contrairement à ce que leurs nom pourrait laisser penser les cookies ne sont pas des gateaux mais des variables positionnées chez l'utilisateur. Un script php peut donc positionner une variable chez l'utilisateur et récupérer celle-ci lors d'un chargement ultérieur de la meme page. D'autres scripts peuvent également accéder au cookie si le script éméteur leur en à laisser le droit. La syntaxe générale de positionnement d'un cookie est :
    boolean setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]] )
    Les principaux paramètres sont le nom de la variable cookie (name), sa valeur (value) et sa date d'expiration. Les autres paramètres permettent essentiellement de définir les emplacements des scripts qui pourront accéder au cookie (path, domain).
    La récupération de la valeur des cookie se fait grace au tableau associatif $_COOKIE['name'] qui permet d'accéder à la valeur du cookie de nom name. FAITE ATTENTION au fait que le positionnement du COOKIE doit précéder toute balise html (en particulier le header). Les scripts php positionnant les cookies sont donc généralement placés en tete de fichier. Le script suivant permet d'indiquer à un utilisateur s'il a déjà visité la page depuis une heure.
    <?php
    if (!isset($_COOKIE['first_time']))
      {
        $first_time=true;
        setcookie ("first_time",false, time()+3600);
      }
    else
       $first_time=false;
    ?>
    <html><head><title> ma page</title></head>
    <body>
    <?
    if ($first_time)
    		    echo "bienvenu sur ma page";
    else
    		    echo "Encore vous !!";
    �?>
    </body></html>
    
  19. Pour aller plus loin