Foros del Web » Programando para Internet » PHP »

Como puedo solucionar esto?

Estas en el tema de Como puedo solucionar esto? en el foro de PHP en Foros del Web. Hola: Estoy haciendo un pequeño programilla en php, se trata de escribir datos en archivos txt. Me gustaría saber dos cosas: ¿Como podría hacer para ...
  #1 (permalink)  
Antiguo 29/02/2004, 17:04
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Como puedo solucionar esto?

Hola:
Estoy haciendo un pequeño programilla en php, se trata de escribir datos en archivos txt.
Me gustaría saber dos cosas:
¿Como podría hacer para comprobar si el archivo en el que voy a escrbir esta vacio, es decir, no tiene nada escrito?
¿Como podría hacer para que en el caso de que no existiera el archivo en el que voy a escribir


formulario.php

<html>
<head>
<title>Formulario</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form method="post" action="escribirarchivo.php" name="enviar">
<p>Nombre del Archivo txt:
<input type="text" name="archivo">
<br>

<input type="submit" name="Enviar" value="Enviar">
</p>
</form>
</body>
</html>



escribirarchivo.php

<?

$fichero = file("$archivo.txt");
$largo = sizeof($fichero);
$largo = $largo - 1;

for($i=$largo ; $i>-1 ; $i--) {

$libro = explode("|", $fichero[$i]);

if($archivo == "---NO EXISTE---"){
echo "Codigo del Formulario 1";
}

if($archivo == "---VACIO---"){
echo "Codigo del Formulario 2";
}

else{
echo "Codigo de Formulario 3";
}
}

?>



¿Como lo podría hacer?

Muchas Gracias
  #2 (permalink)  
Antiguo 01/03/2004, 01:55
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Existe fichero: file_exists() (www.php.net/file_exists).

Fichero vacio: normalmente un fichero vacio tiene longitud 0, filesize() (www.php.net/filesize).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 01/03/2004, 04:49
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
¿Se hace asi?

Ya he cambiado algo pero no me funciona
¿Que estoy haciendo mal?


escribirarchivo.php

<?

$fichero = file("$archivo.txt");
$largo = sizeof($fichero);
$largo = $largo - 1;

for($i=$largo ; $i>-1 ; $i--) {

$libro = explode("|", $fichero[$i]);

if(file_exists($archivo.txt) == FALSE){
echo "Codigo del Formulario 1";
}

if(filesize($archivo.txt) == 0){
echo "Codigo del Formulario 2";
}

else{
echo "Codigo de Formulario 3";
}
}

?>


Muchas Gracias por vuestra ayuda
  #4 (permalink)  
Antiguo 01/03/2004, 05:03
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
$archivo.txt

deberia ser

$archivo.".txt"

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 01/03/2004, 08:12
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Sigue sin funcionar.
Lo he puesto asi:


escribirarchivo.php

<?

$fichero = file("$archivo.txt");
$largo = sizeof($fichero);
$largo = $largo - 1;

for($i=$largo ; $i>-1 ; $i--) {

$libro = explode("|", $fichero[$i]);

if(file_exists("../escritos/" $archivo ".txt") == FALSE){
echo "Codigo del Formulario 1";
}

if(filesize("../escritos/" $archivo ".txt") == 0){
echo "Codigo del Formulario 2";
}

else{
echo "Codigo de Formulario 3";
}
}

?>

¿Que hago mal?
Gracias
  #6 (permalink)  
Antiguo 01/03/2004, 08:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Veamos, tienes que concatenar las cadenas que forman la ruta del fichero:

"../escritos/".$archivo.".txt"

Saludos.

PD: ¿Que quieres hacer? Porque se supone que $archivo existe, ya que lo has leido al principio.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 01/03/2004, 13:22
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Esto es lo que necesito

Hola:
Mira lo que necesito es lo siguiente:
1º Que compruebe si el archivo existe, en tal caso que salga un formulario.
2º Que compruebe que el tamaño del fichero es 0, en tal caso que salga otro formulario distinto.
3º sino ocurre ninguna de los dos if anteriores, que salga otro formulario.

Ahora que lo dices, a lo mejor el codigo no esta bien, he intentado hacerlo modificando lo anterior, y he puesto lo siguiente:

escribirarchivo.php

<?

if (file_exists("../escritos/".$archivo.".txt") == FALSE){
echo "Codigo del Formulario 1";
}

if (filesize("../escritos/".$archivo.".txt") == 0){
echo "Codigo del Formulario 2";
}

else{
echo "Codigo de Formulario 3";
}
}

?>

Pero sigue sin funcionar.
¿Como puedo solucionarlo?
Gracias
  #8 (permalink)  
Antiguo 01/03/2004, 17:16
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Nadie me puede ayudar a solucionar esto de una vez por todas.

Muchas Gracias a todos.

Un saludo
  #9 (permalink)  
Antiguo 02/03/2004, 04:14
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
UP!
  #10 (permalink)  
Antiguo 02/03/2004, 04:32
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Haz un echo $archivo y mira manualmente si existe y ejecuta bien el codigo. Puede ser que estes mirando en un directorio donde no deberias. Si ese codigo lo estas incluyendo con include(), el directorio actual es el del script que tiene el include(), asi que como usas rutas relativas, puede que ese sea el problema. O puede ser que $archivo no tenga el valor que esperabas. O si $archivo tiene espacios, estas buscandote problemas tu solo.

Lo que quiero decir, es que puede que el codigo este bien, pero que esten mal los datos (rutas, nombre fichero, etc).

Un programa es codigo que procesa datos para generar una salida. Por lo que la salida depende del codigo y de los datos.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #11 (permalink)  
Antiguo 02/03/2004, 06:40
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
yazo .. aquí estamos para ayudar desinteresadamente .. así que NO EXIJAS nada y conformate con la buena voluntad de quien te intente ayudar.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 02/03/2004, 08:18
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Muchas Gracias a todos.
Ya lo siento, no era mi intención exigiros nada.

Un Saludo
  #13 (permalink)  
Antiguo 02/03/2004, 17:12
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Muchisisimas Gracias a todos

Muchas gracias josemi me ha sido de gran utilidad tu aportacion y ya lo he solucionado.

1.000.000 de gracias,..... de nuevo

Y quiero decirle a Cluster que lo siento si algo le ha molestado, desde aqui le pido disculpas.

Saludos cordiales
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 14:08.