note 72603 added to function.ftp-get
| From: | anomie at users dot sourceforge dot net | Date: | Thu, 25 Jan 2007 17:50:00 +0000 |
| Subject: | note 72603 added to function.ftp-get | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-122201@lists.php.net to get a copy of this message | ||
Why there isn't an "ftp_get_contents" function, I don't know. It takes a little
work to emulate one, but it's doable.
<?php
function ftp_get_contents($ftp_stream, $remote_file, $mode, $resume_pos=null){
$pipes=stream_socket_pair(STREAM_PF_UNIX, STREAM_SOCK_STREAM, STREAM_IPPROTO_IP);
if($pipes===false) return false;
if(!stream_set_blocking($pipes[1], 0)){
fclose($pipes[0]); fclose($pipes[1]);
return false;
}
$fail=false;
$data='';
if(is_null($resume_pos)){
$ret=ftp_nb_fget($ftp_stream, $pipes[0], $remote_file, $mode);
} else {
$ret=ftp_nb_fget($ftp_stream, $pipes[0], $remote_file, $mode, $resume_pos);
}
while($ret==FTP_MOREDATA){
while(!$fail && !feof($pipes[1])){
$r=fread($pipes[1], 8192);
if($r==='') break;
if($r===false){ $fail=true; break; }
$data.=$r;
}
$ret=ftp_nb_continue($ftp_stream);
}
while(!$fail && !feof($pipes[1])){
$r=fread($pipes[1], 8192);
if($r==='') break;
if($r===false){ $fail=true; break; }
$data.=$r;
}
fclose($pipes[0]); fclose($pipes[1]);
if($fail || $ret!=FTP_FINISHED) return false;
return $data;
}
?>
Something similar would work to write a ftp_put_contents function, too.
----
Server IP: 216.194.113.175
Probable Submitter: 24.28.249.249
----
Manual Page -- http://www.php.net/manual/en/function.ftp-get.php
Edit -- https://master.php.net/note/edit/72603
Del: integrated -- https://master.php.net/note/delete/72603/integrated
Del: useless -- https://master.php.net/note/delete/72603/useless
Del: bad code -- https://master.php.net/note/delete/72603/bad+code
Del: spam -- https://master.php.net/note/delete/72603/spam
Del: non-english -- https://master.php.net/note/delete/72603/non-english
Del: in docs -- https://master.php.net/note/delete/72603/in+docs
Del: other reasons-- https://master.php.net/note/delete/72603
Reject -- https://master.php.net/note/reject/72603
Search -- https://master.php.net/manage/user-notes.php