|
|
XXXIII. FTP functiesIntroductie
De functies in deze extensie maken client toegang naar bestands
servers die File Transfer Protocol (FTP) begrijpen zoals die gedefineerd
is in mogelijk.
AfhankelijkhedenDeze functies zijn beschikbaar als onderdeel van
de standarad module die altijd beschikbaar is. Installatie
Om FTP functies te kunnen gebruiken met je PHP configuratie, moet
je de --enable-ftp optie toevoegen
als je PHP 4 instaleert, en --with-ftp
als je PHP 3 gebruikt.
Deze functies worden automatisch ingebouwd in de
windows versie van PHP. Er zijn geen extra handelingen nodig om deze
functies te gebruiken. Configuratie tijdens scriptuitvoerDeze extensie gebruikt geen configuratie regels. Resource types
Deze extensie gebruikt ��n bron-type, die de link-identificator van de
ftp-verbinding is, die je terug krijgt van ftp_connect().
Voorgedefineerde constanten
Deze constanten worden gedefineerd door deze extensie, en
zullen alleen beschikbaar zijn als de extensie met PHP is
meegecompileerd, of als deze dynamisch is geladen vanuit een script.
De volgende constanten zijn ge�ntroduceerd in PHP 4.3.0.
- FTP_AUTOSEEK
(integer)
Zie ftp_set_option() voor informatie.
- FTP_AUTORESUME
(integer)
Detecteert automatisch resume posities en start posities voor GET en PUT aanvragen
(werkt alleen als FTP_AUTOSEEK aan staat)
- FTP_FAILED
(integer)
Asynchronous overdracht is gefaald
- FTP_FINISHED
(integer)
Asynchronous overdracht is voltooid
- FTP_MOREDATA
(integer)
Asynchronous overdracht is nogsteeds actief
Voorbeelden
Voorbeeld 1. FTP voorbeeld <?php
// maak een basis connectie aan
$conn_id = ftp_connect($ftp_server);
// meldt je aan met een gebruikersnaam en wachtwoord
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// controleer de verbinding
if ((!$conn_id) || (!$login_result)) {
echo "FTP connectie is mislukt!";
echo "Probeerde naar $ftp_server te verbinden met de gebruiker $ftp_user_name";
exit;
} else {
echo "Verbonden met $ftp_server, als gebruiker $ftp_user_name";
}
// upload een bestand
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// controleer de upload status
if (!$upload) {
echo "FTP upload is mislukt!";
} else {
echo "Geupload: $source_file naar $ftp_server als $destination_file";
}
// sluit de FTP stream
ftp_close($conn_id);
?> |
|
- Inhoudsopgave
- ftp_cdup -- Verandert de folder naar een folder hoger
- ftp_chdir -- Verandert de folder op een FTP server
- ftp_chmod -- Zet de rechten van een bestand via FTP
- ftp_close -- Sluit een FTP verbinding
- ftp_connect -- Opent een FTP verbinding
- ftp_delete -- Verwijdert een bestand op een FTP server
- ftp_exec -- Vraagt het uitvoeren van een programma aan de FTP server aan
- ftp_fget -- Download een bestand van de FTP server en slaat hem op naar een open bestands pointer
- ftp_fput -- Upload van een open bestands pointer naar de FTP server
- ftp_get_option -- Haalt verschillende data op van de huidige FTP stream
- ftp_get -- Download een bestand van de FTP server
- ftp_login -- Logt in op een FTP verbinding
- ftp_mdtm -- Haalt de laatste wijzig tijd op van het aangegeven bestand
- ftp_mkdir -- Maakt een folder aan
- ftp_nb_continue -- Vervolgt het zenden/ontvangen van een bestand (non-blocking)
- ftp_nb_fget -- Ontvangt een bestand van de FTP server en schrijft het naar een open bestand (non-blocking)
- ftp_nb_fput -- Schrijft een bestand van een open bestands pointer naar de FTP server (non-blocking)
- ftp_nb_get -- Ontvangt een bestand van de FTP server en schrijft het naar een lokaal bestand (non-blocking)
- ftp_nb_put -- Slaat een bestand op de FTP server op (non-blocking)
- ftp_nlist -- Geeft een lijst met bestanden terug van een folder
- ftp_pasv -- Zet de passieve modus aan of uit
- ftp_put -- Upload een bestand naar de FTP server
- ftp_pwd -- Geeft de huidige foldernaam terug
- ftp_quit -- Sluit een FTP verbinding
- ftp_raw -- Stuurt een willekeurig commando naar een FTP server
- ftp_rawlist -- Geeft een gedetaileerde lijst met bestanden in een folder terug
- ftp_rename -- Vernoemt een bestand op de FTP server
- ftp_rmdir -- Verwijdert een folder
- ftp_set_option -- Zet verschillende FTP opties
- ftp_site -- Stuurt een SITE commando naar de FTP server
- ftp_size -- Geeft de grootte van een bestand
- ftp_ssl_connect -- Opent een Beveiligde SSL-FTP verbinding
- ftp_systype -- Geeft het systeem type identificator terug van de FTP server
User Contributed Notes FTP functies |
add a note |
Paul Southworth
16-Mar-2000 09:27 |
|
If you are looking for a sketchy sample implementation of an FTP client
written in PHP, here is a free one:
|
|
sean at debugs dot org
26-Dec-2000 08:21 |
|
Be careful when using ftp_size; some ftp servers report different results
depending on whether you have issued a BINARY or ASCII command first.
This is a bit of a drag because there appears to be no way of issuing
either command with these functions. Instead you must specify the
desired transfer type with each ftp_get or ftp_put. Thus for some
servers you will get a different number of bytes actually transfered than
that reported by the ftp_size function....... Yuk....
|
|
sven at cartell-network dot de
13-Feb-2002 06:27 |
|
connection to a ftp server across proxy
$ftp_server =
"proxy"; f.e. 123.456.789.10 $ftp_user_name =
"username@ftpserver"; f.e.
[email protected] $ftp_user_pass =
"password";
$conn_id = ftp_connect($ftp_server,
2121); $login_result = ftp_login( $conn_id, $ftp_user_name,
$ftp_user_pass );
|
|
NOSPAMkent at ioflux dot NOSPAM dot com
20-Sep-2002 12:05 |
|
I think what some other posts were trying to say which may need
clarification is that in PHP 4.2.3, ftp_connect("myhost.com")
was failing most of the time, except it would work like every few
minutes.
The fix is that ftp_connect seems to have a bug resolving
addresses. If you do:
$hostip = gethostbyname($host); $conn_id =
ftp_connect($hostip);
It seems to solve the problem. (Other
users referred to an ftpbuf() error... not sure what that is, but this
should fix it.)
|
|
Marius at lowvoice dot nl
22-Oct-2002 09:51 |
|
if you need to download a file into a string instead of into a file try
this:
$temp = tmpfile();
$conn_id =
ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $user,
$pass);
$fget_result=ftp_fget($conn_id, $temp, $ftp_file_name,
FTP_ASCII); ftp_quit($conn_id);
rewind
($temp); $FILE_DATA=fread($temp,$size); fclose($temp);
you
could also do this with fopen() but I found that using this function will
keep the connection open even after a fclose()!! So repeating this many
times will cause a lot of open ftp-connections.
|
|
eric at evilwalrus dot com
11-Jan-2003 05:14 |
|
There is no FTP command for the CHMODing of files, so you really have to do
it manually using ftp_exec(). I havn't tried this myself but I'm assuming
it should work, but here is an example of what I would do.
//After
we have connected to the FTP server //and need to set the perms for a
file/dir, use //this command if (ftp_exec($ftp_conn, 'chmod 0666
logs/log.txt')) echo 'Successfully set permissions for logs/log.txt
to 0666'; else echo 'Failed to set permissions for
logs/log.txt';
Again, I have not tested this, but I assume it would
work. Hope that helps.
|
|
php dot net at thedrewerys dot com
08-Feb-2003 10:25 |
|
To chmod, you need to use ftp_site instead of ftp_exec.
In the
example above, ftp_exec($ftp_conn, 'chmod 0666 logs/log.txt')
should be ftp_site($ftp_conn, 'chmod 0666 logs/log.txt')
|
|
arjenjb dot wanadoo dot nl
09-Mar-2003 05:29 |
|
Check
for a FTP server written in PHP. Supports Passive and Active FTP, and
all other standard FTP commands as decribed in RFC959.
|
|
add a note |
| |