Document says "Allows read access to existing files and creation of new files via FTP. If the server does not support passive mode ftp, the connection will fail. "
As of version 5.2.5 at least fopen("ftp://...") uses an ACTIVE mode connection by default (it issues an FTP PORT command but not a PASV command). To force passive mode:
$f = fopen("ftp://...");
ftp_pasv($f, true);
FTP et FTPS
PHP 4, PHP 5, PHP 6. ftps:// depuis PHP 4.3
- ftp://example.com/pub/file.txt
- ftp://user:motdepasse@example.com/pub/file.txt
- ftps://example.com/pub/file.txt
- ftps://user:motdepasse@example.com/pub/file.txt
Permet l'accès aux fichiers existants, et la création de fichiers via FTP. Si le serveur ne supporte pas les connexions en mode passif, la connexion échouera.
Vous pouvez ouvrir des fichiers en lecture et en écriture, mais pas les deux en même temps. Si le fichier distant existe déjà sur le serveur ftp et que vous tentez de l'ouvrir en écriture alors que vous n'avez pas spécifié l'option overwrite dans le contexte, la connexion échouera. Si vous devez réécrire des fichiers existants en utilisant ftp, spécifiez l'option overwrite dans le contexte et ouvrez le fichier en écriture. Alternativement, vous pouvez utiliser l'extension FTP.
Note: Apposer Depuis PHP 5.0.0, les fichiers doivent être apposés via la gestion d'URL ftp://. Dans les versions plus anciennes, tenter d'apposer un fichier via ftp:// causera une erreur.
ftps:// a été introduit en PHP 4.3. C'est le même que ftp://, mais il tente d'établir une connexion sécurisée avec le serveur FTP. Si le serveur ne le supporte pas, la connexion sera une connexion non sécurisée.
Note: FTPS est supporté depuis PHP 4.3.0, si vous avez compilé le support d'OpenSSL.
| Attribut | PHP 4 | PHP 5 |
|---|---|---|
| Limité par allow_url_fopen | Oui | Oui |
| Autorisé en lecture | Oui | Oui |
| Autorisé en écriture | Oui (nouveaux fichiers uniquement) | Oui (nouveaux fichiers et fichiers existants avec overwrite ) |
| Autorisé en ajout | Non | Oui |
| Autorisé en lecture et écriture | Non | Non |
| Supporte stat() | Non | Depuis PHP 5.0.0 : uniquement filesize(), filetype(), file_exists(), is_file() et is_dir(). Depuis PHP 5.1.0 : filemtime(). |
| Supporte unlink() | Non | Oui |
| Supporte rename() | Non | Oui |
| Supporte mkdir() | Non | Oui |
| Supporte rmdir() | Non | Oui |
FTP et FTPS
25-Apr-2008 10:41
09-Oct-2006 06:32
old fashioned FTP servers may not be compatible with ftp_connect().
<?
$str ="replace all contenents";
$filew="ftp://gufo:gufo@192.168.1.55:21/jj.php";
$opts = array('ftp' => array('overwrite' => true));
$context = stream_context_create($opts);
$strwri = file_put_contents($filew,$str,LOCK_EX,$context);
?>
04-Jul-2004 09:39
For Intranet purposes I found I preferred to move my file via ftp functions to match the session user's ftp account and put the file in a holding bay so I knew who it was from.
The FTP wrapper method will NOT do this if your ftp server does NOT support passive mode.
eg. an ftp server behind NAT/routing
