Bonjour,

Ce que je fais

<?php $testt=glob('avatars/'.'*'); if($testt){echo '<img src="'.$testt.'"/>'; }  ?>

Ce que j'obtiens

J'obtient le message d'erreur : Notice: Array to string conversion in... je ne comprend pas comment arranger ce probleme .

7 réponses


Lartak
Réponse acceptée

Bonjour.
Tu devrais plutôt faire quelque chose comme :

foreach (glob("avatars/") as $test):
    echo '<img src="'.$test.'"/>';
endforeach;

Comme il est dit dans l'erreur, tu obtiens un tableau, soit de tous les fichiers récupérés, tu ne peux donc pas faire un echo seulement sur un array.

ovvo
Auteur
Réponse acceptée

c'est bon j'ai trouvé il manquait : '.'*' derriere avatars/

ovvo
Auteur

si je comprendq bien foreach est un genre de curseur qui parcoure chaque élement du tableau ?

Merci je vais tester^^

Oui, c'est le même genre que while sauf que la syntaxe est différente.

while ($test = glob("avatars/")):
    echo '<img src="'.$test.'"/>';
endwhile;
ovvo
Auteur

d'accord je comprends mieux merci.

J'ai testé ton bout de code , plus aucun message d'erreur mais je n'ai aucune image qui apparait

ovvo
Auteur

var_dump($test); renvoie 'avatars/'

Ok, dans ce cas là : glob("avatars/*"), j'oubliais que c'est un pattern qu'il faut passer en argument.
Par contre, dans ton echo, n'oublies pas d'ajouter le chemin des fichiers, car tu ne vas avoir que les fichiers en retour, soit :

foreach (glob("avatars/*") as $test):
    echo '<img src="avatars/'.$test.'"/>';
endforeach;