PHP vymazání posledních dvou souborů – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP vymazání posledních dvou souborů – PHP – Fórum – Programujte.comPHP vymazání posledních dvou souborů – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Aricak0
Newbie
22. 6. 2015   #1
-
0
-

Mám soubory které se jmenují  2015_06_22_11_39_14.zip s tím, že se jedná o datum, čas, vteřiny. A já potřebuji smazat soubory starší než např.: 3 hodiny. což je hodnota v souboru, kteoru jsem označil tučně.

Pátral jsem po netu a nic jsem nenašel. udělal jsem si podmínku kde mám již vyfiltrované podle datumu, které chci smazat. ale nevím jak dál.

Prosím o radu. Děkuji

Nahlásit jako SPAM
IP: 46.23.51.–
peter
~ Anonymní uživatel
4016 příspěvků
22. 6. 2015   #2
-
0
-

 Serazovani muzes resit takto

// --- sort - multi colunm ---
function arraySortMulti(&$arr,$order=array())
	{
	$func_conv = function($s) {return (float) preg_replace('~[^.0-9]~',"", (string) $s);};
	$func_sort = array(
		'STRING'  => function($a,$b){if ($a < $b) {return -1;}; if ($a > $b) {return 1;}; if ($a == $b) {return 0;}; return false;},
		'STRNUM'  => function($a,$b) use ($func_conv) {return $func_conv($a) - $func_conv($b);},
		'NUMERIC' => function($a,$b){return $a - $b;}
		);
	$func_order = array(
		'ASC'  => function($q){return $q;},
		'DESC' => function($q){return -$q;}
		);
	usort($arr, function ($a, $b) use ($order,$func_sort,$func_order)
		{
		$result = 0;
	        foreach ($order as $key => $value)
			{
			$o = isset($value['order']) && isset($func_order[$value['order']]) ? $func_order[$value['order']] : $func_order['ASC']; 
			$s = isset($value['sort'])  && isset($func_sort[$value['sort']])   ? $func_sort[$value['sort']]   : $func_sort['STRING']; 
			$result = $o($s($a[$key],$b[$key]));
			if ($result!==0)
				{
				return $result;
				}
		        }
		return $result;
		});
	return $arr;
	}
// ---
                    $order = array(
        //                2 => array('order'=>'DESC','sort'=>'NUMERIC'),
                        1 => array('order'=>'DESC','sort'=>'STRNUM'),
                        0 => array('order'=>'ASC' ,'sort'=>'STRING')
                        );$files = array(
array(0=> 'nazev', 1=> 'datum', 2=>'velikost')
)
arraySortMulti($files,$order);

Ty tam sice takove pole nemas, ale jiste si to svedes upravit pro tvuj pripad. Ze to treba explodujes podle _ a porovnas rok, mesic, den, hodinu - v tomto poradi
 

Nebo, proste muzes cyklem smazat rovnou :) opet pouzijes explode a porovnavas rok, mesic, den, hodin

Nebo, kdyz to mas serazene, tak to datum muzes najit rucne, ne? a vse nad nim smazes.
 

                        }

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:a9f9:41...–
Aricak0
Newbie
23. 6. 2015   #3
-
0
-

Mockrát děkuji, již jsem mám toto:

$curtime = time();

$filelist = array();
if ($handle = opendir(".")) {
    while ($entry = readdir($handle)) {
        if (is_file($entry)) {
            $filelist[] = $entry;
        }
    }
    closedir($handle);
}

$datum = StrFTime("%Y_%m_%d_%H_%M_%S", Time()); //datum jako nazev souboru



foreach ($filelist as $filelis) {
		if (StrPos($filelis,'3409') === false) {
		}else{
			$cas_vytvoreni_souboru = filemtime($filelis);
			if(($curtime-$cas_vytvoreni_souboru) > 10800) {
			//if (StrPos($filelis, $datum) === false) {
				unlink($filelis);
			}
		}
}

Zjistil jsem stávající čas, pak jsem prošel celou složku., v procházení kde procházím soubory jsem vyfiltroval jen soubory kde obsahuje číslo 3409 to je tam vždy. Pak jsem vytvořil jednoduchou časovou podmínku, když nastavím menší počes vteřin smaže se více souborů. Ale takhle mě to bohatě stačí cron běží 4x deně... takže podle teď nastavené podmínky, zbyde vždy ten poslední soubor. A když spustím manuálně skritp tak tak zbydou jen ty 3 hodiny staré... nebo kolik jsem tam nastavil

Nahlásit jako SPAM
IP: 46.23.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 62 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý