apache_note() does not work on requests to a symlink, only on actual files. Eg. if index.php is symlinked to login.php, then any apache_note() in login.php will not be available to other apache modules such as logging.
(PHP 4, PHP 5, PHP 7, PHP 8)
apache_note — Apacheリクエスト記号(note)を取得/設定する
この関数は、Apache の table_get
および
table_set
のラッパーです。
リクエスト中に存在する note のテーブルを編集します。
このテーブルは、Apache モジュール間の通信に用いるものです。
apache_note() の主な使用法は、 同一リクエスト内でのモジュール間の情報のやりとりです。
note_name
記号の名前
note_value
記号の値
note_value
が省略されるか、null
の場合、
note_name
の現在の値が返されます。
そうでない場合、記号note_name
の値をnote_value
にセットし、前の記号
note_name
の値を返します。
もし記号が処理できない場合、false
が返されます。
バージョン | 説明 |
---|---|
8.0.0 |
note_value は、nullable になりました。
|
例1 PHP と Perl との間での情報のやりとり
<?php
apache_note('name', 'Fredrik Ekengren');
// perl スクリプトをコールします
virtual("/perl/some_script.pl");
$result = apache_note("resultdata");
?>
# Apache リクエストオブジェクトを取得します my $r = Apache->request()->main(); # 受け取ったデータを取得します my $name = $r->notes('name'); # 何らかの処理をします # 結果を PHP 側に戻します $r->notes('resultdata', $result);
例2 access.log への出力
<?php
apache_note('sessionID', session_id());
?>
# "%{sessionID}n" を LogFormat ディレクティブで使用できます
apache_note() does not work on requests to a symlink, only on actual files. Eg. if index.php is symlinked to login.php, then any apache_note() in login.php will not be available to other apache modules such as logging.