Php: Hypertext Preprocessor


PHP este un limbaj de programare. Numele PHP provine din limba engleza si este un acronim recursiv : Php: Hypertext Preprocessor. Folosit initial pentru a produce pagini web dinamice, este folosit pe scara larga in dezvoltarea paginilor si aplicatiilor web. Se foloseste in principal inglobat in codul HTML, dar incepând de la versiunea 4.3.0 se poate folosi si in mod „linie de comanda” (CLI), permitând crearea de aplicatii independente. Este unul din cele mai importante limbaje de programare web open-source si server-side, existând versiuni disponibile pentru majoritatea web serverelor si pentru toate sistemele de operare. Conform statisticilor este instalat pe 20 de milioane de situri web si pe 1 milion de servere web. Este disponibil sub Licenṭa PHP si Free Software Foundation il considerã a fi un software liber. Initial, limbajul a fost dezvoltat de inventatorul sau, Rasmus Lerdorf. Odata cu cresterea numarului de utilizatori, dezvoltarea a fost preluata de o noua entitate, numita The PHP Group (Grupul PHP).

Istoric


PHP a insemnat initial Personal Home Page. PHP a fost inceput in 1994 ca o extensie a limbajului server-side Perl, si apoi ca o serie de CGI-uri compilate de catre Rasmus Lerdorf, pentru a genera un curriculum vitae si pentru a urmari numarul de vizitatori ai unui site. Apoi a evoluat in PHP/FI 2.0, dar proiectul open-source a inceput sa ia amploare dupa ce Zeev Suraski si Andi Gutmans, de la Technion au lansat o noua versiune a interpretorului PHP in vara anului 1998, aceasta versiune primind numele de PHP 3.0. Tot ei au schimbat si numele in acronimul recursiv de acum, pâna atunci PHP fiind cunoscut ca Personal Home Page Tools. Apoi Suraski si Gutmans au rescris baza limbajului, producând astfel si Zend Engine in 1999. in mai 2000 a fost lansat PHP 4.0, având la baza Zend Engine 1.0.

PHP 5


Pe 13 iulie 2004 a fost lansat PHP 5, cu Zend Engine II, ce a adus si o orientare obiect mai pronuntata si suportând mai multe caracteristici ale acestui tip de programare. PHP 5 aduce mai multe noutati fata de versiunea 4: Suport imbunatatit pentru OOP Introduce extensia PDO – PHP Data Objects, care defineste o modalitate facila si consistenta de accesare a diferitelor baze de date Imbunatatiri de performanta Suport imbunatatit pentru MySQL si MSSQL Suport nativ pentru SQLite Suport SOAP integrat Iteratori pentru date Controlul erorilor prin tratarea de exceptii La sfârsitul lui 2007 doar versiunea 5.x mai era intretinuta, deoarece in data de 13 iulie 2007 (exact la 3 ani dupa lansarea PHP5), PHP Group a anuntat ca PHP4 va fi scos din uz pe 31 decembrie 2007, desi prognozeaza ca anumite upgrade-uri de securitate se vor oferi pâna pe 8 august 2008.[4]. Dezvoltarea la PHP 6 incepuse deja in decembrie 2007 si urmeaza sa fie oferit odata cu scoaterea din uz a PHP4.

PHP 6


PHP 6 are urmatoarea agenda de imbunatatiri si modificari: imbunatatirea suportului pentru Unicode retragerea definitiva a unor functii ca register_globals si magic_quotes, si a variabilelor tip $HTTP_*_VARS var va fi un alias pentru public, si folosirea lui va ridica o atentionare E_STRICT. suport pentru int pe 64 biti. taguri tip ASP sunt retrase definitiv. XMLReader, XMLWriter, Fileinfo vor face parte din distributia principala urmatoarele pachete au fost scoase din distributia principala: Freetype1, GD1, mime_magic functia ereg() nu mai este disponibila instantierea obiectelor prin referina (& new Obiect()) genereaza o eroare E_STRICT. erorile tip E_STRICT sunt incluse in E_ALL. adaugarea instructinuii goto permite salturi la un alt bloc de comenzi. namespace, import, si goto devin cuvinte rezervate. accesarea caracterelor intr-un sir (string) se face prin operatorul []. {} se scoate din uz ( ex: $str[42] functioneaza, $str{42} nu functioneaza) constantele FILE_BINARY si FILE_TEXT devin disponibile pentru folosirea in functii de citire/scriere fisiere foreach va suporta array multi dimensional: foreach($a as $b => list($c, $d)) pentru operatorul ternar expresia pentru valoarea true nu mai este obligatoriu ($a = $s ?: ‘b’; // returns $a = $s;) optiunea safe_mode a fost inlaturata. operatorul and a fost inlaturat. functia microtime() returneaza un float. zend.ze1_compatibility_mode a fost inlaturat.

Popularitate


PHP-ul este unul din cele mai folosite limbaje de programare server-side, conform unui studiu efectuat de Netcraft in aprilie 2002, aparând pe 9 din cele 37 milioane de domenii cercetate in studiu. De asemenea, exista un grafic al cresterii folosirii PHP-ului pe site-ul oficial. Popularitatea de care se bucura acest limbaj de programare se datoreaza urmatoarelor caracteristici : Familiaritatea : sintaxa limbajului este foarte usoara combinând sintaxele unora din cele mai populare limbaje Perl sau C; Simplitatea : sintaxa limbajului este destul de libera. Nu este nevoie de includere de biblioteci sau de directive de compilare, codul PHP inclus intr-un document executându-se intre marcajele speciale; Eficienta : PHP-ul se foloseste de mecanisme de alocare a resurselor, foarte necesare unui mediu multiutilizator, asa cum este web-ul; Securitate : PHP-ul pune la dispozitia programatorului un set flexibil si eficient de masuri de siguranta; Flexibilitate : fiind aparut din necesitatea dezvoltarii web-ului, PHP a fost modularizat pentru a tine pasul cu dezvoltarea diferitelor tehnologii. Nefiind legat de un anumit server web, PHP-ul a fost integrat pentru numeroasele servere web existente: Apache, IIS, Zeus, server, etc.; Gratuitate : este probabil cea mai importanta caracteristica a PHP-ului. Dezvoltarea PHP-ului sub licenta open-source a determinat adaptarea rapida a PHP-ului la nevoile web-ului, eficientizarea si securizarea codului.

Utilizare


PHP este simplu de utilizat, fiind un limbaj de programare structurat, ca si C-ul, Perl-ul sau incepând de la versiunea 5 chiar Java, sintaxa limbajului fiind o combinatie a celor trei. Datorita modularitatii sale poate fi folosit si pentru a dezvolta aplicatii de sine statatorare, de exemplu in combinatie cu PHP-GTK sau poate fi folosit ca Perl sau Python in linia de comanda. Probabil una din cele mai importante facilitati ale limbajului este conlucrarea cu majoritatea bazelor de date relationale, de la MySQL si pâna la Oracle, trecând prin MS Sql Server, PostgreSQL, sau DB2. PHP poate rula pe majoritatea sistemelor de operare, de la UNIX, Linux, Windows, sau Mac OS X si poate interactiona cu majoritatea serverelor web. Codul dumneavoastra PHP este interpretat de serverul WEB si genereaza un cod HTML care va fi vazut de utilizator (clientului -browserului- fiindu-i transmis numai cod HTML). Arhitectura tip LAMP a devenit populara in industria web ca modalitate rapida, gratuita si integrata de dezvoltare a aplicatiilor. Alaturi de Linux, Apache si Mysql, PHP reprezinta litera P, desi unori aceasta se refera la Python sau Perl. Linux ocupa rolul de sistem de operare pentru toate celelalte aplicatii, Mysql gestionaza bazele de date, Apache are rol de server web, iar PHP are rol de interpretator si comunicator intre acestea. PHP foloseste extensii specifice pentru fisierele sale: .php, .php3, .ph3, .php4, .inc, .phtml. Aceste fisiere sunt interpretate de catre serverul web iar rezultatul este trimis in forma de text sau cod HTML catre browser-ul clientului.[6]

Tipuri de date interne


Boolean – valori logice tip adevarat sau false, similare cu cele din C++ sau Perl. Integer – numere intregi (in baza 10, 2 sau 16). Valoarea maxima depinde de sistem si de tipul de integer. Tipul poate fi ”signed” sau ”unsigned”, adica dependent de semnul + sau – sau independent de acestea. Valorile pentru integer unsigned sunt mai mari decât cele pentru signed. Sistemele pe 32 bits pot crea numere intregi intre -2147483648 si 2147483647( 2^32-1 ). Maximul pentru sisteme pe 64 bits este 9223372036854775807. Float – cunoscute ca numere reale. Valorile maxime sunt de asemenea dependete de platform, in general cu un maxim de ~1.8e308 cu o precizie de 14 zecimale dupa virgula (formatul 64 bits IEEE). String – siruri de caractere. inainte de PHP6, un caracter era echivalent cu un byte. Nu exista limitari pentru lungimea unui sir, in afara memoriei alocate PHP. Array – in PHP un array este un tip de data care contine un grup de elemente. Fiecare element are un indice intern in group, iar fiecarui indice ii corespunde o valoare – elementul in sine. Un astfel de grup poate fi folosit ca o simulare pentru diverse situatii matematice precum vectori, serii, dictionare de elemente, liste ordonate, matrici sau matrici de matrici. Indicii si valorile unui grup pot fi orice tip de data interna PHP (cu exceptii: obiectele, resursele si null nu pot fi indici). Obiecte – O clasa este o colectie de proprietati si functii având o logica comuna. Obiectele sunt instante ale unei clase, in care proprietatile obiectului primesc valori specifice. Vezi POO – programarea orientata pe obiecte. Resurse – aceastea sunt variabile speciale care contin legaturi cu resurse externe PHP. De exemplu, conexiunea cu o baza de date este o resursa deschisa si mentinuta cu ajutorul unor functii special definite pentru aceasta munca. NULL – este un tip special de data, care semnifica ca variabila respectiva nu a fost definita si ca nu are valoare.

Functii


PHP are sute de functii incorporate si alte câteva mii disponibile prin intermediul extensiilor.

php-logo
Latest
15 December 2011, No comments

Acum recent am facut un script PHP care trebuia sa genereze dintr-un vector un fisier CSV. Acest lucru este relativ simplu de facut si se poate folosi functia special dedicata …

php-logo

Parser CSV in PHP

17 November 2011, No comments

De multe ori ai nevoie de un script care sa ia datele dintr-un fisier CSV si sa le adauge intr-io baza de date sau sa leprelucreze intr-un mod. Chiar ...

php-logo

Ascunde erorile in PHP

16 November 2011, No comments

In cazul in care ai terminat de lucrat la un site si doresti sa il pui pe server ca sa il poata accesa vizitatorii.  Nu are sens sa  afisezi erorile ...

php-logo

Arata erorile in PHP

15 November 2011, 1 Comment

De multe ori atunci cand lucrezi la un site vrei sa vezi ce erori ai in acel cod. Unele servicii de hosting dezactiveaza automat notificarile si erori ...