View Full Version : [PHP] Visualizzare lista file
Traxsung
27-12-2006, 13:01
Ho questo script che permette di visualizzare la lista dei file contenuta all'interno di una cartella. Questa file per comodità l'ho chiamato lista.php
Di seguito riporto il sorgente:
<?php
chdir("./");
if( !($dp = opendir("./")) )
die("Non riesco a esplorare il contenuto");
while($file = readdir($dp)) {
if(is_file($file))
$lista[] = $file;
}
sort($lista);
foreach($lista as $index => $nome) {
echo "<center>";
echo "<a href=\"$nome\">$nome</a><br>\n";
echo "</center>";
}
?>
Adesso purtroppo siccome deve visualizzare la lista di tutti i file contenuti all'interno della cartella, mi visualizza anche il file lista.php
Esiste un modo per evitare che visualizza anche questo ??
Ho questo script che permette di visualizzare la lista dei file contenuta all'interno di una cartella. Questa file per comodità l'ho chiamato lista.php
Adesso purtroppo siccome deve visualizzare la lista di tutti i file contenuti all'interno della cartella, mi visualizza anche il file lista.php
Esiste un modo per evitare che visualizza anche questo ??La variabile $_SERVER["SCRIPT_FILENAME"] contiene il path+nome dello script. Fai un semplice basename() per estrarre solo il nome e poi fai un test per vedere se è quello (e in tal caso non lo aggiungi all'array).
Traxsung
27-12-2006, 13:31
<?php
chdir("./");
if( !($dp = opendir("./")) )
die("Non riesco a esplorare il contenuto");
while($file = readdir($dp)) {
if(is_file($file))
$lista[] = $file;
}
sort($lista);
foreach($lista as $index => $nome) {
//se il contenuto della variabile é una stringa diversa dal nome del file lo scrive
if ($nome != "lista.php"){
echo "<center>";
echo "<a href=\"$nome\">$nome</a><br>\n";
echo "</center>";
}
}
?>
Ho provato come mi consigli te... ma non va :(
andbin... puoi spiegarti meglio? Scusami, ma sto studiando php da poco
Traxsung
27-12-2006, 13:47
F12... ho riprovato.. adesso va alla perfezione.
Ti ringrazio :D
Ho provato come mi consigli te... ma non va :( Strano .... dovrebbe essere ok.
andbin... puoi spiegarti meglio? Scusami, ma sto studiando php da poco...
$script_name = basename ($_SERVER["SCRIPT_FILENAME"]);
while ($file = readdir ($dp))
{
if (is_file ($file) && $file != $script_name)
$lista[] = $file;
}
...
questo non funziona xké ti da l'esatta locazione dello script nel file system del computer e non il nome dello script in esecuzione... :mbe: E ti spaventi per questo? :D Basta fare un basename() ... è così difficile? :rolleyes:
Traxsung
28-12-2006, 21:54
Ragazzi al seguente scripterino ho provato ad aggiungere una piccola immagine... ma non va :(
<?php
chdir("./");
if( !($dp = opendir("./")) )
die("Non riesco a esplorare il contenuto");
while($file = readdir($dp)) {
if(is_file($file))
$lista[] = $file;
}
sort($lista);
foreach($lista as $index => $nome) {
//se il contenuto della variabile é una stringa diversa dal nome del file lo scrive
if ($nome != "ok.php"){
echo "<center>";
echo "<a href=\"$nome\">$nome</a><br>\n";
echo "<img src="ok_test.png">\n";
echo "</center>";
}
}
?>
Dove sbaglio ?
echo "<img src="ok_test.png">\n";echo "<img src=\"ok_test.png\">\n";
Traxsung
28-12-2006, 22:53
andbin... ti ringrazio, va che è una meraviglia.
Toglimi una curiosità... perchè si devono mettere i doppi \ ??
Toglimi una curiosità... perchè si devono mettere i doppi \ ??È spiegato <qui> (http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double).
Traxsung
13-01-2007, 12:52
Se volessi visualizzare tutto sotto forma di tabella, che devo fare?
Ho provato così:
<?php
chdir("./");
if( !($dp = opendir("./")) )
die("Non riesco a esplorare il contenuto");
while($file = readdir($dp)) {
if(is_file($file))
$lista[] = $file;
}
sort($lista);
foreach($lista as $index => $nome) {
//se il contenuto della variabile é una stringa diversa dal nome del file lo scrive
if ($nome != "visualizza.php" and $nome != "contatta_Admin.php" and $nome != "admingod.html") {
echo "<table BORDER=1>\n";
echo" <TR>";
echo "<center>";
echo "<a href=\"$nome\">$nome</a><br>\n";
echo "</center>";
echo "</TR>\n";
}
}
?>
Ma rimane invariata la visualizzazione :(
devi rispettare la sintassi:
<table>
<tr>
<td></td>
</tr>
</table>
dove il tag <tr> </tr> identifica una riga, e ogni <td></td> una colonna.
inoltre come fai te crei una tabella per ogni risultato del foreach
echo "<table BORDER=1>\n";
foreach($lista as $index => $nome)
{
//se il contenuto della variabile é una stringa diversa dal nome del file lo scrive
if ($nome != "visualizza.php" and $nome != "contatta_Admin.php" and $nome != "admingod.html")
{
echo" <TR>";
echo "<td>";
echo "<a href=\"$nome\">$nome</a>\n";
echo "</td";
echo "</TR>\n";
}
echo "</table>\n";
Traxsung
13-01-2007, 13:33
vizzz....ho provato come mi hai suggerito te, ma non va ugualmente. Continua a visualizzarmi tutto sotto forma di lista :(
vizzz....ho provato come mi hai suggerito te, ma non va ugualmente. Continua a visualizzarmi tutto sotto forma di lista :(Ma tu cosa vorresti vedere a video?? Una tabella con N righe di 1 sola colonna? Allora, salvo errori o imprecisioni, va bene il codice di vizzz.
Traxsung
13-01-2007, 22:14
andbin...vorrei vedere N righe e due colonne dove c'è anche la possibilita di cancellare il file... potete aiutarmi ?
Grazie
chdir("./");
if( !($dp = opendir("./")) )
die("Non riesco a esplorare il contenuto");
while($file = readdir($dp)) {
if(is_file($file))
$lista[] = $file;
}
sort($lista);
echo "<table>";
foreach($lista as $index => $nome) {
if ($nome != "ok.php"){
echo "<tr>";
echo "<td><a href=\"$nome\">$nome</a></td>\n";
echo "<td><a href=\"delete.php?what=$nome\"><img src=\"ok_test.png\" \></a></td>\n";
echo "</tr>";
}
echo "</table>";
}
non l'ho testato ma dovrebbe andare...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.