wppaste
WordPress

ftp_pure

Since
2.5.0
Source
wp-admin/includes/class-ftp-pure.php:28
FTP implementation using fsockopen to connect.

Compatibility

WordPress
since 2.5.0
  • 6.7.7
  • 6.8.8
  • 6.9.7
  • 7.0.4
  • 7.1.0

Present in every tracked release (6.7.7 to 7.1.0).

Methods · 11

Source code

class ftp_pure extends ftp_base { 	function __construct($verb=FALSE, $le=FALSE) {		parent::__construct(false, $verb, $le);	} // <!-- --------------------------------------------------------------------------------------- -->// <!--       Private functions                                                                 -->// <!-- --------------------------------------------------------------------------------------- --> 	function _settimeout($sock) {		if(!@stream_set_timeout($sock, $this->_timeout)) {			$this->PushError('_settimeout','socket set send timeout');			$this->_quit();			return FALSE;		}		return TRUE;	} 	function _connect($host, $port) {		$this->SendMSG("Creating socket");		$sock = @fsockopen($host, $port, $errno, $errstr, $this->_timeout);		if (!$sock) {			$this->PushError('_connect','socket connect failed', $errstr." (".$errno.")");			return FALSE;		}		$this->_connected=true;		return $sock;	} 	function _readmsg($fnction="_readmsg"){		if(!$this->_connected) {			$this->PushError($fnction, 'Connect first');			return FALSE;		}		$result=true;		$this->_message="";		$this->_code=0;		$go=true;		do {			$tmp=@fgets($this->_ftp_control_sock, 512);			if($tmp===false) {				$go=$result=false;				$this->PushError($fnction,'Read failed');			} else {				$this->_message.=$tmp;				if(preg_match("/^([0-9]{3})(-(.*[".CRLF."]{1,2})+\\1)? [^".CRLF."]+[".CRLF."]{1,2}$/", $this->_message, $regs)) $go=false;			}		} while($go);		if($this->LocalEcho) echo "GET < ".rtrim($this->_message, CRLF).CRLF;		$this->_code=(int)$regs[1];		return $result;	} 	function _exec($cmd, $fnction="_exec") {		if(!$this->_ready) {			$this->PushError($fnction,'Connect first');			return FALSE;		}		if($this->LocalEcho) echo "PUT > ",$cmd,CRLF;		$status=@fputs($this->_ftp_control_sock, $cmd.CRLF);		if($status===false) {			$this->PushError($fnction,'socket write failed');			return FALSE;		}		$this->_lastaction=time();		if(!$this->_readmsg($fnction)) return FALSE;		return TRUE;	} 	function _data_prepare($mode=FTP_ASCII) {		if(!$this->_settype($mode)) return FALSE;		if($this->_passive) {			if(!$this->_exec("PASV", "pasv")) {				$this->_data_close();				return FALSE;			}			if(!$this->_checkCode()) {				$this->_data_close();				return FALSE;

Changelog

Introduced in 2.5.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 7.1.0

Signature, return type and hooks compared across 5 parsed releases.

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-admin/includes/class-ftp-pure.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.
Corrections
Something wrong on this page? Report it and it gets fixed in the next regeneration.