| 12
 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
 110
 111
 112
 113
 114
 115
 116
 117
 
 | <?xml version="1.0" encoding="iso-8859-1"?>
<!-- EN-Revision: 1.13 Maintainer: cortesi Status: ready -->
<!-- CREDITS: marco -->
 <chapter id="features.remote-files">
  <title>Utilizzo di file remoti</title>
  <para>
   Quando viene abilitato il supporto per l "URL fopen wrapper" durante
   la configurazione di PHP (avviene automaticamente a meno che si 
   specifichi espressamente il flag <option>--disable-url-fopen-wrapper</option> (per le versioni
   sino alla 4.0.3) oppure impostare  (per le nuove versioni)),
   si possono usare URL FTP e HTTP con la maggior parte delle funzioni che 
   richiedono nomi di file come parametri, incluse le funzioni 
   <function>require</function>
   e <function>include</function>.
  </para>
  <para>
   <note>
    <para>
     Non si possono usare i file remoti con <function>include</function> e
     <function>require</function> sotto Windows.
    </para>
   </note>
  </para>
  <para>
   Per esempio, si pu usare per aprire un file da un web server remoto,
   elaborare i dati presi da remoto, e usarli per effetuare delle query,
   o semplicemente visualizzarli con lo stile 
   del proprio sito web.
  </para>
  <para>
   <example>
    <title>Legere il titolo di una pagina web remota</title>
    <programlisting role="php">
<![CDATA[
<?php
$file = fopen ("http://www.php.net/", "r");
if (!$file) {
    echo "<p>Impossibile aprire il file remoto.\n";
    exit;
}
while (!feof ($file)) {
    $linea = fgets ($file, 1024);
    /* Funziona solo se title e i relativi tag sono sulla medesima riga */
    if (eregi ("<title>(.*)</title>", $linea, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>
]]>
    </programlisting>
   </example>
  </para>
  <para>
   Si può anche scrivere in un file remoto via FTP se l'utente con cui ci
   si connette ha le autorizzazioni necessarie, e il file non è già presente.
   Per connettersi con un utenti specifico si ha bisogno di specificare lo username
   (e la relativa password) dentro l'URL in questo modo:
   'ftp://user:password@ftp.test.com/dir/del/file'. (Si può usare lo stesso 
   tipo di sintassi per accedere a file via HTTP quando 
   richiedono autenticazione).
  </para>
  <para>
   <example>
    <title>Salvataggio di dati su server remoto</title>
    <programlisting role="php">
<![CDATA[
<?php
$file = fopen ("ftp://ftp.php.net/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Impossibile aprire il file remoto in scrittura.\n";
    exit;
}
/* Scrive i dati qui. */
fputs ($file, "$HTTP_USER_AGENT\n");
fclose ($file);
?>
]]>  
    </programlisting>
   </example>
  </para>
  <para>
   <note>
    <para>
    Dall'esempio precedente ci si può fare un'idea di come usare questa
    tecnica per effettuare dei log in remoto, ma come già accennato non è 
    possibile scrivere su file già esistenti con questo sitema. 
    Per fare una procedura di log distribuito è pi indicata la funzione 
    <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:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
 |