Ir al contenido


Foto

Exportar a txt desde php en servidor linux

php txt linux

  • Por favor identifícate para responder
4 respuestas en este tema

#1 bifliven

bifliven

    Newbie

  • Miembros
  • Pip
  • 6 mensajes

Escrito 03 mayo 2016 - 10:58

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
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 03 mayo 2016 - 11:55

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 mensajes

Escrito 03 mayo 2016 - 03:45

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
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 03 mayo 2016 - 04:00

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

 

Saludos.


  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 03 mayo 2016 - 04:06

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





Etiquetado también con una o más de estas palabras: php, txt, linux