SunshinePHP Developer Conference 2015

ftp://

ftps://

ftp:// -- ftps://Acceso a URLs por FTP(s)

Descripción

Permite tanto lectura de ficheros existentes como la creación de nuevos ficheros vía FTP. La conexión fallará si el servidor no soporta FTP en modo pasivo.

Se puede tanto leer como escribir ficheros, pero no las dos cosas simultáneamente. Si el fichero remoto ya existiera en el servidor ftp, y se quisiera abrir en modo escritura sin especificar la opción de contexto overwrite, también fallará la conexión. Si fuera necesario sobrescribir un fichero ya existente en ftp, se tendrá que especificar la opción de contexto overwrite antes de abrir el fichero para su escritura. Alternativamente, puede usarse la extensión FTP.

Si se ha establecido la directiva from en php.ini, se enviará como contraseña para conexiones de FTP anónimo.

Uso

  • ftp://ejemplo.com/pub/fichero.txt
  • ftp://usuario:contraseña@example.com/pub/fichero.txt
  • ftps://ejemplo.com/pub/fichero.txt
  • ftps://usuario:contraseña@ejemplo.com/pub/fichero.txt

Opciones

Resumen de la Envoltura
Atributos PHP 4 PHP 5
Restringido por allow_url_fopen
Permite Lecturas
Permite Escrituras Sí (sólo en ficheros nuevos) Sí (ficheros nuevos. En los existentes con overwrite)
Permite Añadir contenidos No
Permite Lecturas y Escrituras Simultáneas No No
Permite usar la función stat() No Desde PHP 5.0.0: sólo los elementos filesize(), filetype(), file_exists(), is_file(), y is_dir(). Desde PHP 5.1.0: filemtime().
Permite usar la función unlink() No
Permite usar la función rename() No
Permite usar la función mkdir() No
Permite usar la función rmdir() No

Historial de cambios

Versión Descripción
4.3.0 Added ftps://.

Notas

Nota:

Hay soporte para FTPS desde PHP 4.3.0, siempre y cuando se haya compilado con soporte para openssl.

Si el servidor no soporta SSL, entonces la conexión se restablece a una conexión ftp regular sin encriptación.

Nota: Añadiendo contenido
Desde PHP 5.0.0 se puede añadir contenido a los ficheros mediante la envoltura de URL ftp://. Si se tratara de añadir contenido a un fichero con ftp:// en versiones anteriores, se provocaría un fallo.

add a note add a note

User Contributed Notes 3 notes

up
0
php at f00n dot com
10 years ago
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
up
-2
Anonymous
9 years ago
<?
$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);
?>
up
-3
fazil dot stormhammer dot nospam at gmail dot com
6 years ago
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);
To Top