obtener modificacion hora filectime fecha con archivo actual php jquery curl

modificacion - obtener fecha actual php mysql



Obtener la última fecha de modificación de un archivo remoto (8)

A veces, el encabezado viene con diferentes minúsculas superiores, esto debería ayudar:

function remoteFileData($f) { $h = get_headers($f, 1); if (stristr($h[0], ''200'')) { foreach($h as $k=>$v) { if(strtolower(trim($k))=="last-modified") return $v; } } }

Me gustaría obtener la última fecha de modificación de un archivo remoto mediante curl. ¿Alguien sabe cómo hacer eso?


Al editar la respuesta de h4kuna, creé esto:

$fileURL=''http://www.yahoo.com''; $headers = get_headers($fileURL, 1); $date = "Error"; //echo "<pre>"; print_r($headers); echo "</pre>"; if ( $headers && (strpos($headers[0],''200'') !== FALSE) ) { $time=strtotime($headers[''Last-Modified'']); $date=date("d-m-Y H:i:s", $time); } echo ''file: <a href="''.$fileURL.''" target="_blank">''.$fileURL.''</a> (Last-Modified: ''.$date.'')<br>'';


Del artículo de php :

<?php // outputs e.g. somefile.txt was last modified: December 29 2002 22:16:23. $filename = ''somefile.txt''; if (file_exists($filename)) { echo "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename)); } ?>

filemtime () es la clave aquí. Pero no estoy seguro si puede obtener la última fecha de modificación de un archivo remoto , ya que el servidor debería enviársela ... ¿Quizás en los encabezados HTTP?


En PHP puedes usar la función nativa get_headers() :

<?php $h = get_headers($url, 1); $dt = NULL; if (!($h || strstr($h[0], ''200'') === FALSE)) { $dt = new /DateTime($h[''Last-Modified'']);//php 5.3 }


Probablemente curl_getinfo() hacer algo como esto usando curl_getinfo() :

<?php $curl = curl_init(''http://www.example.com/filename.txt''); //don''t fetch the actual page, you only want headers curl_setopt($curl, CURLOPT_NOBODY, true); //stop it from outputting stuff to stdout curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // attempt to retrieve the modification date curl_setopt($curl, CURLOPT_FILETIME, true); $result = curl_exec($curl); if ($result === false) { die (curl_error($curl)); } $timestamp = curl_getinfo($curl, CURLINFO_FILETIME); if ($timestamp != -1) { //otherwise unknown echo date("Y-m-d H:i:s", $timestamp); //etc }


Puede activar la recepción de los encabezados de la respuesta con curl_setopt($handle, CURLOPT_HEADER, true) . También puede activar CURLOPT_NOBODY para recibir solo los encabezados, y luego explotar el resultado por / r / n e interpretar los encabezados individuales. El encabezado Last-Modified es el que le interesa.


Tuve que resolver un problema similar, pero para mí descargarlo una vez al día era suficiente, así que solo comparé el día de modificación del archivo de caché local (descargado). El archivo remoto no tenía encabezado Last-Modified.

$xml = ''test.xml''; if (is_file($xml) || date(''d'', filemtime($xml)) != date(''d'')) { $xml = file_get_contents(REMOTE_URL); }


algo como este trabajo, desde el foro de desarrolladores web

<? $last_modified = filemtime("content.php"); print("Last Updated - "); print(date("m/d/y", $last_modified)); ? // OR $last_modified = filemtime(__FILE__);

el enlace proporciona algunos elementos útiles sobre los que puede usarlos