begin process at 2012 05 31 03:02:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Lecture via FTP


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lecture via FTP

mardi 6 janvier 2009 à 18:11:29 | Lecture via FTP

geek1983

Bonjour, j'aimerais récupérer les données de la 6ième ligne contenue dans mon fichier texte qui se trouve sur un serveur FTP. J'ai réussi en téléchargeant le fichier texte sur mon serveur et en utilisant les valeurs retourner par la fonction file(). Mais mon problème est que le téléchargement est long, donc j'aimerais lire directement mon fichier texte sur le serveur FTP sans le télécharger. Quelqu'un aurais une solution?

Merci
mardi 6 janvier 2009 à 20:57:09 | Re : Lecture via FTP

Teclis01

bah il faut un serveur apache sur la machine surement un 2.x
ensuite suffit de connaitre son ip et de faire un file_get_contents mais je suppose qu'il telechargera intégralement le contenu ... ou un fopen ...
Enfin essaye >_<

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro

mardi 6 janvier 2009 à 21:35:17 | Re : Lecture via FTP

kohntark

Membre Club
Salut,

En FTP c'est mort.
Après tout dépend de tes droits et de ce qui est installé sur le serveur :
rien => c'est mort
apache / PHP => tu crées un petit script qui, à son appel, va lire la ligne 6 en local et la renvoie au script appelant.

Pour file_get_contents je ne pense pas qu'il y ait de questions à ce poser, il téléchargera le fichier entier.
Par contre pour fopen ...


Kohntark -

mardi 6 janvier 2009 à 23:03:21 | Re : Lecture via FTP

geek1983

Malheureusement, aucun moyen d'installer un autre serveur car le FTP est intégré sur un module APC pour afficher la température des sondes dans la salle des serveurs. J'ai aussi essayé avec fopen('ftp://...', 'r') var_dump($data); mais pour une raison inconnu ça ne fonctionne pas... Il me retourne "resource(4) of type (stream)"...

Voici mon code complet, peut être quelqu'un pourra t'il optimiser la vitesse d'exécution...

$server = '172.16.8.243';
    $username = 'xxxx';
    $password = 'xxxx';
    $local_file = 'data.txt';
    $ftp_file = 'data.txt';
   
   
    if($connexion = ftp_connect($server)){
   
        if(@ftp_login($connexion, $username, $password)){
   
            @ftp_get($connexion, $local_file, $ftp_file, FTP_BINARY);
           
            if($fh = @fopen($local_file, 'r')){
            $data = file($local_file);
            fclose($fh);
           
            $gmx = substr($data[6], 20, 2);
            $nx = substr($data[6], 34, 2);
           
            echo '<ul>';
           
            if($gmx >= '24'){
                echo '<li><strong>Serveur GMX : <font color="orange">'.$gmx.'&deg;c</font></strong></li>';
            }elseif($gmx >= '27'){
                echo '<li><strong>Serveur GMX : <font color="red">'.$gmx.'&deg;c</font></strong></li>';
            }else{
                echo '<li><strong>Serveur GMX : <font color="green">'.$gmx.'&deg;c</font></strong></li>';
            }
           
            if($nx >= '24'){
                echo '<li><strong>Serveur NX : <font color="orange">'.$nx.'&deg;c</font></strong></li>';
            }elseif($nx >= '27'){
                echo '<li><strong>Serveur NX : <font color="red">'.$nx.'&deg;c</font></strong></li>';
            }else{
                echo '<li><strong>Serveur NX : <font color="green">'.$nx.'&deg;c</font></strong></li>';
            }
           
            echo '</ul>';
            }else{
                echo 'Impossible de trouver le fichier source.';   
            }
   
            ftp_close($connexion);
   
        }else{
            echo 'connexion impossible en tant que '.$username;
        }
   
    }else{
        echo 'Impossible de se connecter à '.$server;
    }
mardi 6 janvier 2009 à 23:37:14 | Re : Lecture via FTP

kohntark

Membre Club
Re,

Perso je ne vois pas de solution pour optimiser sensiblement ton script.
Quand tu parles de téléchargement long, ça signifie quoi ? 10 sec ? 20 minutes ?
Le script est appelé à chaque appel de la page ?
Combien pèse ce fichier ?
N'y a t il pas moyen de configurer ton module pour générer plusieurs fichiers (moins lourds), voir de le purger en fonction de la taille ?
Peut être mettre en place un système de cache pour éviter le rechargement trop fréquent du fichier ?


Cordialement,


Kohntark-
mercredi 7 janvier 2009 à 15:00:06 | Re : Lecture via FTP

geek1983

- Le téléchargement dure approximativement 20 secondes.
- Oui le script est appeler à chaque appel de la page puisque c'est un widget que j'ai créé pour Wordpress.
- Le fichier à télécharger est de 118 ko
- J'ai pensé à mettre en place un système de cache mais ce n'est pas possible puisque nous devons avoir une lecture de la température à chaque "refresh" de la page.

Merci pour votre aide.
mercredi 7 janvier 2009 à 21:35:38 | Re : Lecture via FTP

kohntark

Membre Club
Salut,


Je ne pense pas qu'il soit possible de réduire ce temps dès l'instant où tu ne peux pas agir sur le système distant.

Quelques petites questions et idées supplémentaires tout de même :
Ton serveur qui récupère le fichier est il en LAN avec le FTP ? (dans la salle serveurs)
Vu le temps de téléchargement j'imagine que ce n'est pas le cas; tu n'as pas moyen de récupérer ça sur un serveur présent dans la salle ?

Par ailleurs je ne suis pas d'accord avec toi sur le cache. Tu pourrai facilement ne télécharger le fichier que toutes les 3...5 minutes, voir plus. Une t° ambiante n'évolue pas si vite que ça, même en cas de panne de clim (ou alors c'est qu'il y a le feu, mais c'est trop tard :o)). Forcément, si tu n'as qu'une dizaine de connexions par heure ça ne vaut certainement pas le coup, par contre si ce nombre est important tu peux vite y gagner.
Une solution aussi, à coupler avec la précédente, serait de télécharger le fichier en arrière plan. Tu fais simplement de ton script un démon (après de légères modifications) Tu gommes ainsi le temps de téléchargement pour l'utilisateur.

Juste par curiosité il contient quoi d'autre ce fichier pour être aussi volumineux ? Il n'est pas du tout configurable ?

Cordialement,

Kohntark -

mercredi 7 janvier 2009 à 21:44:24 | Re : Lecture via FTP

kohntark

Membre Club
Mais j'y pense, tu pourrais peut être faire quelque chose avec les sockets.
En gros :
Tu crées la socket qui va bien qui lance le téléchargement du fichier.
Au fur et à mesure que tu reçois le fichier tu contrôles le numéro de ligne :
   - tu ne fais rien sur les lignes 1...5
   - tu captures et mets en forme la ligne 6
   - tu envoies au client sans attendre le reste du fichier (tu peux même tuer la socket)
Tu ne télécharges alors que les 6 premières lignes.
J'ai adopté ce système sur un robot que j'ai fait il y a deux ans, ça marche très bien (HTTP, jamais testé en FTP)

Cordialement,


Kohntark -

mercredi 7 janvier 2009 à 22:58:04 | Re : Lecture via FTP

geek1983

Tu a de très bonnes idées mon chère... Je vais essayer les sockets, mais dit moi, comment tu t'y prendrais pour faire une sorte de demon? Aurais tu un tutoriel quelconque dans tes favoris par hasard?
mercredi 7 janvier 2009 à 23:55:59 | Re : Lecture via FTP

geek1983

Ok, j'ai trouver un tutoriel, j'essaie et je t'en reparle!

1 2

Cette discussion est classée dans : fichier, lecture, texte, ftp, serveur


Répondre à ce message

Sujets en rapport avec ce message

Lecture de fichier [ par koko ] Je voudrais lire un fichier fichier.txt dans la page index.phpvoici ma fonction$fp = fopen("fichier.txt","r"); $donnees = fgets($fp,255); fclose( Problème d'upload de fichier [ par phenixoiseau ] phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du Problème d'upload de fichier [ par phenixoiseau ] phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du Problème d'upload de fichier [ par phenixoiseau ] phénixOiseauBonjour,Voilà j'ai écrit un script pour charger un fichier vers un serveur. Lorsque j'execute le script depuis ma machine le chargement du PB de DL un fichier sur un Serveur FTP [ par Xilofeon ] BonjourVoila je voudrai que qaund ma page ce charge un fichier sur un serveur FTP demande a être téléchargé.Voila ce ke j'ai deja esayé de faire :<b exploration de fichier [ par gillou365 ] Salut,J'ai deux serveur : un apache/php/mysql et un ftp. J'ai créé une page pour explorer les fichiers. Elle marche très bien sur le premier serveur. FTP : de windows à linux [ par ben83 ] Bonjour,Lorsque je teste en local (Winsows IIS) le code php qui effectue simplement un upload (ftp_put) de fichier , je n'ai aucun problème. Par contr Lecture fichier [ par stanilou ] Salut, Mon soucis est que j'ai un fichier texte assez gros et qui se remplis au fil des visites sur mon site, or des fois j'ai besoin de chercher des Lecture fichier texte chez l'utilisateur [ par Gandalf5798 ] Bonjour,la question est contenu dans le titre :est-il possible de lire le contenu d'un fichier situé sur le disque dur de l'utilisateur ?J'ai déjà ess Lecture d'un fichier texte et enregistrement dans une BDD [ par DarkTiteuf ] Bonsoir a tous, voila je cherche a lire des informations dans un fichier lisible par un éditeur de texte. Ces informations seront par la suite stocké


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales