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

Форум PHP

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

 

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

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

тема: Работа с протоколом FTP через php

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

 
 автор: Hitro   (13.08.2004 в 00:56)   письмо автору
 
   для: cheops   (12.08.2004 в 22:09)
 

Я тестю скрипты на своем сервере
Все я уже сделал :)

   
 
 автор: cheops   (12.08.2004 в 22:09)   письмо автору
 
   для: Hitro   (12.08.2004 в 19:13)
 

Скорее всего 21 порт открыт (по нему передаются команды), а 20 (или какой там... уж не помню) через которые идут данные закрыт :( - старые штучки, либо админы не знают о втором порте, либо специально закрыли чтобы ушлые пользователи лишнюю сетевую активность не производили...

   
 
 автор: Hitro   (12.08.2004 в 19:13)   письмо автору
 
   для: cheops   (12.08.2004 в 00:37)
 

Вобще не работает
я даже пробывал команду для загрузки с сервера фпт тоже не пашет а команда на удаление работает а на загрузку и закачку не пашут :(
блин !

   
 
 автор: cheops   (12.08.2004 в 00:37)   письмо автору
 
   для: Hitro   (12.08.2004 в 00:12)
 

А что возвращаяет? FTP_FINISHED?

   
 
 автор: Hitro   (12.08.2004 в 00:12)   письмо автору
 
   для: cheops   (11.08.2004 в 22:44)
 

что то все равно не робит команда
ftp_nb_put

   
 
 автор: cheops   (11.08.2004 в 22:44)   письмо автору
 
   для: cheops   (11.08.2004 в 22:36)
 

Хотя если новые данные только в конце и известно начиная с какого байта изменения, то можно загружать данные начиная с n-й позиции, передавая позицию (в байтах от начала файла) с которой следует загружать файл, в пятом необязательном параметре функции ftp_nb_put()
<?php
$ret 
ftp_nb_put($link,
    
"/SAVE/sphereacct.scp",
    
"sphereacct.scp",
     
FTP_BINARY
     4567
); // Передаём данные с 4567 байта (в файле допустим 6230 байт)
?>

   
 
 автор: Hitro   (11.08.2004 в 22:39)   письмо автору
 
   для: cheops   (11.08.2004 в 22:36)
 

Блин как же я не подумал о функции перекидывания файла )
Сенк

   
 
 автор: cheops   (11.08.2004 в 22:36)   письмо автору
 
   для: Hitro   (11.08.2004 в 21:56)
 

Вообще FTP – очень древний протокол – ему скоро 40 лет, в те далёкие времена люди думали только, как бы файл получить или передать, а не дописывать на чужом хосте. Но можно держать актуальную версию файла sphereacct.scp на хосте где расположен reg.php – работать с файлом – дописывать в него что-то и при необходимости каждый раз его перебрасывать по FTP на соседний хост.
Схема действия должна быть примерно следующая:
1) Соединяемся с FTP-сервером и регистрируемся на нём:
<?php
  
// Небольшая вспомогательная функция, которая выводит сообщение об ошибке
  // в окно браузера
  
function puterror($message)
  {
    echo 
"<center><p class=help>$message</p>";
    exit();
  }
  
// Адрес FTP-сервера
  
$ftp_server "2003.uran.ru";
  
// Пользователь
  
$ftp_user " Hitro";
  
// Пароль
  
$ftp_password "password";
  
// Пытаемся установить соединение с FTP-сервером 
  
$link ftp_connect($ftp_server); 
  if(!
$linkputerror("К сожалению, не удаётся установить соединение с FTP-сервером $ftp_server");
  
// Осуществляем регистрацию на сервере
  
$login ftp_login($link$ftp_user$ftp_password);
  
// Определяем тип операционной системы сервера
  // предоставляющего услуги FTP
  
$type ftp_systype($link);
  
// Если операционная система отличается от UNIX
  // прекращаем дальнейшую работу
  
if($type != "UNIX"puterror("К сожалению, на
      удалённом сервере операционная система не
      совеместимая с UNIX"
);
?>


2) Перекидываем файл sphereacct.scp на соседний хост
<?php
  $ret 
ftp_nb_put($link"/SAVE/sphereacct.scp""sphereacct.scp"FTP_BINARY);
  while (
$ret == FTP_MOREDATA)
  {
    
// Выводим точки что-бы пользователь
    // знал что процесс идёт
    
echo ".";
    
// Продолжаем загрузку
    
$ret ftp_nb_continue($link);
  }
  if (
$ret != FTP_FINISHED)
  {
    echo 
"<br>Во время загрузки файла произошла ошибка...";
    exit();
  }
?>

   
 
 автор: Hitro   (11.08.2004 в 21:56)   письмо автору
 
 

у меня проблема:
Можно ли как нить сделать.. например файл reg.php лежит на хосте и надо через фтп законектиться к другому серверу ftp://2003.uran.ru/ и в файл sphereacct.scp
дописывать инфу
вот путь ftp://2003.uran.ru/SAVE/sphereacct.scp
как так сделать что бы с одного хоста при активации скрипта он писал на другой хост ?

   

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

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

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