Listing du fichier l2a_tp3.php avec syntaxhighlighter
<?php # (gH) -_- l2a_tp3.php ; TimeStamp (unix) : 31 Mars 2013 vers 12:08 error_reporting(E_ALL | E_NOTICE | E_STRICT) ; include("std.php") ; include("l2a_inc.php") ; $numTp = 3 ; debutPageTp($numTp) ; ## ------------------------------------------------------------------------------------------- sdl(3) ; echo cmt(' pour afficher toutes les solutions : l2a_tp'.$numTp.'.php?solutions=1') ; sdl(3) ; ## ------------------------------------------------------------------------------------------- debutSection() ; $tableauDesRubriques = array() ; $idr = 0 ; $idr++; $tableauDesRubriques[$idr] = "Objets en PHP" ; $idr++; $tableauDesRubriques[$idr] = "La structure de données ".b("\"pile\"")." version 3" ; $idr++; $tableauDesRubriques[$idr] = "PHP et histogrammes avec JPGRAPH" ; $idr++; $tableauDesRubriques[$idr] = "PHP, MySQL et histogrammes" ; $idr++; $tableauDesRubriques[$idr] = "Ecrire du PDF avec PHP" ; $idr++; $tableauDesRubriques[$idr] = "Lire des fichiers Excel avec PHP" ; $idr++; $tableauDesRubriques[$idr] = "Afficher du code PHP " ; $idr++; $tableauDesRubriques[$idr] = "Afficher/masquer des solutions avec Javascript" ; $idr++; $tableauDesRubriques[$idr] = "PHP, XML et DOM" ; $idr++; $tableauDesRubriques[$idr] = "PHP, XML et Ajax" ; $tdmCRLM = new tdm($tableauDesRubriques) ; $tdmCRLM->titre() ; $tdmCRLM->menu("oui","oui","nou") ; pvide() ; p() ; echo "Il est possible d'afficher toutes les solutions via ".href("l2a_tp$numTp.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou").". " ; finp() ; finSection() ; debutSection() ; $numExo = 0 ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Objets en PHP ## ------------------------------------------------------------------------------------------- blockquote() ; blockquote() ; p("texte") ; echo "Implémenter une classe d'objets Personnes avec nom et prénom puis deux sous-classes Producteurs et Artistes de Personnes, " ; echo " avec Acteurs et MetteursEnScène comme sous-classes d'Artistes qui incluent respectivement une année de naissance et une " ; echo " liste de films. " ; echo "On se servira des tables vues à l'".href("l2a_tp2.php?solutions=1#tdm6","exercice 6","grouge nou")." du TP2 pour saisir quelques personnes." ; echo " Est-ce une bonne idée de séparer les classes Acteurs et MetteursEnScène ?" ; finp() ; p("texte") ; echo b("Remarque :")." on viendra ajouter des propriétés getAnNaissanceFromTable, getListeFilmsFromTable etc. " ; finp() ; /* p("texte") ; echo "Ecrire ensuite un formulaire en PHP conceptuel qui reproduit le code XHTML suivant et implémenter le programme " ; echo " correspondant à l'attribut ".b("action").". " ; echo " La page Web correspondante est ".href("artform.php")."." ; finp() ; pre_fichier("artform.txt","cadre") ; */ finblockquote() ; solution($numExo,$numTp) ; p("texte") ; echo "Consulter ".href("artistes.php")." et son code-source via le lien en bas de la page affichée pour la définition et l'utilisation " ; echo " de la classe d'objets ".b("Personnes").". " ; finp() ; /* p("texte") ; echo "Pour reproduire le formulaire, voir son ".href("montresource.php?nomfic=artform.php","code-source","gbleu nou")." numéroté, soit l'extrait de code suivant :" ; finp() ; pre_fichier("artform_extrait.txt","cadrejaune") ; */ finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # La structure de données ".b("\"pile\"")." version 3" ; ## ------------------------------------------------------------------------------------------- blockquote() ; blockquote() ; p("texte") ; echo "Reprendre l'implémentation ligne de commande d'une pile en programmation objets. " ; echo " Voici comment on voudrait l'utiliser :" ; finp() ; pre_fichier("pilev3_demo.php","cadrebleu") ; finblockquote() ; solution($numExo,$numTp) ; pre_fichier("pilev3.php","cadre") ; finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP et histogrammes avec JPGRAPH ## ------------------------------------------------------------------------------------------- blockquote() ; blockquote() ; p("texte") ; echo "Produire avec PHP un histogramme des fréquences relatives associées aux valeurs 3 6 11 5 " ; echo " pour les jours lundi, mardi, jeudi et vendredi. Il s'agit de km parcourus par un " ; echo b("google car").". On essaiera de trouver plusieurs solutions pour construire la bonne URL. " ; echo " Voici ce qu'on doit obtenir :" ; finp() ; p() ; nbsp(7) ; $url = "../jphistopct.php?vdata=3_6_11_5&xmrks=Lundi_Mardi_Jeudi_Vendredi&titr=Google%20car" ; echo href($url,img($url,"google car","300")) ; finp() ; p() ; echo "Au passage, quel est code PHP conceptuel pour afficher cette image cliquable ?" ; finp() ; finblockquote() ; solution($numExo,$numTp) ; p("texte") ; echo "Une première solution consiste à construire l'URL «à la main» à partir de l'adresse " ; echo href("../jphistopct.php","jphistopct.php").". " ; echo " Une seconde solution est d'utiliser deux tableaux contenant respectivement les kilomètres et les jours " ; echo " avant de construire l'URL à partir d'une boucle sur les tableaux. " ; echo " Une troisième solution est d'utiliser des chaines de caractères des valeurs par copier/coller de l'énoncé et la fonction " ; echo b("mot")." de strfun.php utilisé par std.php ; " ; echo " enfin une quatrième est d'utiliser un tableau associatif. C'est à vous de choisir. Dans tous les cas, on doit " ; echo " aboutir à la même URL. Voici le lien de la solution : ".href("gcar.php")." et son " ; echo href("montresource.php?nomfic=gcar.php","code-source").". L'URL est donc " ; finp() ; pre_fichier("gcar_url.txt","cadrebleu") ; p("texte") ; echo "Dans la solution, le code PHP est conceptuel, l'affichage de l'image cliquable se réduit donc à " ; finp() ; pre_fichier("gcar_php.txt","cadrejaune") ; finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP, MySQL et histogrammes ## ------------------------------------------------------------------------------------------- blockquote() ; blockquote() ; p("texte") ; echo "On voudrait connaitre l'histogramme des fréquences relatives des personnes des divers " ; echo " niveaux d'étude de la table ".href("../Datasets/elf.htm","ELF")." qui est dans la base statdata." ; finp() ; p("texte") ; echo "Généraliser ensuite à un champ quelconque de modalités dans une table, avec un tableau des labels des " ; echo " modalités. Par exemple on utilisera ".b('histo("SEXE","ELF",array(0=>"Homme",1=>"Femme")')." pour avoir " ; echo " les effectifs relatifs du code-sexe des personnes de la table. On vérifiera que le code suivant fournit " ; echo " aussi un histogramme :" ; finp() ; pre_fichier("histotitanic.txt","cadre") ; p("texte") ; echo " La table citée fait référence aux données ".href("../Datasets/titanic.htm","TITANIC")." qui est aussi dans la base statdata." ; finp() ; finblockquote() ; solution($numExo,$numTp) ; p("texte") ; echo "Il s'agit en fait de l'".href("tds.php#histo","exercice 16","gvertf nou")." de notre cours sur la " ; echo href("pdc.php","technologie internet","gbleuf nou")." dont la solution est ".href("solutions.php#histo","ici","grouge nou").". " ; echo " On en profitera bien sûr pour regarder les autres exercices..." ; finp() ; finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Ecrire du PDF avec PHP ## ------------------------------------------------------------------------------------------- blockquote() ; blockquote() ; p("texte") ; echo "Produire un document PDF qui correspond à la page ".href("filmsartistes.html") ; echo " (vue à l'".href("l2a_tp2.php?solutions=1#tdm6","exercice 6","grouge nou")." du TP2) " ; echo " puis un autre un document PDF qui correspond à la page ".href("chanteurs.php") ; echo " (vue comme solution à l'".href("l2a_tp2.php?solutions=1#tdm4","exercice 4","grouge nou")." du même TP2)." ; finp() ; finblockquote() ; solution($numExo,$numTp) ; vnc() ; finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Lire des fichiers Excel avec PHP ## ------------------------------------------------------------------------------------------- blockquote() ; p("texte") ; echo "Lire le fichier ".href("elf.xls")." qui correspond aux données ".b("ELF")." de l'exercice 4 " ; echo " et produire un tableau des effectifs du code-sexe et l'histogramme associé. On utilisera une fonction " ; echo " suffisamment générale pour pouvoir l'appliquer à ".href("titanic.xls").". " ; finp() ; solution($numExo,$numTp) ; p("texte") ; echo "Consulter ".href("litelfxls.php").". " ; finp() ; finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Afficher du code PHP ## ------------------------------------------------------------------------------------------- blockquote() ; blockquote() ; p("texte") ; echo "Comment peut-on afficher du code PHP dont les lignes sont éventuellement numérotées ?" ; finp() ; finblockquote() ; solution($numExo,$numTp) ; p("texte") ; echo "Notre programme ".href("montresource.php?nomfic=montresource.php","montresource.php")." s'en occupe très bien..." ; finp() ; finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Afficher/masquer des solutions avec Javascript ## ------------------------------------------------------------------------------------------- blockquote() ; blockquote() ; p("texte") ; echo "Expliquer comment les solutions sont affichées ou masquées dans cette page." ; finp() ; finblockquote() ; solution($numExo,$numTp) ; p("texte") ; echo "Chaque page d'exercices charge ".href("montresource.php?nomfic=l2a_tp.js","l2a_tp.js")." qui, " ; echo " lorsqu'on clique sur le bouton solution, permute les styles " ; echo b("invisible")." et style ".b("visible")." pour l'élément ".b("<div>")." qui contient le texte de la solution. " ; echo " Au passage, chaque division solution de l'exercice est numérotée, donc on ne montre que la solution considérée. " ; echo " Par contre, si utilise le bouton général du haut de la page, c'est PHP qui met le style ".b("visible")." par défaut " ; echo " pour toutes les solutions." ; finp() ; finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP et DOM ## ------------------------------------------------------------------------------------------- blockquote() ; blockquote() ; p("texte") ; echo "Reproduire le formulaire suivant en PHP conceptuel et son action " ; finp() ; blockquote() ; form("genereprotxml.php") ; table(1,7,"collapse jaune_pastel") ; tr() ; th("C","bleu_pastel") ; input_submit("générer","","bouton_fin orange_pastel") ; finth() ; th() ; echo "Identifiant" ; finth() ; th() ; echo "Séquence" ; finth() ; th() ; echo "Classe" ; finth() ; th() ; echo "Longueur" ; finth() ; fintr() ; $tabLet = array("non utilisé","i","s","c","l") ; for ($idl=1;$idl<=2;$idl++) { tr() ; td() ; if ($idl==1) { echo "Elément" ; } else { echo "Attribut" ; } ; # finsi fintd() ; for ($idc=1;$idc<=4;$idc++) { td("C") ; $onoff= "" ; if ($idl==1) { $onoff="checked" ; $laval = "e" ; } ; if ($idl==2) { $onoff="" ; $laval = "a" ; } ; input_radio($tabLet[$idc],$laval,"","",$onoff) ; fintd() ; } ; # fin pour idc fintr() ; } ; # fin pour idl fintable() ; finform() ; finblockquote() ; p("texte") ; echo "Au fait, que génère ce formulaire ? " ; finp() ; finblockquote() ; solution($numExo,$numTp) ; p("texte") ; echo "Voir la ".href("../Webrd/bioinfxml.php#stockage","fin","grouge nou")." de la section 1 de la page " ; echo " ".href("../Webrd/bioinfxml.php","bioinfxml.php","gbleu nou").". " ; finp() ; p("texte") ; echo "Le formulaire génère un fichier XML qui contient la séquence Fasta d'une protéine, c'est-à-dire la liste de ses acides aminés. " ; echo " Suivant ce qui est cliqué, on produit des éléments ou des attributs pour stocker les informations. " ; finp() ; finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP, XML et Ajax ## ------------------------------------------------------------------------------------------- blockquote() ; blockquote() ; p("texte") ; echo "Réaliser la solution AJAX proposée en fin d'exercice ".href("l2a_tp2.php?solutions=1#tdm11","11","grouge").". " ; finp() ; finblockquote() ; solution($numExo,$numTp) ; vnc() ; finsolution() ; finblockquote() ; ## ------------------------------------------------------------------------------------------- finPageTp($numTp) ; # contient finSection() et finPage() ; la fonction est dans l2a_inc.php ?>La coloration syntaxique est réalisée par : SyntaxHighlighter.
Si vous préférez, vous pouvez utiliser celle de geshi ou même celle construite autour de la fonction highlight_file.
Retour à la page principale de (gH)