Listing du fichier s1p4.php
00001 <?php
00002 # (gH) -_- s1p4.php ; TimeStamp (unix) : 28 Janvier 2013 vers 12:14
00003
00004 error_reporting(E_ALL | E_NOTICE | E_STRICT) ;
00005 include("std.php") ;
00006 include("../xmlstd.php") ;
00007 include("scripts_inc.php") ;
00008
00009 $numSerie = 4 ;
00010 debutPageExoScr1($numSerie) ;
00011
00012 ## -------------------------------------------------------------------------------------------
00013
00014 sdl(3) ; echo cmt(' pour afficher toutes les solutions : wedrd01.php?solutions=1') ; sdl(3) ;
00015
00016 ## -------------------------------------------------------------------------------------------
00017
00018 jsf("../js/jquery-1.8.3.min.js") ;
00019 debutSection() ;
00020
00021 $tableauDesRubriques = array() ;
00022 $idr = 0 ;
00023 $idr++; $tableauDesRubriques[$idr] = "PHP : commandes en session interactive" ;
00024 $idr++; $tableauDesRubriques[$idr] = "PHP exercices classiques" ;
00025 $idr++; $tableauDesRubriques[$idr] = "PHP : créer une miniature JPG en ligne de commande" ;
00026 $idr++; $tableauDesRubriques[$idr] = "PHP : archivage incrémental de fichiers XML" ;
00027 $idr++; $tableauDesRubriques[$idr] = "PHP vérification de données structurées en XML" ;
00028 $idr++; $tableauDesRubriques[$idr] = "Le PHP conceptuel (gH) est-il un framework de développement ?" ;
00029 $idr++; $tableauDesRubriques[$idr] = "Javascript : commandes en session interactive" ;
00030 $idr++; $tableauDesRubriques[$idr] = "Javascript exercices classiques" ;
00031 $idr++; $tableauDesRubriques[$idr] = "Javascript : zoom avec JQUERY" ;
00032 $tdmCRLM = new tdm($tableauDesRubriques) ;
00033 $tdmCRLM->titre() ;
00034 $tdmCRLM->menu("oui","oui","nou") ;
00035
00036 pvide() ;
00037
00038 p() ;
00039 echo "Il est possible d'afficher toutes les solutions via ".href("s1p$numSerie.php?solutions=1","?solutions=1","bouton_fin jaune_pastel nou").". " ;
00040 finp() ;
00041
00042 finSection() ;
00043
00044 debutSection() ;
00045 $numExo = 0 ;
00046
00047 ## -------------------------------------------------------------------------------------------
00048
00049 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP : commandes en session interactive
00050
00051 ## -------------------------------------------------------------------------------------------
00052
00053 blockquote() ;
00054
00055 p("texte") ;
00056 echo "Essayer en mode interactif avec ".b("php -a")." de donner la ou les instructions qui répondent aux " ;
00057 echo " mêmes questions que pour Rexx en mode interactif, ".href("s1p2.php#tdm4","exercice 4 de la série 2").". " ;
00058 finp() ;
00059
00060 solution($numExo) ;
00061
00062 p("texte") ;
00063 echo "Voici les commandes :" ;
00064 finp() ;
00065
00066 pre_fichier("demo_php.txt","cadrebleu") ;
00067
00068 finsolution() ;
00069
00070 finblockquote() ;
00071
00072 ## -------------------------------------------------------------------------------------------
00073
00074 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP exercices classiques
00075
00076 ## -------------------------------------------------------------------------------------------
00077
00078 blockquote() ;
00079
00080 p("texte") ;
00081 echo "Réaliser tous les exercices Php de " ;
00082 finp() ;
00083
00084 ul() ;
00085
00086 debutli() ; p() ;
00087 echo href("../internet/sen.php","mon cours de L3 DSCS")." ;" ;
00088 finp() ; finli() ;
00089
00090 debutli() ; p() ;
00091 echo href("../internet/tds.php#cours3","mon cours de Développement Web")."." ;
00092 finp() ; finli() ;
00093
00094 finul() ;
00095
00096 solution($numExo) ;
00097
00098 p("texte") ;
00099 echo "Ces exercices sont déjà tous corrigés " ;
00100 finp() ;
00101 ul() ;
00102
00103 debutli() ; p() ;
00104 echo href("../internet/sen.php","solutions pour le cours de L3 Sen")." ;" ;
00105 finp() ; finli() ;
00106
00107 debutli() ; p() ;
00108 echo href("../internet/solutions.php#cours3","solutions pour le cours de Développement Web")."." ;
00109 finp() ; finli() ;
00110
00111 finul() ;
00112
00113 finsolution() ;
00114
00115 finblockquote() ;
00116
00117 ## -------------------------------------------------------------------------------------------
00118
00119 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP : créer une miniature JPG en ligne de commande
00120
00121 ## -------------------------------------------------------------------------------------------
00122
00123 blockquote() ;
00124
00125 p("texte") ;
00126 $img1 = "grande.jpg" ;
00127 $img2 = "miniature.jpg" ;
00128 echo "Le fichier ".href($img1)." est une photo que l'on voudrait afficher avec d'autres photos sur une page Web. " ;
00129 echo " Le problème est que c'est un gros fichier et l'attribut ".b("width=")." pour l'élément ".b("img")." ne " ;
00130 echo " résoud pas ce problème (pourquoi ?). On voudrait générer en ligne de commande un fichier-miniature pour un tel fichier image/photo avec php. ";
00131 echo " Implémenter cela avec la possibilité de choisir le répertoire et la taille de l'image produite." ;
00132 echo " Voici ce qu'on veut obtenir «en image» (il faut cliquer sur l'image pour voir l'image en grand) :" ;
00133 finp() ;
00134
00135 p("texte") ;
00136 nbsp(15) ;
00137 echo href($img1,img($img2)) ;
00138 finp() ;
00139
00140 p("texte") ;
00141 echo "Remarque : on pourra utiliser REXX pour interfacer PHP. Le code HTML utilisé au final doit ressembler à" ;
00142 finp() ;
00143
00144 pre_fichier("demo_vignette_part.txt","cadrejaune") ;
00145
00146 solution($numExo) ;
00147
00148 p("texte") ;
00149 echo "Le fichier ".href("vignette.rex")." teste les paramètres et exécute ".href("vignette.php").". " ;
00150 finp() ;
00151
00152 pre_fichier("vignette.rex","cadrebleu") ;
00153 pre_fichier("vignette.php","cadrejaune") ;
00154 pre_fichier("vignette_demo.txt","cadre") ;
00155
00156 finsolution() ;
00157
00158 finblockquote() ;
00159
00160 ## -------------------------------------------------------------------------------------------
00161
00162 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP archivage incrémental de fichiers XML
00163
00164 ## -------------------------------------------------------------------------------------------
00165
00166 blockquote() ;
00167
00168 p("texte") ;
00169 echo "Implémenter une version PHP de la sauvegarde incrémentale de fichiers XML comme pour " ;
00170 echo href("s1p2.php#tdm7"," l'exercice 7 de la série 2")." . " ;
00171 finp() ;
00172
00173 solution($numExo) ;
00174
00175 consulter("archcd.php") ;
00176
00177 finsolution() ;
00178
00179 finblockquote() ;
00180
00181 ## -------------------------------------------------------------------------------------------
00182
00183 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # PHP vérification de données structurées en XML
00184
00185 ## -------------------------------------------------------------------------------------------
00186
00187 blockquote() ;
00188
00189 p("texte") ;
00190 echo "On dispose d'un fichier XML de données comme " ;
00191 echo href("demo.xml")." qui contient des données structurés de trois types : galerie (nom des colonnes), goupe et données :" ;
00192 finp() ;
00193
00194 pre_fichier("demo.xml","cadrebleu") ;
00195
00196 p("texte") ;
00197 echo " Sachant que la grammaire associée est ".href("galNgrDac.rnc") ;
00198 echo " convertir cette grammaire au format XSD puis écrire un programme PHP en ligne de commandes qui prend un fichier " ;
00199 echo " passé en paramère, teste la structure du fichier XML puis sa validité par rapport à la grammaire et qui, en cas de validité, " ;
00200 echo " produit les trois fichiers de données correspondants de type .gal, .ngr et .dac. " ;
00201 finp() ;
00202
00203 p("texte") ;
00204 echo "Voici le contenu de ces trois fichiers pour l'exemple fourni " ;
00205 finp() ;
00206
00207 pre_fichier("demo.gal","cadre") ;
00208 pre_fichier("demo.ngr","cadrejaune") ;
00209 pre_fichier("demo.dac","cadrebleu") ;
00210
00211 solution($numExo) ;
00212
00213 vnc() ;
00214
00215 finsolution() ;
00216
00217 finblockquote() ;
00218
00219 ## -------------------------------------------------------------------------------------------
00220
00221 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Le PHP conceptuel (gH) est-il un framework de développement
00222
00223 ## -------------------------------------------------------------------------------------------
00224
00225 blockquote() ;
00226
00227 p("texte") ;
00228 echo "Qu'est-ce que le PHP conceptuel selon (gH) ?" ;
00229 echo " Est-ce que ".href("stdphp.zip")." est un framework de développement ?" ;
00230 finp() ;
00231
00232 solution($numExo) ;
00233
00234
00235 p("texte") ;
00236 echo "Le ".b("php conceptuel selon (gH)")." c'est du php sans aucune balise apparente, via un fichier de fonctions php " ;
00237 echo " regroupées dans un fichier nommé ".b("std.php")." ; les fonctions sont présentées ".href("../internet/stdphp.php","ici")." et " ;
00238 echo " font référence au fichier de styles nommé ".href("std.css").". Cette page est écrite en php conceptuel, comme le prouve " ;
00239 echo " le lien ".href("montresource.php?nomfic=s1p4.php","montresource").". " ;
00240 finp() ;
00241
00242 p("texte") ;
00243 echo "Il ne s'agit en aucun cas d'un framework de développement, juste une petite bibliothèque de fonctions pour développer tout en " ;
00244 echo " php sans repasser explicitement par html avec une volonté de fournir du XHTML Strict ou Trans." ;
00245 echo " On pourrait nommer cela du ".bleu("HTPP")." pour Html Tags Php Programming, mais cela ressemble trop à HTTP, tout comme " ;
00246 echo bleu("FTP")." pour Functional Tag Progamming ferait concurrence à File Transfer Protocol. Dommage pour ces sigles, " ;
00247 echo " il ne reste plus qu'à se rabattre sur ".href("http://www.google.fr/search?q=function%20tag%20mapping","FTM","gbleu nou")." comme dirait Google..." ;
00248 finp() ;
00249
00250 finsolution() ;
00251
00252 finblockquote() ;
00253
00254 ## -------------------------------------------------------------------------------------------
00255
00256 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Javascript : commandes en session interactive
00257
00258 ## -------------------------------------------------------------------------------------------
00259
00260 blockquote() ;
00261
00262 p("texte") ;
00263 echo "Essayer en mode interactif avec ".b("rhino")." de donner la ou les instructions qui répondent aux " ;
00264 echo " mêmes questions que pour Rexx en mode interactif, ".href("s1p2.php#tdm4","exercice 4 de la série 2").". " ;
00265 finp() ;
00266
00267 solution($numExo) ;
00268
00269 p("texte") ;
00270 echo "Voici la solution. On y voit clairement que Javascript utilise de nombreux objets." ;
00271 finp() ;
00272
00273 pre_fichier("demo_rhino.txt","cadrebleu") ;
00274 finsolution() ;
00275
00276 finblockquote() ;
00277
00278 ## -------------------------------------------------------------------------------------------
00279
00280 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Javascript exercices classiques
00281
00282 ## -------------------------------------------------------------------------------------------
00283
00284 blockquote() ;
00285
00286 p("texte") ;
00287 echo "Réaliser tous les exercices Javascript de " ;
00288 finp() ;
00289
00290 ul() ;
00291
00292 debutli() ; p() ;
00293 echo href("../internet/l2.php","mon cours élémentaire de L2")." ;" ;
00294 finp() ; finli() ;
00295
00296 debutli() ; p() ;
00297 echo href("../internet/l2a.php","mon cours avancé de L2")." ;" ;
00298 finp() ; finli() ;
00299
00300 debutli() ; p() ;
00301 echo href("../internet/sen.php","mon cours de L3 DSCS")." ;" ;
00302 finp() ; finli() ;
00303
00304 debutli() ; p() ;
00305 echo href("../internet/tds.php#cours3","mon cours de Développement Web")."." ;
00306 finp() ; finli() ;
00307
00308 finul() ;
00309
00310 solution($numExo) ;
00311
00312 p("texte") ;
00313 echo "Ces exercices sont déjà tous corrigés " ;
00314 finp() ;
00315 ul() ;
00316
00317 debutli() ; p() ;
00318 echo href("../internet/l2.php","solutions pour le cours de L2")." ;" ;
00319 finp() ; finli() ;
00320
00321 debutli() ; p() ;
00322 echo href("../internet/sen.php","solutions pour le cours de L3 Sen")." ;" ;
00323 finp() ; finli() ;
00324
00325 debutli() ; p() ;
00326 echo href("../internet/solutions.php#cours3","solutions pour le cours de Développement Web")."." ;
00327 finp() ; finli() ;
00328
00329 finul() ;
00330
00331 finsolution() ;
00332
00333 finblockquote() ;
00334
00335 ## -------------------------------------------------------------------------------------------
00336
00337 $tdmCRLM->afficheRubrique("oui") ; $numExo++ ; # Javascript : zoom avec Jquery
00338
00339 ## -------------------------------------------------------------------------------------------
00340
00341 blockquote() ;
00342
00343 p("texte") ;
00344 echo "Reprendre l'exercice 3 : au lieu d'ouvrir l'image comme nouvelle page Web, il faut l'afficher dans une fenêtre \"surgissante\". On pourra utiliser Jquery. " ;
00345 echo " Cliquer à nouveau sur l'image devra fermer la nouvelle fenêtre." ;
00346 echo " Voici ce qu'on veut obtenir «en image» (il faut cliquer sur l'image pour voir l'image \"surgir\" en grand et recliquer pour la fermer) :" ;
00347 finp() ;
00348
00349 jsf("fancyzoom_simplified.js") ;
00350 js("$(document).ready(function() { $('a.zoom').fancyZoom({scaleImg: true, closeOnClick: true}); }); ") ;
00351
00352 blockquote() ;
00353 p() ;
00354 echo href("#vignette",img($img2,"mini"),"zoom") ;
00355 finp() ;
00356
00357 div("","vignette") ;
00358 echo img("moyenne.png") ;
00359 findiv() ;
00360 finblockquote() ;
00361
00362 solution($numExo) ;
00363
00364 p("texte") ;
00365 echo "La solution n'est pas de nous mais d'Hervé Renault, qui, lui-même... [".href("http://herverenault.fr/miscellan%C3%A9es/fancyZoom","suite")."]. " ;
00366 finp() ;
00367
00368 p("texte") ;
00369 echo "Il faut bien sûr avoir une version de ".href("http://jquery.com","jquery")." fonctionnelle..." ;
00370 finp() ;
00371
00372 p("texte") ;
00373 echo "En deux mots, il faut que le code suivant soit exécuté" ;
00374 finp() ;
00375
00376 pre_fichier("demo_zoom.txt","cadrebleu") ;
00377
00378 p("texte") ;
00379 echo " pour une partie de code html comme :" ;
00380 finp() ;
00381
00382 pre_fichier("demo_zoom_part.txt","cadrebleu") ;
00383
00384 p("texte") ;
00385 echo "Tout le travail est donc fait par le plugin " ;
00386 echo href("http://www.dfc-e.com/metiers/multimedia/opensource/jquery-fancyzoom/","fancy_zoom")." de jQuery, " ;
00387 # href("http://archive.plugins.jquery.com/project/jquery_fancy_zoom","fancy_zoom")." de jQuery, " ;
00388 echo " avec la modification mineure suivante pour masquer la croix de fermeture :" ;
00389 finp() ;
00390
00391 pre_fichier("fancyzoom_simplified.js","cadrejaune") ;
00392
00393 finsolution() ;
00394
00395 finblockquote() ;
00396
00397 ## -------------------------------------------------------------------------------------------
00398
00399 finPageExercices($numSerie) ; # contient finSection() et finPage() ; la fonction est dans webrd_inc.php
00400
00401 ?>
Pour ne pas voir les numéros de ligne, ajoutez &nl=non à la suite du nom du fichier.
Retour à la page principale de (gH)