note 72603 added to function.ftp-get

From: 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

« previous php.notes (#122201) next »