За последние 24 часа нас посетили 19336 программистов и 1605 роботов. Сейчас ищут 875 программистов ...

Поиск по FTP

Тема в разделе "PHP для новичков", создана пользователем s909, 2 июн 2009.

  1. s909

    s909 Активный пользователь

    С нами с:
    14 мар 2009
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте у меня такой вопрос, можно ли как-нибудь организовать поиск по локальной сети на ФТП, я хочу написать скрипт, который мог бы считать все данные с FTP сервера (каталоги, файлы) и вывел бы нужные (запрошенные в поле поиска) в браузере (упорядочено), Можно ли такое осуществить и как если можно?
     
  2. lexinfo

    lexinfo Активный пользователь

    С нами с:
    16 янв 2007
    Сообщения:
    51
    Симпатии:
    0
    Адрес:
    Ростов-на-Дону
    PHP:
    1. <?php
    2.  
    3. // установка соединения
    4. $conn_id = ftp_connect($ftp_server);
    5.  
    6. // проверка имени пользователя и пароля
    7. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    8.  
    9. // получение списка файлов директори /
    10. $buff = ftp_rawlist($conn_id, '/');
    11.  
    12. // закрытие соединения
    13. ftp_close($conn_id);
    14.  
    15. // вывод буфера
    16. var_dump($buff);
    17. ?>
    Это выводит лист файлов.

    тока так у тебюя ничего не получился. Ты прикинь сколько тебе понадобится времени чтоб весь сервер прошерстить. Обычно индексируют ФТП сервер и все пути и файлы записывают в локальную базу для быстрого поиска. Сам поиск будет выводить ссылки на ФТП, но из твоей базы. Индексируй пару раз в день.
     
  3. nOobCrafter

    nOobCrafter Активный пользователь

    С нами с:
    28 май 2009
    Сообщения:
    11
    Симпатии:
    0
    месяц назад была та же задача:
    PHP:
    1. <?php
    2. $toXML = "";
    3.  
    4. $startdirname = "E:/Films1";  // откуда берем
    5. $rep = "E:/";                        // эта часть имени папки отрезается
    6. $linkname = "ftp://192.168.0.129";                 // указываем откуда брать при генерировании ссылки
    7. recopendir($startdirname);
    8.  
    9. writeXML('forSite.xml', $toXML);
    10.  
    11. function toUTF($str)
    12. {
    13.      $str=iconv("cp1251", "utf-8//IGNORE", $str);
    14.      return $str;
    15. }
    16.  
    17. function recopendir($dirname)
    18. {
    19.      if($dir=opendir($dirname))
    20.      {
    21.         global $rep;
    22.         global $linkname;
    23.         global $toXML;
    24.         $folder = str_replace($rep, "", $dirname);
    25.  
    26.         $toXML .= "<folder name = \"".$folder."\" >";
    27.         while ($file=readdir($dir))
    28.         {
    29.             if (eregi(".avi$|.mkv$|.vob$",$file))
    30.             $toXML .= "<item film = \"".$file."\"
    31.                        link = \"".toUTF($linkname."/".$folder."/".$file)."\" />";
    32.             if (is_dir($dirname."/".$file) && ($file != ".") && ($file != ".."))    
    33.             recopendir($dirname."/".$file);
    34.         }
    35.         closedir($dir);
    36.         $toXML .= "</folder>";
    37.      }
    38. }
    39.  
    40. function writeXML($filename, $xml)
    41. {
    42.     $xmlStart = '<?xml version="1.0" encoding="utf-8"?><items>';
    43.     $xmlEnd = "</items>";
    44.  
    45.     $toX = $xmlStart.$xml.$xmlEnd;
    46.  
    47.      file_put_contents($myfile, $toX);
    48. }
    49. ?>