Simple PHP request

Most users of the TBXDS service receive an example requestor script written in VBScript. However, on non-Microsoft platforms other scripting languages are needed, and PHP is one scripting language available on almost all web platforms. Do make sure you don't use this script on a publicly accessible page!
<?
 /*
  *  --------------------------------------------------------------------
  *   File:       tbxds-request.php
  *   Purpose:    Example TBXDS request script
  *   Author:     Joost Roelandt (joost.roelandt@persgroep.be)
  *   Revision:   2006/09/21
  *  --------------------------------------------------------------------
  *   NOTES
  *  
  *   You can start this script by either running tbxds-request.php
  *   directly, of by using php.exe from the command line.
  *  
  *   This script is intended to show you the method of sending
  *   a TBXDS query to a TBXDS server. It is not intended to give
  *   a blue print for programs using the TBXDS, and therefore
  *   the script doesn't process the received result, but merely
  *   dumps it to the browser.
  *  --------------------------------------------------------------------
  *
  */


  define('FILENAME_SAVE'     , 'tbxds-data.xml');
  define('FILENAME_REQUEST'  , 'tbxds-request.xml');
  define('SERVER_NAME'       , 'ws.vwdservices.com');
  define('TBXDS'             , '/tbxds/tbxds.asp');

  function http_post(&$request)
  {
    $fp = fsockopen(SERVER_NAME, 80, $errno, $errstr, 30);
    if (!$fp) {
      echo "Connect: $errno, $errstr\n";
      return false;
    }
    
    $mesg
      = "POST ".TBXDS." HTTP/1.0\r\n"
      . "Host: ".SERVER_NAME."\r\n"
      . "User-Agent: PHP Script\r\n"
      . "Content-Type: text/xml\r\n"
      . "Content-Length: ".strlen($request)."\r\n"
      . "Connection: close\r\n"
      . "\r\n";
    fwrite($fp, $mesg);
    fwrite($fp, $request);

    $res = "";
    $body = false;
    while (!feof($fp))
    {
      $tmp = fgets($fp, 512);
      if ($body)
        $res .= $tmp;
      else {
        $tmp=trim($tmp);
        if (empty($tmp))
          $body = true;
      }
    }
    fclose($fp);
    return $res;
  }

  $request = file_get_contents(FILENAME_REQUEST);
  if ($request===false)
  {
    echo "Could not read ".FILENAME_REQUEST."\n";
    exit;
  }

  $data = http_post($request);
  if ($data===false)
  {
    echo "Could not read data from ".SERVER_NAME."\n";
    exit;
  }
                               
  header("Content-Type: text/xml");
  echo $data;  
?>