Forum Webscript.Ru

Программирование => PHP => Тема начата: Vip от 08 Марта 2003, 12:28:30

Название: Как можно с помощью php скопировать файл с удалённого сервака? Не для ламаков :)
Отправлено: Vip от 08 Марта 2003, 12:28:30
Собственно сабж!
Как можно скопировать удалённый файл с помощью php на тот сервак где находится сам скрипт, соответственно при его исполнении. Такое возможно?
Название: Как можно с помощью php скопировать файл с удалённого сервака? Не для ламаков :)
Отправлено: Макс от 08 Марта 2003, 13:12:42
возможно. Читай:
http://www.php.net/file
http://www.php.net/fopen
http://www.php.net/fread
http://www.php.net/fsockopen
http://www.php.net/curl
http://www.php.net/sockets
http://pear.php.net/package-info.php?pacid=33
Название: Как можно с помощью php скопировать файл с удалённого сервака? Не для ламаков :)
Отправлено: Vip от 09 Марта 2003, 14:25:55
Ман это конечно хорошо, я его уже пытался читать но что то не вкупился.
file, fopen, fread вроде хорошо получается с текстовыми страницами и файлами работать. А мне если нужно zip, exe ...?
fsockopen, socets это через сокет а если мне нужно получить файл с фтп?
curl хм... это нужно почитать, но такой вариант может не прокатить вдруг эту библиотеку провайдер не поддерживает?
Название: Как можно с помощью php скопировать файл с удалённого сервака? Не для ламаков :)
Отправлено: ThE0ReTiC от 09 Марта 2003, 16:43:30
Цитировать

fsockopen, socets это через сокет а если мне нужно получить файл с фтп?

ага - это через модем делается...
Цитировать

но что то не вкупился.

неплохо бы вкупиться... иначе тебе уже ничто не поможет...

тебе Макс на все уже ответил.
Название: Как можно с помощью php скопировать файл с удалённого сервака? Не для ламаков :)
Отправлено: Макс от 09 Марта 2003, 18:17:13
Цитировать
а если мне нужно получить файл с фтп?

http://php.net/ftp :)
через сокеты с ftp можно работать также как и с http (где-то в сети даже классы были)

Цитировать
А мне если нужно zip, exe ...?


$a = fopen("php.exe", "rb");
$content = fread($a, 10000000);
fclose($a);
$b = fopen("php1.exe", "wb");
fputs($b, $content);
fclose($b);
?>
у меня все отлично работает. Работа с удаленными файлами отличаться не должна ИМХО
Название: Как можно с помощью php скопировать файл с удалённого сервака? Не для ламаков :)
Отправлено: Vip от 09 Марта 2003, 20:52:54
Цитировать
ага - это через модем делается...

Насмешил :). Это делается для того чтоб трафик с экономить и для сайта.
Цитировать
неплохо бы вкупиться... иначе тебе уже ничто не поможет...

спасибки Макс, вкупился .
Цитировать
через сокеты с ftp можно работать также как и с http

Буду иметь в виду.

Может кому понадобится, моё вкупление :)
Способом CURL
$url = "http://linux.tomsk.ru/powered_by_t.gif";
$file = basename($url);
$ch = curl_init ();
$fp = fopen ("test/$file", "w");
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_exec ($ch);
curl_close ($ch);
fclose ($fp);
Способом через FTP
$ftp_server = "linux.tomsk.ru";
$ftp_user = "anonymous";
$ftp_pass = "anonymous";
$file = "/pub/Linux/Web/cvsweb-1.93.tar.gz";
$connect = ftp_connect("$ftp_server");
$login = ftp_login($connect, "$ftp_user", "$ftp_pass");
$get = ftp_get($connect, "test/test.tar.gz", "$file", FTP_BINARY);
ftp_quit($connect);

А что быстрее работает curl или fopen?
И возможно с такой ссылки например скачать(каким нибудь из этих методов) host.ru/download.php?file=2 ?
Название: Как можно с помощью php скопировать файл с удалённого сервака? Не для ламаков :)
Отправлено: Макс от 09 Марта 2003, 22:18:06
Цитировать
А что быстрее работает curl или fopen?

1. Дык возьми и измерь (функции для измерения если сам не хочеш писать есть на php.spb.ru)
2. В данном случае ИМХО это не так важно, так как основная часть уйдет на получени файла из сети.

Цитировать
И возможно с такой ссылки например скачать(каким нибудь из этих методов) host.ru/download.php?file=2 ?
А что, первым методом скачать не получается ?