|
|
|
| Здравствуйте. Подскажите что не так в этом условии:
<?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");
}
?>
|
Почему то созданный вчера вайлы сегодня не хочет обновлять!
Хоче сделать чтоб кешировалась информация один раз за день. | |
|
|
|
|
|
|
|
для: Sywooch
(03.09.2007 в 15:30)
| | Хм... а файл temp-file.tmp существует? | |
|
|
|
|
|
|
|
для: cheops
(03.09.2007 в 16:01)
| | Этот файл создается если не существует!
Необходимо этот файл пересоздать если дата его создания "вчера" | |
|
|
|
|
|
|
|
для: 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 часа назад или он не существует, то выполняется перезапись. | |
|
|
|
|
|
|
|
для: Саня
(03.09.2007 в 17:05)
| | Мне не нужно 24 часа назад!
Мне нужно:
Если файл N существует то смотрим дату его создания. Сверяем с сегодняшней. если да то печатаем файл N если нет то ................
Вот какое условие мне нужно! | |
|
|
|
|
|
|
|
для: Sywooch
(04.09.2007 в 00:57)
| | У файла нету даты создания. Есть таймштамп.
Дата - сущность, зависящая от местоположения клиента. А файл - на сервере. | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2007 в 03:29)
| | И че делать?
Мне бы совет какой нить. | |
|
|
|
|
|
|
|
для: Sywooch
(04.09.2007 в 14:48)
| | >И че делать?
>Мне бы совет какой нить.
поставить задачу более точно.
Похоже, Вы не поняли, где нечеткость.
Представьте, что через шесть часов ровно на Ваш сервер я и sim5 забрасываем по файлу. Одновременно, или почти одновременно. Оба файла будут иметь одну и ту же метку времени.
Оба файла будут видны мне как файлы с датой 4 сентября.
Оба файла будут видны sim5 как файлы с датой 5 сентября. Потому что он во Владивостоке живет, если я ничего не напутал.
И как должны срабатывать Ваши условия? | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2007 в 17:30)
| | Напутали Trianon - разница между Питером и Владивостоком 7 часов. У меня разница с Питером 6 часов, я живу в г. Белогорске Амурской обл. :) Но любой эксперемент предполагает погрешность - можно начинать. | |
|
|
|
|
|
|
|
для: sim5
(04.09.2007 в 18:46)
| | Напутал, но не со зла :)
И непринципиально. 17:30MSK +6 часов = 23:30MSK
И дальше любой город, восточнее меня хотя бы на час, давал смену даты. Хоть Е-бург, хоть Белогорск. :)) | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2007 в 18:51)
| | Так я разве возражаю? Просто с легкой руки Trianona стал "старше" на час :) | |
|
|
|
|
|
|
|
для: sim5
(04.09.2007 в 19:11)
| | Но, но. Не надо утрировать.
Файл стал старше. Гипотетческий.
PS. :)) | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2007 в 19:54)
| | Так есть ли вариант обновлять файл раз в сутки (если он был затребован??? | |
|
|
|
|
|
|
|
для: Sywooch
(04.09.2007 в 19:57)
| | Раз в сутки -- это тот путь, что предложил Саня. | |
|
|
|
|
|
|
|
для: 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) ) {обновить}
?>
|
это не то ? :) | |
|
|
|
|
|
|
|
для: ralph
(04.09.2007 в 21:29)
| | В принципе - то, конечно....
Но это привязка к таймзоне сервера.
Чем она обусловлена? | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2007 в 21:50)
| | А это уже проблема автора ... Я указал общий путь-как узнать.был ли файл создан ранее полночи сегодняшнего дня,а временной сдвиг и усе остальное-вопрос другой...Тем более,вряд ли его интересует время для каждого пользователя-судя по всему,ему нужно время,касающееся его(блин,хреново обьяснил,но кому нужно-поймет )............................................................... | |
|
|
|
|
|
|
|
для: Ralph
(04.09.2007 в 22:03)
| | >вряд ли его интересует время для каждого пользователя-судя по всему,
>ему нужно время,касающееся его
Кого его?
>(блин,хреново обьяснил,но кому нужно-поймет ).
Сделайте еще попытку. :) | |
|
|
|
|
|
|
|
для: Trianon
(04.09.2007 в 22:17)
| | Обьясняю:если мне нужно обновить файл,созданный вчера,то я подразумеваю под этим вчера для МОЕГО часового пояса и файла,созданного МОИМ сайтом в МОЕМ временном пространстве,а не вчера для некоего гипотетического пользователя из Буркина-Фасо... | |
|
|
|
|
|
|
|
для: Ralph
(04.09.2007 в 22:32)
| | Просто естЬ такое понятие-ПО УМОЛЧАНИЮ...К примеру,на Ваш вопрос 'сделайте еще попытку' -я ведь не спрашиваю-попытку чего-зайти на сайт,ответить на вопрос,написать другой код-я по умолчанию понял,что Вы имели в виду... | |
|
|
|
|
|
|
|
для: Ralph
(04.09.2007 в 22:32)
| | Зайдя на сайт, чтобы обновить файл, ВЫ проявили СЕБЯ как клиент. Вот относительно клиентского времени и ведется расчет в Вашем случае. И чтобы точно учесть именно ВАШИ конкретные сутки, потребуется привлечь JS-уровень.
Касательно же умолчаний - передергивать не надо. | |
|
|
|
|
|
|
|
для: Trianon
(05.09.2007 в 16:36)
| | Ну,не буду спорить,тем более что вопрос уже решен :) | |
|
|
|
|
|
|
|
для: Ralph
(05.09.2007 в 17:13)
| | Дело в том что скрипт ореинтирован на пользователей Украины: http://fishing.dp.ua/weather/ | |
|
|
|
|
|
|
|
для: ralph
(04.09.2007 в 21:29)
| | ralph - Спасибо! Это именно то что нужно! | |
|
|
|