Narzędzia użytkownika

Narzędzia witryny


pl:paw:lab_paw_php_4

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Poprzednia rewizja po obu stronach Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:paw:lab_paw_php_4 [2021/03/19 16:08]
wojnicki [Ćwiczenie 3: Klasy i obiekty, generacja dokumentów PDF]
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ę? Zwróć uwagę na napis na środku. 
-<code php>+<code php wp.php>
 <?php <?php
-  $c=curl_init('http://www.google.pl');+  $c=curl_init('https://www.wikipedia.org');
   curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);   curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
   $dane=curl_exec($c);   $dane=curl_exec($c);
Linia 15: Linia 15:
 </code> </code>
  
-<code php>+<code php wp2.php>
 <?php <?php
-  $c=curl_init('http://www.google.pl');+  $c=curl_init('https://www.wikipedia.org');
   curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);   curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
   $dane=curl_exec($c);   $dane=curl_exec($c);
   curl_close($c);   curl_close($c);
  
-  echo str_replace('Google','AGH',$dane);+  echo str_replace('Wikipedia','Encyklopedia AGH',$dane);
 ?> ?>
 </code> </code>
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>+<code php wp3.php>
 $c=curl_init('https://pl.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=Makaron'); $c=curl_init('https://pl.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&exintro=&explaintext=&titles=Makaron');
 curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
Linia 68: Linia 68:
 } }
 </code> </code>
 +
 +Uwaga, jeżeli w haśle wystąpią znaki diakrytyczne należy użyć funkcji: ''urlencode()'' przed wysłaniem zapytania do Wikipedii.
  
 Więcej informacji o przetwarzaniu JSON można znaleźć pod adresem: http://www.php.net/manual/en/ref.json.php  Więcej informacji o przetwarzaniu JSON można znaleźć pod adresem: http://www.php.net/manual/en/ref.json.php 
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://login:haslo@... )
-<code php>+<code php curl.php>
 <?php <?php
   $c=curl_init('http://awing.kis.agh.edu.pl:5984');   $c=curl_init('http://awing.kis.agh.edu.pl:5984');
Linia 130: Linia 132:
  
 Do przesyłania danych można również wykorzystać ''fopen'', jednak aktualnie funkcja ta jest niedostępna na serwerach: borg, charon i student. Do przesyłania danych można również wykorzystać ''fopen'', jednak aktualnie funkcja ta jest niedostępna na serwerach: borg, charon i student.
-<code php>+<code php curlcouch.php>
 $h=fopen("http://awing.ia.agh.edu.pl:5984/_all_dbs", "r"); $h=fopen("http://awing.ia.agh.edu.pl:5984/_all_dbs", "r");
 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: <code php>+Przetestuj działanie skryptu couchshell.php: <code php couchshell.php>
  
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
Linia 227: Linia 229:
 Dostarczona jest struktura danych (np. pochodząca z odczytu z bazy danych) przechowująca informacje o flocie samochodów: Dostarczona jest struktura danych (np. pochodząca z odczytu z bazy danych) przechowująca informacje o flocie samochodów:
  
-<code php>+<code php dane.php>
 // dane: marka samochodu, kolor, nr rej., przebieg, stan techniczny // dane: marka samochodu, kolor, nr rej., przebieg, stan techniczny
 $dane = array( $dane = array(
Linia 239: Linia 241:
 Celem ćwiczenia jest napisanie programu w PHP generującego dokument PDF, który pokaże powyższe dane w postaci {{ :pl:paw:tabela.pdf |tabelarycznej}}. Celem ćwiczenia jest napisanie programu w PHP generującego dokument PDF, który pokaże powyższe dane w postaci {{ :pl:paw:tabela.pdf |tabelarycznej}}.
  
-Do wykonania ćwiczenia użyj popularnej biblioteki TCPDF https://tcpdf.org/, tam też znajdziesz wiele przykładów jej użycia (Uwaga: dokumentacja klasy na stronie jest kiepsko zorganizowana, lepiej zaglądnąć do pliku ''tcpdf.php'').+Do wykonania ćwiczenia użyj popularnej biblioteki TCPDF https://tcpdf.org/, tam też znajdziesz wiele przykładów jej użycia (Uwaga: dokumentacja klasy: https://tcpdf.org/docs/srcdoc/tc-lib-pdf/classes-Com-Tecnick-Pdf-Tcpdf/ alternatywnie można zaglądnąć do pliku ''tcpdf.php'').
 Biblioteka jest w całości napisana w PHP. Biblioteka jest w całości napisana w PHP.
 Aktualną wersję możesz pobrać z: https://github.com/tecnickcom/TCPDF/archive/6.3.5.zip Aktualną wersję możesz pobrać z: https://github.com/tecnickcom/TCPDF/archive/6.3.5.zip
-Archiwum rozpakuj w katalogu, z Twoimi skryptami PHP (uwaga musisz nadac odpowiednie prawa dostępu do rozpakowanych katalogów i plików PHP).+Archiwum rozpakuj w katalogu, z Twoimi skryptami PHP (zwróć uwagę na odpowiednie prawa dostępu).
  
 Przykład użycia biblioteki znajdziesz poniżej. Przykład użycia biblioteki znajdziesz poniżej.
  
-<code php>+<code php pdf1.php>
 require_once('TCPDF-6.3.5/tcpdf_import.php'); require_once('TCPDF-6.3.5/tcpdf_import.php');
  
Linia 262: Linia 264:
  
 Do sporządzenia tabelki możesz użyć metody ''writeHTML()'', która generuje treść na podstawie składni HTML. Do sporządzenia tabelki możesz użyć metody ''writeHTML()'', która generuje treść na podstawie składni HTML.
-Z w/w danych wygeneruj tabelkę w HTML, którą przypisz do zmiennej np. ''$html='<table><thead>.....</thead><tbody>...</tbody></head>' ''. Możesz użyć poniższego kodu. +Z w/w danych wygeneruj tabelkę w HTML, którą przypisz do zmiennej np. ''$html='<table><thead>.....</thead><tbody>...</tbody></head>' ''. Możesz użyć poniższego kodu. Więcej przykładów znajdziesz pod adresem: https://tcpdf.org/examples/example_006/ 
-<code php>+<code php pdf2.php>
 require_once('TCPDF-6.3.5/tcpdf_import.php'); require_once('TCPDF-6.3.5/tcpdf_import.php');
  
Linia 297: 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>+<code php ltest.php>
 <?php <?php
   $logowanie = new Logowanie();   $logowanie = new Logowanie();
Linia 315: 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>+<code php pgsql1.php>
 <?php <?php
 $dbh = new PDO('pgsql:host=localhost;dbname=nazwa_bazy_danych', 'nazwa_uzytkownika_bazy', 'haslo_uzytkownika_bazy'); $dbh = new PDO('pgsql:host=localhost;dbname=nazwa_bazy_danych', 'nazwa_uzytkownika_bazy', 'haslo_uzytkownika_bazy');
Linia 326: 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>+<code php pgsql2.php>
 <?php <?php
 $dbh = new PDO('pgsql:dbname=nazwa_uzytkownika_bazy'); $dbh = new PDO('pgsql:dbname=nazwa_uzytkownika_bazy');
Linia 340: Linia 342:
 Dostęp do bazy danych MySQL na serwerze mysql.agh.edu.pl (hsło dostępowe mozna uzyskac przez panel AGH: https://panel.agh.edu.pl/ ) można zrealizować w poniższy sposób. Dostęp do bazy danych MySQL na serwerze mysql.agh.edu.pl (hsło dostępowe mozna uzyskac przez panel AGH: https://panel.agh.edu.pl/ ) można zrealizować w poniższy sposób.
  
-<code php>+<code php mysql1.php>
 <?php <?php
 $dbh = new PDO('mysql:host=mysql.agh.edu.pl;dbname=nazwa_bazy_danych','nazwa_uzytkownika_bazy', $dbh = new PDO('mysql:host=mysql.agh.edu.pl;dbname=nazwa_bazy_danych','nazwa_uzytkownika_bazy',
pl/paw/lab_paw_php_4.1616166531.txt.gz · ostatnio zmienione: 2021/03/19 16:08 przez wojnicki