Rispondo solo per i str_replace!
Volevo che le #esportazioni esterne (inserire tramite textarea da gojack, con il copia e incolla o inserimento testo) chiamate esportazione "e", ed interne (prodotte come file, da gojack) esportazione "i", dei file necessari, siano compatibili con qualsiasi sistema operativo dei server.
#Server modalità testo, chiamate server "t", e server "b" nuove versioni modalità binaria.
Supponi che l'utente utilizzi il server b come primario, ma vuole creare un server b come secondario, dai file che scharicherebbe (anche se si carica i file con \r\n, cioè giusti,ma via "GESTIONE FILE" 'ad esclusione di server windows, che li gestirà in modo corretto') via ftp senza "modalità binaria". Se avrà un MAC, i file risulteranno tutti con \r, non essendoci una sostituzione di \r in \r\n, gojack potrebbe non funzionare,poiché con il server b, si dice scriverli senza convertirli (con il server t, in caso di file con \r,anche se trasferiti da MAC, senza "modalità binaria", sarebbero convertiti in \n in linux, mentre windows in \r\n).
Per le esportazioni e, anche sé è un copia incolla o inserimento testo di un carattere \r o \n, viene introdotto in una textarea, si trasforma in \r\n sia con server t e b (server t non ha copia incolla però). Mentre con le esportazioni i, si potrebbe presentare il problema del file, scaricato (o caricato via "GESTIONE FILE") via ftp senza modalità binaria in MAC.
##ho provato a scrivere, senza modalità binaria con php o caricare via gestione file, un carattere \r\n su linux, verificando che diventi \n. Si presume su MAC diventi \r. da verificare
##ho provato con php a verificare il carattere \r\n di una textarea con method GET. da verificare
Dal tuo script, ho capito, che il problema sta in due \n è non in \r\r\n. str_replace("\r\r\n","\n",$var); str_replace("\r\n","\n",$var); str_replace("\n\n","\n",$var); str_replace("\r","\n",$var); str_replace("\n","\r\n",$var); solo modalità binaria.
Sembra un service.xml, come mi spiego, spero si capirà.