-
Notifications
You must be signed in to change notification settings - Fork 109
Expand file tree
/
Copy pathini.core.xml
More file actions
1611 lines (1530 loc) · 55.7 KB
/
ini.core.xml
File metadata and controls
1611 lines (1530 loc) · 55.7 KB
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: a1ab750f296de54d79fe3749d5c9164b0593d803 Maintainer: Avenger Status: ready -->
<!-- CREDITS: mowangjuanzi, Luffy -->
<section xml:id="ini.core" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>&php.ini; 核心指令说明</title>
<para>
该列表只包含可以配置 PHP 的核心 &php.ini; 指令。扩展的指令处理在各个扩展的文档页面分别列出和详细说明;比如,有关 session
指令可以在 <link linkend="session.configuration">sessions 页面</link>找到。
</para>
<note>
<para>
当未加载 &php.ini; 时,使用以下列出的默认值;开发和生产环境的 &php.ini; 值可能会有所不同。
</para>
</note>
<section xml:id="ini.sect.language-options">
<title>语言选项</title>
<para>
<table>
<title>语言和杂类配置选项</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.short-open-tag">short_open_tag</link></entry>
<entry>"1"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.precision">precision</link></entry>
<entry>"14"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.serialize-precision">serialize_precision</link></entry>
<entry>"-1"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>
在 PHP 7.1.0 以前,默认值为 17。
</entry>
</row>
<row>
<entry><link linkend="ini.disable-functions">disable_functions</link></entry>
<entry>""</entry>
<entry>仅为 <constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.disable-classes">disable_classes</link></entry>
<entry>""</entry>
<entry>仅为 &php.ini;</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.exit-on-timeout">exit_on_timeout</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.expose-php">expose_php</link></entry>
<entry>"1"</entry>
<entry>仅为 &php.ini;</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.hard-timeout">hard_timeout</link></entry>
<entry>"2"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>从 PHP 7.1.0 起可用</entry>
</row>
<row>
<entry><link linkend="ini.zend.exception-ignore-args">zend.exception_ignore_args</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>从 PHP 7.4.0 起可用</entry>
</row>
<row>
<entry><link linkend="ini.zend.multibyte">zend.multibyte</link></entry>
<entry>"0"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.script-encoding">zend.script_encoding</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.detect-unicode">zend.detect_unicode</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.signal-check">zend.signal_check</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.assertions">zend.assertions</link></entry>
<entry>"1"</entry>
<entry>有限制的 <constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend.exception-string-param-max-len">zend.exception_string_param_max_len</link></entry>
<entry>"15"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry>自 PHP 8.0.0 起可用。</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.short-open-tag">
<term>
<parameter>short_open_tag</parameter>
<type>bool</type>
</term>
<listitem>
<para>
告诉 PHP 是否允许 PHP 开放标签的缩写形式(<userinput><? ?></userinput>)。如果要 PHP 和 XML 结合使用,可以禁用此选项以便嵌入使用
<userinput><?xml ?></userinput>。否则还可以通过 PHP 来打印,例如:<userinput><?php echo '<?xml version="1.0"?>';
?></userinput>。此外,如果禁用,必须使用 PHP 开放标签的完整形式(<userinput><?php ?></userinput>)。
</para>
<note>
<para>
本指令不会影响简写 <userinput><?=</userinput>,因为它始终可用。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.precision">
<term>
<parameter>precision</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
浮点数中显示有效数字的位数。<literal>-1</literal> 表示将使用增强算法来四舍五入此类数字。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.serialize-precision">
<term>
<parameter>serialize_precision</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
序列化浮点数时存储的有效数字的位数。<literal>-1</literal> 表示将使用增强算法来四舍五入此类数字。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.expose-php">
<term>
<parameter>expose_php</parameter>
<type>bool</type>
</term>
<listitem>
<para>
确定是否向外界公开服务器上安装了 PHP,在 HTTP 标头中包含 PHP 版本号(例如:X-Powered-By: PHP/5.3.7)。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.disable-functions">
<term>
<parameter>disable_functions</parameter>
<type>string</type>
</term>
<listitem>
<simpara>
此指令允许禁用某些函数。它接受逗号分隔的函数名列表作为参数。
从 PHP 8.0.0 开始,禁用函数会删除其定义,允许用户重新定义它。
在 PHP 8.0.0 之前,禁用函数只是阻止函数被调用。
</simpara>
<simpara>
此指令仅能禁用 <link linkend="functions.internal">内置函数</link>。不能影响<link
linkend="functions.user-defined">用户自定义函数</link>。
</simpara>
<simpara>
本指令必须在 &php.ini; 中设置。不能在 &httpd.conf; 中设置。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.disable-classes">
<term>
<parameter>disable_classes</parameter>
<type>string</type>
</term>
<listitem>
<para>
此指令允许禁用某些类。它接受逗号分隔的类名列表作为参数。
禁用类只是阻止类的实例化。
</para>
<para>
使用此指令只能禁用内部类。用户定义的类不受影响。
</para>
<simpara>
本指令必须在 &php.ini; 中设置。不能在 &httpd.conf; 中设置。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.assertions">
<term>
<parameter>zend.assertions</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
当设置为 <literal>1</literal> 时,生成断言代码并执行(开发模式)。当设置为 <literal>0</literal> 时,将生成断言代码,但运行时会跳过(不执行)。当设置为
<literal>-1</literal> 时,不生成断言代码,使断言成本为零(生产模式)。
</simpara>
<note>
<para>
如果在生产模式下启动进程,则 <link linkend="ini.zend.assertions">zend.assertions</link> 不能在运行时修改,因为未生成断言代码。
</para>
<para>
如果在开发模式下启动进程,则 <link linkend="ini.zend.assertions">zend.assertions</link> 不能在运行时设置为 <literal>-1</literal>。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.exception-string-param-max-len">
<term>
<parameter>zend.exception_string_param_max_len</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
字符串化栈追踪中字符串函数参数的最大长度。必须介于 <literal>"0"</literal> 和 <literal>"1000000"</literal> 之间。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.hard-timeout">
<term>
<parameter>hard_timeout</parameter>
<type>int</type>
</term>
<listitem>
<para>
当命中 <link linkend="ini.max-execution-time">max_execution_time</link> 中设置的超时的时候,PHP
运行时将会优雅的销毁资源。如果在这时卡住,硬超时将计时设置的秒数。当命中硬超时的时候,PHP 将异常退出。当设置为 0
时,硬超时始终不会激活。
</para>
<para>
当 PHP 因硬超时而停止时,它看起来像这样:
<screen>
<![CDATA[
Fatal error: Maximum execution time of 30+2 seconds exceeded (terminated) in Unknown on line 0
]]>
</screen>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.exception-ignore-args">
<term>
<parameter>zend.exception_ignore_args</parameter>
<type>bool</type>
</term>
<listitem>
<para>
从异常产生的栈中排除参数。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.multibyte">
<term>
<parameter>zend.multibyte</parameter>
<type>bool</type>
</term>
<listitem>
<para>
启用多字节编码的源文件解析。启用 zend.multibyte 是使用 SJIS、BIG5 等在多字节字符串数据中包含特殊字符的字符编码所必需的。ISO-8859-1
兼容的编码,如 UTF-8、EUC 等,则不需要这个选项。
</para>
<para>
启用 zend.multibyte 需要 mbstring 扩展可用。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.script-encoding">
<term>
<parameter>zend.script_encoding</parameter>
<type>string</type>
</term>
<listitem>
<para>
除非在脚本顶部出现 <link linkend="control-structures.declare.encoding">declare(encoding=...)</link>
指令,否则将会使用此值。当使用不兼容 ISO-8859-1 的编码时,必须同时使用 zend.multibyte 和 zend.script_encoding。
</para>
<para>
文本字符串将从 zend.script_encoding 直译为 mbstring.internal_encoding,就像调用了
<function>mb_convert_encoding</function> 一样。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.detect-unicode">
<term>
<parameter>zend.detect_unicode</parameter>
<type>bool</type>
</term>
<listitem>
<para>
检查 BOM(Byte Order Mark,即字节顺序标记)并查看文件是否包含有效的多字节字符。此检测可以在处理 <function>__halt_compiler</function>
执行。仅在 Zend 多字节模式下使用。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.zend.signal-check">
<term>
<parameter>zend.signal_check</parameter>
<type>bool</type>
</term>
<listitem>
<para>
在关闭时检查替换的信号处理程序。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.exit-on-timeout">
<term>
<parameter>exit_on_timeout</parameter>
<type>bool</type>
</term>
<listitem>
<para>
这是 Apache1 mod_php-only 指令,如果 PHP 执行超时,会强制 Apache 子程序退出。这样的超时会导致
Apache1 内部的 longjmp() 调用,从而使一些扩展处于不一致的状态。通过终止进程,将会清除任何未完成的锁或内存。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="ini.sect.resource-limits">
<title>资源限制</title>
<para>
<table>
<title>资源限制</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.memory-limit">memory_limit</link></entry>
<entry>"128M"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.memory-limit">
<term>
<parameter>memory_limit</parameter>
<type>int</type>
</term>
<listitem>
<para>
设置了允许脚本分配的最大内存量,以字节为单位。这有助于防止写得不好的脚本吃掉服务器上所有可用的内存。请注意,如果不需要内存限制,请将此指令设置为
<literal>-1</literal>。
</para>
&ini.shorthandbytes;
</listitem>
</varlistentry>
</variablelist>
</para>
<para>
请参阅:<link linkend="ini.max-execution-time">max_execution_time</link>。
</para>
</section>
<section xml:id="ini.sect.performance">
<title>性能调整</title>
<para>
<table>
<title>性能调整</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.realpath-cache-size">realpath_cache_size</link></entry>
<entry>"4M"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry>PPHP 7.0.16 和 7.1.2 之前,默认值为 <literal>"16K"</literal></entry>
</row>
<row>
<entry><link linkend="ini.realpath-cache-ttl">realpath_cache_ttl</link></entry>
<entry>"120"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>
启用 <link linkend="ini.open-basedir">open_basedir</link> 将会
<emphasis>禁用</emphasis> realpath 缓存。
</para>
</note>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.realpath-cache-size">
<term>
<parameter>realpath_cache_size</parameter>
<type>int</type>
</term>
<listitem>
<para>
设定 PHP 使用的 realpath 缓存的大小。在
PHP 打开很多文件的系统中,这个值应该增加,以优化执行文件操作的数量。
</para>
<para>
这里的大小表示存储的路径字符串的总字节数,加上与缓存条目相关的数据大小。这意味着,为了在缓存中存储更长的路径,缓存大小必须更大。这个值不直接控制可以缓存的不同路径的数量。
</para>
<para>
缓存输入数据所需的大小取决于操作系统。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.realpath-cache-ttl">
<term>
<parameter>realpath_cache_ttl</parameter>
<type>int</type>
</term>
<listitem>
<para>
缓存指定文件或目录的真实路径信息的持续时间(以秒为单位)。对于很少改变文件的系统,可以考虑增加该值。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="ini.sect.data-handling">
<title>数据处理</title>
<para>
<table>
<title>数据处理配置选项</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.arg-separator.output">arg_separator.output</link></entry>
<entry>"&"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.arg-separator.input">arg_separator.input</link></entry>
<entry>"&"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.variables-order">variables_order</link></entry>
<entry>"EGPCS"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.request-order">request_order</link></entry>
<entry>""</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.auto-globals-jit">auto_globals_jit</link></entry>
<entry>"1"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.register-argc-argv">register_argc_argv</link></entry>
<entry>"1"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.enable-post-data-reading">enable_post_data_reading</link></entry>
<entry>"1"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.post-max-size">post_max_size</link></entry>
<entry>"8M"</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.auto-prepend-file">auto_prepend_file</link></entry>
<entry>NULL</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.auto-append-file">auto_append_file</link></entry>
<entry>NULL</entry>
<entry><constant>INI_PERDIR</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.default-mimetype">default_mimetype</link></entry>
<entry>"text/html"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.default-charset">default_charset</link></entry>
<entry>"UTF-8"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.input-encoding">input_encoding</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.output-encoding">output_encoding</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.internal-encoding">internal_encoding</link></entry>
<entry>""</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
&ini.descriptions.title;
<para>
<variablelist>
<varlistentry xml:id="ini.arg-separator.output">
<term>
<parameter>arg_separator.output</parameter>
<type>string</type>
</term>
<listitem>
<para>
在 PHP 生成的 URL 中用来分隔参数的分隔符。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.arg-separator.input">
<term>
<parameter>arg_separator.input</parameter>
<type>string</type>
</term>
<listitem>
<para>
PHP 用于将输入的 URL 解析为变量的分隔符列表。
</para>
<note>
<para>
本指令中的每一个字符都被视为分隔符!
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.variables-order">
<term>
<parameter>variables_order</parameter>
<type>string</type>
</term>
<listitem>
<para>
设置 EGPCS(<literal>E</literal>nvironment、<literal>G</literal>et、<literal>P</literal>ost、<literal>C</literal>ookie 和
<literal>S</literal>erver)变量解析的顺序。例如,如果 variables_order 设置为 <literal>"SP"</literal>,然后 PHP 将创建 &link.superglobals;
<varname>$_SERVER</varname> 和 <varname>$_POST</varname>,但不会创建 <varname>$_ENV</varname>、<varname>$_GET</varname> 和
<varname>$_COOKIE</varname>。设置为 "" 意味着不会设置 &link.superglobals;。
</para>
<warning>
<para>
在 CGI 和 FastCGI SAPI 中,<varname>$_SERVER</varname> 也包含环境的值;<literal>S</literal> 始终等同于 <literal>ES</literal>,而不关心
<literal>E</literal> 在该指令中的位置。
</para>
</warning>
<note>
<para>
<varname>$_REQUEST</varname> 的内容和顺序也受到此指令的影响。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.request-order">
<term>
<parameter>request_order</parameter>
<type>string</type>
</term>
<listitem>
<para>
该指令描述了 PHP 将 GET、POST 和 Cookie 变量注册到 _REQUEST 数组中的顺序。注册是从左到右完成的,新值覆盖旧值。
</para>
<para>
如果未设置此指令,则 <link linkend="ini.variables-order">variables_order</link> 用于 <varname>$_REQUEST</varname> 内容。
</para>
<para>
请注意,出于安全考虑,默认分发的 <filename>php.ini</filename> 文件不包含 cookie 的 <literal>'C'</literal>。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.auto-globals-jit">
<term>
<parameter>auto_globals_jit</parameter>
<type>bool</type>
</term>
<listitem>
<para>
启用后,SERVER、REQUEST 和 ENV 变量在首次使用时(即时)创建,而不是在脚本启动时创建。如果这些变量未在脚本中使用,启用此指令将提高性能。
</para>
<warning>
<para>
在编译期间检查 SERVER、REQUEST 和 ENV 变量的使用,因此通过<link linkend="language.variables.variable">可变变量</link>使用它们将不会使其初始化。
</para>
</warning>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.register-argc-argv">
<term>
<parameter>register_argc_argv</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
告诉 PHP 是否声明 argv & argc 变量(将包含 GET 信息)。
</simpara>
<simpara>
另请参阅<link linkend="features.commandline">命令行</link>。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.enable-post-data-reading">
<term>
<parameter>enable_post_data_reading</parameter>
<type>bool</type>
</term>
<listitem>
<simpara>
禁用这个选项会导致<emphasis>不会</emphasis>填充 <varname>$_POST</varname> 和 <varname>$_FILES</varname>。读取 postdata 的唯一方法是通过
<link linkend="wrappers.php">php://input</link> 流封装协议。这对于代理请求或以高效内存的方式处理 POST 数据很有用。
</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.post-max-size">
<term>
<parameter>post_max_size</parameter>
<type>int</type>
</term>
<listitem>
<simpara>
设置允许 post 数据的最大大小。此设置也会影响文件上传。要上传大文件,此值必须大于 <link linkend="ini.upload-max-filesize">upload_max_filesize</link>。
</simpara>
<simpara>
一般来说,<link linkend="ini.memory-limit">memory_limit</link> 应该大于 <parameter>post_max_size</parameter>。
</simpara>
&ini.shorthandbytes;
<simpara>
如果 post 数据的大小大于 post_max_size,则 <varname>$_POST</varname> 和 <varname>$_FILES</varname>
<link linkend="language.variables.superglobals">超全局变量</link>为空。这可以通过多种方式进行跟踪,例如通过将 <varname>$_GET</varname> 变量传递给处理数据的脚本,即
<literal><form action="edit.php?processed=1"></literal>,然后检查是否设置了 <varname>$_GET['processed']</varname>。
</simpara>
<para>
<note>
<para>
PHP 允许使用字节值的快捷方式,包括 K(千)、M(兆)和 G(千兆)。如果使用其中任何一个,PHP 将自动进行转换。注意不要超过 32 位有符号整数限制(如果使用的是 32 位版本),因为这会导致脚本失败。
</para>
</note>
</para>
<para>
<table>
<title><literal>post_max_size</literal> 变更日志</title>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>5.3.4</entry>
<entry>
<parameter>post_max_size</parameter> = 0 will not disable the limit when the content
type is application/x-www-form-urlencoded or is not registered with PHP.
</entry>
</row>
<row>
<entry>5.3.2 , 5.2.12</entry>
<entry>
通过将 <parameter>post_max_size</parameter> 设置为 0 来允许无限制的 post 大小。
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.auto-prepend-file">
<term>
<parameter>auto_prepend_file</parameter>
<type>string</type>
</term>
<listitem>
<para>
指定在主文件之前自动解析的文件名。included 该文件像是用 <function>require</function> 函数调用的一样,因此使用了 <link linkend="ini.include-path">include_path</link>。
</para>
<para>
特殊值 <literal>none</literal> 禁用 auto-prepending。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.auto-append-file">
<term>
<parameter>auto_append_file</parameter>
<type>string</type>
</term>
<listitem>
<para>
指定在主文件之后自动解析的文件名。included 该文件像是用 <function>require</function> 函数调用的一样,因此使用了 <link linkend="ini.include-path">include_path</link>。
</para>
<para>
特殊值 <literal>none</literal> 禁用 auto-prepending。
<note>
<simpara>
如果脚本以 <function>exit</function> 终止,则<emphasis>不会</emphasis>发生 auto-append。
</simpara>
</note>
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.default-mimetype">
<term>
<parameter>default_mimetype</parameter>
<type>string</type>
</term>
<listitem>
<para>
默认情况下,PHP 将使用 Content-Type 标头输出媒体类型。只需将其设置为空即可禁用。
</para>
<para>
PHP 内置默认媒体类型设置为 text/html。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.default-charset">
<term>
<parameter>default_charset</parameter>
<type>string</type>
</term>
<listitem>
<para>
“UTF-8”是默认值,如果省略 <parameter>encoding</parameter> 参数,它的值将用作 <function>htmlentities</function>、<function>html_entity_decode</function> 和 <function>htmlspecialchars</function>
的默认字符编码。 如果未设置 <link linkend="ini.iconv.input-encoding"><parameter>iconv.input_encoding</parameter></link>、<link linkend="ini.iconv.output-encoding"><parameter>iconv.output_encoding</parameter></link>
和 <link linkend="ini.iconv.internal-encoding"><parameter>iconv.internal_encoding</parameter></link> 配置选项,则 <parameter>default_charset</parameter> 的值也将用于设置 <link linkend="book.iconv">iconv</link>
函数的默认字符集,如果 <link linkend="ini.mbstring.http-input"><parameter>mbstring.http_input</parameter></link> <link linkend="ini.mbstring.http-output"><parameter>mbstring.http_output</parameter></link>
<link linkend="ini.mbstring.internal-encoding"><parameter>mbstring.internal_encoding</parameter></link> 配置选项未设置,则也可用于 <link linkend="book.mbstring">mbstring</link> 函数。
</para>
<para>
如果标头未通过调用 <function>header</function> 覆盖,则所有版本的 PHP 都将使用此值作为 PHP 发送的默认 Content-Type 报头中的字符集。
</para>
<para>
不推荐设置 <parameter>default_charset</parameter> 为空字符串。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.input-encoding">
<term>
<parameter>input_encoding</parameter>
<type>string</type>
</term>
<listitem>
<para>
此设置用于多字节模块,例如 mbstring 和 iconv。 默认为空。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.output-encoding">
<term>
<parameter>output_encoding</parameter>
<type>string</type>
</term>
<listitem>
<para>
此设置用于多字节模块,例如 mbstring 和 iconv。 默认为空。
</para>
</listitem>
</varlistentry>
<varlistentry xml:id="ini.internal-encoding">
<term>
<parameter>internal_encoding</parameter>
<type>string</type>
</term>
<listitem>
<para>
此设置用于多字节模块,例如 mbstring 和 iconv。 默认为空。 如果为空,则使用 <link linkend="ini.default-charset">default_charset</link>。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</section>
<section xml:id="ini.sect.path-directory">
<title>路径和目录</title>
<para>
<table>
<title>路径和目录配置项</title>
<tgroup cols="4">
<thead>
<row>
<entry>&Name;</entry>
<entry>&Default;</entry>
<entry>&Changeable;</entry>
<entry>&Changelog;</entry>
</row>
</thead>
<tbody>
<row>
<entry><link linkend="ini.include-path">include_path</link></entry>
<entry>".;/path/to/php/pear"</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.open-basedir">open_basedir</link></entry>
<entry>NULL</entry>
<entry><constant>INI_ALL</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.doc-root">doc_root</link></entry>
<entry>NULL</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.user-dir">user_dir</link></entry>
<entry>NULL</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.user-ini.cache-ttl">user_ini.cache_ttl</link></entry>
<entry>"300"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.user-ini.filename">user_ini.filename</link></entry>
<entry>".user.ini"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.extension-dir">extension_dir</link></entry>
<entry>"/path/to/php"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.extension">extension</link></entry>
<entry>NULL</entry>
<entry>&php.ini; only</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.zend-extension">zend_extension</link></entry>
<entry>NULL</entry>
<entry>&php.ini; only</entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.check-shebang-line">cgi.check_shebang_line</link></entry>
<entry>"1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.discard-path">cgi.discard_path</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.fix-pathinfo">cgi.fix_pathinfo</link></entry>
<entry>"1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.force-redirect">cgi.force_redirect</link></entry>
<entry>"1"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.nph">cgi.nph</link></entry>
<entry>"0"</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>
</row>
<row>
<entry><link linkend="ini.cgi.redirect-status-env">cgi.redirect_status_env</link></entry>
<entry>NULL</entry>
<entry><constant>INI_SYSTEM</constant></entry>
<entry></entry>