Fichier distant (http) : date de derniere modification

Fichier distant (http) : date de derniere modification - PHP - Programmation

Marsh Posté le 08-09-2002 à 23:25:33    

salut,
 
Je cherche une méthode pour déterminer la date de derniere modification d'un fichier .pdf distant sur http. Quelqu'un a une idée?
 
Une autre méthode serait de recupérer le fichier regulierement, et de le comparer avec le fichier n-1 récupéré. OK, mais je n'arrive pas a récupérer correctement le fichier pdf: quand je le stocke en local il n'est pas valide:
 

Code :
  1. <?
  2. $fp = fopen("http://www.site.com/lefichier.pdf","r" );
  3. if ($fp)
  4. {
  5. $fp2 = fopen("test.pdf","w" );   // fichier local
  6. while($donnees = fgets($fp,$taille))
  7. {
  8. fputs($fp2,$donnees);  // on ecrit le fichier dans test.pdf
  9. }
  10. }
  11. fclose($fp);
  12. fclose($fp2);
  13. ?>


 
Quelqu'un peu m'aider sur l'une des 2 méthodes?
 
Merci d'avance.


Message édité par yepyep le 08-09-2002 à 23:26:04
Reply

Marsh Posté le 08-09-2002 à 23:25:33   

Reply

Marsh Posté le 08-09-2002 à 23:29:20    

tu regardes du côté des headers http, tu as 'Last-modified' qui te donne l'info.
 
ou le ETag qui te donne (je crois) un hash.
 
ou le 'If-Modified-since' qui te renvoie un 304 (not modified) si le fichier n'a pas changé.

Reply

Marsh Posté le 08-09-2002 à 23:53:33    

Merci pour ces infos, mais tu peux me donner un exemple de script qui lit un header, par ce que je ne sais pas comment m'y prendre.
 
merci d'avance.
 

youdontcare a écrit a écrit :

tu regardes du côté des headers http, tu as 'Last-modified' qui te donne l'info.
 
ou le ETag qui te donne (je crois) un hash.
 
ou le 'If-Modified-since' qui te renvoie un 304 (not modified) si le fichier n'a pas changé.



Reply

Marsh Posté le 09-09-2002 à 00:03:22    

http://www.php.net/fsockopen
 
<?php
$fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "GET / HTTP/1.0\r\nHost: www.example.comrnrn" );
    while (!feof($fp)) {
        echo fgets ($fp,128);
    }
    fclose ($fp);
}
?>
 
ce que tu envoies :
* chaque header est terminé par un retour à la ligne (\r\n)
* pour terminer les headers, double retour à la ligne
 
ce que tu reçois
* pareil, retour à la ligne
* pareil, double retour
 
tu essayes le script, tu regardes ce qu'il envoit, tu affiches ce qu'il reçoit, etc.

Reply

Marsh Posté le 09-09-2002 à 09:08:32    

J'ai testé ce script, mais je n'arrive a le faire marcher correctement: cela ne marche que sur la age d'accueil, je n'arrive pas a faire la requete GET qui convient pour arriver sur le fichier (http://www.lesite.com/rep1/rep2/fic.pdf).
je faist un GET /rep1/rep2/fic.pdf , mais ca ne marche pas...
 
Quelqu'un peu m'aider?
 

youdontcare a écrit a écrit :

http://www.php.net/fsockopen
 
<?php
$fp = fsockopen ("www.example.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br>\n";
} else {
    fputs ($fp, "GET / HTTP/1.0\r\nHost: www.example.comrnrn" );
    while (!feof($fp)) {
        echo fgets ($fp,128);
    }
    fclose ($fp);
}
?>
 
ce que tu envoies :
* chaque header est terminé par un retour à la ligne (\r\n)
* pour terminer les headers, double retour à la ligne
 
ce que tu reçois
* pareil, retour à la ligne
* pareil, double retour
 
tu essayes le script, tu regardes ce qu'il envoit, tu affiches ce qu'il reçoit, etc.



Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed