Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75

    ordinamento naturale natsort

    Ciao,

    ho questo codice che con il ciclo mi visualizza i documenti presenti in una cartella e con la funzione natsort da un ordinamento naturale

    <?
    echo "<TABLE BORDER=\"0\" WIDTH=\"90%\" CELLPADDING=\"5\" CELLSPACING=\"5\">";
    error_reporting (0);
    $SortArray = array();
    if ($handle = opendir('../blog')) {
    while (false !== ($file = readdir($handle))) {
    if ($file != "." && $file != ".." && $file != "ricerca.php" && $file != "counter") {
    $SortArray[] = $file;
    }
    }
    closedir($handle);
    }
    natsort($SortArray);
    foreach($SortArray as $file) {
    echo "<TR><TD CLASS=\"download_a\">";
    $scatti ="$file/contatore.txt";
    echo "<A HREF=\"../blog/$file\">$file</A>";
    $filename = "../blog/$file";
    if (file_exists($filename)) {
    echo "ultimo aggiornamento: " . date("d.m.Y", filectime($filename));
    echo "
    ";
    }
    echo "<H6></H6>";
    include "../blog/counter/".substr("$file",0,-4).".php.desc";
    echo "</TD><TD CLASS=\"download_b\">";
    include "../blog/counter/".substr("$file",0,-4).".php.txt";
    echo "</TD></TR>";
    }
    echo "</TABLE>";
    ?>

    però non elenca correttamente i documenti con il nome come una data tipo 01.02.2008.php 12.04.2008.php ecc . . . non leggendo il numero che segue dopo il punto e non li ordina correttamente - vedi esempio

    http://www.semafolle.it/page/blog.php

    ho provato anche le funzioni - strnatcmp() e altre ma non corregge.

    Potete darmi utili suggerimenti?
    CIVIS ROMANVS SVM

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Non ho letto il codice ma per avere un ordinamento corretto dovresti nominare i file con le cifre più significative a sinistra (quindi anno,mese,giorno,ecc) e non viceversa.

  3. #3
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75
    Grazie,

    ma vorrei mantenere la data nel formato italiano

    gg.mm.aaaa
    CIVIS ROMANVS SVM

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Prova così allora

    Codice PHP:
    list($giorno,$mese,$anno) = explode('.',$file);
    $inverti $anno.'-'.$mese.'-'.$giorno;
    $sortArray[$inverti] = $file;
    ksort($sortArray); 

  5. #5
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75
    si è interessante ma lo script legge ed elenca tutti files presenti di cui alcuni sono in formato data gg.mm.aaaa altri hanno nomi in lettere

    http://www.semafolle.it/page/blog.php

    ora in questi giorni inseriro il comando per non discriminare le maiuscole e minuscole ma il formato data non riesco a risolverlo
    CIVIS ROMANVS SVM

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Vedi se così' va
    codice:
    if (preg_match("#^[\d]{2}\.[\d]{2}\.[\d]{4}#",$file)) { 
    $reverse = substr($file,6,4).'-'.substr($file,3,2).'-'.substr($file,0,2);
    $ordina[$reverse.substr(strtolower($file),10)] = $file; 
    }
    else
    $ordina[strtolower($file)] = $file;

  7. #7
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75
    Grazie,

    e dimmi tu come lo integresti nello script sopra riportato?
    Ho fatto due prove e non riesco.
    CIVIS ROMANVS SVM

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    Schiaffalo dentro il tuo while al posto di ciò che avevi scritto.

  9. #9
    Utente di HTML.it L'avatar di dordy
    Registrato dal
    Aug 2003
    Messaggi
    75
    mmh???

    bo non riesco . . .
    CIVIS ROMANVS SVM

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.