Utilisation des fichiers � distance

Aussi longtemps que le support des gestionnaires d'URL ("URL fopen wrapper") est activ� dans le php.ini, avec l'option allow_url_fopen, vous pouvez utiliser des URL (HTTP et FTP) avec la majorit� des fonctions qui utilisent un nom de fichier comme param�tre. Cela inclut notamment include(), include_once(), require() et require_once() (depuis PHP 5.2.0,allow_url_include doit �tre actif pour les utiliser). Reportez-vous � Liste des protocoles support�s pour plus d'informations sur les protocoles support�s par PHP.

Note: En PHP 4.0.3 et plus r�cent, pour pouvoir utiliser les gestionnaires d'URL, vous devez configurer PHP avec l'option --enable-url-fopen-wrapper.

Note: Les versions de PHP pour Windows plus anciennes que 4.3 de supportaient pas les gestionnaires d'URL avec les fonctions suivantes : include(), include_once(), require(), require_once(), et les fonctions de cr�ation d'images de l'extension Fonctions GD et images.

Par exemple, vous pouvez suivre l'exemple suivant pour ouvrir un fichier sur un serveur web distant, analyser les r�sultats pour extraire les informations dont vous avez besoin, et ensuite l'utiliser dans une requ�te de base de donn�es, ou simplement �diter les informations dans le style de votre site.

Exemple #1 Conna�tre le titre d'une page distante

<?php
$file 
fopen ("http://www.example.com/""r");
if (!
$file) {
  echo 
"<p>Impossible de lire la page.\n";
  exit;
}
while (!
feof ($file)) {
    
$line fgets ($file1024);
    
/* Cela ne fonctionne que si les balises Title sont correctement utilis�es */
    
if (preg_match ("@\<title\>(.*)\</title\>@i"$line$out)) {
        
$title $out[1];
        break;
    }
}
fclose($file);
?>

Vous pouvez aussi �crire des fichiers sur un serveur FTP aussi longtemps que vous �tes connect� avec un utilisateur ayant les bons droits d'acc�s, alors que le fichier n'existait pas encore.

Pour vous connecter avec un utilisateur autre qu'anonyme, vous devez sp�cifier un nom d'utilisateur (et certainement le mot de passe) dans l'URL, comme ftp://user:[email protected]/path/to/file. (Vous pouvez utiliser le m�me type de syntaxe pour acc�der aux fichiers via HTTP lorsqu'ils n�cessitent une identification simple).

Exemple #2 Stocker des donn�es sur un serveur distant

<?php
$file 
fopen ("ftp://ftp.example.com/incoming/outputfile""w");
if (!
$file) {
  echo 
"<p>Impossible d'ouvrir le fichier distant pour �criture.\n";
  exit;
}
/* Ecriture des donn�es. */
fputs ($file$_SERVER['HTTP_USER_AGENT'] . "\n");
fclose ($file);
?>

Note: Remarque : vous pouvez avoir l'id�e, � partir de l'exemple ci-dessus, d'utiliser la m�me technique pour �crire sur un log distant, mais comme mentionn� ci-dessus vous ne pouvez qu'�crire sur un nouveau fichier en utilisant les fonctions fopen() avec une URL. Pour faire des log distribu�s, nous vous conseillons de regarder la partie syslog().