Foros del Web » Programando para Internet » PHP »

PHP, Problema al guardar datos matriz en un archivo texto

Estas en el tema de PHP, Problema al guardar datos matriz en un archivo texto en el foro de PHP en Foros del Web. Buenas.. Utilizo el siguiente código para intentar hacer una archivo de registros, el script toma como parámetros los datos de un registro y al final ...
  #1 (permalink)  
Antiguo 14/05/2019, 02:42
 
Fecha de Ingreso: marzo-2007
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
PHP, Problema al guardar datos matriz en un archivo texto

Buenas..

Utilizo el siguiente código para intentar hacer una archivo de registros, el script toma como parámetros los datos de un registro y al final si no existe los añade, finalmente crea un nuevo archivo de texto con todos los registros que en teoría debería de contener la matriz $Usuarios:

Código:
 $NewUsuario   = $_GET['Usr']; //Paso parametro en llamada 
  $Dir          = $_GET['Dr'];  //Paso parametro en llamada 
  $Suld         = $_GET['Sl'];  //Paso parametro en llamada 

  $Usuarios = array
        (
         array
         (
                 "Usuario"  =>" ";
                 "Direccion" =>" ";
                 "Sueldo"  =>" ";
         )
        );

//Leer Archivo texto que contiene registros (cada tres lineas un registro ), 
//Linea a Linea y Asigno Datos
   $archivo = fopen($NomArchivo,'r');
   $numlinea = 1;
   $Esta = false;
   while ($linea = fgets($archivo))
    {
    if($numlinea<4)
    {
        if($numlinea==1)
        {
         Usuarios[Cont]["Usuario"]=$linea;
         //Si el nuevo usuario ya se encuentra en el registo (Archivo texto)
         if(strstr(strtoupper($linea),strtoupper($NewUsuario)))
                {
                 $Esta = true;
                }
        }

        if($numlinea==2){Usuarios[Cont]["Direccion"]=$linea;}
        if($numlinea==3){Usuarios[Cont]["Sueldo"]=$linea;}
    }
    else
    {
        $numlinea = 0;
        $Cont ++;
    }
    $numlinea ++;
    }

  fclose($archivo);

  //Si el Usuario es nuevo Lo añado
  if(!$Esta)
  {
    $Usuarios[Cont]["Usuario"] = $NewUsuario;
    $Usuarios[Cont]["Direccion"]= $Dir;
    $Usuarios[Cont]["Sueldo"] = $Suld;
  }

  $n=count($Usuarios);

  //Guardo Archivo
  $fp = fopen($NomArchivo,'w');
  for ($i = 0; $i < $n ; $i++)
  {
    fwrite($fp, $Usuarios[$i]["Usuario"].  PHP_EOL);
    fwrite($fp, $Usuarios[$i]["Direccion"]. PHP_EOL);
    fwrite($fp, $Usuarios[$i]["Sueldo"].  PHP_EOL);
  }
  fclose($fp);
Al final tendría que crear un archivo de texto con los registros que tomaría de la matriz $Usuarios pero no me crea el Archivo.¿Que hago mal? Gracias.
  #2 (permalink)  
Antiguo 14/05/2019, 11:33
 
Fecha de Ingreso: abril-2006
Mensajes: 242
Antigüedad: 13 años
Puntos: 31
Respuesta: PHP, Problema al guardar datos matriz en un archivo texto

Cita:
Iniciado por Neg1414 Ver Mensaje
Buenas..

Utilizo el siguiente código para intentar hacer una archivo de registros, el script toma como parámetros los datos de un registro y al final si no existe los añade, finalmente crea un nuevo archivo de texto con todos los registros que en teoría debería de contener la matriz $Usuarios:

Código:
 $NewUsuario   = $_GET['Usr']; //Paso parametro en llamada 
  $Dir          = $_GET['Dr'];  //Paso parametro en llamada 
  $Suld         = $_GET['Sl'];  //Paso parametro en llamada 

  $Usuarios = array
        (
         array
         (
                 "Usuario"  =>" ";
                 "Direccion" =>" ";
                 "Sueldo"  =>" ";
         )
        );

//Leer Archivo texto que contiene registros (cada tres lineas un registro ), 
//Linea a Linea y Asigno Datos
   $archivo = fopen($NomArchivo,'r');
   $numlinea = 1;
   $Esta = false;
   while ($linea = fgets($archivo))
    {
    if($numlinea<4)
    {
        if($numlinea==1)
        {
         Usuarios[Cont]["Usuario"]=$linea;
         //Si el nuevo usuario ya se encuentra en el registo (Archivo texto)
         if(strstr(strtoupper($linea),strtoupper($NewUsuario)))
                {
                 $Esta = true;
                }
        }

        if($numlinea==2){Usuarios[Cont]["Direccion"]=$linea;}
        if($numlinea==3){Usuarios[Cont]["Sueldo"]=$linea;}
    }
    else
    {
        $numlinea = 0;
        $Cont ++;
    }
    $numlinea ++;
    }

  fclose($archivo);

  //Si el Usuario es nuevo Lo añado
  if(!$Esta)
  {
    $Usuarios[Cont]["Usuario"] = $NewUsuario;
    $Usuarios[Cont]["Direccion"]= $Dir;
    $Usuarios[Cont]["Sueldo"] = $Suld;
  }

  $n=count($Usuarios);

  //Guardo Archivo
  $fp = fopen($NomArchivo,'w');
  for ($i = 0; $i < $n ; $i++)
  {
    fwrite($fp, $Usuarios[$i]["Usuario"].  PHP_EOL);
    fwrite($fp, $Usuarios[$i]["Direccion"]. PHP_EOL);
    fwrite($fp, $Usuarios[$i]["Sueldo"].  PHP_EOL);
  }
  fclose($fp);
Al final tendría que crear un archivo de texto con los registros que tomaría de la matriz $Usuarios pero no me crea el Archivo.¿Que hago mal? Gracias.
si es un servidor , recuerda que estos tienen PERMISOS para escritura y lectura, puede que tu PHP no tenga permisos de Escritura para la Ruta que usas, prueba algo sencillo
crea un simple archivo
Código PHP:
Ver original
  1. <?php file_put_contents("archivo.txt","datos");

y fijate si se creo ese archivo, pon la RUTA de la carpeta donde ira tu anterior script
__________________
Mis aportes te ayudaron??, te hicieron ahorrar valiosos tiempo??, si quieres puedes agradecerme con un Gracias o con una donacion
https://paypal.me/pools/c/87BTML2gwr
  #3 (permalink)  
Antiguo 15/05/2019, 00:25
 
Fecha de Ingreso: marzo-2007
Mensajes: 27
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: PHP, Problema al guardar datos matriz en un archivo texto

Buenas ...

Muchas gracias por contestar, probare..



La zona horaria es GMT -6. Ahora son las 07:07.