Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вопрос по сравнению даты создания файла с сегодняшней!
 
 автор: Sywooch   (03.09.2007 в 15:30)   письмо автору
 
 

Здравствуйте. Подскажите что не так в этом условии:


<?php
if((!file_exists($_SERVER['DOCUMENT_ROOT']."/cache/temp-file.tmp")) or (date("m d Y"filemtime($_SERVER['DOCUMENT_ROOT']."/cache/temp-file.tmp"))-$date))
{
............
}
else {
readfile($_SERVER['DOCUMENT_ROOT']."/cache/temp-file.tmp");
}
?>


Почему то созданный вчера вайлы сегодня не хочет обновлять!

Хоче сделать чтоб кешировалась информация один раз за день.

   
 
 автор: cheops   (03.09.2007 в 16:01)   письмо автору
 
   для: Sywooch   (03.09.2007 в 15:30)
 

Хм... а файл temp-file.tmp существует?

   
 
 автор: Sywooch   (03.09.2007 в 16:14)   письмо автору
 
   для: cheops   (03.09.2007 в 16:01)
 

Этот файл создается если не существует!

Необходимо этот файл пересоздать если дата его создания "вчера"

   
 
 автор: Саня   (03.09.2007 в 17:05)   письмо автору
 
   для: Sywooch   (03.09.2007 в 16:14)
 

<?
$fname 
$_SERVER['DOCUMENT_ROOT']."/cache/temp-file.tmp";
if ( !
file_exists($fname) || time() - filemtime($fname) >= 24 60 60 ) {
  
// переписать файл
} else {
  
readfile($fname);
}
Если файл был создан 24 часа назад или он не существует, то выполняется перезапись.

   
 
 автор: Sywooch   (04.09.2007 в 00:57)   письмо автору
 
   для: Саня   (03.09.2007 в 17:05)
 

Мне не нужно 24 часа назад!

Мне нужно:

Если файл N существует то смотрим дату его создания. Сверяем с сегодняшней. если да то печатаем файл N если нет то ................

Вот какое условие мне нужно!

   
 
 автор: Trianon   (04.09.2007 в 03:29)   письмо автору
 
   для: Sywooch   (04.09.2007 в 00:57)
 

У файла нету даты создания. Есть таймштамп.
Дата - сущность, зависящая от местоположения клиента. А файл - на сервере.

   
 
 автор: Sywooch   (04.09.2007 в 14:48)   письмо автору
 
   для: Trianon   (04.09.2007 в 03:29)
 

И че делать?
Мне бы совет какой нить.

   
 
 автор: Trianon   (04.09.2007 в 17:30)   письмо автору
 
   для: Sywooch   (04.09.2007 в 14:48)
 

>И че делать?
>Мне бы совет какой нить.

поставить задачу более точно.
Похоже, Вы не поняли, где нечеткость.
Представьте, что через шесть часов ровно на Ваш сервер я и sim5 забрасываем по файлу. Одновременно, или почти одновременно. Оба файла будут иметь одну и ту же метку времени.
Оба файла будут видны мне как файлы с датой 4 сентября.
Оба файла будут видны sim5 как файлы с датой 5 сентября. Потому что он во Владивостоке живет, если я ничего не напутал.

И как должны срабатывать Ваши условия?

   
 
 автор: sim5   (04.09.2007 в 18:46)   письмо автору
 
   для: Trianon   (04.09.2007 в 17:30)
 

Напутали Trianon - разница между Питером и Владивостоком 7 часов. У меня разница с Питером 6 часов, я живу в г. Белогорске Амурской обл. :) Но любой эксперемент предполагает погрешность - можно начинать.

   
 
 автор: Trianon   (04.09.2007 в 18:51)   письмо автору
 
   для: sim5   (04.09.2007 в 18:46)
 

Напутал, но не со зла :)
И непринципиально. 17:30MSK +6 часов = 23:30MSK
И дальше любой город, восточнее меня хотя бы на час, давал смену даты. Хоть Е-бург, хоть Белогорск. :))

   
 
 автор: sim5   (04.09.2007 в 19:11)   письмо автору
 
   для: Trianon   (04.09.2007 в 18:51)
 

Так я разве возражаю? Просто с легкой руки Trianona стал "старше" на час :)

   
 
 автор: Trianon   (04.09.2007 в 19:54)   письмо автору
 
   для: sim5   (04.09.2007 в 19:11)
 

Но, но. Не надо утрировать.
Файл стал старше. Гипотетческий.

PS. :))

   
 
 автор: Sywooch   (04.09.2007 в 19:57)   письмо автору
 
   для: Trianon   (04.09.2007 в 19:54)
 

Так есть ли вариант обновлять файл раз в сутки (если он был затребован???

   
 
 автор: Trianon   (04.09.2007 в 20:18)   письмо автору
 
   для: Sywooch   (04.09.2007 в 19:57)
 

Раз в сутки -- это тот путь, что предложил Саня.

   
 
 автор: ralph   (04.09.2007 в 21:29)   письмо автору
 
   для: Trianon   (04.09.2007 в 20:18)
 

<?php
$a
=getdate();
$midnight=mktime(0,0,0,$a['mon'],$a['mday'],$a['year']);
if ( (!
file_exists(...)) or (filemtime(...)<$midnight) ) {обновить}

?>

это не то ? :)

   
 
 автор: Trianon   (04.09.2007 в 21:50)   письмо автору
 
   для: ralph   (04.09.2007 в 21:29)
 

В принципе - то, конечно....
Но это привязка к таймзоне сервера.
Чем она обусловлена?

   
 
 автор: Ralph   (04.09.2007 в 22:03)   письмо автору
 
   для: Trianon   (04.09.2007 в 21:50)
 

А это уже проблема автора ... Я указал общий путь-как узнать.был ли файл создан ранее полночи сегодняшнего дня,а временной сдвиг и усе остальное-вопрос другой...Тем более,вряд ли его интересует время для каждого пользователя-судя по всему,ему нужно время,касающееся его(блин,хреново обьяснил,но кому нужно-поймет )...............................................................

   
 
 автор: Trianon   (04.09.2007 в 22:17)   письмо автору
 
   для: Ralph   (04.09.2007 в 22:03)
 

>вряд ли его интересует время для каждого пользователя-судя по всему,
>ему нужно время,касающееся его

Кого его?

>(блин,хреново обьяснил,но кому нужно-поймет ).

Сделайте еще попытку. :)

   
 
 автор: Ralph   (04.09.2007 в 22:32)   письмо автору
 
   для: Trianon   (04.09.2007 в 22:17)
 

Обьясняю:если мне нужно обновить файл,созданный вчера,то я подразумеваю под этим вчера для МОЕГО часового пояса и файла,созданного МОИМ сайтом в МОЕМ временном пространстве,а не вчера для некоего гипотетического пользователя из Буркина-Фасо...

   
 
 автор: Ralph   (04.09.2007 в 22:40)   письмо автору
 
   для: Ralph   (04.09.2007 в 22:32)
 

Просто естЬ такое понятие-ПО УМОЛЧАНИЮ...К примеру,на Ваш вопрос 'сделайте еще попытку' -я ведь не спрашиваю-попытку чего-зайти на сайт,ответить на вопрос,написать другой код-я по умолчанию понял,что Вы имели в виду...

   
 
 автор: Trianon   (05.09.2007 в 16:36)   письмо автору
 
   для: Ralph   (04.09.2007 в 22:32)
 

Зайдя на сайт, чтобы обновить файл, ВЫ проявили СЕБЯ как клиент. Вот относительно клиентского времени и ведется расчет в Вашем случае. И чтобы точно учесть именно ВАШИ конкретные сутки, потребуется привлечь JS-уровень.

Касательно же умолчаний - передергивать не надо.

   
 
 автор: Ralph   (05.09.2007 в 17:13)   письмо автору
 
   для: Trianon   (05.09.2007 в 16:36)
 

Ну,не буду спорить,тем более что вопрос уже решен :)

   
 
 автор: Sywooch   (05.09.2007 в 22:06)   письмо автору
 
   для: Ralph   (05.09.2007 в 17:13)
 

Дело в том что скрипт ореинтирован на пользователей Украины: http://fishing.dp.ua/weather/

   
 
 автор: Sywooch   (05.09.2007 в 13:52)   письмо автору
 
   для: ralph   (04.09.2007 в 21:29)
 

ralph - Спасибо! Это именно то что нужно!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования