Script esplora risorse

atonyc

Utente Attivo
10 Dic 2008
67
0
0
Ciao ragazzi dovrei portare delle piccole modificeh a questo script ma il codice e veramente troppo complesso per me, lo script è praticamente un esplora risorse parte da una directory principale (da me chiamata archivio) per passare alle varie sotto directory e i file in esse contenuti.

Dovrei inserigli queste due particolarità
1) Tutte le varie sottodirectory e file devono apparire in ordine alfabedico e non di creazione (ora se ci fate case mette in alto quella con data di creazione più vecchia per poi proseguire con le altre)
2) Dovrei inserire dei segnalibri ai collegamenti ipertestuali, se ci fate casa se cliccate su una qualsiasi directori lo script si riposizione in alto alla pagina, mentre io vorrei che si posizionasse nel punto in cui clicco.

Spero sia tutto chiaro e vi ringrazio per l'aiuto in anticipo.


PHP:
<?php

function getlastfile($dir)
 {
   $dirarr[]="";
   if(!($dp = opendir($dir)))
    die("woops");
    while($file = readdir($dp))
      if($file != '.' && $file != '..')     
        array_push($dirarr,$file);
   $size=sizeof($dirarr)-1;
 return $dirarr[$size];
 }

// Note to self nodisp variable is simply for looks it serves no real purpose in the function 
// it is false if the last directory is the currenty directory being traversed
function traverse_dir($dirp,$dir_array,$nodisp)
{
  global $PHP_SELF;
  static $loop=1;
  $size = (sizeof($dir_array) - 1);
  $d=rawurlencode(implode("*",$dir_array));
  $dirp .= "/" . $dir_array[$loop];
  $Ivar = "images/tree_split.gif";
  if($loop < $size)
   $dircheck = $loop +1;
  else 
   $dircheck = $loop;
  

 $var2 ="";

  for($iloop=0; $iloop < $loop; $iloop++)
     $var2 .="<img src='images/tree_vertline.gif'>";
    if($nodisp == 0)
      $var2 = substr($var2,36) . " &nbsp&nbsp&nbsp";  
 
  if(!($dp = opendir($dirp)))
    die("Sorry, Page cannot be displayed "); //<script>history.go(-1)</script>");

while($file = readdir($dp))
      if($file != '.' && $file != '..')     
       {
         
         if($lastfile == $file)
             $Ivar = "images/tree_end.gif";
         if($lastfile == $file && $lastfile == $dir_array[$size])
             $nodisp = 0;
         $files = filesize("$dirp/$file");
         $filep = rawurlencode($file);
         // This checks to see if there are anymore sub directories in the dir_array that have not yet been traversed  
          if(is_dir("$dirp/$file") &&  ("$dirp/$dir_array[$dircheck]" == "$dirp/$file") )
            { 
              echo "<tr>$var2<img src=$Ivar><a class=top href='$PHP_SELF?closed=1&fold=$filep&d=$d'><img border=0 src='images\folderopen.gif'></a><a class=top href='$PHP_SELF?closed=1&fold=$filep&d=$d'><b>$file</b></a></tr>";
               $loop++;
                traverse_dir($dirp,$dir_array,$nodisp);
            }
          else if(is_dir("$dirp/$file"))
            echo "<tr>$var2<img src=$Ivar><a class=top href='$PHP_SELF?opened=1&fold=$filep&d=$d'><img border=0 src='images\folder.gif'></a><a class=top href='$PHP_SELF?opened=1&fold=$filep&d=$d'><b>$file</b></a></tr>";
          else
            echo "<tr>$var2<img src=$Ivar><a class=top target=_blank href='$dirp/$file'><img border=0 src='images\file.gif'></a><a class=top target=_blank href='$dirp/$file'>$file</a></tr>"; 

   
 
      }

  $loop++;
 return 0;
}


?>
<?php
if(!isset($fold))
 $fold="";
?>

 
   
<?php
/******************** Define Variables for main code ****************************/
 // Declare some variables that are going to be needed later on


  $basedir="Archivio";   
   if(!isset($d))
    $d="";
   else
    {
      $d = rawurldecode($d);
      $dir_array2 = explode("*",$d);
    }
   if(!isset($dir_array2))
     $dir_array2[0] = $basedir;

    $dir_array = $dir_array2;
    $dir = $dir_array[0]; 

   if(!isset($opened))
     $opened = 0;
   else
     $opened = 1;
   if(!isset($closed))
     $closed = 0;
   else
     $closed = 1;
   
   if($basedir != $dir_array[0])
      die("Sorry, Page cannot be displayed "); //<script>history.go(-1)</script>");
  

/*********************************************************************************/
 // That should be good enough next define what to do if a directory has been opened or closed

   if($closed == 1)
    {
      $fold = rawurldecode($fold);      
      $size2 = sizeof($dir_array)-1;
       while($dir_array[$size2] != $fold)
        {
         array_pop($dir_array); 
         $size2--;
        }
       array_pop($dir_array);
      $opened =1;
    }     

   if($opened == 1)
    {
     if($closed != 1)
      {
       $fold = rawurldecode($fold);
       $dir_array[] = $fold;
      }
 // Above we just added the new folder on and we are going to check and see if it the array still makes a vaild directory. If it doesn't - unload the array back to the base directory and add the new folder on again.
   
        $tmp_dir = implode("/" , $dir_array);
        if(!($tmp = @opendir($tmp_dir)))
          {
           $size2 = sizeof($dir_array) - 1;
             while(!($tmp = @opendir($tmp_dir)))
               {
                 array_pop($dir_array);
                 array_pop($dir_array);
                  $dir_array[] = $fold;
                  $tmp_dir = implode("/" , $dir_array);
               }
          }
     }

/*********************************************************************************************/
?>
<tr>
	<td>&nbsp;</td>
</tr>
<table  width="100%" >
 
    <?php
/*********************************************************************************************/




// Thats it for the opened and closed code we need now were going to execute the initial directory traversion on the base directory.


if(sizeof($dir_array)-1 == 0)
 $size = 0;
else
 $size = 1;

  if(!($dp = opendir($dir)))
    die("Sorry, Page cannot be displayed "); //<script>history.go(-1)</script>");
  


  $d=rawurlencode(implode("*",$dir_array));
  $Ivar = "images/tree_split.gif";
  echo "<tr><a href='$PHP_SELF'><img border=0 src='images/drive.gif'></a><b><a class=top href='$PHP_SELF'></a></b></tr>";
    while($file = readdir($dp))
      if($file != '.' && $file != '..')     
        { 
          $files = filesize("$dir/$file");
          $filep = rawurlencode($file);
           if($lastfile == $file)
             $Ivar = "images/tree_end.gif";
           if( (is_dir("$dir/$file")) && ("$dir/$dir_array[$size]" == "$dir/$file") )
             {
               echo "<tr><img src=$Ivar><a class=top href='$PHP_SELF?closed=1&fold=$filep&d=$d'><img border=0 src='images\folderopen.gif'></a><b><a class=top href='$PHP_SELF?closed=1&fold=$filep&d=$d'>$file</a></b></tr>";
                traverse_dir($dir,$dir_array,1);
              }
             
           else if(is_dir("$dir/$file"))
             echo "<tr><img src=$Ivar><a class=top href='$PHP_SELF?opened=1&fold=$filep&d=$d'><img border=0 src='images\folder.gif'></a><b><a class=top href='$PHP_SELF?opened=1&fold=$filep&d=$d'>$file</a></b></tr>";            
           else
             echo "<tr><img src=$Ivar><a class=top target=_blank href='$basedir/$file'><img border=0 src='images\file.gif'></a><a class=top target=_blank href='$basedir/$file'>$file</a></tr>";
         }


?>
 

atonyc

Utente Attivo
10 Dic 2008
67
0
0
Niento ho provato in tutti i modi, ci sono riuscito parzialemente, ovvero mi viene ordinato tutto alfabeticamente tranne le directory che si aprono cliccando sulla directory madre...

Help Help Help
 

atonyc

Utente Attivo
10 Dic 2008
67
0
0
Sono riuscito a inserire i segnalibri nei collegamenti ipertestuali, ma per quanto riguarda l'ordinamento alfabetico proprio non riesco ( se qualche anima pia mi darebbe una mana ah ah)

Cmq posto il codice modificato nel caso fosse utile a qualcuno

PHP:
<?php

function getlastfile($dir)
 {
   $dirarr[]="";
   if(!($dp = opendir($dir)))
    die("woops");
    while($file = readdir($dp))
      if($file != '.' && $file != '..')     
        array_push($dirarr,$file);
   $size=sizeof($dirarr)-1;
 return $dirarr[$size];
 }

// Note to self nodisp variable is simply for looks it serves no real purpose in the function 
// it is false if the last directory is the currenty directory being traversed
function traverse_dir($dirp,$dir_array,$nodisp)
{
  global $PHP_SELF;
  static $loop=1;
  $size = (sizeof($dir_array) - 1);
  $d=rawurlencode(implode("*",$dir_array));
  $dirp .= "/" . $dir_array[$loop];
  $Ivar = "images/tree_split.gif";
  if($loop < $size)
   $dircheck = $loop +1;
  else 
   $dircheck = $loop;
  

 $var2 ="";

  for($iloop=0; $iloop < $loop; $iloop++)
     $var2 .="<img src='images/tree_vertline.gif'>";
    if($nodisp == 0)
      $var2 = substr($var2,36) . " &nbsp&nbsp&nbsp";  
 
  if(!($dp = opendir($dirp)))
    die("Sorry, Page cannot be displayed "); //<script>history.go(-1)</script>");
  $lastfile = getlastfile($dirp);
   while($file = readdir($dp))
      if($file != '.' && $file != '..')     
       {
         
         if($lastfile == $file)
             $Ivar = "images/tree_end.gif";
         if($lastfile == $file && $lastfile == $dir_array[$size])
             $nodisp = 0;
         $files = filesize("$dirp/$file");
         $filep = rawurlencode($file);
         // This checks to see if there are anymore sub directories in the dir_array that have not yet been traversed  
          if(is_dir("$dirp/$file") &&  ("$dirp/$dir_array[$dircheck]" == "$dirp/$file") )
            { 
              echo "<tr>$var2<img src=$Ivar><a name='$dirp/$file' class=top href='$PHP_SELF?closed=1&fold=$filep&d=$d#$dirp/$file'><img border=0 src='images\folderopen.gif'></a><a name='$dirp/$file' class=top href='$PHP_SELF?closed=1&fold=$filep&d=$d#$dirp/$file'><b>$file</b></a></tr>";
              $loop++;
                traverse_dir($dirp,$dir_array,$nodisp); 
            }
          else if(is_dir("$dirp/$file"))
            echo "<tr>$var2<img src=$Ivar><a name='$dirp/$file' class=top href='$PHP_SELF?opened=1&fold=$filep&d=$d#$dirp/$file'><img border=0 src='images\folder.gif'></a><a name='$dirp/$file' class=top href='$PHP_SELF?opened=1&fold=$filep&d=$d#$dirp/$file'><b>$file</b></a></tr>";
          else
            echo "<tr>$var2<img src=$Ivar><a class=top target=_blank href='$dirp/$file'><img border=0 src='images\file.gif'></a><a class=top target=_blank href='$dirp/$file'>$file</a></tr>"; 
 
      }

  $loop++;
 return 0;
}


?>
<?php
if(!isset($fold))
 $fold="";
?>

 
   
<?php
/******************** Define Variables for main code ****************************/
 // Declare some variables that are going to be needed later on


  $basedir="Archivio";   
   if(!isset($d))
    $d="";
   else
    {
      $d = rawurldecode($d);
      $dir_array2 = explode("*",$d);
    }
   if(!isset($dir_array2))
     $dir_array2[0] = $basedir;

    $dir_array = $dir_array2;
    $dir = $dir_array[0]; 

   if(!isset($opened))
     $opened = 0;
   else
     $opened = 1;
   if(!isset($closed))
     $closed = 0;
   else
     $closed = 1;
   
   if($basedir != $dir_array[0])
      die("Sorry, Page cannot be displayed "); //<script>history.go(-1)</script>");
  

/*********************************************************************************/
 // That should be good enough next define what to do if a directory has been opened or closed

   if($closed == 1)
    {
      $fold = rawurldecode($fold);      
      $size2 = sizeof($dir_array)-1;
       while($dir_array[$size2] != $fold)
        {
         array_pop($dir_array); 
         $size2--;
        }
       array_pop($dir_array);
      $opened =1;
    }     

   if($opened == 1)
    {
     if($closed != 1)
      {
       $fold = rawurldecode($fold);
       $dir_array[] = $fold;
      }
 // Above we just added the new folder on and we are going to check and see if it the array still makes a vaild directory. If it doesn't - unload the array back to the base directory and add the new folder on again.
   
        $tmp_dir = implode("/" , $dir_array);
        if(!($tmp = @opendir($tmp_dir)))
          {
           $size2 = sizeof($dir_array) - 1;
             while(!($tmp = @opendir($tmp_dir)))
               {
                 array_pop($dir_array);
                 array_pop($dir_array);
                  $dir_array[] = $fold;
                  $tmp_dir = implode("/" , $dir_array);
               }
          }
     }

/*********************************************************************************************/
?>
<tr>
	<td>&nbsp;</td>
</tr>
<table  width="100%" >
 
    <?php
/*********************************************************************************************/




// Thats it for the opened and closed code we need now were going to execute the initial directory traversion on the base directory.


if(sizeof($dir_array)-1 == 0)
 $size = 0;
else
 $size = 1;

  if(!($dp = opendir($dir)))
    die("Sorry, Page cannot be displayed "); //<script>history.go(-1)</script>");
  $lastfile = getlastfile($dir); 
  $d=rawurlencode(implode("*",$dir_array));
  $Ivar = "images/tree_split.gif";
  echo "<tr><a href='$PHP_SELF'><img border=0 src='images/drive.gif'></a><b><a class=top href='$PHP_SELF'></a></b></tr>";
    while($file = readdir($dp))
      if($file != '.' && $file != '..')     
        { 
          $files = filesize("$dir/$file");
          $filep = rawurlencode($file);
           if($lastfile == $file)
             $Ivar = "images/tree_end.gif";
           if( (is_dir("$dir/$file")) && ("$dir/$dir_array[$size]" == "$dir/$file") )
             {
               echo "<tr><img src=$Ivar><a class=top href='$PHP_SELF?closed=1&fold=$filep&d=$d'><img border=0 src='images\folderopen.gif'></a><b><a class=top href='$PHP_SELF?closed=1&fold=$filep&d=$d'>$file</a></b></tr>";
                traverse_dir($dir,$dir_array,1);
              }
             
           else if(is_dir("$dir/$file"))
             echo "<tr><img src=$Ivar><a class=top href='$PHP_SELF?opened=1&fold=$filep&d=$d'><img border=0 src='images\folder.gif'></a><b><a class=top href='$PHP_SELF?opened=1&fold=$filep&d=$d'>$file</a></b></tr>";            
           else
             echo "<tr><img src=$Ivar><a class=top target=_blank href='$basedir/$file'><img border=0 src='images\file.gif'></a><a class=top target=_blank href='$basedir/$file'>$file</a></tr>";
         }


?>
 

atonyc

Utente Attivo
10 Dic 2008
67
0
0
so che dovrei iserire la funzione natsort ma proprio nn riesco a capire dove inserirla
 
Discussioni simili
Autore Titolo Forum Risposte Data
A Implementare script esplora risorse PHP 4
F Somma di più tabelle da script Javascript 0
L Script per convertire numeri in parole Javascript 2
H Eliminazione script. Photoshop 0
S Script Google Translate scomparso HTML e CSS 3
P lanciare script asp (o php) da jquery Javascript 1
G Script notifiche dekstop aiuto Javascript 0
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
P Passare solo alcuni parametri a script per CSV PHP 0
M Collegamento tra form html e script php PHP 4
F Script java elenco alfabetico non funziona Javascript 3
F Script non funzionante. Devo elencare in ordine alfabetico un elenco di nominativi, ma lo script non Javascript 2
P Script upload immagini jQuery 0
M Premature end of script headers PHP 1
Cosina script data aggiornamento pagina Javascript 1
R Distribuire uno Script "Facebook Auto Post" PHP 0
F Creazione script Tv Presentati al Forum 1
N Script elenco file HTML HTML e CSS 5
felino PHP e script generazione file excel PHP 2
MarcoGrazia Se non sai se riceverai da GET o da POST, puoi verificarlo e far scegliere allo script. Snippet PHP 0
Beppe2 Ritardare esecuzione script Javascript 2
R Primo script in PHP / CSS PHP 4
felino Script PHP per leggere un file JSON. autenticazione? PHP 4
T [a pagamento] programmatore PHP che mi aiuti a migrare gli script da vecchia versione PHP a nuova Offerte e Richieste di Lavoro e/o Collaborazione 1
T script jquery non funziona più dopo il passaggio a MVC jQuery 5
F Aiuto java script Javascript 2
Max 1 [PHP] Script che funziona in locale e non online PHP 16
K Help: problema con uno script di booking in php! PHP 0
O [PHP] inviare dati da form e script ajax PHP 0
P [PHP] Aggiungere un mio script a prestashop? PHP 10
D [Javascript] inserire uno script in un file php Javascript 6
Gabriele15497514 php testo errato durante la lettura del file txt quando lo script viene eseguito contemporaneamente PHP 3
R [Javascript] Aiuto su questo script Javascript 2
M [HTML] Stesso script su 2 blog CMS (Content Management System) 4
romeocharly [PHP] Script per rinominare in automatico le immagini inviate da ftp PHP 0
elpirata [Javascript] Lo script alle volte funzione altre volte no Javascript 0
A [PHP] Script con array con numeri che iniziano per 00 PHP 2
F [HTML] Failed script su coffee cookies HTML e CSS 1
TpD [PHP] Script per organizzazione presenza eventi PHP 3
D [PHP] script che invii una mail automatica dopo risposta ad una discussione di un forum PHP 0
T interpretare uno script php non fatto da me... PHP 3
Cosina Modifica script textarea jQuery 0
O Script PHP e loro visibilità PHP 4
A [PHP] Script Ip camera su altervista senza sottocartelle PHP 6
M [PHP] Problema script ricezione e invio posta... PHP 1
Y Codice AdSense su script php PHP 4
L [PHP] Problema Script 'Not Found' PHP 4
webmachine [PHP] Script per censurare parole PHP 4
L [HTML] Domanda: Utilizzo script HTML e CSS 0
C richiamare una funzione in un altro script php PHP 1

Discussioni simili