Invata PHPcu punctsivirgula.ro

1.
2. Instalare PHP
3. Ce inseamna PHP?
4. Notiuni de baza
5. Variabile. Constante
6. Vectori globali. Constante magice
7. Operatori
8. Structuri repetitive
9. Aplicatii: repetitive
10. Operatii cu vectori
11. Operatii cu siruri
12. Data si timp
13. Functii in PHP
14. Formulare
15. GET vs. POST
16.
17. Upload de fisiere
18. Headere
19. Cookies
C O N T I N U T
Tutorial PHP in limba romana.

Explicatii, exemple si aplicatii in PHP pentru incepatori


Aplicatii - Structuri repetitive    !  

Mai jos sunt prezentate cateva aplicatii legate de structurile repetitive. Sunt mai degraba portiuni de cod, care nu vor face decat sa va ajute sa va obisnuiti cu particularitatile limbajului PHP. Comentariile sunt binevenite.

Mihai a spus Aplicatie - 04.12.2009

De ce nu raspunde nimeni la comentarii? E un site parasit?
Oricum, daca e cineva:
Afisez select-box cu tarile si cineva le alege... cum fac sa ii citesc tara respectiva
adica sa dea click pe un buton send iar informatia sa ajunga ca mine sau la operator si sa ii citeasca Tara... apoi spre exemplu orasul

Alexandru a spus Aplicatie tara - 04.12.2009

Salut Mihai,

Ceea ce ai descris tu se poate realiza cu formulare. Sunt cateva exemple pe site care te-ar putea ajuta. Daca ai nevoie de mai multe informatii lasa un comentariu.

PS: comentariile sunt citite, toate (am primit si mail-ul tau). Raspunsurile, ca si lectiile/exemplele, se fac in functie de timpul liber :)


Adauga un comentariu la aceasta sectiune.

 


Cum afisez o lista de limbi sau de tari?

<?php
 
# va trebui sa avem lista de limbi/tari definita intr-un vector.
$countries = array( 
	'Romania',
	'France',
	'Bulgaria',
	'United Kingdom'
);
 
# preiau lungimea listei
$n = count( $countries );
 
# avand lungimea, folosesc o structura for pentru a afisa lista
echo '<ul>';
for( $i = 0; $i < $n; $i++ ) {
	echo '<li>', $countries[ $i ], '</li>'; # echo poate primi mai multi parametrii
}
echo '</ul>';
 
?>
Rezultat:
  • Romania
  • France
  • Bulgaria
  • United Kingdom


Cum afisez un select-box cu toate tarile?

<?php
 
# din nou, ne trebuie o lista de tari. Cel mai uzual pastram doar codul tarii, iar numele 
# il afisam doar. Astfel, optiunile vor avea ca "value" codul tarii iar ca "text" - numele.
 
$countries = array(
	'AF'=>'Afghanistan',
	'AL'=>'Albania',
	'DZ'=>'Algeria',
	'AS'=>'American Samoa',
	'AD'=>'Andorra',
	'AO'=>'Angola',
	'AI'=>'Anguilla',
	'AQ'=>'Antarctica',
	'AG'=>'Antigua And Barbuda',
	'AR'=>'Argentina',
	'AM'=>'Armenia',
	/* ... */
	'WS'=>'Western Samoa',
	'YE'=>'Yemen',
	'YU'=>'Yugoslavia',
	'ZM'=>'Zambia',
	'ZW'=>'Zimbabwe'
);
 
# avand un array asociativ, este mai dificil sa-i accesam elementele, asa ca nu vom 
# mai folosi for. Vom folosi in schimb un iterator
 
echo '<select name="tara">', "\n"; # afisez pe alt rand pentru a aseza  in pagina sursa HTML
foreach( $countries as $code => $name ) {
	echo '<option value="', $code, '">', $name, '</option>', "\n";
}
echo "</select>\n";
 
?>
Rezultat:



Cum preiau primul email valid introdus de un utiliator?

<?php
 
# presupunem ca exista mai multe textbox-uri intr-un formular, numite email[] 
$emails = $_POST[ 'email' ]; # pentru detalii despre $_POST vedeti lectia "Formulare"
 
# pentru teste se poate folosi: 
$emails = array( '123', 'zzz', 'test@site', 'test@test.com', 'aaa' );
 
# folosesc o variabila ce actioneaza ca un flag/switch
$gasit = false;
 
# preiau nr de email-uri
$n = count( $emails );
 
# plec de la primul email-uri
$i = 0;
 
while( $gasit == false && $i < $n ) {
	# verific fiecare email, pe rand
	if( strpos( $emails[ $i ], '@' ) !== false && 
	    strpos( $emails[ $i ], '.' ) !== false ) {
		# un email valid trebuie sa contina @ si un punct
		$gasit = true;
		echo 'Am gasit un email valid: ', $emails[ $i ], '<br />';
	}
	$i++; # cresc pe $i
}
 
# daca s-a ajuns la sfarsitul sirului de email-uri si $gasit este tot false
# inseamna ca nu exista nici un element valid
if( !$gasit ) echo 'N-am gasit nici un email valid!<br />';
 
?>

Rezultat:

Am gasit un email valid: test@test.com

Nota: se putea folosi si structura repetitiva for pentru ca se cunosteau dinainte numarul de pasi ce trebuiau efectuati. In schimb, folosind aceasta implementare, atunci cand se gaseste un email valid se opreste executia (se iese din bucla while), asadar codul ar putea fi mai performant decat in cazul folosirii for.

Spre exemplu, daca avem un vector cu 15 elemente, iar pe pozitia a doua se afla un email valid, atunci executia se termina dupa 2 pasi: la primul pas se verifica primul element care nu este valid, iar la al doilea, gasindu-se un email valid se iese din ciclul while (din cauza ca $gasit nu mai este false).