cvs: phpweb /include posttohost.inc
| From: | Gabor Hojtsy | Date: | Wed, 13 Aug 2003 12:15:09 +0000 |
| Subject: | cvs: phpweb /include posttohost.inc | ||
| Groups: | php.mirrors | ||
| Request: | Send a blank email to php-mirrors+get-20202@lists.php.net to get a copy of this message | ||
goba Wed Aug 13 08:15:09 2003 EDT
Modified files:
/phpweb/include posttohost.inc
Log:
Apply coding conventions
Index: phpweb/include/posttohost.inc
diff -u phpweb/include/posttohost.inc:1.2 phpweb/include/posttohost.inc:1.3
--- phpweb/include/posttohost.inc:1.2 Tue May 13 21:43:47 2003
+++ phpweb/include/posttohost.inc Wed Aug 13 08:15:09 2003
@@ -1,43 +1,59 @@
<?php
-function posttohost($url, $data) {
- $url = parse_url($url);
- if (!$url) return "couldn't parse url";
- if (!isset($url['port'])) { $url['port'] = ""; }
- if (!isset($url['query'])) { $url['query'] = ""; }
-
- $encoded = "";
-
- while (list($k,$v) = each($data)) {
- $encoded .= ($encoded ? "&" : "");
- $encoded .= rawurlencode($k)."=".rawurlencode($v);
- }
-
- $fp = fsockopen($url['host'],$url['port']?$url['port']:80);
- if (!$fp) return "failed to open socket to $url[host]";
-
- fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'],
$url['query'] ? "?" : "", $url['query']));
- fputs($fp, "Host: $url[host]\n");
- fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
- fputs($fp, "Content-length: " . strlen($encoded) . "\n");
- fputs($fp, "Connection: close\n\n");
-
- fputs($fp, "$encoded\n");
-
- $line = fgets($fp,1024);
- if (!eregi("^HTTP/1\\.. 200", $line)) return;
-
- $results = ""; $inheader = 1;
- while(!feof($fp)) {
- $line = fgets($fp,1024);
- if ($inheader && ($line == "\n" || $line == "\r\n")) {
- $inheader = 0;
+// $Id: posttohost.inc,v 1.3 2003/08/13 12:15:09 goba Exp $
+
+/*
+ This code is used to post data to the central server which
+ can store the data in database and/or mail notices or requests
+ to PHP.net stuff and servers
+*/
+
+function posttohost($url, $data)
+{
+ // Get parts of URL
+ $url = parse_url($url);
+ if (!$url) { return "couldn't parse url"; }
+
+ // Provide defaults for port and query string
+ if (!isset($url['port'])) { $url['port'] = ""; }
+ if (!isset($url['query'])) { $url['query'] = ""; }
+
+ // Build POST string
+ $encoded = "";
+ foreach ($data as $k => $v) {
+ $encoded .= ($encoded ? "&" : "");
+ $encoded .= rawurlencode($k) . "=" . rawurlencode($v);
}
- elseif (!$inheader) {
- $results .= $line;
+
+ // Open socket on host
+ $fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
+ if (!$fp) { return "failed to open socket to {$url['host']}"; }
+
+ // Send HTTP 1.0 POST request to host
+ fputs($fp, sprintf("POST %s%s%s HTTP/1.0\n", $url['path'],
$url['query'] ? "?" : "", $url['query']));
+ fputs($fp, "Host: {$url['host']}\n");
+ fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
+ fputs($fp, "Content-length: " . strlen($encoded) . "\n");
+ fputs($fp, "Connection: close\n\n");
+ fputs($fp, "$encoded\n");
+
+ // Read the first line of data, only accept if 200 OK is sent
+ $line = fgets($fp, 1024);
+ if (!eregi("^HTTP/1\\.. 200", $line)) { return; }
+
+ // Put everything, except the headers to $results
+ $results = ""; $inheader = TRUE;
+ while(!feof($fp)) {
+ $line = fgets($fp, 1024);
+ if ($inheader && ($line == "\n" || $line == "\r\n")) {
+ $inheader = FALSE;
+ }
+ elseif (!$inheader) {
+ $results .= $line;
+ }
}
- }
- fclose($fp);
+ fclose($fp);
- return $results;
+ // Return with data received
+ return $results;
}