IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

recherche avec ftp_nlist jusqu 'a trouver le fichier


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Points : 113
    Points
    113
    Par défaut recherche avec ftp_nlist jusqu 'a trouver le fichier
    bonjour , j'utilise ftp_nlist pour lister un fichier d'un serveur , tout marche bien mon problème est que parfois ce fichier soit déposer tardivement, moi je tourne mon programme a 12h00 donc si le fichier vient après 12h00 il ne va pas être récupérer, maintenant je cherche un moyen de tourner ce programme jusqu’à trouver le fichier et l 'afficher c'est à dire faire une recherche apres chaque 30min avec ftp_nlist

    voici mon code

    Code php : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    <?php
    $ftp_server="xxxxxxxxxxxxxx";
    $ftp_user_name="xxxx";
    $ftp_user_pass="xxxxxxxx";
    // 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);
    $mode = ftp_pasv($conn_id, TRUE);
     
     
    // Vérification de la connexion
    if ((!$conn_id) || (!$login_result) || (!$mode)) {
           // 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";
    		// Récupération du contenu d'un dossier
            $datev=date('dmY');
           // echo "Dossier courant : " . ftp_pwd($conn_id) . "\n";
    		// Tentative de modification du dossier en "videos"
    		 if (ftp_chdir($conn_id,"EXPORT")) {
    			//echo "Le dossier courant est maintenant : " . ftp_pwd($conn_id) . "\n";
    		} else {
    			//echo "Impossible de changer de dossier\n";
    		} 
            $contents = ftp_nlist($conn_id, "EXPORT_CUN_".$datev."_*"); 
            foreach ($contents as $f ) //print $f."</br>";
           // Affichage de $contents
           //var_dump($contents);
           $remote_file = $f;
           $local_file = 'C:/dolibarr/dolibarr_documents/ecm/IMPORT BANQUE/'.$f;
    	   $local_file2= 'C:/dolibarr/dolibarr_documents/import_banque_final/'.$f ;
           // Ouverture du fichier pour écriture
           $handle = fopen($local_file, 'w');
    	   if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)) {
    		  // echo "Ecriture dans le fichier $local_file avec succès\n";
    		   $variable=copy($local_file,$local_file2);
    		   ///////////////////////////////////////////////////////////////////
    		   $newTABLEAU = file('C:/dolibarr/dolibarr_documents/import_banque_final/'.$f);  
    			$c=count($newTABLEAU);
    			//echo($c);
    			$lignesGARDEES = array_slice ($newTABLEAU,4);
    			$contenu=implode("",$lignesGARDEES);  
     
    			$fichierTEMP = fopen('C:/dolibarr/dolibarr_documents/import_banque_final/prep_import.csv','w+');  
    			fwrite($fichierTEMP,$contenu);  
    			fclose($fichierTEMP); 
     
    			//////////////:
    			 $new = file('C:/dolibarr/dolibarr_documents/import_banque_final/prep_import.csv');  
    			$c=count($new);
    			//echo($c);
    			$lignes = array_slice ($new,0,$c-1);
    			$cont=implode("",$lignes);
    			$de=date('d_m_Y');
    			$ff='C:/dolibarr/dolibarr_documents/import_banque_final/import_final_'.$de.'.csv';
    			$f = fopen($ff,'w+');  
    			fwrite($f,$cont);  
    			fclose($f); 
     
    			$fichier=$ff;
     
    			//ouverture en lecture et modification
    			$text=fopen($fichier,'r') or die("Fichier manquant");
    			$contenu=file_get_contents($fichier);
    			$contenuMod=str_replace('Payée', 'Payee', $contenu);
                $contenuModfinal=str_replace('Rejetée', 'Rejetee',$contenuMod );
     
    			fclose($text);
     
    			//ouverture en écriture
    			$text2=fopen($fichier,'w+') or die("Fichier manquant");
    			fwrite($text2,$contenuModfinal);
    			fclose($text2); 
     
     
               ///////////////
     
     
     
    		   ////////////////////////////////////////////////////////////////////
    		} else {
    	     //echo "Il y a un problème lors du téléchargement du fichier $remote_file dans $local_file\n";
    		}
     
        }
     
     
     
    // Fermeture de la connexion
    ftp_close($conn_id);
     
    fclose($handle);
    ?>
    merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu peux autoriser l'execution illimitée du script, il suffit de faire une boucle qui s'arrête lorsque le fichier a été trouvé ou lorsque le temps limite est dépassé.

    Sinon, tu peux programmer une tâche planifiée / cron.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Points : 113
    Points
    113
    Par défaut
    merci de votre aide au fait l'idée du boucle me vient en tête mais je ne sais pas comment y faire merci de d'avance de votre aide

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Points : 113
    Points
    113
    Par défaut
    bonjour jai essaie d'utiliser la boucle do while pour realiser cette boucle est ce que une bonne idée de le faire de votre avance
    voici mon niveau code

    Code php : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
     
    <?php
    $ftp_server="xxxxxxxxxxxxx";
    $ftp_user_name="xxxxx";
    $ftp_user_pass="xxxxxxxxxx";
    // 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);
    $mode = ftp_pasv($conn_id, TRUE);
     
     
    // Vérification de la connexion
    if ((!$conn_id) || (!$login_result) || (!$mode)) {
           // 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";
    		// Récupération du contenu d'un dossier
            $datev=date('dmY');
           // echo "Dossier courant : " . ftp_pwd($conn_id) . "\n";
    		// Tentative de modification du dossier en "videos"
    		 if (ftp_chdir($conn_id,"EXPORT")) {
    			//echo "Le dossier courant est maintenant : " . ftp_pwd($conn_id) . "\n";
    		} else {
    			//echo "Impossible de changer de dossier\n";
    		} 
            $contents = ftp_nlist($conn_id, "EXPORT_CUN_".$datev."_*"); 
    		  $result=count($contents);
    		do 
    		{
            foreach ($contents as $f ) //print $f."</br>";
           // Affichage de $contents
           //var_dump($contents);
           $remote_file = $f;
           $local_file = 'C:/dolibarr/dolibarr_documents/ecm/IMPORT BANQUE/'.$f;
    	   $local_file2= 'C:/dolibarr/dolibarr_documents/import_banque_final/'.$f ;
           // Ouverture du fichier pour écriture
           $handle = fopen($local_file, 'w');
    	   if (ftp_fget($conn_id, $handle, $remote_file, FTP_ASCII, 0)) {
    		  // echo "Ecriture dans le fichier $local_file avec succès\n";
    		   $variable=copy($local_file,$local_file2);
    		   ///////////////////////////////////////////////////////////////////
    		   $newTABLEAU = file('C:/dolibarr/dolibarr_documents/import_banque_final/'.$f);  
    			$c=count($newTABLEAU);
    			//echo($c);
    			$lignesGARDEES = array_slice ($newTABLEAU,4);
    			$contenu=implode("",$lignesGARDEES);  
     
    			$fichierTEMP = fopen('C:/dolibarr/dolibarr_documents/import_banque_final/prep_import.csv','w+');  
    			fwrite($fichierTEMP,$contenu);  
    			fclose($fichierTEMP); 
     
    			//////////////:
    			 $new = file('C:/dolibarr/dolibarr_documents/import_banque_final/prep_import.csv');  
    			$c=count($new);
    			//echo($c);
    			$lignes = array_slice ($new,0,$c-1);
    			$cont=implode("",$lignes);
    			$de=date('d_m_Y');
    			$ff='C:/dolibarr/dolibarr_documents/import_banque_final/import_final_'.$de.'.csv';
    			$f = fopen($ff,'w+');  
    			fwrite($f,$cont);  
    			fclose($f); 
     
    			$fichier=$ff;
     
    			//ouverture en lecture et modification
    			$text=fopen($fichier,'r') or die("Fichier manquant");
    			$contenu=file_get_contents($fichier);
    			$contenuMod=str_replace('Payée', 'Payee', $contenu);
                $contenuModfinal=str_replace('Rejetée', 'Rejetee',$contenuMod );
     
    			fclose($text);
     
    			//ouverture en écriture
    			$text2=fopen($fichier,'w+') or die("Fichier manquant");
    			fwrite($text2,$contenuModfinal);
    			fclose($text2); 
     
     
               ///////////////
     
     
     
    		   ////////////////////////////////////////////////////////////////////
    		} else {
    	     //echo "Il y a un problème lors du téléchargement du fichier $remote_file dans $local_file\n";
    		}
    	}while($result==0)
     
        }
     
     
     
    // Fermeture de la connexion
    ftp_close($conn_id);
     
    fclose($handle);
    ?>

Discussions similaires

  1. [XL-2007] Rechercher et afficher un text dans un fichier Word avec macro Excel
    Par ypelissier dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/03/2012, 16h51
  2. comment trouver des fichiers avec leur extension seulement?
    Par casual92 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/07/2010, 13h43
  3. comment trouver un fichier avec Access
    Par darkspoilt dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/05/2007, 18h58
  4. Trouver les fichiers contenant un mot avec FINDSTR
    Par soazig dans le forum Windows XP
    Réponses: 4
    Dernier message: 26/04/2007, 14h29
  5. Réponses: 8
    Dernier message: 24/11/2005, 03h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo