AJAX ТЕХНОЛОГИЯ

Титульная > Общее описание > Подпрограммы


_

Загрузчик (Пример - фотоальбом)

Данная программа не имеет прямого отношения к Ajax технологии, тем не менее она полезна как загрузчик материала на сервер (в частности, фото gif|jpg|png).

<?
//АДРЕС КАТАЛОГА ФОТОГРАФИЙ
$ImgDir="img";
//По @ СОЗДАЕТ, ЕСЛИ КАТАЛОГ ОТСУТСТВУЕТ
@mkdir($ImgDir,0755);

//ДОБАВЛЕНИЕ НОВОЙ ФОТОГРАФИИ
if (@$doUpload) if (@file_exists($File)) Copy($File,"$ImgDir/".basename($File_name));

//СБОР ДАННЫХ
$d=opendir($ImgDir);
$Photos=array();

while (($e=readdir($d))!==false) {
    if(!ereg("^(.*)\\.(gif|jpg|png)$",$e,$P)) continue;
    $path="$ImgDir/$e";
    $sz=GetImageSize($path);
    $tm=filemtime($path);
    $Photos[$tm]=array('time'=>filemtime($path),'name'=>$e,
    'url'=>$path,'w'=>$sz[0],'h'=>$sz[1],'wh'=>$sz[3]);
}

//СОРТИРОВКА
krsort($Photos);
?>

//ТЕЛО ОСНОВНОЙ ПРОГРАММЫ
<body>

//СОЗДАНИЕ ФОРМЫ С КНОПКАМИ ВВОДА ФОТОГРАФИИ
<form action=photo.php method=POST enctype=multipart/form-data>
<input type=file name=File>

<input type=submit name=doUpload value="Upload Pic">
</form>

//ВЫВОД ФОТОАЛЬБОМА НА ЭКРАН
<? foreach($Photos as $n=>$Img) { ?>
<IMG SRC="<?=$Img['url']?>"
<?=$Img['wh']?> alt="Downloaded <?=date("d.m.Y H:i:s",$Img['time'])?>">
<? } ?>
</body>

Как работать с FTP через PHP

Основные команды

Команда подключения к ftp серверу
$id=ftp_connect (”host”[,”port”[,”timeout”]]);

port - порт ftp по умолчанию равен 21.
timeout - на какое время собираемся открывать соединение. По умолчанию 90 секунд.
$id - тут хранится идентификатор соединения

Пример:
$ftpserv=’ftp.example.com’;
$id = ftp_connect($ftpserv) or die(”Не удалось установить соединение с $ftpserv”);

Команда входа (login)
$res=ftp_login($id, “user”, “pass”);

Первым параметром идет идентификатор открытого соединения.
user - ваш юзернейм
pass - пароль

В $res окажется TRUE в случае успеха и FALSE в случае неудачи.

Примеры:
1. if(!ftp_login($id, “user”, “pass”)) exit(’не подключился’);
Произойдет автоматическое завершение скрипта
2. if(@ftp_login($id, “user”, “pass”))
@ - блокирует вывод на экран сообщения об ошибке подключения

Завершение соединения
ftp_close($id);

$id - идентификатор.

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
ftp_quit - псевдоним ftp_close.

Выполняет команду на ftp сервере
ftp_exec($id, ‘command’);

$id - соединение
command - ваша команда

Реально - пошлет на сервер вот такую штуку: SITE EXEC command. Так что если знаете обычные ftp команды, то этой штукой можно заменить все, что предлагает PHP.
Вернет TRUE или FALSE. Причем TRUE отдаст, если сервер вернет код ответа 200 (типа все гут).

ftp_site($id, ‘command’);
По синтаксису абсолютно тоже что ftp_exec, только вместо SITE EXEC отправит SITE.

ftp_raw($id, ‘command’);
По синтаксису абсолютно тоже что ftp_exec, только выполнит совсем произвольную команду.

Работа с директориями

Команда получения имени текущей директории
$dirname=ftp_pwd($id);

$id - тут надо отправить идентификатор соединения

В $dirname окажется либо название текущей директории, либо FALSE если команда не пройдет

Команда смены текущей директории
ftp_chdir($id, ‘new_dir’);

$id - соединение
new_dir - название желаемой директории

Вернет TRUE или FALSE понятно в каких случаях.

Команда перехода в родительскую директорию
ftp_cdup($id);

$id - идентификатор

По сути дела является сокращенной командой ftp_chdir. Вернет TRUE в случае успешного выполнения и FALSE в случае неудачи.

Команда создания папки
ftp_mkdir($id,’dirname’);

$id - идентефикатор соединения полученный из ftp_connect
Второй парамет - имя вашей папки

В случае успеха вернет имя созданной папки. Если не прокатит то отдаст FALSE

Пример:
if(ftp_mkdir($conn_id, $dir))
Если вернется не FALSE, то выполняем. Если FALSE, то попадем в else

Команда удаления папки
ftp_rmdir($id,’dirname’);

$id - идентефикатор соединения
dirname - имя папки

Возвращает TRUE или FALSE.
Пример: точно также как ftp_mkdir

Команда переименования директории или файла
ftp_rename($id, $oldname, $newname);

$oldname - старое имя
$newname - новое имя

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Работа с файлами

Загружает файл на сервер
ftp_put ($id, $remote_file, $local_file, $mode [, $startpos]);

$id - идентификатор соединения
$remote_file - путь к файлу на удаленном сервере
$local_file - путь к файлу на локальной машине
$mode - метод передачи: FTP_ASCII или FTP_BINARY (FTP_BINARY - передает файл без изменений)
$startpos - позиция в файле с которой начинается загрузка

Вернет TRUE или FALSE

Пример:
ftp_put($conn_id, ’somefile.txt’, ‘file.txt’, FTP_ASCII);

ftp_fput($id, $remote_file, $hd, $mode [, $startpos]);

$hd - идентификатор файла

То же самое что и ftp_put только для уже открытого файла.
Пример:
$fp = fopen($file, ‘r’);
ftp_fput($conn_id, ’somefile.txt’, $fp, FTP_ASCII);

Есть еще ftp_nb_put и ftp_nb_fput с такими же синтаксисами соответственно. Загрузка файла происходит в асинхронном режиме. То есть можно параллельно выполнять еще какие-нибудь команды. Для них есть команда ftp_nb_continue($id), которая продалжает выполнение операции.
Вернуть могут: FTP_FAILED, FTP_FINISHED или FTP_MOREDATA.

Скачивает файл с сервера
ftp_get($id, $local_file, $remote_file, $mode [, $resumepos]);
ftp_fget($id, $hd, $remote_file, $mode [, $resumepos]);

$id - идентификатор соединения
$local_file - файл на локальной машине
$remote_file - файл на удаленной машине
$mode - метод
$resumepos - позициа в файле
$hd - идентификатор открытого файла на ЛОКАЛЬНОЙ МАШИНЕ

С ftp_nb_get и ftp_nb_fget тоже самое, что и с put-ами.

Удаление файла
ftp_delete($id, $path);

$path - путь к файлу

Вернет TRUE или FALSE

Получение списка файлов в директории
ftp_nlist($id, $directory);
ftp_rawlist($id, $directory [, $recursive]);

$directory - адрес директории
$recursive - отправит команду LIST -R

Обе вернут массив типа list. В первом случае это будет список файлов. Во втором просто построчные ответы сервера.

Установка прав доступа
ftp_chmod($id, $mode, $filename);

$id - соединение с сервером
$mode - новые права доступа (’0644′ или ‘0777′)
$filename - удаленный файл

Возвращает новые права доступа к файлу в случае успеха или FALSE в случае ошибки.

Получение размера файла
ftp_size($id, $remote_file);

Возвращает размер файла, или -1 при возникновении ошибки.

artspb.com   

 


 

_