Récupérer du code html pour le traiter

WRInaute occasionnel
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...?
 
WRInaute impliqué
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.
 
WRInaute occasionnel
@MarvinLeRouge : c'est déjà le cas. Dans un script de mon appli, il y a:
Code:
$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:
<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...
 
WRInaute occasionnel
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:
$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 ?
 
WRInaute occasionnel
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.
 
WRInaute passionné
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!)
 
WRInaute occasionnel
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 ?
 
Discussions similaires
Haut