| |
|
|
| | Кто поможет дописать фтп-сканер?
Должно выводить вот так:
/
- /pub/
-- /pub/files/
-- /pub/kc-goals/
--- F> -rw-r--r-- 1 dye users 5754880 May 10 2004 2004050906h.avi
--- F> -rw-r--r-- 1 dye users 4831232 May 13 2004 2004051201h.avi
--- F> -rw-r--r-- 1 dye users 2930688 May 13 2004 2004051202h.avi
--- F> -rw-r--r-- 1 dye users 6090752 May 13 2004 2004051203h.avi
--- F> -rw-r--r-- 1 dye users 6701056 May 14 2004 2004051204h.avi
-- /pub/lections/
--- /pub/lections/networks/
---- /pub/lections/networks/1/
---- /pub/lections/networks/2/
---- /pub/lections/networks/3/
---- /pub/lections/networks/4/
---- /pub/lections/networks/5/
---- /pub/lections/networks/lab/
----- F> -rw-r--r-- 1 dye users 47104 May 24 2002 http_rus.doc
--- /pub/lections/proftpd/
---- F> -rw-r--r-- 1 dye users 977554 May 24 2002 configuration.pdf
---- F> -rw-r--r-- 1 dye users 1425457 May 24 2002 userguide.pdf
--- /pub/lections/rfc/
---- F> -rw-r--r-- 1 dye users 245505 May 24 2002 rfc1123.txt
---- F> -rw-r--r-- 1 dye users 718425 May 24 2002 rfc2616.pdf
---- F> -rw-r--r-- 1 dye users 77638 May 24 2002 rfc2617.txt
---- F> -rw-r--r-- 1 dye users 151251 May 24 2002 rfc959.txt
-- /pub/source/
--- F> -rw-r--r-- 1 dye users 2232504 May 24 2002 apache_1.3.24.tar.gz
--- F> -rw-r--r-- 1 dye users 2701799 May 24 2002 db-4.0.14.tar.gz
--- F> -rw-r--r-- 1 dye users 257631 May 24 2002 gd-1.8.4.tar.gz
--- F> -rw-r--r-- 1 dye users 613261 May 24 2002 jpegsrc.v6b.tar.gz
--- F> -rw-r--r-- 1 dye users 752322 May 24 2002 mod_ssl-2.8.8-1.3.24.tar.gz
--- F> -rw-r--r-- 1 dye users 3359964 May 24 2002 php-4.1.2.tar.gz
--- F> -rw-r--r-- 1 dye users 3376494 May 24 2002 php-4.2.1.tar.gz
--- F> -rw-r--r-- 1 dye users 592543 May 24 2002 proftpd-1.2.4.tar.gz
--- F> -rw-r--r-- 1 dye users 418680 May 24 2002 webalizer-2.01-10-src.tgz
- /video/
-- F> -rw-r--r-- 1 root root 229256414 Dec 6 2004 lib_video.avi
-- F> -rw-r--r-- 1 root root 446798123 Apr 26 2005 soifer_int.mpg
-- F> -rw-r--r-- 1 root root 175613182 Nov 14 2002 ssau2002.avi
- F> -rw-r--r-- 1 root root 55 Jul 9 2005 welcome.msg
Как переделать под такой макар код имеющегося сканера?
Код конфига:
<?php
// Адрес FTP-сервера
$ftp_server = "www.ssau.ru";
// Порт соединения
$ftp_port = 21;
// Пользователь
$ftp_user = "anonymous";
// Пароль
$ftp_password = "12345";
// Версия Web-приложения
$version = "1.0.0";
// Устанавливаем время исполнения скрипта = 120 с
set_time_limit(120);
// Пытаемся установить соединение с FTP-сервером
$link = ftp_connect($ftp_server);
if(!$link) puterror("К сожалению, не удаётся установить соединение с FTP-сервером $ftp_server");
// Осуществляем регистрацию на сервере
$login = ftp_login($link, $ftp_user, $ftp_password);
//$login = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if(!$login) puterror("К сожалению, не удаётся зарегистрироваться на сервере");
// Небольшая вспомогательная функция, которая выводит сообщение об ошибке
// в окно браузера
function puterror($message)
{
echo "<center><p class=help>$message</p>";
exit();
}
?>
|
Код сканера:
<?php
require_once("top.php");
// Устанавливаем соединение с FTP-сервером
require_once("config.php");
// Директория на сервере
// $dir = "/";
$dir = "/";
// Запускаем сканер
scan_ftp($link, $dir);
// Закрываем соединение с FTP-сервером
ftp_close($link);
// Результат находится в глобальном массиве $filename
echo "<pre>";
print_r($filename);
echo "</pre>";
////////////////////////////////////////////////////////
// Рекурсивная функция спуска по дереву
// директорий
////////////////////////////////////////////////////////
function scan_ftp($link, $dir)
{
GLOBAL $filename;
// Получаем все файлы корневого каталога
// Дескриптор соединения $link получен в config.php
$file_list = ftp_rawlist($link, $dir);
// Выводим содержимое каталога
foreach($file_list as $file)
{
// Разбиваем строку по пробельным символам
list($acc,
$bloks,
$group,
$user,
$size,
$month,
$day,
$year,
$file) = preg_split("/[\s]+/", $file);
// Если файл начинается с точки - игнорируем его
if(substr($file, 0, 1) == '.') continue;
// Определяем является ли объект директорией
if(substr($acc, 0, 1) == 'd')
{
// Директория
scan_ftp($link, $dir.$file."/");
}
// Определяем является ли объект файлом
if(substr($acc, 0, 1) == '-')
{
// Файл
$filename[] = $file." - (".$size." bytes; ".$day." ".$month." ".$year.") - ".$dir.$file;
}
}
}
require_once("bottom.php");
?>
|
| |
| |
|
|
| |
|
|
| |
для: Nicole Neumann
(28.10.2006 в 09:57)
| | | Кто поможет, заплачу 3 WMZ!!! Я думаю для профи здесь делать все быстро. Я не профи, поэтому и прошу помощи! Помогите! | |
| |
|
|
| |
|
|
| |
для: Nicole Neumann
(28.10.2006 в 10:02)
| | | Ща помогу, если никто до этого не поможет :) | |
| |
|
|
| |
|
|
| |
для: Nicole Neumann
(28.10.2006 в 10:02)
| | | Вчера на "раздачу" опаздал, седня постараюсь не пропустить =)
Прошу ==============> | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(28.10.2006 в 12:20)
| | | А у меня что-то список файлов не получается с сервака | |
| |
|
|
| |
|
|
| |
для: ЯR
(28.10.2006 в 12:44)
| | | Ага, так будет, если скрипт встретит папку в имени которой пробел встретится
Вот, исправил:
(упс... забыл require_once("top.php") / bottom раскомментировать ) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(28.10.2006 в 12:48)
| | | И всё равно не работает (выдаёт / и всё), там сервак какой-то глючный, filezilla тоже не может получить список файлов | |
| |
|
|
| |
|
|
| |
для: ЯR
(28.10.2006 в 12:55)
| | | Ага .. у меня тоже оттуда с минуту получал список .. я на своем тестил | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(28.10.2006 в 12:59)
| | | Заработало! | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(28.10.2006 в 12:20)
| | | У меня твой сканер не работает | |
| |
|
|
| |
|
|
| |
для: Nicole Neumann
(28.10.2006 в 10:02)
| | | Nicole Neumann, будут ещё задачки? Мне понравилось | |
| |
|
|
| |
|
|
| |
для: Nicole Neumann
(28.10.2006 в 09:57)
| | | Большое спасибо kasmanaft! РАБОТАЕТ! Напиши кошелек, куда заслать тебе твои законные 3wmz!!! (или аська 539778. что больше нравится. на выбор.)
P.S. to ЯR: обязательно будут еще задачки. только позже.))) | |
| |
|
|
| |
|
|
| |
для: Nicole Neumann
(29.10.2006 в 15:27)
| | | Вот цуда пожалуста Z322301351950 :) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(29.10.2006 в 18:11)
| | | Отправил))) Еще раз, спасибо! | |
| |
|
|
| |
|
|
| |
для: Nicole Neumann
(29.10.2006 в 19:42)
| | | Тебе спасибо! Всё получил :) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(29.10.2006 в 20:25)
| | | А как посчитать и суммарный объем всех файлов??? забыл сразу уточнить...
П.С. Нужно СРОЧНО! Награда: 1WMZ. | |
| |
|
|
| |
|
|
| |
для: Nicole Neumann
(31.10.2006 в 10:48)
| | | Коли прилагается награда, то без советов и объяснений:
готовый скрипт :) ---- >
пс: если ВМЗ лишние, шли туда же ;) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(31.10.2006 в 14:33)
| | | Спасибо! Отправил деньги! Писал про награду не потому, что деньжата у меня лишние, а за срочность плачу. | |
| |
|
|