-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathfpassthru.xml
132 lines (121 loc) · 3.82 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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 98f2a733bc07e1c6d8fddb1d865b09fd79bdbea2 Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->
<refentry xml:id="function.fpassthru" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>fpassthru</refname>
<refpurpose>ファイルポインタ上に残っているすべてのデータを出力する</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>fpassthru</methodname>
<methodparam><type>resource</type><parameter>stream</parameter></methodparam>
</methodsynopsis>
<para>
与えられたファイルポインタを EOF まで読み、結果を出力バッファに書き出します。
</para>
<para>
ファイルに既にデータを書き終えている場合で
ファイルポインタをファイルの先頭にリセットするには
<function>rewind</function> をコールする必要があります。
</para>
<para>
ファイルを更新したり特定のオフセットを探すのではなく
内容を出力バッファにダンプしたいだけの場合、
<function>readfile</function> を使用することが可能です。
この場合、<function>fopen</function> コールは必要ありません。
</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>
<function>fpassthru</function> は <parameter>stream</parameter>
から読み込み、出力に渡した文字数を返します。
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>バイナリファイルに対する <function>fpassthru</function> の使用例</title>
<programlisting role="php">
<![CDATA[
<?php
// バイナリモードでファイルをオープンする
$name = './img/ok.png';
$fp = fopen($name, 'rb');
// 正しいヘッダを送出する
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));
// 画像をダンプしスクリプトを終了する
fpassthru($fp);
exit;
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
<function>fpassthru</function> を Windows システムのバイナリファイルで
使用する場合、<function>fopen</function> をコールする際に
モードに <literal>b</literal> を追加してバイナリモードでファイルを
オープンするようにしてください。
</para>
<para>
バイナリファイルを扱う場合は、必要でなくても
<literal>b</literal> フラグを使用するようにしましょう。
それにより、スクリプトの可搬性がより高くなります。
</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
-->