Skip to content

Commit 3690cd3

Browse files
PHP 8.4: CSV related changes and deprecations の翻訳 (#250)
* PHP 8.4: CSV related changes and deprecations の取り込み php/doc-en#4093 以下も合わせて取り込む reference/spl/splfileobject/setcsvcontrol.xml - [skip-revcheck] Fill xi:fallback to avoid 'variablelist incomplete' in some translations - php/doc-en#4128 - Update setcsvcontrol.xml Fix typo - php/doc-en#4379 reference/spl/splfileobject/fgetcsv.xml - Update fgetcsv.xml Remove the duplicate sentence - php/doc-en#4111 * Fix GH-4175: do not say the parameters are optional の取り込み php/doc-en#4177 * Document str_getcsv() and fgetcsv() change in 8.3.0 (closes #4197) の取り込み php/doc-en#4198 * Fix: Add explicit $escape parameter in fputcsv for PHP 8.4 compatibility の取り込み php/doc-en#4283 * 改行位置を原文と合わせる対応 --------- Co-authored-by: 武田 憲太郎 <takeda@youmind.jp>
1 parent d253650 commit 3690cd3

File tree

7 files changed

+242
-240
lines changed

7 files changed

+242
-240
lines changed

reference/filesystem/functions/fgetcsv.xml

Lines changed: 59 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<!-- $Revision$ -->
3-
<!-- EN-Revision: cef78b0fbe0fbe02003699b027ab50200097e949 Maintainer: hirokawa Status: ready -->
3+
<!-- EN-Revision: 781f2ec04ee8817687e5e333bc3e64ab973322d7 Maintainer: hirokawa Status: ready -->
44
<!-- CREDITS: shimooka,mumumu -->
55
<refentry xml:id="function.fgetcsv" xmlns="http://docbook.org/ns/docbook">
66
<refnamediv>
@@ -25,11 +25,12 @@
2525
読み込んだフィールドを含む配列を返すという違いがあります。
2626
</para>
2727
<note>
28-
<para>
29-
この関数はロケール設定を考慮します。もし <constant>LC_CTYPE</constant>
30-
が例えば <literal>en_US.UTF-8</literal> の場合、
31-
1 バイトエンコーディングのファイルは間違って読み込まれるかもしれません。
32-
</para>
28+
<simpara>
29+
この関数はロケール設定を考慮します。
30+
例えば、<constant>LC_CTYPE</constant> が <literal>en_US.UTF-8</literal> の場合、
31+
1 バイトエンコーディングでエンコードされたデータが
32+
間違って処理されるかもしれません。
33+
</simpara>
3334
</note>
3435
</refsect1>
3536

@@ -69,23 +70,26 @@
6970
<term><parameter>separator</parameter></term>
7071
<listitem>
7172
<para>
72-
オプションの <parameter>separator</parameter> パラメータで、フィールドのデリミタ (シングルバイト文字 1 文字のみ) を設定します。
73+
<parameter>separator</parameter> パラメータで、フィールドのデリミタを設定します。
74+
シングルバイト文字 1 文字のみでなければなりません。
7375
</para>
7476
</listitem>
7577
</varlistentry>
7678
<varlistentry>
7779
<term><parameter>enclosure</parameter></term>
7880
<listitem>
7981
<para>
80-
オプションの <parameter>enclosure</parameter> パラメータで、フィールド囲いこみ文字 (シングルバイト文字 1 文字のみ) を設定します。
82+
オプションの <parameter>enclosure</parameter> パラメータで、フィールド囲いこみ文字を設定します。
83+
シングルバイト文字 1 文字のみでなければなりません。
8184
</para>
8285
</listitem>
8386
</varlistentry>
8487
<varlistentry>
8588
<term><parameter>escape</parameter></term>
8689
<listitem>
8790
<para>
88-
オプションの <parameter>escape</parameter> パラメータで、エスケープ文字 (シングルバイト文字 最大で1文字) を設定します。
91+
オプションの <parameter>escape</parameter> パラメータで、エスケープ文字を設定します。
92+
シングルバイト文字 1 文字のみ、または空文字列でなければなりません。
8993
空文字列(<literal>""</literal>) を指定すると、(RFC 4180 に準拠していない) 独自仕様のエスケープ機構が無効になります。
9094
</para>
9195
<note>
@@ -100,6 +104,14 @@
100104
特別な意味はありません。それ自身をエスケープする意味ですらありません。
101105
</simpara>
102106
</note>
107+
<warning>
108+
<simpara>
109+
PHP 8.4.0 以降では、<parameter>escape</parameter>
110+
のデフォルト値に依存することは非推奨となりました。
111+
位置指定の引数か、<link linkend="functions.named-arguments">名前付き引数</link>
112+
を使用して明示的に指定する必要があります。
113+
</simpara>
114+
</warning>
103115
</listitem>
104116
</varlistentry>
105117
</variablelist>
@@ -123,6 +135,18 @@
123135
&note.line-endings;
124136
</refsect1>
125137

138+
<refsect1 role="errors">
139+
&reftitle.errors;
140+
<simpara>
141+
<parameter>separator</parameter> または <parameter>enclosure</parameter> が
142+
1 バイト長ではない場合、<exceptionname>ValueError</exceptionname> をスローします。
143+
</simpara>
144+
<simpara>
145+
<parameter>escape</parameter> が 1 バイト長、または空文字列ではない場合、
146+
<exceptionname>ValueError</exceptionname> をスローします。
147+
</simpara>
148+
</refsect1>
149+
126150
<refsect1 role="changelog">
127151
&reftitle.changelog;
128152
<para>
@@ -135,6 +159,21 @@
135159
</row>
136160
</thead>
137161
<tbody>
162+
<row>
163+
<entry>8.4.0</entry>
164+
<entry>
165+
<parameter>escape</parameter> のデフォルト値に依存することは、
166+
非推奨になりました。
167+
</entry>
168+
</row>
169+
<row>
170+
<entry>8.3.0</entry>
171+
<entry>
172+
最後のフィールドが、
173+
閉じられていないフィールド囲いこみ文字だけの場合、
174+
null バイト 1 つの文字列ではなく、空文字列を返すようになりました。
175+
</entry>
176+
</row>
138177
<row>
139178
<entry>8.0.0</entry>
140179
<entry>
@@ -184,15 +223,17 @@ if (($handle = fopen("test.csv", "r")) !== FALSE) {
184223

185224
<refsect1 role="seealso">
186225
&reftitle.seealso;
187-
<para>
188-
<simplelist>
189-
<member><function>str_getcsv</function></member>
190-
<member><function>explode</function></member>
191-
<member><function>file</function></member>
192-
<member><function>pack</function></member>
193-
<member><function>fputcsv</function></member>
194-
</simplelist>
195-
</para>
226+
<simplelist>
227+
<member><function>fputcsv</function></member>
228+
<member><function>str_getcsv</function></member>
229+
<member><methodname>SplFileObject::fgetcsv</methodname></member>
230+
<member><methodname>SplFileObject::fputcsv</methodname></member>
231+
<member><methodname>SplFileObject::setCsvControl</methodname></member>
232+
<member><methodname>SplFileObject::getCsvControl</methodname></member>
233+
<member><function>explode</function></member>
234+
<member><function>file</function></member>
235+
<member><function>pack</function></member>
236+
</simplelist>
196237
</refsect1>
197238

198239
</refentry>

reference/filesystem/functions/fputcsv.xml

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

@@ -45,34 +45,15 @@
4545
</para>
4646
</listitem>
4747
</varlistentry>
48-
<varlistentry>
49-
<term><parameter>separator</parameter></term>
50-
<listitem>
51-
<para>
52-
オプションの <parameter>separator</parameter> はフィールド区切り文字
53-
(シングルバイト文字 一文字だけ) を指定します。
54-
</para>
55-
</listitem>
56-
</varlistentry>
57-
<varlistentry>
58-
<term><parameter>enclosure</parameter></term>
59-
<listitem>
60-
<para>
61-
オプションの <parameter>enclosure</parameter> はフィールドを囲む文字
62-
(シングルバイト文字 一文字だけ) を指定します。
63-
</para>
64-
</listitem>
65-
</varlistentry>
66-
<varlistentry>
67-
<term><parameter>escape</parameter></term>
68-
<listitem>
69-
<para>
70-
オプションの <parameter>escape</parameter> は、エスケープ文字
71-
(シングルバイト文字 最大で一文字) を指定します。
72-
空文字(<literal>""</literal>) を指定すると、(RFC 4180 に準拠していない) 独自仕様のエスケープ機構が無効になります。
73-
</para>
74-
</listitem>
75-
</varlistentry>
48+
<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']]]/.)">
49+
<xi:fallback/>
50+
</xi:include>
51+
<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']]]/.)">
52+
<xi:fallback/>
53+
</xi:include>
54+
<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']]]/.)">
55+
<xi:fallback/>
56+
</xi:include>
7657
<varlistentry>
7758
<term><parameter>eol</parameter></term>
7859
<listitem>
@@ -100,6 +81,10 @@
10081
</para>
10182
</refsect1>
10283

84+
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('function.fgetcsv')/db:refsect1[@role='errors']/.)">
85+
<xi:fallback/>
86+
</xi:include>
87+
10388
<refsect1 role="changelog">
10489
&reftitle.changelog;
10590
<para>
@@ -112,6 +97,9 @@
11297
</row>
11398
</thead>
11499
<tbody>
100+
<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']]/.)">
101+
<xi:fallback/>
102+
</xi:include>
115103
<row>
116104
<entry>8.1.0</entry>
117105
<entry>
@@ -141,16 +129,16 @@
141129
<![CDATA[
142130
<?php
143131
144-
$list = array (
145-
array('aaa', 'bbb', 'ccc', 'dddd'),
146-
array('123', '456', '789'),
147-
array('"aaa"', '"bbb"')
148-
);
132+
$list = [
133+
['aaa', 'bbb', 'ccc', 'dddd'],
134+
['123', '456', '789'],
135+
['"aaa"', '"bbb"']
136+
];
149137
150138
$fp = fopen('file.csv', 'w');
151139
152140
foreach ($list as $fields) {
153-
fputcsv($fp, $fields);
141+
fputcsv($fp, $fields, ',', '"', '');
154142
}
155143
156144
fclose($fp);
@@ -170,18 +158,16 @@ aaa,bbb,ccc,dddd
170158
</para>
171159
</refsect1>
172160

173-
<refsect1 role="notes">
174-
&reftitle.notes;
175-
&note.line-endings;
176-
</refsect1>
177-
178161
<refsect1 role="seealso">
179162
&reftitle.seealso;
180-
<para>
181-
<simplelist>
182-
<member><function>fgetcsv</function></member>
183-
</simplelist>
184-
</para>
163+
<simplelist>
164+
<member><function>fgetcsv</function></member>
165+
<member><function>str_getcsv</function></member>
166+
<member><methodname>SplFileObject::fgetcsv</methodname></member>
167+
<member><methodname>SplFileObject::fputcsv</methodname></member>
168+
<member><methodname>SplFileObject::setCsvControl</methodname></member>
169+
<member><methodname>SplFileObject::getCsvControl</methodname></member>
170+
</simplelist>
185171
</refsect1>
186172

187173
</refentry>

0 commit comments

Comments
 (0)