Foros del Web » Programando para Internet » PHP »

Problema con este ejercicio de ficheros

Estas en el tema de Problema con este ejercicio de ficheros en el foro de PHP en Foros del Web. Buenas, mirar, resulta que tengo que hacer el simple ejercicio de abrir un fichero, recorrerlo, y guardar los valores en dos vectores. Pues allá va ...
  #1 (permalink)  
Antiguo 22/02/2005, 10:47
 
Fecha de Ingreso: febrero-2005
Mensajes: 171
Antigüedad: 19 años, 2 meses
Puntos: 1
Problema con este ejercicio de ficheros

Buenas, mirar, resulta que tengo que hacer el simple ejercicio de abrir un fichero, recorrerlo, y guardar los valores en dos vectores. Pues allá va el codigo

// Perdonar por el desorden :D

<html>
<body>
<?
// Comprobacion
$fichero = fopen ("datos.txt","r");
if ($fichero="null") {
echo "error";
}

$i=0;

$vector1;
$vector2;
// Guarda los 4 primeros numeros en un vector (por que tiene 8 numeros solo el archivo de texto)
while($i<4){

$vector1[$i] = fgets($fichero, 128);

$i++;
}

//Guarda los siguientes 4 numeros en el otro vector
while($i<8 ){

$cont = $i - 4;
$vector2[$cont] = fgets($fichero, 128);

$i++;
}

fclose ($fichero);
// Antes tengo un formulario
switch ($op)
{
case "b1":
echo "vector1 = ";
mostrar($vector1);
echo "<br>";
echo "vector2 = ";
mostrar($vector2);
break;

}

function mostrar($x)
{
$i=0;


echo "(";
for ($i=0;$i<4;$i++)
{
if (($i <> 3) or ($i<>1))
{
echo ",";
}
echo $x[$i];

}
echo ")";
}


?>
</body>
</html>

Pues bien, los errores me los dan en :

$vector1[$i] = fgets($fichero, 128);
$vector1[$i] = fgets($fichero, 128);
fclose ($fichero);

Warning: Supplied argument is not a valid File-Handle resource in ...

Y me da "error", ya que no ha cargado el fichero. También lo he probado con el fgetss y nada.

En clase (en linux) si que me funcionaba bien, pero aqui en i casa, he instalado el php y el apache (que todo parece funcionar a la perfección), pero me pasa eso.
A ver si alguien sabe por que es
  #2 (permalink)  
Antiguo 22/02/2005, 11:04
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Código PHP:
if ($fichero="null") {
echo 
"error";

Para comparar debes usar el operador ==, de lo contrario lo que haces dentro del if() es asignar.
Ademas para saber si un valor es nulo se usa NULL (es una constante, por lo que NO se rodea con comillas)
Prueba usar...
Código PHP:
if (!is_resource($fichero) {
echo 
"error";

http://ar2.php.net/manual/en/function.is-resource.php
o empty()

Saludos...

PD en linux tampoco deberia funcionar ¿?¿?¿?¿
  #3 (permalink)  
Antiguo 22/02/2005, 11:09
Avatar de lalogrosz  
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 339
Antigüedad: 21 años, 11 meses
Puntos: 6
Fijate en esta parte :
Código PHP:
// Comprobacion 
$fichero fopen ("datos.txt","r");
if (
$fichero="null") {
echo 
"error";

No estas comparando en el if, sino que estas igualando. Agregale un = mas a la condicion. Es un error que sucede muy amenudo, y hay veces que podes estar horas hasta descubrir que un simple caracter que rompe el codigo.

Suerte
  #4 (permalink)  
Antiguo 22/02/2005, 11:22
 
Fecha de Ingreso: febrero-2005
Mensajes: 171
Antigüedad: 19 años, 2 meses
Puntos: 1
sisis, ostia, es verdad, muchas gracias!!

Y por que puede ser , que ahoar al subirlo al servidor web, funcione correctamente, y desde mi servidor local, me salga la página en blanco? Tengo el php bien instalado (ya que me van otras cosas...)

Gracias!

www.pajarracos.net/ficheros/vectores2.htm ( el ejercicio )

Última edición por Blashete; 22/02/2005 a las 11:25
  #5 (permalink)  
Antiguo 22/02/2005, 11:27
 
Fecha de Ingreso: agosto-2002
Ubicación: Colón - Entre Rios - Argentina
Mensajes: 647
Antigüedad: 21 años, 8 meses
Puntos: 8
Te fijaste lo del NULL que te mencione?

Saludos...
  #6 (permalink)  
Antiguo 22/02/2005, 11:31
 
Fecha de Ingreso: febrero-2005
Mensajes: 171
Antigüedad: 19 años, 2 meses
Puntos: 1
Sip, he puesto lo que me has dicho, y me pasa lo mismo, incluso he puesto tb

if(!$fic){
echo "error"
}

y sigue igual, me funciona en internet, pero en mi servidor local, me sale la página en blanco.
  #7 (permalink)  
Antiguo 22/02/2005, 12:35
 
Fecha de Ingreso: febrero-2005
Mensajes: 171
Antigüedad: 19 años, 2 meses
Puntos: 1
Sabeis por que puede ser que se me vea en internet, y en mi servidor local no? Por que mi servidor parace ser que funciona correctamente, ya que con otras aplicaciones php funciona... :(
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 00:48.