Chapitre suivantIndex des CoursChapitre précedentChapitre 16

Utilisation des fichiers à distance

 

Aussi longtemps que le support pour un "URL fopen wrapper" est actif lorsque vous configurez PHP (il est inutile de passer explicitement le flag --disable-url-fopen-wrapper pour faire la configuration), vous pouvez utiliser les URLs HTTP et FTP avec la plupart des fonctions qui utilisent un nom de fichier comme paramètre, ceci inclue les expressions require() et include().

Remarque: Vous ne pouvez pas utiliser les fichiers distants dans les expressions include() et require() avec Windows.

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

Example 16-1. Avoir le titre du page distante

<?php 
$file = fopen("http://www.php.net/", "r"); 
if (!$file) { 
echo "<p>Unable to open remote file.\n"; 
exit; 
} 
while (!feof($file)) { 
$line = fgets($file, 1024); 
/* This only works if the title and its tags are on one line. */ 
if (eregi("<title>(.*)</title>", $line, $out)) { 
$title = $out[1]; 
break; 
} 
} 
fclose($file); 
?> 

Vous pouvez aussi écrire des fichiers sur un 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 user autre qu'un 'anonyme', vous devez spécifier un nom d'utilisateur (et certainement le mot de passe) avec un URL du type 'ftp://user:[email protected]/path/to/file'. (Vous pouvez utiliser le même type de syntaxe pour accéder à des fichiers via HTTP lorsqu'ils nécessitent une authentification basique.)

Example 19-2. Stocker des données sur un serveur distant

<?php 
$file = fopen("ftp://ftp.php.net/incoming/outputfile", "w"); 
if (!$file) { 
echo "<p>Unable to open remote file for writing.\n"; 
exit; 
} 
/* Write the data here. */ 
fputs($file, "$HTTP_USER_AGENT\n"); 
fclose($file); 
?> 

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 mentionner ci-dessus vous ne pouvez qu'écrire sur un nouveau fichier en utilisant les URL fopen() wrappers. Pour faire des log distribués, nous vous conseillons de regarder la partie syslog() .

 

Chapitre précedentIndex des CoursChapitre suivant

Révisé le :23-Jan-2008| ©2008 www.technologuepro.com