这些函数的行为受 php.ini 中的设置影响。
名字 | 默认 | 可修改范围 | 更新日志 |
---|---|---|---|
allow_url_fopen | "1" | PHP_INI_SYSTEM | 在 PHP <= 4.3.4 时是 PHP_INI_ALL。PHP 4.0.4 版以后可用。 |
user_agent | NULL | PHP_INI_ALL | PHP 4.3.0 版以后可用。 |
default_socket_timeout | "60" | PHP_INI_ALL | PHP 4.3.0 版以后可用。 |
from | "" | PHP_INI_ALL | |
auto_detect_line_endings | "0" | PHP_INI_ALL | PHP 4.3.0 版以后可用。 |
这是配置指令的简短说明。
allow_url_fopen
boolean
本选项激活了 URL 形式的 fopen 封装协议使得可以访问 URL 对象例如文件。默认的封装协议提供用 ftp 和 http 协议来访问远程文件,一些扩展库例如 zlib 可能会注册更多的封装协议。
Note:
出于安全性考虑,此选项只能在 php.ini 中设置。
Note:
此选项是紧接着版本 4.0.3 发布后引进的。版本 4.0.3 以及之前的版本只能在编译时通过配置项
--disable-url-fopen-wrapper
来取消此特性。
Windows 版在 PHP 4.3.0 之前,以下函数不支持远程文件访问: include, include_once, require, require_once 和GD and Image 函数中的 imagecreatefromXXX 函数。
allow_url_include
boolean
This option allows the use of URL-aware fopen wrappers with the following functions: include, include_once, require, require_once.
Note:
This setting requires allow_url_fopen to be on.
user_agent
string
定义 PHP 发送的 User-Agent。
default_socket_timeout
integer
基于 socket 的流的默认超时时间(秒)。
Note: 本配置参数是 PHP 4.3.0 引进的。
from
string
定义匿名 ftp 的密码(email 地址)。
auto_detect_line_endings
boolean
当设为 On 时,PHP 将检查通过 fgets() 和 file() 取得的数据中的行结束符号是符合 Unix,MS-DOS,还是 Macintosh 的习惯。
这使得 PHP 可以和 Macintosh 系统交互操作,但是默认值是 Off,因为在检测第一行的 EOL 习惯时会有很小的性能损失,而且在 Unix 系统下使用回车符号作为项目分隔符的人们会遭遇向下不兼容的行为。
Note: 本配置参数是 PHP 4.3.0 引进的。
Pistachio (2012-01-31 21:53:20)
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.
?>
Snow IT (2011-03-17 12:16:39)
Just a quick note: setting default_socket_timeout to zero causes file_get_contents(<url>) to immediately fail.
We were under the (false) impression that zero meant never time out.