Sortowanie bąbelkowe

Zasada sortowania bąbelkowego

Pseudokod programu:

oraz algorytm

 

Napisz co myślisz !

Sonda/Ankieta

Lekcja z 2016.04.21

cel

Użytkownik wybiera jedną lub więcej możliwych odpowiedzi klika przycisk “Głosuj”, serwer zapisuje głos i wyświetla wyniki.

Głosowanie wykonamy przez formularz, a wszystkie obliczenia zrobimy w PHP.

Przygotowanie

Najpierw musimy w jakiś sposób określić czy ktoś oddał już głos, czy jeszcze nie. Zabezpieczymy to z użyciem sesji (Można też sprawdzać ip z którego oddawano głos).
Na samym początku pliku HTML przygotowujemy kod php

session_start() – Poinformuje serwer że korzystamy z sesji, dzięki czemu będzie można korzystać z zmiennej $_SESSION[‘glos’], nawet podczas przechodzenia między stronami.

isset( $zmienna ) – Sprawdza czy dana zmienna istnieje.

Ten prosty kod stworzy zmienną sesyjną ‘glos’ jeżeli takowa nie istnieje.

Sprawdzanie danych z formularza

Formularza jeszcze nie mamy, ale żeby nie zgubić się w kodze najpierw dokończymy ten fragment.

Tworzymy plik sonda.txt i zapisujemy do niego treść: 0;0;0 (trzy zera oddzielone średnikami), jeżeli nasza sonda przewiduje mniej lub więcej możliwych odpowiedzi to dajemy odpowiednią ilość zer (np. dla dwóch pytań: 0;0 a dla 5: 0;0;0;0;0). Teraz pod kodem napisanym wczesniej zamieszczamy ten fragment:

Zasada działania tego kodu jest prosta. Jeżeli coś przyszło z formularza ‘sonda’ to zaczynamy działanie: $0dcz = file(“sonda.txt”); – Najpierw odczytujemy zawartość pliku “sonda.txt” do zmiennej $odcz (odczytać)
$odp = explode(“;”, $odcz[0]); – Potem dzielimy pierwszą (zerową) linie pliku znakami średnika, podzielona zawartość ląduje w zmiennej $odp (odpowiedzi).
if(isset($_POST[‘a’])) $odp[0] += 1; – Sprawdzamy czy była zaznaczona odpowiedź ‘a’ jeżeli tak to zwiększamy odpowiednie pole o jeden.
file_put_contents( … ) – Zapisujemy nowe dane do pliku sonda.txt według przyjętego schematu: ilośćA;iloscB;iloscC
$_SESSION[‘glos’] = true; – Zapisujemy fakt zagłosowania.

Formularz

Na przygotowanej już stronie ( Struktura HTML ) w sekcji body umieszczamy pytanie do sondy i pod nim kod PHP:

Pierwsze co, to sprawdzamy czy oddano już głos, jeżeli tak to wyświetlamy wyniki głosowania, jeżeli nie. wyświetlamy formularz głosowania. te elementy kodu były opisane wyżej. Pamiętamy tylko o tym że nietypowo przycisk wysłania ( submit ) ma parametr name z wartością sonda, jest to po to by móc określić czy ktoś zagłosował czy po raz pierwszy wszedł na stronę.

Jedna możliwa odpowiedź

A co jeżeli chcemy aby użytkownik mógł zaznaczyć tylko jedną odpowiedź a nie kilka? Jest to proste, zmieniamy tylko lekko wyżej napisany kod:
Formularz zamienimy na:

A kod sprawdzający wysłany formularz na:

 

Cały kod

 

Dodałem tutaj na końcu jeszcze link do resetowania faktu że głosowałem, zrobiłem to by testować jak działa sonda, na gotowej stronie nie powinno tego już być.
Plik x.php

 

Napisz co myślisz !

Zamiana tekstu na emotikony

Lekcja z 2016.04.07

Cel

Chcemy uzyskać efekt jak na różnego rodzaju czatach, tz. Program musi znaleźć emotikon zapisany znakami (np. : ) ,  : D ) i zamienić go na odpowiedni obrazek.

Potrzebne materiały

Najważniejsze to lista emotikonów i obrazki dla nich.

PHP posiada cały zestaw przydatnych funkcji dzięki którym programowanie staje się łatwiejsze, jakoż iż znalezienie i zamiana ciągu w dłuższym tekście jest rzeczą często stosowaną, mamy w PHP do tego bardzo przydatną funkcje: str_replace.

Pod zmienne A i B może przyjąć zwykły tekst, albo listę (array) tekstów.
Jakoż że my mamy kilka emotikonów to skorzystamy z tablic żeby łatwo i przyjemnie wymienić wszystkie na raz. Przykład zastosowania:

Kod

Najpierw przygotowujemy formularz

Następnie umieszczamy kod PHP. Warto pamiętać by kod przed pobraniem tekstu sprawdził czy została ona wysłana, bo co by się stało gdyby ktoś wszedł na stronę po raz pierwszy i jeszcze nie wpisał nic w polu tekstowym?

Jak widać sprytnie podmieniamy emotikony tekstowe na zwykły znacznik HTML – img, wskazujący na odpowiedni obrazek. Określamy wysokość obrazka tak by nie rozwalał on tekstu, a ładnie się w niego wpasował, zależnie od rozmiaru czcionki wielkość obrazka będzie trzeba dopasować.

Jeżeli masz bardziej rozbudowaną stronę nic nie stoi na przeszkodzie by zapakować ten kod do funkcji i używać jednym wywołaniem na całej stronie:

Napisz co myślisz !

Operacje na plikach

Lekcja z 2016-04-14

Operacje na plikach

PHP posiada wiele różnych funkcji operujących na plikach, ja opiszę te najprostsze. Po za nimi są jeszcze te bardziej zaawansowanie takie jak: fopen, fwrite, fread, fclose, itp.

Odczytywanie z pliku

Żeby odczytać coś z pliku korzystamy z funkcji file, w zamian za podanie jej nazwy pliku, ona nas informuje co w nim jest – zwraca listę stringów. Każe pole tej tablicy jest jedną linią pliku, możemy je wszystkie wypisać:

Korzystamy tutaj z funkcji count która informuje ile jest pozycji w tablicy. Dla porównania w C# można napisać tablica.Length, w PHP mamy trochę trudniej: count( $tablica ).

Każda linia jest zapisana pod odpowiadającym jej indeksem. Pierwsza linia to $tresc[0], druga to $tresc[1], trzecia $tresc[2] itd…

Zapis do pliku

Zapisywanie do pliku jest równie łatwe, a nawet łatwiejsze niż odczyt. Korzystamy do tego z funkcji file_put_contents, którą informujemy do jakiego pliku, co chcemy zapisać. Należy pamiętać że zawartość pliku zostanie skasowana przed zapisem, aby tego uniknąć korzystamy z flagi FILE_APPEND

Nieważne co było wcześniej w pliku MojPlik.txt teraz będzie w nim zapisane:
Ala ma kota.Ala ma też psa
Aby dodać nową linie wystarczy zapisać znak nowej lini: \r\n np.:
Pierwsza linia. \n\rDruga linia.

Proste i łatwe, daje dużo możliwości. Czasem mogą pojawić się problemy z uprawnieniami, należy wtedy wejść w właściwości/uprawnienia pliku i zmodyfikować je tak aby można było odczytywać i zapisywać do niego.

Napisz co myślisz !