Foros del Web » Programando para Internet » PHP »

Listar archivos pero sin extension .txt

Estas en el tema de Listar archivos pero sin extension .txt en el foro de PHP en Foros del Web. Hola tengo este script que encontre en este foro que lista los archivos y muestra uno aleatoriamente, pero lo muestra asi archivo.txt, como puedo lograr ...
  #1 (permalink)  
Antiguo 05/10/2008, 17:41
 
Fecha de Ingreso: julio-2008
Mensajes: 350
Antigüedad: 16 años, 3 meses
Puntos: 4
Pregunta Listar archivos pero sin extension .txt

Hola tengo este script que encontre en este foro que lista los archivos y muestra uno aleatoriamente, pero lo muestra asi archivo.txt, como puedo lograr que solo muestre el nombre del archivo sin la extension .txt??
<?
$dir='archivos/'; //El directorio local donde almacenas solo los archivos de texto
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (!is_dir($dir.$file) && $file != "." && $file != "..") {
$archivos[]=urlencode($file);
}
}
closedir($handle);
}
$aleatorio = rand(0, count($archivos)-1);
echo $archivos[$aleatorio];
?>
  #2 (permalink)  
Antiguo 05/10/2008, 18:21
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 19 años, 2 meses
Puntos: 49
Respuesta: Listar archivos pero sin extension .txt

prueba hacer ...

Código PHP:
$aleatorio rand(0count($archivos)-1);
$cadena substr("$archivos[$aleatorio]", -4);
echo 
"$cadena"
con -4 corta desde el final hacia adelante :/ no recuerdo si es 3 o 4 :P hay tu pruebas y me dices si te funciono...
no tengo como para probar ahora
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 05/10/2008, 18:23
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 18 años, 4 meses
Puntos: 19
De acuerdo Respuesta: Listar archivos pero sin extension .txt

Código PHP:
<?
$dir
='archivos/'//El directorio local donde almacenas solo los archivos de texto 
if ($handle opendir($dir)) { 
    while (
false !== ($file readdir($handle))) { 
        if (!
is_dir($dir.$file) && $file != "." && $file != "..") { 
            
$archivos[]=substr(urlencode($file), 0strlen(urlencode($file))-4); 
        } 
    } 
    
closedir($handle); 

$aleatorio rand(0count($archivos)-1); 
echo 
$archivos[$aleatorio]; 
?>
EDITO: jajajaja, justo al mismo tiempo respondimos lo mismo!.....
BUeno que queden las dos soluciones (que son la misma jaja)

Nos vemos! saludos! jaja
Saludos kaninox! ;)
  #4 (permalink)  
Antiguo 05/10/2008, 18:41
 
Fecha de Ingreso: julio-2008
Mensajes: 350
Antigüedad: 16 años, 3 meses
Puntos: 4
Respuesta: Listar archivos pero sin extension .txt

Genios funciono perfectamente!!! ya que estamos los molesto con otra cosita mas, lo modifique al codigo para que muestre aleatoriamente mas de un archivo, pero como puedo lograr que no muestre archivos iguales?

<?
$dir='archivos/'; //El directorio local donde almacenas solo los archivos de texto
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if (!is_dir($dir.$file) && $file != "." && $file != "..") {
$archivos[]=substr(urlencode($file), 0, strlen(urlencode($file))-4);
}
}
closedir($handle);
}
$aleatorio = rand(0, count($archivos)-1);
$aleatorio2 = rand(0, count($archivos)-1);
$aleatorio3 = rand(0, count($archivos)-1);
$aleatorio4 = rand(0, count($archivos)-1);
echo $archivos[$aleatorio];
echo $archivos[$aleatorio2];
echo $archivos[$aleatorio3];
echo $archivos[$aleatorio4];
?>

GRACIAS
  #5 (permalink)  
Antiguo 05/10/2008, 18:44
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Listar archivos pero sin extension .txt

Otra opción es la función basename():

Código php:
Ver original
  1. $archivos[] = basename($file, '.txt');
o la función pathinfo() (Pero este ejemplo sólo funciona desde PHP 5.2):
Código php:
Ver original
  1. $archivos[] = pathinfo($file, PATHINFO_FILENAME);
Saludos,
  #6 (permalink)  
Antiguo 05/10/2008, 18:46
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Listar archivos pero sin extension .txt

@neworks, mira la función array_rand().

Saludos,
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 22:29.