Foros del Web » Programando para Internet » PHP »

No mostrar todas las imagenes

Estas en el tema de No mostrar todas las imagenes en el foro de PHP en Foros del Web. Hola, encontré por ahi este script en php que muestra las iamgenes de un directorio, el problema es que muestra imagenes con la url así: ...
  #1 (permalink)  
Antiguo 06/07/2010, 12:30
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
No mostrar todas las imagenes

Hola, encontré por ahi este script en php que muestra las iamgenes de un directorio, el problema es que muestra imagenes con la url así:

http://miweb.com/
http://miweb.com/images/

Es decir que se mustra la raiz del sitio (/..) y (/.) también como imagen :S



Código PHP:
<?php
$directorio 
opendir("./images/");
while (
$archivo readdir($directorio))
   {
   
$nombreArch ucwords($archivo);
   
$nombreArch str_replace("..""Atras"$nombreArch);
   
$imagen "<a href='/images/$archivo'><img src='/images/$archivo' width='100' height='100' border='0'></a>";
   echo 
$imagen;

   }
closedir($directorio); 

?>
  #2 (permalink)  
Antiguo 06/07/2010, 13:18
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: No mostrar todas las imagenes

con un simple if($archivo != '..' && $archivo != '.') basta o no!!!?
  #3 (permalink)  
Antiguo 06/07/2010, 13:34
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: No mostrar todas las imagenes

Tienes que filtrar:

Código PHP:

//dentro del while
if($archivo != "." && $archivo != ".."){

//ahora colocas la url...


  #4 (permalink)  
Antiguo 06/07/2010, 13:36
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: No mostrar todas las imagenes

Perdonen ya está :S


Muchas gracias

Pero otra cosa, si hay 1000 imagenes, no se pueden mostrar en una misma página, hay algún modo de poner un limite de imagenes a mostrar y algun enlace para pasar a las siguientes?
  #5 (permalink)  
Antiguo 06/07/2010, 16:49
Avatar de wiwi74  
Fecha de Ingreso: marzo-2008
Mensajes: 515
Antigüedad: 16 años, 1 mes
Puntos: 10
Respuesta: No mostrar todas las imagenes

Necesitaras paginar:

Un tipo de paginador, hay ...varios.
http://jpinedo.webcindario.com/scripts/paginator/

Si no te sirve busca "paginador para galeria de imagenes"

Que pena que aun no termine el mio... pronto lo pondre como aporte.

Asi va quedando:
http://75.127.104.17/~wiwi74/foros_d...ery/galery.php

Última edición por wiwi74; 06/07/2010 a las 16:58
  #6 (permalink)  
Antiguo 07/07/2010, 08:46
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
miren con este código que es el de la galeria, como se puede hacer un paginador sin mysql?

<?php
$directorio = opendir("./images/");
while ($archivo = readdir($directorio))
{
$nombreArch = ucwords($archivo);
$nombreArch = str_replace("..", "Atras", $nombreArch);
$imagen = "<a href='?s=viewer&id=$archivo'><img src='/images/$archivo' width='100' height='100' border=0></a>";
if($archivo != "." && $archivo != ".."){
echo $imagen;
}
}
closedir($directorio);

?>


Y encontré un archivo que lo lleva, pero no se como implementarlo :/

Código PHP:
  <table width='50%' border='0' cellpadding='0' cellspacing='0' align='center' >
<?
// Incluimos archivo de configuracion
@include("configuracion.php");
// configuramos el directorio que queremos listar:
if(!file_exists("descargas/")) { mkdir("descargas/"0777); }
if(
$secciones != "") { $sec "<a  href='javascript:history.go(-1);'>- Anterior</a>" ; }
if(
$secciones == "") { $web "descargas/" ; }
if(
$secciones != "") { $web "descargas/$secciones" ; }
$dir opendir("$web") ;
$parimpar ;
echo 
"<table width=50%  border=0 cellspacing=0 cellpadding=0><tr><td>$sec</td></tr></table>";
echo 
"<table width=50%  border=0 cellspacing=0 cellpadding=0>" ;
while (
$file readdir($dir)) {
$parimpar++ ;
// evitamos q muestre los puntos de volver al directorio superior
if(eregi("config.php"$file)){
echo 
"<script>location.href='index.php?id=descargas'</script>";
}

if(
strpos($file".") < 1&& $file != "." && $file != ".."&& $file != "error_log") {
// Contar el total
$dir2 opendir("descargas/".$secciones.$file);

        
$i 0;

        while (
$elemento readdir($dir2))
        {
            
$elemento strtolower($elemento);

            if ((
strpos($elemento".php") > 0) && $elemento != "index.php")

            
$i++;
        }
//mostramos columnas
   
if($parimpar == 1) { echo "
; }
   if(
$parimpar == 0) { echo "" ; }
} }

// si el numero de archivos es impar añadimos esta columna para no descudrar la tabla
if($parimpar == 1) { echo "" ; }

closedir($dir);
?>  

                  <?
if($buscar){
// Incluimos todos los descargas
if($campo != ""){
echo 
"<center>Resultados de la busqueda :</center><br>";
}
// Tomamos el total de descargas
$archi "descargas/contador.txt";
$abrir fopen($archi,"r");
$total_descargas fread($abrirfilesize($archi));
fclose($abrir);
// Recogemos la informacion de cada archivo
for($bn=0;$bn<$total_descargas;$bn++){
if(
file_exists("descargas/$secciones$bn.php")) {
include(
"descargas/$secciones$bn.php");
// Comprobamos que la palabra coincide
if($campo != ""){
if(
eregi("$campo"$titulo_descarga)){
echo 
"<a href='descargas.php?e=$secciones$bn'><li> $titulo_descarga</a></li>";
}
}
}
}
}
?>
             
<? if($secciones != "./") { ?>
<?
// Nombre del archivo
if($secciones != "") {
$secciones2 str_replace("/"," > ",$secciones);
echo 
"$secciones2";
}
else
{
echo 
"Principal";
}
?>
<? 
} else {echo "Principal";}?>
<br>
<br>
<?
if($borrar && file_exists("descargas/$borrar.php")) {
$_GET["borrar"];
@include(
"descargas/$borrar.php");
// si el usuario borra un mensaje
if ($nick_descarga == $_COOKIE[ucnnick] or $_COOKIE[ucnnick] == $administador) {
@
unlink("descargas/$borrar.php") ;
@
unlink("descargas/$borrar.zip") ;
echo 
"<p>La descarga ha sido borrada con éxito. Haz click <a href=index.php?id=descargas>aquí</a> para regresar.<br>" ;
}
}
?>
<?
if ($e && file_exists("descargas/$e.php")) {
include (
"descargas/$e.php");

function 
quitar($texto) {
$texto trim($texto) ;
$texto htmlspecialchars($texto) ;
return 
$texto ;
}
$cnnick quitar($nick_descarga);
$cnfecha quitar($fecha_descarga) ;
$cntitulo quitar($titulo_descarga) ;
$cndescripcion quitar($descripcion_descarga) ;
$cnhits $hits_descarga ;
$cnarchivo quitar($archivo_descarga) ;

$edita .= "<"."?\n";
$edita .="\$nick_descarga = \"$cnnick\";\n";
$edita .="\$fecha_descarga = \"$cnfecha\";\n";
$edita .="\$titulo_descarga = \"$cntitulo\";\n";
$edita .="\$descripcion_descarga = \"$cndescripcion\";\n";
$edita .="\$archivo_descarga = \"$cnarchivo\";\n";
$edita .="\$hits_descarga = \"$cnhits\";\n";
$edita .= "?".">";

$edit fopen("descargas/$e.php","w");
fputs($edit,$edita);
fclose($edit);


echo 
"<script>location='descargas/$e.zip'</script>";
}
?>
<br>
<table width="100%" border="0" cellspacing="0" cellpadding="5" style='border: #757575 1 solid'>
  <tr bgcolor="#dddddd"> 
    <td width="23%" class="tabla_subtitulo"><strong>Titulo</strong></td>
    <td width="52%" class="tabla_subtitulo"><strong>Descripcion</strong></td>
    <td width="10%" class="tabla_subtitulo"> <strong>Tama&ntilde;o</strong></td>
    <td width="15%" class="tabla_subtitulo"><strong>Hits</strong></td>
  </tr>
  <?php
  
if($secciones == "") { $web "descargas/" ; }
if(
$secciones != "") { $web "descargas/$secciones" ; }

                                 
// Le damos valor a las variables de configuración
$Config['Path'] = "$web";         // Directorio donde stan los archivos a mostrar.
$Config['Show'] = 20;             // Numero de archivos a mostrar por páginas.

$Show['20 Anteriores'] = 0;        // Por defecto no se mostrara 10 Anteriores
$Show['20 Siguientes'] = 0;        // Por defecto no se mostrara 10 Siguientes

if ($c == ""$c 0;            // Si $c no tiene valor es porque es la primera vez que se visita la página.
$dir = @opendir($Config['Path']);         // Abrimos el directorio donde estan los archivos
$Plus $c;                    // Le damos el valor de $c a $plus porque el valor de $c se perdera y lo necessitaremos mas tarde.

while ($c && $elemento = @readdir($dir))        // Mientras la variable $c sea mayor de 0 saltamos archivos.
{
  
$Show['20 Anteriores'] = 1;
  
$c--;
}

$Counter 0;            // Ponemos a 0 el contador

// Si es la primera vez que vez añadimos 2 filas, si no lo es se las quitamos.
if ($Show['20 Anteriores'] == 0$Counter=$Counter-2; else {
  
$c 2;
  while (
$c && $elemento = @readdir($dir))        // Mientras la variable $c sea mayor de 0 saltamos archivos.
  
{
   
$Show['20 Anteriores'] = 1;
   
$c--;
  }
}

// Mostramos el numero de archivos que se tienen que mostrar por página.
while (($Counter != $Config['Show']) && ($elemento = @readdir($dir)))
{
  
$Counter++;
  
  
$elemento1 strtolower($elemento);
  
  if (
strpos($elemento1".php") > && $elemento != "index.php") {
   
// Asignamos el archivo sin extension
   
$elemento2 str_replace(".php","",$elemento);
?>
  <?
if(file_exists("descargas/$secciones$elemento2.php")) {
require (
"descargas/$secciones$elemento2.php");
   
// Dia
$diassemana = array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado") ;
$mesesano = array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic") ;
$diasemana date(w,$fecha) ; $diames date(j,$fecha) ; $mesano date(n,$fecha) - $ano date(Y,$fecha) ;
$fecha_descarga "$diassemana[$diasemana] $diames de $mesesano[$mesano] del $ano" ;
$descripcion_descarga str_replace("\r\n","<br>",$descripcion_descarga) ;
}
?>
  <tr> 
    <td valign="top" class="tabla_mensaje"><div align="left"><a href="descargas.php?e=<? echo $secciones ?><?php echo $elemento2 ?>" target="_blank">&middot; 
        <? echo $titulo_descarga ?></a> 
        <?
        
if ($_COOKIE[ucnnick]) {
        if (
$_COOKIE[ucnnick] == $nick_descarga or $_COOKIE[ucnnick] == $administador) { echo " [<a href='index.php?id=descargas&borrar=$secciones$elemento2&secciones=$secciones'>Borrar</a>] [<a href='index.php?id=descargaseditar&e=$secciones$elemento2&secciones=$secciones'>Editar</a>]"
        } 
        } 
        
?>
        <? 
        
if ($_COOKIE[ucnnick]) {
        if (
$_COOKIE[ucnnick] == $nick_descarga && !file_exists("descargas/$secciones$elemento2.zip")) 
        { echo 
"<br><div align=left><font color=red>Error : No existe la descarga <strong>$secciones/$elemento2.zip</strong> ,subela manualmente al ftp o contacte con el admin urgentemente.</font></div>"; }
        } 
?>
      </div></td>
    <td valign="top" class="tabla_mensaje"><div align="left"><? echo $descripcion_descarga ?>&nbsp;</div></td>
    <td valign="top" class="tabla_mensaje"> <div align="left"> 
        <?  
// asignamos el tamaño de los archivo
if(file_exists("descargas/$secciones$elemento2.zip")) {
$elemento4 "descargas/$secciones$elemento2.zip";
if(
filesize($elemento4) > 1000000) {
$tamano filesize($elemento4)/1024/1024;
$tamano ceil($tamano) ;
echo 
"$tamano Mb";
}
else { 
if(
filesize($elemento4) > 1000) {
$tamano filesize($elemento4)/1024;
$tamano ceil($tamano) ;
echo 
"$tamano Kb";

else {
$tamano filesize($elemento4);
$tamano ceil($tamano);
echo 
"$tamano bytes";

}
}
else {
echo 
"&nbsp;";
}
?>
      </div></td>
    <td valign="top" class="tabla_mensaje"><div align="left"><? echo $hits_descarga ?></div></td>
  </tr>
  <?php
  
}
}
  
// Si sobran archivos pondremos el "10 Siguientes"
if ($elemento = @readdir($dir))
{
  
$Show['20 Siguientes'] = 1;
}

//Cerramos el directorio
@closedir($dir);
?>
</table>
<div align="right">
<?php
// Mostraos si es necessario el "10 Anteriores" y "10 Siguientes".
if ($Show['20 Anteriores'] == 1) echo("<a href=\"index.php?id=descargas&c=".($Plus-$Config['Show'])."&secciones=$secciones\">20 Anteriores | </a>");
if (
$Show['20 Siguientes'] == 1) echo("&nbsp;<a href=\"index.php?id=descargas&c=".($Plus+$Config['Show'])."&secciones=$secciones\">20 Siguientes</a></p>");
?></div>
u.u me borraron el otro tema.. bueno.

El paginado se que se hace mediante una variable:

index.php?s=images&page=2

Pero no entiendo bien como hacerlo sin mysql..

Última edición por GatorV; 07/07/2010 a las 13:31
  #7 (permalink)  
Antiguo 07/07/2010, 11:36
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Mostrar cada url en una imagen

Cita:
Iniciado por SeaPirates Ver Mensaje
u.u me borraron el otro tema.. bueno.

El paginado se que se hace mediante una variable:

index.php?s=images&page=2

Pero no entiendo bien como hacerlo sin mysql..
Si, pasó algo raro con el otro tema

Yo te comentaba de usar este framework que página mediante un array:
http://wiki.kumbiaphp.com/Paginadores

pero no lo tengo experimentado
__________________
Tu álbum de cromos online!!
  #8 (permalink)  
Antiguo 07/07/2010, 12:07
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Mostrar cada url en una imagen

Si, pero te respondí que no entendía nada de ese tema xD
  #9 (permalink)  
Antiguo 07/07/2010, 12:13
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Mostrar cada url en una imagen

Cita:
Iniciado por SeaPirates Ver Mensaje
Si, pero te respondí que no entendía nada de ese tema xD
ahh!! no ví tu respuesta,

Pues imagino que será cuestión de descargarse algun script y referenciarlo tal como indica:

$s : array a paginar.

page: numero de página.

per_page: cantidad de elementos por página.

Ejemplo:

$page = paginate($s, 'per_page: 5', 'page: 1');
__________________
Tu álbum de cromos online!!
  #10 (permalink)  
Antiguo 07/07/2010, 12:17
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: Mostrar cada url en una imagen

si, eso es lo que no entendí..

$page = paginate($s, 'per_page: 5', 'page: 1');
  #11 (permalink)  
Antiguo 07/07/2010, 15:35
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Mostrar cada url en una imagen

Cita:
Iniciado por SeaPirates Ver Mensaje
si, eso es lo que no entendí..

$page = paginate($s, 'per_page: 5', 'page: 1');
mira aquí tienes otro:

http://www.php-hispano.net/archivos/...un-array1.html
__________________
Tu álbum de cromos online!!
  #12 (permalink)  
Antiguo 08/07/2010, 03:17
 
Fecha de Ingreso: enero-2009
Ubicación: España
Mensajes: 786
Antigüedad: 15 años, 3 meses
Puntos: 9
Respuesta: No mostrar todas las imagenes

muy buen ejemplo, a partir del script que tenia yo hice esto:

Código:
<?php
$directorio = opendir("./images/");
while ($archivo = readdir($directorio))
   {
   $nombreArch = ucwords($archivo);
   $nombreArch = str_replace("..", "Atras", $nombreArch);
   $imagen = '"<a href=?s=viewer&id=$archivo><img src=/images/$archivo width=100 height=100 border=0></a>",';
   }

$paginar = array($imagen); //el array a paginar
$mostrar = 10; //numero de elementos por pagina
$cuantos = count($paginar); //para saber cuantos elementos tiene el array
$paginar = array_reverse($paginar); //para que muestre los nuevos primeros. Totalmente opcional
$paginas = $cuantos / $mostrar; //numero de paginas

if (!isset($mostrar) or empty($mostrar) or !is_int($mostrar)) {
    $mostrar = 10; //por si se te olvid?clarar $mostrar o no es entero le damos de valor 5
}
if (empty($_GET["pagina"])) { //si no hay pagina...
    $desde = 0; //principio de la primera pagina
    $hasta = $desde + $mostrar; //fin de la primera pagina
}
if (!empty($_GET["pagina"])) { //si estamos en una pagina distinta de la primera...
    $desde = (int)$_GET["pagina"]; //principio de la pagina X
    if ($desde + $mostrar < $cuantos) { //si principio + 10 no es mayor a la cantidad de elementos
        $hasta = $desde + $mostrar; //fin de la pagina X
}else{
    $hasta = $desde + ($cuantos - $desde); //por si $principio + 10 es superior al numero de elementos
}
}


for ($i=$desde; $i<$hasta; $i++) {
    echo $paginar[$i].'<br/>'; //mostramos los elementos de la pagina en la que estamos. Aqui que cada uno lo haga como buenamente pueda. xD
}
for ($p=0; $p<=$paginas; $p++) {
$dexde = $p * $mostrar; //para marcar el inicio de la siguiente pagina
echo '<a href="?s=galeria&pagina='.$dexde.'">'.$p.'</a> - '; //mostramos la lista de paginas. Que cada uno las muestre como quiera
}
?>
Intenté mostrar las imágenes dentro del array separadas por "$imagen", pero aun así solo me muestra 1 imagen

Etiquetas: imagenes, todas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:05.