![]() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| C/C++ / CGI / Sieć Novell / PHP / Java / SQL / Oracle / WebSphere MQ / WebSphere Message Broker / JavaScript / Humor / IT Quiz | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
![]() |
Informacje podstawowe O języku : Instalacja : Biblioteka funkcji Dynamiczna grafika Tablice Bazy danych Literatura Jeden plik Legenda w przygotowaniu * w trakcie tworzenia Krotki opis języka PHP.
checkdate : sprawdza poprawność daty date : pobiera sformatowaną datę getdate : pobiera informacje o dacie gettimeofday : pobiera bieżącą godzinę gmdate : pobiera sformatowaną datę (GMT) gmmktime : pobiera stworzoną datę (GMT) gmstrftime : formatuje datę (GMT) localtime : pobiera lokalną datę microtime : pobiera datę w mikrosekundach mktime : pobiera stworzoną datę strftime : formatuje lokalną datę time : pobiera aktualny czas strtotime : formatuje datę date : Pobiera sformatowaną datę Składnia : string date (string format [, int timestamp]) gdzie: format : postać zwracanej daty timestamp : formatowana data. W przypadku braku tego argumentu pobierana jest aktualna data Wartość zwracana : łańcuch tekstowy zawierający datę Przykład : $actdate= date ("Y-m-d");// zwróci łańcuch w postaci :rok - miesiąc - dzień Znaki występujące w formacie: a : wartość am lub pm A : wartość AM lub PM d : dwucyfrowy dzień miesiąca (01 - 31) D : Trzyliterowa nazwa dnia tygodnia F : Długa nazwa miesiąca g : godzina w formacie 12 godzinnym (1 - 12) G : godzina w formacie 24 godzinnym (0 - 23) h : godzina w formacie 12 godzinnym z początkowym zerem (01 - 12) H : godzina w formacie 24 godzinnym z początkowym zerem (00 - 23) i : minuta (00 - 59) j : dzień miesiąca (1 - 31) l : długa nazwa dnia tygodnia m : miesiąc (01 - 12) checkdnsrr : closelog : debugger_off : debugger_on : define_syslog_variables : fsockopen : gethostbyaddr : gethostbyname : gethostbynamel : getmxrr : getprotobyname : getprotobynumber : getservbyname : getservbyport : ip2long : long2ip : openlog : pfsockopen : socket_get_status : socket_set_blocking : socket_set_timeout : syslog : escapeshellarg : escapeshellcmd : exec : passthru : system : chdir : dir : closedir : getcwd : opendir : readdir : rewinddir :
ftp_connect : ftp_login : ftp_pwd : ftp_cdup : ftp_chdir : ftp_mkdir : ftp_rmdir : ftp_nlist : ftp_rawlist : ftp_systype : ftp_pasv : ftp_get : ftp_fget : ftp_put : ftp_fput : ftp_size : ftp_mdtm : ftp_rename : ftp_delete : ftp_site : ftp_quit : header : headers_sent : setcookie : sem_get : sem_acquire : sem_release : session_start : session_destroy : session_name : session_module_name : session_save_path : session_id : session_register : session_unregister : session_unset : session_is_registered : session_get_cookie_params : session_set_cookie_params : session_decode : session_encode : session_set_save_handler : session_cache_limiter : Wstęp Mały przykład Funkcje GD Dynamicznie tworzone grafiki są sposobem na poprawienie atrakcyjności witryn internetowych.Wyobraźmy sobie dwa serwisy giełdowe, jeden oparty o tabele, której wiersze zawierająwyniki giełdowe i drugi generujący wykresy wahań poszczególnych walorów.Z innej dziedziny, serwis pogodowy - jeden z informacjami tekstowymi i drugi generującemapy z naniesionymi na nie najświeższe informacje pogodowe. Ostatni przykład, najczęściejspotykany na stronach WWW, licznik odwiedzin. Ogólna zasada tworzenia dynamicznie grafikipolega na wysłaniu do przeglądarki nagłówka informującego o tym. jaki typ danychbędziemy przesyłać. W naszym przypadku będzie to nagłówek image/gif, następnietworzymy dynamicznie grafikę za pomocą odpowiednich funkcji. Po stworzeniu takiej grafikimusimy wysłać ją na standardowe wyjście, w naszym przypadku będzie to przeglądarka. Skrypt posiada dwa parametry imagefile oraz text. Pierwszy określa nazwę pliku będącego tłem dla naszej grafiki wyjściowej, drugi łańcuch tekstowy określający tekst jaki się ukaże w grafice. Wywołanie skryptu <img src="naszskrypt.php3?imagefile=plik_tla&text=wyświetlany tekst"> Kod źródłowy <? //tworzymy nagłówek informujący iż będziemy przesyłać do przeglądarki grafikę header("Content-type: image/gif"); //tworzymy grafikę z piku podanego jako parametr $img=imagecreatefromgif($imagefile); /*Zmiennej color przypisujemy identyfikator zwrócony przez funkcję imagecolorallocate, która przyjmuje składowe RGB szukanego koloru i zwraca jego indeks, którym będziemy mogli się posługiwać w kolejnych operacjach graficznych */ $color=imagecolorallocate($image,0,0,0); //w ten sposób przez zmienną color będziemy rozumieli kolor czarny (RGB=0,0,0) /*w lewym górnym rogu grafiki, tj. o współrzędnych 0,0 umieszczamy nasz tekst podany jako parametr czcionką o numerze 2 i w kolorze, którego indeks znaleźliśmy w poprzedniej funkcji (czarny)*/ imagestring($image,2,0,0,$text,$color); //tak przygotowaną grafikę wysyłamy do przeglądarki imagegif($image); //na zakończenie możemy jeszcze zwolnić pamięć zajmowaną przez naszą grafikę imagedestroy($image); ?> Jednowymiarowe Indeksowanie tablic Wielowymiarowe Tablice jednowymiarowe ( indeksowane przez liczby ) nie są w zasadzie niczym nowym.Dla osób programujących nie będzie to żadne odkrycie.Mając pewną ilość elementów tego samego typu możemy je umieścić w tablicy mając w tensposób łatwy dostęp do wszystkich jej elementów. Indeksowanie odbywa się natej samej zasadzie jak to ma miejsce w języku C od indeksu zerowego. I takelement pierwszy w tablicy będzie miał indeks 0, drugi 1, trzeci 2 itd. Deklaracja tablicy $tab =array() Możemy jednocześnie z deklaracją zdefiniować elementy tablicy $names =array(0=>"Jan","Zygmunt", "Tomasz" ) $names =array(0=>6,34,1,67,9) Odwoływanie się do elementów tablicy echo $tab[3]; : wyświetla 4 element tablicy $x=$tab[8]; : zapisuje do zmiennej x wartości znajdującej się na 9 pozycji w tablicy tab echo $tab[$ind]; : wyświetla element tablicy tab znajdujący się na pozycji określonej przez zmienną ind Wyświetlenie wszystkich elementów tablicy for ($i=0;$i<count($tab);$i++) echo $tab[$i]; Poza typowym indeksowaniem poprzez liczby znanym z języka C, w PHP tablice możemyindeksować za pomocą łańcuchów tekstowych. Deklaracja takiej tablicy ma identyczną postaćjak to ma miejsce przy tablicach indeksowanych przez liczby całkowite. Definicja tablicy $users =array("name"=>"Kowalski","firstname"=>"Zygmunt","age"=>"76" ) Odwoływanie się do elementów tablicy echo $users["name"]; : wyświetla wartość tablicy users o indeksie name $x=$tab[8]; : zapisuje do zmiennej x wartości znajdującej się na 9 pozycji w tablicy tab echo $tab[$ind]; : wyświetla element tablicy tab znajdujący się na pozycji określonej przez zmienną ind Wyświetlenie wszystkich elementów tablicy W przypadku tablic indeksowanych przez łańcuchy ponieważ nie znamy wartości indeksówtak jak to ma miejsce w przypadku indeksów 0,1,2 itd. do wyświetlania wszystkichelementów tablicy musimy użyć lekko zmodyfikowanej pętli for. for (reset($users);$key=key($users);next($users)) { // pobiera wartość tablicy na bieżącej pozycji $value=pos($users); //wyświetla indeks i wartość tablicy o tym indeksie echo "$key => $value<br>"; } Tablica wielowymiarowa jest niczym innym jak tablicą jednowymiarową, w której jednymz elementów tablicy jest inna tablica. Dla przykłady definicja tablicy szachownicy ma postać: $tab =array() Możemy jednocześnie z deklaracją zdefiniować elementy tablicy $tab =array(0=>array (0=>0,1,2,3,4,5,6,7), (1=>array (0=>0,1,2,3,4,5,6,7), (2=>array (0=>0,1,2,3,4,5,6,7), (3=>array (0=>0,1,2,3,4,5,6,7), (4=>array (0=>0,1,2,3,4,5,6,7), (5=>array (0=>0,1,2,3,4,5,6,7), (6=>array (0=>0,1,2,3,4,5,6,7), (7=>array (0=>0,1,2,3,4,5,6,7)); Odwoływanie się do elementów takiej tablicy echo $tab[3][1]; : wyświetla wartość tablicy znajdującą się w 3 wierszu i 1 kolumnie Wyświetlenie wszystkich elementów tablicy //pętla zewnętrzna for ($i=0;$i<8;$i++) for ($j=0;$j<8;$j++) echo $tab[$i][j]; // po narysowaniu wiersza łamie linię echo "<br>"; Wstęp do bazy danych Wsatwianie wiersza do tabeli z formularza Usunięcia wiersza z tabeli Wyświetlanie wyników zapytania Obsługa błędów : W tej części postaram się omówić proste sposoby obsługi baz danych poprzez przeglądarki zapomocą języka PHP. Wszystkie ukazane tutaj przykłady stworzyłem w oparciu o systembazodanowy Postgres. Nie sądzę jednak, żeby zaimplementowanie ich do innych baz danychsprawiło komuś jakiekolwiek problemy. Za przykład posłuży nam baza o nazwie test, której elementem będzie tablica o poniższej definicji: CERATE TABLE users ( id serial , name varchar(40) NOT NULL, firstname varchar(40) NOT NULL, address varchar(60) NOT NULL, PRIMARY KEY (id)) Wyobraźmy sobie formularz, w którym mamy dwa pola typu TEXT i jedno typu TEXTAREA.Pola te nazwiemy odpowiednio newname, newfirstname oraz new address. Właściwość actionnaszego formularza ustalimy na nasz skrypt PHP. Kod źródłowy <? //łączymy się z bazą danych o nazwie test $conn=pg_pconnect("dbname=test port=5432"); //definiujemy treść zapytania (do odpowiednich kolumn tabeli wstawiamy zmienne pobrane z formularza ) $query="insert into users('name','firstname','address') values ('$newname','$newfirstname','$newaddress')"; //wykonujemy zapytanie do bazy $res=pg_exec($conn,$query); ?> Zakładamy, że jako parametr do skryptu podamy unikalny indeks wiersza. W naszym przypadkubędzie to wartość pola id. Wywołanie skryptu deluser.php3?delid=indeks_wiersza_do_usunięcia Kod źródłowy <? //łączymy się z bazą danych o nazwie test $conn=pg_pconnect("dbname=test port=5432"); //definiujemy treść zapytania (do zapytania wstawiamy zmienną podaną jako parametr skryptu) $query="delete from users where id=$delid"; //wykonujemy zapytanie do bazy $res=pg_exec($conn,$query); ?> Do wyświetlenia wierszy tabeli użyjemy instrukcji SQL Select oraz mojej ulubionej rodziny funkcji PHP fetch_object Kod źródłowy <? //łączymy się z bazą danych o nazwie test $conn=pg_pconnect("dbname=test port=5432"); //definiujemy treść zapytania $query="select * from users order by name, firstname"; //wykonujemy zapytanie do bazy $res=pg_exec($conn,$query); //pobiera wiersze z zapytania aż do momentu kiedy żadnego wiersza już nie będzie //wiersz jest zwracany przez funkcje pg_fetch_object w postaci obiektu $i=0; while($row=pg_fetch_object($res,$i++)) { //wyświetla informacje pobrane z bazy echo "$row->name $row->firstname $row->address"; } ?> "PHP3" : Leon Atkinson ISBN 83-7197-261-X Helion 2000 "PHP3 internetowe aplikacje bazodanowe" : Craig Hilton, Jeff Willis ISBN 83-7197-285-7 Helion 2000 |
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||