/** * @access public * * @param string $file * @param string $contents * @param int|bool $mode * @return bool */ public function put_contents($file, $contents, $mode = false) { $temp = wp_tempnam($file); if (!($temphandle = @fopen($temp, 'w+'))) { unlink($temp); return false; } // The FTP class uses string functions internally during file download/upload mbstring_binary_safe_encoding(); $bytes_written = fwrite($temphandle, $contents); if (false === $bytes_written || $bytes_written != strlen($contents)) { fclose($temphandle); unlink($temp); reset_mbstring_encoding(); return false; } fseek($temphandle, 0); // Skip back to the start of the file being written to $ret = $this->ftp->fput($file, $temphandle); reset_mbstring_encoding(); fclose($temphandle); unlink($temp); $this->chmod($file, $mode); return $ret; }