Para subir de nivel

Iniciado por dimitrix, 1 Septiembre 2008, 16:23 PM

0 Miembros y 1 Visitante están viendo este tema.

dimitrix

Bueno, pues tengo un problemita, no consigo ver los archivos que hay dentro de una carpeta con este código:

Código (php) [Seleccionar]

<?php

if ($gestor opendir(".")) {
    while (
false !== ($archivo readdir($gestor))) {
        if (
$archivo != "." && $archivo != "index.php" && $archivo != ".." && is_file($archivo)==TRUE) {
            echo 
'<img border="0" src="img/icon_file.gif"> ';
            echo 
'<a href="?h=';
echo "$archivo\n";
echo '" style="text-decoration: none">';
echo "$archivo\n";
echo "</a>";
echo "<br>";
        }
    }
    
closedir($gestor);
}



?>


Lo que quiero es ver los archivos que hay dentro de la carpeta por ejemplo "img" y hago lo siguiente:

Código (php) [Seleccionar]

<?php

if ($gestor opendir("./img")) {
    while (
false !== ($archivo readdir($gestor))) {
        if (
$archivo != "." && $archivo != "index.php" && $archivo != ".." && is_file($archivo)==TRUE) {
            echo 
'<img border="0" src="img/icon_file.gif"> ';
            echo 
'<a href="?h=';
echo "$archivo\n";
echo '" style="text-decoration: none">';
echo "$archivo\n";
echo "</a>";
echo "<br>";
        }
    }
    
closedir($gestor);
}



?>


Pero no me funciona he probado "img", "/img" lo he probado de todos modos y nada, en un código parecido si que me va perfectamente, pero ahí no se que pasa que no me va. No se que puede ser.

Un saludo.




cassiani

Probaste con "../"  :huh:

Dependerá de donde se encuentre el script, por ejmplo, para este ejemplo yo me encuentro en la carpeta "htdocs" y para ver los archivos de la misma, le paso como parámetro la siguiente cadena:

Código (php) [Seleccionar]
$dir="../htdocs";
if ($gestor = opendir($dir))


Pero si quisiera ver los archivos de una carpeta que se encuentra en el mismo directorio que el script, entonces basta con esto:
Código (php) [Seleccionar]

$dir = ("Carpeta/");


Cada vez que quieras ir atrás usas otro "../"

dimitrix

Si lo se, lo he probado de todas las menera y nada, el código entero es este:

Código (php) [Seleccionar]
<head>
<meta http-equiv="Content-Language" content="es">
</head>


<table border="0" width="1242" id="table1">
<tr>
<td width="160">&nbsp;</td>
<td width="53">
<p align="center"></td>
<td width="1015">
<p align="center">Navegador</td>
</tr>
<tr>
<td width="160">

<?php
echo ("<b>Carpetas: </b><br>");

if (
$gestor opendir(".")) {
    while (
false !== ($archivo readdir($gestor))) {
        if (
$archivo != "." && $archivo != "img" && $archivo != ".." && is_dir($archivo)==TRUE) {
            echo 
'<img border="0" src="img/icon_folder_open.gif"> ';
            echo 
'<a href="?f=';
echo "$archivo\n";
echo '" style="text-decoration: none">';
echo "$archivo\n";
echo "</a>";
echo "<br>";
        }
    }
    
closedir($gestor);
}

echo (
"<br><b>Historiales: </b><br>");

if (
$gestor opendir(".")) {
    while (
false !== ($archivo readdir($gestor))) {
        if (
$archivo != "." && $archivo != "index.php" && $archivo != ".." && is_file($archivo)==TRUE) {
            echo 
'<img border="0" src="img/icon_file.gif"> ';
            echo 
'<a href="?h=';
echo "$archivo\n";
echo '" style="text-decoration: none">';
echo "$archivo\n";
echo "</a>";
echo "<br>";
        }
    }
    
closedir($gestor);
}



?>


</td>
<td width="53">
</td>
<td width="1015"><?php include($_GET[h]) ?></td>
</tr>
</table>


Estoy haciendo una aplicación publica para leer el historial de windows de la aplicación Pigdin sin el programa, para así no perderlos y poderlos leer de una forma "amena", aunque eso ahora es lo de menos.

Mira, tengo el código dentro del "index.php" y luego tengo una carpeta llamada "img" con dos imágenes que quiero que me liste para probar.

No me lista nada, pero si creo carpetas y archivos al lado de "index.php" y uso el código que te he pasado me lista todo bien.





cassiani

CitarNo me lista nada, pero si creo carpetas y archivos al lado de "index.php" y uso el código que te he pasado me lista todo bien.

a bueno... mira:

Citarfile_exists
(PHP 3, PHP 4, PHP 5)

Devuelve TRUE si el archivo o directorio especificado por nombre_archivo existe; o FALSE de lo contrario.

En windows, use //nombre_computadora/recurso/nombre_archivo o \\nombre_computadora\recurso\nombre_archivo para revisar archivos en recursos compartidos de red.

En ese caso, la cadena que le pasas a is_file($file) esta incompleta, ya que readdir() solo te devuelve el nombre del fichero.

Código (php) [Seleccionar]

if ($gestor = opendir("img/"))
{
    while (false !== ($archivo = readdir($gestor)))
   {
        $file = "./img/".$archivo;

if ($archivo != "." && $archivo != "index.php" && $archivo != ".." && is_file($file)==TRUE)
       {

dimitrix

Bien, ya me funciona el código, muchas gracias, haber si tardo poco en terminarlo y lo subo por si a alguien le interesa esto, un saludo.