Accueil > Forum > > > > Lire uniquement la fin d'un gros fichier distant...
Lire uniquement la fin d'un gros fichier distant...
mercredi 15 avril 2009 à 20:12:57 |
Lire uniquement la fin d'un gros fichier distant...

Equilibrius
|
Bonjour tout le monde, j'espère que j'aurai poster au bon endroit ^^° Voilà, je suis confronté à un problème de taille, j'ai fait pas mal de test avec des fopen/fseek/fread, et je n'arrive toujours pas à faire une fonction qui me retourne la fin d'un fichier distant. En détail sa donne : Un gros fichier distant (~500Mo de txt), seul les 2000 derniers octets m'intéresse (soit une petite douzaine de lignes). Comment faire avec PHP (sans télécharger ou lire l'intégralité du fichier bien sur..) ?? Je pense en ce moment a l'utilisation des socket, mais vu que je connais pas bien ces outil, je préfère poster ici au cas où j'y arriverai pas. Merci et Bonne soirée 
Ps : résultat des test avec l'utilisation de fseek : stream does not support seeking
|
|
mercredi 15 avril 2009 à 20:19:10 |
Re : Lire uniquement la fin d'un gros fichier distant...

kohntark
|
Salut, Sans y réfléchir trop je ne pense pas que ça soit possible. (chouette, ma plus longue réponse depuis longtemps !!  ) Cordialement, Kohntark -
|
|
mercredi 15 avril 2009 à 20:53:38 |
Re : Lire uniquement la fin d'un gros fichier distant...

Equilibrius
|
salut et merci, j'en arriverai presque a la même conclusion  je vais voir du coté des commandes unix on sais jamais... Mais sinon, sa me turlupine toujours ! je pense en ce moment au gestionnaires de téléchargement, pour reprendre un téléchargement, comment ils font si on peux pas "naviguer" dans un fichier ?? on doit bien pouvoir sélectionner en quelque sorte quel bous du fichier on veux télécharger, je pense que la réponse se trouve dans les socket, la manipulation des header, ou que sais-je encore... La nuit sera longue 
|
|
mercredi 15 avril 2009 à 21:11:24 |
Re : Lire uniquement la fin d'un gros fichier distant...

kohntark
|
Si tu trouves quelque chose ça m'intéresse. Comme je le disais je n'y ai pas réfléchi plus que ça, mais, pour un fichier texte, le flux de données va commencer du début, pour s'achever ... par la fin. Etant donné que c'est par là que tu souhaites commencer, même avec les sockets c'est mort. L'inverse aurait été simple à réaliser. Je doute fort qu'il y ait moyen de passer une commande qui commence par la fin.
Suivant l'utilisation que tu veux il est peut être possible de limiter le nombre de téléchargement de ce fichier, voir faire cela en "temps maqué"
Tiens nous au courant,
Kohntark -
|
|
mercredi 15 avril 2009 à 21:13:01 |
Re : Lire uniquement la fin d'un gros fichier distant...

kohntark
|
"temps masqué" bien sur, pas de prostitution ici !!
Kohntark -
|
|
mercredi 15 avril 2009 à 21:57:04 |
Re : Lire uniquement la fin d'un gros fichier distant...

Equilibrius
|
lol
j'avance un peux, mais en fait, je cherche pas forcement a lire le fichier en commançant par la fin, mais plutôt lire les x derniers octet, c'est pas pareil... donc au début, je commence par récupérer la taille du fichier en question, j'ouvre un (ou une ?) socket, j'envoi plusieurs header, et je cherche Content-Length, je récup la taille en Bytes, puis je voulais faire un fopen suivit de fseek($h, $taille-$nb_octect_que_je_ve_lire); et c'est là que sa veu pas :'(
Je creuse donc du coté des headers, je vien de trouve ceci : Byte Ranges là http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html, je croi que je touche au but, je vai voir ce que sa donne :p
|
|
mercredi 15 avril 2009 à 22:18:02 |
Re : Lire uniquement la fin d'un gros fichier distant...

kohntark
|
A mon humble petit avis fseek nécessite d'avoir le fichier entier (donc fopen), ce qui ne résous pas le pb. J'ai un vague souvenir (lointain) où nous avions parlé sur ce forum de ce sujet. Plusieurs tests avaient été fait ... sans résultat. J'ai parcouru en diagonale le Byte Ranges de ton lien, c'est peut être une piste. Tiens moi au courant de tes avancées, ça m'intéresse vraiment, ça me permettrai notamment d'accélérer certains crawler/bots. Suivant mes dispos je ferai quelques tests.
Bon courage,
Kohntark -
|
|
mercredi 15 avril 2009 à 22:23:11 |
Re : Lire uniquement la fin d'un gros fichier distant...

Equilibrius
|
J'ai trouvé !! en fait c'est pas super compliqué... dans le second header envoyé, suffit de rajouter ceci : fputs($fp, "Range: bytes= 504085000- 504085300\r\n"); où 504085300 est la taille du fichier, et 504085000 = le nombre d'octet qu'on veut lire moins la taille du fichier (soit 300 octets lu ici). le serveur renverra donc QUE les 300 octets qu'on demande  (testé uniquement sous Apache2 / debian 5)
|
|
mercredi 15 avril 2009 à 22:51:07 |
Re : Lire uniquement la fin d'un gros fichier distant...

kohntark
|
Chapeau bas Equilibrius Ca fait du bien d'avoir tort. J'avais cherché il y a quelque temps, sans résultat. Je testerai ça dès demain si je peux. Félicitations en tout cas !!! Bonne nuit (pas si longue que ça au final  ) à toi, Kohntark -
|
|
jeudi 16 avril 2009 à 12:18:17 |
Re : Lire uniquement la fin d'un gros fichier distant...
|
Cette discussion est classée dans : fichier, fin, lire, distant, gros
Répondre à ce message
Sujets en rapport avec ce message
Lire fichier XML distant proteger par htaccess [ par jordangj ]
Salut à tousJe voudrais savoir comment je peut lire un fichier XML situer sur un serveur distant proteger pas un htaccess ?Une a
Lire un fichier de la fin au debut [ par mouloudikhaled ]
Bonjour a tous, J'ai un projet a faire et j'aimerais savoir si vous pourriez me dire comment lire un fichier non du debut a la fin mais de la fin au
lire fichier csv [ par keket ]
Bonjour, je reviens vous voir pour un problème avec un fichier csv. je travaille en ce moment sur un système d'importation. J'arrive biensur a apporte
lire un fichier texte [ par zabou31 ]
Bonjour a tous, je dois crée un programme plus prcisement un plugin qui prends des données scannées (liste de chiffres) dans un fichier texte pour les
lire un fichier texte de la ligne 10 à 25 par ex [ par caviar ]
salut ...j'ai un petit problème ...j'essaye de récupérer ligne par ligne les données d'un fichier texte mais sans utiliser une fonctionwhile (!feof($
Uploder un fichier .doc ou .pdf dans un serveur distant [ par rachidphp93 ]
bonjour tout le monde; Est ce que quelqu'un à une idée pour uploder un fichie
lire un fichier DBF [ par cacoucatatonique ]
bonjour à tous,voila je suis à la recherche d'un exemple pour lire un fichier DBF de prés de 120 000 lignes.je recherche sur google mais cela ne savai
Lire un fichier quelque soit son type en php [ par sonia5 ]
salut tout le monde j'ai passé toute le nuit pour resoudre mon problème mais je ne peux pas ...je veux savoir comment je peux afficher le contenu d'un
Lire une page XML [ par rambc ]
Simple question : peut-on lire le contenu d'un fichier XML sur une site via l'adresse du dit fichier ? Comment faire pour juste avoir le contenu brut
lire fichier [ par kelm_by ]
salut, est ce que il ya un moyen pour lire un fichier present sur le disque et aficher le contenu dans une variable. merci
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|