geek1983
Messages postés16Date d'inscriptionmardi 18 mars 2008StatutMembreDernière intervention11 septembre 2009
-
6 janv. 2009 à 18:11
geek1983
Messages postés16Date d'inscriptionmardi 18 mars 2008StatutMembreDernière intervention11 septembre 2009
-
8 janv. 2009 à 15:16
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?
Pour ceux
comme moi qui ont Windows et qui développe sous EasyPHP c'est très simple.
Ouvrez votre ligne de commande: Démarrer > Exécuter > tapez cmd et
appuyez sur OK
Ensuite tapez: cd lecteur:\RépertoireEasyPHP\php5\php.exe ScriptÀExécuter.php
Et voilà! La solution simple pour exécuter le script à tout les x nombre de
temps c'est d'utiliser le Planificateur de Tâche qui se trouve dans votre Panneau
de Contrôle!
Merci à [../auteur/KOHNTARK/302665.aspx kohntark] et [../auteur/TECLIS01/403016.aspx Teclis01]pour votre aide!
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 8 janv. 2009 à 09:33
Salut,
Heureux de voir que ma solution te convienne.
Par contre je parlais bien d'un service windows, et c'est très simple aussi !! Sauf que c'est bien plus souple et efficace. Avec un service tu ne sera pas bloqué si tu souhaites ajouter des fonctionnalités multiples par la suite (tu peux très bien lui demander 1 tâche toutes les heures, une autre toutes les 3 sec, etc ...)
Teclis01
Messages postés1423Date d'inscriptionmardi 14 décembre 2004StatutMembreDernière intervention29 décembre 20124 6 janv. 2009 à 20:57
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
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 6 janv. 2009 à 21:35
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 -
Vous n’avez pas trouvé la réponse que vous recherchez ?
geek1983
Messages postés16Date d'inscriptionmardi 18 mars 2008StatutMembreDernière intervention11 septembre 2009 6 janv. 2009 à 23:03
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...
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 6 janv. 2009 à 23:37
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 ?
geek1983
Messages postés16Date d'inscriptionmardi 18 mars 2008StatutMembreDernière intervention11 septembre 2009 7 janv. 2009 à 15:00
- 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.
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 7 janv. 2009 à 21:35
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 ?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 7 janv. 2009 à 21:44
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)
geek1983
Messages postés16Date d'inscriptionmardi 18 mars 2008StatutMembreDernière intervention11 septembre 2009 7 janv. 2009 à 22:58
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?