fopen

(PHP 3, PHP 4 )

fopen -- Otevře soubor nebo URL

Popis

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

Jestliže filename začíná "http://" (velkými nebo malými písmeny), je otevřeno spojení na příslušný server protokolem HTTP 1.0 a je vrácen deskriptor ukazující na začátek těla dokumentu. Posílá se hlavička 'Host:' pro přístup k virtuálním serverům založeným na jméně.

Nezpracovává HTTP přesměrování, je třeba vložit koncové lomítko za název adresáře.

Když filename začíná "ftp://" (velká či malá písmena), je otevřena FTP relace na příslušný server a vrácen deskriptor na požadovaný soubor. Pokud server nepodporuje pasivní režim FTP komunikace, selže to. Můžete přes FTP otvírat soubory pro čtení i zápis, ale ne pro obojí najednou.

Když filename je buď "php://stdin", "php://stdout", nebo "php://stderr", bude otevřen standardní vstup/výstup (stdio). (To platí od verze PHP 3.0.13; v dřívějších verzích se musí použít názvy jako "/dev/stdin" nebo "/dev/fd/0".)

Když filename začíná čímkoli jiným, bude otevřen obyčejný soubor (z filesystému) a vrácen jeho deskriptor.

Pokud otvírání selže, funkce vrátí FALSE.

mode může být kterýkoli z těchto:

mode může obsahovat písmeno 'b'. To je užitečné pouze na systémech které rozlišují mezi binárními a textovými soubory (nikoli např. na Unixu). Pokud není zapotřebí, je ignorován.

Můžete použít nepovinný třetí parametr a nastavit ho na "1", pokud chcete hledat soubor také v include_path.

Příklad 1. fopen() příklad

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

Pokud jste zaznamenali problémy se čtením a zápisem do souborů a používáte PHP jako modul do serveru, nezapomeňte zajistit, aby soubory a adresáře, které používáte, byly přístupné pro serverový proces.

Na Windows je třeba oescapovat všechna zpětná lomítka ve specifikaci cesty k souboru nebo používat obyčejná (dopředná) lomítka.

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

Viz také fclose(), fsockopen(), socket_set_timeout(), a popen().