Loading:


fopen()
resource fopen ( string $nazwa_pliku , string $tryb [, bool $użyj_include_path [, resource $kontekst ]] )

fopen() wiąże nazwany zasób, okreÅ›lony przez nazwa_pliku , do strumienia.

 

Parametry

 

$nazwa_pliku

JeÅ›li nazwa_pliku jest w postaci "schemat://...", to przypuszczalnie jest to URL i PHP szuka protokoÅ‚u obsÅ‚ugi (także zwanego wrapper'em) dla tego schematu. JeÅ›li nie zarejestrowano żadnego wrapper'a dla tego protokoÅ‚u, PHP wyemituje notatkÄ™, aby pomóc Tobie w wyÅ›ledzeniu potencajalnego problemu w Twoim skrypcie nastÄ™pnie bÄ™dzie kontynuować z podanym nazwa_pliku traktujÄ…c go jako zwykÅ‚y plik.

JeÅ›li PHP zdecyduje, że nazwa_pliku okreÅ›la lokalny plik, wtedy spróbuje otworzyć strumieÅ„ na tym pliku. Plik musi być dostÄ™pny dla PHP, wiÄ™c musisz zapewnić prawa dostÄ™pu do pliku pozwalajÄ…ce na takÄ… operacjÄ™. JeÅ›li masz włączone tryb bezpieczny lub open_basedir mogÄ… mieć zastosowanie dodatkowe restrykcje.

 

JeÅ›li PHP zdecyduje, że nazwa_pliku okreÅ›la zarejestrowany protokóÅ‚ i ten protokóÅ‚ jest zarejestowany jako sieciowy URL, PHP sprawdzi allow_url_fopen czy jest włączone. JeÅ›li jest wyłączone (off), PHP wyÅ›wietli ostrzeżenie i wywoÅ‚anie fopen zakoÅ„czy siÄ™ niepowodzeniem.

 

Informacja: ListÄ™ obsÅ‚ugiwanych protokoÅ‚ów możesz znaleźć w List of Supported Protocols/Wrappers. Niektóre protokoÅ‚y (również okreÅ›lane przez wrappery obsÅ‚ugujÄ… kontekst lub/i opcje php.ini. OdwoÅ‚aj siÄ™ do konkretnej strony protokoÅ‚u aby uzyskać listÄ™ opcji jakie mogÄ… zostać ustawione (np. php.ini wartość user_agent używana przez wrapper http).

 

Na platformie Windows, dbaj aby wstawiać znaki ucieczki (escape) przed wszystkimi lewymi ukoÅ›nikami (backslash) użytymi w Å›cieżce do pliku lub używać ukoÅ›ników (slash).

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

 

$tryb

Parametr tryb określa rodzaj dostępu jaki wymagasz do strumienia. Może być dowolny z następujących:

 

Lista możliwych trybów dla fopen()
tryb Opis
'r' Otwiera tylko do odczytu; umieszcza wskaźnik pliku na jego początku.
'r+' Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego początku.
'w' Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego poczÄ…tku i obcina plik do zerowej dÅ‚ugoÅ›ci. JeÅ›li plik nie istnieje to próbuje go utworzyć.
'w+' Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego poczÄ…tku i obcina plik do zerowej dÅ‚ugoÅ›ci. JeÅ›li plik nie istnieje to próbuje go utworzyć.
'a' Otwiera tylko do zapisu; umieszcza wskaźnik pliku na jego koÅ„cu. JeÅ›li plik nie istnieje to próbuje go utworzyć.
'a+' Otwiera do odczytu i zapisu; umieszcza wskaźnik pliku na jego koÅ„cu. JeÅ›li plik nie istnieje to próbuje go utworzyć.
'x' Tworzy i otwiera plik tylko do zapisu; umieszcza wskaźnik pliku na jego poczÄ…tku. JeÅ›li plik juz istnieje, wywoÅ‚anie fopen() nie powiedzie siÄ™, zwróci FALSE i wygeneruje błąd na poziomie E_WARNING. JeÅ›li plik nie istnieje, spróbuje go utworzyć. To jest równoważne z okreÅ›leniem flag O_EXCL|O_CREAT stosowanym w wywoÅ‚aniu systemowym open(2).
'x+' Tworzy i otwiera plik odczytu i zapisu; umieszcza wskaźnik pliku na jego poczÄ…tku. JeÅ›li plik juz istnieje, wywoÅ‚anie fopen() nie powiedzie siÄ™, zwróci FALSE i wygeneruje błąd na poziomie E_WARNING. JeÅ›li plik nie istnieje, spróbuje go utworzyć. To jest równoważne z okresleniem flag O_EXCL|O_CREAT stosowanym w wywoÅ‚aniu systemowym open(2).

 

Informacja: Różne rodziny systemów operacyjnych stosuja rózne konwencje koÅ„ca lini. Kiedy zapisujesz plik tekstowy i chcesz wstawić Å‚amanie lini, musisz użyć poprawnych dla twojego systemu operacyjnego znak(ów) koÅ„ca lini. Systemy bazujÄ…ce na Uniksie używajÄ… \n jako znaku koÅ„ca lini, systemy bazujÄ…ce na Windowsie używajÄ… \r\n jako znaków koÅ„ca lini, a systemy Macintosh używajÄ… \r jako znak koÅ„ca lini.
Jeśli użyjesz nieprawidłowego końca lini do zapisu pliku, możesz zaobserwować, w innych aplikacjach otwierając ten plik, że "wygląda on zabawnie".

Windows oferuje flagÄ™ ('t') konwertujÄ…cÄ… tryb tekstowy, która przezroczyÅ›cie przekÅ‚ada \n na \r\n kiedy pracujesz z plikiem. Dla kontrastu, możesz także uzyć 'b' aby wymusić tryb binarny, wtedy nie bÄ™dzie konwertować twoich danych. Aby użyć tych flag, wstaw 'b' lub 't' jako ostatni znak w parametrze tryb .

DomyÅ›lnie tryb konwersji zależy od SAPI i wersji PHP jakiej używasz, wiÄ™c namawiamy aby zawsze podawać stosownÄ… flage w celu przenoÅ›noÅ›ci. PowinieneÅ› użyć trybu 't' jeÅ›li pracujesz ze zwykÅ‚ymi plikami tekstowymi (plain-text)i używasz \n do ograniczenia konców lini w twoim skrypcie, ale wymagasz aby twój plik byÅ‚ czytelny w aplikacjach takich jak notatnik. PowinieneÅ› uzyć 'b' w każdym innym przypadku.
JeÅ›li nie podasz flagi 'b' kiedy pracujesz na binarnych plikach, możesz doÅ›wiadczyć dziwnych problemów z twoimi danymi, włączajÄ…c uszkodzone pliki graficzne i dziwne problemy ze znakami \r\n.

 

Informacja: Dla przenośności, bardzo zalecane jest użycie zawsze flagi 'b' kiedy otwierasz pliki za pomocą fopen().

 

Informacja: Ponownie, dla przenoÅ›noÅ›ci, jest również bardzo zalecane abyÅ›, przepisaÅ‚ swój kod, który używa lub polega na trybie 't' tak aby używaÅ‚ poprawnego koÅ„ca lini oraz trybu 'b'.

$użyj_include_path

Opcjonalny trzeci parametr użyj_include_path może być ustawiony na '1' lub TRUE jeśli chcesz szukać pliku także w include_path.

$kontekst

Informacja: ObsÅ‚uga kontekstów zostaÅ‚a dodana w PHP 5.0.0. Opis kontekstów znajduje siÄ™ w rozdziale Stream Funkcje.


Zwracane wartości

Zwraca wskaźnik pliku do zasobu w przypadku sukcesu lub FALSE przy błędzie.

 

Kompatybilność: PHP4, PHP5.



Napisz Artyku³

Listing

<?php
$handle = fopen("/home/rasmus/plik.txt", "r");
$handle = fopen("/home/rasmus/plik.gif", "wb");
$handle = fopen("http://www.przyklad.com/", "r");
$handle = fopen("ftp://uzytkownik:haslo@przyklad.com/jakisplik.txt", "w");
?>




Dodano przez: divix
Ranga: Administrator serwisu Punktów: 38473
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2021 v.1.5 | design: diviXdesign & rainbowcolors