+ All Categories
Home > Technology > Programare Web - PHP (o prezentare generala)

Programare Web - PHP (o prezentare generala)

Date post: 22-May-2015
Category:
Upload: sabin-buraga
View: 9,779 times
Download: 7 times
Share this document with a friend
Description:
Overview of PHP language and main characteristics, including built-in functions, facilities, and resources.
38
Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/ 1 Tehnologii Web Tehnologii Web 2007 2007 Programare Web Programare Web PHP – prezentare generala PHP – prezentare generala Dr. Sabin-Corneliu Buraga Facultatea de Informatica Universitatea “A.I.Cuza” – Iasi, Romania http://www.infoiasi.ro/~busaco/
Transcript
Page 1: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

1

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

Programare WebProgramare WebPHP – prezentare generalaPHP – prezentare generala

Dr. Sabin-Corneliu BuragaFacultatea de Informatica

Universitatea “A.I.Cuza” – Iasi, Romania

http://www.infoiasi.ro/~busaco/

Page 2: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

2

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• PHP (PHP: Hypertext Preprocessor)– Evolutie– Caracterizare– Interactiunea cu utilizatorul– Programare obiectuala in PHP– Instrumente & resurse

cuprinscuprins

Page 3: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

3

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Personal Home Page Tools (1994-1995) – Rasmus Lerdorf

• PHP/FI 2.0 (1995)• PHP 3 (1998)

Zeev Suraski & Andi Gutmans• PHP 4 (2000)

motor de scriptare Zend• PHP 4.3 (2002-2003)

motor de scriptare Zend 2.0• PHP 5 (2004)

multe facilitati inspirate din Java• PHP 6 (in dezvoltare)

php | istoricphp | istoric

Page 4: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

4

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Limbaj de programare de tip script, interpretat, direct accesibil in cadrul documentelor HTML

• Procedural, oferind si suport pentru programarea orientata-obiect

• Sintaxa inspirata de C/C++ si Perl (mai nou, si de Java) – case sensitive

• Disponibil gratuit (open source) pentru diverse platforme (UNIX/Linux, Windows, Mac OS X) si servere Web (Apache, IIS,…)

• Paginile incluzind cod PHP au extensia .php (in trecut .php3, .phtml)

php | caracterizarephp | caracterizare

Page 5: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

5

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Maniera de functionare a procesorului (engine-ului) PHP

php | caracterizarephp | caracterizare

Page 6: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

6

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Faciliteaza interactiunea cu utilizatorul (formulare Web, cookie-uri, sesiuni, integrare cu serverul Apache etc.)

• Suport pentru manipularea bazelor de date (MySQL, ODBC, Oracle, PostgreSQL, SQLite,…)

• Procesarea continutului resurselor (tipuri de arhive, PDF, fisiere grafice, certificate digitale,…)

• Suport pentru tehnologiile XML (procesari SAX, DOM, simplificate; transformari, validari; servicii Web etc.)

• Include extensii (module) diverse• Documentatia oficiala: www.php.net/docs.php

php | caracterizarephp | caracterizare

Page 7: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

7

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Scripturi PHP introduse prin:

<? echo ("Salut! \n"); /* simplu, nu? */ ?>

<?php echo("In cazul documentelor XML.\n");

?>

<script language="php"> echo ("...");</script>

<% echo ("Tag-uri in stilul ASP"); %>

php | caracterizarephp | caracterizare

De

folo

sit

Page 8: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

8

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Variabile create “din zbor” • Tipuri scalare: integer, double, boolean, string • Tipuri complexe:

tablouri (indexate/asociative) & obiecte• Tipuri speciale: resursa, referinta, nul

(NULL)$ani = 33; /* o variabila obisnuita */ $conectat = TRUE; # variabila logica$prefer["culoare"] = "gri"; // tablou asociativ

php | caracterizarephp | caracterizare

Page 9: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

9

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Structuri de control – similare celor din C (if, switch, while, do, for, break, continue)

if (!$nume) { echo ("Nu ati precizat numele!"); } else { echo ("Bine ai venit, " . $nume . "!\n"); }

php | caracterizarephp | caracterizare

Page 10: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

10

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

<?php // umplem un tablou cu valori de la 1 la 10 for ($contor = 1; $contor <= 10; $contor++) { $valori[$contor] = $contor; } // realizam suma valorilor $suma = 0; foreach ($valori as $element) $suma += $element; // afisam suma obtinute la iesirea standard // pentru a fi trimisa browserului echo ("<p>Suma de la 1 la 10 este: <em>" . $suma . "</em></p>");?>

php | caracterizarephp | caracterizare

Page 11: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

11

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

php | caracterizarephp | caracterizare

• Invocarea (rularea) programului PHP direct din linia de comanda:– Salvam codul intr-un fisier text .php

valori.php– Apelam interpretorul PHP din linia de

comanda

Page 12: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

12

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

php | caracterizarephp | caracterizare

• Invocarea (rularea) programului PHP folosind tehnologiile Web:– Plasam fisierul intr-un director al

serverului Web– Din browser, indicam URL-ul catre

program pentru a-l invoca via HTTP

Rezultatul generat de scriptRezultatul generat de script

Page 13: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

13

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Constante predefinite: PHP_VERSION, CHAR_MAX,…

• Operatori – ca si cei din limbajul C/Perl (e.g., concatenarea sirurilor cu “.”)

• Functii-utilizator:function trimite_mesaj ( $from="", $to="", $subject="Web") { // corp… }

Parametri cu valori implicite

php | caracterizarephp | caracterizare

Page 14: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

14

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

<?phpfunction patrat ($numar) { // functia de ridicare la patrat return $numar * $numar;}$numar = 0;while ($numar < 10) { $numar++; // incrementam numarul if ($numar % 2) // e numar impar... continue; // continuam cu urmatoarea iteratie // e numar par, deci afisam patratul echo "<p>$numar la patrat este " . patrat($numar) . "</p>"; } // final de while?>

php | caracterizarephp | caracterizare

Page 15: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

15

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Functii predefinite (built-in):– matematice– de conversie– de manipulare a sirurilor de caractere– de prelucrare a tablourilor– de acces la resurse si de lucru cu fisiere– de manipulare a bazelor de date– privitoare la conexiunile de retea– pentru accesarea resurselor XML, PDF,

JPEG,...– specifice sistemului de operare– generale

php | caracterizarephp | caracterizare

Page 16: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

16

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Functii predefinite (built-in):– matematice

• abs(), mod(), fmod()• ceil(), floor(), round(), max(), min()• exp(), log10(), log()• pow(), sqrt()• sin(), cos(), tan(), asin(), …, sinh(), …, pi()• rand(), srand()• bindec(), octdec(), dechex(),…, base_convert()• is_finite(), is_infinite(), is_nan()

php | caracterizarephp | caracterizare

Page 17: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

17

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Functii predefinite (built-in):– de manipulare a sirurilor de caractere

• echo(), print(), printf(), sprintf() etc.• strlen(), chr(), ord(), substr(), strstr(), strpos(),…• strcmp(), strcasecmp(), strnatcmp() etc. • strcat(), str_repeat(), str_replace(),

str_ireplace(), strrev() • trim(), ltrim(), rtrim() • explode(), implode(), split(), join(), strtok() • nl2br(), htmlentities(), htmlspecialchars(),

strip_tags(),…

php | caracterizarephp | caracterizare

Page 18: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

18

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Functii predefinite (built-in):– de manipulare a tablourilor

• array_count_values(), array_search(), array_filter(), array_slice(), array_chunk()

• array_fill(), array_combine(), array_shift(), array_reverse(), array_multisort(), array_sum(),…

• array_merge(), array_intersect(), array_diff()• array_keys(), array_key_exists()• array_push(), array_pop()

php | caracterizarephp | caracterizare

Page 19: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

19

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Functii predefinite (built-in):– de manipulare a caracterelor

• ctype_digit(), ctype_xdigit(), ctype_print(), ctype_punct(), ctype_space(),…

• ctype_alpha(), ctype_alnum(), ctype_lower(), ctype_upper()

php | caracterizarephp | caracterizare

Page 20: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

20

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Functii predefinite (built-in):– privitoare la timp & data

• getdate(), localtime(), gettimeofday(), time() etc.

• date(), idate(), gmdate(),…• checkdate() • strftime(), strtotime()

php | caracterizarephp | caracterizare

Page 21: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

21

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Functii predefinite (built-in):– privitoare la fisiere/directoare

• Folosind tipul de date FILE: fopen(), fread(), fscanf(), fgets(), fwrite(), fprintf(), fseek(), ftell(), feof(), fclose(), ftruncate(), fstat(), flock()

• file(), copy(), rename(), delete(), move_uploaded_file(), tmpfile()

• file_exists(), filesize(), filetype(), fileperms(),…, stat()

• is_dir(), is_file(), is_readable(), is_writeable(),…• chdir(), mkdir(), rmdir()• disk_free_space(), disk_total_space()

php | caracterizarephp | caracterizare

Page 22: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

22

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Functii predefinite (built-in):– de manipulare a URL-urilor

• urldecode(), urlencode(), parse_url()• base64_decode(), base64_encode()

– privitoare la variabilele PHP• is_bool(), is_int(), is_float(),…, is_array(),

is_null(), is_resource(), is_scalar(), is_string()• gettype(), settype()• empty(), isset(), unset()• strval(), print_r(), var_dump() • serialize(), unserialize()

php | caracterizarephp | caracterizare

Page 23: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

23

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Alte facilitati:– SPL (Standard PHP Library) – acces la metode

standard de prelucrare a datelor– Rularea din linie de comanda: PHP CLI

(Command Line Interface) sau ca modul Apache

– Crearea de interfete grafice (aplicatii desktop): PHP-GTK – http://gtk.php.net/

– Inter-conectivitatea cu alte platforme(COM, Flash, Java, .NET,)

– Suport pentru Internet/Web (FTP, HTTP, IMAP, LDAP, NNTP, POP3, SNMP, SOAP, XML-RPC)

php | caracterizarephp | caracterizare

Page 24: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

24

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Datele transmite de client (browser) se regasesc in tablouri asociative predefinite (si globale):– $_GET[] – datele transmise prin GET– $_POST[] – datele transmise prin POST– $_COOKIE[] – cookie-urile receptate– $_REQUEST[] – datele primite de la client

(continutul lui $_GET, $_POST si $_COOKIE)– $_SESSION[] – datele de tip sesiune

php | interactiune webphp | interactiune web

Page 25: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

25

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Alte variabile globale utile:– $_SERVER[] – datele oferite de serverul Web

• $_SERVER['PHP_SELF'] numele scriptului PHP

– $_ENV[] – datele oferite de mediu (environment)

– $_FILES[] – datele despre fisierele primite prin upload

php | interactiune webphp | interactiune web

Page 26: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

26

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Formularul Web:<form action="afiseaza.php" method="post"> <input type="text" name="nume" /> <input type="text" name="virsta" /> <input type="submit“ value="Trimite" /> </form> • Scriptul afiseaza.php:<?php if (!$_REQUEST["nume"]) {?> <p style="color: red">Nu ati specificat numele!</p> <?php } else { echo (“Numele este “ . $_REQUEST[“nume”]); }?>

php | interactiune webphp | interactiune web

Page 27: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

27

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Programare obiectuala – incapsularea<?phpclass Student { // specificarea unei clase var $an; var $nume; var $email; // metode function seteazaAn ($un_an) { $this->an = $un_an; } function furnizeazaAn () { return $this->an; }}$stud = new Student; // instantierea unui obiect ?>

Se pot accesa direct, nefiind privati in PHP4

php | obiectephp | obiecte

Page 28: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

28

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Programare obiectuala – mostenirea

class StudentDestept extends Student { var $note; // notele obtinute (data membru) // metode function seteazaNote ($n) { $this->note = (array) $n; } function furnizeazaNote () { return (array) $this->note; }}$alt_stud = new StudentDestept;$alt_stud->seteazaAn (2); // apel de metodă din clasa de bază$alt_stud->seteazaNote ($niste_note);

// apel de metodă din clasa derivată

php | obiectephp | obiecte

Page 29: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

29

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Programare obiectuala – constructoriclass Student { var $an, $nume, $email; // date-membru function Student ($a, $n, $e = '') { // constructor $this->an = $a; $this->nume = $n; $this->email = $e; } // alte metode…}$stud = new Student (2, "Cristian Vrabie");

• Destructori nu exista in PHP 4

php | obiectephp | obiecte

Page 30: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

30

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Functii de manipulare a claselor si obiectelor– get_class() va returna numele unui obiect,

instanţă a unei clase– get_parent_class() furnizează clasa părinte

din care provine un anumit obiect– method_exists() testează dacă există o

metodă pentru un anumit obiect specificat

– class_exists() testează existenţa unei clase– is_subclass_of() va determina existenţa

unei relaţii de moştenire dintre două clase

php | obiectephp | obiecte

Page 31: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

31

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Programare obiectuala – PHP 5– Constructorii sunt numiti __construct()– Destructorii sunt denumiti __destruct()– Accesul la clasa parinte parent::– Membrii pot fi publici (public), privati

(private) sau protejati (protected)– Se permit clase/metode abstracte: abstract– Obiectele pot fi “clonate” via clone– Obiectele pot fi comparate folosind ===– Pot fi declarate si interfete (in stilul Java)– Se permite si introspectia via clasa

Reflection

php | obiectephp | obiecte

Page 32: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

32

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Programare obiectuala – PHP 5

class Student { // clasa privitoare la un student private $an; // date-membru (private/publice) public $nume; public $email; // constructor (in stilul nou) function __construct($a = 1, $n = '', $e = '') { $this->an = $a; $this->nume = $n; $this->email = $e; } function __destruct() { // destructor print '<p>L-am distrus pe ' . $this->nume . '!</p>'; } }

php | obiectephp | obiecte

Page 33: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

33

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Programare obiectuala – PHP 5// folosim introspectia// cream o instanta a clasei predefinite ReflectionClass$clasa = new ReflectionClass ('StudentDestept');// afisam informatii despre clasa specificataprintf("<p>Clasa <em>%s</em> extinde %s si

e declarata in fisierul <tt>%s</tt>.</p>", $clasa->getName(), var_export ($clasa->getParentClass(), 1), $clasa->getFileName()

);

php | obiectephp | obiecte

Page 34: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

34

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Apache2Triad, EasyPHP & XAMPP – medii pre-configurate de dezvoltare Web (Apache, PHP, MySQL,…)

• PHPMyAdmin – aplicatie Web scrisa in PHP pentru administrarea facila a bazelor de date MySQL

• Smarty – faciliteaza realizarea de template-uri de redare a continutului Web

• PEAR (PHP Extension and Application Repository) – clase/module care extind functionalitatile PHP: http://pear.php.net/

• PHP Designer – editor Web avansat• Zend Studio – platforma comerciala de dezvoltare

a aplicatiilor PHP de anvergura• PRADO – framework PHP5 permitind interactiuni

Web conduse de evenimente in stilul .NET• JPSpan & Xajax – framework-uri PHP pentru AJAX

php | instrumentephp | instrumente

Page 35: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

35

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• T. Anghel, Programarea in PHP, Polirom, 2005

• S. Buraga (coord.), Aplicatii Web la cheie, Polirom, 2003

• S. Buraga (coord.), Situri Web la cheie, Polirom, 2004

• S. Buraga, Tehnologii XML, Polirom, 2006• L. Alboaie, S. Buraga, Servicii Web,

Polirom, 2006

resurseresurse

Page 36: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

36

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• Situl PHP oficial: www.php.net/• PHP Builder: www.phpbuilder.com/• PHP Classes: www.phpclasses.org/• PHP Developer: www.phpdeveloper.org/• PHP Freaks: www.phpfreaks.com/• Zend: www.zend.com/

resurseresurse

Page 37: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

37

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

• PHP (PHP: Hypertext Preprocessor)– Evolutie– Caracterizare– Programare obiectuala in PHP– Interactiunea cu utilizatorul– Instrumente & resurse

rezumatrezumat

Page 38: Programare Web - PHP (o prezentare generala)

Dr. Sabin Buraga http://www.infoiasi.ro/~busaco/

38

Teh

nolo

gii

Web

Teh

nolo

gii

Web

20

07

20

07

Intrebari…?


Recommended