php-doc-en/reference/filesystem/functions/fgets.xml
Tomáš Fejfar 359f21684b fgets() can return false
As described in the docs "If there is no more data to read in the file
pointer, then false is returned."

Co-authored-by: Christoph M. Becker <cmbecker69@gmx.de>

Closes GH-425.
2021-01-28 12:41:51 +01:00

131 lines
3.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.fgets">
<refnamediv>
<refname>fgets</refname>
<refpurpose>Gets line from file pointer</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>false</type></type><methodname>fgets</methodname>
<methodparam><type>resource</type><parameter>handle</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>length</parameter></methodparam>
</methodsynopsis>
<para>
Gets a line from file pointer.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>handle</parameter></term>
<listitem>
&fs.validfp.all;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>length</parameter></term>
<listitem>
<para>
Reading ends when <parameter>length</parameter> - 1 bytes have been
read, or a newline (which is included in the return value), or an EOF
(whichever comes first). If no length is specified, it will keep
reading from the stream until it reaches the end of the line.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns a string of up to <parameter>length</parameter> - 1 bytes read from
the file pointed to by <parameter>handle</parameter>. If there is no more data
to read in the file pointer, then &false; is returned.
</para>
<para>
If an error occurs, &false; is returned.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Reading a file line by line</title>
<programlisting role="php">
<![CDATA[
<?php
$handle = @fopen("/tmp/inputfile.txt", "r");
if ($handle) {
while (($buffer = fgets($handle, 4096)) !== false) {
echo $buffer;
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
&note.line-endings;
<note>
<para>
People used to the 'C' semantics of <function>fgets</function>
should note the difference in how <literal>EOF</literal> is returned.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>fgetss</function></member>
<member><function>fread</function></member>
<member><function>fgetc</function></member>
<member><function>stream_get_line</function></member>
<member><function>fopen</function></member>
<member><function>popen</function></member>
<member><function>fsockopen</function></member>
<member><function>stream_set_timeout</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
-->