1.Introducere
PHP, acronim care provine din "PHP: Hypertext Preprocessor",
este un limbaj de scripting utilizat pe scara larga, realizat si distribuit
în sistem Open Source, care este special realizat pentru a dezvolta
aplicatii web, prin integrarea codului PHP în documente HTML. Sintaxa
sa provine din C, Java si Perl si este usor de învatat. Scopul principal
al limbajului este acela de a scrie rapid pagini web dinamice, dar cu
PHP se pot realiza mult mai multe.
Pentru ultimele distributii sau documentatii php puteti apela la site-ul
http://www.php.net . De asemenea exista si un manual php tradus partial
in romana la adresa http://www.php.net/docs.php de unde il puteti extrage
in mai multe formate (pdf,html,chm) sau vizualiza online.
2.Istorie
Prima versiune de PHP s-a numit PHP/FI. Ea a fost creata de Rasmus Lerdorf
in 1995. Initial versiunea continea o colectie simpla de scripturi Perl
scrisa pentru considerente proprii si care se numea 'Personal Home Page
Tools'. Cu timpul Rasmus a dezvoltat acest pachet adaugand cat mai multe
facilitati, cum ar fi comunicarea cu bazele de date, ceea ce ducea la
dezvoltarea unor aplicatii web dinamice, simple dar eficiente. Rasmus
a hotarat sa faca publice sursele PHP/FI pentru ca fiecare sa beneficieze
de avantajele lor si pentru a imbunatati codul. PHP/FI (Personal Home
Page / Forms Interpreter) avea functionalitatea codului PHP din ziua de
azi. Avea variabile ca in Perl, interpretare de formulare HTML, cod HTML
integrat in sintaxe. Insusi sintaxa era similara cu cea din Perl, insa
mult mai limitata, simpla si intr-un fel inconsistenta.
In 1997 apare PHP/FI 2.0, si deja incepe sa castige in popularitate, un
grup de cateva sute de utilizatori din intreaga lume deja se aratau interesati
de acest proiect iar aproximativ 50.000 domenii aveau instalat PHP (ceea
ce insemna 1% din totalul domeniilor de pe Internet la vremea aceea).
Cu toate ca un grup restrans de persoane participau la development, totusi
munca principala era facuta tot de un singur om (Rasmus Lerdorf).
PHP/FI 2.0 a fost lansat oficial in Noiembrie 1997, dupa o lunga perioada
de releas-uri beta. La scurt timp isi fac aparitia si primele versiuni
alpha de PHP 3.0.
PHP 3.0 este prima vesiune care era asemanatoare cu veriunile din zilele
noastre. A fost creat si dezvoltat de Andi Gutmans si Zeev Suraski in
1997 care au rescris complet codul dupa ce si-au dat seama ca PHP/FI 2.0
nu putea face fata unei aplicatii eCommerce la care ei lucrau la un proiect
pentru universitate. Unindu-si eforturile cei doi au hotarat sa participe
la developmentul PHP si sa creeze PHP 3.0
Una dintre cele mai mari proprietati ale PHP 3.0 era extensibilitatea.
Acest lucru a atras foarte multi developeri care au contribuit cu noi
module (comunicarea cu majoritatea tipurilor de baze de date, protocoale,
API-uri). Un alt element cheie in PHP 3.0 a fost suportul pentru sintaxa
orientata pe obiect care era in acest fel mult mai consistenta si flexibila.
Noul limbaj a fost lansat sub un nume nou, care inlocuia ideea de aplicatie
cu uz personal din PHP/FI 2.0 si aducea una mai mare si disponibila tuturor,
la o scara mai mare: PHP: Hypertext Preprocessor.
La sfarsitul anului 1998, PHP se dezvoltase foarte mult, deja existau
rapoarte care estimau zeci de mii de utilizatori si sute de mii de site-uri
web care rulau PHP. In acest moment PHP constituia 10% din potentialul
web al Internetului la vremea aceea.
PHP 3.0 a fost lansat pe piata oficial in Iunie 1998 dupa ce petrecuse
9 luni de testing public.In iarna lui 1998 la foarte scurt timp dupa PHP
3.0 a fost lansa, Andi Gutmans si Zeev Suraski au inceput sa rescrie codul
PHP. Scopurile principale acum erau de a imbunatati performanta aplicatiilor
mai complexe si de a extinde modularitatea codului PHP.
Noul engine a fost numit 'Zend Engine' (compus din numele Zeev si Andi)
iar acesta putea face fata aplicatiilor complexe cu succes. Acesta a fost
prezentat pentru prima oara la mijlocul anului 1999. PHP 4.0 se baza pe
acest engine care impreuna cu mai multe addonuri si imbunatatiri a fost
lansat in Mai 2000 la aproape 2 ani de la predecesorul sau PHP 3.0.
Noua versiune includea suport pentru majoritatea platformelor si serverelor
web, sesiuni http, output buffering, moduri mai securizate de a manipula
input-urile userilor, etc. PHP 4 este in prezent cea mai stabila versiune
de PHP. Deja s-a inceput developmentul la PHP 5.0 din care au fost facute
publice cateva versiuni alpha.
In prezent PHP este folosit de sute de mii de programatori web si cateva
milioane de site-uri care il au instalat (estimari de 20% din domeniile
de pe Internet existente in prezent). PHP 5.0 va include noua versiune
a noului engine Zend Engine 2.0.
3.Instalare
Avand in vedere extensibilitatea PHP-ului, de care am vorbit mai sus,
acesta poate fi instalat pe o mare varietate de platforme fie ca sunt
de tip Unix, Microsoft, Sun, etc.
Vom discuta pe scurt despre instalarea pe platformele de tip Linux si
Microsoft caci ele sunt cele mai utilizate de catre enduseri.
a). Instalarea pe Windows (metoda avansata, pas cu pas):
In primul rand aveti nevoie de un server web. Cel mai recomandat pentru
toate platformele este Apache http://httpd.apache.org , dar in functie
de situatie puteti alege IIS, PWS, nuSphere, OmniHTTPd, etc.
Vom folosi Apache pe Windows atunci vom extrage ultima versiune 'apache_x.x.xx-win32-x86-no_src.msi'
de la sectiunea Downloads.
Rulati aplicatia dati 'Next' pana screenul cu Server Information. Presupunand
ca rulati apache pe calculatorul propriu si pentru uz propriu veti completa
datele astfel:
Network domain: localhost
Server name: localhost
Administrators email: emailul@tau.ro
Install Apache HTTP Server programs and shortcut to: recomandat sa selectati
'Run as a service for all users' (presupunand ca nimeni nu mai are acces
fizic la calculatorul dumneavoastra).
Dupa aceasta veti fi introdus in ecranul 'Setup Type' si aveti doua optiuni
'Complete' sau 'Custom'. Va sugerez daca sunteti un utilizator incepator
sa selectati Complete pentru a nu exista probleme. Urmeaza ecranul 'Destination
Folder' care este bine sa fie lasat cel default adica C:\Program Files\Apache
Group\ . Dupa aceasta apasati inca o data Next si apoi Install. Instalarea
ar trebui sa ruleze fara nici o problema.
Din meniul Start uitati-va in Programs à Apache HTTP Server . Observati
linkurile catre documentatii si catre ajutor rapid si 3 foldere cu linkuri
catre Configurarea si testarea configurarii, Rulare/Oprire/Restart server,
Log-urile serverului (acces.log si error.log). !Atentie! acestea din urma
sunt foarte importante si ajuta foarte mult la rezolvarea unor probleme
de configurare deoarece ele dezvaluie problema si cauza ei.
Lasam de-o parte serverul Apache si ne vom orienta dupa ultima dar si
cea mai stabila versiune de PHP pentru Windows de pe http://www.php.net/downloads.php
si vom extrage 'php-x.x.x-package.exe'
Rulam executabilul, ne vom lovi automat de screenul 'Instalation type'
unde avem doua optiuni 'Standard' si 'Advanced'. Este recomandat selectarea
instalarii Standard dupa care vom fi intrebati despre folderul in care
vrem sa instalam PHP. Acest lucru este oarecum indiferent insa pentru
comoditate vom instala PHP in acelasi folder group cu Apache adica in
C:\Program Files\Apache Group\PHP . Click next, si apare screen-ul cu
'Server Type'. Avand in vedere ca mai inainte am instalat Apache este
logic ca sa selectam optiunea 'Apache'. Apare ultimul screen cu mesajul
'You are ready to install PHP x.x.xx' dupa care click pe Install. Instalarea
trebuie sa decurga fara probleme, la sfarsit veti avea parte de un mesaj
insa care va va instiinta ca inca nu exista un soft care sa configureze
automat Apache si PHP ,instalate separat, impreuna si de aceea va trebui
sa umblati singuri in httpd.conf (fisierul de configurare al serverului
Apache).
Iata cum se face configurarea manuala Apache + PHP pe platformele de tip
Windows:
Configurare PHP - vom edita fisierul 'php.ini'
-in primul rand ne asiguram ca DLL-urile (php4apache.dll, php4ts.dll -
care este folosit tot timpul) necesare rularii PHP sunt regasite de catre
Windows. Pentru a face acest lucru posibil ne asiguram ca ele exista in
Windows/System (WINNT/System) sau Windows/System32 sau ca ele exista in
acelasi director cu php.exe (in cazul de fata in C:\Program Files\Apache
Group\PHP)
-php4ts.dll este cautat in urmatoarea ordine:
1. in acelasi director cu apache.exe
2. in acelasi director cu php4apache.dll
3. in directoarele din Windows de mai sus
Concluzie este bine sa ai ambele DLL-uri in acelasi director.
-in directorul Windows vei gasi un fisier numit php.ini care trebuie editat.
Deschide acest fisier cu Notepad.
In continuare voi descrie pe rand modificarile ce trebuie facute:
1.Cauta 'extension_dir' si schimba setarile directorului catre calea unde
ai instala PHP, in cazul de fata in "C:\Program Files\Apache Group\PHP".
2.Cauta 'doc_root' si schimba setarile cu calea catre directorul unde
este instalat Apache. In cazul de fata "C:\Program Files\Apache Group\Apache".
3.Acest pas nu este obligatoriu. Cautati 'extension=php_' . Veti observa
o lista cu extensii php. Puteti decomenta liniile pentru care doriti sa
activati extensia respectiva. Va recomand sa cititi documentatia de instalare
cu care vine PHP cu privire la extensiile pentru Windows.
Recomand ca mai intai sa rulati Apache si PHP cu succes cu minim de efort
si apoi sa luati in considerare extensiile sau alte module.
Salvati fisierul php.ini.
Configurare Apache - vom edita fisierul httpd.conf
Deschide httpd.conf cu Notepad si adauga urmatoarele linii:
#Inceput configurare Apache + PHP
LoadModule php4_module C:/Program Files/Apache Group/PHP/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php
#Sfarsit configurare Apache + PHP
Nota: noile versiuni de Apache nu mai au nevoie de directiva 'AddModule'.
Observatie: cei care au fost atenti au observat ca am folosit doua tipuri
de 'slash-uri' cand am editat httpd.conf . Retineti ca acesta poate accepta
ambele tipuri de slash de exemplu: C:/Program Files\Apache Group\sapi/php4apache.dll
Pentru developeri: este important de stiut ca daca adaugati urmatoarea
linie in httpd.conf veti obtine sintax highlight la fisierele care se
termina cu extensia .phps :
AddType application/x-httpd-php-source .phps
Acest procedeu este foarte bun pentru debugging online. De asemenea acest
procedeu se poate efectua si printr-un fisier .htaccess (vezi: "Ghid
utilizare .htaccess" - Zamolxe -=thE_Deton8er=- (Team 1337))
Salvati noul fisier httpd.conf.
Felicitari! Acum sunteti gata sa rulati Apache si PHP impreuna!
Probleme frecvente de instalare
-pot aparea pe platformele cu tehnologie NT unde un anume user (cu anume
privilegii) nu poate avea acces la directorul Windows.
-apar des atunci cand PHP ruleaza cu IIS sau PWS (Personal Web Server)
-paginile cu extensia .php sunt goale. Verificati din nou configuratia
serverului.
-paginile cu extensia .php dau mesaje de eroare 500. Browse catre directorul
care contine php.exe, rulati din command prompt "php.exe -i"
(fara ghilimele). Daca exista probleme inseamna ca va vor aparea erori
explicite pe ecran si veti sti ce sa faceti. Daca insa pe ecran apar multe
taguri html (echivalentul outputului functiei phpinfo() in html) atunci
totul este in regula si trebuie verificata inca o data configuratia serverului.
b). Instalarea pe Windows (metoda usoara folosind installation kits)
Sunt sigur multi dintre voi nu au rabdarea nici timpul sa instaleze Apache
si PHP (eventual si MySQL) pe Windows prin metoda grea, de aceea exista
pentru voi solutia salvatoare.
Nota: totusi mai tarziu daca veti rula un server online va trebui sa optati
pentru varianta manuala fie ca sunteti pe windows sau pe unix. Este riscant
sa aveti incredere in installere precompilate atunci cand le rulati online,
de aceea trebuie sa tineti bine minte ca cele descrise mai sus si in continuare
sunt pentru uz personal sau 'offline'.
Exista mai multe pachete disponibile pe internet care ofera Apache cu
PHP deja instalat si configurat. Dumneavoastra nu trebuie decat sa rulati
un fisier gen 'setup.exe' si sa dati calea unde vreti sa fie instalat
totul. Voi descrie numai cateva dintre aceste pachete care le-am testat
si eu si pe care vi le recomand, restul le voi insira doar.
1. firepages phpdev - pachetul contine PHP4.x.x, MySQLx, Apache 1.x.xx,
and phpMyAdmin x.x.x + mod_perl(1.xx) 5.x.x bundle (+ Cerebus FTP). Este
preconfigurat pentru orice Windows 9x/2K/XP, nu necesita nici un efort
din partea utilizatorului, include gata instalate InvisionBoard Forum,
PhpWebSite, PhpMyAdmin, plus diferite module pentru Apache. Este unul
dintre cele mai bune kit-uri de instalare, stabil, din pacate in prezent
contine versiuni mai vechi de PHP sau MySQL, iar pentru unii acest lucru
poate fi o problema.
2. PHPtriad - ruleaza si pe Windows 9x/NT si pe Linux. Instaleaza PHP,
Apache, Perl, Mysql si PhpMyAdmin.
3. nuSphere Technology Platform - l-am testat mai demult si mi-a facut
o impresie foarte buna. Ruleaza pe Unix si Windows 95/98/NT/ME/2000/XP,
instaleaza Apache, PHP, Perl, MySQL, server email, PhpMyAdmin, manager
pentru PostgreSQL, porturile aplicatiilor se pot schimba in functie de
preferinte, are instalare detaliata. Singurul inconvenient este ca are
peste 60 mega.
4. Linux Easy Installer - Recomandat pentru enduseri care sunt incepatori
in Linux. Pachetul este un script scris in Perl care iti da voie sa instalezi
rapid Apache 2.x.xx, PHP 4.x.x, MySQL 3.xx.xx, phpMyAdmin 2.x.x de asemenea
el contine si sursele kit-ului care pot fi modificare in functie de preferinte
Alte installere pentru windows,linux,mac sunt: Cowpack (apache2+php4),
Appserv (PHP+GD2+gif read suport+zend optimizer+zend encoder+ming module+xml+zip
module+mysql+phpmyadmin), PHPstar (installer pentru 4DwebStar, include
GD libs, PNG, JPEG, T1LIB, IMAP, gettext, cURL, Mcrypt, Zlib, FreeType2,
XML, PostgreSQL, MySQL, EXIF, OpenSSL, FTP, Ldap, sendmail, CGI, fastCGI
- ruleaza pe MacOS), Apache2Triad (Apache, PHP, MySQL, Perl, OpenSSL,
Tcl, Python, + manuale + PHPnuke, PhpMyAdmin, Awstats), FoxServ (Apache+MySQL+PHP,
MyPHPadmin, zend optimizer, Python, MySQL FrontEnd), Apache Friends XAMPP,
e-novative PHP, IBserver, EasyServ, Phperl, BigApache, Apache ToolBox,
Fox Installer, PHP EasyWindows Installer, Fast-Pitch, SpaceServer, WinServ,
microHOST, eZ Publish Installer, Maya PHP Update, Abria MySQL Lite, Instant
Web Server, Apache Compile Kit, Install Webserver, Sokkit, LSN-Webmail,
MAPis.
Dupa cum puteti observa mai sus aveti o gramada de optiuni la indemana,
alegeti-o pe ce-a mai lejera si sigura.
Probabil va intrebati cum este instalarea pe linux. Ea este la fel ca
in windows difera insa pachetele apache si php. Pe scurt:
1. Descarcati cea mai stabila versiune de Apache: lynx http://www.apache.org/dist/httpd/httpd-2_0_NN.tar.gz
2. Dezarhivare: gzip -d httpd-2_0_NN.tar.gz sau tar xvf httpd-2_0_NN.tar
3. Configurare: ./configure --prefix=PREFIX
4. Compilare: make
5. Instalare: make install
6. Customizare: vi PREFIX/conf/httpd.conf
7. Testare server: PREFIX/bin/apachectl start
Pentru mai multe detalii consultati manualul Apache: http://httpd.apache.org/docs-project/
si manualul de instalare PHP: http://www.php.net/manual/ro/installation.php
respectiv http://www.php.net/manual/ro/configuration.php . Nu uitati:
este la fel ca in Windows, etapele insa difera, acestea raportandu-se
la sistemul de operare.
4.Editoare
Am intalnit multe cazuri in care unii utilizatori pe internet sustineau
ca fac paginile HTML sau PHP in Notepad. Este foarte adevarat, acest lucru
este posibil, dar, inseamna sa pierzi foarte mult timp in fata calculatorului
si poti acumula mult stres de la eventuale greseli in cod sau de la metodele
grele de previzualizare. De aceea este recomandat sa folositi editoare
specializate care va ajuta cu doua mari proprietati: syntax highlight
si code completion.
Ce inseamna syntax highlight?
Atunci cand scrieti sau codati o pagina in HTML respectiv in PHP utilizati
diferite taguri, operatori de inceput-sfarsit de sintaxa, variabile, etc.
Editoarele de care vorbim vor semnala prezenta acestora prin colorarea
lor in culori specifice pentru o mai buna vizualizare si organizare.
Ce inseamna code completion?
Completare automata de cod. Este o metoda excelenta mai ales pentru incepatori,
si consta in faptul ca atunci cand ati inceput sa scrieti numele unei
sintaxe, editorul isi da seama despre ce este vorba si va completeaza
automat, sau va afiseaza un mesaj cu optiunile de completare (benefic
in caz ca nu mai tineti minte sintaxa respectiva pe dinafara).
Probabil in acest moment va intrebati care sunt cele mai utilizate si
folositoare editoare de HTML si PHP. Am creat o lista special pentru a
veni in ajutorul vostru:
1. Dreamweaver - Un bun editor pentru HTML si PHP cu interfata grafica
frumoasa si usor de utilizar. Totusi pentru PHP nu are suport full cum
au alte editoare specializate, dar puteti gasi usor un addon in acest
sens. Are unele probleme cu compatibilitatea HTML insa este preferatul
meu si vi-l recomand cu cea mai mare incredere.
2. Quanta Plus - Unul dintre cele mai utilizate editoare web pe platformele
Linux. Este excelent are syntax hightlight, code completion, plus multe
alte 'features' care va fac viata usoara. Este gratuit!
3. Zend Development Enviroment - Mai bine de atat nu cred se poate. Un
editor PHP complet, excelent pentru incepatori, cu referinte directe catre
manual, debugger incorporat, generator php->html. Singura problema
este ca are un pret foarte mare acest lucru facandu-l complet inaccesibil
developilor mici.
Alte editoare de PHP sunt: PHPcoder, TurboPHP, PHPEd, PHPedit, tsWebEditor,
Maguma Studio PHP, HTML-Kit, Dev-PHP IDE, PHP Debugger DBG, PHPmole, intelliCanvas
Studio, K PHP Develop, xored::WebStudio, PHP Expert Editor, DzSoft PHP
Editor, PHP Processor, Marc's PHP Debugger.
5.Utilizare
Okay! Presupunem ca ati instalat totul, sau ca stiati si aveati deja instalat
Apache si PHP.
Dupa cum am precizat la inceput, PHP este un limbaj dinamic.
Ce inseamna 'limbaj dinamic'?
PHP comunica cu utilizatorul, el efectueaza dinamic operatii iar continutul
paginii se schimba in real time in functie de preferinte. De exemplu in
HTML nu putem modifica continutul unei pagini decat daca o inlocuim cu
una noua (cu continut nou). In PHP lucrurile stau mai simplu, printr-un
script putem introduce stiri pe pagina noastra sau putem modifica titlul
paginii, sau putem construi formulare dinamice pe care utlizatorii sa
le foloseasca. Totusi acest lucru nu inseamna ca ne debarasam de limbajul
HTML, nicidecum. Cei care au cunostinte HTML vor parcurge mai usor acest
tutorial.
I. Sintaxa
Cu totii cunoastem sintaxa de cod a limbajului HTML. Atunci cand deschidem
un tag, el trebuie automat inchis pentru a nu genera erori (ex. <table>
si </table>). La fel si in PHP, cu ajutorul tagurilor <?php si
respectiv ?> vom putea delimita codul PHP de codul HTML. Este foarte
important de stiut pentru lejeritate se pot folosi mai simplu tagurile
<? si respectiv ?>, cu toate acestea metodele prin care putem delimita
tagurile PHP sunt mai multe, spre exemplu:
<script language="php"> echo "Acesta este un text";
</script>
sau
<% echo "Acesta este un text"; %> atunci cand este activata
optiunea asp_tags din php.ini.
Este recomandat sa folositi primele taguri descrise in aceasta sectiune,
adica:
<?php
cod php aici
?>
Ca in orice limbaj de programare/scripting in PHP exista posibilitatea
adaugarii de comentarii sau note in codul sursa. Acestea nu sunt luate
in considerare de catre compilator, deci sunt ignorate. Iata cateva exemple
de comentarii acceptate in PHP:
/* Comentariu in stil C */
// Comentariu in stil C++
# Comentariu in stil Bourne shell
Nota: Pentru incepatori nu este recomandata folosirea comentariilor de
tip shell.
O declaratie in PHP se incheie tot timpul cu punct si virgula (;). Este
ca si cum am pleca de acasa si am inchis si usa cu cheia, daca insa uitam
sa punem ; inseamna ca am lasat usa deschisa si vor intra hotii. Neterminarea
unei declaratii cu punct si virgula va duce la eroare de tip 'parse error'.
Exemplu de cod care foloseste un comentariu si o declaratie:
<?php
//mai jos va voi saluta
echo("Salut!");
?>
Prima linie este comentariu si este ignorata de PHP a doua linie reprezinta
o declaratie care se incheie bineinteles cu ;.
II. Inceput
Cum am precizat si in sectiunea de instalare, vom testa configuratia PHP
cu ajutorul functiei phpinfo():
<?php
phpinfo();
?>
Salveaza acest cod ca info.php si ruleaza-l in browser. Vei vedea o groaza
de informatii despre configuratia PHP, tipul serverului, etc. Probabil
va veti intreba: Dar cum se poate ca dintr-o linie de cod sa afisez atata
text? Ei bine raspunsul este simplu, functia phpinfo() are variabilele
deja declarate in motorul PHP si de aceea nu este necesar decat sa o declaram
o singura data.
Haideti sa incepem sa folosim PHP in stil clasic, prin a saluta utilizatorii.
Iata codul:
<?php
echo("Salutare la toti cititorii");
?>
Salvati codul de mai sus ca salut.php si rulati-l in browser (ex. http://localhost/salut.php).
Pe ecran apare afisat textul 'Salutare la toti cititorii'. Acest lucru
a fost posibil datorita functiei echo() cu ajutorul careia de acum inainte
vom afisa text pe ecran.
Nota: pe langa functia echo() mai exista si print() care poate fi folosita
in acelasi mod.
Observatie: echo() nu este totusi o functie, ea reprezinta un constructor
de limbaj dar pentru usurinta exprimarii o vom numi functie. O dovada
buna in sensul ca nu este functie este aceea ca nu suntem nevoiti sa folosim
paranteze. Sintaxa echo "Salutare la toti cititorii"; este de
asemenea acceptata.
Haideti sa ne jucam un pic cu aceasta functie, pentru ca ea va fi folosita
foarte frecvent de-a lungul acestui tutorial si sunt sigur ca o veti folosi
des in scripturile dumneavoastra:
<?php
echo("Salut");
echo("Numele meu este");
echo("Popescu Ion");
?>
Salveaza codul de mai sus ca numelemeu.php si ruleaza-l in browser. Veti
observa ca in ciuda faptului ca am scris textul pe mai multe linii, el
va fi afisat in browser pe o singura linie. Fapt care evident nu ne convine,
asa ca vom apela la tagul <br> din HTML:
<?php
echo("Salut<br>");
echo("Numele meu este<br>");
echo("Popescu Ion");
?>
Acum textul va aparea pe 3 linii separate.
Probabil veti zice: 'Ok este foarte usor, gata am terminat.' Este patial
gresit, pentru coderii avansati care doresc sa aiba totul clar si afisat
corect in confirmitate cu toate standardele vor opta pentru urmatorul
cod:
<?php
echo("Salut<br>\n");
echo("Numele meu este<br>\n");
echo("Popescu Ion");
?>
De ce am pus caracterul \n ? Bine ai venit in lumea caracterelor de tip
escape. Vei observa diferenta intre primul si al doilea cod atunci cand
te vei uita in codul sursa HTML generat. \n inseamna newline, adica indica
faptul ca urmeaza linie noua. Totusi acesta nu este singurul caracter
de tip escape, iata lista competa:
Tabel caractere escape
Caracter escape Descriere
\a alarma
\cx control-x (x poate fi orice caracter)
\e escape
\f formfeed
\n newline (linie noua)
\r carriage return
\t tab
\xhh caracter cu codul hexa hh
\ddd caracter cu codul octal ddd
II. Variabile si tipuri de date
In PHP toate variabilele incep cu semnul de dolar ($). Dupa semnul $ se
poate introduce un sir de caractere care poate aparea in diferite combinatii:
$variabila
$variabila123
$prima_variabila
$_VARIABILA
Acestor variabile le pot asignate orice valori, fie ca este vorba de un
sir de caractere, numere, propozitii, fraze, etc.
In functie de rolul pe care il au intr-un script variabilele pot fi de
doua feluri: variabile globale si variabile locale (ex. cele declarate
in campul unei functii).
Lucrul cu variabile si tipuri de date
In codul de mai jos veti regasi perfect conceptul de variabila:
<?php
$salut="Salutare natiune";
echo($salut);
?>
Continutul variabilei $salut este pasat functie echo care va afisa continutul
acesteia, deci va rezulta textul 'Salutare natiune'.
Urmatorul cod demonstreaza conceptul de variabila incapsulata. In cazul
de mai jos este vorba despre o variabila incapsulata intr-un text:
<?php
$nume = "Popescu Ion";
echo("Numele meu este $nume"); //folosim functia echo() pentru
a afisa textul
?>
Rulati in browser scriptul de mai sus si veti vedea ca el afiseaza textul
'Numele meu este Popescu Ion'.
Probabil v-ati dat seama pana acum de ce se lucreaza cu variabile. Pentru
ca ne fac viata de programator mai usoara, unei variabile ii putem asigna
orice valoare, orice text oricat ar fi el de mare si pe care il putem
manipula doar prin apelarea unei simple variabile asignate.
<?php
$numarul1 = 25;
$numarul2 = 20;
$numarul1 + $numarul2 = $rezultat;
echo($rezultat);
?>
In codul de mai sus am declarat doua variabile $numarul1 si $numarul2
carora le-am dat valorile 25 respectiv 20. Mai jos am efectuat operatia
simpla de adunare, al carei rezultat este continut de variabila $rezultat.
Pentru a afisa aceasta valoare ne folosim de functia echo(). Rezultatul
este clar, pe ecran va fi afisat numarul 45 (20+25=45).
Pe langa operatia de adunare (+) se mai pot opera urmatoarele operatii
matematice: (-) scadere, (*) inmultire, (/) impartire, (%) modul.
Tipurile de date in PHP sunt urmatoarele:
-array-uri
-numere de tip float sau double
-integer
-object
-string
Aceste notiuni probabil ca nu va sunt foarte familiare, dar acest lucru
nu constituie o problema. In acest capitol vom discuta despre tipurile
string si integer. Tipurile object si array vor fi descrise in capitolele
urmatoare.
Un string este format dintr-o plaja de caractere. Acesta poate sa fie
un cuvant, o linie, sau poate un intreg articol. Un integer este un numar
intreg care ia valori intre -32768 si 32767.
Pentru a determina ce tip de data este o anumita variabila, putem folosi
functia gettype(). Iata un exemplu:
<?
$variabila_mea="Salut, sunt o variabila";
$tip=gettype($variabila_mea);
echo("Aceasta este o variabila de tip $tip");
?>
Mai sus am creat o variabila numita $variabila_mea careia i-am dat valoarea
"Salut, sunt o variabila". Apoi prin functia gettype() am chemat
aceasta variabila pentru a afla ce fel de tip este ea. Mai jos am utilizat
echo() pentru a afisa tipul variabilei. Pe ecran se va afisa, 'Aceasta
variabila este de tip string'.
Faceti un test si pentru $variabila_mea=6
Variabile dinamice
De multe ori este util sa folositi variabile dinamice. O variabila normala
se declara:
$variabila = "salutare" ;
Acum sa zicem ca vrei o variabila care sa aiba numele valorii lui $variabila,
deci scriem:
$$variabila = "lume";
Cu alte cuvinte, mai sus am creat o variabila cu numele $salutare si i-am
dat valoarea 'lume'. Ne putem juca cu variabile dinamice la infinit, dar
atunci cand s-a ajuns la un nivel mare deja se creaza confuzii iar daca
cineva ar dori sa citeasca, pentru a imbunatati, codul scris de tine,
atunci nu ar mai intelege nimic.
Exista o sintaxa speciala care se foloseste pentru variabilele complexe
si anume incadrarea intre acolade {}:
echo "Salutare ${$variabila}"; // rezulta: Salutare lume
Atunci cand folosim array-uri o sintaxa ca $$variabila[1] este incorecta
pentru ca PHP nu ar stii carui nivel se aplice indexul, de aceea se foloseste
expresia: ${$variabila[1]} sau ${$variabila}[1].
III. HTML si PHP
<html>
<head>
<title><?php echo $titlu; ?></title>
</head>...
Codul de mai sus ilustreaza foarte bine colaborarea dintre PHP si HTML.
Codul PHP poate fi asimilat cu usurinta de tagurile HTML atat timp cat
el se afla intre delimitarile <?php respectiv ?> .
De asemenea poti introduce mai multe declaratii intre tagurile html, in
diferite moduri:
<html>
.........
<body>
<?php
echo ("Salut");
echo ("Ce mai faci?");
?>
</body>
.........
</html>
sau
<?php for($i=0, $i<50, $i++) { ?>
<br />
<?php } ?>
Fisierele de tip PHP pot include cod html fie ca face parte din ele fie
ca este scris separat. Nu sunteti lamuriti? Priviti urmatorul cod:
<?php
$titlu = "Pagina mea de web";
include("index.inc");
?>
Iar codul lui index.inc este urmatorul:
<html><head><title><?php echo $titlu; ?></titlu></head></html>
Exemplele de mai sus sunt concludente, insa trebuie specificat ca folosirea
fisierelor de tip .inc nu este recunoscuta de Apache si nu este parsata
ca php, asa ca informatii senzitive se pot vedea prin intermediul browserului,
de aceea trebuie sa apelam la setarile httpd.conf si sa adaugam urmatoarele
linii:
<Files ~ "\.inc$">
Order allow,deny
Deny from all
</Files>
In acest fel am blocat accesul din exteriorul serverului la fisierele
cu extensia .inc. Aceasta este o practica foarte buna (care poate fi executata
si prin intermediul unui .htaccess in caz ca nu avem acces la httpd.conf,
cum se intampla de obicei pe serverele virtuale).
Totusi nu este o practica buna si nu recomand folosirea fisierelor cu
extensii .inc ci mai degraba cu extensia .php . Chiar si asa problemele
nu se termina deoarece acestea trebuie protejate impotriva accesului direct.
Iata ce metode am descoperit:
- plasarea tuturor fisierelor cu informatie sensibila intr-un director
sau mai multe directoare care urmeaza sa fie protejate prin .htaccess
. Aici ne referim la fisierele care nu sunt accesate direct de user in
pagina, ci la cele care se introduc de obicei cu functiile include(),
include_once(), require(), require_once().
- plasarea tuturor fisierelor cu informatii sensibile intr-un director
sau directoare diferite de cel din radacina web (httpdocs,www,etc), in
acest fel ele nu pot fi accesate prin browser in nici un fel. Aceasta
metoda nu este aplicabila pentru servere virtuale sau intr-un enviroment
tip server de hosting din cauza restrictiilor sau din cauza ca PHP poate
fi setat in safe_mode.
Nota: Aceasta este prima parte din prima editie a acestui tutorial. El
este destinat mai mult incepatorilor sau neinitiatilor in PHP dar si celor
ce au deja o experienta formata in programare si vor sa invete PHP.
Cei ce se considera guru pot trece cu usurinta peste acest tutorial. Orice
greseli, nereguli sau imbunatatiri va rog sa le semnalati la adresa de
e-mail de mai jos.
Instalare si initiere in PHP
Autor: Zamolxe -=thE_Deton8er=- (Team 1337)
www: http://www.1337.ro
contact: zamolxe@distrowatch.com
Referinte:
The PHP begginers tutorial - Leendert Brouwer
PHP Pocket Reference editia 2 - O'Reilly
Manual PHP (ro)
HTML And XHTML The Definitive Guide editia 5 - O'Reilly
|