Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FLUX D'ENTRÉE ET DE SORTIE


Information sur la source

Description

Qui n'a jamais eu besoin de récupérer dans un script PHP des données envoyées par une application tierce ?
Perso j'ai eu le problème pour récupérer du texte d'une applet Java d'édition de texte.

Quel est le problème ?
En fait, l'application fournit le texte en vrac. Or, $_POST retourne un tableau... Donc tout caractère &, # et autres vont venir compliquer la récupération.
Le gros problème est qu'on ne peut pas modifier l'application à la source des données.

La solution est de récupérer telle quelle la requête web envoyée au script PHP.
Voila comment faire, très simplement, avec une fonction usuelle mais que peu de monde sait utiliser d'une manière plus approfondie :
 

Source

Conclusion

Pour les newbies, cette fonction retourne un tableau. Pour afficher le texte complet :

echo join("", file("php://input"));

Cet exemple fini, je me permets de vous citer la doc PHP qui sera plus efficace qu'un long discours :

---------------------
Flôts d'entrée/sortie
---------------------
PHP 3.0.13 et plus récent, php://output et php://input depuis PHP 4.3



php://stdin

php://stdout

php://stderr

php://output

php://input



php://stdin, php://stdout et php://stderr donne accès au flux correspondant d'entrée ou de sortie du processus PHP.

php://output vous permet d'écrire dans le buffer de sortie, de la même manière que print() et echo().

php://input permet de lire des données POST bruts. C'est moins gourmand en mémoire que $HTTP_RAW_POST_DATA et il n'y a pas de directive spéciale dans php.ini.

php://stdin et php://input sont lecture seule, tandis que php://stdout, php://stderr et php://output sont en écriture seule.

php://filter est une sorte de méta-gestionnaire, prévu pour qui permet l'utilisation de filtre avec les données d'entrée au moment du démarrage du script. C'est pratique avec des fonctions compactes comme readfile(), file() et file_get_contents() où il n'y a pas d'opportunité d'appliquer un filtre aux données lues.
 

Commentaires et avis

signaler à un administrateur
Commentaire de Kirua le 07/09/2004 17:23:24

si par exemple je veux récupérer ce qu'un programme (.exe sous win) écrit dans une console, je fais comment?

càd que je voudrais pvr écrire des applis en C++ très spécifiques, auxquelles j'envoie des paramètres via php et qui me renvoient des infos (calculées dans le programme).

ça fait une sorte de CGI, mais avec la souplesse de php et puis je dois pas écrire mon programme comme un CGI, n'importe quelle appli C++ console que j'ai déjà fait l'affaire.

signaler à un administrateur
Commentaire de Kirua le 08/09/2004 15:55:04

c'est bon, trouvé ;)
y a un tas de fct: exec, passthru, `commande`, shell_exec, system... chacun sa façon!

par contre j'en n'ai pas trouvée qui permettait d'envoyer des infos au programme qd il en demande (je vuex dire écrire sur son flux std d'entrée, ce qu'on récupère par cin en C++ ou scanf en Cà)

signaler à un administrateur
Commentaire de slyderkiller le 03/09/2005 15:23:13

Bonjour
est pour récuperer des variables d'un applet java pour les utiliser ensuite vers php c'est possible?

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,374 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.