Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
10 changes: 5 additions & 5 deletions appendices/migration85/incompatible.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: ec01a42be50e84f192c0b19fc6e9cf40a0f7ac31 Maintainer: mumumu Status: ready -->
<!-- EN-Revision: f81bbcf9d36c28bf067b5514cffdbc7663357cf3 Maintainer: mumumu Status: ready -->
<sect1 xml:id="migration85.incompatible" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>下位互換性のない変更点</title>

Expand Down Expand Up @@ -375,9 +375,9 @@
</simpara>

<simpara>
<methodname>PDO::fetch</methodname>,
<methodname>PDO::fetchObject</methodname>,
<methodname>PDO::fetchAll</methodname> の呼び出し中に、
<methodname>PDOStatement::fetch</methodname>,
<methodname>PDOStatement::fetchObject</methodname>,
<methodname>PDOStatement::fetchAll</methodname> の呼び出し中に、
<methodname>PDOStatement::setFetchMode</methodname> を呼び出そうとすると、
<exceptionname>Error</exceptionname> がスローされるようになりました。
これはたとえば、
Expand All @@ -403,7 +403,7 @@
</simpara>

<simpara>
<methodname>PDO::fetchAll</methodname> で、
<methodname>PDOStatement::fetchAll</methodname> で、
<constant>PDO::FETCH_INTO</constant> をフェッチモードとして使おうとすると、
<constant>PDO::FETCH_LAZY</constant>
と同様に <exceptionname>ValueError</exceptionname> がスローされるようになりました。
Expand Down
27 changes: 19 additions & 8 deletions appendices/transports.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: 1268a5eebbd09dbc4c4d5272c2bcdc0b035c256c Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: ae90ecc9328f3abea16a9af69a5f18b24d530832 Maintainer: hirokawa Status: ready -->
<!-- CREDITS: takagi,mumumu -->
<appendix xml:id="transports" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>サポートされるソケットトランスポートのリスト</title>
Expand All @@ -26,6 +26,13 @@
<literal>ssl://</literal>, <literal>tls://</literal>,
<literal>sslv2://</literal> &amp; <literal>sslv3://</literal>.
</simpara>
<note>
<simpara>
<literal>sslv2://</literal> および <literal>sslv3://</literal> トランスポートは
廃止されており、使うべきではありません。後方互換性のためにのみ
ドキュメントに記載されています。
</simpara>
</note>

<note>
<simpara>
Expand All @@ -42,8 +49,6 @@
<listitem><simpara><literal>tcp://www.example.com</literal></simpara></listitem>
<listitem><simpara><literal>udp://www.example.com</literal></simpara></listitem>
<listitem><simpara><literal>ssl://www.example.com</literal></simpara></listitem>
<listitem><simpara><literal>sslv2://www.example.com</literal></simpara></listitem>
<listitem><simpara><literal>sslv3://www.example.com</literal></simpara></listitem>
<listitem><simpara><literal>tls://www.example.com</literal></simpara></listitem>
</itemizedlist>

Expand Down Expand Up @@ -80,11 +85,17 @@
</simpara>

<simpara>
<literal>ssl://</literal> は SSL V2 での接続を試みます。
あるいはリモートホストの設定によっては SSL V3 での接続を試みます。
<literal>sslv2://</literal> および
<literal>sslv3://</literal> は、SSL V2 と SSL V3 のどちらのプロトコルを
使用するかを明示的に指定します。
<literal>ssl://</literal> は、クライアントとリモートホスト双方の機能と設定に
応じて、安全な SSL/TLS 接続のネゴシエーションを試みます。実際に使用される
プロトコルは、OpenSSL の設定と <function>stream_context_create</function>
で指定するオプション(<literal>ssl.crypto_method</literal> など)によって
決定されます。
</simpara>

<simpara>
SSLv2 および SSLv3 プロトコルは廃止されており、安全ではありません。
これらの使用は強く推奨されず、PHP および OpenSSL の最近のバージョンでは
デフォルトで無効になっています。
</simpara>
</section>

Expand Down
9 changes: 8 additions & 1 deletion features/commandline.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: 74ba8fee2972b6ba4f955392d760dea54e757a95 Maintainer: takagi Status: ready -->
<!-- EN-Revision: 96b10a98853e3b8236504e5775f95eb4a15c82c3 Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa,shimooka,mumumu -->
<chapter xml:id="features.commandline" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>PHP をコマンドラインから使用する</title>
Expand Down Expand Up @@ -1789,6 +1789,13 @@ php >
<note>
<simpara>この機能は Windows ではサポートされていません。</simpara>
</note>
<note>
<simpara>
PHP のコマンドラインの使い方やオプションについては、
<command>php --help</command> または <command>man php</command> を実行してください。
すべてのオプションがウェブサーバーの実行時に適用されるわけではありません。
</simpara>
</note>
<warning>
<para>
この機能は <emphasis>実験的なもの</emphasis> であり、
Expand Down
101 changes: 34 additions & 67 deletions features/http-auth.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: bdf9a4e40204c805f2c2a5c94c2f2f8f5556195a Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: cd4180557a185469a64a7eb26f7be98d0a5f1ebb Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,takagi,mumumu -->
<chapter xml:id="features.http-auth" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>PHP による HTTP 認証</title>
Expand All @@ -14,7 +14,7 @@
パスワードを入力すると、PHP スクリプトを含むその URL は、次回以降、
<link linkend="reserved.variables">定義済みの変数</link>
<varname>PHP_AUTH_USER</varname> と、 <varname>PHP_AUTH_PW</varname> と、
<varname>PHP_AUTH_TYPE</varname> にそれぞれユーザー名、
<varname>AUTH_TYPE</varname> にそれぞれユーザー名、
パスワード、認証型が代入された状態で呼ばれます。
定義済みの変数は、配列
<varname>$_SERVER</varname> でアクセス可能です。
Expand All @@ -24,14 +24,16 @@

<para>
ページ上でクライアント認証を強制するスクリプトの例を以下に示します。
</para>
<para>
<example>
<title>Basic HTTP 認証の例</title>
<programlisting role="php">
<![CDATA[
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
header("WWW-Authenticate: Basic realm=\"My Realm\"");
header("HTTP/1.0 401 Unauthorized");
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: Basic realm="My Realm"');
echo "ユーザーがキャンセルボタンを押した時に送信されるテキスト\n";
exit;
} else {
Expand All @@ -45,12 +47,12 @@ if (!isset($_SERVER['PHP_AUTH_USER'])) {
</para>

<note>
<title>互換性に関する注意</title>
<title>互換性</title>
<para>
HTTPヘッダ行をコーディングする際には注意を要します。全てのクライアントへの
互換性を最大限に保証するために、キーワード "Basic" には、
大文字の"B"を使用して書くべきです。realm文字列は(一重引用符ではなく)
二重引用符で括る必要があります。また、<emphasis>HTTP/1.0 401</emphasis>
二重引用符で括る必要があります。また、<emphasis>HTTP/1.1 401</emphasis>
ヘッダ行のコード <emphasis>401</emphasis> の前には、
1つだけ空白を置く必要があります。
認証パラメータは、
Expand All @@ -66,15 +68,8 @@ if (!isset($_SERVER['PHP_AUTH_USER'])) {
ユーザーを調べるといったことをすることになるでしょう。
</para>

<para>
バグのある Internet Explorer ブラウザには注意してください。このブラ
ウザは、ヘッダの順序に関してとてもうるさいようです。今のところ、
<literal>HTTP/1.0 401</literal> ヘッダの前に
<emphasis>WWW-Authenticate</emphasis> ヘッダを送るのが効果があるようです。
</para>

<note>
<title>設定上の注意</title>
<title>Apache の設定</title>
<para>
PHP は、外部認証が動作しているかどうかの判定を
<literal>AuthType</literal> ディレクティブの有無で行います。
Expand All @@ -86,62 +81,34 @@ if (!isset($_SERVER['PHP_AUTH_USER'])) {
にある認証を要するURLからパスワードを盗むことを防ぐわけではありませ
ん。
</simpara>
<simpara>
サーバーからレスポンスコード 401 を受けた際に、Netscape Navigatorおよび
Internet Explorer は共にローカルブラウザのウインドウ上の認証キャッシュを
消去します。この機能により、簡単にユーザーを"ログアウト"させ、強制的に
ユーザー名とパスワードを再入力させることができます。この機能は、
"タイムアウト" 付きのログインや、"ログアウト" ボタンに適用されています。
</simpara>
<example>
<title>新規に名前 / パスワードを入力させる HTTP 認証の例</title>
<programlisting role="php">
<![CDATA[
<?php
function authenticate() {
header('WWW-Authenticate: Basic realm="Test Authentication System"');
header('HTTP/1.0 401 Unauthorized');
echo "このリソースにアクセスする際には有効なログインIDとパスワードを入力する必要があります。\n";
exit;
}

if (!isset($_SERVER['PHP_AUTH_USER']) ||
($_POST['SeenBefore'] == 1 && $_POST['OldAuth'] == $_SERVER['PHP_AUTH_USER'])) {
authenticate();
} else {
echo "<p>Welcome: " . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "<br />";
echo "Old: " . htmlspecialchars($_REQUEST['OldAuth']);
echo "<form action='' method='post'>\n";
echo "<input type='hidden' name='SeenBefore' value='1'>\n";
echo "<input type='hidden' name='OldAuth' value=\"" . htmlspecialchars($_SERVER['PHP_AUTH_USER']) . "\" />\n";
echo "<input type='submit' value='Re Authenticate'>\n";
echo "</form></p>\n";
}
?>
]]>
</programlisting>
</example>
<simpara>
この動作は、<literal>HTTP Basic</literal> 認証の標準に基づいていません。よって、この機能に
依存しないように注意する必要があります。<literal>Lynx</literal> によるテストの結果、
<literal>Lynx</literal> は、認証証明書を 401 サーバー応答によりクリアしないことが明らかに
なっています。このため、back を押してから forward を再度押すことにより
証明書の要件が変更されない限りリソースをオープンすることができます。
しかし、ユーザーは <literal>'_'</literal> キーを押すことにより認証情報をクリアすることが可能です。
</simpara>
<simpara>
IIS サーバーと CGI 版の PHP の組み合わせで HTTP 認証を使うには、
IIS の設定の "<literal>ディレクトリセキュリティ</literal>" の "<literal>編集</literal>" ボタンを押して
"<literal>匿名アクセス</literal>" のみをオンにしてください。
その他のフィールドはオフのままにしてください。
</simpara>
<note>
<title>IIS に関する注意:</title>
<title>ブラウザの挙動</title>
<simpara>
HTTP Basic 認証は非常に基本的なもので、ログアウトをサポートするようには
設計されていません。HTTP はステートレスなプロトコルであるため、
ほとんどのブラウザは <literal>2xx</literal> ステータスコードを受け取ると
すぐに認証情報をキャッシュし、ブラウザを閉じるまですべてのリクエストで
その認証情報を送信し続けます。サーバーが認証情報の再入力を求める
プロンプトを要求するための標準的な方法は定義されていません。

長年にわたり、この問題に対するさまざまな回避策がインターネット上で
広まってきましたが、それらはすべて、異なるブラウザが未定義のエッジケース
(あるいは HTTP 標準の違反さえも)をどのように処理するかに依存しています。
このような回避策は避け、Basic 認証を重要な用途に使用しないことが最善です。
</simpara>
</note>

<note>
<title>IIS の設定</title>
<simpara>
IIS上 で HTTP 認証を使用する場合、PHP の
<link linkend="ini.cgi.rfc2616-headers">cgi.rfc2616_headers</link>
ディレクティブは<literal>0</literal> (デフォルト値) にセットされて
いなければなりません。
IIS サーバーと CGI 版の PHP の組み合わせで HTTP 認証を使うには、
php.ini ディレクティブ <link linkend="ini.cgi.rfc2616-headers">cgi.rfc2616_headers</link>
を <literal>0</literal> (デフォルト値) に設定し、IIS の設定の
"<literal>ディレクトリセキュリティ</literal>" を編集する必要があります。
"<literal>編集</literal>" ボタンを押して
"<literal>匿名アクセス</literal>" のみをオンにしてください。
その他のフィールドはオフのままにしてください。
</simpara>
</note>

Expand Down
3 changes: 2 additions & 1 deletion language/predefined/attributes/nodiscard.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: 02bee41067ab2822cbffcb4b3b2387f79488dffd Maintainer: KentarouTakeda Status: ready -->
<!-- EN-Revision: 30bda33771e1c8fa8fc8a5ee7559fd7fa189caa0 Maintainer: KentarouTakeda Status: ready -->
<reference xml:id="class.nodiscard" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>NoDiscard アトリビュート</title>
<titleabbrev>NoDiscard</titleabbrev>
Expand Down Expand Up @@ -36,6 +36,7 @@

<classsynopsis class="class">
<ooclass>
<modifier role="attribute">#[\Attribute]</modifier>
<modifier>final</modifier>
<classname>NoDiscard</classname>
</ooclass>
Expand Down
14 changes: 13 additions & 1 deletion reference/curl/functions/curl-close.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: ce98b568f85353c4bf263133f09c4db9294833f9 Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: 86c8ebd19ed93843f293bdcecc9ce68cb4ab57bc Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka -->
<refentry xml:id="function.curl-close" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
Expand Down Expand Up @@ -53,6 +53,18 @@
</row>
</thead>
<tbody>
<row>
<entry>8.5.0</entry>
<entry>
この関数は推奨されなくなりました。
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
この関数は何もしなくなりました(<acronym>NOP</acronym>)。
</entry>
</row>
&curl.changelog.handle-param;
</tbody>
</tgroup>
Expand Down
14 changes: 13 additions & 1 deletion reference/curl/functions/curl-share-close.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: fc9a0a8b29a7a099998bdd71fe5350a10b18fe62 Maintainer: takagi Status: ready -->
<!-- EN-Revision: 29c3d13980c8b29b700afd85c916e064638a7944 Maintainer: takagi Status: ready -->
<!-- Credits: mumumu -->

<refentry xml:id="function.curl-share-close" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
Expand Down Expand Up @@ -52,6 +52,18 @@
</row>
</thead>
<tbody>
<row>
<entry>8.5.0</entry>
<entry>
この関数は推奨されなくなりました。
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
この関数は何もしなくなりました(<acronym>NOP</acronym>)。
</entry>
</row>
&curl.changelog.share-handle-param;
</tbody>
</tgroup>
Expand Down
28 changes: 15 additions & 13 deletions reference/filesystem/functions/fgetcsv.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 781f2ec04ee8817687e5e333bc3e64ab973322d7 Maintainer: hirokawa Status: ready -->
<!-- EN-Revision: 0a3648a71895f35f570573d31ca9e003786aa993 Maintainer: hirokawa Status: ready -->
<!-- CREDITS: shimooka,mumumu -->
<refentry xml:id="function.fgetcsv" xmlns="http://docbook.org/ns/docbook">
<refnamediv>
<refname>fgetcsv</refname>
<refpurpose>ファイルポインタから行を取得し、CSVフィールドを処理する</refpurpose>
</refnamediv>

<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
Expand Down Expand Up @@ -92,18 +92,21 @@
シングルバイト文字 1 文字のみ、または空文字列でなければなりません。
空文字列(<literal>""</literal>) を指定すると、(RFC 4180 に準拠していない) 独自仕様のエスケープ機構が無効になります。
</para>
<note>
<warning xml:id="function.fgetcsv..warn.escape.parameter">
<simpara>
<parameter>enclosure</parameter> の文字は、フィールド内で2回出力される
ことでエスケープされます。しかし、
<parameter>escape</parameter> 文字はその代替として使えます。
デフォルトのパラメータの値
<literal>""</literal> と <literal>\"</literal> は同じ意味を持ちます。
<parameter>enclosure</parameter> の文字を
<parameter>escape</parameter> 文字でエスケープすることには、
特別な意味はありません。それ自身をエスケープする意味ですらありません。
入力ストリームにおいて、<parameter>enclosure</parameter> 文字は
クォートされた文字列の中で2回連続させることで常にエスケープでき、
パース結果では単一の <parameter>enclosure</parameter> 文字になります。
<parameter>escape</parameter> 文字の動作は異なります:
入力中に <parameter>escape</parameter> と
<parameter>enclosure</parameter> 文字の並びが出現した場合、
パース結果には両方の文字がそのまま残ります。
よって、デフォルトのパラメータの場合、
<literal>"a""b","c\"d"</literal> のような CSV の行は
それぞれ <literal>a"b</literal> と <literal>c\"d</literal>
にパースされます。
</simpara>
</note>
</warning>
<warning>
<simpara>
PHP 8.4.0 以降では、<parameter>escape</parameter>
Expand Down Expand Up @@ -191,7 +194,6 @@
</tgroup>
</informaltable>
</para>
&warning.csv.escape-parameter;
</refsect1>

<refsect1 role="examples">
Expand Down
Loading