Technologie Internetowe

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Użytkowanie Sieci Marcin KORZEB WSTI - Użytkowanie Sieci.
Wprowadzenie do języka skryptowego PHP
Wprowadzenie do języka skryptowego PHP
Kamil Smitkiewicz Bezpieczeństwo w PHP.
PROGRAMOWANIE STRUKTURALNE
MS Access 2003 Kwerendy Paweł Górczyński.
MS Access 2000 Tworzenie tabel Piotr Górczyński 2005.
Zakres i zasięg deklaracji Zakres : obszar programu, w którym identyfikator może być użyty zakres globalny : cały program zakres lokalny : definicja pojedynczej.
Support.ebsco.com EBSCOhost Wyszukiwanie złożone (z wieloma frazami) Szkolenie.
Obsługa plików csv Do odczytu z pliku csv można użyć następującego kodu: $fp = fopen ("strony.csv","r"); $num = 0; while ($data = fgetcsv ($fp, 1000, ";"))
Funkcje znakowe, liczbowe i obsługa dat Kolejny krok w poznaniu SQL-a.
Funkcje znakowe, liczbowe i obsługa dat Kolejny krok w poznaniu SQL-a.
Programowanie w C Wykład 3
SO – LAB3 Wojciech Pieprzyca
Język ANSI C Operacje we/wy
1 Języki i techniki programowania prowadzący dr Grzegorz Filipczyk.
PROJEKTOWANIE TABEL W PROGRAMIE: ACCESS
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Poznaj bliżej program Microsoft Office Word 2007
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Linux - polecenia.
Instrukcja USOS Rejestracja na zajęcia obieralne wersja by Marek Opacki.
Pliki Pojęcie i rodzaje plików Definicja typu plikowego Operacje wykonywane na plikach elementowych.
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
Tworzenie stron internetowych
ANNA BANIEWSKA SYLWIA FILUŚ
Projektowanie tabeli w arkuszu kalkulacyjnym
Prezentacja i szkolenie
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Teleinformatyka Wykład 7 Komunikacja klient-serwer – cd.
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
MICROSOFT Access TWORZENIE MAKR
Temat 12: Formularze.

Projektowanie stron WWW
Aplikacje internetowe Projektowanie formularzy Część 2.
Informatyka Poczta elektroniczna.
Aplikacje internetowe
Nieograniczone źródło informacji
Podstawy programowania II Wykład 3: Obsługa plików w stdio.h.
PHP Formularze Damian Urbańczyk. Do czego służą? Formularze to bardzo ważne elementy stron internetowych, dzięki nim dochodzi do wymiany danych pomiędzy.
Portal edukacyjny A.Ś. FORMULARZE W JĘZYKU HTML. Portal edukacyjny A.Ś. Obiekty umieszczane na stronach www Teksty Obrazy Odnośniki Tabele Ramki pływające.
Opracowanie mgr Karol Adamczyk
Wprowadzenie do PHP SYSTEMY TELEINFORMATYCZNE Wykład 5 AiR 5r.
Temat 5: Instrukcje: print(), echo()
PHP Zmienne Damian Urbańczyk. Czym są zmienne? Zmienne zajmują pewien obszar pamięci, aby przechować pewne dane. W przypadku PHP, zmienne stosuje się.
Jak wykonać prosty licznik odwiedzin strony internetowej?
Komendy SQL do pracy z danymi
Formatowanie dokumentów
Projektowanie postaci formularza:
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
Microsoft® Office Word
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Moduł ECDL-AM5 Bazy danych, poziom zaawansowany Tabele, relacje.
Excel 2007 dla średniozaawansowanych Zajęcia z Prowadzący: Artur Kołos.
Elementy przeglądarki internetowej Pasek menu Pasek kart Pasek adresowy Pasek wyszukiwania Okno z zawartością strony internetowej Zakładki (ulubione)
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
SQL Server Analysis Services Action!
Strumienie, Wczytywanie, Zapisywanie, Operacje na plikach
T. 18. E Proces DGA - Działania (operatorka).
Wyższa Szkoła Ekologii i Zarządzania
Aplikacje i usługi internetowe
Korespondencja elektroniczna
Excel Informacje różne.
Zapis prezentacji:

Technologie Internetowe Wykład 5 PHP cd.

Formularze, poczta, system plików,

Obsługa formularzy Należy najpierw odpowiednio przygotować formularz. W znaczniku FORM w parametrze ACTION należy podać adres dokumentu PHP mającego obsłużyć ten formularz. Parametr METHOD może mieć wartość POST lub GET - obie metody są obsługiwane przez PHP. . Należy pamiętać o zdefiniowaniu nazw wszystkich pól formularza z których skrypt ma skorzystać. Przykład: <FORM ACTION="skrypt.php" METHOD="post"> <INPUT TYPE="text" NAME="tekst"> <INPUT type="submit" name="x" value="Wyślij"> </FORM>

W skrypcie będą dostępne zmienne o nazwach takich jak nazwy (name) pól formularza, zawierające ich wartości: <?php echo($_POST['tekst']); ?> W przypadku pola tekstowego wartością zmiennej będzie wpisany przez użytkownika tekst. Jeżeli pole jest typu CHECKBOX wartością będzie "on" jeżeli pole jest zaznaczone, lub zmienna będzie pusta jeżeli pole nie zostało zaznaczone. Jeżeli w polu typu CHECKBOX podamy parametr VALUE, będzie on użyty zamiast "on". Tak samo wygląda obsługa pola typu RADIO. Wartością pola SELECT będzie wartość parametru VALUE zdefiniowanego w znaczniku OPTION.

Formularze HTML najczęściej zawierają: Metodę Akcję Pola wejściowe Pierwszy wiersz formularza w kodzie HTML może wyglądać następująco: <FORM ACTION=licz.php METHOD=POST> Post - zmienne przekazywane są z formularza z wykorzystaniem superglobalnej tablicy $_POST Get – tablica $_GET. Zapytanie jest dołączone do lokalizatora (adresu) URL Post vs. Get Metoda Post została opracowana do tworzenia nowych zasobów, np. przekazanie formularza zamówienia powoduje wstawienie nowego rekordu do tabeli bazy danych – pojawia się trwały efekt. Metoda Get jest używana gdy żądanie nie powoduje trwałych efektów ubocznych – np. operacje wyszukiwania. Należy jednak uważać: przy stosowaniu get mogą powstać długie adresy, często przekraczające limity przeglądarek czy serwerów.

Metodę POST stosuje się gdy: (Wynikiem żądania są trwałe zmiany || Dane z formularza mogą powodować powstanie długiego adresu URL przy użyciu GET || Wysyłane dane nie są zapisane za pomocą siedmiobitowego ASCII.) Metodę GET stosuje się gdy: (Celem żądania jest odszukanie zasobów && W wyniku wykonania żądania nie wystąpią żadne trwałe efekty uboczne && Dane z pól <form> mają w sumie mniej niż 1024 znaki) Get – bezpieczna; Post – niebezpieczna, dokonuje trwałych modyfikacji w serwerze <FORM ACTION="licz.php" METHOD="POST"> Akcja określa skrypt do którego zostaną przesłane dane i który zostanie uruchomiony

Typy pól formularzy HTML: input – różne typy <P>Liczba1: <INPUT TYPE="text" NAME="val2" SIZE=10></p> <INPUT TYPE="radio" NAME="calc" VALUE="add"> <INPUT TYPE="submit" NAME="Calculate" VALUE="Wykonaj"> </FORM> Typy pól formularzy HTML: input – różne typy text – jedna linia tekstu; hidden – pole ukryte (umożliwia przesłanie dodatkowych, niewidocznych dla użytkownika danych); password - dla haseł file – do przesyłania plików (upload) textarea – wiele wierszy tekstu submit – przycisk służący do wysyłania formularza lub do kasowania zawartości wypełnionych pól; checkbox – pole wyboru (jeden z dwu); radio – pole wyboru (jeden z wielu); select – menu rozwijane lub lista – elementy OPTION

Wysyłanie poczty e-mail Dla systemu Windows w pliku php.ini należy skonfigurować: [mail function] SMTP = ewa.prz.rzeszow.pl //nazwa serwera poczty wychodz. sendmail_from = ty@prz.rzeszow.pl //własny adres Można zastosować funkcję w skrypcie: ini_set('sendmail_from','ty@prz.rzeszow.pl'); Do wysyłania listu elektronicznego za pośrednictwem protokołu SMTP (standardowy protokół wykorzystywany do przesyłania poczty elektronicznej) w najprostszym przypadku wystarczy funkcja mail() : mail (odbiorca, temat, treść); Można również uwzględnić adres nadawcy, wtedy funkcja mail() będzie miała postać: mail (odbiorca, temat, treść, od); mail ("jan@kowalski.com"; "to jest temat wiadomości", "to jest treść bardzo krótkiej wiadomości", "od:franek@nowak.com")

Korzystanie z systemu plików (pliki na serwerze!) Do otwierania plików służy funkcja fopen(nazwa_pliku,mode). Nazwa pliku to pełna ścieżka do pliku, który tworzymy lub otwieramy, mode określa tryb działania funkcji. Funkcja zwraca wskaźnik pliku (służy jako odnośnik i dostarcza informacji o pliku). Parametr mode przyjmuje jedną z następujących wartości: Mode Opis r Otwiera istniejący plik i odczytuje zawarte w nim dane. Ustawia wskaźnik na początku pliku r+ Otwiera istniejący 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, a jeżeli taki plik nie istnieje zostanie utworzony w+ Otwiera plik do odczytu i zapisu. Jeżeli plik nie jest pusty, opróżnia go, a jeżeli taki plik nie istnieje zostanie utworzony a Otwiera istniejący plik do zapisu i ustawia wskaźnik na końcu pliku. Jeśli plik nie istnieje f. tworzy go. a+ Otwiera plik do odczytu i zapisu i ustawia wskaźnik na końcu pliku. Jeśli plik nie istnieje f. tworzy go.

1. Sprawdzanie czy plik istnieje file_exists("plik.php") 2. Tworzenie nowego pliku fopen("c:/moje dane/plik.txt","w+"); - jeśli nie podamy trybu plik będzie otwarty do odczytu 3. Zapis do pliku $file = @fopen($plik, "w+") – tworzy wskaźnik pliku (zmienną plikową) fwrite($file, $tekst); //zapis lub fputs ($file, $tekst, $dlugosc); //zapis fclose($file); UWAGA: dla przeczytanych tekstów stosuje się funkcję trim obcinającą białe znaki (spacje, zmiany wiersza itp.)

4. Odczytywanie danych z pliku $file = fopen($plik, "r"); $msg = fread($file, filesize($plik)); - czyta od początku do końca pliku lub $msg = fgets($file, filesize($plik)); //odczyt $msg = file('adres/nazwa_pliku'); fclose($file); echo $msg; Można podawać liczbę znaków do odczytania

Szczegółowo: $linia = fgets(zmienna_plikowa, [długość]) – odczyt linii z otwartego pliku (do znaku \n lub EOF) fputs(zmienna_plikowa, zawartość, [długość]) – zapis do otwartego pliku fseek(zmienna_plikowa, pozycja) – ustawia wskaźnik pliku w punkcie pozycja bajtów ftell(zmienna_plikowa) – informuje na jakiej pozycji (bajt) jest ustawiony wskaźnik rewind(zmienna_plikowa) – ustawia wskaźnik na początku pliku readfile(nazwa_pliku) – otwiera plik, wyświetla plik w oknie przeglądarki i zamyka plik $tabpliku =file(nazwa_pliku) – wpisuje zawartość całego pliku do tablicy, każda linia stanowi osobny element tablicy feof((zmienna_plikowa) - sprawdza osiągnięcie końca pliku, przyjmuje wartość true jeśli został osiągnięty koniec pliku

Dokładniej… $uchwyt= fopen("sciezka/nazwa" ,"r") string fgets ( resource $uchwyt [, int długość]) Zwraca łańcuch o (długości – 1) bajtów odczytany z pliku wskazanego przez uchwyt. Czytanie kończy się kiedy przeczytano (długość – 1) bajtów lub gdy wystąpi znak nowego wiersza (jest on dołączany do zwracanego wyniku) lub gdy wystąpi znak końca pliku EOF (którykolwiek przypadek zdarzy się pierwszy). Jeśli nie została określona długość, domyślnie przyjmuje 1k (1024 bajty).

6. Kopiowanie plików $stary = "c:/moje dane/plik.php"; $nowy = "nowyplik.php"; copy($stary, $nowy); 7. Zmiana nazwy pliku $stary = "stara nazwa.php"; $nowy = "nowa nazwa.php"; rename($stary, $nowy); 8. Usuwanie plików unlink("nowyplik.php");

$linia=fgets($plik, 4096); Przykłady: $linia=fgets($plik, 4096); Pobiera do zmiennej $linia wiersz o długości nie większej niż 4096 znaków fputs ($plik, "tekst"); Spowoduje zapisanie tekstu „tekst" do otwartego pliku i odpowiednie przesunięcie się wskaźnika zapisu. <?php $plik=fopen (" dane.txt ", "r "); while ( !feof($plik) ) { $linia= fgets($plik, 255); echo $linia; } fclose($plik); ?>

mkdir("ścieżka/katalog"), rmdir("ścieżka/katalog") flock(zmienna_plikowa, działanie) - blokowanie pliku wywoływana po otwarciu, ale przed odczytem czy zapisem (pozwala na przeciwdziałanie równoczesnemu dostępowi do plików przez wielu użytkowników) mkdir("ścieżka/katalog"), rmdir("ścieżka/katalog") $kat = opendir("ścieżka/katalog") – otwarcie katalogu do odczytu zawartości $nazwa = readdir($kat) – czytanie nazwy pliku z zawartości katalogu (1 wpis), f. przyjmuje wartośc false jeśli wszystkie wpisy zostaną odczytane. Wpisy nie są uporządkowane. closedir($kat) – zamknięcie katalogu po zakończeniu czytania Działanie Opis 1 Blokowanie odczytu; dopuszcza współdzielenie 2 Blokowanie zapisu. Plik nie może być dzielony 3 Zwolnienie istniejącej blokady

<?php echo $lista_plikow; ?> Przykład: Wyświetlenie zawartości katalogu w postaci listy <?php $nazwa_kat = 'C:\usr\krasnal\www\htdocs'; $kat = opendir($nazwa_kat); //otwarcie do czytania $lista_plikow = "<ul>"; //pocz listy while ($naz_pliku = readdir($kat)) //war. zakończenia if (($naz_pliku !=".")&&($naz_pliku !="..")) //filtr $lista_plikow .= "<li>$naz_pliku"; //dopisanie $lista_plikow .= "</ul>"; //koniec listy closedir($kat); //zamkniecie ?> <P>Elementy w katalogu: <?php echo "$nazwa_kat"; ?></p> <?php echo $lista_plikow; ?>

Przykład: licznik odwiedzin na stronie <?php if(!file_exists("licznik.txt")) { //jeśli nie istnieje $plicznik=fopen("licznik.txt","w+"); //to jest tworzony fputs($plicznik, "0"); // wpisujemy "0" fclose($plicznik); } $plicznik=fopen("licznik.txt","r+"); //otwarcie "RW" flock($plicznik,2); $liczba=fgets($plicznik,10); //pobranie ilości odwiedzin echo ("<strong>Liczba odwiedzin: $liczba </strong>"); $liczba++; //zwiększenie ilości o 1 fseek($plicznik,"0"); //wskaźnik na początek fputs($plicznik, $liczba); //wpisanie liczby do pliku flock($plicznik,3); ?>

CIASTECZKA „cookies” setcookie (PHP 3, PHP 4 , PHP 5) setcookie -- Wysyła ciasteczko i zapisuje u klienta Opis setcookie ( string nazwa [, string wartość] [, int data_ważności ]) setcookie() określa ciasteczko (ang. cookie) do wysłania z nagłówkami HTTP. Ciasteczko musi być wysłane zanim jakiekolwiek inne nagłówki zostaną wysłane (to jest ograniczenie ciasteczek, nie PHP). To wymaga umieszczenia wywołań tej funkcji przed znacznikami <html> czy <head>. Wszystkie argumenty poza nazwą są opcjonalne. Jeśli obecny jest tylko argument nazwa, ciasteczko o takiej nazwie zostanie usunięte z klienta. Można też opuścić argumenty za pomocą pustego łańcucha (""). Argument data_ważności jest liczbą całkowitą. Można uzyć liczby zero (0). Argument data_ważności jest regularnym uniksowym znacznikiem czasu, takim jak zwracany przez funkcje time() lub mktime (). Wysłane ciasteczko jest dostępne już przy następnym załadowaniu strony w tablicy $_COOKIE. W PHP do 4.1.0 była to tablica $HTTP_COOKIE_VARS.

Przykład 1. setcookie() wysyła przykładowe ciasteczka Częste pułapki: Tworzone skryptem ciasteczka nie będą widziane do następnego przeładowania strony dla której mają być widoczne. Ciasteczko może być usunięte tylko z tymi parametrami, z jakimi je ustawiono. Można wielokrotnie wywołać setcookie() - wykonywane są we właściwej kolejności. Przykład 1. setcookie() wysyła przykładowe ciasteczka setcookie ("TestCookie", $value); setcookie ("TestCookie", $value,time()+3600);  /* traci ważność za godzinę */ Aby skasować ciasteczko, należy ustawić datę ważności na datę z przeszłości Przykład 2. Kasowanie ciasteczek// np. ustawić datę ważności na godzinę wstecz setcookie ("TestCookie", "", time() - 3600); Przykład 3. Sprawdzenie ciasteczka if (isset($_COOKIE["TestCookie"])) kod1; else kod2;

<?php if (isset($licznik)) $licznik++; else $licznik = 1; setcookie("licznik",$licznik,time()+(3600*24*31)); // ciasteczko będzie utrzymywane na komputerze // oglądającego stronę // przez miesiąc od ostatnich odwiedzin echo ("Odwiedziłeś tę stronę $licznik razy<br>"); echo"<br>"; var_dump($_COOKIE);//informacja o tablicy _COOKIE ?>

LICZNIK odporny na odświeżanie (plik i cookie) <?php if (!file_exists("licznik.txt")) // jeżeli plik licznik.txt nie istnieje {$licznik=fopen("licznik.txt","w"); // tworzymy go } else // w innym wypadku { // otwieramy go i odczytujemy liczbę odwiedzin $licznik=fopen("licznik.txt","r+"); $numer=fgets($licznik,4096); // pobieramy pierwszą linijkę if ($numer=='') // przy pierwszym uruchomieniu plik będzie pusty $numer=0; // pierwsza wizyta // jeżeli użytkownik nie ma ciasteczka lub odwiedzał stronę przed godziną if (!isset($_COOKIE["CLicznik"])) { rewind ($licznik); // cofamy pozycję zapisu w pliku na początek $numer++; // zwiększamy liczbę odwiedzin o 1 fwrite($licznik,$numer); // zapisujemy liczbę w pliku fclose($licznik);// zamykamy plik // zapisujemy ciasteczko na komputerze użytkownika setcookie("CLicznik","Ustawione ciasteczko",time()+3600); // wyświetlamy odpowiedni tekst echo "Witam, jesteś ". $numer. "gościem na mojej stronie !!!"; ?> Uwaga: gdzie są ciasteczka (Explorer, Opera – inne przeglądarki) Nie jest istotna wartość ciasteczka

Funkcje czasu time Zwraca aktualny uniksowy znacznik czasu Opis int time ( ) Zwraca aktualny czas, podawany jako liczba sekund, które upłynęły od uniksowej Epoki (1 stycznia 1970 00:00:00 GMT).

date Formatuje lokalny czas/datę Opis string date ( string format [, int znacznik_czasu]) Zwraca datę sformatowaną według szablonu podanego w argumencie format. Żądana data określona jest w argumencie znacznik_czasu, a w przypadku jego braku pobierany jest aktualny czas. Uwaga: Poprawny zakres znacznika czasu to zwykle od piątku, 13 grudnia 1901 20:45:54 GMT (czasu Greenwich) do wtorku, 19 stycznia 2038 03:14:07 GMT. (Wartości te odpowiadają minimalnej i maksymalnej wartości 32-bitowej liczbie całkowitej ze znakiem). W systemie Windows zakres ten jest bardziej ograniczony i zawiera się w przedziale 01-01-1970 do 19-01-2038. Niektóre systemy baz danych mają funkcje konwersji ich formatów daty w uniksowy znacznik czasu (jak np. funkcja UNIX_TIMESTAMP w MySQL-u).

Poniższych znaków używa się w szablonie formatującym datę: d - dzień miesiąca, 2 cyfry z zerem na początku; tzn. od "01" do "31" D - dzień tygodnia, tekst, 3 litery; n.p. "Fri" F - miesiąc, tekst, pełna nazwa; n.p. "January" h - godzina, format 12-godzinny z zerem na początku; tzn. od "01" do "12" //g H - godzina, format 24-godzinny z zerem na początku; tzn. od "00" do "23" //G i - minuty; tzn. od "00" do "59" j - dzień miesiąca bez zera na początku; tzn. od "1" do "31" l (mała litera 'L') - dzień tygodnia, tekst, pełna nazwa; n.p. "Friday" m - miesiąc; tzn. "01" to "12" M – skrót nazwy miesiąca (ang.) n - miesiąc bez zera na początku; tzn. "1" to "12" r - data sformatowana według RFC 822; n.p. "Thu, 21 Oct 2004 12:01:07 +0100" (dodane w PHP 4.0.4) s - sekundy; i.e. "00" to "59" w - dzień tygodnia, liczbowy, tzn. od "0" (Niedziela) do "6" (Sobota) W - numer tygodnia w roku według ISO-8601, tydzień zaczyna się w poniedziałek (dodane w PHP 4.1.0) Y - rok, 4 liczby; n.p. "1999" //y z - dzień roku; tzn. od "0" do "365" Nierozpoznane znaki w szablonie formatującym będą wyświetlone tak jak są.

Przykład 1. przykłady użycia date() echo date ("l dS of F Y h:i:s A"); echo "July 1, 2000 is on a " . date ("l", mktime(0,0,0,7,1,2000)); Jeśli nie chcemy, aby któryś z rozpoznawalnych w szablonie znaków został zastąpiony odpowiadającą mu częścią daty, musimy poprzedzić go znakiem odwrotnego ukośnika (backslash). Przykład 2. zastosowania date() /* Dzisiaj jest March 10th, 2001, 5:16:18 pm */ $today = date("F j, Y, g:i a");                // March 10, 2009, 5:16 pm $today = date("m.d.y");                        // 03.10.01 $today = date("j, n, Y");                      // 10, 3, 2009 $today = date("Y-m-d");                          // 2009-03-10 $today = date('h-i-s, j-m-y, it is w Day z ');  // 05-16-17, 10-03-01, 1631 1618 6 Fripm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y.');  // It is the 10th day. $today = date("D M j G:i:s T Y");              // Sat Mar 10 15:16:08 MST 2009 $today = date('H:m:s \m \i\s\ \m\o\n\t\h');    // 17:03:17 m is month $today = date("H:i:s");                        // 17:16:17

mktime mktime -- Oblicza uniksowy znacznik czasu dla podanej daty Opis int mktime ( int godzina, int minuta, int sekunda, int miesiąc, int dzień, int rok [, int letni/zimowy]) Uwaga: Proszę zwrócić uwagę na kolejność argumentów !!!, która w dodatku nie jest praktyczna przy opuszczaniu argumentów od prawej do lewej (patrz niżej). Częstym błędem w skryptach są pomyłki w kolejności tych argumentów. Funkcja zwraca uniksowy znacznik czasu odpowiadający podanym argumentom. Znacznik czasu jest liczbą całkowitą długą (long integer) zawierającą liczbę sekund dzielącą uniksową Epokę (1 stycznia 1970) od podanego w argumentach czasu. Argumenty mogą być opuszczane w kolejności od prawej do lewej. Za każdy pominięty argument będzie wówczas wstawiona aktualna wartość, zgodnie z lokalnym czasem/datą. Argument letni/zimowy może być ustawiony na 1, jeśli to czas zimowy, lub 0 jeśli letni, lub -1 (domyślnie) jeśli niewiadomo, czy letni czy zimowy. Jeśli nie jest to wiadome, PHP spróbuje ustalić samodzielnie.

Funkcja mktime() przydaje się przy wykonywaniu arytmetyki dat i walidacji, gdyż automatycznie policzy właściwą wartość dla danych spoza przedziałów. Na przykład, każda poniższa linia wyświetli "Jan-01-1998". Przykład 1. przykład mktime() <?php echo date ("M-d-Y", mktime (0,0,0,12,32,1997)); echo date ("M-d-Y", mktime (0,0,0,13,1,1997)); echo date ("M-d-Y", mktime (0,0,0,1,1,1998)); echo date ("M-d-Y", mktime (0,0,0,1,1,98)); ?> rok może być liczbą dwu lub czterocyfrową, przy czym wartości dwucyfrowe z przedziału 0-69 będą mapowane do 2000-2069, a z przedziału 70-99 do 1970-1999 (w systemach, w których time_t jest 32-bitową liczbą całkowitą ze znakiem, co jest obecnie najpopularniejszym rozwiązaniem, poprawny zakres argumentu rok zawiera się pomiędzy 1902 a 2037). Windows: Żadna znana wersja systemu Windows nie obsługuje ujemnych znaczników czasu. Z tego powodu zakres poprawnych dat zawiera się pomiędzy rokiem 1970 a 2038. Ostatni dzień dowolnego miesiąca może być wyrażony jako zerowy dzień następnego miesiąca, ale nie jako -1 dzień. Obydwa poniższe przykłady wyświetlą "Ostatni dzień lutego 2000 to: 29"

echo strftime ("Ostatni dzień lutego 2010 to: %d", $ostatni); Przykład 2. Ostatni dzień miesiąca <?php $ostatni = mktime (0,0,0,3,0,2010); echo strftime ("Ostatni dzień lutego 2010 to: %d", $ostatni);     $ostatni = mktime (0,0,0,4,-31,2010); echo strftime ("Ostatni dzień lutego 2010 to: %d", $ostatni); ?>

Przykłady zastosowania date() i mktime() $jutro = mktime (0,0,0,date("m")  ,date("d")+1,date("Y")); $poprzedni_miesiac = mktime (0,0,0,date("m")-1,date("d"),  date("Y")); $nastepny_rok    = mktime (0,0,0,date("m"),  date("d"),  date("Y")+1); Notatka: Rozwiązanie to jest bardziej godne zaufania od dodawania lub odejmowania określonej liczby sekund, chociażby z powodu zmiany czasu.