przejście do zawartości
Igor Wojnicki's WIKI
Narzędzia użytkownika
Zaloguj
Narzędzia witryny
Szukaj
Narzędzia
Pokaż stronę
Poprzednie wersje
Odnośniki
Ostatnie zmiany
Menadżer multimediów
Indeks
Zaloguj
>
Ostatnie zmiany
Menadżer multimediów
Indeks
Jesteś tutaj:
start
»
pl
»
paw
»
lab_paw_php_4_1
Ślad:
pl:paw:lab_paw_php_4_1
Ta strona jest tylko do odczytu. Możesz wyświetlić źródła tej strony ale nie możesz ich zmienić.
====== Laboratorium, PHP # 4 ====== ===== Przetwarzanie danych ===== ==== Ćwiczenie 1*: Dostęp do zewnętrznych danych ==== - Przetestuj działanie skryptu couchshell.php: <code php> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <header> <title>CouchShell</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <?php function checked($source,$value) { if ($source === $value) echo 'checked="checked"'; } $uri=$_POST['uri']; if ($_POST['method'] === 'GET' || $_POST['method'] === 'POST' || $_POST['method'] === 'PUT' || $_POST['method'] === 'DELETE' ) $method=$_POST['method']; $content_type='Content-type: '.$_POST['content']; $post=$_POST['post']; ?> </header> <body> <h1>Input</h1> <p> <form method="POST"> URI:<br/> <textarea rows="4" cols="60" name="uri"><?php echo $uri;?></textarea> <br/> Method: <input type="radio" name="method" value="GET" <?php checked($method,'GET')?>/> GET <input type="radio" name="method" value="POST" <?php checked($method,'POST')?>/> POST <input type="radio" name="method" value="PUT" <?php checked($method,'PUT')?>/> PUT <input type="radio" name="method" value="DELETE" <?php checked($method,'DELETE')?>/> DELETE <br/> Content type: <input type="text" name="content" size="40" value="application/json"/> <br/> POST/PUT:<br/> <textarea rows="4" cols="60" name="post"><?php echo stripslashes($post);?></textarea> <br/> <input type="submit"/> <input type="reset"/> </form> </p> <h1>Output</h1> <h2>JSON</h2> <p> <?php if (isset($uri)){ $c=curl_init($uri); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c,CURLOPT_CUSTOMREQUEST,$method); if ($method === 'POST' || $method === 'PUT') { curl_setopt($c, CURLOPT_POSTFIELDS, stripslashes($post)); curl_setopt($c, CURLOPT_HTTPHEADER,array($content_type)); } $data=curl_exec($c); curl_close($c); echo $data; ?> <h2>Decoded JSON</h2> <pre> <?php print_r(json_decode($data,true)); ?> </pre> <?php } ?> </p> </body> </html> </code> - Korzystając z dowolnego widoku bazy CouchDB napisz w PHP program wyświetlający jako liste kolejne identyfikatory dokumentów zgormadzonych w bazie. Możesz skorzystać z wbudowanego widoku ''_all_docs'' np.: http://awing.kis.agh.edu.pl:5984/ogloszenia/_all_docs - przeczytaj zasób, - dokonaj konwersji JSON-tablica, - wyświetl odpowiednie informacje iterując po tablicy. ===== Obiekty ===== ==== Ćwiczenie 1: Klasy i Obiekty ==== Napisz klasę implementującą komunikację z bazą danych CouchDB. Do przesyłania danych wykorzystaj HTTP np.: <code php> $h=fopen("http://awing.ia.agh.edu.pl:5984/_all_dbs", "r"); if ($h) { while (($bufor=fgets($h))!=false) { echo $bufor; } fclose($h); } </code> Informacje na temat używania innych metod HTTP (POST, PUT, DELETE) można znaleźć: http://www.php.net/manual/en/context.http.php Zamiast podejścia ''fopen'' można zastosować bibliotekę cURL np.: <code php> <?php $c=curl_init('http://awing.kis.agh.edu.pl:5984'); /* zwroc dane jako wartosc */ curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $dane=curl_exec($c); curl_close($c); echo $dane; $c=curl_init('http://awing.kis.agh.edu.pl:5984/moja1'); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_PUT, 1); $dane=curl_exec($c); curl_close($c); echo $dane; $dok='{"tresc":"zawartosc dokumentu", "autor":"Wojnicki"}'; $c=curl_init('http://awing.kis.agh.edu.pl:5984/moja1'); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); curl_setopt($c, CURLOPT_POST, 1); curl_setopt($c, CURLOPT_HTTPHEADER,array('Content-type: application/json')); curl_setopt($c, CURLOPT_POSTFIELDS, $dok); $dane=curl_exec($c); curl_close($c); echo $dane; $c=curl_init('http://awing.kis.agh.edu.pl:5984/moja1/_all_docs'); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $dane=curl_exec($c); curl_close($c); /* przykład dekodowania JSON */ $tablica=json_decode($dane,true); echo $tablica['total_rows']; ?> </code> Klasa powinna implementować metody umożliwiające: - definiowanie źródła danych (URI bazy danych), - zwracanie informacji o dostępnych dokumentach, - wykonywanie operacji CRUD (osobne metody: Create, Read, Update, Delete). **Uwaga:** zaimplementuj przynajmniej metodę umożliwijącą odczyt z bazy danych za pomocą HTTP GET. **Uwaga:** dane z postaci JSON zwracanej przez CouchDB powiny być konwertowane do tablic asocjacyjnych PHP. Podpowiedź: sprawdź w dokumentacji PHP jakie są dostępne biblioteki do przetwarzania JSON: http://www.php.net/manual/en/ref.json.php ===== PDO ===== ==== Ćwiczenie 1: Sterowniki ==== Sprawdź jakie sterowniki baz danych są dostępne w ramach instalacji PDO. - Znajdź w dokumentacji odpowiednia metodę: http://www.php.net/manual/en/class.pdo.php - Użyj w/w metody w skrypcie. - Uruchom skrypt. ==== Ćwiczenie 2: Baza danych ==== Użyj PDO do wykonania poniższych operacji. - Otwórz połączenie z bazą danych. - Wykonaj przynajmniej jedną operacje INSERT. - Wykonaj przynajmniej jedną operację SELECT zwracającą wiele wierszy. - Napisz iterator, odczytujący odpowiednie wiersze. - Umieść dane w tabeli HTML.
pl/paw/lab_paw_php_4_1.txt
· ostatnio zmienione: 2021/01/08 14:09 (edycja zewnętrzna)
Narzędzia strony
Pokaż stronę
Poprzednie wersje
Odnośniki
Do góry