Générer du JSON en PHP
Fermé
xxxinconitoxxx
Messages postés
151
Date d'inscription
jeudi 25 octobre 2012
Statut
Membre
Dernière intervention
15 novembre 2015
-
Modifié par xxxinconitoxxx le 28/10/2015 à 19:27
Utilisateur anonyme - 10 nov. 2015 à 00:32
Utilisateur anonyme - 10 nov. 2015 à 00:32
A voir également:
- Créer un fichier json en php
- Créer un compte gmail - Guide
- Créer un compte google - Guide
- Fichier rar - Guide
- Créer un groupe whatsapp - Guide
- Comment créer un fichier pdf - Guide
2 réponses
Utilisateur anonyme
28 oct. 2015 à 21:20
28 oct. 2015 à 21:20
Bah, il y a deux problèmes. le premier étant que tu crées un nouvel array $mcArray et que tu lui appliques json_encode dans la boucle, ce qui te renvoie ainsi un tableau pour chaque fichier trouvé. Ce que tu obtients est donc plusieurs tableaux, soit un par ligne dans ton exemple. Ensuite, tu dois créer un tableau multidimensionnel dont la première valeur est un autre tableau possédant le nom du fichier comme clé. Le deuxième tableau détiendra ses informations. Ce bout de code t'aide un peu?
//Création du json ici -----> $fileTime = date("d/m/Y H:i:s", filemtime($dirName.'/'.$file)); //Les crochets [] ont le même //effet que array_push. Il faut //empiler tous les fichiers dans //un énorme tableau, et puis //ensuite l'encoder. $mcArray[$dirName.'/'.$file] = array( 'path' => $dirName, 'time' => $fileTime ); } } } closedir($dir); //Maintenant, json_encode est à l'extérieur //de la boucle, il ne sera appliqué ainsi qu'un seule //fois, lorsque le tableau détiendra tous les fichiers. echo json_encode($mcArray);
Utilisateur anonyme
10 nov. 2015 à 00:32
10 nov. 2015 à 00:32
Bon, alors prise 2! Certains ont publié leur code sur le net, alors eh bah je m'en suis quelque peu inspiré. En souhaitant que ça fonctionne cette fois! Bon courage pour la suite, =?
function mcData($mainDir) { $mcArray = array(); $directories = array($mainDir); //Tant que l'array $directories n'est pas vide. while (null !== ($dir = array_pop($directories))) { if ($dh = opendir($dir)) { //Ici, on rajoute false !==, parce qu'il me semble sinon qu'un fichier ou un dossier appelé 0 (soit false!) pourrait mettre fin à la boucle! while (false !== ($file = readdir($dh))) { if (($file != '.') && ($file != '..')) { $path = "$dir/$file"; if (is_dir($path)) $directories[] = $path; else $mcArray[$path] = array( 'path' => $dir, 'time' => date("d/m/Y H:i:s", filemtime($path)) ); } } closedir($dh); } } return json_encode($mcArray); }
29 oct. 2015 à 21:00
30 oct. 2015 à 20:22
hmm je tenterai de t'aider dès que je peux de nouveau! ;)
7 nov. 2015 à 11:07
30 oct. 2015 à 21:27