Características
PHP Manual

Usando archivos remotos

Siempre que allow_url_fopen este habilitado en php.ini, se pueden usar URLs HTTP y FTP con la mayoría de las funciones que toman un nombre de archivo como parámetro. Además, las URLs pueden ser usadas con las declaraciones include, include_once, require y require_once (desde PHP 5.2.0, allow_url_include debe ser habilitado para esto). Ver Protocolos y Envolturas soportados para más información de los protocolos soportados por PHP.

Nota:

En PHP 4.0.3 y anteriores, con el fin de usar capas de URL, se requirió de configurar PHP usando la opción de configuración --enable-url-fopen-wrapper .

Nota:

Las versiones Windows de PHP más nuevas a la PHP 4.3 no soportan acceso remoto a los archivos por las siguientes funciones: include, include_once, require, require_once, y las funciones imagecreatefromXXX en la extensión Funciones de GD e Imágenes

Por ejemplo, se puede usar esto para abrir un archivo en un web server remoto, analizar la salida de los datos que se quieren, y entonces usar esos datos en una consulta a la base de datos, o simplemente para mostrarlos en un estilo que coincida con el resto del sitio web.

Ejemplo #1 Obteniendo el titulo de una página remota

<?php
$file 
fopen ("http://www.example.com/""r");
if (!
$file) {
    echo 
"<p>Imposible abrir el archivo remoto.\n";
    exit;
}
while (!
feof ($file)) {
    
$line fgets ($file1024);
    
/* Esto solo trabaja si el titulo y sus tags estan en una línea */
    
if (preg_match ("@\<title\>(.*)\</title\>@i"$line$out)) {
        
$title $out[1];
        break;
    }
}
fclose($file);
?>

También se pueden escribir archivos en un servidor FTP (considerando que se esta conectado como un usuario con los permisos de acceso correctos). Se pueden crear únicamente archivos nuevos usando este método. Si se intenta sobreescribir un archivo que ya existe, la llamada a la función fopen() fallará.

Para conectarse como un usuario diferente a 'anonymous', se necesita especificar el usuario (y posiblemente el password) con la URL, tal como 'ftp://user:password@ftp.example.com/path/to/file'. (Se puede usar la misma sintaxis para accesar archivos vía HTTP cuando se requiere autenticación básica).

Ejemplo #2 Almacenando datos en un servidor remoto

<?php
$file 
fopen ("ftp://ftp.example.com/incoming/outputfile""w");
if (!
$file) {
    echo 
"<p>Imposible abrir el archivo remoto para escritura.\n";
    exit;
}
/* Escribir los datos aqui. */
fwrite ($file$_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Nota:

Se podría tener la idea del ejemplo anterior que se esta usando esta técnica para escribir un archivo de log remoto. Desafortunadamente esto no funcionaría porque la función fopen() llamada fallará si el archivo remoto ya existe. Para hacer logs distribuidos como ese, se debería dar un vistazo a syslog().


Características
PHP Manual