Foros del Web » Programando para Internet » PHP »

Problema con un codigo con fileexists

Estas en el tema de Problema con un codigo con fileexists en el foro de PHP en Foros del Web. Hola, Tengo un problema con un codigo php en que tendria que verificar un archivo (en este caso config.php) si existe o no y si ...
  #1 (permalink)  
Antiguo 22/07/2009, 07:25
 
Fecha de Ingreso: julio-2009
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema con un codigo con fileexists

Hola,

Tengo un problema con un codigo php en que tendria que verificar un archivo (en este caso config.php) si existe o no y si no existe continuar con una funcion.

No se si se debe poner al principio o en medio de la función, alguien me puede ayudar.

El codigo es este:

Código PHP:
<?

// copiar.php?origen=Dir_origen&destino=Dir_destino
$origen="Dir_origen";
$destino="Dir_destino";

copy_dir($origen,$destino);


function 
copy_dir($origen,$destino)
{
   if (
is_dir($destino))
      echo 
"El directorio destino ya existe.<br>";
   else
      
mkdir("$destino");
   if (
$vcarga opendir($origen))
   {
      echo 
"Directorio: $origen<br><br>";
      echo 
"Fichero(s):<br><br>";
      while(
$file readdir($vcarga))
      {
         if (
$file != "." && $file != "..")
         {
            if (
is_dir($origen."/".$file))
            {
               
copy_dir($origen."/".$file,$destino."/".$file);
            }
            else
            {
               if(
copy($origen."/".$file$destino."/".$file))
                  echo 
"<b>$file</b> se copió con éxito al directorio $destino .<br>";
            }
         }
      }
      
closedir($vcarga);
   }
}

?>
Entonces quiero añadirle el fileexists:

Código PHP:

Example #1 Testing whether a file exists
<?php
$filename 
'/path/to/foo.txt';

if (
file_exists($filename)) {
    echo 
"The file $filename exists";
} else {
    echo 
"The file $filename does not exist";
}
?>
  #2 (permalink)  
Antiguo 22/07/2009, 07:35
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problema con un codigo con fileexists

Bueno deberias ir en orden. Primero verificas si existe el directorio y luego si existe el archivo.
  #3 (permalink)  
Antiguo 22/07/2009, 07:41
 
Fecha de Ingreso: julio-2009
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con un codigo con fileexists

Y como lo tendria que hacer, es decir, primero comprovación del directorio, despues comprovación del archivo y despues la funcion?

Me puedes hacer un codigo mas o menos como quedaria?
  #4 (permalink)  
Antiguo 22/07/2009, 07:52
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problema con un codigo con fileexists

¿Pero cual es la funcion que tu quieres que aparece si existe el $filename y cual quieres que aparezca si no existe?
  #5 (permalink)  
Antiguo 22/07/2009, 07:57
 
Fecha de Ingreso: julio-2009
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con un codigo con fileexists

Mira la funcion que quiero hacer es que me copie todo un directorio que esta en el ftp, la funcion es esta:

Código PHP:
<?

// copiar.php?origen=Dir_origen&destino=Dir_destino
$origen="Dir_origen";
$destino="Dir_destino";

copy_dir($origen,$destino);


function 
copy_dir($origen,$destino)
{
   if (
is_dir($destino))
      echo 
"El directorio destino ya existe.<br>";
   else
      
mkdir("$destino");
   if (
$vcarga opendir($origen))
   {
      echo 
"Directorio: $origen<br><br>";
      echo 
"Fichero(s):<br><br>";
      while(
$file readdir($vcarga))
      {
         if (
$file != "." && $file != "..")
         {
            if (
is_dir($origen."/".$file))
            {
               
copy_dir($origen."/".$file,$destino."/".$file);
            }
            else
            {
               if(
copy($origen."/".$file$destino."/".$file))
                  echo 
"<b>$file</b> se copió con éxito al directorio $destino .<br>";
            }
         }
      }
      
closedir($vcarga);
   }
}

?>
Esta es la que quiero ejecutar si no se cumple el if, en cambio si se cumple el if quiero que salga de la pagina y que vaya a otra.
  #6 (permalink)  
Antiguo 22/07/2009, 08:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Problema con un codigo con fileexists

Ok pues en todo caso el if que verifica el $filename debe ir fuera de la funcion. Me refiero a esto

Código php:
Ver original
  1. <?
  2.  
  3. // copiar.php?origen=Dir_origen&destino=Dir_destino
  4. $origen="Dir_origen";
  5. $destino="Dir_destino";
  6. $filename = '/path/to/foo.txt';
  7.  
  8. function copy_dir($origen,$destino)
  9. {
  10.    if (is_dir($destino))
  11.       echo "El directorio destino ya existe.<br>";
  12.    else
  13.       mkdir("$destino");
  14.    if ($vcarga = opendir($origen))
  15.    {
  16.       echo "Directorio: $origen<br><br>";
  17.       echo "Fichero(s):<br><br>";
  18.       while($file = readdir($vcarga))
  19.       {
  20.          if ($file != "." && $file != "..")
  21.          {
  22.             if (is_dir($origen."/".$file))
  23.             {
  24.                copy_dir($origen."/".$file,$destino."/".$file);
  25.             }
  26.             else
  27.             {
  28.                if(copy($origen."/".$file, $destino."/".$file))
  29.                   echo "<b>$file</b> se copió con éxito al directorio $destino .<br>";
  30.             }
  31.          }
  32.       }
  33.       closedir($vcarga);
  34.    }
  35. }
  36.  
  37. if (file_exists($filename)) {
  38.     header("Location: pagina_que_quiero_redirigir_si_existe.php");
  39. } else {
  40.     copy_dir($origen,$destino);
  41. }
  42. ?>
  #7 (permalink)  
Antiguo 22/07/2009, 08:54
 
Fecha de Ingreso: julio-2009
Mensajes: 6
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con un codigo con fileexists

Muchas gracias
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 21:59.