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

Форум MySQL

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

 

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

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

тема: ftp_fust_search_into_mysql

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

 
 автор: cheops   (01.08.2005 в 19:02)   письмо автору
 
   для: global_help   (01.08.2005 в 15:33)
 

>FTP-сканера еще нету в рунете
Я склоняюсь к версии, что его уже нету :))) Ведь зенит развития FTP был почти 15 лет назад, этот протокол до сих пор пользуется популярностью, но по сравнению с Web, это очень уж малая часть Интернет.

   
 
 автор: cheops   (01.08.2005 в 18:51)   письмо автору
 
   для: global_help   (01.08.2005 в 11:49)
 

Необходимо немного модифицировать сканер
<?php 
  
// Устанавливаем соединение с FTP-сервером 
  
require_once("config.php"); 
  
// Директория на сервере 
  // $dir = "/html/forum/"; 
  
$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($file01) == '.') continue; 
      
// Определяем является ли объект директорией 
      
if(substr($acc01) == 'd'
      { 
        
// Директория 
        
scan_ftp($link$dir.$file."/"); 
      } 
      
// Определяем является ли объект файлом 
      
if(substr($acc01) == '-'
      { 
        
// Файл 
        
$filename[$dir.$file]['name'] = $file
        
$filename[$dir.$file]['size'] = $size
        
$filename[$dir.$file]['month'] = $month
        
$filename[$dir.$file]['day'] = $day
        
$filename[$dir.$file]['year'] = $year
      } 
    } 
  } 
?>

Теперь глобальный массив $filename является двумерным, тогда код, формирующий многострочный SQL-запрос INSERT для вставки данных во вторую таблицу может вылядеть следующим образом
<?php
  $query 
"INSERT INTO tbl VALUES ";
  foreach(
$filename as $key => $file)
  {
    
$query .= "(NULL,
               'http://www.mysite.ru/"
.$key."',
               '"
.$file['size']."',
               'who',
               '"
.$file['year'].".".$file['month'].".".$file['year']."',1),";
  }
  
// Удаляем последнюю запятую в запросе
  
$query substr($query0strlen($query) - 1); 
  
// Выводим запрос - и смотрим нет ли в нём ошибок
  
echo $query."<br><br>";
  
// Выполняем запрос
  
if(!mysql_query($query))
  {
    exit(
mysql_error());
  }
?>

Перед выполнением, SQL-запрос следует вывести и посмотреть на предмет ошибок. Ну и вместо 1 подставить реальный внешний ключ для FTP-сервера из первой таблицы.

   
 
 автор: global_help   (01.08.2005 в 15:33)
 
   для: cheops   (01.08.2005 в 13:36)
 

Ну я думал, что можно выдрать. Допустим проиндексирован файл - test.exe, автор - тот кто залил на фтп этот файл, что-то вроде root
Ну раз нельзя, то так и быть будем без автора.
Ну так что помошь Ваша еще в силе?
FTP-сканера еще нету в рунете
--------------------------------------------
ПОЖАЛУЙСТА

   
 
 автор: cheops   (01.08.2005 в 13:36)   письмо автору
 
   для: global_help   (01.08.2005 в 11:49)
 

Так, а где мы автора (who) будем брать?

   
 
 автор: global_help   (01.08.2005 в 11:49)
 
 

http://www.softtime.ru/forum/answer.php?id_forum=1&id_theme=5823&id_post=34052
Спасибо пример очень довольно таки хороший.
Есть просьба(прошэние).
Стуртура 1 таблицы такова:
id - уникальный идентификатор
name - имя FTP_сервера
url (url)FTP_сервера
Структура 2 таблицы:
id - уникальный идентификатор
url - адресс какого либо файла, полученного при сканировании
mass - вес файла
who - автор (кто добавил файл)
dats - дата добавления
ftp_name - с какого FTP, взят файл(тоесть тут будет стоять id ftp_сервера с 1 таблицы).
Помогите организовать пожалуйста

   

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

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

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