Изпразване на файл през определенo време

cHuBakA

Registered
Привет.
Имам текстов файл. 1.txt, който го ползвам за лог
как мога да направя чрез php на всеки час да му трие съдържанието?
 
cHuBakA каза:
Привет.
Имам текстов файл. 1.txt, който го ползвам за лог
как мога да направя чрез php на всеки час да му трие съдържанието?

Просто го презаписваш с file_put_content();
 
Авторът май по-скоро пита как се прави cron job?

@cHuBakA трябва да си направиш cron job (има много обяснения по интернета) и програмка, която да почиства файла.
Ако не настояваш за php, можеш и с bash да го направиш: "echo >my_file" и готово :D
 
С крон е ясно. Питането ми е без крон защото много ми товари. Само с php.

@dakata__92 . Аз го правя с file_put_contents. Въпроса е как да я накарам да работи сама на всеки час?
 
cHuBakA каза:
С крон е ясно. Питането ми е без крон защото много ми товари. Само с php.

@dakata__92 . Аз го правя с file_put_contents. Въпроса е как да я накарам да работи сама на всеки час?

Без cron задача трябва да разчиташ на рефреши от някъде и да имаш запаметено времето на последното зануляване. Трябва да го запаметяваш в база или пак във файл. Друг вариант е да ползваш filemtime.
Създаваш си един php файл и при рефреш на някоя страница от потребител викаш на заден фон файла да работи. Тъпо и несигурно решение без cron задача.

Ето ти пример (не съм го тествал).

Код:
while (true) {
    $file = 'file.txt';
    if (file_exists($file)) {
        $timeModified = filemtime($file) + (60 * 60);
        if ($timeModified < time()) {
            file_put_contents($file, '');
        }
    }
    sleep(10);
}
 
Всяко решение без cron не е приемливо. Не знам какво значи cron да товари много. Нещо се заблуждаваш. Крона по същество е лек. Въпроса е скрипта, който трябва да пусне да е лек. Ако ще е само зануляване на файл, крон + bash както предложиха е най-бързия и лесен начин.
 
Revelation каза:
Всяко решение без cron не е приемливо. Не знам какво значи cron да товари много. Нещо се заблуждаваш. Крона по същество е лек. Въпроса е скрипта, който трябва да пусне да е лек. Ако ще е само зануляване на файл, крон + bash както предложиха е най-бързия и лесен начин.
Съгласен.
 
И аз съм за cron. Друга тъпа идея е да си направиш изпълнимо файлче на компютъра ти и при пускането му да го изпълнява и да ти трие логога.
 
Благодаря на всички. Опитах всякакви варианти, все още не успявам да накарам скрипт да се изпълнява сам през време, без външна намеса. Явно начина е с крон.
 
cHuBakA каза:
Благодаря на всички. Опитах всякакви варианти, все още не успявам да накарам скрипт да се изпълнява сам през време, без външна намеса. Явно начина е с крон.

Това е най-сигурното ти решение!
 

Горе