Se nomedoarquivo começa com "http://" (não diferencia entre caracteres maiusculas e minusculas), uma conexão HTTP 1.0 é aberta para o servidor especificado, a página é requisitada usando o método HTTP GET, e um ponteiro de arquivo é retornado no começo do corpo da resposta. O cabeçalho 'Host:' é enviado com o pedido para que virtual hosts baseados em nomes sejam suportados.
Note que o ponteiro de arquivo deixa você retirar somente o corpo(body) da resposta; você não pode acessar o cabeçalho de resposta HTTP usando esta função.
Versões anteriores a PHP 4.0.5 não suportam redirecionamentos HTTP. Por causa disso, diretórios devem incluir a barra no final.
Se nomedoarquivo começa com "ftp://" (não diferencia entre caracteres maiusculas e minusculas também), uma conexão para o servidor especificado é aberta e um ponteiro para o arquivo perdido é retornado. Se o servidor não suporta modo passivo, isto irá falhar. Você pode abrir arquivos tanto para leitura quanto para gravação via ftp (mas não para ambos simultâneamente).
Se nomedoarquivo é ou "php://stdin", ou "php://stdout", ou "php://stderr", o correspondente stream stdio será aberto. (Isto foi introduziso no PHP 3.0.13; em versões anteriores, um nome de arquivo como "/dev/stdin" ou "/dev/fd/0" deve ser usado para acessar os streams stdio.)
Se nomedoarquivo começa com qualquer outra coisa, o arquivo será aberto no filesystem e um ponteiro para o arquivo será retornado.
Se a abertura falhar, a função retornará FALSE.
mode pode ser qualquer um dos seguintes:
'r' - Abrir somente para leitura; coloca o ponteiro de arquivo no começo do arquivo.
'r+' - Abrir para leitura e gravação; colocar o ponteiro de arquivo no começo do arquivo.
'w' - Abrir somente para gravação; colocar o ponteiro de arquivo no começo do arquivo e truncar o arquivo para tamanho zero. Se o arquivo não existir, tentar cria-lo.
'w+' - Abrir para leitura e escrita; colocar o ponteiro de arquivo no início do arquivo e truncar o arquivo para tamanho zero. Se o arquivo não existir, tentar cria-lo.
'a' - Abrir o arquivo somente para escrita; colocar o ponteiro de arquivo no fim do arquivo. Se o arquivo não existe, tentar cria-lo.
'a+' - Abrir o arquivo para leitura e gravação; colocar o ponteiro no fim do arquivo. Se o arquivo não existe, tentar cria-lo.
Nota: O mode pode conter a letra 'b'. Isto é útil somente em sistemas que diferenciam entre arquivos binários e texto (por exemplo Windows. É inútil em Unix). Se não nescessário, será ignorado.
Você pode usar o terceiro parametro opctional como "1", se você quer procurar pelo arquivo no include_path, também.
Se você está tendo problemas com a leitura e gravação para arquivos e você está usando a versão de modulo de servidor do PHP, lembre-se de ter certeza que os arquivos e diretórios que você está usando precisam ser acessíveis ao processo do servidor de HTTP.
Na plataforma Windows, tenha cuidado para usar uma segunda barra invertida (escape) usada no path de um arquivo, ou usar a barra normal.
Veja também fclose(), fsockopen(), socket_set_timeout(), e popen().