Tytu³: Teoria php. Wiadomo¶æ wys³ana przez: admin Marzec 26, 2014, 11:33:00 Wyja¶nienie podstawowych poleceñ przy przesy³aniu plików
Tytu³: Odp: Teoria php. Wiadomo¶æ wys³ana przez: Davidka 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. Tytu³: Odp: Teoria php. Wiadomo¶æ wys³ana przez: niewidzialny92 Marzec 26, 2014, 12:55:57 http://gawryszczak.cba.pl/index.html
|