Aller au contenu

Date modif fichier distant


Sujets conseillés

Posté

Bonjour a tous,

Est il possible de savoir si il existe une fonction autre que lastmod pour connaitre la date de modification d un fichier sur un serveur distant sans avoir le login et pass du serveur en question ?

Et eventuellement la date de creation de la page mais ca je pense que c est impossible

Je vous remercie

Posté (modifié)

Bonjour,

Lors d'une requête HTTP (1.0 ou 1.1) le serveur peut renvoyer un champ "Last-Modified" qui te permet de obtenir la date de dernière modification déclarée par le document demandé. Ce n'est en aucun cas une source fiable (tout comme la date de modification que tu récupèrerais avec FTP).

Voici un script qui te permet de récupérer ce champ depuis PHP. Attention tu as besoin d'avoir la librairie CURL installé :

$modified = "";
function read_header($ch, $header)
{
  global $modified;
  $length = strlen($header);
  if(strstr($header, "Last-Modified:"))
  {
      $modified = substr($header, 15);
  }
  return $length;
}

function last_mod($remote_file)
{
  global $modified;
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $remote_file);
  curl_setopt($ch, CURLOPT_HEADER, 1);
  curl_setopt($ch, CURLOPT_NOBODY, 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'read_header');

  $headers = curl_exec ($ch);
  curl_close ($ch);
  return $modified;
}

echo last_mod("http://www.php.net/");

Source: http://www.php.net/curl , Commentaires des utilisateurs

Je répète que le serveur peut retourner ce champs, mais s'il n'est pas reseigné au moyen de header() ou par une balise <meta> dans le document rien ne l'oblige à fournir cette date. Je ne sais pas s'il est possible de forcer le serveur à envoyer la date de modification du fichier, mais je doute que ce soit utile, surtout lorsqu'il s'agit de sites dynamiques (le fichier du script ne change pas, mais le contenu présenté, lui change)...

PS: En l'occurence www.php.net semble renseigner correctement ce champ...

**EDIT** Personnelement je n'utiliserais pas par une variable globale ($modified), à toi de changer le script selon tes besoins...

Modifié par TheRec
Posté

Tu peux aussi coller cette fonction javascript directement dans ta barre d'adresse :

java script:alert(document.lastModified)

Mais ça marche seulement pour des fichiers statiques (sinon, ça te donne juste la date et l'heure de ta machine)

Posté

C'est bien de la date de modif d'un fichier qui ne t'appartient pas, que tu recherche ?

xpatval

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...