Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    60

    Ordinare per data dei file

    Ciao a tutti sto utilizzando uno script che un altro utente di HTML mi aveva passato per elencare dei file in una directory.
    Per esercitarmi l'ho modificato in alcune sue parti ma ora vorrei riuscire ad ordinare per data i file contenuti nella directory.
    In tutti i file (.txt) sono contenute delle informazioni che io come potete vedere richiamo utilizzando la funzione preg_match.
    La data è preceduta da <data> e seguita da </data>.
    Come faccio a richiamarle tutte e a "dire" allo script di visualizzarmele in ordine?

    Ecco il codice:
    Codice PHP:
    function dir_list($directory FALSE) { 
      
    $dirs= array(); 
      
    $files = array(); 
      
      if (
    $handle opendir("./" $directory)) { 
        while (
    $file readdir($handle)) { 
          if (
    is_dir("./{$directory}/{$file}")) { 
            if (
    $file != "." $file != ".."$dirs[] = $file
          } else { 
            if (
    $file != "." $file != ".."$files[] = $file
         } 
      } 

    closedir($handle); 
    reset($dirs); 
    sort($dirs); 
    reset($dirs); 
    reset($files); 
    sort($files); 
    reset($files); 
    while(list(
    $key$value) = each($files))

    $contents file_get_contents($directory.$value);
    preg_match ("/<name>([^`]*?)<\/name>/"$contents$matches_name);
    preg_match ("/<price>([^`]*?)<\/price>/"$contents$matches_price);
    preg_match ("/<dove>([^`]*?)<\/dove>/"$contents$matches_dove);
    preg_match ("/<pic1>([^`]*?)<\/pic1>/"$contents$matches_pic1);
      echo 
    "
    <a href='open_prod.php?file="
    .$value."'><div id='tab_file'><table width='100%' border='0' cellpadding='0'> <tr> 
     <td width='20%'>[img]writer_dir/catalog/img/"
    $matches_pic1[1]."[/img]</td>
        <td width='60%'>[b]"
    .$matches_name[1]."[/b]</td>
        <td width='20%'><h3>€ "
    .$matches_price[1]."</h3>[b]".$matches_dove[1]."[/b]</td>
       </tr></table></div></a>"
    ; }
    }
          
    dir_list("writer_dir/catalog/prod/"); 
    Grazie in anticipo per l'aiuto!

  2. #2
    prendi esempio

    Codice PHP:
    $files = array(
    '<data>2012-11-01</data>',
    '<data>2012-10-02</data>',
    '<data>2012-12-02</data>',
    '<data>2013-01-01</data>'
    );

    //ottengo array elemento,data
    $files array_map(function($el){

    preg_match('/<data>(.*)<\/data>/',$el,$matches);

        return array(
    $el,$matches[1]);

    },
    $files);

    print_r($files);

    //ordino per data asc
    uasort($files,function($a,$b){

        if(
    $a[1] == $b[1])
            return 
    0;
            
        return 
    strtotime($a[1]) < strtotime($b[1]) ? -1;

    });

    print_r($files); 
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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 © 2024 vBulletin Solutions, Inc. All rights reserved.