Skip to content

Instantly share code, notes, and snippets.

@gustawdaniel
Created March 28, 2017 10:07
Show Gist options
  • Save gustawdaniel/f12cd99ba998b2166ed45aae0dc061be to your computer and use it in GitHub Desktop.
Save gustawdaniel/f12cd99ba998b2166ed45aae0dc061be to your computer and use it in GitHub Desktop.
<?php
// definicje funkcji
// funkcja przyjmuje ścieżkę i czas w sekundach dla którego
// chemy usunąć pliki stworzone przed tym czasem
function clear($path,$time)
{
// listujemy wszystki pliki z danej lokaci
$allFiles = scandir($path);
// wycinamy "pliki" . oraz ..
$files = array_diff($allFiles,["..","."]);
// dla każdego pliku/katalogu
foreach ($files as $file) {
// zapisujem ścieżkę taą którą dostaliśmy + tego konkretnego pliku/katalogu
$file = $path . '/' . $file;
if(is_dir($file)) {// jeśli to jest katalog
echo "dir: " . $file . "\n";
clear($file,$time);// wywołujemy clear na tej nowej ścieżce
} else {// jeśli plik, to
echo "file: " . $file . "\n";
// sprawdzamy czy były utworzony przed czasem podanym jako arument
// podczas wywyoływania skryptu
if(filemtime($file) < $time)
{
unlink($file);// jeśli tak to usuwamy plik
}
}
}
}
// część wykounjąca
// odpalamy to na katalog "a", żeby nie usunąć ałego systemu
// za czas bierzemy pierwszy ciąg zankóœ wpisanych za nazwą programu
clear("a",$argv[1]);
// użycie
// php clear.php 12143345
// zamiast tych sekune 12143345 wkeljamy to co zwrócił init.php
<?php
// funkcja do tworzenia jeśli katalog nie istnieje
function mkdirIfNotExist($path) {
if(!is_dir($path)) {
mkdir($path);
}
}
echo "----------------\n";
// tworzymy katalogi i pliki
mkdirIfNotExist("a");
mkdirIfNotExist("a/b");
mkdirIfNotExist("a/c");
file_put_contents("a/f1.txt","");
file_put_contents("a/b/f2.txt","");
sleep(2); // czekamy
echo time() . "\n"; // wyświetlamy czas
sleep(2); // czekamy
// tworzymy dwa inne plik, ważne że te wcześniej miały iną datę
// stworzenia a te mają późniejszą niż w echowanym time()
file_put_contents("a/f3.txt","");
file_put_contents("a/b/f4.txt","");
echo "----------------\n";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment