Configurações em Execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Opções de configuração do Filesystem e Streams
Nome Padrão Modificável Changelog
allow_url_fopen "1" PHP_INI_SYSTEM  
allow_url_include "0" PHP_INI_SYSTEM Obsoleto desde o PHP 7.4.0.
user_agent NULL PHP_INI_ALL  
default_socket_timeout "60" PHP_INI_ALL  
from "" PHP_INI_ALL  
auto_detect_line_endings "0" PHP_INI_ALL  
sys_temp_dir "" PHP_INI_SYSTEM  

Uma rápida explicação das diretivas de configuração.

allow_url_fopen bool

Esta opção ativa o dispositivo URL fopen wrappers que permite o acesso a objetos URL como arquivos. São disponibilizados por padrão wrappers para acesso de arquivos remotos utilizando os protocolos FTP ou HTTP, e algumas extensões como a zlib podem registar wrappers adicionais.

allow_url_include boolean

Esta função permite o uso de wrappers URL com as seguintes funções include, include_once, require, require_once.

Nota:

Esta definição requer que allow_url_fopen esteja on.

user_agent string

Define o user agent que o PHP irá enviar.

default_socket_timeout int

Timeout padrão (em segundos) para streams baseados em socket. Informar um valor negativo significa timeout infinito.

from string

O endereço de email a ser utilizado em conexões FTP sem autenticação e o valor do header From de conexões HTTP, quando utilizando os wrappers ftp e http, respectivamente.

auto_detect_line_endings bool

Quando ativo, o PHP irá examinar os dados lidos por fgets() e file() para verificar se está sendo utilizado a convenção de fim de linha Unix, MS-DOS ou Macintosh.

Isto ativa a interoperabilidade do PHP com sistemas Macintosh, mas seu padrão é Off, porque isso causa uma pequena perda de performance na detecção da convenção de fim de linha num primeiro momento e porque as pessoas que utilizam o fim de linha como separadores de itens sob sistemas Unix podem experimentar problemas de falta de compatibilidade.

sys_temp_dir string

add a note add a note

User Contributed Notes 3 notes

up
128
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.
?>
up
-10
traian dot bratucu at gmail dot com
7 years ago
Please note that although you may try to set default_socket_timeout to something over 20s, you may get tricked by the Linux kernel.

The default value of tcp_syn_retries is set to 5, which will effectively timeout any TCP connection after roughly 20s, no matter what limits you set in PHP higher than this.

The value can be altered by root only, like this:

echo 6 > /proc/sys/net/ipv4/tcp_syn_retries

A value of 6, as above, will give you a timeout up to ~45s.
up
-16
Chris
7 years ago
If you want to use auto_detect_line_endings, e.g. to recognize carriage return on a Classic Mac file, you must set it before calling fopen. You can then reset it to its original value. E.g,

$original = ini_get("auto_detect_line_endings");
ini_set("auto_detect_line_endings", true);
$handle = fopen($someFile, "r");
ini_set("auto_detect_line_endings", $original);
while (($line = fgets($handle)) !== false) {
  echo "$line\n"; // etc
}

(Reference: https://bugs.php.net/bug.php?id=63341&edit=2)

Keep in mind also that Mac OS X bash does not handle carriage returns well, so if it seems like your code is not working when testing from the command line, redirect your output to a file and then try looking at that. On my system, doing it directly on the command line only showed the last line (with or without this setting turned on).

Also note that this will not do what you want if you have a file with mixed line endings (!). If you really care about that case, you have to do something else, like run the file through a translation first and then read it.
To Top