glob afficher image dans un echo

Par ovvo, il y a 7 ans


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, il y a 7 ans

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, il y a 7 ans

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

Merci je vais tester^^

Lartak, il y a 7 ans

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, il y a 7 ans

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, il y a 7 ans

var_dump($test); renvoie 'avatars/'

ovvo, il y a 7 ans

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

Lartak, il y a 7 ans

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;