Você está na página 1de 15

smaranda.belciug@inf.ucv.

ro Laborator 9 Tehnologii Web si Programare Client Server

Avantaje MySql / PHP Este rapid Este ieftin (open source) Este uor de folosit Poate rula pe mai multe sisteme de operare Suportul tehnic este valabil peste tot Este sigur Lucreaz cu baze de date mari Adugarea unei seciuni PHP unei pagini HTML Codul PHP este cuprins ntre tag-urile <?php ?> sau se poate folosi forma prescurtat
<? ?>.

S ncepem cu un exemplu. Evident primul o s fie cu Hello World!. Este o tradiie cnd nvei pentru prima dat un limbaj de programare ca primul program s fie Hello World.
Programul HTML <html> <head><title>Hello World Program</title></head>

smaranda.belciug@inf.ucv.ro
<body> <p>Hello World! </body> </html> Programul PHP <html> <head><title>Hello World Program</title></head> <body> <?php echo <p>Hello World! ?> </body> </html>

echo afieaz textul dintre ghilimele Instruciunile n PHP se termina cu ;. Variabile n PHP Numele variabilei Toate variabilele ncep cu semnul $. Acesta i transmite PHP-ului c este vorba de numele unei variabile Nu exist limit de lungime privind numele unei variabile Numele de variabil poate s conin litere, numere i underscore. Numele variabilei trebuie s nceap un o liter sau cu underscore Este case-sensitive
$age = 12; $price = 2.55; $number=-2; $name = Goliath Smith; echo $age; <p>Hello World! <?php $age = 15; $name = Harry; ?> <br>Hello World again!<br> <?php echo $name; ?>

ncruciarea unor multiple blocuri de cod Putei s ieii din php de cte ori dorii ntr-o pagin. De exemplu codul urmtor:
<html> <head> <title><?php echo "Buna!";?></title>

smaranda.belciug@inf.ucv.ro
</head> <body> <?php $date = "3 Decembrie"; ?> <h3>Data de azi este <?=$date;?></h3> </body> </html>

Variabilele dintr-un bloc anterior sunt retinute n alte blocuri, cum este cazul $date. Output Majoritatea paginilor Web au un nivel ridicat de interactivitate. Script-uri foarte bine scrise comunic cu utilizatorii via interfa. Php-ul ofer mai multe unelte pentru a afia informaia. print()
boolean print (argument)

Exemple de folosire a lui print()


<?php print("<p>Iubesc vara.</p>"); ?> <?php $season = "vara"; print "<p>Iubesc $season.</p>"; ?> <?php print "<p>Iubesc vara.</p>"; ?> <?php $season = "vara"; print "<p>Iubesc ".$season."</p>"; ---------------?> operator de concatenare .

Toate exemplele au un output identic. echo()


void echo (string argument1 [, ...string argumentN])

Comanda echo() este similar cu print(), dar exist totui dou diferene: nu poate fi folosit ca parte dintr-o expresie complex deoarece ntoarce void, spre deosebire de printf care ntoarce boolean. 3

smaranda.belciug@inf.ucv.ro este capabil s afieze stringuri multiple.

Tipuri de date Boolean


$alive = false; # $alive is false. $alive = 1; # $alive is true. $alive = -1; # $alive is true. Orice valoare diferit de 0 este adevarat $alive = 5; # $alive is true. $alive = 0; # $alive is false.

Integer
42 # decimal -678900 # decimal 0755 # octal 0xC4E # hexadecimal <?php $val = 45678945939390393678976; echo $val + 5; ?>

Float
4.5678 4.0 8.7e4 1.23E+11

String
"whoop-de-do" 'subway\n' "123$%^789"

Array Array o colecie de date indexate.


$state[0] = "Alabama"; $state[1] = "Alaska"; un tablou cu toate statele Americii $state[2] = "Arizona"; ... $state[49] = "Wyoming";

Iar dac vrem s corelm statele Americii cu capitalelor lor?


$state["Alabama"] = "Montgomery";

smaranda.belciug@inf.ucv.ro
$state["Alaska"] = "Juneau"; $state["Arizona"] = "Phoenix"; ... $state["Wyoming"] = "Cheyenne";

Obiecte
class appliance { private $power; function setPower($status) { $this->power = $status; } } ... $blender = new appliance;

Array Array-ul ofer metoda ideal de a stoca, manipula, sorta datele.

smaranda.belciug@inf.ucv.ro Ce este un array? Un array este n mod tradiional o mulime de itemi care au caracteristici comune (modele de maini, fructe etc.) i acelai tip de date (string, integer etc.). PHP-ul duce lucrurile cu un pas nainte deoarece permite ca ntr-un array itemii s nu aiba toi acelai tip de date. Fiecare entitate conine dou componente: o cheie i o valoare. Cheia servete la cutarea mai rapid a valorii.
$states = array (0 => "Alabama", "1" => "Alaska"..."49" => "Wyoming"); Si.. $states[0]

Sau
$states = array ("OH" => "Ohio", "PA" => "Pennsylvania", "NY" => "New York") Si $states["OH"]

Pentru a crea array-uri multidimensionale se procedeaz astfel:


$states = array ( "Ohio" => array ("population" => "11,353,140", "capital" => "Columbus"), "Nebraska" => array("population" => "1,711,263", "capital" => "Omaha") ) Daca vrem sa discutm despre populaia statului Ohio.. tastam: $states["Ohio"]["population"] print_r()

Pentru a afia un array folosim comanda print_r(), astfel:


print_r($states);

Crearea unui array


$state[0] = "Delaware"; echo $state[0];

Pentru mai multe state putem s le adugm astfel:


$state[1] = "Pennsylvania"; $state[2] = "New Jersey"; ... $state[49] = "Hawaii"; Putem sa omitem indicele, astfel: $state[] = "Pennsylvania"; $state[] = "New Jersey"; ... $state[] = "Hawaii";

smaranda.belciug@inf.ucv.ro

array()

Alt mod de a crea un array ar fi:


$languages = array ("English", "Gaelic", "Spanish"); // $languages[0] = "English", $languages[1] = "Gaelic", $languages[2] = "Spanish" Sau putem s cream un array astfel: $languages = array ("Spain" => "Spanish", "Ireland" => "Gaelic", "United States" => "English"); // $languages["Spain"] = "Spanish" // $languages["Ireland"] = "Gaelic" // $languages["United States"] = "English"

range()
$die = range(0,6); // $die = array(0,1,2,3,4,5,6) $letters = range("A","F"); // $letters = array("A,","B","C","D","E","F");

Adugarea sau scoaterea unui element dintr-un array


array_push()
$states = array("Ohio","New York"); array_push($states,"California","Texas"); // $states = array("Ohio","New York","California","Texas");

array_pop()
$states = array("Ohio","New York","California","Texas"); $state = array_pop($states); // $state = "Texas"

array_shift()
$states = array("Ohio","New York","California","Texas"); $state = array_shift($states); // $states = array("New York","California","Texas") // $state = "Ohio"

array_unshift()
$states = array("Ohio","New York"); array_unshift($states,"California","Texas"); // $states = array("California","Texas","Ohio","New York");

smaranda.belciug@inf.ucv.ro Afiarea array-urilor


key()
$capitals = array("Ohio" => "Columbus", "Iowa" => "Des Moines", "Arizona" => "Phoenix"); echo "<p>Can you name the capitals of these states?</p>"; while($key = key($capitals)) { echo $key."<br />"; next($capitals); }

current(), next(), prev()


$fruits = array("apple", "orange", "banana"); $fruit = current($fruits); // returns "apple" $fruit = next($fruits); // returns "orange" $fruit = prev($fruits); // returns "apple"

Folosirea unui array ntr-un formular


<form action="submitdata.php" method="post"> <p> Provide up to six keywords that you believe best describe the state in which you live: </p> <p>Keyword 1:<br /> <input type="text" name="keyword[]" size="20" maxlength="20" value="" /></p> <p>Keyword 2:<br /> <input type="text" name="keyword[]" size="20" maxlength="20" value="" /></p> <p>Keyword 3:<br /> <input type="text" name="keyword[]" size="20" maxlength="20" value="" /></p> <p>Keyword 4:<br /> <input type="text" name="keyword[]" size="20" maxlength="20" value="" /></p> <p>Keyword 5:<br /> <input type="text" name="keyword[]" size="20" maxlength="20" value="" /></p> <p>Keyword 6:<br /> <input type="text" name="keyword[]" size="20" maxlength="20" value="" /></p> <p><input type="submit" value="Submit!"></p> </form>

count() numr elementele unui array


$garden = array("cabbage", "peppers", "turnips", "carrots"); echo count($garden);

array_unique() elimina duplicatele dintr-un array


$states = array("Ohio","Iowa","Arizona","Iowa","Ohio"); $uniqueStates = array_unique($states); print_r($uniqueStates);

smaranda.belciug@inf.ucv.ro

sort()
SORT_NUMERIC: sortare numerica SORT_REGULAR: sortare dupa valoarea ASCII SORT_STRING: - sortare string $grades = array(42,57,98,100,100,43,78,12); sort($grades); print_r($grades); $states = array("OH" => "Ohio", "CA" => "California", "MD" => "Maryland"); sort($states); print_r($states);

rsort() sortare invers


$states = array("Ohio","Florida","Massachusetts","Montana"); sort($states); print_r($states)

array_multisort() sortare a mai multor array-uri


<?php $staff["givenname"][0] = "Jason"; $staff["givenname"][1] = "Manny"; $staff["givenname"][2] = "Gary"; $staff["givenname"][3] = "James"; $staff["surname"][0] = "Gilmore"; $staff["surname"][1] = "Champy"; $staff["surname"][2] = "Grisold"; $staff["surname"][3] = "Gilmore"; $res = array_multisort($staff["surname"],SORT_STRING,SORT_ASC, $staff["givenname"],SORT_STRING,SORT_ASC); print_r($staff); ?>

array_combine() combinare a mai multor array-uri


$abbreviations = array("AL","AK","AZ","AR"); $states = array("Alabama","Alaska","Arizona","Arkansas"); $stateMap = array_combine($abbreviations,$states); print_r($stateMap);

array_merge() combina mai multe array-uri intr-unul singur.


$face = array("J","Q","K","A"); $numbered = array("2","3","4","5","6","7","8","9"); $cards = array_merge($face, $numbered); shuffle($cards); print_r($cards);

array_slice() mparte un array in doua array-uri

smaranda.belciug@inf.ucv.ro
$states = array("Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut"); $subset = array_slice($states, 4); print_r($subset);

array_intersect()
$array1 = array("OH","CA","NY","HI","CT"); $array2 = array("OH","CA","HI","NY","IA"); $array3 = array("TX","MD","NE","OH","HI"); $intersection = array_intersect($array1, $array2, $array3); print_r($intersection);

array_diff()
$array1 = array("OH","CA","NY","HI","CT"); $array2 = array("OH","CA","HI","NY","IA"); $array3 = array("TX","MD","NE","OH","HI"); $diff = array_diff($array1, $array2, $array3); print_r($intersection);

shuffle()
$cards = array("jh","js","jd","jc","qh","qs","qd","qc", "kh","ks","kd","kc","ah","as","ad","ac"); // shuffle the cards shuffle($cards); print_r($positions);

array_sum()
<?php $grades = array(42,"hello",42); $total = array_sum($grades); print $total; ?>

Lucrul cu fiiere i sisteme de operare Fiiere i directoare Permisiuni ale fiierelor Fiiere I/O Coninutul directoarelor Comenzi shell

Fiiere i directoare

10

smaranda.belciug@inf.ucv.ro

basename() - returneaz numele fiierului dintr-o cale.


<?php $path = "/home/www/data/users.txt"; $filename = basename($path); // $filename contine "users.txt" $filename2 = basename($path, ".txt"); // $filename2 contine "users" ?>

dirname() returneaz numele directorului


<?php $path = "/home/www/data/users.txt"; $dirname = dirname($path); // $dirname contine "/home/www/data" ?>

pathinfo()
<?php $pathinfo = pathinfo("/home/www/htdocs/book/chapter10/index.html"); echo "Dir name: $pathinfo[dirname]<br />\n"; echo "Base name: $pathinfo[basename] <br />\n"; echo "Extension: $pathinfo[extension] <br />\n"; ?>

filesize() returneaza marimea fisierului


<?php $file = "/www/htdocs/book/chapter1.pdf"; $bytes = filesize("$file"); // Returns 91815 echo "File ".basename($file)." is $bytes bytes, or ".round($bytes / 1024, 2)." kilobytes."; ?>

fileatime() returneaza data i ora cnd a fost accesat ultima dat fiierul respectiv
<?php $file = "/usr/local/apache2/htdocs/book/chapter10/stat.php"; echo "File last accessed: ".date("m-d-y g:i:sa", fileatime($file)); ?>

filectime() returneaz data i ora cnd a fost modificat ultima dat fiierul
<?php $file = "/usr/local/apache2/htdocs/book/chapter10/stat.php"; echo "File inode last changed: ".date("m-d-y g:i:sa", fileatime($file)); ?>

Permisiuni i apartenen
chown() ncearc s schimbe proprietarul fiierului cu un user
int chown (string filename, mixed user)

fileperms() returneaz permisiunile unui fiier n format decimal.

11

smaranda.belciug@inf.ucv.ro
int fileperms (string filename)

fileowner() returneaz proprietarul fiierului.


<?php $uid = fileowner("/etc/passwd"); ?>

isexecutable() returneaz TRUE dac fiierul exist i este executabil. FALSE altfel isreadable() - returneaza TRUE daca fiierul poate fi citit iswriteable() - returneaz TRUE dac fiierul poate fi scris feof() determin dac s-a ajuns la sfritul fiierului sau nu
<?php $fh = fopen("/home/www/data/users.txt", "rt"); while (!feof($fh)) echo fgets($fh); fclose($fh); ?>

fopen() deschide un fiier


r - read-only r+ - read & write w write only w+ - read & write b binary mode t text mode
$fh = fopen("/usr/local/apache/data/users.txt","rt"); $fh = fopen("/usr/local/apache/data/docs/summary.doc","wb");

fclose() nchide un fiier

S considerm urmtorul fiier text, users.txt:


Ale ale@example.com Nicole nicole@example.com Laura laura@example.com

<?php $users = file("users.txt"); foreach ($users as $user) { list($name, $email) = explode(" ", $user); // sterge newline din $email $email = trim($email); echo "<a href=\"mailto:$email\">$name</a> <br />\n"; } ?>

fgetcsv() parseaz fiecare linie dintr-un fiier


<?php $fh = fopen("/home/www/data/subscribers.csv", "r"); while (list($name, $email, $phone) = fgetcsv($fh, 1024, ",")) { echo "<p>$name ($email) Tel. $phone</p>";

12

smaranda.belciug@inf.ucv.ro
} ?>

readfile() - citete un ntreg fiier


<?php $file = "/home/www/articles/gilmore.html"; /* construieste o lista de tagg-uri acceptate */ $tags = "<h2><h3><p><b><a><img>"; /*deschide fisierul si citeste */ $fh = fopen($file, "rt"); while (!feof($fh)) $article .= fgetss($fh, 1024, $tags); fclose($fh); /*deschide fisierul si suprascrie cu noul material */ $fh = fopen($file, "wt"); fwrite($fh, $article); fclose($fh); /* afiseaza fisierul in browser */ $bytes = readfile($file); ?>

opendir() - deschide un director closedir() nchide un director readdir() afieaz coninutul unui director
<?php $dh = opendir('/usr/local/apache2/htdocs/'); while ($file = readdir($dh)) echo "$file <br>"; closedir($dh); ?>

Forms 1. Urmtorul script cere ca utilizatorul s-i introduca numele i adresa de email.
<?php // daca butonul de submit a fost apasat if (isset($_POST['submit'])) { echo "Hi ".$_POST['name']."!<br />"; echo "The address ".$_POST['email']." will soon be a spam-magnet!<br />"; } ?> <form action="subscribe.php" method="post"> <p> Name:<br /> <input type="text" name="name" size="20" maxlength="40" value="" /> </p> <p> Email Address:<br /> <input type="text" name="email" size="20" maxlength="40" value="" />

13

smaranda.belciug@inf.ucv.ro
</p> <input type="submit" name = "submit" value="Go!" /> </form>

2. Validarea unui form.


<?php // validarea unei adrese de email function validate_email($email) { // creeaza o expresie de validare a unui email $regexp = "^([_a-z0-9-]+)(\.[_a-z0-9-]+)*@([a-z0-9-]+) (\.[a-z0-9-]+)*(\.[a-z]{2,6})$"; //validare sintaxa if (eregi($regexp, $email)) return 1; else return 0; } if (isset($_POST['submit'])) { echo "Hi ".$_POST['name']."!<br />"; if (validate_email($_POST['email'])) echo "The address ".$_POST['email']." is valid!"; else echo "The address <strong>".$_POST['email']."</strong> is invalid!"; } ?> <form action="subscribe.php" method="post"> <p> Name:<br /> <input type="text" name="name" size="20" maxlength="40" value="" /> </p> <p> Email Address:<br /> <input type="text" name="email" size="20" maxlength="40" value="" /> </p> <input type="submit" name = "submit" value="Go!" /> </form>

3. Crearea unor checkbox-uri


<input type="checkbox" name="languages" value="csharp" />C#<br /> <input type="checkbox" name="languages" value="jscript" />JavaScript<br /> <input type="checkbox" name="languages" value="perl" />Perl<br /> <input type="checkbox" name="languages" value="php" />PHP<br />

4. Multiple select box


<select name="languages" multiple="multiple"> <option value="csharp">C#</option> <option value="jscript">JavaScript</option> <option value="perl">Perl</option> <option value="php">PHP</option> </select>

5.
<?php if (isset($_POST['submit'])) {

14

smaranda.belciug@inf.ucv.ro
echo "You like the following languages:<br />"; foreach($_POST['languages'] AS $language) echo "$language<br />"; } ?> <form action="multiplevalueexample.php" method="post"> What's your favorite programming language?<br /> (check all that apply):<br /> <input type="checkbox" name="languages[]" value="csharp" />C#<br /> <input type="checkbox" name="languages[]" value="jscript" />JavaScript<br /> <input type="checkbox" name="languages[]" value="perl" />Perl<br /> <input type="checkbox" name="languages[]" value="php" />PHP<br /> <input type="submit" name="submit" value="Go!" /> </form>

15

Você também pode gostar