<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>DESR4 - TP1</title>
		<style>
			body {
				width: 70%;
				margin: 0 auto;
				padding: 20px 0;
				margin-top: 5px;
				font-family: verdana, sans-serif;
			}

			h1 {
				text-align: center;
			}

			h3 {
				margin-bottom: 40px;
				margin-top: 25px;
				font-style: italic;
			}

			h2 {
				margin-top: 40px;
			}
		</style>
	</head>

	<body>
		<h1>DESR4 - TP1 : Initiation au langage PHP</h1>
		<h3><a href="code-source.txt">[TXT] Code source</a></h3>

		<?php	// Cette balise ouvrante permet de marquer le début du code php
			echo "<p>Test réussi</p>";	// On effectue un simple affichage, ajoutant ici un paragraphe dans le code HTML 
			echo date('d-F-Y G:i:s');	// On affiche la date et l'heure courante via la fonction date() définie dans PHP
			phpinfo(INFO_GENERAL);	// Cette fonction affiche toutes les caractéristiques concernant l'installation de PHP, avec un argument on limite l'affichage
		?> <!-- Cette balise fermante délimite le code php -->
	
		<h2>Exercice 1</h2>

		<h4>Calcul sur les variables</h4>

		<?php
			$TVA=0.196;	// Déclaration d'une variable 'TVA' égale à 0.196 représentant le taux de la TVA
			$prix=150;	// Déclaration d'une variable 'prix' représentant le prix d'un article
			$nombre=10;	// Déclaration d'une variable 'nombre' représentant le nombre total d'articles
			echo "<p>Prix total HT = ".$totHT=$prix*$nombre."€</p>"; // On affiche le résultat du calcul prix total HT précédé d'une phrase, le tout dans un paragraphe HTML
			echo "<p>Prix total TTC = ".$totTTC=$prix*$nombre*(1+$TVA)."€</p>"; // De même avec le prix total TTC
			echo "<p>Type(TVA) = ".gettype($TVA)."</p>"; // On affiche après une phrase le type de la variable 'TVA', le tout dans un paragraphe HTML
			echo "<p>Type(prix) = ".gettype($prix)."</p>"; // Idem avec la variable 'prix'
			echo "<p>Type(nombre) = ".gettype($nombre)."</p>"; // Idem pour 'nombre'
			echo "<p>Type(totHT) = ".gettype($totHT)."</p>"; // Idem pour 'totHT'
			echo "<p>Type(totTTC) = ".gettype($totTTC)."</p>"; // Idem pour 'totTTC'

		?>

		<h2>Exercice 2</h2>

		<?php
			$nbre=20;	// Déclaration d'une variable 'nbre' = à 20
			$somme=0;	// Initialisation d'une variable 'somme'
			for($i=1;$i<=$nbre;$i++) {	// Boucle FOR de i (1) à nbre (20) avec un pas de 1
				$somme+=$i;	// On ajoute i (1 puis 2 puis 3 puis 4 etc) à 'somme'
			}
			echo "<p>Somme = $somme</p>";	// On affiche enfin sous forme de phrase (balisée en HTML) le résultat de la somme des nombres de 1 à 20
		?>

		<h2>Exercice 3 : tableau</h2>

		<?php
			$notes=array(10,15,16,8,12,3);	// Déclaration d'un tableau 'notes' contenant 6 entiers
			for($i=0;$i<count($notes);$i++) {	// Boucle FOR de i (0) à [taille du tableau - 1] (5, soit la valeur de la dernière clé du tableau) avec un pas de 1
				echo "<p>".$notes[$i]."</p>"; // On affiche la valeur du tableau associée à la clé i (0 puis 1 puis 2 puis 3 etc)
			}
			$somme=0;	// Initialisation d'une variable 'somme'
			foreach($notes as $val) {	// Boucle FOREACH parcourant le tableau 'notes'. La valeur parcourue sera contenue dans la variable 'val'
				$somme+=$val;		// On ajoute 'val' à 'somme'
			}
			echo "<p>Moyenne = ".$somme/count($notes)."</p>";	// On affiche la moyenne des notes (soit la 'somme' divisée par la taille du tableau (count($notes)), soit le nombre de notes)
		?>

		<h2>Exercice 4 : tableau associatif</h2>

		<?php
			$sportifs=array(	// Déclaration d'un tableau associatif 'sportifs'
				"jason eaton" => "http://www.staderochelais.com/sites/staderochelais/files/imagecache/img_joueur_fiche/eaton_jason.jpg",
       			"Nick cummings" => "http://i.eurosport.com/2014/06/20/1262278-27237166-1600-900.jpg",
       			"Erik Lund"=>"http://www.bo-pb.com/mediatheque/photos/DA5D8056.jpg",
       			"Adam Kleeberger" => "http://static.lexpress.fr/medias/1514/775382.jpg",
       			"Daniel Herrero"=>"http://2.bp.blogspot.com/-TJJ94Kdye8Q/UDIcev8mOeI/AAAAAAAAB_4/4NcOZXi1UBE/s640/daniel-herrero.jpg");
			echo "<table>";		// On commence par "afficher" la balise ouvrante <table>, elle sera lue par le navigateur seulement la voyant comme du code HTML écrit de façon classique car c'est ainsi que PHP le renvoie dans ce fichier avec echo. NB: il est aussi possible de fermer la balise PHP, d'écrire de façon normale notre balise HTML, puis de rouvrir notre balise PHP... en général cette technique rend surtout le code très lourd pour n'ajouter qu'une ou deux balises HTML.
			foreach($sportifs as $key=>$val) {	// Boucle FOREACH parcourant le tableau 'sportifs'. Chaque clé et valeur parcourues seront respectivement stockées dans les variables 'key' et 'val'
				echo "<tr>";	// On affiche à chaque tour une balise HTML permettant de délimiter une première ligne
				echo "<td>$key</td>";	// Dans une première cellule (HTML) on affiche la valeur de clé (ici, le nom du joueur)
				echo "<td><img src=\"$val\" alt=\"Photo de $key\" style=\"width:20%;height:20%;\" /></td>";	// Dans une seconde cellule (HTML) on affiche une image en HTML dans la source est la valeur du tableau associatif
				echo "</tr>";	// On ferme la ligne
			}
			echo "</table>";	// Une fois la boucle finie, on peut fermer le tableau (HTML)
		?>

		<h2>Exercice 5 : les fonctions</h2>

		<?php
			function calcul_mensualite($capital,$tauxAnnuel,$duree,$tauxAssurance=0.0036) {		// On crée une fonction 'calcul_mensualite' acceptant comme arguments un capital, un taux annuel d'intérêts, une durée et un taux d'assurance annuel ayant une valeur de 0.0036 par défaut
				$nbMois=$duree*12;	// Déclaration de la variable 'nbMois' = à 12 fois la 'duree'
				$tauxMensuel=$tauxAnnuel/12;	// Déclaration d'un 'tauxMensuel' en fonction du 'tauxAnnuel'
				$tauxAssuranceMensuel=$tauxAssurance/12;	// Déclaration de la variable 'tauxAssuranceMensuel' en fonction de 'tauxAssurance'
				$coutAssurance=$capital*$tauxAssuranceMensuel;	// Calcul du 'coutAssurance' en fonction du 'capital' et du 'tauxAssuranceMensuel'
				$mensualite=($capital*$tauxMensuel)/(1-pow(1+$tauxMensuel, -$nbMois))+$coutAssurance;	// Calcul final de chaque 'mensualite'
				return "$mensualite";	// On retourne la variable 'mensualite' contenant la valeur calculée
			}
			echo "<p>Mensualité = ".calcul_mensualite(200000,0.0515,15)."</p>"; // On affiche le résultat du calcul de mensualité avec les paramètres capital=200000 (€), tauxAnnuel=0.0515 et duree=15 (ans)
			echo "<p>Mensualité = ".calcul_mensualite(200000,0.0515,25)."</p>"; // De même pour une duree de 25 ans
		?>

		<h2>Exercice 6 : tableau</h2>

		<?php
			$liste=array("Patrick Nollet/nono/jjjj", "Sophie Fonfec/fonfec/ssss", "Yves Adrouille-Toultan/adrouille/yyyy"); // On déclare une variable 'liste' = à un tableau dont le contenu est visible en argument de array()
			// la fonction explode(sep, str, nb) est une fonction permettant de séparer une chaine (str) en plusieurs sous-chaines (contenues dans un tableau). L'endroit où doit s'effectuer la séparation (délimiteur) est un caractère donné en premier argument (sep). On peut indiquer un nombre limittant le nombre de sous-chaines (nb), la dernière sous-chaine contiendra alors tout le reste
			echo "<table>";	// On commence un tableau HTML
			foreach($liste as $chaine) {	// Boucle FOREACH parcourant le tableau 'liste' contenant les chaînes à "éclater"
				echo "<tr>";	// A chaque tour de cette boucle on commence une ligne de tableau HTML
				foreach(explode("/", $chaine) as $val) {	// Boucle FOREACH imbriquée parcourant le tableau retourné par explode() appliqué à la variable 'chaine' qui est l'élément de 'liste' actuellement parcouru par la première boucle (le séparateur est le caractère / [slash])
					echo "<td>$val</td>";	// On affiche le contenu du premier élément obtenu après explode() dans une cellule (un tour de boucle imbriquée = une cellule)
				}
				echo "</tr>";	// Délimitation de la ligne (un tour de boucle = une ligne)
			}
			echo "<table>";	// Fin du tableau HTML une fois le tout parcouru
		?>
	</body>
</html>
