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