Creación de retornos de carro en celdas csv a través de php

Estoy tratando de generar dinámicamente un archivo csv con algunas celdas que contendrán múltiples líneas, el campo de dirección, por ejemplo, deberá agruparse en una sola celda de “dirección” en lugar de dirección, ciudad, estado, etc. Todo va bien y pero durante los últimos dos días he intentado insertar \ r, \ r \ n, \ n, chr (10), chr (13), así como un retorno de carro dentro del código para crear el retorno de carro que soy Buscando dentro de la celda. Todos estos fallan, ya sea que se imprimen literalmente en mi csv como “\ r”, etc. o cuando hago un retorno de carro manual en el código, genera una nueva fila. Estoy usando esto para crear los cortes en mis celdas pero no está funcionando

$groupedCell = implode('\r',$data); 

Estoy bastante seguro de que el código es correcto ya que está colocando donde me gustaría un retorno de carro pero no el retorno real que estoy buscando. He intentado algunas codificaciones diferentes, pero aún así no he tenido suerte, estoy probando en Open Office, que supongo que podría ser el problema, pero supongo que puede manejar retornos de carro dentro de una celda y no he visto ninguna documentación que respalde lo contrario. ¡Gracias por leer!

    Necesitas usar "\r" . No puede usar caracteres escapados (aparte de \' ) en cadenas entre comillas simples. '\n' y '\r' son una barra invertida literal seguida de n o r , mientras que "\n" y "\r" son nuevas líneas y retornos de carro respectivamente.

    En cuanto a la inserción de nuevas líneas en su archivo CSV, depende de su implementación. No hay un estándar para CSV, por lo que tendrá que averiguar qué formato usar en función del sistema al que está suministrando los datos de CSV. Algunos podrían aceptar una secuencia '\n' e interpretarla como una nueva línea, otros podrían permitir una nueva línea literal siempre que la celda esté entre comillas, y otros no aceptarán nuevas líneas en absoluto.

    La especificación de CSV es una que encuentro implementada de muchas maneras diferentes … básicamente, parece que es solo una especificación a la mitad, lo cual es frustrante dada su popularidad.

    Para incluir una nueva línea dentro de una celda en un CSV, es posible que sea necesario envolver la celda, o que deba escaparse la nueva línea. Notará que, a partir del documento vinculado, hay tres formas de hacerlo, y diferentes progtwigs lo tratan de manera diferente:

    1. Excel envuelve la celda completa entre comillas dobles: una celda puede tener caracteres de nueva línea (sin escaparse) y puede considerarse una celda única, siempre y cuando esté envuelta entre comillas dobles (tenga en cuenta que también necesitará usar comillas dobles de estilo excel) dentro de los contenidos de la celda)
    2. Otros progtwigs insertan una sola barra invertida antes del carácter, por lo tanto, una línea que termina en \ no se considera el final de una línea, sino un carácter de nueva línea dentro de la celda. Una celda puede tener caracteres de nueva línea sin escaparse, siempre y cuando estén precedidos por el carácter de barra invertida.
    3. Otros aún reemplazan una nueva línea con el carácter de estilo C que se escapa, la secuencia de caracteres real \n o \r\n . En este caso, la celda ha escapado completamente de los caracteres de nueva línea.

    El problema se agrava por la necesidad potencial de escapar de los caracteres de control (así como de otro contenido (por ejemplo, " en # 1, y \ en # 2 + 3) y diferentes estilos de escape (por ejemplo, una comilla incrustada podría escaparse como: comillas dobles "" o comillas invertidas-comillas dobles \"

    Mi consejo : genere un documento de oficina abierta con varias líneas y caracteres de escape clave y vea cómo la oficina abierta genera un archivo CSV . Desde allí, puede decidir cuál de los métodos anteriores usar para las nuevas líneas dentro de las celdas y qué método de escape.

    Ejemplo de estilo-1 (excel):

     #num,str,num 1,"Hello World",1990 2,"Yes",1991 

    ejemplo de estilo-2:

     #num,str,num 1,Hello \ Word,1990 2,Yes,1991 

    ejemplo de estilo-3:

     #num,str,num 1,Hello \nWorld,1990 2,Yes,1991 
    1. Creó una hoja de cálculo de Excel 2010 con 3 columnas.
    2. Se agregó una fila de encabezado con valores literales: uno, dos, tres
    3. Se agregó 1 fila de datos con valores literales: abc, abc, abc, excepto que dentro de la segunda columna presioné ALT + ENTRAR después de cada letra para crear un retorno de carro y un salto de línea.
    4. GUARDE COMO> OTRO y elija CSV mientras ignora las advertencias.
    5. Examinó los datos de CSV con NOTEPAD ++ y hizo clic en el botón Mostrar todos los caracteres en la barra de herramientas.

    Uno puede ver lo siguiente:

     one, two, three[CR][LF] abc,"a[LF] b[LF] c",abc[CR][LF] 

    Espero que esto se preste más aclarar.