Files Library GameAP: различия между версиями

Материал из HLDM Wiki
Перейти к навигации Перейти к поиску
(connect)
 
(не показано 12 промежуточных версий этого же участника)
Строка 14: Строка 14:
 
== Задание данных ==
 
== Задание данных ==
  
=== set_driver ===
+
=== $this->files->set_driver(); ===
 
Задает значение протокола управления файлами.
 
Задает значение протокола управления файлами.
 
  set_driver ( string $driver )
 
  set_driver ( string $driver )
Строка 32: Строка 32:
 
== Основные функции ==
 
== Основные функции ==
  
=== connect ===
+
=== $this->files->connect(); ===
 
Соединение с сервером. Если используется локальный протокол управления, то всегда вернет true.
 
Соединение с сервером. Если используется локальный протокол управления, то всегда вернет true.
 
  connect(array $config)
 
  connect(array $config)
Строка 65: Строка 65:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== delete_dir ===
+
=== $this->files->delete_dir(); ===
 
Удаление директории.  
 
Удаление директории.  
 +
delete_dir ( string $path )
  
=== delete_file ===
+
'''Пример:'''
 +
<syntaxhighlight lang="php">
 +
$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());
 +
}
 +
 
 +
</syntaxhighlight>
 +
 
 +
=== $this->files->delete_file(); ===
 
Удаление файла.
 
Удаление файла.
 +
delete_file ( string $path )
 +
 +
'''Пример:'''
 +
<syntaxhighlight lang="php">
 +
$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());
 +
}
 +
 +
</syntaxhighlight>
 +
 +
=== $this->files->download(); ===
 +
Загружает файлы с сервера.
 +
download ( string $rempath, string $locpath )
 +
:'''rempath'''
 +
::Путь на сервере
 +
:'''locpath'''
 +
::Локальный путь
  
=== download ===
+
'''Примеры:'''
Загрузка файла с сервера.
+
<syntaxhighlight lang="php">
 +
$this->files->download('/public_html/myfile.html', '/local/path/to/myfile.html');
 +
</syntaxhighlight>
  
=== list_files ===
+
Пример с подключением к серверу:
 +
<syntaxhighlight lang="php">
 +
$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());
 +
}
 +
 
 +
</syntaxhighlight>
 +
 
 +
Пример с получением данных сервера из базы и использования [[DS_Helper_GameAP|помощника DS]]:
 +
<syntaxhighlight lang="php">
 +
$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());
 +
}
 +
</syntaxhighlight>
 +
 
 +
=== $this->files->list_files(); ===
 
Список файлов.
 
Список файлов.
 +
list_files( string $path = '.' [, bool $recursive = false])
 +
:'''path'''
 +
::Директория, файлы в которой необходимо получить.
 +
:'''recursive'''
 +
::Рекурсивно в подкаталогах
  
=== list_files_full_info ===
+
=== $this->files->list_files_full_info(); ===
 
Список файлов с информацией о последнем изменении и размере.
 
Список файлов с информацией о последнем изменении и размере.
 +
list_files_full_info( string $path = '.' [, array $extensions])
 +
:'''path'''
 +
::Директория, файлы в которой необходимо получить.
 +
:'''extensions'''
 +
::Массив с расширениями файлов. Если задан, то будут получены лишь указанные типы файлов.
  
=== mkdir ===
+
=== $this->files->mkdir(); ===
 
Создание директории.
 
Создание директории.
 +
mkdir ( string $dir )
 +
:'''dir'''
 +
::Директория
  
=== move ===
+
=== $this->files->move(); ===
Перемещение.
+
Перемещение файла или директории.
 +
move(string $old_file, string $new_file)
 +
:'''old_file'''
 +
::Старый путь
 +
:'''new_file'''
 +
::Новый путь
  
=== read_file ===
+
=== $this->files->read_file(); ===
 
Чтение файла.
 
Чтение файла.
 +
read_file ( string $remfile )
 +
:'''remfile'''
 +
::Путь к файлу
 +
 +
'''Примеры:'''
 +
 +
<syntaxhighlight lang="php">
 +
$this->files->read_file('/path/to/myfile.txt');
 +
</syntaxhighlight>
 +
 +
Пример с подключением к серверу:
 +
<syntaxhighlight lang="php">
 +
$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;
 +
</syntaxhighlight>
 +
 +
Пример с получением данных сервера из базы и использования [[DS_Helper_GameAP|помощника DS]]:
 +
<syntaxhighlight lang="php">
 +
$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;
 +
</syntaxhighlight>
  
=== write_file ===
+
=== $this->files->write_file(); ===
 
Запись файла.
 
Запись файла.
 +
write_file( string $remfile, string $data = '')
 +
:'''remfile'''
 +
::Путь к файлу
 +
:data
 +
::Текстовые данные
  
=== rename ===
+
<syntaxhighlight lang="php">
Переименование.
+
$file_contents = 'Текстовые данные';
 +
$this->files->write_file('/path/to/myfile.txt', $file_contents);
 +
</syntaxhighlight>
 +
 
 +
Пример с подключением к серверу:
 +
<syntaxhighlight lang="php">
 +
$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());
 +
}
 +
</syntaxhighlight>
  
=== search ===
+
Пример с получением данных сервера из базы и использования [[DS_Helper_GameAP|помощника DS]]. Полноценный пример, автоматическое определение протокола (FTP, SFTP или Local).
Поиск.
+
<syntaxhighlight lang="php">
 +
$this->load->helper('ds');
 +
$this->load->model('servers');
  
=== upload ===
+
$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());
 +
}
 +
</syntaxhighlight>
 +
 
 +
=== $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'''
 +
::Путь на сервере
  
 
{{Категория:Документация_для_разработчиков}}
 
{{Категория:Документация_для_разработчиков}}

Текущая версия на 11:19, 19 июня 2014


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

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

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
Путь на сервере