2011-08-25 27 views
7

Estoy enviando una petición a un servidor php con un XML en el contenido:¿Cómo obtener el contenido de solicitud (cuerpo) en PHP?

POST /index3.php HTTP/1.0 
Connection: Close 
Accept: application/xml 
Content-Type: text/xml 

<?xml version="1.0" encoding="UTF-8"?> 
<root /> 

He comprobado en vars globales (como $_GET, $_POST, $_ENV, $_FILES, $_REQUEST ...) pero son todo vacio

¿Cómo puedo recuperar el contenido en el servidor?

+0

Relacionados: https://stackoverflow.com/q/8945879/3995261 – YakovL

Respuesta

11

probar este

$xml = file_get_contents('php://input'); 

Desde el manual:

php: // input es una corriente de sólo lectura que permite leer los datos en bruto del cuerpo de la petición.

1

Prueba esto:

<?php 
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){ 
    $xml = $GLOBALS["HTTP_RAW_POST_DATA"]; 
    $file = fopen("data.xml","wb"); 
    fwrite($file, $xml); 
    fclose($file); 
    echo($GLOBALS["HTTP_RAW_POST_DATA"]); 
} 
?> 

Espero que esto ayude.

Cuestiones relacionadas