Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/06/2007, 16h02   #1
Invité de passage
 
Inscription : mars 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 19
Points : 3
Points : 3
Par défaut [FTP] récupérer un fichier ZIP sur un FTP et extraire le fichier +incorporer en BDD

Bonjour,
j'aurais besoin de :
- récupérer un fichier ZIP sur un FTP
- extraire le fichier du ZIP
- incorporer ce fichier TXT en BDD

j'ai trouvé un code pour récupérer via mon ftp

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
 
// 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); 
// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) 
	{         
		echo "La connexion FTP a échoué !";        
		echo "Tentative de connexion au serveur $ftp_server pour l'utilisateur $ftp_user_name";         
		exit;
     } 
	else 
	{  echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";    }// Chargement d'un fichier
 
 
// RECUP DU FICHIER
// Définission de variables
$local_file = 'XXXXXX.ZIP'; 
$server_file = '/xxxx/XXXXXX.ZIP';
// Tentative de téléchargement du fichier $server_file et sauvegarde dans le fichier $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) 
	{    echo "Le fichier $local_file a été chargé avec succès\n";} 
else {    echo "Il y a un problème.\n";}
// Fermeture de la connexion
ftp_close($conn_id);
mais j'ai le message :
Fatal error: Maximum execution time of 30 seconds exceeded in ... à la ligne de mon { echo "Le fichier $local_file a été chargé avec succès\n";}

ça met environ 3 minutes pour charger mon fichier de 4 988 Ko. apparemment il est entier.
c'est pas un peu long ?

comment résoudre cette erreur ?

ensuite quel est le code pour extraire le fichier texte qui se trouve dans mon ZIP ?

ensuite si quelqu'un a la manière de lire un fichier texte séparé par des virgules, et le texte entre guillemets, ça m'arrangerait que vous me mettiez sur la voie... je n'ai jamais fait cela en PHP.
j'ai besoin de mettre en base de données les informations...

Merci d'avance à tous et Bon WE
Rose95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/06/2007, 21h19   #2
Candidat au titre de Membre du Club
 
Inscription : janvier 2006
Messages : 27
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 27
Points : 12
Points : 12
Citation:
Envoyé par Rose95
mais j'ai le message :
Fatal error: Maximum execution time of 30 seconds exceeded in ... à la ligne de mon { echo "Le fichier $local_file a été chargé avec succès\n";}
Il est possible que le transfere via ftp_get dure plus de 30 sec, essais d'augmenté la valeur de la directive max-execution-time dans le fichier php.ini se qui te permettra de laisser plus de 30 sec a l'execution de ton script.

cf: max-execution-time

++ nairolf
nairolf_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 10h13   #3
Invité de passage
 
Inscription : mars 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 19
Points : 3
Points : 3
Merci
j'avais déjà testé, mais ça ne fonctionnait pas en local avec easyphp
alors que ça fonctionne en ligne
donc ce pb est résolu

j'ai touvé comment lire un fichier texte et l'inclure dans ma base de données

mais il me reste à trouver comment faire pour dézipper un fichier
j'ai trouvé ça
Code :
1
2
3
4
5
6
7
8
9
10
<?php
$zip = new ZipArchive;
if ($zip->open('ingram/PRICE.ZIP') === TRUE) {
    $zip->extractTo('ingram/');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>
mais j'ai l'impression qu'il faut que j'installe une librairie ou quelque chose comme ça, quelqu'un pourrait m'aider ?
Rose95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 10h19   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Tout dépend de ta configuration, souvent la DLL php_zip.dll est présente mais il faut surement l'activer dans ton php.ini.

Developpez.com est ton ami, il y a un article sur l'utilisation de cette librairie ICI
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 10h28   #5
Membre habitué
 
Avatar de maxime.ohayon
 
Inscription : mai 2007
Messages : 113
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2007
Messages : 113
Points : 100
Points : 100
Moi je te conseil d'utiliser la pclzip.lib, elle est superfacile à utiliser est accessible http://www.phpconcept.net/download.p...pclzip-2-5.zip
Ensuite c'est tout bete
Code :
1
2
3
4
5
6
 
include('pclzip.lib.php');
$archive = new PclZip('mon_archive_à_dézipper.zip');
if ($archive->extract(PCLZIP_OPT_PATH, './dossier_de_sortie/') == 0) {
    die("Error : ".$archive->errorInfo(true));
}
et voila le tour est joué n'oublie pas de creer le dossier de sortie, la fonction dezip dedans, elle ne créé pas le dossier.

Max
maxime.ohayon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 15h49   #6
Invité de passage
 
Inscription : mars 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 19
Points : 3
Points : 3
Citation:
Envoyé par maxime.ohayon
Moi je te conseil d'utiliser la pclzip.lib, elle est superfacile à utiliser est accessible http://www.phpconcept.net/download.p...pclzip-2-5.zip
Ensuite c'est tout bete
Code :
1
2
3
4
5
6
 
include('pclzip.lib.php');
$archive = new PclZip('mon_archive_à_dézipper.zip');
if ($archive->extract(PCLZIP_OPT_PATH, './dossier_de_sortie/') == 0) {
    die("Error : ".$archive->errorInfo(true));
}
et voila le tour est joué n'oublie pas de creer le dossier de sortie, la fonction dezip dedans, elle ne créé pas le dossier.

Max
je trouve ça simple, mais problème : ça fonctionne en local donc sous windows et easyphp
mais ça ne fonctionne pas en ligne
mon but étant :
après avoir téléchargé un fichier via une connection ftp me connectant au serveur d'un de mes fournisseurs : je copie le fichier dans un répertoire de mon site internet,
ensuite j'aimerais pouvoir le dézipper (toujours sur le serveur de mon site) pour après pouvoir le traiter et intégrer les données dans ma base de données MySQL

je suis en ligne sous Apache/1.3.33 (Unix) PHP/4.3.10

help !
Rose95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/06/2007, 16h47   #7
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
L'extension dont je t'ai parlé existe pour windows ET unix, pour PHP 4 et 5, maintenant il faut que ton hebergeur l'active par défaut (ou que tu puisses l'activer ou demander son activation).
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/06/2007, 10h01   #8
Membre habitué
 
Avatar de maxime.ohayon
 
Inscription : mai 2007
Messages : 113
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2007
Messages : 113
Points : 100
Points : 100
Citation:
je trouve ça simple, mais problème : ça fonctionne en local donc sous windows et easyphp
mais ça ne fonctionne pas en ligne
Si si je te jure que sa marche sous unix et sur un serveur distant,
tu n'as pas du bien adapter mon code.

Max
__________________
Faut faire l'ane pour avoir de l'avoine
maxime.ohayon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2007, 10h17   #9
Invité de passage
 
Inscription : mars 2007
Messages : 19
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 19
Points : 3
Points : 3
Citation:
Envoyé par maxime.ohayon
Si si je te jure que sa marche sous unix et sur un serveur distant,
tu n'as pas du bien adapter mon code.
eh bien j'ai essayé , même en mettant le nom complet du répertoire et ça ne fonctionne pas ...
y'a rien à mettre dans php.ini ou quelque chose d'autre ???

Code :
1
2
3
4
5
include('pclzip-2-5/pclzip.lib.php');
$archive = new PclZip('./mondossier/MONFICHIER.ZIP');
if ($archive->extract(PCLZIP_OPT_PATH, './mondossier/') == 0) {
    die("Error : ".$archive->errorInfo(true));
}
j'ai pas regardé ce qu'il y avait dans le fichier pclzip.lib.php, j'ai un peur de rien comprendre de toute manière !...

j'ai pas d'erreur,
moi sur ma machine il marque impossible d'afficher la page
et mon collègue, il n'a rien, page blanche ...

j'ai essayé avec et sans le ./ d'un coté et/ou de l'autre, rien n'y fait ...
Rose95 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/06/2007, 11h26   #10
Membre habitué
 
Avatar de maxime.ohayon
 
Inscription : mai 2007
Messages : 113
Détails du profil
Informations personnelles :
Âge : 24
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : mai 2007
Messages : 113
Points : 100
Points : 100
Salut
moi sa marche toujours aussi nikel, je trouve ca bizarre et je crains que je ne peux pas t'aider.

Max
__________________
Faut faire l'ane pour avoir de l'avoine
maxime.ohayon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h20.


 
 
 
 
Partenaires

Hébergement Web