funciona file_get_contents example ejemplos php http http-post file-get-contents

example - file_get_contents("php://input")



¿Cómo publicar datos en PHP usando file_get_contents? (3)

Enviar una solicitud HTTP POST usando file_get_contents no es tan difícil, en realidad: como supuso, tiene que usar el parámetro $context .


Hay un ejemplo dado en el manual de PHP, en esta página: Opciones de contexto de HTTP (cita) :

$postdata = http_build_query( array( ''var1'' => ''some content'', ''var2'' => ''doh'' ) ); $opts = array(''http'' => array( ''method'' => ''POST'', ''header'' => ''Content-type: application/x-www-form-urlencoded'', ''content'' => $postdata ) ); $context = stream_context_create($opts); $result = file_get_contents(''http://example.com/submit.php'', false, $context);

Básicamente, debe crear una secuencia con las opciones correctas (hay una lista completa en esa página) y usarla como el tercer parámetro para file_get_contents - nada más ;-)


Como comentario adicional: en general, para enviar solicitudes HTTP POST, tendemos a usar curl, que ofrece muchas opciones y todo, pero las transmisiones son una de las cosas agradables de PHP que nadie sabe sobre ... demasiado mal ... .

Estoy usando la función file_get_contents() PHP para recuperar el contenido de una URL y luego proceso los encabezados a través de la variable $http_response_header .

Ahora, el problema es que algunas de las URL necesitan que algunos datos se publiquen en la URL (por ejemplo, páginas de inicio de sesión).

¿Cómo puedo hacer eso?

Me doy cuenta de que con stream_context puedo hacer eso, pero no estoy del todo claro.

Gracias.


Una alternativa, también puedes usar fopen.

$params = array(''http'' => array( ''method'' => ''POST'', ''content'' => ''toto=1&tata=2'' )); $ctx = stream_context_create($params); $fp = @fopen($sUrl, ''rb'', false, $ctx); if (!$fp) { throw new Exception("Problem with $sUrl, $php_errormsg"); } $response = @stream_get_contents($fp); if ($response === false) { throw new Exception("Problem reading data from $sUrl, $php_errormsg"); }


$sUrl = ''http://www.linktopage.com/login/''; $params = array(''http'' => array( ''method'' => ''POST'', ''content'' => ''username=admin195&password=d123456789'' )); $ctx = stream_context_create($params); $fp = @fopen($sUrl, ''rb'', false, $ctx); if(!$fp) { throw new Exception("Problem with $sUrl, $php_errormsg"); } $response = @stream_get_contents($fp); if($response === false) { throw new Exception("Problem reading data from $sUrl, $php_errormsg"); }