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

Форум PHP

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

 

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

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

тема: Как вывести файлы с FTP?
 
 автор: Zew   (03.11.2005 в 23:32)   письмо автору
 
 

С помощью вашего учебника пытаюсь понять, как вывести список файлов с фтп, но что-то не догоняю. Удалить файл, добавить директорию и т.п. - отлично работает, а вот вывести сами файлы почему-то нет... =(
<?
$host 
"***";
$port "21";
$user "***";
$pass "***";
$connect ftp_connect($host$port150);
if(!
$connect){echo "ошибка соединения";}else{
if(!@
ftp_login($connect$user$pass)){echo "ошибка регистрации";}else{

$file_list ftp_nlist($connect"public_html/hellsing/manga/Hellsing/");
//А вот тут что-то не работает - все время выдает "ошибка".
if(is_array($file_list)){
foreach(
$file_list as $file){echo("$file <br>");}
}else{echo 
"ошибка";}

}} 
?>

   
 
 автор: mistersmak   (04.11.2005 в 00:45)   письмо автору
 
   для: Zew   (03.11.2005 в 23:32)
 


<?
 $host
="host";
 
$user="login";
 
$pass="password";
 
set_time_limit(180);
 @
$conn ftp_connect($host);
 if(!
$conn) { echo "<center><b>Не удалось соединиться!</b><br>"; }
 @
$regi ftp_login($conn$user$pass);
 if(
$conn && !$regi) { echo "<center><b>Не удалось зарегистрироваться!</b><br>"; }
//-------------------------------------------------------------------------
 
if(isset($_GET['folder']) && $_GET['folder'] != "%"$folder $_GET['folder'];
 else 
$folder "/";
 
$folder str_replace("%""/"$folder);
 
$folder $folder."files/";
 @
$file_list ftp_rawlist($conn$folder);
 if(!empty(
$file_list))
  {
   foreach(
$file_list as $file)
    {
     list(
$acc$bloks$group$user$size$month$day$year$file) = preg_split("/[\s]+/"$file);
     if(
substr($acc01) != 'd')
      {
        echo 
"$acc$bloks$group$user$size$month$day$year$file";
      }
    }
  }
?>

А вот ваш вариант(переделанный цуть-цуть)

<?
$host 
"host";
//$port = "21"; - писать порт 21 необязательно писать - он стит по умолчанию(в книге написано =))
$user "login";
$pass "password";
$connect ftp_connect($host);
if(!
$connect) { echo "ошибка соединения"; }
$logon ftp_login($connect$user$pass);
if(!
$logon) { echo "ошибка регистрации"; }
$file_list ftp_nlist($connect"files/");
if(!empty(
$file_list))
 { 
  foreach(
$file_list as $file)
   {
    echo(
"$file <br>");
   }
 }
?>

Вроде должно работать =)

   
 
 автор: Zew   (04.11.2005 в 01:58)   письмо автору
 
   для: mistersmak   (04.11.2005 в 00:45)
 

//$port = "21"; - писать порт 21 необязательно писать - он стит по умолчанию(в книге написано =)
А у меня без него почему-то не коннектит... =( Пусть лучше висит, он вроде не мешает. ))
Вроде должно работать =)
Угу, должно бы... Но не работает... =(( По-моему что-то с этим foreach($file_list as $file) что-то не так - он всегда пустым оказывается.

   
 
 автор: mistersmak   (04.11.2005 в 02:05)   письмо автору
 
   для: Zew   (04.11.2005 в 01:58)
 

Самое интересное что именно с указание порта у меня ничего не пашет =)
А там у вас в указанной директории точно что-то есть? Может она пуста?
Скрипты которые я привел у меня работают оба.

   
 
 автор: Zew   (04.11.2005 в 10:57)   письмо автору
 
   для: mistersmak   (04.11.2005 в 02:05)
 

А там у вас в указанной директории точно что-то есть? Может она пуста?
Ну, если только я ее неправильно указываю, а вообще ни одна директория не читается, даже корневая... А никак по-другому массив нельзя вывести?..

   
 
 автор: Zew   (04.11.2005 в 11:49)   письмо автору
 
   для: mistersmak   (04.11.2005 в 02:05)
 

Мдя, видимо это у spaceweb какие-то проблемы - не работает даже скаченный с сайта этого форума FTPmanager. =(

   
 
 автор: Zew   (04.11.2005 в 13:06)   письмо автору
 
   для: Zew   (04.11.2005 в 01:58)
 

Тьфу, уже разобралась - оказывается, надо было пассивный режим отключить, спейсвеб с ним не работает... *_*

   
 
 автор: cheops   (04.11.2005 в 13:06)   письмо автору
 
   для: Zew   (03.11.2005 в 23:32)
 

Укажите вместо полного пути - текущую директорию "." - что-нибудь выводится?

   
 
 автор: Zew   (04.11.2005 в 13:50)   письмо автору
 
   для: cheops   (04.11.2005 в 13:06)
 

Не-а, не выводится. Точнее, не выводилось. Я уже приспособилась использовать opendir и readdir. ;) Сейчас осталось только найти, как размер файлов не в байтах, а в мегобайтах отобразить... *_*

   
 
 автор: cheops   (04.11.2005 в 17:10)   письмо автору
 
   для: Zew   (04.11.2005 в 13:50)
 

> Сейчас
>осталось только найти, как размер файлов не в байтах, а в
>мегобайтах отобразить... *_*
Так разделите на 1024*1024...
<?php
echo getfilesize('имя_файла');
// функция определения размера файла
function getfilesize($filename)
{
  
// Проверяем существует ли файл
  
if(!file_exists($filename)) return "файл не существует";
  
// определяем размер файла
  
$filesize filesize($filename);
  
// Если размер файл превышает 1024 байта
  // пересчитываем размер в Кб
  
if($filesize 1024)
  {
    
$filesize = (float)($filesize/1024);
    
// Если размер файл превышает 1024 Кбайта
    // пересчитываем размер в Мбайты
    
if($filesize 1024)
    {
      
$filesize = (float)($filesize/1024);
      
// Округляем дробную часть до
      // первого знака после запятой
      
$filesize round($filesize1);
      return 
$filesize." Мб";
    }
    else
    {
      
// Округляем дробную часть до
      // первого знака после запятой
      
$filesize round($filesize1);
      return 
$filesize." Кб";
    }
  }
  else
  {
    return 
$filesize." байт";
  }
}
?>

   
 
 автор: Zew   (05.11.2005 в 14:36)   письмо автору
 
   для: cheops   (04.11.2005 в 17:10)
 

Пасибочки, очень полезная функция. =)

   
Rambler's Top100
вверх

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