C/C++ / CGI / Sieć Novell / PHP / Java / SQL / Oracle / WebSphere MQ / WebSphere Message Broker / JavaScript / Humor / IT Quiz

Język PHP

Informacje podstawowe
O języku :
Instalacja :
Biblioteka funkcji
Dynamiczna grafika
Tablice
Bazy danych

Literatura


Jeden plik


Legenda

w przygotowaniu
* w trakcie tworzenia

O języku

Krotki opis języka PHP.

Biblioteka funkcji

*Funkcje daty i czasu
Funkcje dBase :
Funkcje DBM :
Funkcje filePro :
Funkcje IMAP :
Funkcje konfiguracyjne i informacyjne :
Funkcje Informix :
Funkcje Interbase :
Funkcje matematyczne :
Funkcje Microsoft SQL :
Funkcje mSQL :
Funkcje MySQL :
Funkcje Sybase :
Funkcje ODBC :
Funkcje Oracle :
Funkcje Oracle 8 :
Funkcje PostgreSQL :
*Funkcje sieciowe
*Funkcje uruchomieniowe
 Funkcje URL :
Gniazda :
Grafika (biblioteka GD) :
Kalendarz :
Kompresja :
Łańcuchy tekstowe :
Mail :
*Operacje na katalogach
*Operacje na plikach
PDF :
*Protokół FTP
*Protokół HTTP
Protokół SNMP :
*Semafory
*Sesje
Sortowanie :
Tablice :
XML :
Wyrażenia regularne :

Funkcje daty i czasu

checkdate : sprawdza poprawność daty
date : pobiera sformatowaną datę
getdate : pobiera informacje o dacie
gettimeofday : pobiera bieżącą godzinę
gmdate : pobiera sformatowaną datę (GMT)
gmmktime : pobiera stworzoną datę (GMT)
gmstrftime : formatuje datę (GMT)
localtime : pobiera lokalną datę
microtime : pobiera datę w mikrosekundach
mktime : pobiera stworzoną datę
strftime : formatuje lokalną datę
time : pobiera aktualny czas
strtotime : formatuje datę

date

date : Pobiera sformatowaną datę

Składnia :
string date (string format [, int timestamp])

gdzie:
format : postać zwracanej daty
timestamp : formatowana data. W przypadku braku tego argumentu pobierana jest aktualna data

Wartość zwracana :
łańcuch tekstowy zawierający datę

Przykład :

$actdate= date ("Y-m-d");// zwróci łańcuch w postaci :rok - miesiąc - dzień

Znaki występujące w formacie:

a : wartość am lub pm
A : wartość AM lub PM
d : dwucyfrowy dzień miesiąca (01 - 31)
D : Trzyliterowa nazwa dnia tygodnia
F : Długa nazwa miesiąca
g : godzina w formacie 12 godzinnym (1 - 12)
G : godzina w formacie 24 godzinnym (0 - 23)
h : godzina w formacie 12 godzinnym z początkowym zerem (01 - 12)
H : godzina w formacie 24 godzinnym z początkowym zerem (00 - 23)
i : minuta (00 - 59)
j : dzień miesiąca (1 - 31)
l : długa nazwa dnia tygodnia
m : miesiąc (01 - 12)

Funkcje sieciowe

checkdnsrr :
closelog :
debugger_off :
debugger_on :
define_syslog_variables :
fsockopen :
gethostbyaddr :
gethostbyname :
gethostbynamel :
getmxrr :
getprotobyname :
getprotobynumber :
getservbyname :
getservbyport :
ip2long :
long2ip :
openlog :
pfsockopen :
socket_get_status :
socket_set_blocking :
socket_set_timeout :
syslog :

Funkcje uruchomieniowe

escapeshellarg :
escapeshellcmd :
exec :
passthru :
system :

Operacje na katalogach

chdir :
dir :
closedir :
getcwd :
opendir :
readdir :
rewinddir :

Operacje na plikach

basename :
chgrp :
chmod :
chown :
clearstatcache :
copy :
delete :
dirname :
diskfreespace :
fclose :
feof :
fflush :
fgetc :
fgetcsv :
fgets :
fgetss :
file :
file_exists :
fileatime :
filectime :
filegroup :
fileinode :
 filemtime :
fileowner :
fileperms :
filesize :
filetype :
flock :
fopen :
fpassthru :
fputs :
fread :
fscanf :
fseek :
fstat :
ftell :
ftruncate :
fwrite :
set_file_buffer :
is_dir :
is_executable :
is_file :
is_link :
is_readable :
 is_writeable :
is_uploaded_file :
link :
linkinfo :
mkdir :
move_uploaded_file :
pclose :
popen :
readfile :
readlink :
rename :
rewind :
rmdir :
stat :
lstat :
realpath :
symlink :
tempnam :
tmpfile :
touch :
umask :
unlink :

Protokół FTP

ftp_connect :
ftp_login :
ftp_pwd :
ftp_cdup :
ftp_chdir :
ftp_mkdir :
ftp_rmdir :
ftp_nlist :
ftp_rawlist :
ftp_systype :
ftp_pasv :
ftp_get :
ftp_fget :
ftp_put :
ftp_fput :
ftp_size :
ftp_mdtm :
ftp_rename :
ftp_delete :
ftp_site :
ftp_quit :

Protokół HTTP

header :
headers_sent :
setcookie :

Semafory

sem_get :
sem_acquire :
sem_release :

Sesja

session_start :
session_destroy :
session_name :
session_module_name :
session_save_path :
session_id :
session_register :
session_unregister :
session_unset :
session_is_registered :
session_get_cookie_params :
session_set_cookie_params :
session_decode :
session_encode :
session_set_save_handler :
session_cache_limiter :

Dynamiczna grafika

Wstęp
Mały przykład
Funkcje GD

Wstęp

Dynamicznie tworzone grafiki są sposobem na poprawienie atrakcyjności witryn internetowych.Wyobraźmy sobie dwa serwisy giełdowe, jeden oparty o tabele, której wiersze zawierająwyniki giełdowe i drugi generujący wykresy wahań poszczególnych walorów.Z innej dziedziny, serwis pogodowy - jeden z informacjami tekstowymi i drugi generującemapy z naniesionymi na nie najświeższe informacje pogodowe. Ostatni przykład, najczęściejspotykany na stronach WWW, licznik odwiedzin. Ogólna zasada tworzenia dynamicznie grafikipolega na wysłaniu do przeglądarki nagłówka informującego o tym. jaki typ danychbędziemy przesyłać. W naszym przypadku będzie to nagłówek image/gif, następnietworzymy dynamicznie grafikę za pomocą odpowiednich funkcji. Po stworzeniu takiej grafikimusimy wysłać ją na standardowe wyjście, w naszym przypadku będzie to przeglądarka.

Mały przykład

Skrypt posiada dwa parametry imagefile oraz text. Pierwszy określa nazwę pliku będącego tłem dla naszej grafiki wyjściowej, drugi łańcuch tekstowy określający tekst jaki się ukaże w grafice.

Wywołanie skryptu

<img src="naszskrypt.php3?imagefile=plik_tla&text=wyświetlany tekst">

Kod źródłowy

<?
//tworzymy nagłówek informujący iż będziemy przesyłać do przeglądarki grafikę
header("Content-type: image/gif");
//tworzymy grafikę z piku podanego jako parametr
$img=imagecreatefromgif($imagefile);
/*Zmiennej color przypisujemy identyfikator zwrócony przez funkcję imagecolorallocate, która przyjmuje składowe RGB szukanego koloru i zwraca jego indeks, którym będziemy mogli się posługiwać w kolejnych operacjach graficznych */
$color=imagecolorallocate($image,0,0,0);
//w ten sposób przez zmienną color będziemy rozumieli kolor czarny (RGB=0,0,0)
/*w lewym górnym rogu grafiki, tj. o współrzędnych 0,0 umieszczamy nasz tekst podany jako parametr czcionką o numerze 2 i w kolorze, którego indeks znaleźliśmy w poprzedniej funkcji (czarny)*/
imagestring($image,2,0,0,$text,$color);
//tak przygotowaną grafikę wysyłamy do przeglądarki
imagegif($image);
//na zakończenie możemy jeszcze zwolnić pamięć zajmowaną przez naszą grafikę
imagedestroy($image);
?>


Tablice

Jednowymiarowe
Indeksowanie tablic
Wielowymiarowe


Tablice jednowymiarowe

Tablice jednowymiarowe ( indeksowane przez liczby ) nie są w zasadzie niczym nowym.Dla osób programujących nie będzie to żadne odkrycie.Mając pewną ilość elementów tego samego typu możemy je umieścić w tablicy mając w tensposób łatwy dostęp do wszystkich jej elementów. Indeksowanie odbywa się natej samej zasadzie jak to ma miejsce w języku C od indeksu zerowego. I takelement pierwszy w tablicy będzie miał indeks 0, drugi 1, trzeci 2 itd.

Deklaracja tablicy
$tab =array()
Możemy jednocześnie z deklaracją zdefiniować elementy tablicy
$names =array(0=>"Jan","Zygmunt", "Tomasz" )
$names =array(0=>6,34,1,67,9)


Odwoływanie się do elementów tablicy
echo $tab[3]; : wyświetla 4 element tablicy
$x=$tab[8]; : zapisuje do zmiennej x wartości znajdującej się na 9 pozycji w tablicy tab
echo $tab[$ind]; : wyświetla element tablicy tab znajdujący się na pozycji określonej przez zmienną ind

Wyświetlenie wszystkich elementów tablicy
for ($i=0;$i<count($tab);$i++) echo $tab[$i];

Indeksowanie tablic

Poza typowym indeksowaniem poprzez liczby znanym z języka C, w PHP tablice możemyindeksować za pomocą łańcuchów tekstowych. Deklaracja takiej tablicy ma identyczną postaćjak to ma miejsce przy tablicach indeksowanych przez liczby całkowite.

Definicja tablicy
$users =array("name"=>"Kowalski","firstname"=>"Zygmunt","age"=>"76" )

Odwoływanie się do elementów tablicy
echo $users["name"]; : wyświetla wartość tablicy users o indeksie name
$x=$tab[8]; : zapisuje do zmiennej x wartości znajdującej się na 9 pozycji w tablicy tab
echo $tab[$ind]; : wyświetla element tablicy tab znajdujący się na pozycji określonej przez zmienną ind
Wyświetlenie wszystkich elementów tablicy
W przypadku tablic indeksowanych przez łańcuchy ponieważ nie znamy wartości indeksówtak jak to ma miejsce w przypadku indeksów 0,1,2 itd. do wyświetlania wszystkichelementów tablicy musimy użyć lekko zmodyfikowanej pętli for.
for (reset($users);$key=key($users);next($users)) {
// pobiera wartość tablicy na bieżącej pozycji
$value=pos($users);
//wyświetla indeks i wartość tablicy o tym indeksie
echo "$key => $value<br>";
}


Tablice wielowymiarowe

Tablica wielowymiarowa jest niczym innym jak tablicą jednowymiarową, w której jednymz elementów tablicy jest inna tablica. Dla przykłady definicja tablicy szachownicy ma postać:
$tab =array()
Możemy jednocześnie z deklaracją zdefiniować elementy tablicy
$tab =array(0=>array (0=>0,1,2,3,4,5,6,7),
(1=>array (0=>0,1,2,3,4,5,6,7),
(2=>array (0=>0,1,2,3,4,5,6,7),
(3=>array (0=>0,1,2,3,4,5,6,7),
(4=>array (0=>0,1,2,3,4,5,6,7),
(5=>array (0=>0,1,2,3,4,5,6,7),
(6=>array (0=>0,1,2,3,4,5,6,7),
(7=>array (0=>0,1,2,3,4,5,6,7));

Odwoływanie się do elementów takiej tablicy
echo $tab[3][1]; : wyświetla wartość tablicy znajdującą się w 3 wierszu i 1 kolumnie
Wyświetlenie wszystkich elementów tablicy
//pętla zewnętrzna
for ($i=0;$i<8;$i++)
for ($j=0;$j<8;$j++) echo $tab[$i][j];
// po narysowaniu wiersza łamie linię
echo "<br>";


PHP a bazy danych

Wstęp do bazy danych
Wsatwianie wiersza do tabeli z formularza
Usunięcia wiersza z tabeli
Wyświetlanie wyników zapytania
Obsługa błędów :

Wstęp do bazy danych

W tej części postaram się omówić proste sposoby obsługi baz danych poprzez przeglądarki zapomocą języka PHP. Wszystkie ukazane tutaj przykłady stworzyłem w oparciu o systembazodanowy Postgres. Nie sądzę jednak, żeby zaimplementowanie ich do innych baz danychsprawiło komuś jakiekolwiek problemy. Za przykład posłuży nam baza o nazwie test, której elementem będzie tablica o poniższej definicji:

CERATE TABLE users (
id serial ,
name varchar(40) NOT NULL,
firstname varchar(40) NOT NULL,
address varchar(60) NOT NULL,
PRIMARY KEY (id))


Wsatwianie wiersza do tabeli z formularza

Wyobraźmy sobie formularz, w którym mamy dwa pola typu TEXT i jedno typu TEXTAREA.Pola te nazwiemy odpowiednio newname, newfirstname oraz new address. Właściwość actionnaszego formularza ustalimy na nasz skrypt PHP.

Kod źródłowy

<?
//łączymy się z bazą danych o nazwie test
$conn=pg_pconnect("dbname=test port=5432");
//definiujemy treść zapytania (do odpowiednich kolumn tabeli wstawiamy zmienne pobrane z formularza )
$query="insert into users('name','firstname','address')
values ('$newname','$newfirstname','$newaddress')";
//wykonujemy zapytanie do bazy
$res=pg_exec($conn,$query);
?>

Usunięcia wiersza z tabeli

Zakładamy, że jako parametr do skryptu podamy unikalny indeks wiersza. W naszym przypadkubędzie to wartość pola id.

Wywołanie skryptu

deluser.php3?delid=indeks_wiersza_do_usunięcia

Kod źródłowy

<?
//łączymy się z bazą danych o nazwie test
$conn=pg_pconnect("dbname=test port=5432");
//definiujemy treść zapytania (do zapytania wstawiamy zmienną podaną jako parametr skryptu)
$query="delete from users where id=$delid";
//wykonujemy zapytanie do bazy
$res=pg_exec($conn,$query);
?>

Wyświetlanie wyników zapytania

Do wyświetlenia wierszy tabeli użyjemy instrukcji SQL Select oraz mojej ulubionej rodziny funkcji PHP fetch_object

Kod źródłowy

<?
//łączymy się z bazą danych o nazwie test
$conn=pg_pconnect("dbname=test port=5432");
//definiujemy treść zapytania
$query="select * from users order by name, firstname";
//wykonujemy zapytanie do bazy
$res=pg_exec($conn,$query);
//pobiera wiersze z zapytania aż do momentu kiedy żadnego wiersza już nie będzie
//wiersz jest zwracany przez funkcje pg_fetch_object w postaci obiektu
$i=0;
while($row=pg_fetch_object($res,$i++))
{
//wyświetla informacje pobrane z bazy
echo "$row->name $row->firstname $row->address";
}
?>

Literatura


"PHP3" :

Leon Atkinson ISBN 83-7197-261-X Helion 2000


"PHP3 internetowe aplikacje bazodanowe" :

Craig Hilton, Jeff Willis ISBN 83-7197-285-7 Helion 2000


Powrót


  Autorem serwisu jest Marcin Kasiński
Wszelkie prawa zastrzeżone. All rights reserved.
powered by technology... linux eclipse java php