Jump to content


Photo

Exportar a txt desde php en servidor linux

php txt linux

  • Please log in to reply
4 replies to this topic

#1 bifliven

bifliven

    Newbie

  • Miembros
  • Pip
  • 6 posts

Posted 03 May 2016 - 10:58 AM

Buen día. Estoy tratando de exportar a un archivo txt los datos de los pagos de un alumno, tiene este formato

 

DD2000   201523460JMAMANI PALOMINO   MATRICULA       170  
DD2000   201523460JMAMANI PALOMINO   2DA PENSION1  195  
DD2000   201523460JMAMANI PALOMINO   3RA PENSION1  195  
DD2000   201523460JMAMANI PALOMINO   4TA PENSION1  195  
 
Cuando lo ejecuto en mi local que tiene window, no hay problema, pero cuando lo ejecuto en el servidor de producción que es linux, no respeta los espacios en blanco ni el salto de linea, todo lo saca entreverado, Por favor si pueden ayudarme, quizá esta mal mi código o falta alguna configuración en el servidor. 
 
$file = fopen("files" . DS . "tmp" . DS . "CREP.txt", "w");
foreach ($data as $item):
    fwrite($file, $item["identificador"] . $item["codigo"] . $item["nombres"] . $item["concepto"] . $item["importe"]. PHP_EOL);
endforeach;
 
fclose($file);

 

 

Nota: DS= DIRECTORY_SEPARATOR


  • 0

#2 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 03 May 2016 - 11:55 AM

Si quieres separar los espacios al menos con una tabulación (TAB) debes ingresar el carácter \t, ejemplo:


php
  1. foreach ($data as $item):
  2. fwrite($file, $item["identificador"] ."\t". $item["codigo"] ."\t". $item["nombres"] ."\t". $item["concepto"] ."\t". $item["importe"]."\t". PHP_EOL);
  3. endforeach;

Saludos.


  • 0

#3 bifliven

bifliven

    Newbie

  • Miembros
  • Pip
  • 6 posts

Posted 03 May 2016 - 03:45 PM

Si quieres separar los espacios al menos con una tabulación (TAB) debes ingresar el carácter \t, ejemplo:


php
  1. foreach ($data as $item):
  2. fwrite($file, $item["identificador"] ."\t". $item["codigo"] ."\t". $item["nombres"] ."\t". $item["concepto"] ."\t". $item["importe"]."\t". PHP_EOL);
  3. endforeach;

Saludos.

Gracias, pero no es un tabular, son espacios en blanco, y en linux no lo hace, sale todo junto y tampoco reconoce la constante PHP_EOL


  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 03 May 2016 - 04:00 PM

Bueno, prueba usando "\s" y/o str_repeat(' ', 2).

 

Saludos.


  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7419 posts
  • LocationRepública Dominicana

Posted 03 May 2016 - 04:06 PM

Para PHP_EOL, el contenido asignalo a una variable  y luego le pasas en fwrite:
 

php
  1. $contenido = $item["identificador"] ."\s". $item["codigo"] ."\s". $item["nombres"] ."\s". $item["concepto"] ."\s". $item["importe"]."\s". PHP_EOL;
  2. fwrite($file,$contenido);

Saludos.
  • 0





Also tagged with one or more of these keywords: php, txt, linux

IP.Board spam blocked by CleanTalk.