-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathgetenv.xml
161 lines (151 loc) · 4.62 KB
/
getenv.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1299a9808782769bba9f6a48bf52cb1c68182e78 Maintainer: daijie Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="function.getenv" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>getenv</refname>
<refpurpose>获取单个或者全部环境变量</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>string</type><type>array</type><type>false</type></type><methodname>getenv</methodname>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>name</parameter><initializer>&null;</initializer></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>local_only</parameter><initializer>&false;</initializer></methodparam>
</methodsynopsis>
<para>
获取单个或者全部环境变量。
</para>
<para>
使用 <function>phpinfo</function> 你可以看到所有环境变量的列表。
这些变量很多都在 <link xlink:href="&url.rfc;3875">RFC 3875</link> 的范围之内,
尤其是章节4.1,"Request Meta-Variables"。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<para>
&string; 形式的变量名或为 &null;。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>local_only</parameter></term>
<listitem>
<para>
当设置为 &true; 时,仅返回由操作系统或 <function>putenv</function>
设置的本地环境变量。这只在 <parameter>name</parameter> 是 &string; 时才生效。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
返回环境变量 <parameter>name</parameter> 的值,如果环境变量 <parameter>name</parameter>
不存在则返回 &false;。如果 <parameter>name</parameter> 是 &null;,则所有环境变量都将作为关联
<type>array</type> 返回。
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>name</parameter> 现在可为 null。
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>
现在可以省略 <parameter>name</parameter> 来检索所有环境变量的关联数组 <type>array</type>。
</entry>
</row>
<row>
<entry>7.0.9</entry>
<entry>
添加 <parameter>local_only</parameter> 参数。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title><function>getenv</function> 示例</title>
<programlisting role="php">
<![CDATA[
<?php
// getenv() 使用示例
$ip = getenv('REMOTE_ADDR');
// 或简单仅使用全局变量($_SERVER 或 $_ENV)
$ip = $_SERVER['REMOTE_ADDR'];
// 安全地获取环境变量,忽略通过 SAPI 或 putenv 修改的值
$ip = getenv('REMOTE_ADDR', true) ?: getenv('REMOTE_ADDR')
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<warning>
<para>
如果 PHP 在诸如 Fast CGI 之类的 SAPI 中运行,则此函数将始终返回由 SAPI 设置的环境变量的值,即使已使用
<function>putenv</function> 来设置同名的本地环境变量。使用 <parameter>local_only</parameter>
参数返回本地设置的环境变量的值。
</para>
</warning>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>putenv</function></member>
<member><function>apache_getenv</function></member>
<member><link linkend="language.variables.superglobals">超全局变量</link></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->