Mangeur de cigogne Hébergement du site en PHP et Mysql par WDMédia-hébergement
Vous aussi adpotez les éléPHPants de Vincent Pontier !
CONCOURS
 
 
PLUS DE PHP
 
 
PLUS DE JAVASCRIPT
 
COMMENT CA MARCHE
 
 
EXPLIQUE-MOI
 
 
NEWS LETTER
 

 
PARTENAIRES
 
Découvrez scriptsphp.org
Découvrez phpteam.net
Tout sur les expressions régulières
IE sucks :-)
 
DESIGN DU SITE
 
Le Script de noël - Hymne à mon bô saPHPin - 26/12/2005 à 10:40:31  
posté par : Microtom

Bonjour à tous

Voilà, histoire de ne pas vous donner un script tout fait qu'il suffirait de recopier bêtement, le script qui suit se veut simple, voire simpliste, aborde différents thèmes, et est largement commenté. Il dispose de tous les liens nécessaires vers les documentations concernées (HTML, CSS, PHP), sans tomber dans les spécifications directement qui semblent rebuter pas mal de monde (ce qui est un tord). Il est bien évident qu'on aurait pu résumer voire condenser un tel script, mais je vous laisse transformer le tout en fonction, voire vous amuser à la POO avec, pourquoi pas. Le résultat escompté étant un sapin vert (même le tronc, mais à vous de le rendre marron si vous le souhaitez), muni de guirlandes, de boules (changeant de couleur au survol de la souris), le tout sans aucune erreur HTML, CSS ni PHP. bref, un exemple de rendu valide et méritant de pouvoir afficher les logos du W3c.


//MonBoSaPHPin.php
//Définition du doctype
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr" id="noel">
<!-- Ouverture et définition de la tête du document
<head>
	<!-- Définition du titre apparaissant dans le bord haut ou l'onglet de votre navigateur-->
	<title>Bon beau saPHPin</title>
	<!-- Indication du charset utilisé dans cette page>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<!-- Définition des styles>
	<style type="text/css" media="screen">
	<!--
	body{	
		background-color:white;
		letter-spacing:1pt;
		word-spacing:1pt;
		color:green;
	}
	p{
		background-color:inherit;
		text-align:center;
		color:black;
	}
	a{
		text-decoration:none;
		color:blue;
		background-color:inherit;
	}
	a:hover {
		color:red;
		background-color:inherit;
	}
	-->
	</style>
<!-- Fermeture de la tête du document -->
</head>
<!-- Ouverture du corps du document -->
<body>
<!-- On met le contenu dans une balise de bloc, ici p -->
<p>
<!-- Ouverture  de la balise html, remarquez le changement des caractères indiquant un commentaire en HTML <!--  --> et en PHP // ou /* */-->
<?php
// On veut que toutes les erreurs PHP soient indiquées
ini_set('error_reporting', E_ALL);

// On veut que toutes les erreurs PHP s'affichent sur le script
ini_set('display_errors', TRUE);

// On définit le bord gauche du sapin soit /
$gauche=chr(47);
// La signification des nombres contenus dans la fonction chr() est à chercher sur cette page.
// On définit le bord droit du sapin soit \
$droite=chr(92);

// On définit l'intérieur du sapin avec
	//le vide
	$space=chr(96);

	//les boules sous forme de lien histoire de ne pas rester dans la monotonie
	$boule="<a href=\"#\" title=\"boule\">o</a>";

	//Les guirlandes
	$guirlande="*";

	//la hauteur du sapin, dans ce cas, le nombre d'étages
	$etage=3;

//on initialise la variable sapin en définissant le sommet de celui-ci
$sapin=$gauche.$droite."<br/>\n";

/* Une jolie boucle qui part de 1 (car le sommet du sapin est déjà défini)
et va jusqu'au nombre maximal d'étages possibles.
Remarquez l'indentation au passage qui permet de rendre
l'ensemble plus lisible dans de telles structures. */
for ($i=1;$i<=$etage;$i++){
	/* On définit une variable temporaire $sapintmp qui nous servira à la fin
	de la construction du sapin; Ici elle commence par le bord gauche du sapin. */
	$sapintmp=$gauche;
	for($j=0;$j<$i;$j++){
		//je vous laisse découvrir la signification de % qui est un opérateur arithmétique
		if($j%2==0){
			// remarquez l'utilisation de .= qui est un opérateur d'assignation au même titre que =
			$sapintmp.=$guirlande;
			//On définit une autre variable utilisée juste pour effectuer une autre comparaison
			$h=$j+1;
			if($h<$i){$sapintmp.=$boule;}
		}
		//On définit le cas par défaut si la condition précédente n'est pas vérifiée
		else{$sapintmp.=$space;}
	}
	// Notre variable temporaire se termine par le bord droit du sapin
	$sapintmp.=$droite;
	// On assigne à notre variable $sapin le contenu de notre variable temporaire. 
	$sapin.=$sapintmp."<br/>\n";
	if($i==$etage){
		/* Nous nous trouvons donc à l'étage inférieur de notre sapin,
		il faut donc en récupérer sa longueur afin de pouvoir connaitre
		la taille de la dernière ligne, d'où l'utilisation de notre
		variable temporaire */
		$dernier=strlen($sapintmp);
		//echo $dernier." ".$etage." ".$sapintmp."<br/>";
	}
//On réinitialise la variable temporaire
$sapintmp="";
}

/* Le bas du sapin matérialisé avec des underscores
et d'une longueur dépendant de celle du niveau précédent
tout en tenant compte des bords du sapin.*/
$sapin.=$gauche.str_repeat(chr(95),$dernier-1).$droite."<br/>\n";

// On définit le tronc de notre saPHPin
$sapin.="||";
echo $sapin;
// On ferme la balise PHP
?>
<!-- On ferme les tags à la fin du fichier -->
</p>
</body>
</html>

j'ai oublié un certains nombre de choses : je n'ai pas expliqué l'usage de \n ni la concaténation.. mais bon, ça allait devenir franchement illisible à force :). Et si je me suis loupé quelque part, c'est à l'insu de mon plein gré :]

Sur ce, bons réveillons !
L'Equipe de PHPDébutant



www.phpdebutant.org © 2008 - L'équipe de phpDebutant - Hébergement : WDMédia-hébergement
DEBUTEZ !
 
  0.  Introduction
  1.  Afficher une phrase ou une image
  2.  Afficher la date et l'heure
  3.  PHP dans du code HTML
  4.  La concaténation
  5.  Récupérer les valeurs d'un formulaire
  6.  Les structures de contrôle
  7.  Ecrire et lire dans un fichier texte
  8.  Les fonctions utilisateurs
  9.  Les variables d'environnement
  10.  Quelques fonctions utiles
  11.  SQL/MySQL (Create, Alter & Drop)
  12.  SQL/MySQL (Insert et Select)
  13.  SQL/MySQL (Delete et Update)
  14.  SQL/MySQL (Where)
  15.  Fonctions PHP pour mySQL
  16.  Interroger une table MySQL
  17.  Alimenter une ou plusieurs tables mySQL
  18.  Les pseudos-frames
  19.  Les sessions php4
  20.  Affichage page par page
  21.  Images dynamiques
  22.  Ca marche pas ?
  23.  Variables globales à OFF
  24.  Les variables dynamiques