> Tous les forums > Forum des Webmasters
 variable et array
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
padymen
  Posté le 17/11/2014 @ 10:58 
Aller en bas de la page 
Astucien

Bonjour,

je rencontre un petit souci en essayant de mettre le contenu d'une variable dans un array,

si je fais : $mesExtensions = ('jpg'); cela fonctionne très bien mais si j'essaie de faire : $mesExtensions = array ('jpg', 'jpeg', JPG', 'JPEG'); cela ne fonctionne plus

je joins le code complet ci dessous, si vous avez une idée de l'erreur ...

function listageArt ()
{

$mesExtensions = array('jpg','jpeg','JPG','JPEG');
$chemin = "../art/";
$cpt=0;

if (is_dir($chemin))
{
if ($ouvreDossier = opendir($chemin))
{
while (($fichier = readdir($ouvreDossier)) !== false)
{

$getExt = explode(".", $fichier);
$countExt = count($getExt);
$fExt = $countExt - 1;
$myExt = $getExt[$fExt];

if (($myExt == $mesExtensions) && ($fichier != ".") && ($fichier != ".."))
{
$cpt++;
}
}
}
return $cpt;
closedir($ouvreDossier);
}
}
$nombreArt = listageArt();
if( $nombreArt == 0) $resultatArt = (' Aucune image à ajouter.');
if( $nombreArt > 0) $resultatArt = ($nombreArt.' image à ajouter.');
if( $nombreArt > 1) $resultatArt = ($nombreArt.' images à ajouter.');



Modifié par padymen le 17/11/2014 10:59
Publicité
padymen
 Posté le 17/11/2014 à 12:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

je viens de lire ton message et je ne vois pas comment implémenter cette boucle foreach mais merci de la piste je cherche, j'essayais avec un if (in_array) mais ça ne semble pas fonctionner

function listageArt ()
{

$chemin = "art/";
$mesExtensions = array('jpg','jpeg','JPG','JPEG');
$cpt=0;
$chaine="";

if (is_dir($chemin))
{
if ($ouvreDossier = opendir($chemin))
{
while (($fichier = readdir($ouvreDossier)) !== false)
{
$extensionsTrouves[] = $fichier;
if ($fichier != "." && $fichier != "..") $chaine = $chaine.' - '.$fichier;
$getExt = explode(".", $fichier);
$countExt = count($getExt);
$fExt = $countExt - 1;
$myExt = $getExt[$fExt];

if (in_array($getExt,$mesExtensions)) { $liste_jpg[] = $fichier; $cpt++;

$cpt++;
}
}
}
return $cpt;
closedir($ouvreDossier);
}
}
$nombreArt = listageArt();
if( $nombreArt == 0) $resultatArt = ('Aucune image à ajouter.');
if( $nombreArt > 0) $resultatArt = ( $nombreArt. ' image à ajouter.');
if( $nombreArt > 1) $resultatArt = ($nombreArt. ' images à ajouter.');

echo $resultatArt ;

padymen
 Posté le 17/11/2014 à 13:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

c'est bon, j'ai trouvé la solution, merci pour tes pistes

code fonctionnel :

function listageArt ()
{
$mesExtensions = array('jpg','jpeg','JPG','JPEG');
$chemin = "art/";
$cpt=0;
$ouvreDossier = opendir($chemin);
$chaine="";

if (is_dir($chemin))
{
if ($ouvreDossier = opendir($chemin))
{
while ($fichier = readdir($ouvreDossier))
{
$extension = explode('.', $fichier);
$extension = ($extension[count($extension) - 1]);

if (in_array($extension,$mesExtensions))
{
$nombreArt[] = $fichier;
$cpt++;
}
}
}
}

$resultat = count ($nombreArt);

if( $resultat == 0) $resultatArt = (' Aucune image à ajouter.');
if( $resultat > 0) $resultatArt = ($resultat.' image à ajouter.');
if( $resultat > 1) $resultatArt = ($resultat.' images à ajouter.');
echo "$resultatArt<br>\n";

closedir($ouvreDossier);
}

listageArt();

padymen
 Posté le 17/11/2014 à 19:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

En fait j'ai été un peu trop rapide pour marquer le sujet comme résolu !

alors tant qu'il y a un résultat à afficher ça fonctionne mais si il n'y a pas de résultat je me retrouve avec un superbe

Notice: Undefined variable: nombreArt in C:\xampp\htdocs\test\test\admin\include\admin.php on line 68

Notice: Undefined variable: resultatArt in C:\xampp\htdocs\test\test\admin\include\admin.php on line 71

et demain pas de pc pour cause de déplacement hors de France pour le boulot ...

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
499,99 €PC portable Asus VivoBook (FullHD, Core i5, 8 Go RAM, SSD 512Go) à 499,99 €
649 € -23%

Cdiscount fait une promotion sur le PC portable Asus 15.6 pouces Vivobook R515JA-BQ2070W qui passe à 499,99 € au lieu de 649 €. Ce portable possède un écran 15.6 pouces FullHD (1920x1080), un processeur Intel Core i5 1035G1, 8 Go de RAM et un SSD NVMe de 512 Go. Le tout tourne sous Windows 11. Webcam, WiFi, USB 3.2, USB Type C, Ethernet Gigabit et Bluetooth sont de la partie. 


Voir l'offre
19,90 €Batterie externe Xiaomi Mi Power Bank 3 (10 000 mAh, charge rapide 18W) à 19,90 €
25,99 € -23%

Amazon fait une vente flash sur la batterie externe Xiaomi Mi Power Bank 3 qui passe à 19,90 € au lieu de 25,99 €. Cette batterie offre une capacité de 10 000 mAh et la charge rapide bi directionnelle 18 W USB C. Un port MicroUSB est également présent ainsi que 2 ports USB.

A glisser dans votre sac pour recharger votre portable plusieurs fois en déplacement.


Voir l'offre
189,99 €Ecran 27 pouces incurvé Viewsonic VX2718 (FHD, 165 Hz, 1 ms) à 189,99 €
229 € -17%

Cdiscount fait une promotion sur l'écran 27 pouces incurvé Viewsonic VX2718 qui passe à 189,99 € alors qu'on le trouve ailleurs à partir de 229 €. Cet écran dispose d'une dalle VA Full HD  (1920x1080) à 165 Hz avec un temps de réponse de 1 ms. Il est compatible Adaptive Sync. Au niveau connectique, vous trouverez une entrée DP et deux entrées HDMI. Une très bonne affaire. 


Voir l'offre
29,90 €Carte mémoire microSDXC UHS-I SanDisk A1 Ultra 256 Go à 29,90 €
40 € -25%

Cdiscount propose actuellement la carte mémoire microSDXC UHS-I SanDisk A1 Ultra 256 Go qui passe à 29,90 €. On la trouve ailleurs à partir de 40 €. Cette carte mémoire offre des vitesses jusqu'à 120 Mo/s et est idéale pour les téléphones, caméras et appareils photo HD. Elle est certifiée GoPro et Nintendo Switch.


Voir l'offre

Sujets relatifs
trier un array
variable d'un select MAJ en "directe"
variable
Passage de variable et affichage
variable $mailheaders
souci de troncature sur variable double
margin-left dans résultat d'une variable php
Retour à la ligne variable affiché dans du javascr
modifications de variable phpbb2
Extensions de fichiers limitées array()
Plus de sujets relatifs à variable et array
 > Tous les forums > Forum Forum des Webmasters