fopen

(PHP 3, PHP 4 )

fopen -- Otwiera plik lub URL

Opis

int fopen ( string nazwa_pliku, string tryb [, int użyj_include_path])

Jeśli nazwa_pliku zaczyna się od "http://" (nie jest rozróżniana wielkość liter), jest otwierane połączenie HTTP 1.0 do wybranego serwera, strona jest żądana używając metody HTTP GET i wskaźnik pliku jest ustawiany na początku ciała odpowiedzi. Nagłówek 'Host:' jest wysyłany z żądaniem pozwalającym uchwycić oparte o nazwę wirtualne hosty.

W PHP 4.3.0 (jeszcze nie udostępnionym), jeśli masz wkompilowane wsparcie dla OpenSSL, możesz użyć "https://" aby otworzyć połączenie HTTP po SSL.

Zauważ, że wskaźnik pliku pozwala tobie odczytać tylko ciało odpowiedzi; aby uzyskać nagłówek HTTP musisz użyć wersji PHP 4.0.5 lub nowszej. Nagłówki są przechowywane w zmiennej $http_response_header. W PHP 4.3.0 (jeszcze nie udostępnionym), informacja z nagłowka może być pobrana używając funkcji file_get_wrapper_data().

Połączenia HTTP są tylko do odczytu, nie możesz zapisać danych lub kopiować plików do zasobu HTTP.

Wersje przed PHP 4.0.5 nie obsługują przekierowań HTTP. Z tego powodu katalogi muszą zawierać kończące slashe.

Jeśli nazwa_pliku zaczyna się od "ftp://" (nie jest rozróżniana wielkość znaków), jest otwierane połączenie ftp do podanego serwera i zwracany jest wskaźnik do żądanego pliku. jeśli serwer nie obsługuje trybu pasywnego ftp, ta funkcja zawiedzie. Możesz otwierać pliki albo do odczytu lub zapisu przez ftp (ale nie oba tryby równocześnie). Jeśli zdalny plik już istnieje na serwerze FTP i spróbujesz otworzyć go do zapisu, ta funkcja zawiedzie. jeśli potrzebujesz zmodyfikować istniejące pliki przez FTP, użyj ftp_connect().

Jeśli nazwa_pliku jest jedną z możliwości "php://stdin", "php://stdout" lub "php://stderr" zostanie otworzony odpowiedni strumień stdio. (To zostało wprowadzone w PHP 3.0.13; we wcześniejszych wersjach, aby dostać się do strumienia stdio nazwa_pliku musi mieć postać "/dev/stdin" lub "/dev/fd/0".)

Jeśli nazwa_pliku zaczyna się czymkolwiek innym zostanie otworzony plik z systemu plików i zostanie zwrócony wskaźnik pliku.

Jeśli otwieranie się nie powiedzie, funkcja zwróci FALSE.

tryb może być dowolny z poniższych:

Notatka: Parametr tryb może zawierać literę 'b'. To jest użyteczne tylko na systemach, które rozróżniają pliki pomiędzy binarne i tekstowe (np. Windows. To jest bezużyteczne na Unixach) Jeśli nie potrzebne zostanie zignorowane.

Możesz użyć opcjonalnego 3 parametru i ustawić go na "1", jeśli chcesz szukać pliku także w include_path.

Przykład 1. fopen() przykład

$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");

Jeśli doświadczasz problemów z czytaniem i zapisywaniem do plików i używasz PHP jako moduł serwera, pamiętaj, że pliki i katalogi które używasz muszą być osiągalne dla procesu serwera.

Na platformach Windows, uważaj na zastosowanie znaków ucieczki dla wszystkich użytych w ścieżce do pliku backslashy, lub użyj slash'y.

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

Patrz także: fclose(), fsockopen(), socket_set_timeout() i popen().