Atelier Php Semaine 2012-18

Remise en jambes

Je ne sais pas dans quel état de réceptivité vous serez, mais pour ma part après cette trop longue interruption de nos activités, j'ai un mal de chien à me remettre à php.

J'ai même du mal me rappeller ce que nous avions fait lors de notre dernier atelier qui remonte, souvenez-vous en, au lundi 2 avril, une éternité!

Une remise en jambes s'impose donc tant pour vous que pour moi. Je vous propose donc de reprendre en plus simple l'exercice sur la lecture d'un fichier.

La Lecture

lecture des données contenues dans le fichier StockSem18.php

L'adresse du fichier de stockage des données sera placée dans la variable $Fichier.

Nous utiliserons successivement les fonctions :

  • fopen( Fichier , Mode ), qui crée un pointeur de système de fichiers de type Ressource.
    • Nous utiliserons le mode "r" pour une ouverture en lecture seule.
    • Nous placerons la Ressource ouverte par fopen dans la variable $OuvFich.
  • fread(Ressource , Longueur ), qui lit le contenu du fichier.
    • Pour Ressource nous utiliserons la variable $OuvFich qui vient d'être créée.
    • Pour Longueur nous utiliserons la variable filesize($Fichier).
    • Nous placerons les données lues dans la variable $Data.
  • fclose( Ressource ),qui ferme le fichier de données.
    • la valeur de Ressource étant toujours $OuvFich.

Nous avions testé la lecture avec les fichiers StockSem14.php, StockSem14.html et StockSem14.tcxt. Nous simplifierons la procédure en utilisant simplement le fichier StockSem18.php, qui sera donc la valeur que nous atribuerons à la variable $Fichier.

Pour la lecture, lors de l'atelier précédent nous avions comparé les fonctions fread( Ressource , Longueur ) , fgets( Ressource , Longueur ) et file($Fichier).

Il me semble que l'expérience concluait en constatant que la fonction la plus simple d'usage était fread( Ressource , Longueur ).

Pour notre remise en jambe nous attaquerons donc avec la fonction fread.

Par ailleurs, l'objet de cet atelier est la lecture et l'écriture des données saisies par un formulaire, le traitement de ces données ayant été vu au cours des ateliers précédents.

En conséquence, le code du traitement des données vous est gracieusement offert par la maison et ne sera que rappelé brièvement.

L'écriture

Écriture des données saisies dans le fichier StockSem18.php

Pour l'écriture, tout comme pour la lecture il faut ouvrir le fichier de données avec la fonction fopen( Fichier , Mode ).

Pour éviter les confusions avec l'exercice précédent sur la lecture, nous placerons la Ressource ouverte par fopen dans la variable $OuvFich2.

Comme en lecture il faut bien entendu,fermer le fichier de données à la fin de l'opération avec la fonction fclose( Ressource ).

Les nouvelles données, compilées dans la variable $Ligne seront écrites à la fin du fichier StockSem18.php à l'aide des fonctions fputs(Ressource, Données) ou fwrite(Ressource, Données), qui sont équivalentes.

La syntaxe sera donc fputs($OuvFich2,$Ligne) ou fwrite($OuvFich2,$Ligne).

Si la variable $_POST['Validez'] est crée par validation du formulaire, Affichage provisoire de $Ligne avec ses balises html

Affichage provisoire de $Ligne avec ses balises html

<tr> <td></td><td></td><td></td><td>/ /</td><td></td><td></td><td></td><td></td></tr>

L'Affichage

Affichage provisoire de $Data avec ses balises html

<tr><td>Mme</td><td>PIAF</td><td>EDITH</td><td>19/12/1915</td><td>100</td><td>Rue De Belleville</td><td>75020   PARIS</td><td>Panam, Panam, Panam</td></tr> <tr><td>Mr</td><td>DUCK</td><td>DONALD</td><td>14/04/1944</td><td>44</td><td>Rue De La Mare</td><td>66240   SAINT ESTEVE</td><td>Coin, Coin, Coin</td></tr> <tr><td>Mme</td><td>BARDOT</td><td>Brigitte</td><td>28/09/1934</td><td>SN</td><td>La madrague</td><td>83300 SAINT TROPEZ</td><td>TAGADA Pouet Pouet</td></tr> <tr><td>Mr</td><td>TRENET</td><td>CHARLES</td><td>18/05/1913</td><td>2</td><td>Rue Anatole France</td><td>11200   NARBONNE</td><td>La Meeereu</td></tr> <tr> <td>Mme</td><td>COUSTAUD</td><td>IRÈNE</td><td>16/12/1930</td><td>45</td><td>Flots</td><td>66000   PERPIGNAN</td><td>Coucou</td></tr> <tr> <td>Mr</td><td>ALBALAT</td><td>ROBERTO</td><td>/01/1931</td><td>55</td><td>50 Voleurs</td><td>66240   SAINT ESTEVE</td><td>ça alors !</td></tr><tr> <td>Mme</td><td>REDOULES</td><td>SYLVIE</td><td>10/10/1940</td><td>10</td><td>Boileau</td><td>66240   SAINT ESTEVE</td><td>bonjour</td></tr><tr> <td>Mr</td><td>FROGET</td><td>FRéDéRIC</td><td>09/09/1939</td><td>9</td><td>Montesquieu</td><td>66240   SAINT ESTEVE</td><td>à bientôt</td></tr><tr> <td>Mr</td><td>MELANCHON</td><td>JEAN-LUC</td><td>03/03/1933</td><td>3</td><td>Trente-trois</td><td>66400   CERET</td><td>trois</td></tr><tr> <td>66700   ARGELES sur MER</td><td>VALIDEZ VOS SAISIES</td><td>MME</td><td>Marden/09/XwkCvr0CmaF</td><td>Réinitialisation</td><td>I Much Prefer Iniatmorfve Articles Like This To That High Brow Literature.</td><td>04</td><td>vs2VV66BpJm</td></tr>

Affichage de $Data sous forme d'un tableau

GenreNomPrénomDate de
Naiss.
NumRueCode Postal
Ville
Message
MmePIAFEDITH19/12/1915100Rue De Belleville75020   PARISPanam, Panam, Panam
MrDUCKDONALD14/04/194444Rue De La Mare66240   SAINT ESTEVECoin, Coin, Coin
MmeBARDOTBrigitte28/09/1934SNLa madrague83300 SAINT TROPEZTAGADA Pouet Pouet
MrTRENETCHARLES18/05/19132Rue Anatole France11200   NARBONNELa Meeereu
MmeCOUSTAUDIRÈNE16/12/193045Flots66000   PERPIGNANCoucou
MrALBALATROBERTO/01/19315550 Voleurs66240   SAINT ESTEVEça alors !
MmeREDOULESSYLVIE10/10/194010Boileau66240   SAINT ESTEVEbonjour
MrFROGETFRéDéRIC09/09/19399Montesquieu66240   SAINT ESTEVEà bientôt
MrMELANCHONJEAN-LUC03/03/19333Trente-trois66400   CERETtrois
66700   ARGELES sur MERVALIDEZ VOS SAISIESMMEMarden/09/XwkCvr0CmaFRéinitialisationI Much Prefer Iniatmorfve Articles Like This To That High Brow Literature.04vs2VV66BpJm

Par Jean-Louis BARTHE, retraité actif

Haut de Page