Bonjour,

J'essaye de capturer une serie de fichier accessibles pour certains par http, d'autres par ftp, je n'ai aucun controle la dessus.

J'ai donc essaye ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
$flux['machin'] = "http://www.machin.com/fic_xml/machin.xml";
$flux['truc'] = "http://www.truc.com/images/m3/CS/truc.zip";
$flux['blah'] = "ftp://user:pass@trucmuche.com/trucmuche.xml";
$flux['blooh'] = "ftp://user:pass@bidule.fr/bidule.zip";
etc...
 
foreach($flux as $key=>$value)
{
	//echo $value;
	$mon_flux = file_get_contents($value);
	file_put_contents("/var/www/tests/flux/".$key.".".substr($value,-3), $mon_flux);
	chmod("/var/www/tests/flux/".$key.".".substr($value,-3), 0777);
}

Ca marche bien pour le http, et pour CERTAINS ftp.. mais pas tous, et la est mon probleme !!

Pour certains ftp il me sort cette erreur :
Warning: file_get_contents(ftp://.../machin.zip) [function.file-get-contents]: failed to open stream: FTP server reports 550 file does not exist in /var/www/tests/ceto.php on line 13

Alors que quand j'essaye avec les fonctions FTP classiques de php, ca marche :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28
29
$ftp_server = "blah";
$ftp_user_name="user";
$ftp_user_pass="pass";
$server_file="truc.zip";
$local_file="/var/www/tests/flux/truc.zip";
 
// Création de la connexion
$conn_id = ftp_connect("$ftp_server");
 
// Authentification avec nom de compte et mot de passe
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");
 
// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
        echo "La connexion FTP a échoué!";
        echo "Tentative de connexion à $ftp_server avec $ftp_user_name";
        die;
    } else {
        echo "Connecté à $ftp_server, avec $ftp_user_name";
    }
 
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
   echo "Le fichier $local_file a été écris avec succès\n";
} else {
   echo "Il y a un problème\n";
}
 
// Fermeture de la connexion FTP.
ftp_quit($conn_id);

D'ou peut venir le probleme ?? parce que ca me simplifierait bien la vie de tout obtenir par file_get_contents plutot qu'une fonction ftp speciale pour les fichiers ftp.. !