Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Php - Mysql > Scripting e Risorse utili
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 25-06-08, 18:29   #1 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
[Tutorial] Esplorare le cartelle

Brevissimo tutorial, su come navigare all'interno di cartelle e sottocartelle, la base di un vero e proprio filemanager.
La visualizzazione delle cartelle è sopra i file.
Spero possa essere utile a qualcuno

manager.php
Codice PHP:
<?
// Prendo dalla variabile get la cartella che voglio esplorare
$c = (isset($_GET['c'])) ? $_GET['c'] : '';

// Nome della cartella
$car 'cartella/'.$c.'/';

function 
GetFile($car)
{
global 
$c;
// Se non è un cartella esco
if(!is_dir($car))
    return 
0;

// Opendir è la funzione per aprire la cartella
$handle opendir($car);

// Ciclo la cartella
while (false !== ($files readdir($handle)))
{
    
// Stampo i file
    
if ($files != '.' && $files != '..')
    {
        if(
is_dir($car.$files))
            
$vc[] = $files;
        else
            
$vf[] = $files;
    }

}
    
// Se sono in una cartella mostro il pulsante per andare alla cartella principale
    
if($c != '')
        echo 
'<a href="manager.php">Pagina Principale</a><br>';
        
    
// Stampo le cartelle e i file
    
echo 'Catelle:<br>';
    for(
$i=0$i<count($vc); $i++)
        echo 
'<a href="manager.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
    echo 
'File:<br>';
    for(
$i=0$i<count($vf); $i++)
        echo 
$vf[$i].'<br>';
}

// Richiamo La funzione
GetFile($car);
?>
Con sti tutorial sto diventando noioso

Ultima modifica di Thedarkita : 25-06-08 18:41.
Thedarkita ora è in linea   Rispondi citando
Vecchio 29-06-08, 10:30   #2 (permalink)
Consiglio Direttivo
 
L'avatar di Samyorn
 
Data di registrazione: Dec 2007
Ubicazione: Catania
Messaggi: 5,847
Invia un messaggio tramite ICQ a Samyorn Invia un messaggio tramite Skype a Samyorn
Assolutamente no

Continua continua che io appunto tutto
__________________
Qui, Quo, Qua
Si parla poco di SMF? Sentiamo l'opinione di chi lo ha provato. Ti amo...brindiAMO?
Conosci GTLab? Devi scegliere un CMS per Forum e non sai quale? Guarda quì!!
Samyorn ora è in linea   Rispondi citando
Vecchio 02-07-08, 00:49   #3 (permalink)
Esperto
 
L'avatar di Jeeves
 
Data di registrazione: May 2008
Messaggi: 333
TheDarkIta, ti posso dire una cosa?


Ad ogni funzione di php devi mettere perforza return() altrimenti leggi l'errore che ti dà, se non sai che mettere a return() metti true
Jeeves non in linea   Rispondi citando
Vecchio 02-07-08, 00:53   #4 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Che errore da?
Thedarkita ora è in linea   Rispondi citando
Vecchio 22-09-09, 20:36   #5 (permalink)
fm7
User
 
L'avatar di fm7
 
Data di registrazione: Feb 2006
Messaggi: 43
Ciao a tutti

ho provato il codice e funziona egregiamente...

Ho inserito la funzione per rendere il file cliccabile ma non mi si apre correttamente e poi vorrei visualizzare solo file con estensione .txt.

Vi posto il codice modificato:


Codice PHP:
<?
// Prendo dalla variabile get la cartella che voglio esplorare
$c = (isset($_GET['c'])) ? $_GET['c'] : '';

// Nome della cartella
$car './'.$c.'/';

function 
GetFile($car)
{
global 
$c;
// Se non è un cartella esco
if(!is_dir($car))
    return 
0;

// Opendir è la funzione per aprire la cartella
$handle opendir($car);

// Ciclo la cartella
while (false !== ($files readdir($handle)))
{
    
// Stampo i file
    

if ($files != '.' && $files != '..')
    {
        if(
is_dir($car.$files))
            
$vc[] = $files;
        else
            
$vf[] = $files;
            
            
            
            
            
    }

}
    
// Se sono in una cartella mostro il pulsante per andare alla cartella principale
    
if($c != '')
        echo 
'<a href="testhome.php">Pagina Principale</a><br>';
        
    
// Stampo le cartelle e i file
    
echo 'Catelle:<br>';
    for(
$i=0$i<count($vc); $i++)
        echo 
'<a href="testhome.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
    echo 
'<br>';
    for(
$i=0$i<count($vf); $i++)
        echo 
'<a href="testhome.php?c='.$c.'/'.$vc[$i].'/'.$vf[$i].'">'.$vf[$i].'</a><br>';//ho modificato questa sezione
}

// Richiamo La funzione
GetFile($car);
?>
Grazie per l'aiuto.

Manuel.

Ultima modifica di Thedarkita : 22-09-09 21:13. Motivo: Inizia con una maiuscola e termina con un punto, aggiunti bbcode
fm7 non in linea   Rispondi citando
Vecchio 22-09-09, 21:11   #6 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Per rendere i file txt cliccabili dovresti fare cosi:
Codice PHP:
 <?php
// Prendo dalla variabile get la cartella che voglio esplorare
$c = (isset($_GET['c'])) ? $_GET['c'] : '';

// Nome della cartella
$car 'cartella/'.$c.'/';

function 
GetFile($car)
{
global 
$c;
// Se non è un cartella esco
if(!is_dir($car))
    return 
0;

// Opendir è la funzione per aprire la cartella
$handle opendir($car);

// Ciclo la cartella
while (false !== ($files readdir($handle)))
{
    
// Stampo i file
    
if ($files != '.' && $files != '..')
    {
        if(
is_dir($car.$files))
            
$vc[] = $files;
        else
            
$vf[] = $files;
    }

}
    
// Se sono in una cartella mostro il pulsante per andare alla cartella principale
    
if($c != '')
        echo 
'<a href="manager.php">Pagina Principale</a><br>';
        
    
// Stampo le cartelle e i file
    
echo 'Catelle:<br>';
    for(
$i=0$i<count($vc); $i++)
        echo 
'<a href="manager.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
    echo 
'File:<br>';
    for(
$i=0$i<count($vf); $i++)
if(
substr($vf[$i], -33) == 'txt')
        echo 
'<a href="'.$car.$vf[$i].'">'.$vf[$i].'</a><br>';
}

// Richiamo La funzione
GetFile($car);
?>
Non ho testato, facci sapere se funziona correttamente.
Thedarkita ora è in linea   Rispondi citando
Vecchio 22-09-09, 21:34   #7 (permalink)
fm7
User
 
L'avatar di fm7
 
Data di registrazione: Feb 2006
Messaggi: 43
Grazie Trackback

funziona alla grandissima.

Pensa che non ci ho dormito per notti per risolvere questo problema con un codice scritto da me.

Sai cosa?, stavo spulciando il manuale php

perchè per quello che serve a me...

mi servirebbe togliere l'estensione txt e vedere il solo titolo del file.

In ogni caso il file funziona perfettamente

e mi hai dato una grossa mano

a buon rendere.

Ultima modifica di Thedarkita : 22-09-09 21:39. Motivo: Inizia con una maiuscola e termina con un punto
fm7 non in linea   Rispondi citando
Vecchio 22-09-09, 21:40   #8 (permalink)
ModSenior
 
L'avatar di Thedarkita
 
Data di registrazione: Aug 2006
Ubicazione: Messina
Messaggi: 6,474
Invia un messaggio tramite Skype a Thedarkita
Prova cosi:
Codice PHP:
<?php
// Prendo dalla variabile get la cartella che voglio esplorare
$c = (isset($_GET['c'])) ? $_GET['c'] : '';

// Nome della cartella
$car 'cartella/'.$c.'/';

function 
GetFile($car)
{
global 
$c;
// Se non è un cartella esco
if(!is_dir($car))
    return 
0;

// Opendir è la funzione per aprire la cartella
$handle opendir($car);

// Ciclo la cartella
while (false !== ($files readdir($handle)))
{
    
// Stampo i file
    
if ($files != '.' && $files != '..')
    {
        if(
is_dir($car.$files))
            
$vc[] = $files;
        else
            
$vf[] = $files;
    }

}
    
// Se sono in una cartella mostro il pulsante per andare alla cartella principale
    
if($c != '')
        echo 
'<a href="manager.php">Pagina Principale</a><br>';
        
    
// Stampo le cartelle e i file
    
echo 'Catelle:<br>';
    for(
$i=0$i<count($vc); $i++)
        echo 
'<a href="manager.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
    echo 
'File:<br>';
    for(
$i=0$i<count($vf); $i++)
if(
substr($vf[$i], -33) == 'txt')
        echo 
'<a href="'.$car.$vf[$i].'">'.substr($vf[$i],0,strlen($vf[$i])-4).'</a><br>';
}

// Richiamo La funzione
GetFile($car);
?>
Thedarkita ora è in linea   Rispondi citando
Vecchio 22-09-09, 22:36   #9 (permalink)
fm7
User
 
L'avatar di fm7
 
Data di registrazione: Feb 2006
Messaggi: 43
Ti ringrazio davvero molto

Funziona perfettamente

Grazie Thedarkita davvero

Sto cercando di imparare il php

Ma non essendo il mio primo lavoro...

Non ho tantissimo tempo..

Ci sentiamo continuo i miei test

Ciao grazie ancora

Ultima modifica di Leonov : 23-09-09 00:03. Motivo: Per favore, iniziare le frasi con la lettera maiuscola.
fm7 non in linea   Rispondi citando
Vecchio 24-09-09, 10:19   #10 (permalink)
fm7
User
 
L'avatar di fm7
 
Data di registrazione: Feb 2006
Messaggi: 43
Ciao Thedarkita

Stavo stavo testando il codice, che va alla grande come ti dicevo,

ma mi sono accorto che i file non sono in ordine alfabetico...

Stavo scervellandomi per ordinarlo

o in ordine alfabetico oppure per uultima modifica

mi puoi dare un ultima mano?

Se puoi ti ringrazio molto.

Buona giornata.

Ultima modifica di Leonov : 24-09-09 15:29. Motivo: Per favore, iniziare le frasi con la lettera maiuscola.
fm7 non in linea   Rispondi citando
Vecchio 24-09-09, 11:51   #11 (permalink)
User
 
L'avatar di Blancks
 
Data di registrazione: Sep 2009
Messaggi: 91
Invia un messaggio tramite MSN a Blancks
Prova così:

Codice PHP:
 <?php
// Prendo dalla variabile get la cartella che voglio esplorare
$c = (isset($_GET['c'])) ? $_GET['c'] : '';

// Nome della cartella
$car 'cartella/'.$c.'/';

function 
GetFile($car)
{
global 
$c;
// Se non è un cartella esco
if(!is_dir($car))
    return 
0;

// Opendir è la funzione per aprire la cartella
$handle opendir($car);

// Ciclo la cartella
while (false !== ($files readdir($handle)))
{
    
// Stampo i file
    
if ($files != '.' && $files != '..')
    {
        if(
is_dir($car.$files))
            
$vc[] = $files;
        else
            
$vf[] = $files;
    }

}

// imposto l'ordinamento alfabetico ai contenuti degli array
sort($vc);
sort($vf);

    
// Se sono in una cartella mostro il pulsante per andare alla cartella principale
    
if($c != '')
        echo 
'<a href="manager.php">Pagina Principale</a><br>';
        
    
// Stampo le cartelle e i file
    
echo 'Catelle:<br>';
    for(
$i=0$i<count($vc); $i++)
        echo 
'<a href="manager.php?c='.$c.'/'.$vc[$i].'">'.$vc[$i].'</a><br>';
    echo 
'File:<br>';
    for(
$i=0$i<count($vf); $i++)
if(
substr($vf[$i], -33) == 'txt')
        echo 
'<a href="'.$car.$vf[$i].'">'.substr($vf[$i],0,strlen($vf[$i])-4).'</a><br>';
}

// Richiamo La funzione
GetFile($car);
?>

In sostanza ho adoperato la funzione sort() per ordinare gli array che accumulano i nomi delle cartelle e dei files presenti nella directory specificata.


Blancks non in linea   Rispondi citando
Vecchio 24-09-09, 13:20   #12 (permalink)
fm7
User
 
L'avatar di fm7
 
Data di registrazione: Feb 2006
Messaggi: 43
Ciao grazie molte.

Si va tutto ok tranne una cosa:

alla fine quando ti trovi nell'ultima directory

e c'è la lista dei file,

spunta l'errore:

Warning: sort() expects parameter 1 to be array, null given in

perchè lui non trova più directory essendoci solo file...

Sto cercando di rimediare

Grazie comunque.

Ultima modifica di Leonov : 24-09-09 15:30. Motivo: Per favore, iniziare le frasi con la lettera maiuscola ed evitare lo stile da telefonino.
fm7 non in linea   Rispondi citando
Vecchio 24-09-09, 13:24   #13 (permalink)
User
 
L'avatar di Blancks
 
Data di registrazione: Sep 2009
Messaggi: 91
Invia un messaggio tramite MSN a Blancks
Puoi ovviare un paio modi:

1) Definisci i due array all'inizio della funzione ( es: $vc = array(); )
2) Fai un bel controllo per entrambi del tipo: if (is_array($vc)) sort($vc);



Prova e fammi sapere
Blancks non in linea   Rispondi citando
Vecchio 24-09-09, 13:48   #14 (permalink)
fm7
User
 
L'avatar di fm7
 
Data di registrazione: Feb 2006
Messaggi: 43
Grazie si adesso è davvero tutto ok.

Scusami ma sto imparando il php di sana pianta,

visto che tutti i miei siti li ho creati con buoni script per carità

e vanno bene

però ho l'esigenza di imparare il php il più possibile....

Adesso ero curioso su come ordinarli

per data di modifica o di upload...

quindi stavo cercando di imparare il comando filemtime

combinato con il sort

Comunque grazie ancora ...

Ultima modifica di Leonov : 24-09-09 15:31. Motivo: Per favore, iniziare le frasi con la lettera maiuscola, curare la punteggiatura ed evitare lo stile-sms.
fm7 non in linea   Rispondi citando
Vecchio 24-09-09, 19:42   #15 (permalink)
fm7
User
 
L'avatar di fm7
 
Data di registrazione: Feb 2006
Messaggi: 43
Ciao scusate ma avrei bisogno di un ulteriore aiuto.

È tutto il giorno che ci sbatto la testa ma

non riesco ad ottenere un' altra funzione.


Sto cercando di crearmi un un file.php che legga, come il precedente,

i file in tutte le cartelle e sottocartelle
,
ma che mi visualizzi gli ultimi 10 file uploadati da me,

o comunque modificati da poco.

Sto studiando i vari comandi sort e filemdate

ma per ora pochi risultati...

Se mi date ancora qualche dritta

mi fate un grosso piacere.

In questi anni ho fatto solo il grafico,

ed è da poco che mi cimento con il php.

Grazie ciao.

(credo che la punteggiatura sia ok ora, chiedo scusa per il precedente messaggio)

Ultima modifica di Leonov : 25-09-09 00:17. Motivo: Maiuscole; si prega di evitare lo stile da telefonino.
fm7 non in linea   Rispondi citando
Rispondi
Tags: ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 20:22.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.