Hi,
I build a few functions to open webpages on the internet.
But it doesn't work very well, the first page is good the second page isn't good.
The output of this script will be somthing like this:
open connection to webapps.hardinxveld.netflex.nl oke
get / done
get / failt
Closing connection to webapps.hardinxveld.netflex.nl oke
The problem is the "Connection: Close\n\n" header. The webserver close the connection
after the first request, if i remove
the "Connection: Close\n\n" header the first fgets($web_conn, 128) command will never
ends.
It's running on winXP apache 2.0.36 PHP 4.2.1 (test server) from the shell
What to do?
Alex Elderson
<?php
$crlf = "\r\n";
$address = "www.mp3.com";
$url = "/";
print "open connection to " . $address . " ";
if (!$web_conn = web_open($address)) {
print "failt" . $crlf . $crlf;
} else {
print "oke" . $crlf . $crlf;
print " get " . $url . " ";
if ($data = web_read($web_conn, $address, $url)) {
print "done" . $crlf;
} else {
print "failt" . $crlf;
}
print " get " . $url . " ";
if ($data = web_read($web_conn, $address, $url)) {
print "done" . $crlf;
} else {
print "failt" . $crlf;
}
print "\nClosing connection from " . $address . " ";
if (web_close($web_conn)) {
print "oke" . $crlf . $crlf . $crlf;
} else {
print "failt" . $crlf . $crlf . $crlf;
}
}
function web_open($address, $port = 80) {
return fsockopen($address, $port);
}
function web_close($web_conn) {
if ($web_conn) {
return fclose($web_conn);
} else {
return FALSE;
}
}
function web_read($web_conn, $address, $url = '/', $post = false, $cookie = false) {
$ret = '';
if ($web_conn) {
/* Success. Now check to see the type of request */
if ($post) {
$request = "POST $url HTTP/1.1\n";
$request .= "Host: $address\n";
$request .= "Content-Length: " . strlen( $post )."\n";
$request .= "Content-Type:application/x-www-form-urlencoded\n";
if ($cookie) $request .= "Cookie: $cookie\n";
$request .= "Connection: Close\n\n";
$request .= $post;
} else {
$request = "GET $url HTTP/1.1\n";
$request .= "Host: $address\n";
$request .= "Content-Type: text/html\n";
if ($cookie) $request .= "Cookie: $cookie\n";
$request .= "Connection: Close\n\n";
}
$return = '';
/* Write the Request */
fputs ($web_conn, $request);
/* Get the response */
while (!feof($web_conn)) {
$ret .= fgets($web_conn, 128);
}
}
return $ret;
}
?>
--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php