Darmowe Forum
Grudzieñ 22, 2024, 02:15:06 *
Witamy, Go¶æ. Zaloguj siê lub zarejestruj.
Czy dotar³ do Ciebie email aktywacyjny?

Zaloguj siê podaj±c nazwê u¿ytkownika, has³o i d³ugo¶æ sesji
Aktualno¶ci: Forum zosta³o uruchomione!
 
   Strona g³ówna   Pomoc Zaloguj siê Rejestracja  
Strony: [1]
  Drukuj  
Autor W±tek: Teoria php.  (Przeczytany 3243 razy)
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« : Marzec 26, 2014, 11:33:00 »

Wyja¶nienie podstawowych poleceñ przy przesy³aniu plików
Zapisane
Davidka
Go¶æ


Email
« Odpowiedz #1 : Marzec 26, 2014, 12:14:42 »

fopen

(PHP 4, PHP 5)

fopen — Otwiera plik lub URL

Opis 

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 Supported Protocols and 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");

     ?>

Parametr tryb okre¶la rodzaj dostêpu jaki wymagasz do strumienia. Mo¿e byæ dowolny z 

nastêpuj±cych:

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.

B³êdy/Wyj±tki 

Je¶li otwieranie siê nie powiedzie, funkcja wygeneruje b³±d na poziomie E_WARNING. Mo¿esz 

u¿yæ @ aby zatuszowaæ to ostrze¿enie.
Zapisane
niewidzialny92
Go¶æ


Email
« Odpowiedz #2 : Marzec 26, 2014, 12:55:57 »

http://gawryszczak.cba.pl/index.html
Zapisane
Strony: [1]
  Drukuj  
 
Skocz do:  

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap

Polityka cookies
Darmowe Fora | Darmowe Forum

articz shaggydogss zlotasiodemka proskills spw