Różnice między wybraną wersją a wersją aktualną.
Nowa wersja | Poprzednia wersja | ||
pl:paw:lab_paw_php_4 [2021/01/08 14:09] 127.0.0.1 edycja zewnętrzna |
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(' |