1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.8 $ -->
<chapter id="features.remote-files">
<title>Utilisation des fichiers à distance</title>
<para>
Aussi longtemps que le support de la fonction d'ouverture
générique de fichiers ("URL fopen wrapper")
est actif lorsque vous configurez PHP (il est inutile de
passer explicitement l'option
<link linkend="install.configure.disable-url-fopen-wrapper">--disable-url-fopen-wrapper</link>
pour faire la configuration), vous pouvez utiliser des URLs
(HTTP et FTP) avec la majorité des fonctions qui utilisent un
nom de fichier comme paramètre, ceci incluant les expressions
<function>require</function> et <function>include</function>.
<note>
<para>
Vous ne pouvez pas utiliser les fichiers distants dans les expressions
<function>include</function> et <function>require</function> sous Windows.
</para>
</note>
</para>
<para>
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.
</para>
<para>
<example>
<title>Connaître le titre d'une page distante</title>
<programlisting role="php">
<?php
$file = fopen("http://www.php.net/", "r");
if (!$file) {
echo "<p>Impossible d'ouvrir le fichier distant.\n";
exit;
}
while (!feof($file)) {
$line = fgets($file, 1024);
/* Cela ne fonctionne que si le titre est écrit sur une ligne.*/
if (eregi("<title>(.*)</title>", $line, $out)) {
$title = $out[1];
break;
}
}
fclose($file);
?>
</programlisting>
</example>
</para>
<para>
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 par exemple 'ftp://user:password@ftp.example.com/path/to/file'.
(Vous pouvez utiliser le même type de syntaxe pour accéder
aux fichiers via <acronym>HTTP</acronym> lorsqu'ils nécessitent une
authentification basique).
</para>
<para>
<example>
<title>Stocker des données sur un serveur distant</title>
<programlisting role="php">
<?php
$file = fopen("ftp://ftp.php.net/incoming/outputfile", "w");
if (!$file) {
echo "<p>Impossible d'ouvrir un fichier distant en écriture.\n";
exit;
}
/* Ecriture des données. */
fputs($file, "$HTTP_USER_AGENT\n");
fclose($file);
?>
</programlisting>
</example>
<note>
<para>
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 <function>fopen</function> avec une URL. Pour faire des log
distribués, nous vous conseillons de regarder la partie
<function>syslog</function>.
</para>
</note>
</para>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
|