Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: FTP - помогите.
 
 автор: Антоха   (17.12.2006 в 09:10)   письмо автору
 
 

Здраствуйте.
Я тут не давно задавал вопрос - (Помощь с FTP), где хотел сделать навигацию по фтп-серверу.
Но так толком, ничего не получилось сделать, тема заглохла и я отступился.
И вот вчера, наконец-то, пришла долгожданая книга "PHP5. Практика создания Web - сайтов".
Я её быстренько пролестал, поглядел (авторам хочу сказать большое спасибо, отличная толстая книга.) и увидел собственно, как написать ftp-manager. И вот я решил, снова поднять эту тему, потому что с ftp-manager, у меня тоже возникли проблемы. (Скрипт не стал выкладывать, потому что он приличной длинны, и у вас он есть, но если нужно вы скажите, я опубликую).
Для начала я начал тестировать ftp-manager. Скачал с диска скрипт, подправил его (указал нужный ip и т.п.), запустил, работает. Но сразу же заметил, что скрипт выдает не полные имена файлов и директорий. Если есть, например каталоги:
Фильмы 1
Фильмы 2
Другие Фильмы.

результат будет:
Фильмы
Фильмы
Другие

И это понятно почему так происходит:
<?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)
// код
?>

preg_split() разбивает по "пробельным" символам, поэтому и получается вместо, например (название каталога):
Всё новое о ПО
выводит:
Всё
Соответственно и каталог не будет работать (такого каталога нет на сервере)
Я конечно, почесав репу и как бы всё правильно сделать, ничего интересного не придумал, кроме как:
добавить рег.выр.
отказатся от одной и той же переменой ($file) в foreach и в list, заменив в цикле $file на $f - нужно для правильной работы рег.выр.
<?php
// код
$file_list ftp_rawlist($link$dir);
// код
foreach($file_list as $f) { // заменили $file на $f
     
list($acc,
          
$bloks,
          
$group,
          
$user,
          
$size
          
$month
          
$day
          
$year
          
$file) = preg_split("/[\s]+/"$f// тут заменили $file на $f
     
preg_match("/\b$file\b.*/"$f$matches);
     
$file $matches[0];
?>

Вот теперь все нормально, выдает полные названия каталогов и файлов, но зараза, не может почему то правильно их передать. Так, например, каталог (Фильмы 2) отображается правильно, а путь передается как (Фильмы), о чем сверху и пишется:
Текущая папка - ftp://192.168.1.135/Фильмы
Вместо:
Текущая папка - ftp://192.168.1.135/Фильмы 2
Просьба, авторов, или кого-нибудь из вашей студии, подправить ftp-manager
http://www.softtime.ru/info/ftpmanager.php
А я бы с радостью его скачал.
Извените за столь большую тему.
Спасибо.

   
 
 автор: kasmanaft   (17.12.2006 в 09:21)   письмо автору
 
   для: Антоха   (17.12.2006 в 09:10)
 

В строке 80 файла index.php (где формируются ссылки) попробуйте ссылки поместить в кавычки
<a href='index.php?dir=$url' title='Открыть директорию'>
(или пропустить $url через urlencode)

   
 
 автор: Антоха   (17.12.2006 в 09:38)   письмо автору
 
   для: kasmanaft   (17.12.2006 в 09:21)
 

Отлично, прямо в яблочко. Всё работает превосходно.
Спасибо большое.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования