Salve a tutti,

dopo estenuanti ricerche in vari forum mi sono accorto che il codice per fare una richiesta POST ad una pagina con delle variabili, era sul manuale di PHP.
Vi riporto il codice commentato:

Codice PHP:

$content 
'vara=a&varb=b';
$content_length strlen($content);
$headers"POST /prova.php HTTP/1.0\r\nHost: localhost\r\nContent-length: $content_length\r\nContent-type: application/x-www-form-urlencoded\r\n\r\n";
$fp fsockopen("localhost"80);
if (!
$fp) return false;
fputs($fp$headers);
fputs($fp$content);

$headers "";
while (
$str trim(fgets($fp4096)))
  
$headers .= "$str\n";
  
$body "";
while (!
feof($fp))
  
$body .= fgets($fp4096);
  
fclose($fp);
echo 
$headers."
"
.$body
La pagina prova.php fa semplicemente un print_r($_POST).
Il tutto funziona correttamente e la pagina mi stampa gli header di risposta ed il risultato dell'elaborazione (print_r) di prova.php.

La mia domanda adesso è: se io volessi inviare via POST dei dati XML alla pagina prova.php (come è il principio di funzionamento di XMLRPC e SOAP), come fa prova.php ad usare tali dati XML?? :master:

Per fare la richiesta non ci sono problemi, basta modificare il content-type in text/xml
ed inviare dati XML anzichè assegnazioni di variabili separate da &

Codice PHP:

$content 
'<tag>valore</tag><tag2>valore2</tag2>';
$content_length strlen($content);
$headers"POST /prova.php HTTP/1.0\r\nHost: localhost\r\nContent-length: $content_length\r\nContent-type: text/xml\r\n\r\n";
$fp fsockopen("localhost"80);
if (!
$fp) return false;
fputs($fp$headers);
fputs($fp$content);

$headers "";
while (
$str trim(fgets($fp4096)))
  
$headers .= "$str\n";
  
$body "";
while (!
feof($fp))
  
$body .= fgets($fp4096);
  
fclose($fp);
echo 
$headers."
"
.$body
ma la ricezione come si fa?

Grazie in anticipo