Różnice między wybraną wersją a wersją aktualną.
| Poprzednia rewizja po obu stronach Poprzednia wersja Nowa wersja | Poprzednia wersja | ||
|
pl:paw:lab_paw_php_4 [2021/03/19 13:33] wojnicki |
pl:paw:lab_paw_php_4 [2022/01/11 15:17] (aktualna) wojnicki [Ćwiczenie 3: Klasy i obiekty, generacja dokumentów PDF] |
||
|---|---|---|---|
| Linia 3: | Linia 3: | ||
| ===== Ćwiczenie 1: Dostęp do zewnętrznych danych ===== | ===== Ćwiczenie 1: Dostęp do zewnętrznych danych ===== | ||
| - | Przetestuj działanie poniższych programów. Widzisz różnicę? | + | Przetestuj działanie poniższych programów. Widzisz różnicę? |
| - | <code php> | + | < |
| <?php | <?php | ||
| - | $c=curl_init(' | + | $c=curl_init(' |
| curl_setopt($c, | curl_setopt($c, | ||
| $dane=curl_exec($c); | $dane=curl_exec($c); | ||
| Linia 15: | Linia 15: | ||
| </ | </ | ||
| - | <code php> | + | < |
| <?php | <?php | ||
| - | $c=curl_init(' | + | $c=curl_init(' |
| curl_setopt($c, | curl_setopt($c, | ||
| $dane=curl_exec($c); | $dane=curl_exec($c); | ||
| curl_close($c); | curl_close($c); | ||
| - | echo str_replace(' | + | echo str_replace(' |
| ?> | ?> | ||
| </ | </ | ||
| Linia 57: | Linia 57: | ||
| W PHP obsługę komunikacji z Wikipedią można zaprogramować w poniższy sposób. | W PHP obsługę komunikacji z Wikipedią można zaprogramować w poniższy sposób. | ||
| - | <code php> | + | < |
| $c=curl_init(' | $c=curl_init(' | ||
| curl_setopt($c, | curl_setopt($c, | ||
| Linia 68: | Linia 68: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | Uwaga, jeżeli w haśle wystąpią znaki diakrytyczne należy użyć funkcji: '' | ||
| Więcej informacji o przetwarzaniu JSON można znaleźć pod adresem: http:// | Więcej informacji o przetwarzaniu JSON można znaleźć pod adresem: http:// | ||
| Linia 87: | Linia 89: | ||
| - | Do przesyłania danych wykorzystaj biblioteke CURL: | + | Do przesyłania danych wykorzystaj biblioteke CURL (Uwaga: jeżeli dostęp do CouchDB jest chroniony, we wszystkich poniższych adresach HTTP trzeba dodać informacje o nazwie użytkownika i haśle tj.: http://... -> http:// |
| - | <code php> | + | < |
| <?php | <?php | ||
| $c=curl_init(' | $c=curl_init(' | ||
| Linia 130: | Linia 132: | ||
| Do przesyłania danych można również wykorzystać '' | Do przesyłania danych można również wykorzystać '' | ||
| - | <code php> | + | < |
| $h=fopen(" | $h=fopen(" | ||
| if ($h) { | if ($h) { | ||
| Linia 145: | Linia 147: | ||
| ==== Informacje dodatkowe: Dostęp do bazy CouchDB ==== | ==== Informacje dodatkowe: Dostęp do bazy CouchDB ==== | ||
| - | Przetestuj działanie skryptu couchshell.php: | + | Przetestuj działanie skryptu couchshell.php: |
| < | < | ||
| Linia 223: | Linia 225: | ||
| - | ===== Ćwiczenie 3: Klasy i obiekty ===== | + | ===== Ćwiczenie 3: Klasy i obiekty, generacja dokumentów PDF ===== |
| + | |||
| + | Dostarczona jest struktura danych (np. pochodząca z odczytu z bazy danych) przechowująca informacje o flocie samochodów: | ||
| + | |||
| + | <code php dane.php> | ||
| + | // dane: marka samochodu, kolor, nr rej., przebieg, stan techniczny | ||
| + | $dane = array( | ||
| + | array(' | ||
| + | array(' | ||
| + | array(' | ||
| + | array(' | ||
| + | ); | ||
| + | </ | ||
| + | |||
| + | Celem ćwiczenia jest napisanie programu w PHP generującego dokument PDF, który pokaże powyższe dane w postaci {{ : | ||
| + | |||
| + | Do wykonania ćwiczenia użyj popularnej biblioteki TCPDF https:// | ||
| + | Biblioteka jest w całości napisana w PHP. | ||
| + | Aktualną wersję możesz pobrać z: https:// | ||
| + | Archiwum rozpakuj w katalogu, z Twoimi skryptami PHP (zwróć uwagę na odpowiednie prawa dostępu). | ||
| + | |||
| + | Przykład użycia biblioteki znajdziesz poniżej. | ||
| + | |||
| + | <code php pdf1.php> | ||
| + | require_once(' | ||
| + | |||
| + | $pdf = new TCPDF(' | ||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | |||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | </ | ||
| + | |||
| + | Do sporządzenia tabelki możesz użyć metody '' | ||
| + | Z w/w danych wygeneruj tabelkę w HTML, którą przypisz do zmiennej np. '' | ||
| + | <code php pdf2.php> | ||
| + | require_once(' | ||
| + | |||
| + | $pdf = new TCPDF(' | ||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | |||
| + | $html='< | ||
| + | |||
| + | /* | ||
| + | Tutaj powinien być kod generujący zawartość zmiennej $html | ||
| + | Warto użyć pętli foreach. | ||
| + | ... | ||
| + | */ | ||
| + | |||
| + | $html.='</ | ||
| + | |||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | $pdf-> | ||
| + | </ | ||
| + | |||
| + | ===== Ćwiczenie 4: Klasy i obiekty ===== | ||
| Napisz klasę '' | Napisz klasę '' | ||
| Linia 233: | Linia 299: | ||
| Do przetestowania działania klasy możesz użyć poniższego kodu. | Do przetestowania działania klasy możesz użyć poniższego kodu. | ||
| - | <code php> | + | < |
| <?php | <?php | ||
| $logowanie = new Logowanie(); | $logowanie = new Logowanie(); | ||
| Linia 251: | Linia 317: | ||
| Dostęp do bazy danych PostgreSQL na charonie albo borgu można zrealizować w poniższy sposób. | Dostęp do bazy danych PostgreSQL na charonie albo borgu można zrealizować w poniższy sposób. | ||
| - | <code php> | + | < |
| <?php | <?php | ||
| $dbh = new PDO(' | $dbh = new PDO(' | ||
| Linia 262: | Linia 328: | ||
| W przypadku korzystania z tego samego serwera dla skrytpow PHP i bazy danych, do PostgreSQL można podłączyć się nie używając hasła w następujący sposób. | W przypadku korzystania z tego samego serwera dla skrytpow PHP i bazy danych, do PostgreSQL można podłączyć się nie używając hasła w następujący sposób. | ||
| - | <code php> | + | < |
| <?php | <?php | ||
| $dbh = new PDO(' | $dbh = new PDO(' | ||
| Linia 276: | Linia 342: | ||
| Dostęp do bazy danych MySQL na serwerze mysql.agh.edu.pl (hsło dostępowe mozna uzyskac przez panel AGH: https:// | Dostęp do bazy danych MySQL na serwerze mysql.agh.edu.pl (hsło dostępowe mozna uzyskac przez panel AGH: https:// | ||
| - | <code php> | + | < |
| <?php | <?php | ||
| $dbh = new PDO(' | $dbh = new PDO(' | ||
| Linia 286: | Linia 352: | ||
| ?> | ?> | ||
| </ | </ | ||
| - | |||
| - | ===== Ćwiczenie 4: Generacja dokumentów PDF ===== | ||
| - | |||
| - | Dostarczona jest struktura danych (np. pochodząca z odczytu z bazy danych) przechowująca informacje o flocie samochodów: | ||
| - | |||
| - | <code php> | ||
| - | // dane: marka samochodu, kolor, nr rej., przebieg, stan techniczny | ||
| - | $dane = array( | ||
| - | array(' | ||
| - | array(' | ||
| - | array(' | ||
| - | array(' | ||
| - | ); | ||
| - | </ | ||
| - | |||
| - | Napisz program w PHP generujący dokument PDF, który pokaże powyższe dane w postaci tabelarycznej tj. pokaże | ||
| - | |||