fopen

(PHP 3, PHP 4 )

fopen -- Abri um arquivo ou uma URL

Descrição

int fopen ( string filename, string mode [, int use_include_path [, resource zcontext]])

fopen() conecta um recurso nomeado, especificado em filename para um stream. Se filename está na forma "protocolo://...", é assumido que seja uma URL e o PHP irá procurar por um manipulador de protocolo (também conhecido como wrapper) conforme o prefixo. Se nenhum wrapper para o protocolo estiver registrado, o PHP irá emitir um alerta para ajudá-lo a rastrear problemas potenciais em seu script, presumindo que filename é um nome de arquivo comum.

Se o PHP decidir que filename se refere a um arquivo local, então ele tentará abrir o stream para aquele arquivo. Esse arquivo precisa ser acessível pelo PHP, então você precisa certificar-se que as permissões de acesso que garantam esse acesso. Se você está com safe_mode ativado ou open_basedir, essas restrições serão aplicadas.

Se o PHP decidir que filename se refere a um protocolo registrado, e que o protocolo está registrado como um URL de rede, o PHP irá verificar se allow_url_fopen está ativado. Se ele estiver desligado, o PHP irá emitir um alerta e a chamada a fopen irá falhar.

Nota: A lista de protocolos registrados pode ser encontrada em Apêndice I.

mode especifica a tipo de acesso que você requer na stream. Ele pode ser um dos seguintes:

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 necessário, será ignorado. Você é encorajado a incluir o modo 'b' de forma a tornar seus scripts mais portáveis.

Você pode usar o terceiro pparâmetro opcional como "1", se você quiser procurar pelo arquivo no include_path também.

O quarto parâmetro zcontext (opcional) é utilizado especificamente para ajuste de parâmetros e callbacks.

Se a abertura falhar, a função retorna FALSE.

Exemplo 1. exemplo do fopen()

<?php
$fp = fopen ("/home/rasmus/file.txt", "r");
$fp = fopen ("/home/rasmus/file.gif", "wb");
$fp = fopen ("http://www.example.com/", "r");
$fp = fopen ("ftp://user:password@example.com/", "w");
?>

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 que os arquivos e diretórios que você está usando precisam ser acessíveis ao processo do servidor HTTP.

Na plataforma Windows, tenha cuidado para usar uma segunda barra invertida (escape) nos caminhos de arquivos, ou usar a barra normal.

<?php
$fp = fopen ("c:\\data\\info.txt", "r");
?>

Veja também: Apêndice I, fclose(), fgets(), fsockopen(), file(), file_exists(), is_readable(), socket_set_timeout() e popen().