glob afficher image dans un echo

Ce sujet est résolu
178664
,

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éponse

17162
,

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.

178664
,

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

178664
,

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

Merci je vais tester^^

17162
,

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;
178664
,

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

178664
,

var_dump($test); renvoie 'avatars/'

17162
,

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;