Ecrire dans un fichier |
Créer et modifier un fichier |
|
 |
Dans de nombreux cas, il est intéressant d'écrire dans des fichiers plutôt que dans une base de données... C'est souvent plus souple et plus rapide d'accès ! On peut écrire dans un fichier .txt mais aussi, et là ça devient très intéressant, dans un fichier .html ou .asp ou .php !!! pour créer "à la volée" de nouvelles pages Web qui pourront être adressées directement !
|
Comment faire ?
En ASP, il faut qu'un dossier soit déprotégé en écriture (demandez à l'admin de votre hébergeur de le faire)
Ensuite
Créer un objet Scripting.FileSystemObject
<% Set FSO = _ Server.CreateObject("Scripting.FileSystemObject") %>
|
Récupérer le path long du dossier qui contient le fichier
<% dir = Server.MapPath("mon_dossier/") %>
|
Composer le chemin complet du fichier
<% Fnm = dir & "\mon_fichier.ext" %>
|
Attention au \
Créer le fichier l'ouvre en même temps !
<% set inF = FSO.CreateTextFile(Fnm) %>
|
ou l'ouvrir en mode écriture
<% set inF = FSO.OpenTextFile(Fnm,2,false) %>
|
soit enfin l'ouvrir en mode "append" écriture à la fin
<% set inF = FSO.OpenTextFile(Fnm,8,false) %>
|
Si true est mis à la place de false, un fichier est créé automatiquement s'il n'existe pas... alors gaffe !
Ensuite écrire simplement
ou écrire une ligne ajoute VbCrLf à la fin du texte
<% inF.writeLine texte %>
|
ou écrire quelques lignes vides
<% inF.writeBlankLines(5) %>
|
Enfin fermer le fichier
|
|
En PHP, il faut s'assurer que les droits en écriture ont été donnés au dossier (chmod ou via le logiciel FTP)
Ensuite
Définir le fichier qui nous intéresse
<? $Fnm = "mon_dossier/mon_fichier.ext"; ?>
|
Ouvrir le fichier en mode écriture créé si inexistant
<? $inF = fopen($Fnm,"w"); ?>
|
ou en mode "append" créé si inexistant
<? $inF = fopen($Fnm,"a"); ?>
|
ou en mode "mixte" lecture et écriture
<? $inF = fopen($Fnm,"r+"); ?>
|
Eventuellement positionner le pointeur
La position du pointeur est dans :
<? $ptr = ftell($inF); ?>
|
et est modifiable par :
<? $ptr = fseek($inF,$ptr-10); ?>
|
Ensuite écrire simplement
<? fwrite($inF,$texte); // ou fputs($inF,$texte); ?>
|
pour passer à la ligne, écrire \n
<? fputs($inF,$texte."\n"); ?>
|
Enfin fermer le fichier
|
Remarque
- En PHP, on peut écrire sur un serveur distant...
<? $inF = fopen("ftp://login:pass@www.site.com/www/mon_rep/mon_fichier.txt","w"); ?>
|
 | Application
Si vous avez bien assimilé cette fiche et les précédentes, vous devriez être en mesure de produire quelque chose comme cela ! sinon, les explications sont ici... |
Enjoy !
Didier le
28/08/2005 (426 902 hits) |
|
|