1
0
mirror of https://github.com/php/doc-en.git synced 2026-03-24 07:42:10 +01:00
Files
Emre Dikmen 898627b9fe Fix: Add explicit $escape parameter in fputcsv for PHP 8.4 compatibility (#4283)
This commit resolves a deprecation warning in PHP 8.4 regarding the $escape parameter of the fputcsv function. The warning indicates that the default value for $escape will change in future PHP versions, requiring it to be explicitly provided.
2024-12-10 13:46:21 +00:00

192 lines
5.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.fputcsv" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude">
<refnamediv>
<refname>fputcsv</refname>
<refpurpose>Format line as CSV and write to file pointer</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>int</type><type>false</type></type><methodname>fputcsv</methodname>
<methodparam><type>resource</type><parameter>stream</parameter></methodparam>
<methodparam><type>array</type><parameter>fields</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>separator</parameter><initializer>","</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>enclosure</parameter><initializer>"\""</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>escape</parameter><initializer>"\\"</initializer></methodparam>
<methodparam choice="opt"><type>string</type><parameter>eol</parameter><initializer>"\n"</initializer></methodparam>
</methodsynopsis>
<para>
<function>fputcsv</function> formats a line (passed as a
<parameter>fields</parameter> array) as <acronym>CSV</acronym> and writes it
(terminated by a <parameter>eol</parameter>) to the specified
<parameter>stream</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>stream</parameter></term>
<listitem>
&fs.validfp.all;
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>fields</parameter></term>
<listitem>
<para>
An array of <type>string</type>s.
</para>
</listitem>
</varlistentry>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('function.fgetcsv')/db:refsect1[@role='parameters']//db:varlistentry[db:term[db:parameter[text()='separator']]]/.)">
<xi:fallback/>
</xi:include>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('function.fgetcsv')/db:refsect1[@role='parameters']//db:varlistentry[db:term[db:parameter[text()='enclosure']]]/.)">
<xi:fallback/>
</xi:include>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('function.fgetcsv')/db:refsect1[@role='parameters']//db:varlistentry[db:term[db:parameter[text()='escape']]]/.)">
<xi:fallback/>
</xi:include>
<varlistentry>
<term><parameter>eol</parameter></term>
<listitem>
<para>
The optional <parameter>eol</parameter> parameter sets
a custom End of Line sequence.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
&warning.csv.escape-parameter;
<note>
<para>
If an <parameter>enclosure</parameter> character is contained in a field,
it will be escaped by doubling it, unless it is immediately preceded by an
<parameter>escape</parameter>.
</para>
</note>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns the length of the written string &return.falseforfailure;.
</para>
</refsect1>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('function.fgetcsv')/db:refsect1[@role='errors']/.)">
<xi:fallback/>
</xi:include>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('function.fgetcsv')/db:refsect1[@role='changelog']//db:row[db:entry[text()='8.4.0']]/.)">
<xi:fallback/>
</xi:include>
<row>
<entry>8.1.0</entry>
<entry>
The optional <parameter>eol</parameter> parameter has been added.
</entry>
</row>
<row>
<entry>7.4.0</entry>
<entry>
The <parameter>escape</parameter> parameter now also accepts an empty
string to disable the proprietary escape mechanism.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>fputcsv</function> example</title>
<programlisting role="php">
<![CDATA[
<?php
$list = [
['aaa', 'bbb', 'ccc', 'dddd'],
['123', '456', '789'],
['"aaa"', '"bbb"']
];
$fp = fopen('file.csv', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields, ',', '"', '');
}
fclose($fp);
?>
]]>
</programlisting>
<para>The above example will write the following to <literal>file.csv</literal>:</para>
<screen>
<![CDATA[
aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>fgetcsv</function></member>
<member><function>str_getcsv</function></member>
<member><methodname>SplFileObject::fgetcsv</methodname></member>
<member><methodname>SplFileObject::fputcsv</methodname></member>
<member><methodname>SplFileObject::setCsvControl</methodname></member>
<member><methodname>SplFileObject::getCsvControl</methodname></member>
</simplelist>
</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
-->