File: remote-files.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (110 lines) | stat: -rw-r--r-- 3,543 bytes parent folder | download
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
110
<?xml version="1.0" encoding="iso-8859-1"?>
 <chapter id="features.remote-files">
  <title>Zugriff auf entfernte Dateien</title>

  <para>
   Wenn die Untersttzung fr den &quot;URL fopen wrapper&quot; bei der
   Konfiguration von PHP vorhanden ist (welche standardmig eingestellt ist, es sei denn,
   die Option <option>--disable-url-fopen-wrapper</option> wurde bei der Installation verwendet (Versionen 
   bis 4.0.3) oder der Parameter <parameter>allow_url_fopen</parameter> in der php.ini 
   deaktiviert wurde (neuere Versionen),
   knnen HTTP und FTP URLs bei den meisten Funktionen verwendet werden, die einen
   Dateinamen als Parameter bentigen, inklusive <function>require</function>
   und <function>include</function> Anweisungen.
  </para>
  <para>
   <note>
    <para>
     remote files funktionieren nicht mit <function>include</function> und
     <function>require</function> Anweisungen unter Windows.
    </para>
   </note>
  </para>
  <para>
   Beispielsweise kann eine Datei auf einem anderen Webserver geffnet und verarbeitet werden. 
   Diese Daten knnen zur Abfrage einer Datenbank benutzt werden oder passend zum Rest der eigenen 
   Website ausgegeben werden.
  </para>
  <para>
   <example>
    <title>Den Titel einer entfernten Seite auslesen</title>
    <programlisting role="php">
<![CDATA[
<?php
$file = fopen ("http://www.php.net/", "r");
if (!$file) {
    echo "<p>Datei konnte nicht ge&uuml;ffnet werden.\n";
    exit;
}
while (!feof ($file)) {
    $line = fgets ($file, 1024);
    /* Funktioniert nur, wenn Titel und title-Tags in einer Zeile stehen */
    if (eregi ("<title>(.*)</title>", $line, $out)) {
        $title = $out[1];
        break;
    }
}
fclose($file);
?>
]]>
    </programlisting>
   </example>
  </para>
  <para>
   Auch eine Datei auf einem FTP-Server kann geschrieben werden, solange man sich ber 
   einen Benutzer mit entsprechenden Zugriffsrechten verbindet und die Datei noch nicht existiert.
   Um sich mit einem anderen Benutzer als 'anonymous' zu verbinden mu ein
   username (und mglichst ein Passwort) innerhalb der URL angegeben werden, wie z.B.
   'ftp://user:password@ftp.example.com/pfad/zur/datei'. (Die selbe Syntax 
   kann verwendet werden, um auf Daten via HTTP zuzugreifen, wenn diese eine Basic
   Authentication bentigen.)
  </para>
  <para>
   <example>
    <title>Daten auf einen entfernten Server speichern</title>
    <programlisting role="php">
<![CDATA[
<?php
$file = fopen ("ftp://ftp.php.net/incoming/outputfile", "w");
if (!$file) {
    echo "<p>Datei konnte zum schreiben nicht ge&ouml;ffnet werden.\n";
    exit;
}
/* Schreibe die Daten hier hin. */
fputs ($file, "$HTTP_USER_AGENT\n");
fclose ($file);
?>
]]>  
    </programlisting>
   </example>
  </para>
  <para>
   <note>
    <para>
     Obiges Beispiel knnte dazu verleiten, dieses Verfahren zu benutzen, um in ein 'remote log-file' 
     zu schreiben. Wie oben erwhnt kann man jedoch ausschlielich neue Dateien anlegen, 
     wenn man URL fopen() wrapper benutzt. Fr 'distributed logging' sollte man sich die Funktion 
     <function>syslog</function> anschauen.
    </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:
-->