Lecture d'un fichier sur un autre site
Fermé
philmtjn
-
2 août 2013 à 00:00
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 1 oct. 2013 à 11:12
Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 - 1 oct. 2013 à 11:12
A voir également:
- Lecture d'un fichier sur un autre site
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Site de telechargement - Accueil - Outils
- Fichier rar - Guide
- Ouvrir un fichier .bin - Guide
6 réponses
RobinZS
Messages postés
5
Date d'inscription
samedi 3 août 2013
Statut
Membre
Dernière intervention
3 août 2013
3 août 2013 à 12:09
3 août 2013 à 12:09
Salut,
Tu peux utiliser simplehtmldom pour parser la page, c'est simple et efficace (d'autant que là c'est juste un text brute)
https://simplehtmldom.sourceforge.io/
J'ai fais comme ça dans un fichier php
<?php
include_once('simple_html_dom.php');
echo file_get_html('http://pmdragon.free.fr/TabloBase_MAJ.txt')->plaintext;
?>
Tu peux utiliser simplehtmldom pour parser la page, c'est simple et efficace (d'autant que là c'est juste un text brute)
https://simplehtmldom.sourceforge.io/
J'ai fais comme ça dans un fichier php
<?php
include_once('simple_html_dom.php');
echo file_get_html('http://pmdragon.free.fr/TabloBase_MAJ.txt')->plaintext;
?>
ElementW
Messages postés
4816
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 228
Modifié par gravgun le 3/08/2013 à 16:04
Modifié par gravgun le 3/08/2013 à 16:04
RobinZS, pourquoi s'embêter à utiliser une librairie , qui plus est prévue pour du HTML, alors qu'on peut le faire avec la librairie standard de PHP?
En rapport direct avec la question: il se peut que la lecture ne marche pas comme il faut depuis un site externe: fopen peut ouvrir des liens d'autres protocoles (que les fichiers locaux) et d'autres sites, mais avec un wrapper HTTP.
Et tu demandes de lire 255 octets depuis l'adresse, or HTTP n'est pas très adapté pour faire des lectures partielles. Du moins certains serveurs le supportent, mais pas d'autres.
Donc vaut mieux simplement tout récupérer dans une variable, et l'utiliser après:
En revanche, il faudra adapter le code et se débarrasser du fopen(),et fread().
Si tu veux seulement les 255 premiers caractères (car le fichier serait plus long par ex): $fgc = substr($content, 0, 255);
Parenthèse sur le format du fichier TabloBase_MAJ.txt:
1: Avoir un numéro de version c'est bien, mais ce n'est pas un simple chiffre à virgule: il y a plusieurs points! Donc ajoute un numéro entier représentant cette version, par ex:
- 1 pour la 4.0040.00380
- 2 pour la 4.0040.00381
- 3 pour la 4.0040.00382
Et ainsi de suite. C'est très pratique pour comparer après ( if($this->ver < $ver) { return OUTDATED; } ).
2: Le format de la date: les 'ricains ils ont un format de date comme ceci: "mm/jj/aaaa", or nous c'est "jj/mm/aaaa". Attention donc: je te conseille vivement de mettre cette date sous forme de timestamp, qui lui est un nombre entier (et un timestamp de 0 correspond au 1er janvier 1970 00:00:00 GMT, l'époque UNIX).
3: Les séparateurs ça roxxe. Pour les 3 données (version entière, version, date), sépare-les par un caractère, par exemple ";".
De cette manière un $info = split(";", $content) renverra un array avec:
- $info[0] contenant la version entière
- $info[1] la version
- $info[2] la date (en timestamp)
Il est a noter que toutes ces variables seront des strings, n'oublie pas de les convertir si besoin.
from human import idiocy
del idiocy
En rapport direct avec la question: il se peut que la lecture ne marche pas comme il faut depuis un site externe: fopen peut ouvrir des liens d'autres protocoles (que les fichiers locaux) et d'autres sites, mais avec un wrapper HTTP.
Et tu demandes de lire 255 octets depuis l'adresse, or HTTP n'est pas très adapté pour faire des lectures partielles. Du moins certains serveurs le supportent, mais pas d'autres.
Donc vaut mieux simplement tout récupérer dans une variable, et l'utiliser après:
$content = file_get_contents("l'adresse");Pas de problème ici vu qu'on demande de tout récupérer (une bête requete GET).
En revanche, il faudra adapter le code et se débarrasser du fopen(),et fread().
Si tu veux seulement les 255 premiers caractères (car le fichier serait plus long par ex): $fgc = substr($content, 0, 255);
Parenthèse sur le format du fichier TabloBase_MAJ.txt:
1: Avoir un numéro de version c'est bien, mais ce n'est pas un simple chiffre à virgule: il y a plusieurs points! Donc ajoute un numéro entier représentant cette version, par ex:
- 1 pour la 4.0040.00380
- 2 pour la 4.0040.00381
- 3 pour la 4.0040.00382
Et ainsi de suite. C'est très pratique pour comparer après ( if($this->ver < $ver) { return OUTDATED; } ).
2: Le format de la date: les 'ricains ils ont un format de date comme ceci: "mm/jj/aaaa", or nous c'est "jj/mm/aaaa". Attention donc: je te conseille vivement de mettre cette date sous forme de timestamp, qui lui est un nombre entier (et un timestamp de 0 correspond au 1er janvier 1970 00:00:00 GMT, l'époque UNIX).
3: Les séparateurs ça roxxe. Pour les 3 données (version entière, version, date), sépare-les par un caractère, par exemple ";".
De cette manière un $info = split(";", $content) renverra un array avec:
- $info[0] contenant la version entière
- $info[1] la version
- $info[2] la date (en timestamp)
Il est a noter que toutes ces variables seront des strings, n'oublie pas de les convertir si besoin.
from human import idiocy
del idiocy
philmtjn
Messages postés
59
Date d'inscription
mardi 3 août 2004
Statut
Membre
Dernière intervention
26 juillet 2017
4
Modifié par philmtjn le 6/08/2013 à 14:27
Modifié par philmtjn le 6/08/2013 à 14:27
en fait, je veux récupérer juste une chaine de caracteres du site distant (http://pmdragon.free.fr) et la comparer avec une chaine dans le site courant.
c'est pour savoir si la class que j'utilise dans le site est de la même version que la class sur le site distant.
Il me semble que j'ai essayé avec file_get_contents et que je ne recevais pas la chaine ... mais je ré-essaye et je l'ecrirai ici.
Merci de votre aide, je vous tiens au courant de mes tests
Ma class fait tout le boulot d'auto-vérification.
le constructeur tente d'accèder à son site d'origine (http://pmdragon.free.fr) et regarde ce que contient le fichier à la racine : nom_de_la_class_MAJ.txt
il compare avec la version interne,
et écrit
Class à jour (numéro de version)
ou
Class périmée (numéro de version)
mais comme il ne récupère JAMAIS le fichier... cela donne :
Class périmée()
J'attend vos idées... et je cherche de mon coté...
c'est pour savoir si la class que j'utilise dans le site est de la même version que la class sur le site distant.
Il me semble que j'ai essayé avec file_get_contents et que je ne recevais pas la chaine ... mais je ré-essaye et je l'ecrirai ici.
Merci de votre aide, je vous tiens au courant de mes tests
Ma class fait tout le boulot d'auto-vérification.
le constructeur tente d'accèder à son site d'origine (http://pmdragon.free.fr) et regarde ce que contient le fichier à la racine : nom_de_la_class_MAJ.txt
il compare avec la version interne,
et écrit
Class à jour (numéro de version)
ou
Class périmée (numéro de version)
mais comme il ne récupère JAMAIS le fichier... cela donne :
Class périmée()
J'attend vos idées... et je cherche de mon coté...
philmtjn
Messages postés
59
Date d'inscription
mardi 3 août 2004
Statut
Membre
Dernière intervention
26 juillet 2017
4
16 août 2013 à 23:01
16 août 2013 à 23:01
Si quelqu'un a d'autres idées...
philmtjn
Messages postés
59
Date d'inscription
mardi 3 août 2004
Statut
Membre
Dernière intervention
26 juillet 2017
4
22 août 2013 à 15:26
22 août 2013 à 15:26
même si c'est récupérer les 11 premiers caractères ... même si ca s'arrete au premier blanc rencontré... ça me convient.
philmtjn
Messages postés
59
Date d'inscription
mardi 3 août 2004
Statut
Membre
Dernière intervention
26 juillet 2017
4
20 août 2013 à 09:57
20 août 2013 à 09:57
Personne n'aune idée ?
Je n'ai pas trouvé pour l'instant et tout ce que j'essaye ne donne rien.
Je maitrise entierement la Class et s'il faut qu'elle génère un truc sur le site qui est testé c'est faisable.
Ce que je veux faire c'est un auto-controle de la version (au moins le numéro)
Les as d'ici sont peut etre en vacances ...
bonne journée
Je n'ai pas trouvé pour l'instant et tout ce que j'essaye ne donne rien.
Je maitrise entierement la Class et s'il faut qu'elle génère un truc sur le site qui est testé c'est faisable.
Ce que je veux faire c'est un auto-controle de la version (au moins le numéro)
Les as d'ici sont peut etre en vacances ...
bonne journée
philmtjn
Messages postés
59
Date d'inscription
mardi 3 août 2004
Statut
Membre
Dernière intervention
26 juillet 2017
4
18 sept. 2013 à 09:48
18 sept. 2013 à 09:48
Je n'ai toujours pas réussi... si quelqu'un a une idée ... qu'il l'a testé et que ça semble fonctionner... je suis preneur !!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
philmtjn
Messages postés
59
Date d'inscription
mardi 3 août 2004
Statut
Membre
Dernière intervention
26 juillet 2017
4
1 oct. 2013 à 10:18
1 oct. 2013 à 10:18
Bonjour a tous ... toujours pas d'idée ??
Pitet
Messages postés
2826
Date d'inscription
lundi 11 février 2013
Statut
Membre
Dernière intervention
21 juillet 2022
525
1 oct. 2013 à 11:12
1 oct. 2013 à 11:12
Salut,
gravgun t'as déjà donner une réponse complète qui fonctionne.
Pour récupérer ton fichier en php, le plus simple est de faire :
Bonne journée
gravgun t'as déjà donner une réponse complète qui fonctionne.
Pour récupérer ton fichier en php, le plus simple est de faire :
$content = file_get_contents('http://pmdragon.free.fr/TabloBase_MAJ.txt');
Bonne journée
6 août 2013 à 14:09
4.0040.00380 du 01/08/2013
dans ta page ?
moi, c'est "fichier introuvable car je n'ai pas "simple_html_dom.php" sur mon site
6 août 2013 à 14:19
merci tout de même.
Si vous avez une autre idée...