File: fpassthru.xml

package info (click to toggle)
php-doc 20241205~git.dfcbb86%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 70,956 kB
  • sloc: xml: 968,269; php: 23,883; javascript: 671; sh: 177; makefile: 37
file content (131 lines) | stat: -rw-r--r-- 3,411 bytes parent folder | download | duplicates (2)
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
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.fpassthru" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>fpassthru</refname>
  <refpurpose>Output all remaining data on a file pointer</refpurpose>
 </refnamediv>
 
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>int</type><methodname>fpassthru</methodname>
   <methodparam><type>resource</type><parameter>stream</parameter></methodparam>
  </methodsynopsis>
  <para>
   Reads to EOF on the given file pointer from the current position and
   writes the results to the output buffer.
  </para>
  <para>
   You may need to call <function>rewind</function> to reset the file
   pointer to the beginning of the file if you have already written data
   to the file.
  </para>
  <para>
   If you just want to dump the contents of a file to the output buffer,
   without first modifying it or seeking to a particular offset, you may
   want to use the <function>readfile</function>, which saves you
   the <function>fopen</function> call.
  </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>
   Returns the number of characters read from <parameter>stream</parameter>
   and passed through to the output.
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>Using <function>fpassthru</function> with binary files</title>
    <programlisting role="php">
<![CDATA[
<?php

// open the file in a binary mode
$name = './img/ok.png';
$fp = fopen($name, 'rb');

// send the right headers
header("Content-Type: image/png");
header("Content-Length: " . filesize($name));

// dump the picture and stop the script
fpassthru($fp);
exit;

?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>

 <refsect1 role="notes">
  &reftitle.notes;
  <note>
   <para>
    When using <function>fpassthru</function> on a binary file on Windows
    systems, you should make sure to open the file in binary mode by
    appending a <literal>b</literal> to the mode used in the call to
    <function>fopen</function>.
   </para>
   <para>
    You are encouraged to use the <literal>b</literal> flag when dealing
    with binary files, even if your system does not require it, so that
    your scripts will be more portable.
   </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
-->