Page 1 sur 1

Capacités et limites de php (Lecture et écriture).

Posté : 17 avr. 2014, 13:40
par Eric06
Salut à tous,


Gros débutant dans le php, j'y ai eu recours dans le cadre de la confection de mon site en suivant des tutoriels. Néanmoins une fonction est manquante pour la bonne marche du dit site et je n'ai malheureusement pas trouvé de tutoriels correspondant: je ne sais même pas si ce que je veux faire est possible. C'est pour cette raison que j'ai recours à l'aide de la communauté de phpfrance.

Je vous explique la situation.
Le site que je code est un site participatif permettant aux visiteurs d'entrer des données dans des formulaires. Ces données une fois envoyées, sont stockées dans un dossier spécifique sous la forme d'un fichier texte unique pour chaque contribution. Ces données sont ensuite récupérées par votre serviteur afin de remplir des pages php qui sont ensuite incorporées dans le site. Ceci dit, l'opération est fastidieuse quant elle est faite manuellement et j'aimerais automatiser ce processus autant que possible. Je voudrais donc connaitre les capacités de php dans ce domaine.

J'aimerais coder une page qui exécute les actions suivantes:
- Ouvrir le premier fichier d'un dossier spécifique (Celui contenant ces fichiers txt).
- Récupérer les données à l'intérieur selon des modalités fixes (Va à telle ligne, à tel endroit de la ligne, copie les données jusqu'au bout de la ligne, crée une variable contenant les données).
- Colle les variables récupérées dans un fichier php, crée pour l'occasion dans un dossier spécifique (Celui contenant toutes les pages php).
- Supprime le fichier txt qui à été traité.
- Ouvre le fichier txt suivant dans le dossier.
- Boucle jusqu'a ce qu'il n'y ait plus de fichiers dans le dossier.

Ce qui me permettrait d'automatiser la conversion de fichier texte à fichier php. A partir de là, si tout ceci est possible, je devrais aussi pouvoir automatiser également l'insertion de la page php dans le site (En ouvrant le fichier php servant de listing des pages et en indiquant d'ajouter telle ligne à tel endroit, accompagnée d'une balise html "<a href>").

Mes questions sont les suivantes:
Est-ce possible ? (Comme vous avez pu le comprendre, j'ai du me servir de fopen, fwrite et fclose pour créer des fichiers txt à partir des formulaires, donc je suppose qu'il y a d'autres balises que je ne connais pas qui rendent possible ce que je veux faire)
Est-ce désirable ? (Niveau efficacité, fiabilité, etc)
Si oui est-ce vous avez un tutorial, des conseils ?
Si non y'a-il une autre méthode qui vous semblerait plus intéressante ? Ou avez vous des suggestions ? Ce serait très dur pour moi d'apprendre le C++ m'voyez. :)


En espérant avoir été clair et vous remerciant tous par avance de votre soutien,
Eric.

Re: Capacités et limites de php (Lecture et écriture).

Posté : 17 avr. 2014, 13:58
par morganK
Y a-t-il un raison pour laquelle tu n'utilises pas une base de données (mySQL par exemple) ??

Re: Capacités et limites de php (Lecture et écriture).

Posté : 17 avr. 2014, 15:28
par moogli
salut,

pour écrire dans un fichier tu peux aussi utiliser file_put_contents => envoie d'une chaîne entière dans un fichier en une seule fois.

Pour lire file_get_contents => lit le fichier complet das une variable.

pour la lecture d'une répertoire je te conseil le DirectoryIterator

lit bien la doc, au final c'est assez pratique à utiliser.

coté limite, celle qui t'intéresse le plus c'est la taille du fichier.
Php à une taille mémoire maximal (qui ne pourra jamais dépasser) et cette taille conditionne donc la taille maximal du fichier que tu pourras traiter (donc par exemple file_get_contents sur un fichier 500Mo tu oublis :) ).
Dans ce cas utiliser ta façon de faire est une bonne idée.

pour la lecture de fichier texte tu peux aussi utiliser la fonction file qui va te fournir un tableau avec une ligne du fichier par ligne de tableau (super pratique quand tu connais la ligne qui t’intéresse et que le fichier n'est pas trop gros.

voila un tas d'info un peu en vrac qui devrait t'aider à faire ce que tu souhaites.
Si tu as des question sur l'utilisation pas d'hésitation utilise le forum (autre message pour simplifier la réutilisation ;) ).

je me questionne aussi : pourquoi ne pas utiliser un SGBD (pas forcément mysql, sqlite pourrait faire l'affaire ;) ) ?
Tu pourrais, au traitement du formulaire, tout mettre comme il faut dans la base et ensuite afficher ce qu'il y a dedans.

@+

Re: Capacités et limites de php (Lecture et écriture).

Posté : 17 avr. 2014, 15:55
par Eric06
Coucou à vous deux,

Je veux en effet tout faire en pur Html-Css avec une touche de php (c'est à dire la partie que je viens de décrire), sans base de donnée ou autres JavaScript.
C'est pour des raisons de performance: D'après ce que j'ai compris, une base de données est constamment sollicitée par les utilisateurs, répondant à leurs requêtes et alourdissant d'autant le serveur. Si j'utilise la méthode que j'espère possible, les pages seront statiques au lieu de "requèter" le serveur pour fabriquer les pages à la volée. Je ne fais que répéter comme un perroquet ce qu'un ami ingénieur m'a dit... 8-|

Merci beaucoup pour ce message "urlé" moogli, je vais faire des test et suivre la documentation. D'après ce que je comprend de tes explications c'est donc possible !
Php à une taille mémoire maximal
Je ne suis normalement pas concerné par cette taille limite de 16mo que j'ai croisée dans le cas d'upload de fichiers. La taille maximale d'un fichier php dans mon cas est d'environ 20ko.


En revanche excuse moi, je n'ai pas du bien comprendre toutes les implications des balises que tu m'as donné. Car je ne saisis pas comment placer mon curseur pour la lecture du fichier (Pour l'écriture, c'est simple puisque les données contenues dans les variables créées pour cette occasion vont aller se coller à l'endroit où j'ai indiqué les variables dans le fichier php qui sert de base).

Mon fichier se présente ainsi:
Nom:Dupont
Prénom:Saucisse
Lieu:Disneyland
Aime:Les pommes
Les poires
Le raisin
Religion:Pastafarisme
Je ne dois pas prendre en compte: "Nom, Prénom, Aime et Religion" dans mon exemple car ils sont déjà mis en forme dans le fichier php censé recevoir ces informations. Y'a-il une fonction pour dire: "Met le curseur à tel endroit dans la ligne" ? Si non, je suis donc obligé de supprimer ces entrées ?
Si tu as des question sur l'utilisation pas d'hésitation utilise le forum (autre message pour simplifier la réutilisation ;) ).
C'est entendu, merci ! 8-)

Re: Capacités et limites de php (Lecture et écriture).

Posté : 18 avr. 2014, 17:05
par moogli
donc a partir de ton exemple de fichier
Nom:Dupont
Prénom:Saucisse
Lieu:Disneyland
Aime:Les pommes
Les poires
Le raisin
Religion:Pastafarisme
j'utiliserais file qui va fournir un tableau avec une ligne du fichier par éléments du tableau (dan l'exemple le tableau aura 7 lignes.

il y a plusieurs possibilités pour traiter ce fichier.
La première c'est de lire ligne a ligne (par exemple utiliser foreach pour parcourir le tableau) et voir ce que l'on faire des données*.
ce n'est pas pratique car il va falloir ajouter des règles de gestion dans la boucle pour savoir où tu en est.

la solution que je te recommande c'est d'aller prendre directement la ligne qui t'intéresse.

pour récupérer les données, utilise simplement substret strpos
strpos va te permettre de savoir où ce trouve le premier ":" et prendre ce qu'il y a après.

pour la partie "Aime", il faut le faire sur cette ligne, pour les autres il faut juste prendre les données de la ligne "aime" jusqu’à l'avant dernière ligne du tableau (taille -1).

@+

Re: Capacités et limites de php (Lecture et écriture).

Posté : 20 avr. 2014, 11:04
par Eric06
Re salut,

Ca me paraît également très clair ! Le soucis principal une fois comprise la nomenclature d'un langage, c'est de connaître les balises afin d'utiliser celle qui est la mieux adaptée à chaque cas...
Alors merci beaucoup moogli d'avoir justement pris le temps de tout me détailler: je vais suivre tes conseils à la lettre. Il se trouve que personne dans mon entourage n'est capable de m'aider et tu as remplis ce rôle à merveille.

J'espère que tes posts seront utiles à d'autres. En attendant mon problème est résolu. Longue vie à Php France !

@+
Eric06.

Re: Capacités et limites de php (Lecture et écriture).

Posté : 20 avr. 2014, 17:21
par moogli
de rien,

pour ton prochain message résolus pense à cliquer sur le bouton vers "marquer le sujet comme résolus" a côté du titre (je le fait pour toi pour celui ci).


@+