Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Двусловные названия в FTPManager

Сообщения:  [1-2] 

 
 автор: Agamidov   (26.03.2008 в 23:19)   письмо автору
 
   для: Agamidov   (26.03.2008 в 21:18)
 

Все же сделал поддержку таких имен.
Это - index.php

<?php

  $title 
"FTP";  
    
// Устанавливаем соединение с FTP-сервером
  
require_once("config.php");
  
// Выводим "шапку" страницы
  
require_once("topftp.php");
  
// Определяем тип операционной системы сервера
  // предоставляющего услуги FTP
  
$type ftp_systype($link);
  
// Если операционная система отличается от UNIX
  // прекращаем дальнейшую работу
  
if($type != "UNIX"puterror("К сожалению, на
      удалённом сервере операционная система не
      совеместимая с UNIX"
);
  
// Извлекаем из строки запроса значение директории
  
if(isset($_GET['dir']) && $_GET['dir'] != "%"$dir $_GET['dir'];
  else 
$dir "/";
  
$dir str_replace("%""/"$dir);
  
// Получаем все файлы корневого каталога
  // Дескриптор соединения $link получен в config.php
  
$file_list ftp_rawlist($link,$dir);
  
// Закрываем соединение с FTP-сервером
  
ftp_close($link);
  
// Выводим текущую директорию
  
$directory=$dir;
  
$dir=str_replace(' ''%20'$dir);
  echo 
"<p class=help>Текущая папка - ftp://".$ftp_server.$directory."</p>";
  
// Если текущий каталог не является кореневым,
  // выводим ссылку на один уровень вверх
  
if($dir != "/")
  {
    
// Удаяем из переменной $dir последюю директорию
    
$pos strrpos($dir'/');
    if(
$pos>0$dirup substr($dir0$pos);
    else 
$dirup "/";
    echo 
"<p style='margin: 0px; margin-bottom: 5px'><a href=index.php?dir=".str_replace('/''%'$dirup).">вверх</a></p>";
  }
  
// Выводим содержимое каталога
  // Формируем таблицу
  
echo "<table class=bodytable width=100% border=1 cellpadding=4 cellspacing=0 bordercolordark=white bordercolorlight=gray>
          <tr>
            <td class=headtable align=center>права доступа</td>
            <td class=headtable align=center>блоки</td>
            <td class=headtable align=center>группа</td>
            <td class=headtable align=center>пользователь</td>
            <td class=headtable align=center>размер, байты</td>
            <td class=headtable align=center>время создания</td>
            <td class=headtable>&nbsp;</td>
            <td class=headtable align=center colspan=2>действия</td>
          </tr>"
;
foreach(
$file_list as $file)
 {
    
// Разбиваем строку по пробельным символам
    
  
list($acc,
    
$bloks,
    
$group,
    
$user,
    
$size
    
$month
    
$day
    
$year
         
        ) = 
preg_split("/[\s,]+/"$file);
         
        
$mon=array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
        for(
$i=0;$i<=11;$i++)
        {
         if(!
strstr($file,$mon[$i])==false)
         {
          
$file=strstr($file,$mon[$i]);
         }
        }
        
$file=substr($file,12,strlen($file));
        
        
//Если остался пробел в начале - удаляем его
        
if(substr($file01) == ' '){$file=substr($file,1,strlen($file)); }
        
//меняем пробелы на "%20" для корректной работы ссылок
        
$file=str_replace(' ''%20'$file);
    
// Если файл начинается с точки - игнорируем его
    
if(substr($file01) == '.') continue;
    
// Формируем ссылку на удаление файла
    
$delete "-";
    
$edit "-";
    
//буферная переменная для корректного отображения файлов в списке
     
$buf=str_replace('%20',' '$file);
    
// Для формирования корректных ссылок в таблице
    // файлов перменной $dir добавляем /
    
if($dir != "/"$url str_replace('/''%25'$dir.'/'.$file);
    else 
$url str_replace('/''%25'$dir.$file);
    
// Определяем является ли объект директорией
    
if(substr($acc01) == 'd')
    {
      
$file "<b><a href=index.php?dir=$url title='Открыть директорию'>$buf</a></b>";
      
$delete "<p><a href=rmdir.php?dir=$url>Удалить</a></p>";
      
$edit "<p><a href=chdirform.php?dir=$url&acc=$acc>Исправить</a></p>";
      
$size "&lt;DIR&gt;";
    }
    
// Определяем является ли объект файлом
    
if(substr($acc01) == '-')
    {
      
$file "<a href=download.php?dir=$url title='Загрузить файл'>$buf</a>";
      
$delete "<p><a href=rmfile.php?dir=$url>Удалить</a></p>";
      
$edit "<p><a href=editfileform.php?dir=$url&acc=$acc>Исправить</a></p>";
    }
    
// Формируем строку таблицы
    
echo "<tr>
            <td align=center><p><code>
$acc</code></p></td>
            <td align=center><p><code>
$bloks</code></p></td>
            <td align=center><p><code>
$group</code></p></td>
            <td align=center><p><code>
$user</code></p></td>
            <td align=center><p><code>
$size</code></p></td>
            <td align=center><p><code>
$day&nbsp;&nbsp;$month&nbsp;&nbsp;$year</code></p></td>
            <td align=right><p><code>
$file</code></p></td>
            <td align=center>
$delete</td>
            <td align=center>
$edit</td>
          </tr>"
;
  }
  echo 
"</table>";
  
// Ссылка на создание каталога
  
echo "<br><p style='margin: 0px; margin-bottom: 5px'><a href=mkdirform.php?dir=".str_replace('/''%25'$dir).">Создать каталог</a>&nbsp;&nbsp;&nbsp;";
  echo 
"<a href=uploadform.php?dir=".str_replace('/''%25'$dir).">Загрузить файл</a></p>";
  
// Выводим завершение страницы
  
require_once("bottomftp.php");
?>


Возник вопрос, можно ли сделать закачку "на лету"?

   
 
 автор: Agamidov   (26.03.2008 в 21:18)   письмо автору
 
 

Здравствуйте, возможна ли корректная работа FTPManager-а при именах состоящих из 2 и более слов ? Я пробовал исправить эту проблему сам, отдельно от остальных переменных расчленял $file до первого пробела, имена строятся корректно, но теперь не строятся ссылки. Не могли бы вы посоветовать что-нибудь в решении этой проблемы?
Может можно как то по-простому расчленять $file_list чтобы сохранять пробелы?
Я пробовал брать $file отдельно, вырезал из него все до даты, которая в формате:

"MMM DD HH:MM/YYYY" - тоесть либо 12 либо 11 символов.

Далее срезал первые 11 символов и получал строку вида:

" filename" либо "M filename" . Отсюда оставлял только filename, После чего имена начали отображаться корректно, однако накрылись ссылки на скачку файла и смену директории.
Поможете? :-)

   

Сообщения:  [1-2] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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