Accueil » Articles » Développez des sites web dynamiques avec PhP et MySQL [Tuto en cours]

Développez des sites web dynamiques avec PhP et MySQL [Tuto en cours]

OPERATIONS SUR LES FICHIERS EN PHP

En PhP, nous pourrons avoir recours aux fichiers pour effectuer différentes tâches, notamment lorsque l’on veut stocker définitivement une information sur notre serveur.

En effet, les variables, bien que plus simples à prendre en main, ne permettent de stocker que temporairement une information.

PhP possède plusieurs fonctions permettant de créer, de lire, d’éditer ou de fermer des fichiers. Nous allons passer en revue ces différentes fonctions dans ce chapitre.

Toutefois notez que dans la plupart des cas il est plus pertinent d’utiliser les bases de données que les fichiers.

Ouvrir ou créer un fichier

Nous allons déjà commencer par créer un fichier texte (avec extension .txt donc). Vous pouvez mettre le texte que vous voulez dans ce fichier.

Pour ma part, je vais me contenter de copier coller une définition du PhP issue du site Wikipedia. J’appellerai ce fichier « definition-php.txt » :

On cree un fichier texte

Pour ouvrir notre fichier à l’intérieur d’une page PhP, nous allons utiliser la fonction fopen(), abréviation de « file open ».

Cette fonction a besoin de deux arguments pour fonctionner : le premier contient le nom du fichier à ouvrir et le deuxième correspond au mode d’ouverture de notre fichier comme ceci :

Utilisation de fopen() pour créer ou ouvrir un fichier en PHP

Lorsque l’on ouvre un fichier avec fopen(), la fonction va nous renvoyer une information que nous allons toujours stocker dans une variable. Cela nous servira à effectuer différentes opérations sur notre fichier par la suite, comme fermer le fichier.

Attention : ici, nous n’avons fait qu’ouvrir le fichier dans notre code PhP, nous n’avons pas encore demandé à le lire !

Concernant les modes d’ouverture d’un fichier, il en existe huit différents :

Les différentes modes d'ouverture d'un fichier en PHP

Fermer un fichier

Pour fermer un fichier, nous allons cette fois utiliser la fonction fclose(). Cette fonction va prendre comme unique argument la variable dans laquelle on a stocké les informations renvoyées par la fonction fopen().

Cette fonction s’utilise très simplement, comme ceci :

On utilise flcose pour fermer un fichier en PHP

Lire un fichier

Pour lire un fichier, la méthode la plus simple est d’utiliser la fonction fread(). Cette fonction prend deux paramètres : le premier correspond au fichier à lire, et le second spécifie le maximum de bytes qui doivent être lus.

On peut ensuite tout simplement utiliser l’instruction echo pour retourner le résultat de fread(). On peut également stocker le résultat dans une variable et echo cette variable si l’on souhaite pouvoir s’en resservir par la suite.

On peut utiliser fread pour lire tout un fichier en PHP

Notre fichier est bien lu grace à fread()

On peut également utiliser la fonction fgets() pour lire dans un fichier. Cette fonction va lire un fichier ligne par ligne, donc si votre fichier fait plusieurs lignes et que vous désirez le lire entièrement, vous devrez utiliser une boucle ou une condition.

fgets permet de lire un fichier ligne par ligne en PHP

La premiere ligne de notre fichier est lue grace a fgets

On peut lire un fichier ligne par ligne jusqu’au bout assez simplement en utilisant une condition avec la fontion feof() qui vérifie lorsque la fin du fichier (End Of File) est atteinte. On s’y prendrait comme cela :

On peut utiliser une condition et feof() avec fgets() pour lire tout un fichier ligne par ligne en PHP

Que nous dit cette condition while ? On utilise un point d’exclamation au début qui signifie la négation.

Cette condition va donc echo le fichier definition-php.txt ligne par ligne tant que la fin du fichier n’est pas atteinte. Vous pouvez la tester, ça fonctionne !

Finalement, il existe une troisième fonction nous permettant de lire un fichier : la fonction fgetc(). Cette fonction va lire un fichier caractère par caractère. En pratique, on ne l’utilisera pas souvent car elle n’a pas de réel avantage par rapport aux deux autres présentées ci-dessus.

La place du curseur en PhP

Les plus curieux d’entre vous devraient déjà s’être posés la question : où est placé notre curseur lorsqu’on ouvre ou écrit dans un fichier ?

Le curseur PhP correspond à l’endroit où va être exécuté votre prochaine commande en PhP.

Voici un rapide résumé d’où se trouve le curseur après chaque commande utilisée en PhP, afin que vous sachiez où vous en êtes :

Il est indispensable de savoir où se situe notre curseur pour modifier un fichier en PHP

Pour changer la position du curseur, vous devez utiliser la fonction fseek(). Cette fonction prend deux arguments : le fichier pour lequel on doit modifier la position du curseur, et la nouvelle position voulue en bytes.

Notez que si vous avez ouvert votre fichier avec le mode a ou a+, les données ajoutées par la suite seront toujours ajoutées à la fin du fichier, même si vous utilisez fseek().

Ecrire dans un fichier

Pour écrire dans un fichier, vous devez au préalable vous assurer d’avoir les permissions nécessaires.

Cela ne devrait pas poser de problème lorsque l’on travaille en local, c’est à dire sur nos propres machines, mais vous devrez certainement régler le CHMOD sur 777 si vous travaillez en production, c’est à dire sur serveur web.

Le CHMOD, c’est tout simplement les droits d’accès pour lecture, écriture et modification à différents groupes d’utilisateurs à un fichier. Je n’en dirai pas plus car cela ne va pas nous être utile pour le moment, mais n’hésitez pas à vous renseigner si vous jugez cela nécessaire.

Pour écrire dans un fichier, nous allons utiliser la fonction fwrite(). Cette fonction utilise deux arguments : le premier correspond au fichier dans lequel écrire tandis que le second va être le texte à écrire.

Cette fonction s’utilise de la manière suivante :

On va utiliser frite() pour écrire dans un fichier en PHP

Et voilà le résultat après un rafraichissement de notre page definition-php.txt :

Nous avons bien écrit dans notre fichier grace à fwrite()

Attention : notez bien que lorsque vous écrivez au début d’un fichier ou au début d’une ligne, votre nouveau texte va venir écraser l’ancien présent à cette place. Vous n’écrirez pas devant le texte, mais à la place de l’ancien texte.

16 commentaires

  1. abdelmalek derouich

    merci infiniment pour ces cours, j’été vraiment nul et maintenant je commence à n’avancer dans la création des sites WEB en utilisant le HTML, le CSS et le PHP et c’est grâce à vos cours minutieusement expliqués.

  2. bonjours ,je suis encore un petit peux débutant dans le codage , j’aimerais faire une page d’inscription et une de connexion en php et mysql je dispose d’une base de donnée . merci d’avance pour votre aide .
    ps : j’adore vos vidéo =)

  3. Bocomba William Edouard

    bonjour,

    je suis William un de vos disciple Abidjan. En lisant le code source du site pierre-girraud.fr j’ai constater un bon nombre de balise link et de balise meta. Et je me pose la question de savoir a quoi elle servent? Par ailleurs je suis impatient de savourer la suite du cour sur php et mysql. Merci d’avance et surtout merci pour tout.

    Amicalement

    William

  4. Bonjour,

    Je te remercie de tout mon cœur Pierre!
    Tu consacre ton temps à partager des choses meilleures.
    Je suis débutant mais je croix de devenir pro, tes tutos sont claires et faciles à comprendre.
    Merci infiniement

  5. Salut, c’est vraiment génial ce que tu fais mais j’ai encore un problème, je n’arrive pas a créer un formulaire pour envoyer un mail ou pouvoir communiquez avec moi (pas un bloc mais vraiment une page de contact).
    Merci de bien vouloir m’aider…

    • Bonjour,

      J’explique déjà tout cela dans mes cours HTML / CSS et PhP… Je ne peux donc que vous conseillez de revoir les parties consacrées à cela (lien pour envoyer un fichier / un mail et partie formulaire HTML et PhP).

      Bonne continuation,
      Pierre

  6. Vous etes genial, j’ai vu vos cours sur youtube et votre adresses qui ma poussé avenir sur votre site. Mr pierre je suis un petit zero de la programmation mais suis pas mal j’aimerai vous assistez dans vos taches pour me former…! merci pour les cours suis content

  7. je voudrais que tu m’explique un peut comment fonctionne les fonction static en phph

  8. bonjour
    merci pour ce cours mais je ne vois pas la partie base de données et pourtant l’intitulé c’est cours complet!!!!

  9. Salut Pierre Giraud,

    Je viens de regarder le tuto sur HTML et CSS, c’est magnifique !!!
    Maintenant j’aimerais creer des sites dynamiques avec PHP MySQL.
    Pourriez vous m’aider s’il vous plait. Merci de votre aide en envoyant des tuto tres tres interessant.

Répondre

Votre adresse email ne sera pas publiée. Les champs obligatoires sont marqués d'une étoile *

*