Podręcznik PHP
Poprzedni |  | Następny

# 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:

- 'r' - Otwórz tylko do odczytu; ustawia wskaźnik pliku na początku pliku.

- 'r+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na początku pliku.

- 'w' - Otwórz tylko do zapisu; ustawia wskaźnik pliku na początku pliku i obcina plik (zeruje) do 0 długości. Jeśli plik nie istnieje to próbuje go utworzyć.

- 'w+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na początku pliku i obcina plik (zeruje) do 0 długości. Jeśli plik nie istnieje to próbuje go utworzyć.

- 'a' - Otwórz tylko do zapisu; ustawia wskaźnik pliku na końcu pliku. Jeśli plik nie istnieje to próbuje go utworzyć.

- 'a+' - Otwórz do odczytu i zapisu; ustawia wskaźnik pliku na końcu pliku. Jeśli plik nie istnieje to próbuje go utworzyć.

> 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().

Poprzedni | Spis treści | Następny
fnmatch | Początek rozdziału | fpassthru