International PHP Conference Berlin 2025

运行时配置

这些函数的行为受 php.ini 中的设置影响。

文件系统和流配置选项
名字 默认 可修改范围 更新日志
allow_url_fopen "1" INI_SYSTEM  
allow_url_include "0" INI_SYSTEM 自 PHP 7.4.0 起废弃。
user_agent NULL INI_ALL  
default_socket_timeout "60" INI_ALL  
from "" INI_ALL  
auto_detect_line_endings "0" INI_ALL 自 PHP 8.1.0 起弃用。
sys_temp_dir "" INI_SYSTEM  

这是配置指令的简短说明。

allow_url_fopen bool

本选项激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象例如文件。默认的封装协议提供用 ftp 和 http 协议来访问远程文件,一些扩展库例如 zlib 可能会注册更多的封装协议。

allow_url_include bool

This option allows the use of URL-aware fopen wrappers with the following functions: include, include_once, require, require_once.

注意:

这个设置项需要开启 allow_url_fopen 。

user_agent string

定义 PHP 发送的 User-Agent。

default_socket_timeout int

指定基于 socket 的流的默认超时时间(秒)。指定一个负值意味着不会超时。

from string

这个 email 地址在使用 ftp 封装器的时候用于未认证的 FTP 连接,在使用 http 封装器的时候用于 HTTP 连接的消息头中的 From 字段。

auto_detect_line_endings bool

当设为 On 时,PHP 将检查通过 fgets()file() 取得的数据中的行结束符号是符合 Unix,MS-DOS,还是 Macintosh 的习惯。

这使得 PHP 可以和 Macintosh 系统交互操作,但是默认值是 Off,因为在检测第一行的 EOL 习惯时会有很小的性能损失,而且在 Unix 系统下使用回车符号作为项目分隔符的人们会遭遇向下不兼容的行为。

sys_temp_dir string

添加备注

用户贡献的备注 1 note

up
116
Pistachio
12 years ago
I'm surprised this isn't mentioned in docs here, but to set these values at runtime use "ini_set()". For example:

<?php
ini_set
("auto_detect_line_endings", true);

// Now I can invoke fgets() on files that contain silly \r line endings.
?>
To Top