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 请求记录
这个函数是 Apache table_get
和
table_set
的包装。
它编辑了请求中存在的 notes 表。
这个表的目的是允许 Apache 模块进行通讯。
apache_note() 的主要用途是在同一个请求中,从一个模块传递信息到另一个模块。
note_name
note 名。
note_value
note 值。
如果 note_value
被省略或者为 null
,则返回记录
note_name
的当前值。否则将记录
note_name
的值设为
note_value
并返回记录
note_name
的前一个值。如果未能获取记录,则返回 false
。
版本 | 说明 |
---|---|
8.0.0 |
现在 note_value 可为 null。
|
示例 #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" can be used in the LogFormat directive
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.