2011-07-21 5 views
0

J'ai un tableau dans le format suivant - c'est essentiellement un tableau de lignes CSV préformatées - la clé 0 et 1 dans cet exemple ont une valeur CSV contenant un saut de ligne.Lignes CSV dans array(), besoin de préserver les sauts de ligne

Array 
(
    [0] => 'foo,foo,foo,foo 
    bar,foo,a:1:{i:0;s:4:"blah";}' 
    [1] => 'bar,bar,bar,bar 
    foo,bar,a:1:{i:0;s:4:"blah";}' 
    [1] => 'bar,bar,bar,foo,bar,a:1:{i:0;s:4:"blah";}' 
) 

Ce que je fais à côté, est en train d'imploser que l'utilisation \r\n comme la colle, pour générer le fichier CSV, puis écrire sur. Le problème est que le fichier résultant n'enveloppe pas les champs contenant un saut de ligne entre guillemets afin que le saut de ligne puisse être préservé (ou du moins je suppose qu'il le sera).

Le fichier CSV généré sera téléchargé dans une base de données ou modifié dans Excel et les sauts de ligne doivent être conservés sur le terrain. L'utilisation de fputcsv après avoir explosé dans le bon format génère un CSV qui a le saut de ligne et est enveloppé dans un double guillemet affiché dans le Bloc-notes ou similaire, mais pas lorsqu'il est ouvert dans Excel.

$parent_wholelines = array(); 
    foreach ($output_array as $wholeline) { 
    $parent_wholelines[] = explode(',', $wholeline); 
    } 
+2

Préférez 'var_export'. 'print_r' n'est pas très bon pour nous montrer _precisely_ quelles sont vos données. –

+0

@ Tomalak-Geret'kal - var_export renvoie la même chose dans ce cas, plus quelques uns par guillemets. – Dan

+0

Oui; ce sont utiles. La précision est importante dans notre domaine. –

Répondre

0

Un extrait de http://www.php.net/manual/en/function.fputcsv.php, pourrait peut-être vous aider. OU obtenir une utilisation de sérialiser: http://php.net/manual/en/function.serialize.php

+0

Merci, mais c'est juste un copier-coller de fputcsv de php.net. Je sais comment l'utiliser, je pose une question différente parce que mes données ne sont pas dans ce format. Je suis conscient de serialize() parce que c'est ainsi que certaines des données d'exemple sont créées. Je ne peux pas l'utiliser pour stocker toute la chaîne car je ne suis pas l'auteur de l'importation finale du fichier CSV, j'ai juste besoin de l'écrire. – Dan

Questions connexes