File: fread.xml

package info (click to toggle)
php-doc 20061001-1
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 45,764 kB
  • ctags: 1,611
  • sloc: xml: 502,485; php: 7,645; cpp: 500; makefile: 297; perl: 161; sh: 141; awk: 28
file content (141 lines) | stat: -rw-r--r-- 4,087 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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.21 $ -->
<!-- splitted from ./en/functions/filesystem.xml, last change in rev 1.25 -->
  <refentry id="function.fread">
   <refnamediv>
    <refname>fread</refname>
    <refpurpose>Binary-safe file read</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Description</title>
     <methodsynopsis>
      <type>string</type><methodname>fread</methodname>
      <methodparam><type>resource</type><parameter>handle</parameter></methodparam>
      <methodparam><type>int</type><parameter>length</parameter></methodparam>
     </methodsynopsis>
    <simpara>
     <function>fread</function> reads up to
     <parameter>length</parameter> bytes from the file pointer
     referenced by <parameter>handle</parameter>. Reading stops when up to
     <parameter>length</parameter> bytes have been read, EOF 
     (end of file) is reached, (for network streams) when a packet becomes
     available, or (after opening userspace stream) when 8192 bytes have been read
     whichever comes first. 
    </simpara> 
    <simpara>
     Returns the read string or &false; in case of error.
    </simpara>
    <para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
<?php
// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>
]]>
      </programlisting>
     </informalexample>
    </para>
    <warning>
     <para>
      On systems which differentiate between binary and text files 
      (i.e. Windows) the file must be opened with 'b' included in
      <function>fopen</function> mode parameter.
     </para>
    </warning>
    <para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
<?php
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
?>
]]>
      </programlisting>
     </informalexample>
    </para>

    <warning>
     <para>
      When reading from anything that is not a regular local file, such as
      streams returned when
      reading <link linkend="features.remote-files">remote files</link> or from
      <function>popen</function> and <function>fsockopen</function>, reading
      will stop after a packet is available.  This means that you should
      collect the data together in chunks as shown in the examples below.
     </para>
    </warning>
    <para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
<?php
// For PHP 5 and up
$handle = fopen("http://www.example.com/", "rb");
$contents = stream_get_contents($handle);
fclose($handle);
?>
]]>
      </programlisting>
     </informalexample>
    </para>
    <para>
     <informalexample>
      <programlisting role="php">
<![CDATA[
<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
  $contents .= fread($handle, 8192);
}
fclose($handle);
?>
]]>
      </programlisting>
     </informalexample>
    </para>
    <note>
     <para>
      If you just want to get the contents of a file into a string, use
      <function>file_get_contents</function> as it has much better performance
      than the code above.
     </para>
    </note>
    <simpara>
     See also <function>fwrite</function>, <function>fopen</function>,
     <function>fsockopen</function>, <function>popen</function>,
     <function>fgets</function>, <function>fgetss</function>,
     <function>fscanf</function>, <function>file</function>, and
     <function>fpassthru</function>.
    </simpara>
   </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:"../../../../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
-->