Vous êtes sur la page 1sur 3

Cours Systme Web PHP Corrig TD5 PHP, un langage de programmation

14 novembre 2005

1 2

Introduction Bases
1. f u n c t i o n b i s s e x t i l e ( $a ) { ( $a%4==0) { ( $a%100==0) { ( $a%400==0) return ;

if

} }

if true else r e t u r n false ; } else r e t u r n true ; else r e t u r n false ;

if

2. f u n c t i o n f a c t o r i e l l e ( $n ) { $ r e s u l t =1; ( $ i =1; $ i<=$n;++ $ i ) { $ r e s u l t = $ i ; } return $result ; }

for

3. f u n c t i o n f a c t o r i e l l e ( $n ) { ( $n<=0) return 1;

if else

r e t u r n $n f a c t o r i e l l e ( $n 1);

4.  Il faut passer par une variable intermdiaire pour changer.  Les arguments de la fonction tant passs par dfaut par valeur, les changements ne sont pas rpercuts sur les variables sur laquelle la fonction est appele.  f u n c t i o n echange (&$a ,&$b ) { $temp=$b ; $b=$a ; $a=$temp ; }

Interpolation
1. $a =42;

echo 2. echo

"J ' a i $a ans " ; "J ' a i " . $a . " ans " ;

Cette mthode est plus gnrale (on peut faire des calculs dans la concatnation), mais moins concise. 3. l'intrieur de guillemets simples, aucune interpolation de variable n'est eectue. De plus, les seuls caractres spciaux l'intrieur de guillemets simples sont \' et \\ (par exemple, \n n'est pas un caractre spcial l'intrieur de guillemets simples).

Manipulation de chanes de caractres

f u n c t i o n r e m p l a c e ( $a , $b , $c ) { $ p o s i t i o n= ( $c , $a , 0 ) ; ( $ p o s i t i o n !== ) { /

while

strpos

false

( $position ) marcherait comme

ou pas

( $ p o s i t i o n != f a l s e ) car strpos peut

ne 0

renvoyer

indice

valide

} r e t u r n $c ;

$c= ( $c , 0 , $ p o s i t i o n ) . $b . $ p o s i t i o n= ( $c , $a , $ p o s i t i o n+

substr

strpos

substr ( $c , $ p o s i t i o n+strlen ( $a ) ) ; strlen ( $b ) ) ;

Production de code HTML

f u n c t i o n t a b l e _ m u l t i p l i c a t i o n ( $n ) { "<t a b l e >" ; "<c a p t i o n >Table de m u l t i p l i c a t i o n de 1 $n</c a p t i o n >" ; "<t r >" ; "<th></th>" ; ( $ i =1; $ i<=$n ; $ i=$ i +1) { "<th>$ i </th>" ; } "</t r >" ; ( $ i =1; $ i<=$n ; $ i=$ i +1) { "<t r ><th>$ i </th>" ; ( $ j =1; $j<=$n ; $ j=$ j +1) { "<td>" . ( $ i $ j ) . "</td>" ; } "</t r >" ; } "</t a b l e >" ; }

echo echo echo echo for echo echo for echo for echo echo echo

Tableaux
1. f u n c t i o n a f f i c h e _ t a b l e a u ( $ a s s o c ) { "<t a b l e >" ; "<t r ><th>C l e f </th><th>Valeur </th></t r >" ; ( $ a s s o c a s $ c l e => $ v a l e u r ) { "<t r ><td>$ c l e </td><td>$ v a l e u r </td></t r >" ;

echo echo foreach echo

echo

"</t a b l e >" ;

2. f u n c t i o n a f f i c h e _ t a b l e a u ( $ a s s o c ) { "<t a b l e >" ; "<t r ><th>C l e f </th><th>Valeur </th></t r >" ; ( $ a s s o c a s $ c l e => $ v a l e u r ) { ( ( $valeur )) $ v a l e u r= (" , " , $valeur ) ;

echo echo foreach if is_array implode echo "<t r ><td>$ c l e </td><td>$ v a l e u r </td></t r >" ; } echo "</t a b l e >" ;

3. Tri par insertion : f u n c t i o n t r i _ i n s e r t i o n ( $tab ) { $N= ( $tab ) ; ( $ i =0; $ i <$N;++ $ i ) { ( $ j =0; $j <$ i ;++ $ j ) { ( $newtab [ $ j ]> $tab [ $ i ] ) ; }

count for for if break

for ( $k=$ i ; $k>$ j ;$k )


} } $newtab [ $ j ]= $tab [ $ i ] ;

$newtab [ $k ]= $newtab [ $k 1 ] ;

r e t u r n $newtab ;