OVH Cloud OVH Cloud

lister un dossier distant

6 réponses
Avatar
Saad
Bonjour,

Peut-on lister les images d'un dossier distant (sur un autre serveur) ?

J'ai fais

$handle=opendir("http://mondomaine2.com/photos/");

while ($file = readdir($handle))
{
if ($file != "." && $file != "..")
{
echo "---$file---<br>";
}
}

closedir($handle);


mais il m'indique erreur


quid ?

6 réponses

Avatar
Calimero
Saad wrote:
Bonjour,

Peut-on lister les images d'un dossier distant (sur un autre serveur) ?


Etant donné qu'il n'y a pas de format standard (à ma connaissance) ca
me paraît chaud.
C'est comme le listing de répertoire en FTP, mais en pire.

--
@+
Calimero

Avatar
Cedric Olmanst
Bonjour,
Peut-on lister les images d'un dossier distant (sur un autre serveur) ?
J'ai fais

$handle=opendir("http://mondomaine2.com/photos/");
while ($file = readdir($handle))
{
if ($file != "." && $file != "..")
{
echo "---$file---<br>";
}
}
closedir($handle);

mais il m'indique erreur
quid ?


La moindre des choses quand tu poses ce genre de question, c'est de
donner le massage d'erreur ;o) Bon ce n'est pas bien grave, mais
j'aurais préféré. Sans doute un oubli. Ton code a à priori l'air pas
trop incorrect, donc le message d'erreur aiderait.

Le seul détail qui cloche, c'est que... ton code posera problème si tu a
un répertoire dont le nom peut être "assimilé" à false, comme un
répertoire nommé 0. Dans ce cas, ta boucle s'arrêterait avant la fin du
parcours. Tu dois donc tester le type en même temps. C'est pourquoi ta
condition doit être un truc comme ceci:
($file = readdir($handle)) !== false

Il peut être intéressant d'utiliser is_dir(), j'imagine, pour tester si
ton contenu est un fichier ou un dossier, et mettre une icône de dossier
devant (bon ok, je chicane).

Bon, comme tu ne donnes pas le message d'erreur, je vais essayer de
deviner... hmmmm tu ne testes pas le résultat de ton opendir. Peut-être
que c'est là que ça foire, parce que tu n'as pas les permissions sur le
dossier, ou pour tout autre raison ? Essaie en testant ce résultat et
tiens-moi au courant :)

Cédric Olmanst

Avatar
David JOURAND
Bonjour,


$handle=opendir("http://mondomaine2.com/photos/");
while ($file = readdir($handle))
{
...
}
closedir($handle);

mais il m'indique erreur
quid ?


Bon, comme tu ne donnes pas le message d'erreur, je vais essayer de
deviner... hmmmm tu ne testes pas le résultat de ton opendir. Peut-être
que c'est là que ça foire, parce que tu n'as pas les permissions sur le
dossier, ou pour tout autre raison ? Essaie en testant ce résultat et
tiens-moi au courant :)


Peut-être simplement parce qu'il n'y a aucun répertoire... mais une page
HTML générée dynamiquement par apache quand il n'y a pas de index.html,
index.php, index.xxx en général ?


--
David Jourand


Avatar
P'tit Marcel
Peut-on lister les images d'un dossier distant (sur un autre serveur) ?
J'ai fais
$handle=opendir("http://mondomaine2.com/photos/");


Opendir ne fonctionne que sur des répertoire du système de fichier
local, et non avec des URL.

pour l'accès à un dossier par son URL, je pense que la fonction fopen
sera ton amie.


eça
--
P'tit Marcel

Avatar
Saad
Peut-on lister les images d'un dossier distant (sur un autre serveur) ?
J'ai fais
$handle=opendir("http://mondomaine2.com/photos/");


Opendir ne fonctionne que sur des répertoire du système de fichier
local, et non avec des URL.

pour l'accès à un dossier par son URL, je pense que la fonction fopen
sera ton amie.


eça



merci,

avec fopen je suis arrivé à lister le répertoire.

Je me suis mal exprimer, mon but n'est pas de voir le contenu du dossier
mais bien d'afficher toutes les photos qu'il contient. (ce dossier ce
trouve sur un serveur distant)

<img src="fichier1">
<img src="fichier2">
...

merci


Avatar
P'tit Marcel
avec fopen je suis arrivé à lister le répertoire.
Je me suis mal exprimer, mon but n'est pas de voir le contenu du dossier
mais bien d'afficher toutes les photos qu'il contient. (ce dossier ce
trouve sur un serveur distant)
<img src="fichier1">
<img src="fichier2">



Si le site distant ne t'appartient pas et que le propriétaire n'a pas
donné son accord, ce montage ne me semble pas légal (délit de contrefaçon).


Sur le plan technique, il suffit d'analyser le texte HTML généré par le
site distant. Avec Apache, cela donnerait un truc du genre :

<?php
$r = fopen("http://domaine/répertoire/", "r") or
die ("accès impossible");
while(!feof($r)) {
if (preg_match('`<A HREF="([^."]+.(jpg|gif|bmp|png|jpeg))">`i',
fgets($r),$trouve)) {
$une_image = $trouve[1];
echo '<IMG SRC="',$une_image,'" ALT=""> ';
}
}
fclose($r);
?>


eça
--
P'tit Marcel