Détecter le contenu d'un fichier texte

Répondre
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
Bonjour,

j'aierais savoir comment faire pour détecter si un fichier texte est vide ou non.

J'aimerais créé un fichier .php qui s'ouvrira tout seul toutes les heures (grâce à webcron.org).

Ce ficheir php sera chargé de détecter si un fichier .txt est vide. si c'est le cas, il devra insérer dans celui-ci un mot qu j'aurais défini à l'avance dans une variable par exemple.
Ainsi le formulaire ne sera jamais vide plus d'une heure ;)

Mais je ne sais pas comment faire...

merci pour vos futures propositions ;)
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Ben un fichier vide possède 0 octet de contenu. Cela peut se vérifier avec un filesize ou bien un strlen.
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
ca m'écdlaire déjà un peu mais comment utiliser ces fonctions ? aurais-tu un petit exemple ?
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
  1. <?php
  2. if (filesize($fichier) == 0) echo 'le fichier est vide';  
  3. ?> 


Par exemple.
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
Imaginon donc, je met ceci ?

  1. <?php
  2. if (filesize(lien.txt) == 0) echo 'Test';  
  3. ?> 



Si oui, voici ce que j'obtiens :

Warning: filesize() [function.filesize]: Stat failed for lientxt (errno=2 - No such file or directory) in /mnt/109/sdb/8/1/raphlight/miniville2/2test.php on line 51
remplacement


comme si le point n'avait pas été pris en compte...
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
  1. <?php
  2. if (filesize('lien.txt') == 0) echo 'Test';  
  3. ?> 


(filesize prend une chaine de caractère en paramètre et non deux constantes PHP concaténées : faut lire la doc smiley)
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
OK, je ne savais pas :)

J'ai fait plusieurs essai pour que dès que ce ficheir est détecté comme vide, le mot "remplace" soit inscrit dedans mais ca ne fonctionne pas...

Voici mon code :

  1. <?php
  2.  
  3. if (filesize('lien.txt') == 0)  
  4.  
  5. {  
  6.  
  7. $fp = fopen ('lien.txt', 'w');  
  8. fseek ($fp, 0);  
  9. $nom_lien = remplace;  
  10. fputs ($fp, $nom_lien);  
  11. fclose ($fp);  
  12.  
  13. }  
  14.  
  15. ?>  


Qu'est ce qui ne va pas ?
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Ce qui ne va pas, c'est que tu utilises (probablement sans le savoir) une constante que tu n'as surement pas du déclarer : la constante "remplace".

Honnêtement, relis les cours de base du site, sinon, on ne va pas s'en sortir. Surtout sur les chaines de caractères et le typage.
raphlight
raphlight
Déconnecté
http://raphlight.free.fr/miniville2/
oups :S

euh...qu'est ce que le "typage" ?

Pour mon détectage de fichier ca marche parfaitement (j'ai simplement remplacé "remplace" par un autre mot :-) )

Merci beaucoup la globule :-D
Keika
Keika
Déconnecté
Le PHP --> C'est dur !
Ton probleme vient de la:

$nom_lien = remplace;

Verifie bien dans les cours comment faire pour inserer une chaine de caracteres dans une variable...
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Php