phpseclib\Net\SFTP::delete PHP Method

delete() public method

Deletes a file on the SFTP server.
public delete ( string $path, boolean $recursive = true ) : boolean
$path string
$recursive boolean
return boolean
    function delete($path, $recursive = true)
    {
        if (!($this->bitmap & SSH2::MASK_LOGIN)) {
            return false;
        }
        if (is_object($path)) {
            // It's an object. Cast it as string before we check anything else.
            $path = (string) $path;
        }
        if (!is_string($path) || $path == '') {
            return false;
        }
        $path = $this->_realpath($path);
        if ($path === false) {
            return false;
        }
        // http://tools.ietf.org/html/draft-ietf-secsh-filexfer-13#section-8.3
        if (!$this->_send_sftp_packet(NET_SFTP_REMOVE, pack('Na*', strlen($path), $path))) {
            return false;
        }
        $response = $this->_get_sftp_packet();
        if ($this->packet_type != NET_SFTP_STATUS) {
            throw new \UnexpectedValueException('Expected SSH_FXP_STATUS');
        }
        // if $status isn't SSH_FX_OK it's probably SSH_FX_NO_SUCH_FILE or SSH_FX_PERMISSION_DENIED
        if (strlen($response) < 4) {
            return false;
        }
        extract(unpack('Nstatus', Strings::shift($response, 4)));
        if ($status != NET_SFTP_STATUS_OK) {
            $this->_logError($response, $status);
            if (!$recursive) {
                return false;
            }
            $i = 0;
            $result = $this->_delete_recursive($path, $i);
            $this->_read_put_responses($i);
            return $result;
        }
        $this->_remove_from_stat_cache($path);
        return true;
    }

Usage Example

Esempio n. 1
0
 public function tearDown()
 {
     if ($this->sftp) {
         $this->sftp->chdir($this->getEnv('SSH_HOME'));
         $this->sftp->delete($this->scratchDir);
     }
     parent::tearDown();
 }
All Usage Examples Of phpseclib\Net\SFTP::delete