Ordinare file per data di creazione

frankiedeguello

Utente Attivo
24 Mag 2005
42
0
0
45
Salve a tutti!

Ho realizzato uno script per le news del sito, non avendo un database salvo le news in un file .txt, ora il problema è che quando ciclo i file della directory "news" vengono visualizzate prima le news più vecchie e poi quelle nuove
Quindi ho utilizzato una funzione trovata in rete che utilizza gli array

PHP:
//INIZIO FUNZIONE
function array_csort() {  //coded by Ichier2003 
    $args = func_get_args(); 
    $marray = array_shift($args); 


    $msortline = "return(array_multisort("; 
    foreach ($args as $arg) { 
        $i++; 
        if (is_string($arg)) { 
            foreach ($marray as $row) { 
                $sortarr[$i][] = $row[$arg]; 
            } 
        } else { 
            $sortarr[$i] = $arg; 
        } 
        $msortline .= "\$sortarr[".$i."],"; 
    } 
    $msortline .= "\$marray));"; 


    eval($msortline); 
    return $marray; 
}
//FINE FUNZIONE

E poi la utilizzo nel ciclo dei miei file

PHP:
if ($handle = opendir('news/')) {
while (false !== ($file = readdir($handle))) { 
if ($file != "." && $file != "..") {
$filenameR = "news/".$file."";
$handleR = fopen($filenameR, "r");
$contents = fread($handleR, filesize($filenameR));
$newsBody = "<div>".$contents."</div><br>";

//CREO L'ARRAY IN CUI PRENDO LA DATA DI MODIFICA DEL FILE
$array = array('data'=>date(YmdHis,filemtime("".$filenameR."")));

//RICHIAMO LA FUNZIONE SUL MIO ARRAY 
$array = array_csort($array,'data',SORT_DESC);

//STAMPO L'ARRAY
print_r($array);
				 
fclose($handleR);
}
}
closedir($handle);
}

Il problema è che vengono creati tanti array quanti sono file (giustamente!) e poi la funzione riordina (correttamente tralatro!) ogni array, penso che dovrei creare un array unico ma non ce la faccio!

Aiutino...:)
TNX!!!
 

alexci

Nuovo Utente
24 Feb 2006
21
0
0
frankiedeguello ha scritto:
$array = array('data'=>date(YmdHis,filemtime("".$filenameR."")));

perchè "".$filenameR."" ? :)

frankiedeguello ha scritto:
Il problema è che vengono creati tanti array quanti sono file (giustamente!) e poi la funzione riordina (correttamente tralatro!) ogni array, penso che dovrei creare un array unico ma non ce la faccio!

Per me è inutilmente complicato. Puoi salvare le news in un file unico (una news per riga) salvando anche la data e l'ora. Volendo non ti serve nemmeno (ti serve solo se vuoi stamparla a video all'utente quando consulta la pagina news), questo perché appendi delle righe a un file, per cui invertendo l'ordine delle righe (dall'ultima alla prima) hai automaticamente l'ordine cronologico delle tue news (ripeto, se salvi data e ora ti serve solo per farla vedere all'utente).

Se le news non sono brevi, nel file di testo principale salvi solo il titolo e il percorso al file txt/htm che contiene la news completa.

esempio news.txt:

20-08-2006 16:30:13;Titolo news 1;news1.htm
20-08-2006 16:35:28;Titolo news 2;news2.htm


esempio lettura news:
PHP:
<?php

$news = file("news.txt");
$news = array_reverse($news);
foreach ( $news as $headline ) {
     $headline = str_replace("\r","",$headline);
     $headline = str_replace("\n","",$headline);
     list($data,$titolo,$newsfile) = explode(";",$headline);
     echo "<h3>$titolo ($data)</h3>";
     include_once "/mienews/".$newsfile;
}

?>

Comunque questo è solo un semplice esempio, ci sono diverse possibilità... peccato che tu non abbia a disposizione mysql, si trattava di fare una semplicissima query.

Ciao!
 
Discussioni simili
Autore Titolo Forum Risposte Data
T.W. Aiuto Per Ordinare Risultati Ricerca Da File CSV PHP 2
ste80 ordinare dati da file di testo PHP 3
M Ordinare una query join PHP 2
L [PHP] ordinare per data PHP 3
F [HTML] Google fogli ordinare per colonne HTML e CSS 0
P [PHP] ordinare un array multidimensionale in modo personalizzato PHP 2
T [PHP] ordinare un campo varchar che contiene numeri PHP 6
Trapano Query in php come ordinare per data e anche per ora PHP 7
L [PHP] ordinare xml PHP 0
Trapano [HTML] Ordinare indirizzi, creando un percorso HTML e CSS 3
M Ordinare i valori in query group by PHP 4
L Ordinare articoli dentro categorie e tag in ordine alfabetico wordpress WordPress 1
M Ordinare array (multidimensionale)? PHP 3
R Ordinare alfabeticamente partendo da una PAROLA MySQL 0
M Ordinare visualizzazione record tramite form con input "text" PHP 2
xone Ordinare tramite menù a tendina i risultati di una query già stampati MySQL 0
M Ordinare array multidimensionale con esclusioni Javascript 0
M [PHP]Ordinare dati secondo prezzo PHP 2
borgo italia ordinare un array bidimensionale Snippet PHP 0
zighy ordinare risultati specifici PHP 20
D Ordinare i risultati di una query dalla fine della tabella MySQL 13
ivarello Ordinare dati Var in ordine numerico PHP 9
C Ordinare parole in base alla lunghezza PHP 1
Trapano Ordinare risultati MySQL 6
C Ordinare array in base alla lunghezza dei valori PHP 3
C Ordinare array multidimensionali PHP 0
C Ordinare alfabeticamente un array e ordinare un secondo array in funzione del primo. Javascript 12
valient13 ordinare in ordine decrescente la lista PHP 2
F Ordinare array bidimensionale PHP 2
P [ASP] [Grauito] Ordinare categoria (era: reder by Cat) Offerte e Richieste di Lavoro e/o Collaborazione 1
G Ordinare query PHP 2
P Ordinare e impaginare una tabella contemporaneamente Javascript 1
novello88 MySQL ORDER BY [Era: ordinare i risultati di una database MySQL] MySQL 1
Monital ordinare il risultato di una query con variabili unite PHP 32
R Ordinare array in base al valore PHP 7
S ordinare array di date PHP 4
R Come ordinare gli articoli per data? Webdesign e Grafica 5
Monital ordinare in una tabella risultati query PHP 10
G ordinare i risultati di una query PHP 4
R Ordinare array in base al valore e alla key PHP 1
A Ordinare query sql in base ai risultati di ricerca PHP 1
M Ordinare il secondo elemento di uno split() PHP 10
N Ordinare per totali Database 0
G VBA e ordinare celle relativamente in Excel 2007 Windows e Software 0
S - Ordinare files uplodati - PHP 0
T Ordinare dati di un Recordset [era:Grosso problema, chi mi aiuta?] Classic ASP 2
F ordinare una form con uno script php PHP 2
F FORM - ordinare l'email... HTML e CSS 3
J ordinare per nome Database 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1

Discussioni simili