Files Library GameAP

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску


Библиотека для работы с файлами на выделенном сервере.

Расположение

application/libraries/Files/

Загрузка библиотеки

$this->load->driver('files');

Задание данных

$this->files->set_driver();

Задает значение протокола управления файлами.

set_driver ( string $driver )

Список доступных опций:

Название Описание
local Локальный протокол.
ftp FTP протокол управления файлами.
sftp SFTP протокол управления файлами.

Основные функции

$this->files->connect();

Соединение с сервером. Если используется локальный протокол управления, то всегда вернет true.

connect(array $config)
config
Массив с параметрами для соединения с сервером.
Значение Описание
hostname Хост
port Порт
username Логин
password Пароль

Примеры:

$config['hostname'] = '127.0.0.1';
$config['port'] = 21;
$config['username'] = 'ftp_user';
$congif['password'] = 'pass123';

try {
    $this->files->connect($config);
} catch (Exception $e) {
    exit('Ошибка: ' . $e->getMessage());
}

$this->files->delete_dir();

Удаление директории.

delete_dir ( string $path )

Пример:

$config = array('hostname' => '127.0.0.1', 'port' => 21, 'username' => 'ftp_user', 'password' => 'pass123');

try {
    $this->files->connect($config);
    $this->files->delete_dir('/home/servers/my_dir');
} catch (Exception $e) {
    exit('Ошибка: ' . $e->getMessage());
}

$this->files->delete_file();

Удаление файла.

delete_file ( string $path )

Пример:

$config = array('hostname' => '127.0.0.1', 'port' => 21, 'username' => 'ftp_user', 'password' => 'pass123');

try {
    $this->files->connect($config);
    $this->files->delete_file('/home/servers/my_file.txt');
} catch (Exception $e) {
    exit('Ошибка: ' . $e->getMessage());
}

$this->files->download();

Загружает файлы с сервера.

download ( string $rempath, string $locpath )
rempath
Путь на сервере
locpath
Локальный путь

Примеры:

$this->files->download('/public_html/myfile.html', '/local/path/to/myfile.html');

Пример с подключением к серверу:

$config = array('hostname' => '127.0.0.1', 'port' => 21, 'username' => 'ftp_user', 'password' => 'pass123');

try {
    $this->files->connect($config);
    $this->files->download('/public_html/myfile.html', '/local/path/to/myfile.html');
} catch (Exception $e) {
    exit('Ошибка: ' . $e->getMessage());
}

Пример с получением данных сервера из базы и использования помощника DS:

$this->load->helper('ds');
$this->load->model('servers');

$server_id = 5;
$this->servers->get_server_data($server_id);
$config =  get_file_protocol_config($this->servers->server_data);

try {
    $this->files->connect($config);
    $this->files->download('/public_html/myfile.html', '/local/path/to/myfile.html');
} catch (Exception $e) {
    exit('Ошибка: ' . $e->getMessage());
}

$this->files->list_files();

Список файлов.

list_files( string $path = '.' [, bool $recursive = false])
path
Директория, файлы в которой необходимо получить.
recursive
Рекурсивно в подкаталогах

$this->files->list_files_full_info();

Список файлов с информацией о последнем изменении и размере.

list_files_full_info( string $path = '.' [, array $extensions])
path
Директория, файлы в которой необходимо получить.
extensions
Массив с расширениями файлов. Если задан, то будут получены лишь указанные типы файлов.

$this->files->mkdir();

Создание директории.

mkdir ( string $dir )
dir
Директория

$this->files->move();

Перемещение файла или директории.

move(string $old_file, string $new_file)
old_file
Старый путь
new_file
Новый путь

$this->files->read_file();

Чтение файла.

read_file ( string $remfile )
remfile
Путь к файлу

Примеры:

$this->files->read_file('/path/to/myfile.txt');

Пример с подключением к серверу:

$config = array('hostname' => '127.0.0.1', 'port' => 21, 'username' => 'ftp_user', 'password' => 'pass123');

try {
    $this->files->connect($config);
    $file_data = $this->files->read_file('/path/to/myfile.txt');
} catch (Exception $e) {
    exit('Ошибка: ' . $e->getMessage());
}

echo $file_data;

Пример с получением данных сервера из базы и использования помощника DS:

$this->load->helper('ds');
$this->load->model('servers');

$server_id = 5;
$this->servers->get_server_data($server_id);
$config =  get_file_protocol_config($this->servers->server_data);

try {
    $this->files->connect($config);
    $file_data = $this->files->read_file('/path/to/myfile.txt');
} catch (Exception $e) {
    exit('Ошибка: ' . $e->getMessage());
}

echo $file_data;

$this->files->write_file();

Запись файла.

write_file( string $remfile, string $data = )
remfile
Путь к файлу
data
Текстовые данные
$file_contents = 'Текстовые данные';
$this->files->write_file('/path/to/myfile.txt', $file_contents);

Пример с подключением к серверу:

$config = array('hostname' => '127.0.0.1', 'port' => 21, 'username' => 'ftp_user', 'password' => 'pass123');

try {
    $this->files->connect($config);
    $file_contents = 'Текстовые данные, записываемые в файл';
    $this->files->write_file('/path/to/myfile.txt', $file_contents);
} catch (Exception $e) {
    exit('Ошибка: ' . $e->getMessage());
}

Пример с получением данных сервера из базы и использования помощника DS. Полноценный пример, автоматическое определение протокола (FTP, SFTP или Local).

$this->load->helper('ds');
$this->load->model('servers');

$server_id = 5;
$this->servers->get_server_data($server_id);
$config =  get_file_protocol_config($this->servers->server_data);

$file_contents = 'Текстовые данные, записываемые в файл';

try {
    $this->files->connect($config);
    $this->files->write_file('/path/to/myfile.txt', $file_contents);
} catch (Exception $e) {
    exit('Ошибка: ' . $e->getMessage());
}

$this->files->rename();

Переименование файла.

rename(string $old_file, string $new_file [, bool $move])
old_file
Старое имя
new_file
Новое имя
move
Перемещение файла

$this->files->search();

Поиск файла. Возвращает путь к первому найденному файлу.

search(string $file [ , string $dir = '/' ] [ , array $exclude_dirs = array() ] [ , int $depth = 4 ] )
file
Имя файла, который необходимо найти
dir
Директория, в которой будет происходить поиск
exclude_dirs
Директории, которые будут игнорироваться
depth
Глубина рекурсии

$this->files->upload();

Загрузка файла на сервер.

upload(string $locpath, string $rempath)
locpath
Локальный путь
rempath
Путь на сервере