1 / 18

Wykład dodatkowy

Wykład dodatkowy. Tablice i pliki. Tablice Tablice są typem zmiennych zawierającym uporządkowany zbiór danych. W PHP nie wymagają deklaracji. Do zmiennych tych uzyskuje się dostęp przez indeks w nawiasie kwadratowym. Podobnie przypisuje się wartość do elementu tablicy. Przykład:

darrin
Download Presentation

Wykład dodatkowy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Wykład dodatkowy Tablice i pliki

  2. Tablice Tablice są typem zmiennych zawierającym uporządkowany zbiór danych. W PHP nie wymagają deklaracji. Do zmiennych tych uzyskuje się dostęp przez indeks w nawiasie kwadratowym. Podobnie przypisuje się wartość do elementu tablicy. Przykład: <?php$tablica[0] = "Wpis numer 0";$tablice[1] = "Wpis numer 1";$tablica[2] = "Wpis numer 2";echo $tablica[2]; // Wyświetlony zostanie napis "Wpis numer 2";?>

  3. Elementem tablicy może być każdy typ zmiennej (z innymi tablicami i obiektami włącznie). Tablica dwuwymiarowa, zawiera dwa indeksy, np. $tablica[0][2] = 1; Tablica asocjacyjna W PHP występuje też inny rodzaj tablic, tak zwane tablice asocjacyjne (zwane też czasem haszami - hash table). Są to tablice, w których zamiast indeksów liczbowych używa się identyfikatorów znakowych (kluczy): <?php$tablica["imie"] = "Jan";$tablica["nazwisko"] = "Kowalski";$tablica["adres"] = "Polna 1";echo $tablica["imie"]." ".$tablica["nazwisko"]. ", ul. ".$tablica["adres"]."<BR>";?>

  4. Tablica może mieć elementy różnych typów:  <?php$tablica[0]["nazwa"] = "konserwa";//tekst $tablica[0]["cena"] = 10.5;//liczba $tablica[1]["nazwa"] = "chleb";$tablica[1]["cena"] = 2.76;//wypisanie w pętli for for ($x=0;$x<2;$x++)echo $tablica[$x]["nazwa"]." ".$tablica[$x]["cena"]."<br>";echo $tablica[0]["cena"]+$tablica[1]["cena"];?>

  5. Inny sposób definiowania tablic Tablice można również definiować wykorzystując składnię array() - używaną do tekstowej reprezentacji tablic (nie jest zwykłą funkcją). Składnia "indeks => wartości", oddzielona przecinkami <?php$owoce = array (   "owoce"  => array( "a"=>"pomarańcza", "b"=>"banan", "c"=>"jabłko"),   "liczby" => array (1, 2, 3, 4, 5, 6),   "dziury" => array ("pierwszy", 5 =>"drugi", "trzeci"));echo $owoce["owoce"]["a"]." ".$owoce["owoce"]["b"];?>

  6. Aby  dodać kolejny wpis na końcu tabeli wystarczy przy przypisywaniu wartości nie wpisywać indeksu do nawiasów kwadratowych. Uwaga:indeks zaczyna się od 0od 0 <?php$tab1[] = 1;$tab1[] = 0;$tab1[] = 3;$tab1[] = 2;$tab2[] = "Pierwszy";$tab2[] = "Drugi";$tab2[] = "Trzeci";$tab2[] = "Czwarty"; echo $tab2[0]; echo $tab2[$tab1[2]]; //co napisze php??>

  7. Przeglądanie tablic Bardzo często zachodzi potrzeba wykonania jakiejś operacji na wszystkich elementach tablicy. Sprawa jest prosta jeśli tablica jest zwykłą tablicą z indeksami liczbowymi i znamy liczbę tych elementów: <?php$tbl[] = 1;$tbl[] = 2;$tbl[] = 3;$tbl[] = 4;$tbl[] = 5;for( $x = 0; $x < 5; $x++ ) {   // Pętla wykona się 5 razy (0...4)   echo $tbl[$x];}?>

  8. Gdy nie znamy liczby elementów tablicy korzystamy z funkcji count(nazwa_tablicy). Zwraca ona liczbę elementów w tablicy podanej jako parametr.  <?phpfor( $x = 0; $x < count($tbl); $x++ ){echo $tbl[$x];}?>

  9. Jeszcze trudniej jest jeśli konieczne jest przejrzenie tablicy asocjacyjnej. W tym przypadku należy skorzystać z funkcji list() i each().  list() -  Przypisz zmienne tak jakby były tablicą Instrukcja list() jest używana do przypisywania listy zmiennych w jednej operacji. Przykład użycia list() <?php$info = array('kawa', 'brązowa', 'kofeina');// Listowanie wszystkich zmiennychlist($napój, $kolor, $składnik) = $info;print "$napój jest $kolor a $składnik czyni ją wyjątkową.<BR>";// Listowanie niektórych elementówlist($napój, , $składnik) = $info;print "$napój zawiera $składnik.<BR>";// Albo przeskoczmy od razu do trzeciegolist( , , $składnik) = $info;echo "Potrzebna jest mi $składnik!<BR>"; ?>

  10. each() • Zwraca bieżącą parę: klucz i wartość z tablicy  i przesuwa wewnętrzny wskaźnik tablicy do przodu o jeden element. Para ta jest zwracana jako czteroelementowa tablica, z kluczami 0, 1, key i value. • Przykłady użycia each() • <?php$imie = array ("Adam", "Barbara", "Cezary", "Damian", "Edward", "Felek");$wiersz = each ($imie);?> • $wiersz zawiera teraz następujące pary klucz/wartość: • 0 => 01 => 'Adam'key => 0value => 'Adam' • each() jest używana w połączeniu z list()aby "przejść" przez tablicę. Wykorzystuje się tu pętlę while: • <?php • $tablica["imie"] = "Jan";$tablica["nazwisko"] = "Kowalski";$tablica["adres"] = "Polna 1";while( list($klucz, $wartosc) =each($tablica) )echo $klucz." : ".$wartosc."<BR>";?> • W każdej iteracji pętli mamy dostępne 2 zmienne, przyjmujące wartości kolejnych kluczy i wartości przypisanych tym kluczom.

  11. Sortowanie tablic • PHP ofertuje cały zestaw funkcji służących do sortowania tablic. Są to: asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), i uksort(). Większość funkcji (oprócz trzech ostatnich) przyjmuje jeden parametr: zmienną zawierającą tablicę do posortowania. Żadna z funkcji nie zwraca żadnego wyniku. Działanie poszczególnych funkcji: • asort() - sortuje tablice asocjacyjne zachowując przypisanie kluczy do wartości: • <?php$owoce = array("d"=>"mango", "a"=>"papaja", "b"=>"banan", "c"=>"aronia");asort($owoce);reset($owoce); • while (list($klucz, $wartosc) = each($owoce)) {echo "$klucz = $wartosc<BR>";}?>

  12. Obsługa plików w PHP W języku PHP istnieje kilkanaście funkcji do obsługi operacji na plikach. Opi­szemy najważniejsze z nich. Dla potrzeb tego ćwiczenia utworzymy plik o nazwie plik.txt. Jako jego zawartość wpisujemy: wiersz l wiersz 2 wiersz 3 Podstawowe znaczenie dla obsługi plików ma funkcja fopen. Za jej pomocą możemy otworzyć istniejący lub utworzyć nowy plik na dysku. Możemy też za pomocą tej samej funkcji otworzyć dowolną lokację internetową podając jej adres URL.

  13. Przykład $plik=fopen('./plik.txt', 'r'); ·jako pierwszy parametr - ścieżka wraz z nazwą pliku ·jako drugi parametr - jedna z poniższych opcji: „r" - otwiera plik tylko do odczytu i ustawia wskaźnik na początku pliku „r+" - otwiera plik do odczytu i zapisu i ustawia wskaźnik na początku pliku „w" - otwiera plik tylko do zapisu i jeżeli plik nie jest pusty, opróżnia go; je­żeli taki plik nie istnieje, zostanie utworzony „a" - otwiera plik tylko do odczytu i ustawia wskaźnik na końcu pliku „a+" - otwiera plik do odczytu i zapisu oraz ustawia wskaźnik na końcu pliku.

  14. Jeśli nie podamy tego parametru, plik będzie otwarty tylko do odczytu. Aby odczytać lub zapisać do pliku treść, musimy po uprzednim otwarciu pliku przy użyciu funkcji fopen skorzystać z jednej z poniższych funkcji: ·fgets - odczytuje z podanego pliku jeden wiersz nie dłuższy niż podana liczba znaków. Przykład $wiersz=fgets($plik, 4096); • fputs - za pomocą tej funkcji możemy zapisać do otwartego pliku ciąg znaków, pod warunkiem że plik nie jest otwarty tylko do odczytu. Wywołanie funkcji fputs ($plik, "tekst"); spowoduje zapisanie tekstu „tekst" do otwartego pliku i odpowiednie przesunięcie się wskaźnika zapisu.

  15. Przykład <?php // otwieramy plik o nazwie plik.txt do odczytu i zapisu $plik=fopen ("plik.txt","r+"); fputs ($plik, "tekst"); // zapisujemy tekst do pliku ?>

  16. Podobna do fopen jest funkcjafile. W odróżnieniu od fopen, wraz z otwarciem pliku odczytuje ona także całą jego zawartość i zwraca ją w formie tablicy, której każdy element odpowiada jednemu wierszowi pliku. Przykład Aby pobrać i wyświetlić na przykład drugi wiersz naszego pliku, możemy użyć następującego skryptu PHP: <?php // otwieramy plik o nazwie plik.txt i wstawiamy go do zmiennej $plik $plik=file("plik.txt"); $wiersz=$plik[1]; // wstawiamy wiersz z pliku do zmiennej $wiersz echo ("$wiersz"); // wyświetlamy zawartość wiersza 2 ?>

  17. Funkcja readfile pomaga wyświetlić całą zawartość danego pliku na ekranie: Przykład <?php readfile("plik.txt"); // wyświetlamy na ekranie całą zawartość // pliku plik.txt ?>

  18. Oprócz funkcji dotyczących operacji na treści plików, PHP zawiera jeszcze inne, które pomagają operować na całych plikach (kopiowanie, kasowanie, pobieranie informacji o plikach). Poniżej omówimy najczęściej stosowane. feof – funkcja logiczna, detekcja końca pliku, Przykład <?php $plik=fopen (‘dane.txt’,’r’); while ( !feof($plik) ) { $wiersz= fgets($plik, 255); echo $wiersz; } fclose($plik); ?>

More Related