Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    4

    estrapolare da una cartella gli gli ultimi tot files inseriti

    Buondì qui son più ke nuova e di php ne so molto poco ma dove lavoro mi chiedono di esercitarmi nella programmazione php...

    allora, mi è stato chiesto di creare uno script ke mi estragga da una certa cartella gli ultimi file inseriti. I file hanno una nomenclatura particolare: news-data-di-inserimento (esempio: news-17-12-2004)..fino ad ora son riuscita a produrre uno script ke mi legge i file presenti nella cartella e me li ordina dal - al + recente..ora come faccio a dirgli ke vorrei..ke ne so gli ultimi 3 files inseriti?

    posto qui sotto lo script mio:

    <?php
    if ($handle = opendir('news')) {
    while (false !== ($file = readdir($handle)))

    if (preg_match ("/^news./", $file)) {
    $expl=explode("-",$file);
    $time= mktime (0,0,0,$expl[2],$expl[1],$expl[3]);
    $prova[$file]=$time;

    }
    }
    asort($prova);
    reset($prova);
    while (list($chiave, $valore) = each($prova)) {
    echo "$chiave = $valore\n
    ";
    }
    closedir($handle);
    ?>



    Spero di essermi spiegata abbastanza chiaramente! E grazie grazie cmq

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    ciao, prova così:
    codice:
    if ($handle = opendir('news')) {
    	while (false !== ($file = readdir($handle)))
    	if (preg_match ("/^news./", $file)) {
    		$expl=explode("-",$file);
    		$time= mktime (0,0,0,$expl[2],$expl[1],$expl[3]);
    		$prova[$file]=$time;
    	}
    }
    asort($prova);
    reset($prova);
    foreach(array_slice($prova,-3) as $chiave=>$valore)
    	echo "$chiave = $valore\n
    ";
    closedir($handle);
    think simple think ringo

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    4
    ma grazie...ma vieni sei un grandioso!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    4
    Bene le richieste non finiscono mai...ke strano...ora mi hanno chiesto di trasformare tale script in una funzione..ora io ho tentato di farla ma il risultato è parziale ovvero mi compare solamente il prima valore della lista ke voglio ottenere.
    allora tale funzione dovrà stampare attraverso parametri immessi semplicemente la lista dei file presenti nella cartella scelta.
    In segutioìto la funzione dovrà svilupparsi affinchè tra i parametri ci sia anke quanti file debbono essere mostrati!
    Ma andiamo per gradi...
    Allora per spiegare meglio codesto pandemonio di parole metto l'esempio:

    Or dunque..ecco la mia funzione..so già ke qlcs deve essere mutato ma la mia mente limitata nn sa cmq cosa mutare:

    function news_file ($lista) {
    if ($handle = opendir($lista)) {
    while (false !== ($file = readdir($handle)))
    if (preg_match ("/^news./", $file)) {
    $expl=explode("-",$file);
    $time= mktime (0,0,0,$expl[2],$expl[1],$expl[3]);
    $prova[$file]=$time;
    }
    } asort($prova);
    reset($prova);
    foreach ($prova as $chiave => $valore) {
    return "$chiave = $valore\n
    " ;
    }
    closedir($handle);
    }

    questa sarebbe la funzione, grazie la quale, inserendo il parametro $lista ke sarebbe la cartella dove pescare i file, mi stampa a video i nomi dei file presenti nella cartella prestabilita, ma ripeto io ottengo solamente la prima riga della lista ke dovrebbe avere 6 voci dato ke la cartella scelta ha al suo interno proprio 6 file!


    la mia seconda disastrosa funzione:

    function output_lastnews ($val) {
    if ($handle = opendir('news')) {
    while (false !== ($file = readdir($handle)))
    if (preg_match ("/^news./", $file)) {
    $expl=explode("-",$file);
    $time= mktime (0,0,0,$expl[2],$expl[1],$expl[3]);
    $prova[$file]=$time;
    }
    }
    asort($prova);
    reset($prova);
    foreach(array_slice($prova,$val) as $chiave=>$valore)
    return "$chiave = $valore\n
    ";

    closedir($handle);
    }

    Il $val sarebbe quel valore utile per mostrare quel tot di ultimi files immensi...ecco con qst funzione compare solamente un'unica riga!

    Spero di aver spiegato chiaramente..ne dubito perchè avrò ripetuto 850 mila volte uno stesso concetto!!

  5. #5
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    la prima funzione:
    codice:
    function news_file ($lista) {
    	if ($handle = opendir($lista)) {
    		while (false !== ($file = readdir($handle)))
    			if (preg_match ("/^news./", $file)) {
    				$expl=explode("-",$file);
    				$time= mktime (0,0,0,$expl[2],$expl[1],$expl[3]);
    				$prova[$file]=$time;
    			}
    		} 
    	asort($prova);
    	reset($prova);
    	foreach ($prova as $chiave => $valore) {
    		echo "$chiave = $valore\n
    " ;
    	}
    	closedir($handle);
    } 
    news_file("news");

    la seconda funzione:
    codice:
    function output_lastnews ($val) {
    	if ($handle = opendir('news')) {
    		while (false !== ($file = readdir($handle)))
    			if (preg_match ("/^news./", $file)) {
    				$expl=explode("-",$file);
    				$time= mktime (0,0,0,$expl[2],$expl[1],$expl[3]);
    				$prova[$file]=$time;
    			}
    	}
    	asort($prova);
    	reset($prova);
    	foreach(array_slice($prova,-$val) as $chiave=>$valore)
    		echo "$chiave = $valore\n
    ";
    	closedir($handle);
    }
    output_lastnews(3);
    think simple think ringo

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    4
    Ancora grazie...son anke riuscita a fare delle altre modifiche...vediamo se riesco a stupire colui ke mi ha richiesto tutto ciò...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.