Récupérer du code html pour le traiter


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 392
Inscription: 29 Déc 2004

Récupérer du code html pour le traiter

Message le Mer Jan 18, 2006 9:19

Bonjour,
j'utilise les services (excellents) de lesms.com pour une application qui envoie un sms différé. Cela fonctionne bien.
Le principe c'est qu'il faut faire appel à une page de lesms.com, et c'est elle qui envoie le sms, puis elle retourne une page contenant un numéro (un code indiquant le résultat de l'action).
Le problème est que ce code est envoyé au navigateur de l'utilisateur, qui n'en a rien à faire !
Question : comment récupérer le code html généré par la page de lesms.com, le dépouiller des balises inutiles, et récupérer le code émis, le tout sans que l'utilisateur ne s'en aperçoive...?


mr_go
WRInaute passionné
WRInaute passionné
 
Messages: 1945
Inscription: 21 Sep 2005

Message le Mer Jan 18, 2006 11:28

^^
heu... si on ne t'offre pas la possibilité de le faire sur le site : bon courage!


effisk
WRInaute impliqué
WRInaute impliqué
 
Messages: 612
Inscription: 18 Juin 2004

Message le Mer Jan 18, 2006 14:30

un parseur en JS ou un truc comme ça. Mais c'est un peu de boulot.


MarvinLeRouge
WRInaute impliqué
WRInaute impliqué
 
Messages: 525
Inscription: 1 Sep 2004

Message le Mer Jan 18, 2006 14:34

Salut,

Ton problème semble indiquer que ta page soumet directement les données au site fournisseur de service.
Solution simple : tu soumets le formulaire à ton site, ton script fait une requète à ton fournisseur de service, et tu informes (éventuellement) l'utilisateur du résultat.


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 392
Inscription: 29 Déc 2004

Message le Mer Jan 18, 2006 15:55

@MarvinLeRouge : c'est déjà le cas. Dans un script de mon appli, il y a:
Code: Tout sélectionner
$params = "email=xxxxx&pass=xxxxx&numero=xxxxx&message=ceci est un essai";

header("Location: http://www.leSMS.com/http.php?".$params);

Seulement, la page appelée me renvoie
Code: Tout sélectionner
<html><head>blabla</head>
<body>80</body></html>

Il faudrait effectivement parser le code html renvoyé pour récupérer la chaine "80" et la traiter en fonction du résultat.
Le prob, c'est que cette page est envoyée sur le navigateur de celui qui à déclenché le script php.
Il faudrait qu'un WRInaute ait déjà utilisé les services de lesms.com (ils ne disent presque rien sur le site rapport aux développeurs)
Et Google : comment peut-il scanner un site (il fait bien des requêtes http) sans ouvrir les pages visitées ?
Merci à vous...
Dernière édition par xdeslandes le Ven Jan 20, 2006 14:17, édité 2 fois.


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 392
Inscription: 29 Déc 2004

Message le Ven Jan 20, 2006 12:05

Je viens de regarder : en fait, la page renvoie uniquement le code ("80" par exemple) sans balise html (ni head, ni html, ni body, d'après le code source affiché par le navigateur).

J'ai essayé un autre truc :
Code: Tout sélectionner
$url_lesms = "http://www.lesms.com/http.php?".$params;
$handle = fopen ($url_lesms, 'r');
$code_retourne = fread($handle, filesize ($url_lesms));
fclose($handle);

Mais visiblement, le fait d'ouvrir le fichier ne déclenche pas le script. Qu'en pensez-vous ?
Je me pose la question : ma requete est-elle la bonne ? Faut-il faire un header Location ?


mowmow
WRInaute impliqué
WRInaute impliqué
 
Messages: 975
Inscription: 3 Nov 2004

Message le Ven Jan 20, 2006 17:00

Essaie avec les fonctions cURL, ca gère tous les types de requêtes mieux que fopen


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 392
Inscription: 29 Déc 2004

Message le Jeu Fév 16, 2006 22:54

Excuse-moi mowmow : je n'ai pas eu le temps de te répondre :oops:
C'est quoi les fonctions cURL ?
Je pensais utiliser un readfile(); mais cette fonction renvoie le r"éésultat au navigateur, ce que je veux éviter.


fandecine
Modérateur
Modérateur
 
Messages: 2024
Inscription: 2 Avr 2005

Message le Jeu Fév 16, 2006 23:18

bonjour,

CURL est une librairie PHP trés puissante en particulier pour interroger un serveur et cela sous plusieurs protocoles (http, https, ftp, telnet, ghoper etc...).

par exemple pour plus d'info http://fr2.php.net/curl (c'est en français!)


xdeslandes
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 392
Inscription: 29 Déc 2004

Message le Ven Fév 17, 2006 0:14

Merci fandecine.
Hum, installer un paquetage php... Je ne sais pas si je peux le faire sur mon serveur. Il semble que la solution soit plus simple, non ? Je rappelle ce dont j'ai besoin :
Lorsque je fait une requète http vers un serveur distant (via header dans mon script), ce dernier renvoie au navigateur le résultat (un code à deux chiffres, c'est tout !).
J'aimerais récupérer ces deux chiffres, sans qu'ils soient envoyés au navigateur.
D'après lesms.com, les autres développeurs font cela assez facilement (évidemment, ils ne disent pas comment faire !)
fopen ? readfile ? file_get_content ?


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: kenzen et 0 invités