note 91644 added to function.fsockopen
| From: | oliver dot christen at camptocamp dot com | Date: | Sun, 21 Jun 2009 10:17:02 +0000 |
| Subject: | note 91644 added to function.fsockopen | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-157191@lists.php.net to get a copy of this message | ||
When downloading large files, it is not really efficient to put the whole server answer in memory
before parsing the data to remove the header parts. Here is a simple way to do it while writing the
data as it arrive:
<?php
// $socket is a valid fsockopen handle
$out = '';
$headerendfound = false;
$fp = fopen($fileTarget, 'w');
$buffer = '';
while (!feof($socket)) {
$out = fgets ($socket,16384);
if ($headerendfound) {
fwrite($fp, $out);
print '.';
}
if (!$headerendfound) {
$buffer .= $out;
print "searching for header\n";
$headerend = strpos($buffer, "\r\n\r\n");
if ($headerend !== false) {
$headerendfound = true;
fwrite($fp, substr($buffer, $headerend+4));
$buffer = '';
}
}
}
fclose($fp);
fclose($socket);
?>
----
Server IP: 62.2.182.223
Probable Submitter: 84.227.178.66
----
Manual Page -- http://www.php.net/manual/en/function.fsockopen.php
Edit -- https://master.php.net/note/edit/91644
Del: integrated -- https://master.php.net/note/delete/91644/integrated
Del: useless -- https://master.php.net/note/delete/91644/useless
Del: bad code -- https://master.php.net/note/delete/91644/bad+code
Del: spam -- https://master.php.net/note/delete/91644/spam
Del: non-english -- https://master.php.net/note/delete/91644/non-english
Del: in docs -- https://master.php.net/note/delete/91644/in+docs
Del: other reasons-- https://master.php.net/note/delete/91644
Reject -- https://master.php.net/note/reject/91644
Search -- https://master.php.net/manage/user-notes.php