Я хотел бы получить последнюю измененную дату удаленного файла с помощью curl. Кто-нибудь знает как это сделать?Получить последнюю измененную дату удаленного файла
ответ
От php's article:
<?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() является ключевым здесь. Но я не уверен, что вы можете получить последнюю измененную дату файла remote, так как сервер должен отправить его вам ... Может быть, в заголовках HTTP?
Вы могли бы сделать что-то вроде этого, используя 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
}
Я заметил, что этот код иногда не работает, работает родной php get_headers лучше для меня. – Pons
бы что-то вроде этой работы, от web developer forum
<? $last_modified = filemtime("content.php"); print("Last Updated - ");
print(date("m/d/y", $last_modified)); ?
// OR
$last_modified = filemtime(__FILE__);
ссылка предоставляет некоторые полезные INSITE на вы можете использовать их
Вы можете активировать прием заголовков ответа с помощью curl_setopt($handle, CURLOPT_HEADER, true)
. Вы также можете включить CURLOPT_NOBODY, чтобы получать только заголовки, а после этого взорвать результат с помощью \ r \ n и интерпретировать одиночные заголовки. Заголовок Last-Modified
является тот, который вы заинтересованы в
Yep - просто запросите заголовки –
Предполагая, что они отправляют заголовок Last-Modified –
В PHP вы можете использовать встроенную функцию 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
}
Условие «If» не работает должным образом ... 'if (! $ H || strpos ($ h [0], '200')! == false) {'работает лучше для меня! – dino
Дино правильно. Похоже, что оператор '!' Случайно был исключен в приведенном выше коде. Оператор if должен быть действительно 'if (! (! $ H || strstr ($ h [0], '200') === FALSE)) {' – Steven
Можете объединить и добавить код нижнего регистра от Pons к этому также. 'Если (strtolower (дифферент ($ к)) == 'последнего изменения')' – Armstrongest
Иногда Header приходят с различными верхней строчными буквами, это должно помочь:
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;
}
}
}
К ответу РЕДАКТИРОВАНИЕ h4kuna, я создал это:
$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>';
Пришлось решить подобную проблему, но для меня загрузка раз в день была достаточной, поэтому я сравнивал только день изменения локального (загруженного) кэш-файла. У удаленного файла не было заголовка Last-Modified.
$xml = 'test.xml';
if (is_file($xml) || date('d', filemtime($xml)) != date('d')) {
$xml = file_get_contents(REMOTE_URL);
}
- 1. Получить последнюю измененную дату файла в sitecore
- 2. Получить последнюю измененную дату файла excel
- 3. Получить последнюю измененную дату файла в VB6
- 4. Распечатайте последнюю измененную дату файла в Bash
- 5. Найти последнюю измененную дату файла в какао
- 6. Получить последнюю Измененную дату файлов в каталоге
- 7. Получить последнюю измененную дату файла в структуре папки
- 8. Получить последнюю измененную дату xml-файла с помощью vb.NET
- 9. Как получить последнюю измененную дату из файла apk на сервере
- 10. GAE Python: как получить последнюю измененную дату статического файла
- 11. Как получить последнюю измененную дату файла в командной строке Windows?
- 12. Получить последнюю измененную дату последнего файла в учетной записи хранилища
- 13. Возможно ли получить последнюю измененную дату файла с помощью Javascript?
- 14. Как получить последнюю измененную дату из файла последовательности Hadoop?
- 15. Как получить последнюю измененную дату файла в нескольких каталогах?
- 16. Получить последнюю измененную дату файла DDS AS400 в Java
- 17. Как получить последнюю измененную дату файла в ASP.NET Core MVC?
- 18. Apache 2.2.17 не возвращает последнюю измененную дату статического файла https
- 19. Как получить последнюю измененную дату каталога в Amazon S3?
- 20. Получить фактическую последнюю измененную дату для запрашиваемой страницы в WebForms
- 21. Есть ли способ увидеть последнюю измененную дату файла в Netbeans?
- 22. Как найти последнюю измененную дату веб-страницы?
- 23. Сохраняет ли SQLite последнюю измененную дату строки?
- 24. Wordpress (база данных); Показать последнюю измененную дату?
- 25. Joomla - добавить последнюю измененную дату в категорию
- 26. Как получить последнюю измененную дату, если вы нажмете ссылку?
- 27. получить последнюю измененную дату от ALAsset (видео) iOS Video
- 28. Как получить последнюю измененную дату в списке SharePoint (SPList)
- 29. Sharepoint 2013 - Получить последнюю измененную дату для списка
- 30. Как получить последнюю измененную дату в угловом JS
Из инструкции: «Начиная с PHP 5.0.0, эта функция также может использоваться с * некоторыми * обертками URL». – nickf
Для моего опыта этот метод не работает всегда (он зависит от вашего php.ini), поэтому родные get_headers работали лучше для меня. – Pons
@ Понс, я согласен, он не работает со мной –