Счетчик написал на текстовом файле. Но не может-же он считать постоянно.
Как привязать момент очищения файла такой статистики (например stat.dat)
ко времени смены очередных суток при заходе очередного пользователя например после 00.00 часов по Москве?
Спасибо.
Спустя 8 минут, 34 секунды (7.02.2009 - 16:54) LoneCat написал(а):
Легко! ![tongue.gif](http://phpforum.ru/html/emoticons/tongue.gif)
![tongue.gif](http://phpforum.ru/html/emoticons/tongue.gif)
PHP |
// Читаем информацию о файле в массив |
Спустя 1 час, 6 минут, 18 секунд (7.02.2009 - 18:00) brdm написал(а):
Большое спасибо.
Сразу не заметил "!==" Нужно !=
Или я не прав?
Хотя это до конца не понял.
// Из полученного и текущего времени вычленяем дату
// Если даты не совпадают - значит с момента модификации дата изменилась
// Иже смена суток уже прошла, соот-но очищаем файл.
if(date('d', $iTime) !== date('d')) {
// Очищение файла
}
date('d') - это понятно.
А как работает
date('d', $iTime)?
Если например записать $s = date('d', $iTime), то в $s получится просто дата, какое-бы ни было $iTime.
Хотя... виноват. Понял. Работает. Если записать date('H', $iTime) то получу время последней модификации файла.
Еще раз, спасибо.
Сразу не заметил "!==" Нужно !=
Или я не прав?
Хотя это до конца не понял.
// Из полученного и текущего времени вычленяем дату
// Если даты не совпадают - значит с момента модификации дата изменилась
// Иже смена суток уже прошла, соот-но очищаем файл.
if(date('d', $iTime) !== date('d')) {
// Очищение файла
}
date('d') - это понятно.
А как работает
date('d', $iTime)?
Если например записать $s = date('d', $iTime), то в $s получится просто дата, какое-бы ни было $iTime.
Хотя... виноват. Понял. Работает. Если записать date('H', $iTime) то получу время последней модификации файла.
Еще раз, спасибо.
Спустя 12 минут, 14 секунд (7.02.2009 - 18:12) LoneCat написал(а):
Ну на самом деле в этом случае разницы между != и !== нет, это больше личное предпочтение ставить везде операторы строгого сравнения
а вообще:
!= - нестрогое сравнение значений двух переменных, без учета типов данных, тоесть сравнения числа 12 и строки '12' выдаст true
!== - строгое сравнение, с учетом типов данных, сравнение числа 12 и строки '12' выдаст false, как и например сравнение целого 12 и дроби 12.0
Насчет date - эта функция принимает два аргумента, но второй просто опциональный, если второй аргумент не указан - берется текущее время, на момент исполнения скрипта, если указан аргумент - берется время указанное в аргументе, тоесть date('d') выдаст текущую дату, а date('d', $iTime) - дату последнего изменения файла.
Второй аргумент указывается в формате Unix Timestamp, это количество секунд, прошедших с начала эпохи Unix
на самом деле
начало этой удивительной эпохи считается дата 1 января 1970 года.
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
!= - нестрогое сравнение значений двух переменных, без учета типов данных, тоесть сравнения числа 12 и строки '12' выдаст true
!== - строгое сравнение, с учетом типов данных, сравнение числа 12 и строки '12' выдаст false, как и например сравнение целого 12 и дроби 12.0
Насчет date - эта функция принимает два аргумента, но второй просто опциональный, если второй аргумент не указан - берется текущее время, на момент исполнения скрипта, если указан аргумент - берется время указанное в аргументе, тоесть date('d') выдаст текущую дату, а date('d', $iTime) - дату последнего изменения файла.
Второй аргумент указывается в формате Unix Timestamp, это количество секунд, прошедших с начала эпохи Unix
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
Цитата |
Если например записать $s = date('d', $iTime), то в $s получится просто дата, какое-бы ни было $iTime. |
Попробуйте echo date('d', 0); - результат должен получится 1 (первое число)
Спустя 3 минуты, 3 секунды (7.02.2009 - 18:15) Семён написал(а):
Цитата |
!= - нестрогое сравнение значений двух переменных, без учета типов данных, тоесть сравнения числа 12 и строки '12' выдаст true !== - строгое сравнение, с учетом типов данных, сравнение числа 12 и строки '12' выдаст false, как и например сравнение целого 12 и дроби 12.0 |
хм... не знал - спс.
Спустя 2 минуты, 52 секунды (7.02.2009 - 18:18) brdm написал(а):
Да, все правильно. Работает.
Спасибо.
Спасибо.
Спустя 5 минут, 55 секунд (7.02.2009 - 18:24) LoneCat написал(а):
Цитата |
!= - нестрогое сравнение значений двух переменных, без учета типов данных, тоесть сравнения числа 12 и строки '12' выдаст true !== - строгое сравнение, с учетом типов данных, сравнение числа 12 и строки '12' выдаст false, как и например сравнение целого 12 и дроби 12.0 |
Ну и тут я пропарился малость, наоборот все, так как это сравнение на НЕсоответстие, а я написал про сравнение на соот-ие
![smile.gif](http://phpforum.ru/html/emoticons/smile.gif)
== - нестрогое сравнение значений двух переменных, без учета типов данных, тоесть сравнения числа 12 и строки '12' выдаст true
=== - строгое сравнение, с учетом типов данных, сравнение числа 12 и строки '12' выдаст false, как и например сравнение целого 12 и дроби 12.0
Ну а для != и !== соот-но тоже самое, но вместо true они возвращают false, а вместо false - true.
Спустя 12 минут, 15 секунд (7.02.2009 - 18:36) brdm написал(а):
Если можно еще вопрос.
Как можно быстро очистить файл без его удаления?
Хотя.. нет. Это уже лишнее. Лучше удалить unlink();
Потом он всеравно заново создастся.
Как можно быстро очистить файл без его удаления?
Хотя.. нет. Это уже лишнее. Лучше удалить unlink();
Потом он всеравно заново создастся.
Спустя 16 минут, 3 секунды (7.02.2009 - 18:52) LoneCat написал(а):
Цитата (brdm @ 7.02.2009 - 19:36) |
Если можно еще вопрос. Как можно быстро очистить файл без его удаления? |
PHP |
$rFile = fopen('stat.dat', 'w'); // Открываем файл |
Цитата |
'w' Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it. |
Перевод:
'w' - открывает файл только для записи; устанавливает указатель на начало файла и устанавливает длину файла в 0. Если файл не существует - пытается его создать.
Спустя 8 минут, 10 секунд (7.02.2009 - 19:00) brdm написал(а):
Да, именно "w".
Спасибо.
Спасибо.