salut tous le monde
j'ai un probléme qui me géne c'est que je ne sais pas comment chercher des fichiers x.jpg dans un espace ftp par un script php
aidez moi svp:cry:
Version imprimable
salut tous le monde
j'ai un probléme qui me géne c'est que je ne sais pas comment chercher des fichiers x.jpg dans un espace ftp par un script php
aidez moi svp:cry:
Tu as ceci : Comment lister les fichiers et dossiers triés par ordre lexicographique ?
Et la fonction utilisée dans cette Q/R pour faire des recherches spécifiques selon l'extension :
Comment savoir si un dossier est vide ?
Comment supprimer massivement des fichiers ?
merci pour les liens Mr Kerod;)
le probléme c'est que je dois faire un script pour qu'il puiss démarrer une recherche das fichiers *.jpg dans un site FTP et les lister dans une liste déroulante. comment faire et merci en avance pour votre aide.
Hummm oui je vois donc oublies les sujets données car il va falloir utiliser les fonctions ftp et les regexp (peut etre qu'il y a plus simple).
Je suppose pour ce qui est de la connexion, il y a aucun problème.
Pour récupérer la liste détaillé des fichiers sur le ftp, tu dois utiliser la fonction ftp_nlist qui te renvoie un tableau contenant le nom du fichier (donc extension) puis les infos sur celui-ci (taille, date et etc...)
Un fois que tu as ce tableau, tu n'as plus qu'à utiliser la regexp (magique, non ?? :mouarf:). Pour celle-ci, je pense que ceci devrait faire l'affaire :
ou carrément voir celle disponible ici : Comment tester l'extension d'un fichier ?Code:eregi("#\.jpg#", $liste[$i])
ps : à savoir que $liste[$i] est le tableau renvoyer par ftp_nlist
voila j'ai fait ce code mais il déclare un erreur:
le message d'erreur c'est :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php $ftp_server='*******************'; $ftp_user_name='****'; $ftp_user_pass='****'; // Mise en place d'une connexion basique $conn_id = ftp_connect($ftp_server); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass); // Récupération du contenu d'un dossier $contents = ftp_nlist($conn_id, "/mypr"); // Affichage de $contents var_dump($contents); ?>
Fatal error: Maximum execution time of 30 seconds exceeded in c:\apache\htdocs\testing\esai.php on line 12
:?
Ce qui serait bien, ce serait de donner la ligne qui a l'erreur...Sinon penses à mettre un set_timeout
Une erreur de port ? La fonction ftp_connect prend aussi un paramètre timeout (que l'on peut aussi fixer avec ftp_set_option) car par défaut il est de 90 secondes 8O.
Julp.
j'ai ajouter le time out:
et voici le resultat :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php $ftp_server='*************'; $ftp_user_name='******'; $ftp_user_pass='*******'; // Mise en place d'une connexion basique $conn_id = ftp_connect($ftp_server,,10); ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 10); // Identification avec un nom d'utilisateur et un mot de passe $login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass); // Récupération du contenu d'un dossier $contents = ftp_nlist($conn_id, "/mypr"); // Affichage de $contents var_dump($contents); ?>
Parse error: parse error in c:\apache\htdocs\testing\esai.php on line 6
la ligne n° 6 c'est :$conn_id = ftp_connect($ftp_server,,10);
ya rien entre ,, ?
ftp_connect($ftp_server,???????,10);
pk ne pas mettre le port ?!
car je sais pas c'est quoi le port?:oops: merci de me dire c'est quoi?Citation:
Envoyé par omura
Voici un code qui fonctionne :
Et après il faut tester si le $login_result est ok pour pouvoir faire les traitements que tu souhaites réaliser ;)Code:
1
2
3
4
5
6
7
8
9 $conn_id = ftp_connect("$ftp_server"); if($conn_id) { @ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 2); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); }
ps : pour des questions de sécurités évites de mettre tes identifiants ftp ainsi que pass
Merci bien Mr Kerod;)
j'ai modifié mon code grace au code que vous avais mis et voila:
<?
il ne donne aucun message d'erreur mais il n'affiche que le vide pq?Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 $ftp_server='***********'; $ftp_user_name='******'; $ftp_user_pass='****'; $conn_id = ftp_connect($ftp_server); if($conn_id) { @ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 2); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); $contents = ftp_nlist($conn_id, "."); // Affichage de $contents var_dump($contents); } ?>
Testes avec ce code et dis moi si l'identification est correcte...Sinon tu as au moins des fichiers sur ton ftp :roll:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <? $ftp_server='***********'; $ftp_user_name='******'; $ftp_user_pass='****'; $conn_id = ftp_connect($ftp_server); if($conn_id) { @ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 2); // login with username and password $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); if($login_result) { $contents = ftp_nlist($conn_id, "."); // Affichage de $contents var_dump($contents); } else { echo "identification impossible"; } } ?>
j'ai écris le code si dessus mais rien n'a changé et pour la question du ftp voici l'image de mon ftpCitation:
Envoyé par Kerod
Bon voilà un code que j'avais fait pour un explorateur ftp :
Et ca fonctionnait...Testes ;)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 if ($conn_id) { echo 'Status : Connecté '; echo '<img src="images/on.gif" alt="connecté"/>'; if(@ftp_chdir($conn_id, $path)) { echo '<tr><th align="left">Nom du fichier</th><th width="12%">Taille</th></tr>'; // Récupère la liste des fichiers de / $liste = @ftp_nlist($conn_id,''); for($i = 0; $i < count($liste); $i++) {// Récupération de la taille du fichier $file $taille = @ftp_size($conn_id, $liste[$i]); echo '<tr><td class="row1"><span class="gen">'.$liste[$i].' </span></td>'; echo '<td align="right" class="row1" nowrap="nowrap"><span class="gen">'.$size.' </span></td></tr>'; } } else { echo "<span class='gen' style='float:right'><b>Dossier inexistant</b></span></td></tr>"; } }
Sinon ca peut venir juste du .
Merci bien Mr Kerod;)
mais voila ce qu'il affiche:?
http://www.nusraah.com/up/up/nusraah_1178335622.jpg
Montres l'intégralité de ton code pour voir
Merci bien Mr Kerod pour votre patiance;)
voila le code :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <? $ftp_server='**********'; $ftp_user_name='******'; $ftp_user_pass='******'; $conn_id = ftp_connect($ftp_server); if ($conn_id) { echo 'Status : Connecté '; echo '<img src="images/on.gif" alt="connecté"/>'; if(@ftp_chdir($conn_id, $path)) { echo '<tr><th align="left">Nom du fichier</th><th width="12%">Taille</th></tr>'; // Récupère la liste des fichiers de / $liste = @ftp_nlist($conn_id,''); for($i = 0; $i < count($liste); $i++) {// Récupération de la taille du fichier $file $taille = @ftp_size($conn_id, $liste[$i]); echo '<tr><td class="row1"><span class="gen">'.$liste[$i].' </span></td>'; echo '<td align="right" class="row1" nowrap="nowrap"><span class="gen">'.$size.' </span></td></tr>'; } } else { echo "<span class='gen' style='float:right'><b>Dossier inexistant</b></span></td></tr>"; } } ?>
bon je vais t'expliquer quelque chose.
Le code que je t'ai donné fonctionnait avec des variables définis plus haut..Par exemple la variable $path est le nom du dossier dans lequel je voulais aller et si je ne l'avais pas choisis c'était la racine par défaut.
Donc on va changer tout ca :
voilà et il faut rajouter le ftp_login et le tester avantCode:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <? $ftp_server='**********'; $ftp_user_name='******'; $ftp_user_pass='******'; $conn_id = ftp_connect($ftp_server); if ($conn_id) { echo 'Status : Connecté '; echo '<img src="images/on.gif" alt="connecté"/>'; echo '<tr><th align="left">Nom du fichier</th><th width="12%">Taille</th></tr>'; // Récupère la liste des fichiers de / $liste = @ftp_nlist($conn_id,''); for($i = 0; $i < count($liste); $i++) {// Récupération de la taille du fichier $file $taille = @ftp_size($conn_id, $liste[$i]); echo '<tr><td class="row1"><span class="gen">'.$liste[$i].' </span></td>'; echo '<td align="right" class="row1" nowrap="nowrap"><span class="gen">'.$size.' </span></td></tr>'; } } ?>
Code:$liste = @ftp_nlist($conn_id,'');
merci bien Mr kerod ;)
voila le code :
et voila ce qu'il affiche :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <? $ftp_server='------------------'; $ftp_user_name='--------------'; $ftp_user_pass='---------------'; $conn_id = ftp_connect($ftp_server); if ($conn_id){ echo 'Status : Connecté '; echo '<img src="images/on.gif" alt="connecté"/>'; echo '<tr><th align="left">Nom du fichier</th><th width="12%">Taille</th></tr>'; // Récupère la liste des fichiers de / $login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass); if($login_result) { $liste = @ftp_nlist($conn_id,'/mypr'); for($i = 0; $i < count($liste); $i++) {// Récupération de la taille du fichier $file $taille = @ftp_size($conn_id, $liste[$i]); echo '<tr><td class="row1"><span class="gen">'.$liste[$i].' </span></td>'; echo '<td align="right" class="row1" nowrap="nowrap"><span class="gen">'.$size.' </span></td></tr>'; } } } ?>
http://www.nusraah.com/up/up/nusraah_1411258104.jpg