Valid XHTML     Valid CSS2    

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&nbsp;?" ;
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&ecirc;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&nbsp;:" ;
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&nbsp;" ;
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 &laquo;en image&raquo; (il faut cliquer sur l'image pour voir l'image en grand)&nbsp;:" ;
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&nbsp;:" ;
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&nbsp;" ;
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)&nbsp;?" ;
00230     echo
" Est-ce que "
.href("stdphp.zip")." est un framework de développement&nbsp;?" ;
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&ecirc;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&nbsp;" ;
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&ecirc;tre \"surgissante\". On pourra utiliser Jquery. " ;
00346     echo
" Cliquer à nouveau sur l'image devra fermer la nouvelle fen&ecirc;tre." ;
00347     echo
" Voici ce qu'on veut obtenir &laquo;en image&raquo; (il faut cliquer sur l'image pour voir l'image \"surgir\" en grand et recliquer pour la fermer)&nbsp;:" ;
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&ecirc;me... ["
.href("http://herverenault.fr/miscellan%C3%A9es/fancyZoom","suite")."]. " ;
00367     
finp() ;
00368     
00369     
p
("texte") ;
00370     echo
"Il faut bien s&ucirc;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&nbsp;:" ;
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 gH    Retour à la page principale de   (gH)