Foros del Web » Programando para Internet » PHP »

tomar imagenes random..

Estas en el tema de tomar imagenes random.. en el foro de PHP en Foros del Web. Saludos me gustaría saber como puedo navegar en una carpeta llamada "imagenes" y poner una imagen al hazar de todas ellas... Pero tengo dos 1 ...
  #1 (permalink)  
Antiguo 19/07/2009, 04:24
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
tomar imagenes random..

Saludos me gustaría saber como puedo navegar en una carpeta llamada "imagenes" y poner una imagen al hazar de todas ellas...

Pero tengo dos 1 llamada platino y la otra llamada reloj las cuales no quiero que salgan.

Todas las demas si, como puedo hacerlo?

Gracias!
  #2 (permalink)  
Antiguo 19/07/2009, 09:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: tomar imagenes random..

mmm...


pues iterando el directorio, con opendir/readdir/closedir

al momento de ir agregando, pues comparas mediante if-then-else para omitir las imágenes que desees...

almacenas todo en un arreglo, y aplicas un array_rand(), suerte!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/07/2009, 11:30
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: tomar imagenes random..

pateketrueke podrias mostrarme una demostracion del codigo php que debo usar plz?

PS saludos, cuanto tiempo! wow tienes muchisimo tiempo en ForosDelWeb todavia te recuerdo me haz ayudado otras veces con dudas que he tenido :D

Última edición por TxT; 19/07/2009 a las 11:40
  #4 (permalink)  
Antiguo 19/07/2009, 18:53
Avatar de chulifo  
Fecha de Ingreso: abril-2009
Ubicación: perdido en codigos del PHP, pero aprendo rapido!
Mensajes: 524
Antigüedad: 15 años
Puntos: 18
Respuesta: tomar imagenes random..

Mira usa esto

lo colocas arriba del todo el codigo
Código PHP:
<?php
$editFormAction 
$_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

// Aqui editas a tu gusto 
if (!session_id()) session_start(); 
$fx_links = array();
$fx_extallowed = array("gif","jpg","png");
$fx_path "imagenes/";
$fx_x 0;
$fx_display "";
$fx_count = -1;
$fx_imgs=opendir($fx_path);
while ((
$file readdir($fx_imgs)) !== false) {
  
$fx_x++;
}
rewind($fx_imgs);
while ((
$fx_file readdir($fx_imgs)) !== false) {
  
$fx_count++;
  if (
$fx_file != "." && $fx_file != "..") {
    
$fx_pos strpos($fx_file".");
    if (
$fx_pos 1$fx_Ext strtolower(substr($fx_file$fx_pos+1));
    if (!
is_dir($fx_path.$fx_file) && isset($fx_Ext) && array_search($fx_Ext,$fx_extallowed) !== false) {
      if (isset(
$_SESSION['fx_img'])) {
        if (
$fx_count $_SESSION['fx_img']) {
          
$fx_display '<img src="'.$fx_path.$fx_file.'" border="0">';
          
session_unregister("fx_img");
          
$fx_img $fx_count;
          
session_register("fx_img");
          break;
        }
      } else {
        if (isset(
$_SESSION['fx_rdm'])) {
          
$fx_rdm $fx_count;
        } else {
          
$fx_rdm mt_rand(1,$fx_x);
          
session_register("fx_rdm");
        }
        if (
$fx_count == $fx_rdm) {
          
$fx_display '<img src="'.$fx_path.$fx_file.'" border="0">';
          
$fx_img $fx_count;
          
session_register("fx_img");
          break;
        }
      }
    }
  }
}
closedir($fx_imgs);
if (
$fx_display == "") {
  
session_unregister("fx_img");
  
header ("Location: " $editFormAction);
}
for (
$i=0$i<sizeof($fx_links); $i++) {
  
$fx_ref split("=",$fx_links[$i]);
  if (
$fx_file == $fx_ref[0]) {
    if (isset(
$fx_ref[2]) && $fx_ref[2] != ""$fx_display str_replace('>'' alt="'.$fx_ref[2].'" title="'.$fx_ref[2].'">'$fx_display);
    if (isset(
$fx_ref[1]) && $fx_ref[1] != ""$fx_display '<a href="http://'.$fx_ref[1].'" target="_blank">'.$fx_display.'</a>';
    break;
  }
}
?>
y esto donde quieras que parescan las imagenes
Código PHP:
<?php echo $fx_display?>
  #5 (permalink)  
Antiguo 19/07/2009, 19:08
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: tomar imagenes random..

Saludos chulifo.
El script que me ofreciste me funciona a la perfeccion ya que hace proposito que quiero que es el de mostrar una imagen desde una carpeta.

Pero no se porque motivo al final de la pagina me sale este error:

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

No se si me podrias explicar que es y porque sale :S
  #6 (permalink)  
Antiguo 19/07/2009, 19:12
Avatar de chulifo  
Fecha de Ingreso: abril-2009
Ubicación: perdido en codigos del PHP, pero aprendo rapido!
Mensajes: 524
Antigüedad: 15 años
Puntos: 18
Respuesta: tomar imagenes random..

:S haysiuqe me dejaste frio por que a mi me funciona bien uso php 5 wamp server


ynome da errores!
  #7 (permalink)  
Antiguo 19/07/2009, 19:14
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: tomar imagenes random..

Em pues tengo php 4 y 5 en el server.. pero de todos modos el script hace el trabajo que quiero asi que creo solo pondré @ delante para que no salga el error... aunque no creo que sea bueno que salga un error. mismo si lo escondo.
  #8 (permalink)  
Antiguo 19/07/2009, 19:19
Avatar de chulifo  
Fecha de Ingreso: abril-2009
Ubicación: perdido en codigos del PHP, pero aprendo rapido!
Mensajes: 524
Antigüedad: 15 años
Puntos: 18
Respuesta: tomar imagenes random..

bueno es verdad hay te ves tu! siquiera te sirvió =D
  #9 (permalink)  
Antiguo 19/07/2009, 20:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: tomar imagenes random..

El problema son los session_register y session_unregister en el código.

Saludos.
  #10 (permalink)  
Antiguo 19/07/2009, 20:14
Avatar de TxT
TxT
 
Fecha de Ingreso: junio-2008
Ubicación: Canada
Mensajes: 272
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: tomar imagenes random..

Intente quitandole los session pero de todos modos sigue el error :S
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 11:59.