-
Notifications
You must be signed in to change notification settings - Fork 46
/
Copy pathfpassthru.xml
134 lines (123 loc) · 3.6 KB
/
fpassthru.xml
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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 98f2a733bc07e1c6d8fddb1d865b09fd79bdbea2 Maintainer: khp Status: ready -->
<!-- Reviewed: yes -->
<!-- Rev-Revision: 1.0 Reviewer: samesch -->
<refentry xml:id="function.fpassthru" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>fpassthru</refname>
<refpurpose>Gibt alle verbleibenden Daten eines Dateizeigers aus</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>fpassthru</methodname>
<methodparam><type>resource</type><parameter>stream</parameter></methodparam>
</methodsynopsis>
<para>
Die Funktion liest alle Daten von der aktuellen Position des Dateizeigers
bis EOF aus und schreibt die Daten in den Ausgabepuffer.
</para>
<para>
Eventuell muss <function>rewind</function> aufgerufen werden, um den
Dateizeiger auf den Beginn der Datei zurückzusetzen, wenn bereits Daten
in die Datei geschrieben wurden.
</para>
<para>
Wenn nur der Inhalt einer Datei in den Ausgabepuffer geschrieben werden
soll, ohne diese ändern bzw. an eine bestimmte Stelle zu gehen, sollte
besser <function>readfile</function> benutzt werden, bei der man sich den
Aufruf von <function>fopen</function> ersparen kann.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>stream</parameter></term>
<listitem>
&fs.validfp.all;
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Gibt die Anzahl der von <parameter>stream</parameter> gelesenen und zur
Ausgabe weitergeleiteten Zeichen zurück.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Nutzung von <function>fpassthru</function> mit binären Dateien</title>
<programlisting role="php">
<![CDATA[
<?php
// Öffne Datei im binären Modus
$name = './img/ok.png';
$fp = fopen($name, 'rb');
// Schicke passende Header
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
// Gib Bild aus und stoppe Skript
fpassthru($fp);
exit;
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Wenn Sie <function>fpassthru</function> auf eine binäre Datei unter
Windows anwenden, sollten Sie sicherstellen, dass die Datei
im Binärmodus geöffnet wurde, indem Sie ein <literal>b</literal> an
den Mode-Parameter von <function>fopen</function> anhängen.
</para>
<para>
Auch wenn es Ihr System nicht verlangt, sollten Sie bei Binärdateien das
Flag <literal>b</literal> verwenden, um die Portabilität Ihrer Skripte zu
erhöhen.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>readfile</function></member>
<member><function>fopen</function></member>
<member><function>popen</function></member>
<member><function>fsockopen</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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:"~/.phpdoc/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
-->