入门 - 配置文件

  • 作者:KK

  • 发表日期:2016.8.17


要点速读

  1. phpinfo函数输出的结果中,在前面一段内容就能知道配置文件在哪里,熟悉后自己直接找就是了

  2. 配置文件支持;号作为注释符号

  3. 配置选项的写法都是配置名称 = 配置值


PHP平时运行代码其实是受到配置文件的控制的,所以我们有必要初步认识一下配置文件

代码怎么写章节里底下的phpinfo函数输出信息中可以看到配置文件的路径

配置文件一般位于php目录下,名叫php.ini

打开配置文件,内容大概这样的:

[PHP]

;;;;;;;;;;;;;;;;;;;
; About php.ini   ;
;;;;;;;;;;;;;;;;;;;
;下面是一些介绍
; PHP's initialization file, generally called php.ini, is responsible for
; configuring many of the aspects of PHP's behavior.

; PHP attempts to find and load this configuration from a number of locations.
; The following is a summary of its search order:
; 1. SAPI module specific location.
; 2. The PHPRC environment variable. (As of PHP 5.2.0)
; 3. A number of predefined registry keys on Windows (As of PHP 5.2.0)
; 4. Current working directory (except CLI)
; 5. The web server's directory (for SAPI modules), or directory of PHP
; (otherwise in Windows)
; 6. The directory from the --with-config-file-path compile time option, or the
; Windows directory (C:\windows or C:\winnt)
; See the PHP docs for more specific information.
; http://php.net/configuration.file

;...
;....
;.....
;......
;.......更多中间内容忽略吧

;;;;;;;;;;;;;;;;;;;;
; php.ini Options  ;
;;;;;;;;;;;;;;;;;;;;
; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
;user_ini.filename = ".user.ini"

; To disable this feature set this option to empty value
;user_ini.filename =

; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
;user_ini.cache_ttl = 300

;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;

; Enable the PHP scripting language engine under Apache.
; http://php.net/engine
engine = On

; This directive determines whether or not PHP will recognize code between
; <? and ?> tags as PHP source which should be processed as such. It is
; generally recommended that <?php and ?> should be used and that this feature
; should be disabled, as enabling it may result in issues when generating XML
; documents, however this remains supported for backward compatibility reasons.
; Note that this directive does not control the <?= shorthand tag, which can be
; used regardless of this directive.
; Default Value: On
; Development Value: Off
; Production Value: Off
; http://php.net/short-open-tag
short_open_tag = Off

;.......更多配置

配置文件内容很多,我们也不用全部记下来,需要改哪个就找哪个是了

其中;号是注释符号,所注释的内容大部分都在讲解下面的一个个配置的意思,要注意什么,必要时还会说明有哪些配置值

而其它正式的配置内容通常都是配置名称 = 配置值,比如error_reporting = E_ALL,error_reporting就是配置的名称,用于控制“发生了哪个级别以下的错误就报错”,而E_ALL这就是配置的值


尝试修改一下配置

咱们将error_reporting的配置值修改成E_WARNING,保存配置文件之后要重启服务器,在phpStudy里的话就直接点主界面的重启即可

然后运行如下代码时不会报错:

$a = [];
echo $a[2];

以上代码中$a是一个空数组,然后输出数组下标为2的元素,当然是没有值了,因为数组就是空的嘛

再将error_reporting的配置值修改成E_ALL,重启服务器再运行代码就会出现如下报错:

Notice: Undefined offset: 2 in D:\phpStudy\WWW\index.php on line 3

用ini_set函数修改配置

配置文件中的error_reporting选项控制报错级别,也有对应的error_reporting函数来在运行的时候动态设置报错级别

其实我们还可以通过ini_set函数动态地修改配置来实现控制报错级别,比如ini_set('error_reporting', E_ALL);

其实php.ini配置里有很多configName = value的配置项,都可以用ini_set函数来修改


总结

好了咱们已经初始体会到配置文件如何控制PHP的运行的了,它不止是控制报错不报错,还控制一些内存大小,接收数据的方式,禁止使用的函数等

本节只是初步介绍一下配置文件,未来将大部分基础讲完后会有专门的章节讲常用配置