Convertir en tableau php csv chaîne
J'ai plusieurs méthode pour transformer tableau php csv chaîne de stackoverflow et google. Mais je suis en difficulté que si je veux stocker le numéro de mobile comme 01727499452, elle permet d'économiser sans le premier 0 de la valeur.
Je suis actuellement en utilisant ce morceau de code:
Convertir le tableau en csv
Quelqu'un peut s'il vous plaît aider moi.
Array
[1] => Array
(
[0] => Lalu ' " ; \\ Kumar
[1] => Mondal
[2] => 01934298345
[3] =>
)
[2] => Array
(
[0] => Pritom
[1] => Kumar Mondal
[2] => 01727499452
[3] => Bit Mascot
)
[3] => Array
(
[0] => Pritom
[1] => Kumar Mondal
[2] => 01711511149
[3] =>
)
[4] => Array
(
[0] => Raaz
[1] => Mukherzee
[2] => 01911224589
[3] => Khulna University 06
)
)
Mon bloc de code:
function arrayToCsv( array $fields, $delimiter = ';', $enclosure = '"', $encloseAll = false, $nullToMysqlNull = false ) {
$delimiter_esc = preg_quote($delimiter, '/');
$enclosure_esc = preg_quote($enclosure, '/');
$outputString = "";
foreach($fields as $tempFields) {
$output = array();
foreach ( $tempFields as $field ) {
if ($field === null && $nullToMysqlNull) {
$output[] = 'NULL';
continue;
}
//Enclose fields containing $delimiter, $enclosure or whitespace
if ( $encloseAll || preg_match( "/(?:${delimiter_esc}|${enclosure_esc}|\s)/", $field ) ) {
$field = $enclosure . str_replace($enclosure, $enclosure . $enclosure, $field) . $enclosure;
}
$output[] = $field." ";
}
$outputString .= implode( $delimiter, $output )."\r\n";
}
return $outputString; }
Merci,
Pritom.
C'est le problème avec l'aide d'autres personnes roues.
Enregistrer en tant que chaîne de caractères. Je le recommande que pour les numéros de téléphone de toute façon, parce que vous êtes juste de vouloir sauver ce + que bien 😉
Vous devriez être à l'aide de PHP en CSV fonctions comme php.net/manual/en/function.fputcsv.php
Certains de seconde main conseils: Si vous n'allez pas faire de l'arithmétique sur elle, de le stocker sous forme de chaîne. Le Daily WTF contient des exemples des nombreux un numéro de téléphone imprimé en notation scientifique, qui en fin de compte provient de quelqu'un stockage comme un entier.
Le nombre est stocké correctement dans le CSV, avec un zéro; mais, lorsqu'il est ouvert dans MS Excel, Excel va reformater - soit utiliser un format de fichier qui prend en charge le format de l'information déjà (pas CSV), de sorte que Excel ne s'applique pas à la norme de comportement, ou de le forcer à être une formule de chaîne lors de l'enregistrement de
Enregistrer en tant que chaîne de caractères. Je le recommande que pour les numéros de téléphone de toute façon, parce que vous êtes juste de vouloir sauver ce + que bien 😉
Vous devriez être à l'aide de PHP en CSV fonctions comme php.net/manual/en/function.fputcsv.php
Certains de seconde main conseils: Si vous n'allez pas faire de l'arithmétique sur elle, de le stocker sous forme de chaîne. Le Daily WTF contient des exemples des nombreux un numéro de téléphone imprimé en notation scientifique, qui en fin de compte provient de quelqu'un stockage comme un entier.
Le nombre est stocké correctement dans le CSV, avec un zéro; mais, lorsqu'il est ouvert dans MS Excel, Excel va reformater - soit utiliser un format de fichier qui prend en charge le format de l'information déjà (pas CSV), de sorte que Excel ne s'applique pas à la norme de comportement, ou de le forcer à être une formule de chaîne lors de l'enregistrement de
="01911224589"
OriginalL'auteur Pritom | 2013-05-03
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
str_putcsv
fonction:Plus à ce sujet sur GitHub, une fonction créée par @johanmeiring.
ne devrait-elle pas être
str_putcsv($fields);
au lieu destr_putcsv($fp, $fields);
J'ai aimé cette solution. J'en ai fait une petite modification quand j'ai "emprunté":
... $len = ftell($fp)+1; rewind($fp); $data = fread($fp,$len); ...
et il semble fonctionner. Je ne savais pas ce 1048576 représente, donc, je ne voulais pas l'utiliser directement.OriginalL'auteur alexcristea
Est-ce que vous avez besoin?
Il fonctionne creux de votre matrice de la création d'une nouvelle ligne à chaque tour de boucle séparant les valeurs de tableau avec une ",".
Il devrait l'être, je ne vois pas pourquoi vous ne devriez pas:) Donnez un coup de feu, et de voir si elle répond à vos attentes.
Aucun résultat valable
J'ai utilisé quelque chose de similaire dans un certain nombre de situations, et il fonctionne bien avec un avertissement (ou les deux). Cela rompt avec si peu de valeur dans $arr a un ',' caractère. Le format csv a des façons de le gérer qui ne sont pas abordés abordés par cette solution. Aussi, vous êtes un codage spécifique de Windows saut de ligne avec
"\r\n"
, ce qui peut causer des problèmes dans certaines situations. L'aide de la constantePHP_EOL
se traduira par plus de code portable.OP devriez peut-être essayer d'examiner le contenu de $out
OriginalL'auteur Daniel Mensing
Êtes-vous sûr que les chiffres sont en fait être sauvé sans le premier zéro? Avez-vous regardé le réel de sortie CSV dans un éditeur de texte?
Si vous venez d'ouvrir le fichier CSV dans un tableur, il est plus probable de la feuille de calcul qui est fait l'interprète de vos numéros de téléphone en tant que valeurs numériques et l'abandon de l'zéros lors de l'affichage. Vous pouvez généralement résoudre que dans la feuille de calcul en modifiant les options de mise en forme sur cette colonne particulière.
OriginalL'auteur James Holderness
Puisque c'est un CSV et non pas quelque chose comme JSON, tout va être lu comme une chaîne de toute façon, alors il suffit de convertir votre numéro de chaîne avec:
(string)$variable
strval($variable)
(que je préfère ici)$variable . ''
PHP
gettype()
serait également une option. Vous pouvez type cast chaque champ d'une chaîne de caractères (même si c'est déjà le cas) en utilisant l'une des méthodes que j'ai décrites, ou vous pouvez appeler juste le numéro de champ que vous êtes après, par faire:Voici le code complet avec il ajouté
OriginalL'auteur Bill
J'utilise cette fonction pour convertir en tableau php dans un fichier csv. Il travaille également pour le tableau multidimensionnel.
OriginalL'auteur Julien
La fonction ci-dessus n'est pas exactement la bonne cause, il considère \n comme un élément, qui n'est pas ce que nous voulons que chaque ligne doivent être séparés par des \n. Donc un code plus efficace serait:
OriginalL'auteur Norbert
Voici une solution qui est un peu plus à des fins générales. En réalité, j'étais à la recherche d'un moyen de faire des listes de chaînes pour SQL des insertions. Le code devrait ressembler à ceci:
Et voici la fonction utile que j'ai fini par ajouter à ma boîte à outils:
OriginalL'auteur Dion Truter