Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PHP 8.4: CSV related changes and deprecations の翻訳 #250

Merged
merged 5 commits into from
Jan 19, 2025
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 59 additions & 18 deletions reference/filesystem/functions/fgetcsv.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cef78b0fbe0fbe02003699b027ab50200097e949 Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: 781f2ec04ee8817687e5e333bc3e64ab973322d7 Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->
<refentry xml:id="function.fgetcsv" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
Expand All @@ -25,11 +25,12 @@
読み込んだフィールドを含む配列を返すという違いがあります。
</para>
<note>
<para>
この関数はロケール設定を考慮します。もし <constant>LC_CTYPE</constant>
が例えば <literal>en_US.UTF-8</literal> の場合、
1 バイトエンコーディングのファイルは間違って読み込まれるかもしれません。
</para>
<simpara>
この関数はロケール設定を考慮します。
例えば、<constant>LC_CTYPE</constant> が <literal>en_US.UTF-8</literal> の場合、
1 バイトエンコーディングでエンコードされたデータが
間違って処理されるかもしれません。
</simpara>
</note>
</refsect1>

Expand Down Expand Up @@ -69,23 +70,26 @@
<term><parameter>separator</parameter></term>
<listitem>
<para>
オプションの <parameter>separator</parameter> パラメータで、フィールドのデリミタ (シングルバイト文字 1 文字のみ) を設定します。
<parameter>separator</parameter> パラメータで、フィールドのデリミタを設定します。
シングルバイト文字 1 文字のみでなければなりません。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>enclosure</parameter></term>
<listitem>
<para>
オプションの <parameter>enclosure</parameter> パラメータで、フィールド囲いこみ文字 (シングルバイト文字 1 文字のみ) を設定します。
オプションの <parameter>enclosure</parameter> パラメータで、フィールド囲いこみ文字を設定します。
シングルバイト文字 1 文字のみでなければなりません。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>escape</parameter></term>
<listitem>
<para>
オプションの <parameter>escape</parameter> パラメータで、エスケープ文字 (シングルバイト文字 最大で1文字) を設定します。
オプションの <parameter>escape</parameter> パラメータで、エスケープ文字を設定します。
シングルバイト文字 1 文字のみ、または空文字列でなければなりません。
空文字列(<literal>""</literal>) を指定すると、(RFC 4180 に準拠していない) 独自仕様のエスケープ機構が無効になります。
</para>
<note>
Expand All @@ -100,6 +104,14 @@
特別な意味はありません。それ自身をエスケープする意味ですらありません。
</simpara>
</note>
<warning>
<simpara>
PHP 8.4.0 以降では、<parameter>escape</parameter>
のデフォルト値に依存することは非推奨となりました。
位置指定の引数か、<link linkend="functions.named-arguments">名前付き引数</link>
を使用して明示的に指定する必要があります。
</simpara>
</warning>
</listitem>
</varlistentry>
</variablelist>
Expand All @@ -123,6 +135,18 @@
&note.line-endings;
</refsect1>

<refsect1 role="errors">
&reftitle.errors;
<simpara>
<parameter>separator</parameter> または <parameter>enclosure</parameter> が
1 バイト長ではない場合、<exceptionname>ValueError</exceptionname> をスローします。
</simpara>
<simpara>
<parameter>escape</parameter> が 1 バイト長、または空文字列ではない場合、
<exceptionname>ValueError</exceptionname> をスローします。
</simpara>
</refsect1>

<refsect1 role="changelog">
&reftitle.changelog;
<para>
Expand All @@ -135,6 +159,21 @@
</row>
</thead>
<tbody>
<row>
<entry>8.4.0</entry>
<entry>
<parameter>escape</parameter> のデフォルト値に依存することは、
非推奨になりました。
</entry>
</row>
<row>
<entry>8.3.0</entry>
<entry>
最後のフィールドが、
閉じられていないフィールド囲いこみ文字だけの場合、
null バイト 1 つの文字列ではなく、空文字列を返すようになりました。
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
Expand Down Expand Up @@ -184,15 +223,17 @@ if (($handle = fopen("test.csv", "r")) !== FALSE) {

<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>str_getcsv</function></member>
<member><function>explode</function></member>
<member><function>file</function></member>
<member><function>pack</function></member>
<member><function>fputcsv</function></member>
</simplelist>
</para>
<simplelist>
<member><function>fputcsv</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>
<member><function>explode</function></member>
<member><function>file</function></member>
<member><function>pack</function></member>
</simplelist>
</refsect1>

</refentry>
Expand Down
84 changes: 35 additions & 49 deletions reference/filesystem/functions/fputcsv.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: cef78b0fbe0fbe02003699b027ab50200097e949 Maintainer: takagi Status: ready -->
<!-- EN-Revision: 898627b9fec5baa51de18adefb9c584369f25aea Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->
<refentry xml:id="function.fputcsv" xmlns="http://docbook.org/ns/docbook">
<refentry xml:id="function.fputcsv" xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude">
<refnamediv>
<refname>fputcsv</refname>
<refpurpose>行を CSV 形式にフォーマットし、ファイルポインタに書き込む</refpurpose>
Expand All @@ -21,9 +21,9 @@
</methodsynopsis>
<para>
<function>fputcsv</function> は、行(<parameter>fields</parameter>
配列として渡されたもの)を CSV としてフォーマットし、それを
<parameter>stream</parameter> で指定したファイルに書き込みます
(いちばん最後に改行を追加します)。
配列として渡されたもの)を <acronym>CSV</acronym> としてフォーマットし、それを
指定した <parameter>stream</parameter> に書き込みます
(いちばん最後に <parameter>eol</parameter> を追加します)。
</para>
</refsect1>

Expand All @@ -45,34 +45,15 @@
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>separator</parameter></term>
<listitem>
<para>
オプションの <parameter>separator</parameter> はフィールド区切り文字
(シングルバイト文字 一文字だけ) を指定します。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>enclosure</parameter></term>
<listitem>
<para>
オプションの <parameter>enclosure</parameter> はフィールドを囲む文字
(シングルバイト文字 一文字だけ) を指定します。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>escape</parameter></term>
<listitem>
<para>
オプションの <parameter>escape</parameter> は、エスケープ文字
(シングルバイト文字 最大で一文字) を指定します。
空文字(<literal>""</literal>) を指定すると、(RFC 4180 に準拠していない) 独自仕様のエスケープ機構が無効になります。
</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>
Expand Down Expand Up @@ -100,6 +81,10 @@
</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>
Expand All @@ -112,6 +97,9 @@
</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>
Expand Down Expand Up @@ -141,16 +129,16 @@
<![CDATA[
<?php

$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$list = [
['aaa', 'bbb', 'ccc', 'dddd'],
['123', '456', '789'],
['"aaa"', '"bbb"']
];

$fp = fopen('file.csv', 'w');

foreach ($list as $fields) {
fputcsv($fp, $fields);
fputcsv($fp, $fields, ',', '"', '');
}

fclose($fp);
Expand All @@ -170,18 +158,16 @@ aaa,bbb,ccc,dddd
</para>
</refsect1>

<refsect1 role="notes">
&reftitle.notes;
&note.line-endings;
</refsect1>

<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>fgetcsv</function></member>
</simplelist>
</para>
<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>
Expand Down
Loading