Forum Webscript.Ru

Программирование => PHP => Тема начата: biblos от 25 Марта 2002, 02:15:27

Название: Помогите! ftp на php чере fopen
Отправлено: biblos от 25 Марта 2002, 02:15:27
Ребята, подскажыте где можна достать код работы с ftp под php3 и php4 без потдершки соотвественно --enable-ftp і --with-ftp  ?  Тоесть, реализовано при помоще fopen().

А может кто знает free хостинг , где php с потдершкой ftp, mysql ?
Название: FTP через fopen
Отправлено: Dm от 25 Марта 2002, 02:33:05
http://www.php.net/manual/en/function.fopen.php

If filename begins with "ftp://" (not case sensitive), an ftp connection to the specified server is opened and a pointer to the requested file is returned. If the server does not support passive mode ftp, this will fail. You can open files for either reading or writing via ftp (but not both simultaneously).
Название: FTP через fopen
Отправлено: biblos от 25 Марта 2002, 04:31:06
Ето намек, что так я смогу делать upload ?

$ftp = @fopen("ftp://user:password@example.com/", "w");
fputs($ftp,  $somefile_content );
fclose($ftp);
Название: FTP через fopen
Отправлено: Dm от 25 Марта 2002, 05:47:25
это руководство к действию. только очень внимательно прочитай ман перед этим.
Название: FTP через fopen
Отправлено: biblos от 25 Марта 2002, 17:23:14
Можна более конкретно,
в манупле я не нажел ответа,

мне нужно сделать закачку бинарного файла по ftp. К сожелению, мой (точнее хостера) php без потдершки ftp .
Поетому нужен вариант, через fopen() или fsockopen().

Может кто-нить, встречался с етой проблемой,
знает где есть готовое решение, а то как-то учить спецификацию ftp  неохота.

В свое время зделал глупость, разробативая анонимайзер, долго мучился над функцией перидачи post, cookie, HTTP Basic authentication, а потом через несколько недель после завершеия своих мук, случайно увидел класс Snoopy, где ето все било реализовано даже более удачно чем у меня ;)

как вспомню, так вздрогну - сколько времини мог секономить ;)
Название: FTP через fopen
Отправлено: Dm от 25 Марта 2002, 17:30:17
из мана:

$handle = fopen ($WebFile, "r");
$outhandle=fopen ($LocalFile,"w");
while (!feof($handle)) {
     $buffer=fread($handle,4096);
     fputs($outhandle,$buffer);
}
fclose($handle);
fclose($outhandle);
?>
Название: FTP через fopen
Отправлено: biblos от 25 Марта 2002, 19:25:27
хм, у меня в мануале етого примера нет, и код неработает.
У меня сложылось мнение, что fopen() не потдерживает upload файлов, или я неправ.

Во всяком случае вижу, что надо посмотреть на ftp specification.
Название: FTP через fopen
Отправлено: Dm от 25 Марта 2002, 19:35:13
вверху я уже писал ссылку.
поддерживает.

Цитировать
Во всяком случае вижу, что надо посмотреть на ftp specification.

в первую очередь
Название: FTP через fopen
Отправлено: biblos от 25 Марта 2002, 19:45:32
Цитировать
в первую очередь

:)

ето, удивительно. вроде бы задачка проще простого, а сколько не ищу решения, немогу найти. Все классы в сети, которые я встречал, используют php FTP extantions

Цитировать
In order to use FTP functions with your PHP configuration, you should add the --enable-ftp option when installing PHP 4, and --with-ftp when using PHP 3.


а вот етого у меня как раз нет.
Название: FTP через fopen
Отправлено: ThE0ReTiC от 25 Марта 2002, 19:55:13
Да не нужно тебе это расширение.
Только поправка к примеру Dm

$handle = fopen ($WebFile, "rb");
$outhandle=fopen ($LocalFile,"wb");
while (!feof($handle)) {
     $buffer=fread($handle,4096);
     fputs($outhandle,$buffer);
}
fclose($handle);
fclose($outhandle);
?>

Для бинарников надо ставить индекс b. Особенно если работаешь в винде, а иначе тебе винегрет придет.
Название: FTP через fopen
Отправлено: Dm от 25 Марта 2002, 20:07:08
Цитировать
Для бинарников надо ставить индекс b. Особенно если работаешь в винде, а иначе тебе винегрет придет.

вот это точно. кроме винегрета в результате ничего не будет.
Название: FTP через fopen
Отправлено: biblos от 25 Марта 2002, 20:30:39
Ребята, неверно.
Ето работает когда надо стянуть файл с ftp,
а мне наоборот залить на ftp (upload).

Я вроде надел решение своей проблемы,
ftp cкласс через fsockopen().
Если кому интересно

http://biblos.com.ua/lib/?ftp-class.txt