Vous êtes sur la page 1sur 375

QCM HTML Partie 1

1) Quel est l'attribut à inclure dans la balise BODY pour changer la couleur des
liens?
 LINK
 VLINK
 ALINK
 TEXT
2) Quel est l'attribut à inclure dans la balise BODY pour changer la couleur des
liens déjà visités?
 LINK
 ALINK
 TEXT
 VLINK
3) Que veut dire le mot HTML?
 Home Tool Markup Language
 Hyperlinks and Text Markup Language
 Hyper Text Markup Language
 Hyper Text machine Language
4) Quelle balise te permettra d'insérer correctement une image de fond dans ta page
HTML?
 <BODY BACKGROUND="image.gif">
 <IMG SRC="image.gif" BACKGROUND>
 <BACKGROUND IMG="image.gif">
 <IMG SRC="image.gif" TYPE="background">
5) Dans quel ordre devez-vous placer correctement les balises dans une page
HTML?
 <HTML><TITLE><TITLE><BODY></BODY></HTML>
 <HTML><TITLE></TITLE><BODY></BODY></HTML>
 <HTML><TITLE></TITLE><BODY></HTML>
 <HTML><HEAD></TITLE><BODY></BODY></HTML>
6) Quel attribut de la balise <BODY..> établit la couleur de fond d'une page web?
 BACKGROUND
 BACKCOLOR
 BGCOLOR
 BCOLOR
7) Parmi les choix suivants, lequel n'est pas un attribut de la balise <BODY>?
 BACKGROUND
 BGCOLOR
 TEXT
 FONT
8) Une paire de balises HTML doit être utilisé dans vos pages web, une au début et
l'autre sur la dernière ligne. De quelle paire s'agit-il?
 <HTML> et </HTML>
 <BODY> et </BODY>
 <HEAD> et </HEAD>
 <TITLE> et </TITLE>
9) La partie HEAD d'un fichier HTML contient. .
 Toutes les balises d'un fichier HTML
 Les balises du BODY
 La balise TITLE
 Aucune de ces réponses
10) Quand vous utilisez la balise <TITLE>, où est affiché le texte?
 Le titre est placé au début de la page HTML.
 Le titre est placé au début de chaque paragraphe.
 Le titre est affiché dans le haut des navigateurs.
 Toutes les réponses ci-dessus
11) Quelle est la balise encadrant les infomations qui ne seront pas éditées à l'écran:
 <HTML> et </HTML>
 <HEAD> et </HEAD>
 <TITLE> et </TITLE>
 <BODY> et </BODY>
12) La majorité des informations d'une page Web se trouve dans:
 La balise HEAD
 La balise TITLE
 La balise BODY
 La balise des commentaires <!-- ... -->
13) Indiquez une balise obligatoire pour fabriquer une page web?
 <HTML>
 <META>
 <A>
 <TABLE>
14) Si vous voulez utiliser une image comme fond d'écran, dans quelle balise devez-
vous l'inclure?
 <BKG>
 <HEAD>
 <BODY>
 <BACKGROUND>
15) Que signifie l'attribut BGCOLOR de la balise <BODY>?
 Couleur du texte.
 Couleur de l'arrière plan.
 Couleur de la cellule.
 Couleur des images.
16) Pour éviter que le fond de l'écran ne bouge avec le texte via la barre de
défilement, il faut utiliser ...
 BGPROPERTIES = "nomove"
 BGPROPERTIES = "stop"
 BGPROPERTIES = "stick"
 BGPROPERTIES = "fixed"
17) Un fichier HTML est:
 Un document texte
 Une présentation multimédia
 Un logiciel
 Une base de données relationnelle
18) Le HTML est une langage utilisé pour créer...
 Des images
 De l'audio
 Des vidéos
 Des pages web
19) Quand vous enregistrez vos pages HTML, quelle extension devez-vous utiliser?.
 txt.
 html
 .web.
 www
20) Quel organisme est responsable des standards du langage HTML?
 The World Wide Web Consortium
 Microsoft
 Netscape
 Intel

Réponses:
1–A 2–D 3–C 4–A 5–B 6–C 7–D 8–A 9–C 10 C
11 – B 12 – C 13 – A 14 – C 15 – B 16 – D 17 – A 18 – D 19 – B 20 - A

QCM HTML Partie 2


21) Quel est l'attribut à inclure dans la balise BODY pour changer la couleur des
liens?
 LINK="#RRVVBB"
 VLINK="#RRVVBB"
 ALINK="#RRVVBB"
 TEXT="#RRVVBB"
22) Quel est l'attribut à inclure dans la balise BODY pour changer la couleur des
liens déjà visités?
 LINK="#RRVVBB"
 VLINK="#RRVVBB"
 ALINK="#RRVVBB"
 TEXT="#RRVVBB"
23) Quelle est la bonne façon, selon les règles du langage HTML, de mettre de la
couleur jaune sur le fond de notre page Web?
 <BACKGROUND>yellow</BACKGROUND>
 <BODY COLOR="yellow">
 <BODY BGCOLOR="yellow">
 <BODY BGCOLOR="jaune">
24) Que veulent dire les lettres HTML?
 Hyper Text Markup Lingo
 Hyper Temporary Markup Language
 Hyper Text Marking Language
 Hyper Text Markup Language
25) Quel est l'ordre des balises de base d'un site web?
 <HTML> <HEAD> <TITLE></HEAD> </TITLE><BODY>
</BODY></HTML>
 <HTML> <HEAD> <TITLE> </TITLE></HEAD><BODY>
</BODY></HTML>
 <HTML> <HEAD> <TITLE> <TITLE><HEAD><BODY>
<BODY><HTML>
 <HTML> <HEAD> <TITLE> <BODY> </BODY></HTML>
26) L'attribut de la balise <BODY> pour la couleur de fond est. . .
 BACKCOLOR
 BGCOLOR
 BACKGROUND
 BCOLOR
27) Lequel de ces attributs n'est pas valables pour BODY?
 BACKGROUND
 ALINK
 COLOR
 BGCOLOR
28) Où sont normalement placées les balises <HTML> et </HTML> dans un
document HTML?
 N'importe où
 Dans l'entête <HEAD>
 Dans le corps <BODY>
 Au début et à la fin du document
29) Dans quelle paire de balises HTML trouve-t-on la majorité des autres balises qui
composent un document HTML?
 <HTML> et </HTML>
 <BODY> et </BODY>
 <HEAD> et </HEAD>
 <TITLE> et </TITLE>
30) Dans quelle paire de balises HTML place-t-on le texte qui doit apparaître dans la
barre colorée bleue des navigateurs?
 <HTML> et </HTML>
 <BODY> et </BODY>
 <HEAD> et </HEAD>
 <TITLE> et </TITLE>
31) La balise <HTML> doit être placée:
 Après la balise <TITLE> et avant la balise </BODY>
 Après la balise <HEAD> et avant la balise <TITLE>
 Après la balise <BODY> et avant la balise <ADDRESS>
 Au début et à la fin de tous les documents HTML
32) La balise TITLE doit se trouver à l'intérieur de:
 La balise HEAD
 La balise TITLE
 La balise BODY
 La balise des commentaires <!-- ... -->
33) Parmi les choix suivants, lequel est une balise obligatoire dans une page web?
 <HTML>
 <META>
 <A>
 <TABLE>
34) Pour insérer une image de fond, quelle instruction utilisera-t-on?
 <BODY IMG SRC = "Fichier.GIF">
 <IMG SRC = "Fichier.GIF">
 <BODY BACKGROUND = "Fichier.GIF">
 <BACKGROUND = "Fichier.GIF">
35) Quelle est la bonne façon de terminer un document HTML?
 <HTML>
 END <HTML>
 <\HT'ML>
 </HTML>
36) Pour le navigateur "Internet Explorer" de Microsoft, quel attribut de la balise
BODY peut-on utiliser pour contrôler la marge supérieure de la fenêtre
principale?
 <BODY LEFTMARGIN="n"...>
 <BODY TOPMARGIN="n"...>
 <BODY BOTTOMMARGIN="n"...>
 <BODY RIGHTMARGIN="n"...>
37) Le contenu d'une page Web est affiché:
 En temps réel
 Le plus rapidement possible
 Dans la fenêtre du navigateur
 Dans la liste de l'historique
38) La majorité des balises HTML ont la structure:
 <BALISE> ... <BALISE>
 <BALISE> ... <!BALISE>
 <BALISE> ... </BALISE>
 <BALISE1> ... <BALISE2>
39) Quel est le nombre limite d'ouverture de <BODY> possible dans un fichier html?
 4
 3
 2
 1
40) Qui est l'auteur ou le concepteur du langage HTML?
 Tim Berners-Lee
 La compagnie Microsoft
 La compagnie Netscape
 Le Worl Wide Web

Réponses
21 – A 22– B 23 – C 24 – D 25 – B 26 – B 27 – C 28 – D 29 – B 30 – D
31 – D 32 – A 33 – A 34 – C 35 – D 36 – B 37 – C 38 – C 39 – D 40 - A

QCM HTML Partie 3


41) Quelle balise de style physique te permettra d'avoir du texte en caractères
italiques dans tes pages HTML?
 <I>
 <ITALICS>
 <II>
 <ITALIQUE>
42) Quelle balise permet de souligner du texte?
 <B>
 <S>
 <I>
 <U>
43) Parmi les choix de style logique ci dessous, lequel te permettra de mettre en
italique le mot "Toujours"?
 <EM>Toujours</EM>
 <STRONG>Toujours</STRONG>
 <SUB>Toujours</SUB>
 <SUP>Toujours</SUP>
44) Les balises <TT> et <PRE> sont des exemples de balises de:
 Style forcé
 Style physique
 Style logique
 Style illogique
45) Que fait la balise <PRE>?
 Établit un préfixe pour le texte.
 N'est pas une balise de disposition de texte.
 Permet de respecter les retours et les espaces
 Permet de cacher le texte de l'internaute.
46) Quelle balise vous permet d'avoir une police de type dactylo (teletype)?
 <TT>
 <TELE>
 <TTYPE>
 <TELETYPE>
47) Quelle balise sert à mettre le texte comme il a été écrit dans "bloc-notes"?
 <TT>
 <SAMP>
 <Q>
 <PRE>
48) Quelle balise permet d'avoir du texte rayé dans un document HTML?
 <S>
 <U>
 <I>
 <B>
49) Laquelle de ces balises permet d'écrire la formule H2O?
 H<SUP>2</SUP>O
 H<SUB>2</SUB>O
 H<S>2</S>O
 H<I>2</I>O
50) Parmi les choix de style logique ci-dessous, lequel devrez-vous utiliser pour
placer un paragraphe en retrait - pas collé contre la marge de gauche?
 <INDENT> paragraphe </INDENT>
 <BR> paragraphe </BR>
 <BLOCKQUOTE> paragraphe </BLOCKQUOTE>
 <Q> paragraphe </Q>
51) Quel est le code HTML pour mettre un texte un peu plus petit?
 <S>
 <STRIKE>
 <SMALL>
 <PETIT>
52) Les balises <B> ... </B> permettent d'avoir du texte en...
 Gras
 Citation
 Interligne
 Italique
53) Quel est le rôle de la balise <U> ?
 barrer un texte
 écrire un texte souligné
 écrire un texte en gras
 écrire un texte plus grand
54) Pour obtenir des caractères les plus petits possibles (à partir d'une taille
normale), combien de fois doit-on utiliser la balise <SMALL>?
 3
 4
 1
 2
55) Quelle est la bonne façon d'écrire Ecole Secondaire
 <I><U>École Secondaire</I></U>
 </I></U> École Secondaire<I><U>
 <I><U> École Secondaire</U></I>
 <U><I> École Secondaire</U></I>
56) Parmi les choix de style logique ci dessous, lequel te permettra d'écrire du texte
avec une police non-proportionnelle de type "courrier"?
 <SAMP>Texte</SAMP>
 <EM>Texte</EM>
 <STRONG>Texte</STRONG>
 <CITE>Texte</CITE>
57) Avec les balises de style physique, quelle(s) balises(s) doit-on utiliser pour avoir la
taille la plus grande possible?
 <BIG>......</BIG>
 <BIGGER>......</BIGGER>
 <BIGGEST>......</BIGGEST>
 <BIG><BIG><BIG><BIG>......</BIG></BIG></BIG></BIG>
58) En temps normal, le caractère, ou chiffre, placé en indice a une taille plus petite
que le reste du texte, parmi les choix ci-dessous, lequel vous donnera un exposant
de taille identique au reste du texte dans l'exemple 2CO2.
 2CO<BIG>b<SUB>2</SUB></BIG>
 2CO<SUB><BIG>2</BIG></SUB>
 <BIG>CO<SUB>2</BIG></SUB>
 2CO<SUB><BIG>2</SUP></BIG>
59) Quelle balise est-il recommandée d'utiliser pour laisser son adresse personnelle
dans une page web?
 <ADDRESS>....</ADDRESS>
 <E-MAIL>...</E-MAIL>
 <PERSON>...</PERSON>
 <MAIL>...</MAIL>
60) Qu'arrivera-t-il si, de façon accidentelle, vous utilisez 2 fois de suite la balise
<I><I> pour mettre en italique un mot quelconque et que vous en fermez </I>
juste une?

 Le reste du texte sera rendu en italique.
 Rien ne s'affichera à cause de l'erreur.
 Le mot en question sera affiché avec un italique plus prononcé.

Réponses
41 – A 42 – D 43 – A 44 – B 45 – C 46 – A 47 – D 48 – A 49 – B 50 – C
51 – C 52 – A 53 – B 54 – D 55 – C 56 – A 57 – D 58 – B 59 – C 60 - B

QCM HTML Partie 4


61) Quelle balise de style physique te permettra d'avoir du texte en caractères gras
dans tes pages HTML?
 <BLD>
 <BB>
 <B>
 <BOLD>
62) Parmi les choix de style logique ci dessous, lequel te permettra de mettre en gras
le mot "Jamais"?
 <EM>Jamais</EM>
 <STRONG>Jamais</STRONG>
 <SUB>Jamais</SUB>
 <SUP>Jamais</SUP>
63) Parmi les choix de style logique ci dessous, lequel te permettra de mettre en rayé
les mots "École secondaire"?
 <EM>École secondaire</EM>
 <STRONG>École secondaire</STRONG>
 <SUB>École secondaire</SUB>
 <STRIKE>École secondaire</STRIKE>
64) Les balises <EM> et <STRONG> sont des exemples de balises de:
 Style forcé
 Style logique
 Style physique
 Style libre
65) L'application de "<I><B>texte</B></I>" rendra le mot "texte" en...
 Gras
 Italique
 Gras et Italique
 Illisible
66) Quel est le code HTML pour mettre un texte un peu plus grand?
 <SMALL>
 <S>
 <B>
 <BIG>
67) Quelle balise pouvez-vous utiliser pour libérer la marge de gauche si vous utilisez
une image de fond avec une partie à gauche plus foncée ou différente (Image de
fond de style spirale) du reste de l'image?
 EM>Texte</EM>
 <INDENT>Texte</INDENT>
 <CITE>Texte</CITE>
 <BLOCKQUOTE>Texte</BLOCKQUOTE>
68) Quelle balise est-il recoomandée d'utiliser pour laisser son adrresse de courrier
électronique dans une page web?
 <ADDRESS>....</ADDRESS>
 <PERSON>...</PERSON>
 <E-MAIL>...</E-MAIL>
 <MAIL>...</MAIL>
69) Avec "l'Explorateur Internet" de Microsoft, quelle balise ne mettra pas le texte
en italique?
 <EM>
 <I>
 <SAMP>
 <CITE>
70) Laquelle de ces balises permet d'écrire la formule E=MC2?
 E = MC<SUP>2</SUP>
 E = MC<SUB>2</SUB>
 E = MC<S>2</S>
 E = MC<I>2</I>
71) Les balises <I> ... </I> permettent d'avoir du texte en:
 Gras
 Citation
 Interligne
 Italique
72) Pour obtenir des caractères les plus grands possibles (à partir d'une taille
normale), combien de fois doit-on utiliser la balise <BIG>?
 1
 2
 3
 4
73) Quelle est la bonne façon d'écrire Ecole des Patriotes en plus d'être en gras?
 <I><U><B> École Secondaire</B></U></I>
 </I><B></U> École Secondaire<I><U></B>
 <B><I><U> École Secondaire</U></I></B>
 <B><U><I> École Secondaire</U></I></B>
74) Quelle(s) balise(s) peux-tu utiliser pour centrer approximativement un titre sans
utiliser les balises spécifiques des autres chapitres sur le langage HTML?
 <BLOCKQUOTE>....</BLOCKQUOTE>
 <TAB>....</TAB>
 Plusieurs fois <BLOCKQUOTE>.... et autant de fois </BLOCKQUOTE>
 <CITE>...</CITE>
75) Que fait la balise <TT>?
 Écrit avec une police à espacement constant.
 N'est pas une balise de disposition de texte.
 Permet de respecter les retours et les espaces
 Permet de cacher le texte de l'internaute.
76) Quelle balise peut-on utiliser pour avaoir la même police que dans "bloc-notes"?
 <EM>
 <TT>
 <SAMP>
 <Q>
77) En temps normal, le caractère, ou chiffre, placé en exposant a une taille plus
petite que le reste du texte, parmi les choix ci-dessous, lequel vous donnera un
exposant de taille identique au reste du texte dans l'exemple 2ab2
 2a<BIG>b<SUP>2</SUP></BIG>
 <BIG>2ab<SUP>2</BIG></SUP>
 2ab<SUP><BIG>2</BIG></SUP>
 2ab<SUP><BIG>2</SUP></BIG>
78) Avec les balises de style physique, quelle(s) balise(s) doit-on utiliser pour avoir la
taille la plus petite possible?
 <SMALL>......</SMALL>
 <SMALL>.<SMALL>......</SMALL></SMALL>
 <SMALLER>......</SMALLER>
 <SMALLEST>......</SMALLEST>
79) Parmi les choix ci-dessous, lequel devras-tu utiliser pour écrire l'expression
mathématique 234 = 4 096
 2<SUP>3<SUP>4</SUP></SUP> = 4 096
 2<SUP>3<SUB>4</SUB></SUP> = 4 096
 2<SUP><SUP>34</SUP></SUP> = 4 096
 <SUP>2<SUP>3<SUP>4</SUP></SUP></SUP> = 4 096
80) Qu'arrivera-t-il si, de façon accidentelle, vous utilisez 2 fois de suite la balise
<B><B> pour mettre plus foncé un mot quelconque et que vous en fermez </B>
juste une?
 Rien, le navigateur écrira la suite de façon normale.
 Le reste du texte sera rendu en gras.
 Rien ne s'affichera à cause de l'erreur.
 Le mot en question sera affiché avec un gras plus foncé.

Réponses
61 – C 62 – B 63 – D 64 – B 65 – C 66 – D 67 – D 68 – A 69 – C 70 – A
71 – D 72 – D 73 – A 74 – C 75 – A 76 – B 77 – C 78 – B 79 – A 80 - B

QCM HTML Partie 5


81) Quelle balise te permettra d'avoir l'en-tête le plus gros?
 <OL TYPE="1">
 <H6>
 <HEAD>
 <H1>
82) Quelle balise doit-on utiliser pour faire un changement de ligne?
 <BR>
 <HR>
 <UL>
 <LI>
83) Parmi les choix suivants, lequel donne la plus petite taille?
 <H1>
 <H6>
 <FONT SIZE=4>
 <FONT SIZE=6>
84) Quelle est la grandeur des lettres par défaut?
 <FONT SIZE=1>
 <FONT SIZE=2>
 <FONT SIZE=3>
 <FONT SIZE=4>
85) L'attribut de la balise <BODY> pour la couleur du texte par défaut est.
 TEXTE
 FACE
 FONT
 TEXT
86) Pour une balise imaginaire <HOHO>, que doit être la balise de fermeture?
 <\HOHO>
 </HOHO>
 <END/HOHO>
 <HOHO/>
87) Parmi les choix ci dessous, laquelle te permettra de séparer les paragraphes par
une ligne blanche?

 <P>
 <OL>
 <DT>
88) Si vous ne spécifiez aucune police spéciale à utiliser dans <FONT> ou
<BASEFONT> quelle police sera utilisée par défaut?
 La police "Times New Roman".
 La police "Arial".
 La police par défaut selon la version du navigateur.
 La page ne sera pas affichée - il y aura un message d'erreur
89) Si vous voulez avoir un paragraphe avec une police légèrement plus petite que les
autres, quelle balise HTML devez-vous alors utiliser?
 <SIZE="-1"> paragraphe </SIZE>.
 <TEXT="-1"> paragraphe </TEXT>.
 <FONT SIZE="-1"> paragraphe </FONT>.
 <FONT TEXT="-1"> paragraphe </FONT>.
90) Les paragraphes sont définis par la paire de balises:
 <P> ... <P>
 <P> ... </P>
 </P> ... <P>
 <P> ... <endP>
91) Une fin de ligne dans le langage HTML utilise la balise...
 <HR>
 <BR>
 <PR>
 <TR>
92) Parmi les choix ci-dessous, lequel devrez-vous utiliser pour placer un paragraphe
en retrait - pas collé contre la marge de gauche?
 <INDENT> paragraphe </INDENT>
 <BR> paragraphe </BR>
 <BLOCKQUOTE> paragraphe </BLOCKQUOTE>
 <Q> paragraphe </Q>
93) Parmi les choix ci-dessous, lequel vous permettra de centrer un en-tête de niveau
3?
 <CENTER><H3>Information HTML</H3></CENTER>
 <FONT ALIGN="center"><H3>HTML</H3></FONT>
 <MIDDLE><H3>Information HTML</H3></MIDDLE>
 <H3 ALIGN="center">Information HTML</H3>
94) Parmi les choix ci-dessous, lequel vous permettra de placer un paragraphe contre
la marge de droite?
 <TEXT ALIGN="right"> paragraphe </TEXT>.
 <BODY ALIGN="right"> paragraphe </BODY>.
 <ALIGN="right"> paragraphe </ALIGN>.
 <P ALIGN="right"> paragraphe </P>.
95) Parmi les choix de réponses, lequel est juste dans l'utilisation de la balise
<FONT>?
 <FONT FACE="Arial" SIZE=4 COLOR="#FFFFFF">
 <FONT FACE="A" SIZE=0 COLOR="bluish">
 <FONT FACE="Arial" SIZE=44 COLOR="#FFFFFF">
 <FONT FACE="Arial SIZE=4 COLOR=#FFFFFF">
96) Quelle est la différence entre la balise <P> et la balise <BR>?
 La balise <P> place le texte en retrait et pas la balise <BR>.
La balise <P> inclut une ligne vide lors du changement de ligne et pas la
balise <BR>.
 Vous devriez utiliser seulement la balise <P> et jamais la balise <BR>
 Rien, ils sont tous les deux identiques
97) Si vous voulez un paragraphe avec des caractères de couleur rouge, quelle balise
HTML débutera le paragraphe et quelle balise HTML se trouvera à la fin du
paragraphe?
 <FONT COLOR="red"> au début et </FONT> à la fin.
 <FONT="red"> au début et </FONT> à la fin.
 <TEXT COLOR="red"> au début et </TEXT> à la fin.
 <FONT COLOR="red"> au début et </FONT COLOR> à la fin.
98) Quelle est la plus grande taille que l'on peut obtenir avec la balise <FONT>?
 3
 6
 7
 12
99) Parmi les choix suivants, lequel est vrai au sujet des en-tête de paragraphes?
 <H6> et </H6> donnent la plus grande taille.
 <H1> et </H1> donnent la plus petite taille.
 <H2> et </H2> donnent une taille plus grande que <H3> et </H3>
 <H2> et </H2> donnent une taille plus petite que <H3> et </H3>
100) Quelles balises devez-vous utiliser pour avoir un titre de paragraphe de niveau 1
avec une police de type "Arial" , centré et de couleur bleue?
 <CENTER><FONT FACE = "Arial" COLOR =
"blue"><H1>Titre</H1></FONT></CENTER>
 <FONT FACE="Arial" COLOR=blue"
ALIGN="center"><H1>Titre</H1></FONT>
 <FONT TYPE="Arial" COLOR="blue"
ALIGN="center"><H1>Titre</H1></FONT>
 <FONT FACE="Arial" COLOR="blue" ><H1>Titre</H1></CENTER>
Réponses
81 – D 82 – A 83 – B 84 – C 85 – D 86 – B 87 – B 88 – A 89 – C 90 – B
91 – B 92 – C 93 – D 94 – D 95 – A 96 – B 97 – A 98 – C 99 – C 100 – A

QCM HTML Partie 6


101) Quelle balise vous permet d'avoir le plus gros titre pour vottre page HTML?
<H1>
 <H3>
 <H6>
 <H9>
102) Quelle balise utilise-t-on pour séparer des section sur une page Web?
 <DIV>
 <SPLIT>
 <SECT>
 <NEW>
103) Quel est l'attribut qui vous permet de changer la couleur avec FONT?
 SIZE
 POLICE
 FACE
 COLOR
104) Quelle balise sert à changer de ligne et inserer une ligne blanche.
 <HR>
 <BR>
 <P>
 <PRE>
105) Parmi les choix suivants, lequel des balises suivantes te permettra d'avoir du
texte en bleu dans une page HTML?
 <FONT TEXT="#0000FF">...</FONT>
 <FONT COLOR="#0000FF">...</FONT>
 <FONT COLOUR="#0000FF">...</FONT>
 <FONT BGCOLOR="#0000FF">...</FONT>
106) Quel est l'effet de la balise <BR> ?
 Fait passer une ligne
 Fait passer une ligne et laisse une tabulation
 Passe à la ligne suivante
 Passe à la ligne suivante et laisse une tabulation
107) Quel est l'effet de la balise <P> ?
 Fait passer une ligne
 Fait passer une ligne et laisse une tabulation
 Passe à la ligne suivante
 Passe à la ligne suivante et laisse une tabulation
108) Occasionnellement dans vos pages HTML, vous voudriez ajouter un espacement
vertical entre les paragraphes. Quelle balise devriez-vous utiliser?
 <BR>
 <HR>
 <TR>
 <VR>
109) Que fait la balise </P>
 Terminer un paragraphe
 Terminer une section dans le texte
 Débuter une nouvelle ligne
 Débuter un nouveau paragraphe
110) Lequel de ces attributs ne peut pas être utilisé avec la balise <FONT>?
 COLOR
 ALIGN
 SIZE
 FACE
111) Parmi les choix suivants, lequel donnera la plus grande taille possible pour une
page HTML?
 <FONT SIZE=1>
 <FONT SIZE =7>
 <BIGGEST FONT=7>
 <LARGEST FONT=3>
112) Pour fixer la police de caractères d'un texte, on utilise l'attribut...
 FONT
 TYPE
 FACE
 POLICE
113) Quelle balise utilise-t-on pour changer le style du texte de normal à ARIAL?
 <FONT STYLE ="Arial">
 <FONT FACE ="Arial">
 <FONT SIZE ="Arial">
 <FONT CHANGE= "Arial">
114) Lequel de ces options ne fonctionnera pas avec <P> ?
 ALIGN = "left"
 ALIGN = "center"
 ALIGN = "right"
 ALIGN = "top"
115) Quelle est la balise utilisée pour sauter une ligne?
 <DIV>
 <I>
 <BR>
 <NL>
116) Quel est le rôle des balises <Hn>...</Hn>?
 Mettre une ligne horizontale de différentes largeur.
 Placer des titres de différents niveaux.
 Placer horizontalement du texte de tailles différentes.
 Placer le texte à une certaine distance du bord gauche de l'écran.
117) Quelle est la taille des lettres par défaut?
 <FONT SIZE=1>
 <FONT SIZE=2>
 <FONT SIZE=3>
 <FONT SIZE=4>
118) Que fait la balise <P ALIGN="center">?
 Débute un nouveau paragraphe avec le texte aligné au centre.
 Débute un nouvelle section avec le texte aligné au centre.
 Débute un nouvelle ligne avec le texte aligné au centre.
 Toutes ces réponses.
119) Parmi les propositions suivantes quelle est celle qui est juste:
 Le Heading 6 est plus grand que le Heading 1.
 Il y a 6 niveaux de Heading.
 La balise permettant de mettre un titre à l'écran est <TITLE> et </TITLE>.
 La balise <FONT> permet de changer de taille sur 4 niveaux.
120) Quelle différence y a-t'il entre un en-tête H4 et un en-tête H6?
 L'en-tête H4 représente un format plus grand que l'en-tête H6.
 L'en-tête H4 représente un format plus petit que l'en-tête H6.
 C'est la même grandeur de texte mais de couleur différente.
 L'en-tête H4 est représenté en italique et l'en-tête H6 en gras.

Réponses
101 – A 102 – A 103 – D 104 – C 105 – B 106 – C 107 – A 108 – A 109 – A 110 – B
111 – B 112 – C 113 – B 114 – D 115 – C 116 – B 117 – C 118 – D 119 – B 120 - A
Activités d’apprentissage
à distance pour assurer la
continuité des cours.
Corrigé QCM HTML
Niveau : 2ème A C
Semestre 2 : 2019-2020

Corrigé QCM
1) Dans quel ordre devez-vous placer correctement les balises dans une page HTML?
� <HTML><TITLE><TITLE><BODY></BODY></HTML>
� <HTML><TITLE></TITLE><BODY></BODY></HTML>
 <HTML><HEAD><TITLE></TITLE></HEAD><BODY></BODY></HTML>

2) Que veut dire le mot HTML?


� Home Tool Markup Language
� Hyperlinks and Text Markup Language
 Hyper Text Markup Language

3) Quelle balise te permettra d'insérer correctement une image de fond dans ta page
HTML?
 <BODY BACKGROUND="image.gif">
� <IMG SRC="image.gif" BACKGROUND>
� <BACKGROUND IMG="image.gif">
� <IMG SRC="image.gif" TYPE="background">

4) Quel attribut de la balise <BODY> établit la couleur de fond d'une page web?
� BACKGROUND
� BACKCOLOR
 BGCOLOR
� BCOLOR

5) Une paire de balises HTML doit être utilisée dans vos pages web, une au début et l'autre sur la
dernière ligne. De quelle paire s'agit-il?
 <HTML> et </HTML>
� <BODY> et </BODY>
� <HEAD> et </HEAD>
� <TITLE> et </TITLE>

6) La partie HEAD d'un fichier HTML contient. .


� Toutes les balises d'un fichier HTML
� Les balises du BODY
 La balise TITLE

-1-
Activités d’apprentissage
à distance pour assurer la
continuité des cours.
QCM HTML
Niveau : 2ème A C
Semestre 2 : 2019-2020

7) Quand vous utilisez la balise <TITLE>, où est affiché le texte?


� Le titre est placé au début de la page HTML.
� Le titre est placé au début de chaque paragraphe.
 Le titre est affiché dans le haut des navigateurs.

8) Quelle est la balise encadrant les informations qui ne seront pas éditées à l'écran:
 <HEAD> et </HEAD>
� <TITLE> et </TITLE>
� <BODY> et </BODY>

9) La majorité des informations d'une page Web se trouve dans:


� La balise HEAD
� La balise TITLE
 La balise BODY

10) Indiquez une balise obligatoire pour fabriquer une page web?
 <HTML>
� <META>
� <TABLE>

11) Si vous voulez utiliser une image comme fond d'écran, dans quelle balise devez-vous l'inclure?
� <HEAD>
� <BODY>
 <BACKGROUND>

12) Que signifie l'attribut BGCOLOR de la balise <BODY>?


� Couleur du texte.
 Couleur de l'arrière-plan.
� Couleur des images.

13) Le HTML est un langage utilisé pour créer...


� Des images
� Des vidéos
 Des pages web

14) Quand vous enregistrez vos pages HTML, quelle extension devez-vous utiliser?
� .txt
 .htm
� .www
-2-
Création d’un QCM en HTML

Il est très difficile de réaliser un questionnaire de type QCM en HTML pur, en effet il est nécessaire de
vérifier les réponses ce qui implique la mise en oeuvre de scripts en langage de programmation intégré
au code HTML de la page.

L’apprentissage de ce type de langage de programmation, en l’occurrence le Javascript, étant


relativement complexe, mieux vaut se tourner vers des utilitaires générant automatiquement les pages
de QCM ainsi que la programmation associée.

Dans cet exemple, nous mettons en oeuvre le générateur écrit G Béraud du CARMI de l’Académie de
Grenoble.

Installez le logiciel en cliquant sur “qcm_installe.exe”, sélectionnez un dossier d’installation à la racine


du disque C:\ ou à l’intérieur du dossier C:\Program Files

L’installateur ne crée pas d’icône dans le menu Démarrer mais cela n’a pas beaucoup d’importance.

Examinons un exemple de QCM réalisé grâce à cet utilitaire: avec l’explorateur, ouvrez le dossier
d’installation. Vous y trouvez un certain nombre de fichiers:

GENQCM est le générateur de pages de QC M. Il


s’alimente d’un fichier de définition du QCM, sorte de
fichier texte contenant les questions et les réponses.
LISEZ MOI es t la notice fournie par l’auteu r.
Les deux fichiers DLL sont des librairies indispensables
utilisées par GENQCM.
Et e nfin, l’exe rcic e de dém ons trat ion fo urni:
COULEURS est le fichier de définition qui a servi à
générer trois pages différentes (C OU LEUR1,
COULEUR2, COU LEU R3) don t la dernière dispose d’un
fond d’écran dont l’image est FOND.JPG. Vous pouvez
cliquer sur les pages HTML pour évaluer le QCM.

Pour aboutir à la création d’un exercice, le mode opératoire est le suivant:

1 Avec un éd iteur de texte (le bloc-notes est suffisant, surtout n’utilisez pas Word), on
écrit les questions.
2 On param ètre le générateur.
3 La page HTML est générée.

1 Création de l’exercice.
Nous disposons de pages web a vec les tables de multiplication et nous souhaitons proposer des QCM
destinés à aider les élèves à tester leurs connaissances. Nous avons donc besoin de générer des QCM
qui seront accessibles à partir de la page “somm aire_qcm.htm” situé dans un dossier “multiplication”.
Créons un QCM pour la table de multiplication par 6:
Ouvrez le bloc-n otes et tape z le texte suivant, les commen taires en italiques ne s ont pas à s aisir!

TTable de mu ltiplication par 6 La lettre T rouge indique que la ligne de texte


correspond au titre de la page

QCombien font 3 x 6 ? La première question est repérée par la lettre Q


en rouge

P15 La lettre P indique les différentes propositions


P18
P21

R2 La bon ne répo nse rep érée pa r la lettre R e st la


seconde proposition
Vous pouvez saisir autant de questions et autant de propositions, seulement, il n’y aura qu’une seu le
réponse possible par question.

Inventez deu x au tres que stio ns p uis s auv ega rdez le fich ier da ns le dos sier QCM en le nommant mult6.txt
et fermez le bloc-notes.

2 Génération du QCM HTML.


Lancez GENQCM en cliquant sur son icône et remplissez les champs comme indiqué afin de paramètrer
correctement la génération du QCM.

Indiquez le nom du fichier


de déf inition et le no m de la
page HT ML à gén érer.

On décide de ne pas
a f f i c h er les bonnes
réponses à la fin du QCM,
on ne spé cifie pas d ’image
de fond mais un fond uni
vert. On conserve la police
Aria l.

Enf in on indique le nom du


fichier de retour. Cette
option est fort utile s i vous
rattachez ce QCM à une
page HTML pou r un site
web ou un r e c u e il
d’exercices. Dans le cas
présent, indiquez le nom de
la page vers laquelle retourner, c’est à dire “somm aire_qcm.htm”. Att ent ion, pour simplifier les choses,
le QCM doit être dans le même dossier que cette page.

3 Génération de la page.
Cliquez Ok, une pag e HT ML est gén érée dan s le d oss ier. V ous pou vez la tes ter im méd iate men t en la
cliquant, la page s’ouvre dans une fenêtre de navigateur. Cette page peut-être reformatée dans un
éditeur HTML: changement des couleurs de police, du fond, intégration dans un jeu de cadre.

Il ne reste plus qu’à copier la page “mult6.htm ” dans le dossier contenant le site web et notamment celui
où se trouve la page “sommaire_qcm .htm”.

Le fichier “mult6.txt” n’est plus nécessaire, cependant, il est utile de le conserver afin de générer un
nouvel exercice identique.
1. Quelle organisation définit les standards Web?
A Apple Inc.
B IBM Corporation
C World Wide Web Consortium
D Microsoft Corporation
Réponse
C
Le World Wide Web Consortium (W3C) est une communauté internationale qui
développe des normes ouvertes pour assurer la croissance à long terme du Web.

2. HTML est considéré comme ______ ?


A Langage de programmation
B Langage POO
C Langage de haut niveau
D Langage de balisage
Réponse
D
Les langages de balisage sont les langages du Web. Ces langages de balisage
incluent HTML, XML et XHTML

3. HTML utilise des ______?


A Balises définis par l’utilisateur
B Balises prédéfinis
C Balises fixes définis par le langage
D Balises uniquement pour les liens
Réponse
C

4. HTML a été proposé pour la première fois l’année ___.


A 1980
B 1990
C 1995
D 2000
Réponse
B
5. Lequel des éléments suivants n’est pas un exemple de
navigateur?
A Mozilla Firefox
B Netscape
C Microsoft Bing
D Opéra
Réponse
C
Bing est un moteur de recherche Web détenu et exploité par Microsoft.

6. Qui est l’auteur principal du HTML?


A Brendan Eich
B Tim Berners-Lee
C Développeur web
D Google Inc
Réponse
B

7. Si nous souhaitons définir le style d’un seule élément,


quel sélecteur css utiliserons-nous?
A id
B text
C class
D name
Réponse
A
L’attribut id peut être appliqué à n’importe quel élément HTML. La valeur de cet
attribut est l’identifiant unique de l’élément. Par exemple,
<h1 id="titre">
« titre » est un identifiant unique de h1.

8. La balise HTML qui spécifie un style CSS intégré dans un


élément est appelée ____?
A Design
B Style
C Modify
D Define
Réponse
B
L’attribut style spécifie un style inline pour un élément. Exemple :
<p style="color:green">Ceci est un paragraphe.</p>

9. La norme HTML qui n’exige pas des double quotes


autour des valeurs d’un attribut est dite ______?
A HTML 1
B HTML 3
C HTML 5
D HTML 7
Réponse
C

10. Un type de document HTML plus strict est connu sous


______ ?
A DHTML
B XHTML
C XML
D HTML
Réponse
B
XHTML signifie EXtensible HyperText Markup Language, basé sur XML, est plus
strict que HTML, et est supporté par presque tous les navigateurs Web.

1. Un document HTML peut contenir _____


A Des attributs
B Des balises
C Texte brut
D Tout les réponses sont vrais
Réponse

D
Un document HTML peut contenir des attributs, des balises, et texte brut. Exemple :
2. Une page conçue en HTML s’appelle _____
A Application
B Page de garde
C Front-end
D Page Web
Réponse

D
Une page Web est un document généralement écrit en HTML (Hypertext Markup
Language) accessible via Internet ou d’autres réseaux à l’aide d’un navigateur Internet.
Une page Web est accessible en entrant une adresse URL et peut contenir du texte, des
graphiques et des hyperliens vers d’autres pages Web et fichiers. La page que vous lisez
actuellement est un exemple de page Web.

3. Un document HTML est enregistré avec l’extension ____.


A .htl
B .html
C .hml
D .htnl
Réponse

B
Exemple : maPage.html
4. Le document HTML contient une balise racine appelée
____
A HEAD
B Title
C Body
D HTML
Réponse

D
Voici un exemple de document HTML simple:

<HTML>

<HEAD>

<TITLE>My first HTML document</TITLE>

</HEAD>

<BODY>

<P>Welcom To WayToLearnX.com!</P>

</BODY>

</HTML>

5. Si nous souhaitons placer du texte autour d’une image,


quelle propriété CSS nous allons utiliser?
A push
B float
C align
D wrap
Réponse

B
La propriété float indique qu’un élément doit être mis sur le côté droit ou gauche de son
conteneur. Exemple :
6. Peut-on aligner un élément en définissant margin-left et
margin-right?
A Oui, c’est possible.
B Non, ce n’est pas possible.
Réponse

B
Un élément commence toujours sur une nouvelle ligne et occupe toute la largeur
disponible.

7. Supposons que nous souhaitons organiser trois DIV de sorte que DIV 3 soit placé au-
dessus de DIV1. Maintenant, quelle propriété CSS nous allons utiliser pour contrôler
l’ordre de pile?
A d-index

B s-index
C x-index
D z-index
Réponse

D
La propriété z-index spécifie l’ordre d’empilement d’un élément. Exemple :
8. Peut-on définir la direction du texte via une propriété
CSS?
A Oui, c’est possible.
B Non, ce n’est pas possible.
Réponse

A
La propriété « direction » en CSS définit la direction du flux de contenu d’un élément.
Exemple

direction: rtl; /* Right to Left */

9. Choisissez la balise HTML correcte pour un grand titre.


A H1
B Heading
C Head
D H6
Réponse

A
Les éléments h1 à h6 représentent six niveaux de titres dans un document HTML.
Exemple :

<h1>Titre de niveau 1</h1>


<h2>Titre de niveau 2</h2>

<h3>Titre de niveau 3</h3>

<h4>Titre de niveau 4</h4>

<h5>Titre de niveau 5</h5>

<h6>Titre de niveau 6</h6>


Résultat :

Titre de niveau 1
Titre de niveau 2
Titre de niveau 3
Titre de niveau 4
Titre de niveau 5
Titre de niveau 6

10. Si on veut utiliser une jolie bordure en pointillé verte


autour d’une image, quelle propriété css nous allons
utiliser?
A border-line
B border-style
C border-decoration
D border-color
Réponse

B, D
Exemple :

div {

border-style: dotted;

border-color: green;
}

<div>Welcom to WayToLearnX.com</div>

Résultat :

1. Quelle balise est utilisée pour afficher du texte


préformaté?
A
<pre> … </pre>
B
<prefor> … </prefor>
C
<pre text> … </pre text>
D
<pre format> … </pre format>
Réponse
A
L’élément HTML <pre> représente du texte préformaté.

2. Comment ajouter du texte alternatif pour une image?


A
<img src = “https://waytolearnx.com/logo.png” alternate = “logo” />
B
<img src = “https://waytolearnx.com/logo.png” alt text = “logo” />
C
<img src = “https://waytolearnx.com/logo.png” alternate text = “logo” />
D
<img src = “https://waytolearnx.com/logo.png” alt = “logo” />
Réponse
D
La valeur de l’attribut « alt » est une description textuelle que l’on attribue à une image.
3. Comment incorporer des fichiers audio en HTML?
A
<embed src = “audio.mp3” width = “50” height = “10”>
B
<embed sound = “audio.mp3” width = “50” height = “10”>
C
<embed audio = “audio.mp3” width = “50” height = “10”>
D
<embed music = “audio.mp3” width = “50” height = “10”>
Réponse
A
La balise <embed> définit un conteneur pour une application externe ou un contenu
interactif

4. En HTML, Uniform Resource Locator (URL) est utilisé


_____
A Pour créer un document frame.
B Pour créer une image map dans une page Web.
C Pour personnaliser l’image dans une page Web.
D Pour identifier un nom ou une ressource sur Internet.
Réponse

D
Une URL (Uniform Resource Locator) est un identifiant unique utilisé pour localiser une
ressource sur Internet. Il est également appelé une adresse Web. Les URL sont constituées
de plusieurs parties – y compris un protocole et un nom de domaine – qui indiquent au
navigateur Web où et comment récupérer une ressource.
Exemple: https://waytolearnx.com/2019/07/qcm-html-css-partie-1.html

5. CSS est un acronyme pour _____


A Cascading Style Sheet
B Costume Style Sheet
C Cascading System Style
D Aucune de ces réponses n’est vraie.
Réponse

A
Cascading Style Sheets (CSS) est un langage utilisé pour décrire la présentation d’un
document écrit dans un langage de balisage tel que HTML.

6. Lequel des protocoles suivants n’est pas utilisé sur


Internet?
A Gopher
B HTTP
C WIRL
D Telnet
Réponse

C
▪ HTTP (Hypertext Transfer Protocol) est l’ensemble des règles de transfert de

fichiers (texte, images graphiques, fichiers audio, vidéo et autres fichiers

multimédia) sur le World Wide Web.

▪ Telnet est un protocole réseau utilisé pour accéder à des ordinateurs distants et à

des terminaux via Internet ou un réseau informatique TCP/IP.

▪ Gopher est un protocole de couche d’application qui permet d’extraire et d’afficher

des documents Web stockés sur des serveurs Web distants.

7. Quelle devrait être la valeur de la propriété « width » du


tableau (
<table style="width:'???'">
), de sorte que la largeur du tableau s’adapte à la largeur
actuelle de la fenêtre du navigateur?
A 100%
B 640px
C 100em
D 1024px
Réponse

A
100% fait référence à la largeur totale de la fenêtre du navigateur.

8. Quel élément est utilisé dans <HEAD> d’une page


HTML/XHTML, si nous souhaitons utiliser une feuille de
style CSS externe pour décorer la page?
A <src>
B <link>
C <style>
D <css>
Réponse

B
La balise <link> définit un lien entre un document et une ressource externe. Exemple:

<link rel="stylesheet" type="text/css" href="style.css">

9. Quel attribut peut être ajouté à de nombreux éléments


HTML / XHTML pour les identifier en tant que membre
d’un groupe spécifique?
A Id
B class
C div
D span
Réponse

B
Une classe est utilisée pour identifier plusieurs éléments, et son nom est précédé d’un
point (.). Exemple:
<html>

<head>

<style>

.ville {

background-color: blue;

color: yellow;

</style>

</head>

<body>

<p class="ville">Londres est la capitale de l'Angleterre.</p>

<p class="ville">Paris est la capitale de la France.</p>

<p class="ville">Tokyo est la capitale du Japon.</p>

<p class="ville">Rabat est la capitale du Maroc.</p>

</body>

</html>

10. Lorsque nous écrivons


<img src = "img.png">
, qu’implique « img.png »?
A élément
B attribut
C valeur
D opérateur
Réponse

C
Exemple:
1. Laquelle des balises HTML suivantes insérera un saut de
ligne?
A <p>
B <break>
C <line>
D <br>
Réponse

D
La balise <br> indique un retour à la ligne

2. Parmi les balises suivantes, lesquelles sont liées à un


tableau en HTML?
A <table> <row> <column>
B <table> <tr> <td>
C <table> <head> <body>
D <table> <header> <footer>
Réponse

B
Exemple :

<table>

<tr>

<td>....</td>

<td>....</td>

</tr>
<tr>

<td>....</td>

<td>....</td>

</tr>

</table>

3. À quoi sert la balise <tt> en HTML?


A La balise <tt> fait partie des balises de mise en forme du texte.
B La balise <tt> fait partie des balises de mise en forme d’image.
C La balise <tt> fait partie des balises de mise en forme de tableau.
D Aucune de ces réponses
Réponse

A
La balise <tt> fait partie des balises de mise en forme du texte. Exemple :

<p><tt>Teletype text</tt></p>

4. À quoi sert les formulaires en HTML?


A Pour afficher le contenu d’un email.
B Pour afficher l’effet d’animation.
C Pour recueillir les entrées de l’utilisateur.
D Aucune de ces réponses
Réponse

C
La balise <form> définit un formulaire qui est utilisé pour collecter les entrées des
utilisateurs. Exemple :

<form>

First name:

<input type="text" name="firstname">


Last name:

<input type="text" name="lastname">

</form>
Sortie :

5. À quoi sert iframe en HTML?


A Pour afficher une page Web dans une page Web.
B Pour afficher une page Web avec un effet d’animation.
C Pour afficher une page Web sans navigateur.
D Tout les réponses sont vrais
Réponse

A
Un IFrame est un code HTML que vous pouvez utiliser pour incorporer une page HTML,
une page PDF, un autre site Web ou un autre fichier sécurisé sur Internet dans une autre
page Web à l’intérieur d’une fenêtre. Exemple :

<iframe src="https://waytolearnx.com" height="300" width="400">

6. Comment écrire un commentaire en CSS?


A /* un commentaire */
B // un commentaire //
C / un commentaire /
D <‘ un commentaire ‘>
Réponse

A
7. Quelle propriété css vous utiliserez si vous voulez
ajouter une marge entre la bordure d’une DIV et son texte
intérieur?
A spacing
B margin
C padding
D inner-margin
Réponse

C
Exemple :

8. Quelle propriété CSS est utilisée pour contrôler la taille


du texte d’un élément?
A font-style
B text-size
C font-size
D text-style
Réponse

C
La propriété « font-size » permet de définir la taille de la police pour différents éléments.
Exemple :

div { font-size: 15px; }


9. La valeur par défaut de l’attribut « position » est
_________.
A fixed
B absolute
C inherit
D relative
Réponse

D
La propriété « position » spécifie le type de positionnement utilisé pour un élément( elle
peut être static, relative, fixed, absolute ou sticky).

10. Comment rendre tous les paragraphes en «ROUGE» ?


A
p.all {color: red;}
B
p.all {color: #AA0000;}
C
all.p {color: #0000FF;}
D
p {color: red;}
Réponse
D
Les couleurs HTML sont spécifiées à l’aide de son noms ou avec des valeurs RVB, HEX,
HSL, RGBA, HSLA.

1. DNS traduit __________


A le nom de domaine en adresse IP
B l’adresse IP en nom de domaine
C Les deux A et B sont vrais.
D le nom de domaine en adresse physique(MAC)
Réponse
A
DNS est l’abréviation de Domain Name System (ou Service ou Server), un service
Internet qui traduit les noms de domaine en adresses IP. Comme les noms de
domaine sont alphabétiques, ils sont plus faciles à mémoriser. Pourtant, Internet
est vraiment basé sur les adresses IP.

2. Quelle balise est utilisée pour lister les éléments avec


des puces?
A <puce>…</puce>
B <list>…</list>
C <ul>…</ul>
D <ol>…</ol>
Réponse
C
La balise <ul> définit une liste(à puces) non ordonnée. Exemple :
<ul>
<li>JavaScript</li>
<li>HTML / CSS</li>
<li>PHP</li>
</ul>
Sortie :
▪ JavaScript

▪ HTML / CSS

▪ PHP

3. Comment définir un lien qui doit s’ouvrir dans une


nouvelle page en HTML?
A
<a href = “https://waytolearnx.com” target = “blank”>Cliquez Ici</a>
B
<a href = “https://waytolearnx.com” target =“_blank”>Cliquez Ici</a>
C
<a href = “https://waytolearnx.com” target = “#blank”>Cliquez Ici</a>
D
<a href = “https://waytolearnx.com” target = “@blank”>Cliquez Ici</a>
Réponse
B
Si vous ajoutez l’attribut
target = "_ blank"
à vos liens. Lorsqu’un visiteur cliquent sur ce lien, il s’ouvrira dans une nouvelle
fenêtre ou un nouvel onglet.

4. Comment définir une image en background d’une page


Web ?
A
<body background = “test.jpg”>
B
<body background image = “test.jpg”>
C
<background = “test.jpg”>
D
<background image = “test.jpg”>
Réponse
A
Si vous souhaitez ajouter une image en background au lieu d’une couleur, l’une
des solutions est l’attribut
<body background>
ou avec CSS
body { background-image: url("test.jpg");}
. Il spécifie une image en background pour une page web

5. La première page d’un site Web s’appelle _____.


A Page de conception
B Page d’accueil
C Première page
D Page principale
Réponse
B
Une page d’accueil est la page par défaut d’un site web. C’est la première page que
les visiteurs voient lorsqu’ils saisissent une URL.

6. La balise Head est utilisée pour?


A Écrire des styles CSS
B Écrire du Javascript
C Inclure des fichiers CSS et JS
D Tout les réponses sont vrais
Réponse
D
La balise <head> est utilisée pour contenir des informations spécifiques sur une
page Web, souvent appelées métadonnées. Ces informations comprennent des
éléments tels que le titre du document (obligatoire), ainsi que des scripts ou des
liens vers des scripts et des fichiers CSS.

7. Par défaut, les liens sont affichés avec un soulignement.


Comment pouvez-vous supprimer le soulignement de tous
les liens en utilisant du code CSS?
A
a {text: no-underline;}
B
a {text-decoration:none;}
C
a {text-style: no-underline;}
D
a {text-decoration: no-underline;}
Réponse
B
Les liens peuvent être stylés avec n’importe quelle propriété CSS. La règle
a {text-decoration:none;}
permet de supprimer le soulignement de tous les liens.

8. Quelle est la syntaxe correcte du code CSS suivant?


A
Body:color=black
B
{body;color:black}
C
{body:color=black(body}
D
Body {color: Black}
Réponse
D
Cela définit la couleur du texte pour l’élément « body ». Tout ce que vous
appliquez sur l’élément « body » en CSS affectera toute la page.

9. Lequel des sélecteurs suivants sélectionne tous les


éléments de E ayant l’attribut Attr se terminant par la
valeur donnée?
A
E[attr^=value]
B
E[attr$=value]
C
E[attr*=value]
D Aucune de ces réponses n’est vraie.
Réponse
B
Le sélecteur
E[attr$=value]
est utilisé pour sélectionner les éléments dont la valeur d’attribut se terminant
par une valeur spécifiée.

10. Lequel des sélecteurs suivants sélectionne les


checkboxes ou option (option d’un élément select) qui est
coché ou activé?
AE~F
B ::after
C :checked
D Aucune de ces réponses n’est vraie.
Réponse
C
Exemple : Définissez les propriétés « height » et « width » de tous les éléments
<input> cochés:
<input type="checkbox"> Lorem Ipsum<br>
<input type="checkbox"> Lorem Ipsum<br>
<input type="checkbox" checked="checked"> Lorem Ipsum<br>
<input type="checkbox"> Lorem Ipsum

input:checked {
height: 50px;
width: 50px;
}
Sortie :

1. Afin d’uploader un fichier HTML sur un serveur Web,


vous utilisez ______?
A HTTP
B SMTP
C SIP
D FTP
Réponse
D
FTP (File Transfer Protocol) est un protocole réseau utilisé pour transférer des
fichiers entre un client et un serveur via Internet.

PROTOCOLE FTPLe protocole FTP (File Transfer Protocol) est un protocole client/serveur
utilisé pour transférer ou échanger des fichiers avec un ordinateur hôte. Le client peut…LIRE
PLUS
2. En HTML5 on spécifie _______ pour que le navigateur
affiche la page en mode standard.
A DOCTYPE
B HEAD
C BODY
D TITLE
Réponse
A
La déclaration <!DOCTYPE> doit être déclarée dans la première ligne dans votre
document HTML, avant la balise <html>.
La déclaration <!DOCTYPE> n’est pas une balise HTML; Il s’agit d’une instruction
pour informé le navigateur sur la version de HTML dans laquelle la page est
écrite.

3. Une liste ordonnée peut être représentée par ______.


A <ol>
B <ul>
C <li>
D <el>
Réponse
A
Une liste ordonnée commence par la balise <ol>. Chaque élément de la liste
commence par la balise <li>. Exemple :
<ol>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
<li>Lorem ipsum</li>
</ol>
Sortie :
1. Lorem ipsum

2. Lorem ipsum

3. Lorem ipsum
4. Lequel des attributs est obligatoire dans la balise <img>?
A src
B href
C id
D alt
Réponse
A
L’élément <img> est défini avec l’attribut requis src, qui contient une URL
pointant vers l’emplacement de l’image. Exemple :
<img src="../../images/test.jpg">

5. PNG signifie:
A Portable Network Graphic
B Pivot Network Graphic
C Pichart Network Graphic
D Pythagorus Network Graphic
Réponse
A
L’abréviation PNG fait référence à Portable Network Graphics et représente un
format graphique conçu pour stocker des images graphiques bitmap.

6. GIF signifie:
A Graph Interchange Format
B Graphics Interlinked Format
C Graphics Interchange Format
D Aucune de ces réponses n’est vraie.
Réponse
C
GIF est le type de format de fichier le plus ancien et le plus agréé pour des images
simples. GIF représente un format de fichier bitmap.

7. Lequel des sélecteurs CSS suivants sélectionne un


élément qui ne possède pas des sous-élément ?
A :empty
B :nochild
C :inheritance
D :no-child
Réponse
A
Le sélecteur « :empty » est utilisé pour sélectionner les éléments qui ne
contiennent aucun enfant (texte compris).
:empty {
// CSS property
}

8. Lequel des sélecteurs CSS suivants sélectionne un


élément s’il s’agit du seul enfant de son parent?
A :nth-oftype(n)
B :only-child
C :root
D Aucune de ces réponses n’est vraie.
Réponse
B
Exemple: spécifiez une couleur du background pour chaque élément <p> qui est le
seul enfant de son parent:
p:only-child {
background: #ff0000;
}

9. En css, qu’est-ce que h1 peut être appelé comme ______


A Sélecteur
B Attribut
C Valeur
D Label
Réponse
A
Les sélecteurs CSS permettent de sélectionner le contenu que vous souhaitez
styler. Les sélecteurs font partie du jeu de règles CSS. Les sélecteurs CSS
sélectionnent les éléments HTML en fonction de leur identifiant, classe, type,
attribut, etc.
10. En css, comment “color:red” peut-il s’appeler?
A Règle
B Attribut
C Valeur
D Déclaration
Réponse

D
Un ensemble de règles CSS se compose d’un sélecteur et d’un bloc de déclaration.

1. Quel attribut peut être utilisé avec la balise <table> pour


donner une bordure à votre tableau?
A line
B border
C margin-left border
D Tout les réponses sont vrais
Réponse

B
Exemple :

<table border="1">

2. Quel élément a des propriétés très similaires à l’élément


DIV?
A l’élément strong
B l’élément span
C l’élément table
D Tout les réponses sont vrais
Réponse

B
La différence entre span et div est que l’élément span est généralement utilisé pour un
petit morceaux de code dans une ligne, tandis que l’élément div (division) est un bloc et
utilisé pour regrouper de gros morceaux de code. Exemple :

<div id = "myDiv">

<p> Lorem <span class = "paper"> ipsum </span> </p>

</div>

3. Quelle est l’alternative de la balise <b>, pour rendre le


texte en gras?
A <bold>
B <strong>
C <i>
D <emp>
Réponse

4. Quelle est la forme complète du HTML?


A HyperText Markup Language
B Hyper Teach Markup Language
C Hyper Tech Markup Language
D Aucune de ces réponses n’est vraie.
Réponse

5. Les pages Web HTML peuvent être lues et rendues par


le _________.
A Compilateur
B Serveur
C Navigateur Web
D Interpréteur
Réponse

6. Lequel des éléments suivants n’est pas un attribut de la


balise <form>
A Action
B Method
C name
D url
Réponse

7. HTML est un sous-ensemble de ______ ?


A SGML
B SGMD
C SGMT
D Aucune de ces réponses n’est vraie.
Réponse

A
SGML (Standard Generalized Markup Language) est un standard sur la manière de
spécifier un langage de balisage ou un ensemble de balises.

8. Choisissez la balise HTML correcte pour rendre un texte


en italique
A <italic>
B <it>
C <il>
D <i>
Réponse

9. Quelle balise est utilisée pour créer une checkbox en


HTML?
A
<checkbox>
B
<input type = "checkbox">
C
<check>
D
<input type = "checkbox">
Réponse
B

10. Comment créer un lien vers un email?


A
<a href="mailto:xxx@yyy">
B
<a href="xxx@yyy">
C
Mail>xxx@yyy
D
Mail href="xxx@yyy"
Réponse
A

11. Quelle est la dernière version du CSS disponible?


A CSS2
B CSS3
C CSS3.1
D CSS4
Réponse

12. Laquelle des propriétés suivantes définit la taille de la


police du texte?
A text-size
B font-size
C size
D text
Réponse

B
Exemple :

font-size: 12px;

13. Laquelle des propriétés suivantes définit l’espacement


entre les lettres?
A space
B line-height
C letter-spacing
D Aucune de ces réponses n’est vraie.
Réponse

C
Exemple :

h1 {

letter-spacing: 9px;

}
Résultat:

Lorem Ipsum
Le langage HTML est un langage :

a) de programmation classique (Pascal, ...)

b) qui permet de structurer une page Web

c) compilé

Généralement, la première ligne d’un document Web commence par :

a) html

b) <htlm>

c) <html>

L’écriture <un_mot> identifie une :

a) variable

b) procédure

c) balise

L’écriture <!-- à conserver --> identifie :

a) la fin du code

b) un fichier

c) une remarque

L’écriture <body> signifie :

a) début du corps de la page Web


b) fin du corps de la page Web

c) fin de l’en-tête

L’écriture <b> Introduction </b> signifie :

a) souligner le mot Introduction

b) surligner le mot Introduction

c) afficher en gras le mot Introduction

<title> Ma page perso </title> permet d’afficher Ma page perso dans :

a) l’en-tête de la page

b) la barre d’état du navigateur

c) la barre de titre du navigateur

Un document capable de produire un affichage contenant du texte, des images et des vidéos est, généralement, enregistré avec

a) HTM

b) CSS

c) HTTP

Un fichier contenant des balises HTML est enregistré en mode :

a) texte

b) binaire

c) graphique

La balise <hr /> permet de :

a) séparer deux paragraphes

b) tracer une ligne verticale

c) tracer une ligne horizontale

L’écriture <strong>Ordinateur</strong> permet d’écrire le mot Ordinateur :

a) en rouge

b) en italique

c) en gras

Le couple <title></title> est situé entre :

a) <body></body>

b) <b></b>

c) <head></head>

Pour définir un tableau, j’utilise la paire :


a) <table></table>

b) <tableau></tableau>

c) <i></i>

Pour définir un formulaire, j’utilise la paire :

a) <form></form>

b) <p></p>

c) <formulaire></formulaire>

L’écriture <img src="theme1.jpg" width="128" height="81" alt="essai" /> permet de :

a) définir la source du document HTM

b) charger une image stockée dans le fichier theme1.jpg

c) affecter l’image à la variable src

Un lien hypertexte est défini par :

a) <a>le lien </a>

b) <a href=...>un message </a>

c) <a href=...>un message

L’écriture <a name="pub"></a> permet de définir :

a) un lien hypertexte

b) une destination pour un lien ou signet

c) un lien vers la page pub

L’écriture <a href="#help">Aide</a> définit :

a) un lien hypertexte vers un lien interne

b) un lien interne (signet) qui s’appelle help

c) cette écriture n’est pas valide

L’écriture <input type="text" name="T1" size="20"> définit :

a) un bouton

b) une zone de texte dont la valeur par défaut est T1

c) une zone de texte nommée T1

L’écriture <input type="checkbox" name="C1" value="ON"> définit :

a) une zone de texte dont la valeur par défaut est ON

b) une case à cocher et ON signifie que l’élément est actif

c) une case d’option


QCM

L’écriture <input type="submit" ... > signifie :

a) réinitialiser les contrôles du formulaire

b) envoyer les données du formulaire

c) envoyer les données du formulaire par E-mail

La balise <script type="text/javascript"> permet de déclarer :

a) le début d’une zone contenant du code Javascript

b) le début d’une zone contenant du code Javascript ou VBScript, ...

c) cette écriture n’est pas valide

L’écriture <script src="midfonc.js" type="text/javascript"></script> permet de :

a) inclure du texte dans la page courante

b) inclure du code script dans la page courante

c) déclarer la fonction midfonc.js

Le sigle DHTML signifie :

a) Data HTML

b) Dynamic HTML

c) Define HTML

Pour exploiter DHTML, je peux utiliser :

a) le langage Jscript

b) le langage JavaScript, VBScript et C++

c) les deux premières propositions sont valables

Avec DHTML, le programmeur accède :

a) seulement au contenu du document

b) seulement à la structure du document

c) au contenu et à la structure/span>

DHTML prend en charge :

a) HTML 4.0

b) HTML 4.0 et CSS

c) HTML 2.0

Pour documenter une balise quelconque avec une infobulle, j’utilise l’attribut :

a) info

b) title
c) titre

Le contrôle défini par <input type=text id="demo" ...> est accessible, par programmation, via l’identifiant :

a) input

b) demo

c) type

Pour définir un style applicable à la page courante, j’utilise la balise :

a) <style>

b) style

c) <style="text/css">

Le sigle CSS cache les mots suivants :

a) Compact Style Sheets

b) Cascading Style Sheets

c) Code Style Sheets

Avec les propriétés CSS, je peux aligner un texte :

a) à gauche seulement

b) à droite seulement

c) à gauche, à droite et le justifier

Pour définir une division, j’utilise la paire :

a) <body></body>

b) <div></div>

c) <strong></strong>

Dans la définition d’un style, l’écriture ul {list-style-image:url(coucou.gif)} permet de :

a) remplacer la puce standard par le fichier coucou.gif du répertoire windows

b) identifier le fichier coucou.gif par UL

c) remplacer la puce standard par l’image du fichier coucou.gif

DHTML prend en charge les événements. Cela signifie (notamment) qu’une modification :

a) de la fenêtre active peut se réaliser suite à une manipulation de l’utilisateur

b) du document peut se réaliser suite à une manipulation de l’utilisateur

c) les deux premières propositions sont valides

Parmi les trois propositions, quelle est celle qui exécute la fonction intro au chargement de la page ?

a) <body onload:intro>
b) <body> onload="intro()"

c) <body onload="intro()">

Grâce à cette écriture <input type=button value="cliquez-moi" onclick="rep()">, un clic sur le bouton :

a) associe la fonction rep à input

b) une destination pour un lien ou signet

c) exécute la fonction rep

1) Quel est l'attribut à inclure dans la balise BODY pour changer la couleur des
liens?
5 LINK
5 VLINK
5 ALINK
5 TEXT
2) Quel est l'attribut à inclure dans la balise BODY pour changer la couleur des
liens déjà visités?
5 LINK
5 ALINK
5 TEXT
5 VLINK
3) Que veut dire le mot HTML?
5 Home Tool Markup Language
5 Hyperlinks and Text Markup Language
5 Hyper Text Markup Language
5 Hyper Text machine Language
4) Quelle balise te permettra d'insérer correctement une image de fond dans ta
page
HTML?
5 <BODY BACKGROUND="">
5 <IMG SRC="" BACKGROUND>
5 <BACKGROUND IMG="">
5 <IMG SRC="" TYPE="background">
5) Dans quel ordre devez-vous placer correctement les balises dans une page
HTML?
5 <HTML><TITLE><TITLE><BODY></BODY></HTML>
5 <HTML><TITLE></TITLE><BODY></BODY></HTML>
5 <HTML><TITLE></TITLE><BODY></HTML>
5 <HTML><HEAD></TITLE><BODY></BODY></HTML>
6) Quel attribut de la balise <BODY..> établit la couleur de fond d'une page web?
5 BACKGROUND
5 BACKCOLOR
5 BGCOLOR
5 BCOLOR
7) Parmi les choix suivants, lequel n'est pas un attribut de la balise <BODY>?
5 BACKGROUND
5 BGCOLOR
5 TEXT
5 FONT
8) Une paire de balises HTML doit être utilisé dans vos pages web, une au début et
l'autre sur la dernière ligne. De quelle paire s'agit-il?
<HTML> et </HTML>
5 <BODY> et </BODY>
5 <HEAD> et </HEAD>
5 <TITLE> et </TITLE>
9) La partie HEAD d'un fichier HTML contient. .
5 Toutes les balises d'un fichier HTML
5 Les balises du BODY
5 La balise TITLE
5 Aucune de ces réponses
10) Quand vous utilisez la balise <TITLE>, où est affiché le texte?
5 Le titre est placé au début de la page HTML.
5 Le titre est placé au début de chaque paragraphe.
5 Le titre est affiché dans le haut des navigateurs.
5 Toutes les réponses ci-dessus
11) Quelle est la balise encadrant les infomations qui ne seront pas éditées à
l'écran:
5 <HTML> et </HTML>
5 <HEAD> et </HEAD>
5 <TITLE> et </TITLE>
5 <BODY> et </BODY>
12) La majorité des informations d'une page Web se trouve dans:
5 La balise HEAD5 La balise TITLE
5 La balise BODY
5 La balise des commentaires <!-- -->
13) Indiquez une balise obligatoire pour fabriquer une page web?
5 <HTML>
5 <META>
5 <A>
5 <TABLE>
14) Si vous voulez utiliser une image comme fond d'écran, dans quelle balise
devezvous l'inclure?
5 <BKG>
5 <HEAD>
5 <BODY>
5 <BACKGROUND>
15) Que signifie l'attribut BGCOLOR de la balise <BODY>?
5 Couleur du texte.
5 Couleur de l'arrière plan.
5 Couleur de la cellule.
5 Couleur des images.
16) Pour éviter que le fond de l'écran ne bouge avec le texte via la barre de
défilement, il faut utiliser
5 BGPROPERTIES = "nomove"
5 BGPROPERTIES = "stop"
5 BGPROPERTIES = "stick"5 BGPROPERTIES = "fixed" 17)Un fichier HTML est:
5 Un document texte
5 Une présentation multimédia
5 Un logiciel
5 Une base de données relationnelle
18) Le HTML est une langage utilisé pour créer
5 Des images
5 De l'audio
5 Des vidéos
5 Des pages web
19) Quand vous enregistrez vos pages HTML, quelle extension devez-vous
utiliser?.
5 txt.
5 html5 .web.
5 www
20) Quel organisme est responsable des standards du langage HTML?
5 The World Wide Web Consortium
5 Microsoft
5 Netscape
21) Quel est l'attribut à inclure dans la balise BODY pour changer la couleur des
liens?
5 LINK="#RRVVBB"
5 VLINK="#RRVVBB"
5 ALINK="#RRVVBB"
5 TEXT="#RRVVBB"
22) Quel est l'attribut à inclure dans la balise BODY pour changer la couleur des
liens déjà visités?
5 LINK="#RRVVBB"
5 VLINK="#RRVVBB"
5 ALINK="#RRVVBB"
5 TEXT="#RRVVBB"
23) Quelle est la bonne façon, selon les règles du langage HTML, de mettre de la
couleur jaune sur le fond de notre page Web?
5 <BACKGROUND>yellow</BACKGROUND>
<BODY COLOR="yellow">
<BODY BGCOLOR="yellow">
<BODY BGCOLOR="jaune">

24) Que veulent dire les lettres HTML?


5 Hyper Text Markup Lingo
5 Hyper Temporary Markup Language
5 Hyper Text Marking Language
5 Hyper Text Markup Language
25) Quel est l'ordre des balises de base d'un site web?
5 <HTML> <HEAD> <TITLE></HEAD> </TITLE><BODY> </BODY></HTML>
5 <HTML> <HEAD> <TITLE> </TITLE></HEAD><BODY>
</BODY></HTML>
5 <HTML> <HEAD> <TITLE> <TITLE><HEAD><BODY>
<BODY><HTML>
5 <HTML> <HEAD> <TITLE> <BODY> </BODY></HTML>
26) L'attribut de la balise <BODY> pour la couleur de fond est. . .
5 BACKCOLOR
5 BGCOLOR
5 BACKGROUND
5 BCOLOR
27) Lequel de ces attributs n'est pas valables pour BODY?
5 BACKGROUND
5 ALINK
5 COLOR
5 BGCOLOR
28) Où sont normalement placées les balises <HTML> et </HTML> dans un
document HTML?
5 N'importe où
5 Dans l'entête <HEAD>
5 Dans le corps <BODY>
5 Au début et à la fin du document
29) Dans quelle paire de balises HTML trouve-t-on la majorité des autres balises qui
composent un document HTML?
5 <HTML> et </HTML>
5 <BODY> et </BODY> 5 <HEAD> et </HEAD>
5 <TITLE> et </TITLE>
5 <HTML> et </HTML>
5 <BODY> et </BODY>
5 <HEAD> et </HEAD>
5 <TITLE> et </TITLE>
31) La balise <HTML> doit être placée:
5 Après la balise <TITLE> et avant la balise </BODY> Après la balise <HEAD> et avant
la balise <TITLE>
Après la balise <BODY> et avant la balise <ADDRESS>
Au début et à la fin de tous les documents HTML
32) La balise TITLE doit se trouver à l'intérieur de:
5 La balise HEAD 5 La balise TITLE
5 La balise BODY
5 La balise des commentaires <!-- -->
33) Parmi les choix suivants, lequel est une balise obligatoire dans une page web?
5 <HTML>
5 <META>
5 <A>
5 <TABLE>
34) Pour insérer une image de fond, quelle instruction utilisera-t-on?
5 <BODY IMG SRC = "">
5 <IMG SRC = "">
5 <BODY BACKGROUND = "">
5 <BACKGROUND = "">
35) Quelle est la bonne façon de terminer un document HTML?
5 <HTML>
5 END <HTML>
5 <\HT'ML>
5 </HTML>
36) Pour le navigateur "Internet Explorer" de Microsoft, quel attribut de la balise
BODY peut-on utiliser pour contrôler la marge supérieure de la fenêtre principale?
5 <BODY LEFTMARGIN="n" >
5 <BODY TOPMARGIN="n" >
5 <BODY BOTTOMMARGIN="n" >
5 <BODY RIGHTMARGIN="n" >
37) Le contenu d'une page Web est affiché: 5 En temps réel
5 Le plus rapidement possible
5 Dans la fenêtre du navigateur
5 Dans la liste de l'historique
38) La majorité des balises HTML ont la structure:
5 <BALISE> <BALISE>
5 <BALISE> <!BALISE>
5 <BALISE> </BALISE>
5 <BALISE1> <BALISE2>
39) Quel est le nombre limite d'ouverture de <BODY> possible dans un fichier html?
54
53
52
51
40) Qui est l'auteur ou le concepteur du langage HTML?
Tim Berners-Lee
La compagnie Microsoft
Le Worl Wide Web
41) Quelle balise de style physique te permettra d'avoir du texte en caractères
italiques dans tes pages HTML?
5 <I>
5 <ITALICS>
5 <II>
5 <ITALIQUE>
42) Quelle balise permet de souligner du texte?
5 <B>
5 <S>
5 <I>
5 <U>
43) Parmi les choix de style logique ci dessous, lequel te permettra de mettre en
italique le mot "Toujours"?
5 <EM>Toujours</EM>
5 <STRONG>Toujours</STRONG>
5 <SUB>Toujours</SUB>
5 <SUP>Toujours</SUP>
44) Les balises <TT> et <PRE> sont des exemples de balises de:
5 Style forcé
5 Style physique
5 Style logique
5 Style illogique
45) Que fait la balise <PRE>?
5 Établit un préfixe pour le texte.
5 N'est pas une balise de disposition de texte.
5 Permet de respecter les retours et les espaces
5 Permet de cacher le texte de l'internaute.
46) Quelle balise vous permet d'avoir une police de type dactylo (teletype)?
5 <TT>
5 <TELE>
5 <TTYPE>
5 <TELETYPE>
47) Quelle balise sert à mettre le texte comme il a été écrit dans "bloc-notes"?
<TT>
<SAMP>
<Q>

<PRE>
48) Quelle balise permet d'avoir du texte rayé dans un document HTML?
5 <S>
5 <U>
5 <I>
5 <B>
49) Laquelle de ces balises permet d'écrire la formule H2O?
5 H<SUP>2</SUP>O
5 H<SUB>2</SUB>O
5 H<S>2</S>O
5 H<I>2</I>O
5 <INDENT> paragraphe </INDENT>
5 <BR> paragraphe </BR>
5 <BLOCKQUOTE> paragraphe </BLOCKQUOTE>
5 <Q> paragraphe </Q>
51) Quel est le code HTML pour mettre un texte un peu plus petit?
5 <S>
5 <STRIKE>
5 <SMALL>
5 <PETIT>
52) Les balises <B> </B> permettent d'avoir du texte en
5 Gras
5 Citation
5 Interligne
5 Italique
53) Quel est le rôle de la balise <U> ? 5 barrer un texte
5 écrire un texte souligné
5 écrire un texte en gras
5 écrire un texte plus grand
54) Pour obtenir des caractères les plus petits possibles (à partir d'une taille
normale), combien de fois doit-on utiliser la balise <SMALL>?
53
54
51
52
55) Quelle est la bonne façon d'écrire Ecole Secondaire
5 <I><U>École Secondaire</I></U>
5 </I></U> École Secondaire<I><U>
5 <I><U> École Secondaire</U></I>
5 <U><I> École Secondaire</U></I>
56) Parmi les choix de style logique ci dessous, lequel te permettra d'écrire du texte
avec une police non-proportionnelle de type "courrier"?
<SAMP>Texte</SAMP>
<EM>Texte</EM>
<STRONG>Texte</STRONG>
<CITE>Texte</CITE>
57) Avec les balises de style physique, quelle(s) balises(s) doit-on utiliser pour
avoir la taille la plus grande possible?
5 <BIG> </BIG>
5 <BIGGER> </BIGGER>
5 <BIGGEST> </BIGGEST>
5 <BIG><BIG><BIG><BIG> </BIG></BIG></BIG></BIG>
58) En temps normal, le caractère, ou chiffre, placé en indice a une taille plus petite
que le reste du texte, parmi les choix ci-dessous, lequel vous donnera un exposant
de taille identique au reste du texte dans l'exemple 2CO2.
5 2CO<BIG>b<SUB>2</SUB></BIG>
5 <BIG>CO<SUB>2</BIG></SUB>
5 2CO<SUB><BIG>2</SUP></BIG>
59) Quelle balise est-il recommandée d'utiliser pour laisser son adresse
personnelle dans une page web?
5 <ADDRESS> .</ADDRESS>
5 <E-MAIL> </E-MAIL>
5 <PERSON> </PERSON>
5 <MAIL> </MAIL>
60) Qu'arrivera-t-il si, de façon accidentelle, vous utilisez 2 fois de suite la balise
<I><I> pour mettre en italique un mot quelconque et que vous en fermez </I> juste
une?
5
5 Le reste du texte sera rendu en italique.
5 Rien ne s'affichera à cause de l'erreur.
5 Le mot en question sera affiché avec un italique plus prononcé.
61) Quelle balise de style physique te permettra d'avoir du texte en caractères gras
dans tes pages HTML?
5 <BLD>
5 <BB>
5 <B>
5 <BOLD>
62) Parmi les choix de style logique ci dessous, lequel te permettra de mettre en
gras le mot "Jamais"?
<EM>Jamais</EM>
<STRONG>Jamais</STRONG>
<SUB>Jamais</SUB>
5 <SUP>Jamais</SUP>
63) Parmi les choix de style logique ci dessous, lequel te permettra de mettre en
rayé les mots "École secondaire"?
5 <EM>École secondaire</EM>
5 <STRONG>École secondaire</STRONG>
5 <SUB>École secondaire</SUB>
5 <STRIKE>École secondaire</STRIKE>
64) Les balises <EM> et <STRONG> sont des exemples de balises de:
5 Style forcé
5 Style logique
5 Style physique
5 Style libre
5 Gras
5 Italique
5 Gras et Italique
5 Illisible
66) Quel est le code HTML pour mettre un texte un peu plus grand?
5 <SMALL>
5 <S>
5 <B>
5 <BIG>
67) Quelle balise pouvez-vous utiliser pour libérer la marge de gauche si vous
utilisez une image de fond avec une partie à gauche plus foncée ou différente (Image
de fond de style spirale) du reste de l'image?
5 EM>Texte</EM>
5 <INDENT>Texte</INDENT>
5 <CITE>Texte</CITE>
5 <BLOCKQUOTE>Texte</BLOCKQUOTE>
68) Quelle balise est-il recoomandée d'utiliser pour laisser son adrresse de courrier
électronique dans une page web?
5 <ADDRESS> .</ADDRESS>
5 <PERSON> </PERSON>
5 <E-MAIL> </E-MAIL>
5 <MAIL> </MAIL>
69) Avec "l'Explorateur Internet" de Microsoft, quelle balise ne mettra pas le texte
en italique?
5 <EM>
5 <I>
5 <SAMP>
5 <CITE>
70) Laquelle de ces balises permet d'écrire la formule E=MC2?
E = MC<SUP>2</SUP>
E = MC<SUB>2</SUB>
E = MC<S>2</S>
E = MC<I>2</I>
71) Les balises <I> </I> permettent d'avoir du texte en:
5 Gras
5 Citation
5 Interligne
5 Italique
72) Pour obtenir des caractères les plus grands possibles (à partir d'une taille
normale), combien de fois doit-on utiliser la balise <BIG>?
5 1
5 2
5 3
5 4
73) Quelle est la bonne façon d'écrire Ecole des Patriotes en plus d'être en gras?
5 <I><U><B> École Secondaire</B></U></I>
5 </I><B></U> École Secondaire<I><U></B>
5 <B><I><U> École Secondaire</U></I></B>
5 <B><U><I> École Secondaire</U></I></B>
5 <BLOCKQUOTE> .</BLOCKQUOTE>
5 <TAB> .</TAB>
5 Plusieurs fois <BLOCKQUOTE> . et autant de fois </BLOCKQUOTE> 5 <CITE>
</CITE>
75)Que fait la balise <TT>?
5 Écrit avec une police à espacement constant.
5 N'est pas une balise de disposition de texte.
5 Permet de respecter les retours et les espaces
5 Permet de cacher le texte de l'internaute.
76) Quelle balise peut-on utiliser pour avaoir la même police que dans "bloc-
notes"?
5 <EM>
5 <TT>
5 <SAMP>
5 <Q>
77) En temps normal, le caractère, ou chiffre, placé en exposant a une taille plus
petite que le reste du texte, parmi les choix ci-dessous, lequel vous donnera un
exposant de taille identique au reste du texte dans l'exemple 2ab2
5 2a<BIG>b<SUP>2</SUP></BIG>
5 <BIG>2ab<SUP>2</BIG></SUP>
5 2ab<SUP><BIG>2</BIG></SUP>
5 2ab<SUP><BIG>2</SUP></BIG>
78) Avec les balises de style physique, quelle(s) balise(s) doit-on utiliser pour avoir
la taille la plus petite possible?
5 <SMALL> </SMALL>
<SMALL>.<SMALL> </SMALL></SMALL>
<SMALLER> </SMALLER>
<SMALLEST> </SMALLEST>
79) Parmi les choix ci-dessous, lequel devras-tu utiliser pour écrire l'expression
mathématique 234 = 4 096
5 2<SUP>3<SUP>4</SUP></SUP> = 4 096
5 2<SUP>3<SUB>4</SUB></SUP> = 4 096
5 2<SUP><SUP>34</SUP></SUP> = 4 096
5 <SUP>2<SUP>3<SUP>4</SUP></SUP></SUP> = 4 096
80) Qu'arrivera-t-il si, de façon accidentelle, vous utilisez 2 fois de suite la balise
<B><B> pour mettre plus foncé un mot quelconque et que vous en fermez </B> juste
une?
5 Rien, le navigateur écrira la suite de façon normale.
5 Rien ne s'affichera à cause de l'erreur.
5 Le mot en question sera affiché avec un gras plus foncé.
81) Quelle balise te permettra d'avoir l'en-tête le plus gros?
5 <OL TYPE="1">
5 <H6>
5 <HEAD>
5 <H1>
82) Quelle balise doit-on utiliser pour faire un changement de ligne?
5 <BR>
5 <HR> 5 <UL>
5 <LI>
83) Parmi les choix suivants, lequel donne la plus petite taille?
5 <H1>
5 <H6>
5 <FONT SIZE=4>
5 <FONT SIZE=6>
84) Quelle est la grandeur des lettres par défaut?
5 <FONT SIZE=1>
5 <FONT SIZE=2>
5 <FONT SIZE=3>
5 <FONT SIZE=4>
85) L'attribut de la balise <BODY> pour la couleur du texte par défaut est.
TEXTE
FACE
FONT
5 TEXT
86) Pour une balise imaginaire <HOHO>, que doit être la balise de fermeture?
5 <\HOHO>
5 </HOHO>
5 <END/HOHO>
5 <HOHO/>
87) Parmi les choix ci dessous, laquelle te permettra de séparer les paragraphes
par une ligne blanche?
5
5 <P>
5 <OL>
5 <DT>
88) Si vous ne spécifiez aucune police spéciale à utiliser dans <FONT> ou
<BASEFONT> quelle police sera utilisée par défaut?
5 La police "Times New Roman".
5 La police "Arial".
5 La police par défaut selon la version du navigateur.
5 La page ne sera pas affichée - il y aura un message d'erreur
89) Si vous voulez avoir un paragraphe avec une police légèrement plus petite que
les autres, quelle balise HTML devez-vous alors utiliser?
5 <TEXT="-1"> paragraphe </TEXT>.
5 <FONT SIZE="-1"> paragraphe </FONT>.
5 <FONT TEXT="-1"> paragraphe </FONT>.
90) Les paragraphes sont définis par la paire de balises:
5 <P> <P>
5 <P> </P>
5 </P> <P>
5 <P> <endP>
91) Une fin de ligne dans le langage HTML utilise la balise
5 <HR> 5 <BR>
5 <PR>
5 <TR>
92) Parmi les choix ci-dessous, lequel devrez-vous utiliser pour placer un
paragraphe en retrait - pas collé contre la marge de gauche?
5 <INDENT> paragraphe </INDENT>
5 <BR> paragraphe </BR>
5 <BLOCKQUOTE> paragraphe </BLOCKQUOTE>
5 <Q> paragraphe </Q>
93) Parmi les choix ci-dessous, lequel vous permettra de centrer un en-tête de
niveau 3?
5 <CENTER><H3>Information HTML</H3></CENTER>
<FONT ALIGN="center"><H3>HTML</H3></FONT>
<MIDDLE><H3>Information HTML</H3></MIDDLE>
<H3 ALIGN="center">Information HTML</H3>
94) Parmi les choix ci-dessous, lequel vous permettra de placer un paragraphe
contre la marge de droite?
5 <TEXT ALIGN="right"> paragraphe </TEXT>.
5 <BODY ALIGN="right"> paragraphe </BODY>.
5 <ALIGN="right"> paragraphe </ALIGN>.
5 <P ALIGN="right"> paragraphe </P>.
95) Parmi les choix de réponses, lequel est juste dans l'utilisation de la balise
<FONT>?
5 <FONT FACE="Arial" SIZE=4 COLOR="#FFFFFF">
5 <FONT FACE="A" SIZE=0 COLOR="bluish">
5 <FONT FACE="Arial" SIZE=44 COLOR="#FFFFFF">
5 <FONT FACE="Arial SIZE=4 COLOR=#FFFFFF">
96) Quelle est la différence entre la balise <P> et la balise <BR>?
5 La balise <P> place le texte en retrait et pas la balise <BR>.
5 Vous devriez utiliser seulement la balise <P> et jamais la balise <BR>
5 Rien, ils sont tous les deux identiques
97) Si vous voulez un paragraphe avec des caractères de couleur rouge, quelle
balise HTML débutera le paragraphe et quelle balise HTML se trouvera à la fin du
paragraphe?
5 <FONT COLOR="red"> au début et </FONT> à la fin.
5 <FONT="red"> au début et </FONT> à la fin.
5 <TEXT COLOR="red"> au début et </TEXT> à la fin.
5 <FONT COLOR="red"> au début et </FONT COLOR> à la fin.
98) Quelle est la plus grande taille que l'on peut obtenir avec la balise <FONT>?
5 3
5 6
5 7
5 12
99) Parmi les choix suivants, lequel est vrai au sujet des en-tête de paragraphes?
5 <H6> et </H6> donnent la plus grande taille.
5 <H1> et </H1> donnent la plus petite taille.
5 <H2> et </H2> donnent une taille plus grande que <H3> et </H3>
5 <H2> et </H2> donnent une taille plus petite que <H3> et </H3>
100) Quelles balises devez-vous utiliser pour avoir un titre de paragraphe de niveau
1 avec une police de type "Arial" , centré et de couleur bleue?
5 <CENTER><FONT FACE = "Arial" COLOR =
"blue"><H1>Titre</H1></FONT></CENTER>
5 <FONT FACE="Arial" COLOR=blue"
ALIGN="center"><H1>Titre</H1></FONT>
5 <FONT TYPE="Arial" COLOR="blue"
ALIGN="center"><H1>Titre</H1></FONT>
<FONT FACE="Arial" COLOR="blue" ><H1>Titre</H1></CENTER>
101)
5 <H1>
5 <H3>
5 <H6>
5 <H9>
102) Quelle balise utilise-t-on pour séparer des section sur une page Web?
5 <DIV>
5 <SPLIT>
5 <SECT>
5 <NEW>
103) Quel est l'attribut qui vous permet de changer la couleur avec FONT?
5 SIZE
5 POLICE
5 FACE
5 COLOR
104) Quelle balise sert à changer de ligne et inserer une ligne blanche.
5 <HR>
5 <BR>
5 <P>
5 <PRE>
105) Parmi les choix suivants, lequel des balises suivantes te permettra d'avoir du
texte en bleu dans une page HTML?
5 <FONT TEXT="#0000FF"> </FONT>
5 <FONT COLOR="#0000FF"> </FONT>
5 <FONT COLOUR="#0000FF"> </FONT> 5 <FONT BGCOLOR="#0000FF"> </FONT>
106) Quel est l'effet de la balise <BR> ?
5 Fait passer une ligne
5 Fait passer une ligne et laisse une tabulation
5 Passe à la ligne suivante
5 Passe à la ligne suivante et laisse une tabulation
107)Quel est l'effet de la balise <P> ?
5 Fait passer une ligne
5 Fait passer une ligne et laisse une tabulation
5 Passe à la ligne suivante
5 Passe à la ligne suivante et laisse une tabulation
108) Occasionnellement dans vos pages HTML, vous voudriez ajouter un
espacement vertical entre les paragraphes. Quelle balise devriez-vous utiliser?
5 <BR>
5 <HR>
5 <TR>
5 <VR>
109) Que fait la balise </P>
5 Terminer un paragraphe
5 Terminer une section dans le texte
5 Débuter une nouvelle ligne
5 Débuter un nouveau paragraphe
110) Lequel de ces attributs ne peut pas être utilisé avec la balise <FONT>?
5 COLOR
5 ALIGN
5 SIZE
5 FACE
111) Parmi les choix suivants, lequel donnera la plus grande taille possible pour une
page HTML?
5 <FONT SIZE=1>
5 <FONT SIZE =7>
5 <BIGGEST FONT=7>
5 <LARGEST FONT=3>
112) Pour fixer la police de caractères d'un texte, on utilise l'attribut
5 FONT
5 FACE
5 POLICE
113) Quelle balise utilise-t-on pour changer le style du texte de normal à ARIAL?
5 <FONT STYLE ="Arial">
5 <FONT FACE ="Arial">
5 <FONT SIZE ="Arial">
5 <FONT CHANGE= "Arial">
114) Lequel de ces options ne fonctionnera pas avec <P> ?
5 ALIGN = "left"
5 ALIGN = "center"
5 ALIGN = "right"
5 ALIGN = "top"
115) Quelle est la balise utilisée pour sauter une ligne?
5 <DIV>
5 <I>
5 <BR>
5 <NL>
116) Quel est le rôle des balises <Hn> </Hn>?
5 Mettre une ligne horizontale de différentes largeur.
5 Placer des titres de différents niveaux.
5 Placer horizontalement du texte de tailles différentes.
5 Placer le texte à une certaine distance du bord gauche de l'écran.
117) Quelle est la taille des lettres par défaut?
5 <FONT SIZE=1>
5 <FONT SIZE=2>
5 <FONT SIZE=3>
5 <FONT SIZE=4>
118) Que fait la balise <P ALIGN="center">?
5 Débute un nouveau paragraphe avec le texte aligné au centre.
5 Débute un nouvelle section avec le texte aligné au centre.
5 Débute un nouvelle ligne avec le texte aligné au centre.
5 Toutes ces réponses.
119) Parmi les propositions suivantes quelle est celle qui est juste:
5 Le Heading 6 est plus grand que le Heading 1.
5 Il y a 6 niveaux de Heading.
5 La balise permettant de mettre un titre à l'écran est <TITLE> et </TITLE>.
5 La balise <FONT> permet de changer de taille sur 4 niveaux.
120) Quelle différence y a-t'il entre un en-tête H4 et un en-tête H6?
5 L'en-tête H4 représente un format plus grand que l'en-tête H6.
5 L'en-tête H4 représente un format plus petit que l'en-tête H6. 5 C'est la même grandeur
de texte mais de couleur différente.
5 L'en-tête H4 est représenté en italique et l'en-tête H6 en gras.
1° Les balises <audio> et <video> sont disponibles

Bonne réponse : depuis HTML5

2° Quelle information contenue entre les balises <head> </head> est visible quand on surfe ?

Bonne réponse : <title>

3° En HTML5 pour mettre en gras, j'utilise de préférence ?

Réponse : <strong>

4° Comment mettre un commentaire dans une feuille de style ?

Réponse : /* */

5° Quelle propriété est utilisée pour définir un interligne en CSS ?

Réponse : line-height

6° Que fait la balise <s> ?

Réponse : barré
7° Comment couper un mot trop long ?

Réponse : <wbr>

8° Comment inclure une feuille de style dans une page html5 ?

Réponse : <link rel="stylesheet" href="feuille.css">

9° Quelle balise utiliser pour regrouper les champs d'un formulaire en les entourant d'une bordure ?

Réponse : <fieldset>

10° A quoi sert la balise <canvas> ?

Réponse : permet d'effectuer des rendus dynamiques d'images via des scripts

1. Quelle balise utilisera-t-on de préférence pour le titre principal d'une page html:

• <h1>

• <head>

• <heading>

• <h6>

2. Utiliser la balise h1 signifie que l'on veut que le titre apparaisse plus gros que
si l'on utilisait la balise h2 :

• vrai

• faux

3. Pour mettre en gras une partie de texte dans une page html:

• on utilise une balise html spéciale.

• on utilise une propriété css.


4. Les commentaires en HTML commencent par <!-- et finissent par -->.

• Vrai

• Faux

5. En HTML5, la balise <header> a le même rôle que la balise <head> ?

• Vrai

• Faux

6. On souhaite rédiger une page html avec des énoncés et des corrections.

Pour cela, on va utiliser la balise <div>. Quel est l'attribut de <div> qui permettra de
différencier les énoncés des corrections ?

• l'attribut class=""

• l'attibut id=""

• la balise <strong>

• la balise <p>

7. Quel est le doctype d'un document HTML5 ?

• <!doctype html5>

• <!doctype html>

• <!doctype html PUBLIC "-//W3C//DTD HTML5.0 Strict//EN">

8. Pour créer un lien vers la page d'accueil de Wikipédia, on écrira...

• <a target="http://wikipedia.org">Wikipédia</a>

• <a href="http://wikipedia.org">

• <a href="http://wikipedia.org">Wikipédia</a>

9. Quels éléments sont nécessaires pour créer une liste dont les items ne sont
pas numérotés ?

• ul et li

• ol et li
• ul et ol

10. Laquelle de ces syntaxes est correcte pour embarquer une image dans la
page html?

• <img>src="mon-image.jpg" alt="Une image"</img>

• <img src="mon-image.jpg" alt="Une image">

• <img href="mon-image.jpg" alt="Une image">

11. Le rôle du CSS est de:

• Mettre en forme les éléments html d'une page.

• Définir des formulaires.

• Créer des sites e-commerce.

12. Laquelle de ces pratiques doit être exceptionnelle (c'est à dire très rarement
utilisée):

• placer le css dans un élément HTML style à l'intérieur de la balise


head de la page.

• placer le css dans un attribut style de chaque élément html dans la


page.

• placer le css dans un fichier ".css" séparé

13. Que veut dire HTML ?

• HyperText Make Language

• HyperText Markup Language

• HyperText Make Link

• HyperText Markup Link

14. Que veut dire CSS ?

• Cascading Style Shape

• Cascade Science Sheets

• Cascading Style Sheets


15. Le code couleur rgb(35, 16, 7) se traduit en hexadécimal par:

• #351607

• #231007

• #320170

• #071023

16. Le code couleur #aa1100 se traduit en RGB par:

• rgb(170, 17, 0)

• rgb(20, 11, 0)

• rgb(100, 17, 0)

• rgb( 0, 17, 170)

17. La structure correcte pour une page html est:


<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title> Le titre de la page </title>
</head>
<html lang="fr">
<body>
ICI LE CONTENU DE LA PAGE
</body>
</html>


<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title> Le titre de la page </title>
</head>

<body>
ICI LE CONTENU DE LA PAGE
</body>
</html>


<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title> Le titre de la page </title>
</head>
<body>
<html lang="fr">
ICI LE CONTENU DE LA PAGE
</html>
</body>


<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title> Le titre de la page </title>
</head>

<body>
ICI LE CONTENU DE LA PAGE
</html>
</body>

18. Avec la règle css suivante :

p.bli{
color: red;
}

• le texte de tous les paragraphes sera rouge.

• seul le texte des paragraphes de classe bli sera rouge.

• seul le texte du paragraphe d'identifiant bli sera rouge.

• la couleur de fond des paragraphes de classe bli sera rouge.


1. Quel est le doctype d'un document HTML5 ?
• <!DOCTYPE html5>
• <!DOCTYPE html> (correct)
• <!DOCTYPE html PUBLIC "-//W3C//DTD HTML5.0 Strict//EN">

2. Quelle est la syntaxe pour déclarer l'encodage des caractères du document


en UTF-8 ?

• <meta encoding="text/html; charset=utf-8">


• <meta charset="text/html; UTF-8"> (faux)
• <meta charset="utf-8"> (correct)

Le nouvel attribut charset sur la balise meta permet de simplifier la syntaxe.

3. Quelle nouvelle balise de section permet de regrouper un contenu tangentiel


au contenu principal du document ?

• <section id="sidebar">
• <sidebar>
• <aside> (correct)
• <details>
• La nouvelle balise <time> permet de baliser une date structurée. Quelle
serait sa syntaxe pour le 1er avril 2012 à 13h37 ?
• <time datetime="2012-04-01T13:37:00Z"></time> (correct)
• <time value="2012-04-01 13:37"></time>
• <time datetime="01/04/2012 13H37M00S"></time>
• À partir de quelle version d'Internet Explorer peut-on utiliser nativement
les éléments de section HTML5 (sans hack ou script complémentaire) ?
• Internet Explorer 8
• Internet Explorer 9 (correct)
• Internet Explorer 10
• Quelle est la méthode pour associer une légende complète à une
illustration ?
• <figure><img src="image.jpg"><figcaption>La
légende...</figcaption></figure> (correct)
• <figure src="image.jpg" legend="#cap1"></figure><figcaption id="cap1">La
légende...</figcaption>
• <figure><legend>La légende...</legend><img src="image.jpg"></figure>

7. Comment représenter une barre de progression à 50% d'avancement ?

• <progress value="50" max="100">50%</progress> (correct)


• <input type="progress" value="0.5">50%</progress>
• <input type="progress" value="50" max="100" title="50%" /> (faux)

C'est l'attribut value sur l'élément progress qui détermine son état.

8. Comment associer une liste de choix/suggestions à un champ d'entrée texte


?
• <input datalist="fruits"><list id="fruits"><option
value="Kiwi"><option value="Orange"><option
value="Mangue"></list>
• <input list="fruits"><datalist
id="fruits"><option>Kiwi</option><option>Orange</option><
option>Mangue</option></datalist> (correct)
• <input list="fruits"><select><datalist id="fruits"
values="Kiwi,Orange,Mangue" /></select> (faux)

L'élément datalist contient les différentes options proposées, il est relié à


l'input par l'attribut list.

9. Quel attribut permet d'afficher une image par défaut pour l'élément
<video> ?

• <video preview="apercu.jpg"> (faux)


• <video><param name="thumbnail" value="apercu.jpg" /></video>
• <video poster="apercu.jpg"> (correct)

C'est l'attribut poster, auquel on donne le chemin vers une image, qui associe
un aperçu à la balise video.

10. Quelle balise doit permettre l'inclusion de sous-titres textes dans les vidéos
lues avec <video> ?

• <track src="soustitres.vtt"> (correct)


• <subtitle source="soustitres.srt">
• <captions source="soustitres.srt">

11. Que signifie XHTML ?

• eXtensible HyperText Markup Language


• eXtra HomeTabulation of Mailing List
• eXciting Hyperspace TradeMark Language
• XpTdr Mdr Lol

La bonne réponse est eXtensible HyperText Markup Language.

Plus d'informations sur le site du W3C.

12. XHTML 1.0 est devenu une recommandation officielle en...

• 2000
• 2001
• 2002
• 2003

La bonne réponse est 2000, plus précisément le 26 janvier 2000, puis révisé en
août 2002.

Plus d'informations sur le site du W3C.

13. Quelle règle ne différencie pas XHTML de HTML ?

• Les balises doivent s'écrire en minuscule


• L'attribut "target" est interdit
• Toutes les balises ouvertes doivent être fermées
• Les attributs doivent s'écrire en minuscule

L'attribut "target" est autorisé en HTML et en XHTML dans leurs versions


transitionnelles. Il est cependant interdit dans leurs versions strictes.
Plus d'informations sur le bon usage de l'attribut Target.

14. Comment structure-t-on un paragraphe en XHTML ?

• <P></P>
• </p><p>
• <P></p>
• <p></p>

La bonne réponse est <p></p>. Les majuscules ne sont pas autorisées dans le
nom des balises en XHTML.

15. Quel élément dans cette liste est déprécié (deprecated) en XHTML 1.0 strict ?

• <table>
• <em>
• <font>
• <blockquote>
• <option>

La bonne réponse est <font>.

16. Laquelle de ces balises est valide en XHTML 1.0 strict ?

• <string>
• <tong>
• <samp>
• <applet>
• <center>

La bonne réponse est <samp>.


<center> et <applet> sont dépréciées en XHTML 1.0 strict. Les autres balises
n'existent pas.

17. Quel attribut correspond à une infobulle affichée au survol ?

• alt
• title
• src
• desc
• longdesc

"title" correspond à l'infobulle, le petit cadre (jaune par défaut) qui s'affiche au
survol d'un élément.
La confusion provient généralement d'un bug de comportement de IE : celui-ci
crée également une infobulle avec l'attribut "alt", alors que cela n'a pas lieu
d'être.
Voici comment contrôler et modifier l'apparence d'une infobulle.

18. Pour insérer un code JavaScript dans une page, j'utilise...

• <code>
• <javascript>
• <java>
• <script>

La bonne réponse est <script>.

19. Que représente l'élément <dl> ?

• Une adresse postale


• Une liste de définitions
• Un fichier à télécharger
• Rien du tout, il n'existe pas

<dl> représente une liste de définition.


Il existe trois types de liste dans (X)HTML. Les deux types simples sont la liste
ordonnée (<ol>) et liste non ordonnée (<ul>). Il existe également la liste de
définitions (<dl>).

Les listes de définitions sont conçues pour des glossaires. Les glossaires
comprennent une liste d'éléments. Les éléments d'une liste de définitions sont
constitués par une expression à définir (<dt>) et la définition qui le concerne
(<dd>).

Source : SelfHTML.

20. Quelle écriture est valide en XHTML ?

• <img alt="texte alternatif" src="image.png" />


• <img src="image.png" />
• <img alt="" src="image.png">
• <img alt="texte alternatif" />
• <IMG alt="" src="image.png" />

Les attributs "src" (source) et "alt" (texte alternatif) sont obligatoires dans les
doctypes frameset, transitional et strict. L'attribut "alt" peut avoir une valeur
vide lorsqu'il désigne une image décorative (il est cependant préférable de
privilégier les feuilles de style dans ce cas).
Notez que la balise <img> est auto-fermante et finit par un slash avant le
chevron de fermeture.

Plus d'infos dans le Guide Accessiweb.

21. XHTML 1.0 est...


o Le successeur de XML 1.0
o Une reformulation de SGML et de HTML 4
o Une reformulation de HTML 4 en XML 1.0
o Un langage n'ayant aucun rapport avec HTML

La première version de XHTML (1.0) est une simple reformulation de HTML 4


en XML 1.0.
Il s'agit donc uniquement d'un changement de syntaxe, aucune fonctionnalité
n'ayant été ajoutée ou retirée.
La conversion d'un document en HTML 4.01 conforme en XHTML 1.0 peut se
faire automatiquement sans perte d'information.

Source : Wikipedia.

22. Pour mon nouveau site, je vais choisir :


o Proposition A :
XHTML1.1. C'est la norme la plus récente du W3C
o Proposition B :
XHTML1.0 strict, qui est plus correct qu'XHTML1.0 transitional
o Proposition C :
XHTML1.0 frameset, car j'ai des <frames>
o Proposition D :
XHTML1.0 transitional, car certains contenus de mon site contiennent
des target="_blank"
o Propositions C et D
o Propositions A et B

Les propositions C et D sont justes. On choisit un doctype selon ses besoins et


non selon une mode.
Chaque doctype est parfaitement valide, normé et "correct". Aucun doctype
n'est "meilleur" qu'un autre.

23. Quelle est la seule affirmation vraie dans cette liste ?


o Je me mets à XHTML donc je supprime les tableaux pour la mise en
page
o Je me mets à XHTML donc mes documents seront sémantiquement
corrects
o Je me mets à XHTML donc la mise en forme devra être traitée en CSS
o Je me mets à XHTML donc ma bande passante sera allégée
o Je me mets à XHTML donc je devrai écrire les balises en minuscule

Dans cette liste, seule la dernière affirmation est vraie. XHTML n'est qu'une
reformulation plus rigoureuse de HTML (fermeture des balises, écriture en
minuscule, etc.).
Toutes les autres notions (tableaux, CSS, sémantique, accessibilité) existent
depuis longtemps en HTML. De ce côté, XHTML n'a rien apporté.

24. Comme quelques autres exceptions, l'élément de type bloc <p> a une
spécificité, laquelle ?
o Il ne peut pas contenir d'élements de type en-ligne
o Il ne peut pas contenir d'éléments de type blocs
o Il ne peut pas être enfant d'un élément <form>
o <p>, <div>, <form> ou autre, c'est la même chose finalement

Par défaut, les éléments de type bloc occupent toute la largeur disponible,
s'affichent les uns sous les autres et peuvent contenir d'autres éléments de
type bloc.
Il existe cependant quelques exceptions qui ne peuvent contenir que des
éléments de types en-ligne. Parmi ces exceptions, <p>, <hn>, et <address>.

25. En XHTML 1.0 Strict, quelle écriture est invalide ?


o <form action="kiwi.html"><p>mon paragraphe</p></form>
o <form action="kiwi.html"><address>mon adresse</address></form>
o <form action="kiwi.html"><input type="text"
value="fruit" /></form>
o <form action="kiwi.html"><h1>mon titre</h1></form>

<form action="kiwi.html"><input type="text"


value="fruit" /></form> n'est pas valide en XHTML Strict.
L'élément form ne peut contenir directement que les éléments "p", "h1", "h2",
"h3", "h4", "h5", "h6", "div", "pre", "address", "fieldset", "ins" et "del".
Dans notre exemple, la proposition suivante est valide :

<form action="kiwi.html">
<p>
<input type="text" value="fruit" />
</p>
</form>

Pour en savoir plus sur les spécificités de certains éléments, direction la FAQ

26. Quelle écriture est correcte en XHTML ?


o <p id="HomePage">
o <p ID="HomePage">
o <p ID="homepage">
o <p id=homepage>

La valeur de l'attribut peut contenir des majuscules; cependant l'attribut lui-


même doit obligatoirement être écrit en minuscule. Les guillements (simples
ou doubles quotes) sont obligatoires en XHTML.

27. Quel élément dans cette liste est de type "block" ?


o <kbd>
o <map>
o <samp>
o <q>
o <code>

Dans cette liste, seule la balise <map> est de type bloc.

Pour en savoir plus : la balise map... et les autres.

28. Quel élément dans cette liste est déprécié (deprecated) en XHTML 1.0 ?
o <strong>
o <em>
o <i>
o <b>
o <u>

Dans cette liste, seul la balise <u> (soulignement) n'est plus acceptée en
XHTML.

29. Quel attribut est-il convenu d'employer pour désigner un élément qui ne
sera employé qu'une seule fois dans le document ?
o id
o name
o class
o alt

La bonne réponse est "id". Privilégiez les "id" pour vos éléments uniques, et
appliquez des classes aux éléments répétés. L'attribut "name" sauf exceptions
n'est plus valide en XHTML.

30. Ce code XHTML est-il valide ? <ul><li>élément de liste</li><p>détail de


l'élément</p><li>autre élément de liste</li></ul>
o Oui
o Non
o Peut-être
o Ça dépend
o Kiwi

Cette construction n'est pas valide car l'élément <ul> ne peut contenir
directement que des éléments <li>.
Dans cet exemple, l'élément <p> devra être contenu au sein de l'élément <li>

<ul>
<li>élément de liste
<p>détail de l'élément</p>
</li>
<li>autre élément de liste</li>
</ul>

31. Quels éléments sont obligatoires dans un document XHTML ?


o <!DOCTYPE> et <html>
o <!DOCTYPE>, <html> et <head>
o <!DOCTYPE>, <html>, <head>, et <body>
o <!DOCTYPE>, <html>, <head>, <body>, et <title>

Tous les éléments <!DOCTYPE>, <html>, <head>, <body>, et <title> sont


nécessaires pour qu'un document XHTML soit valide

32. Quelle balise n'a jamais existé (ni en HTML, ni en XHTML) ?


o <baseframe>
o <menu>
o <strike>
o <isindex>

<menu>, <strike> et <isindex> ont existé et ont été dépréciés avec la version
HTML 4.01. La bonne réponse est donc <baseframe>
Voici un tableau récapitulatif de toutes les balises existantes ou ayant existé.

33. Quel attribut doit obligatoirement posséder la balise <map> ?


o id
o alt
o src
o href

Depuis XHTML, l'attribut obligatoire de <map> est "id" (auparavant, c'était


l'attribut "name" qui était obligatoirement associé à <map>).
N'hésitez pas à parcourir cette classification des balises XHTML.

34. Quels sont les différents doctypes valides XHTML 1.0 ?


o Strict, Transitionnel, Loose
o Strict, Transitionnel, Loose, Frameset
o Strict, Transitionnel, Frameset
o Strict, Transitionnel, Compliant

Les différents doctypes valides sont Strict, Transitionnel et Frameset. "Loose"


n'a jamais été un doctype.

35. Dans quels cas, Internet Explorer 6 ne va-t-il pas passer en mode Quirks ?
o une page HTML Frameset ou Transitionnel
o Une page HTML sans DOCTYPE (donc non valide)
o une page avec un DOCTYPE XHTML précédé du prologue XML
o une page HTML qui contient n'importe quel caractère avant la DTD

IE6 adoptera le mode standard lorsque le Doctype est correctement formulé,


qu'il soit Strict, Frameset ou Transitionnel
Par contre, IE6 passra en mode Quirk dans les cas suivants :
* une page HTML sans DOCTYPE (donc non valide),
* une page HTML Frameset ou Transitionnel avec un DOCTYPE tronqué (sans
URL de la DTD),
* une page HTML qui contient n'importe quel caractère avant la DTD,
* une page HTML avec une DTD d'une version de HTML inférieure à la version
4,
* une page avec un DOCTYPE XHTML précédé du prologue XML.

36. Quelle écriture est recommandée en XHTML ?


o <script type="text/javascript" src="fichier.js"></script>
o <script type="text/javascript" src="fichier.js />
o aucune des deux
o toutes les deux

Seul l'attribut type est requis pour le type de contenu, et l'élément script ne
fait pas partie des éléments pour lesquels la syntaxe <script /> est
recommandée par XML1.0 et XHTML1.0 lorsqu'ils sont vides.
Pour des raisons d'interopérabilité, il est recommandé de ne jamais employer
la seconde syntaxe. La bonne réponse est donc <script
type="text/javascript"></script>
Dans tous les cas, vous aurez bien-sûr remarqué l'oubli d'un guillemet dans la
proposition 2, qui la rend invalide.

37. Quelle balise n'est pas auto-fermante ?


o <param>
o <optgroup>
o <area>
o <input>
<optgroup> est la bonne réponse. Les autres balises sont auto-fermantes, elle
se ferment à l'aide d'un slash avant le chevron fermant : <param />, <area />,
<input />.

38. Quelles versions de Internet Explorer interprêteront le code suivant ? <!--


[if gte IE 5.5000]> <div>code pour IE</div> <![endif]-->
o Toutes les versions IE inférieures à IE7
o Toutes les versions IE supérieures ou égales à IE5.5
o Toutes les versions IE inférieures ou égales à IE5.5
o Ce code est du langage Klingon, il n'a rien à voir avec le XHTML

La réponse est : Toutes les version IE supérieures ou égales à IE5.5 ("gte"


signifie "Greater Than or Equal").

Pour en savoir plus : Les commentaires conditionnels.

39. Comment spécifier correctement la langue d'un élément en XHTML 1.0 ?


o <div lang="fr" xml:lang="fr">Mangez des kiwis !</div>
o <div language="fr">Mangez des kiwis !</div>
o <div xml:language="fr">Mangez des kiwis !</div>
o aucune des trois

En XHTML 1.0, la langue d'un élément est indiquée de la manière suivante :


<div lang="fr" xml:lang="fr">Mangez des kiwis !</div>, ceci pour conserver
une compatibilité avec HTML. Notez que l'attribut "lang" est supprimé en
XHTML 1.1

40. Comment déclarer un code JavaScript de façon valide en XHTML ?


o <script language="Javascript">
o <script language="Javascript" type="text/javascript">
o <script type="text/javascript">
o <script type="text/javascript" version="1.2">
41. S’ils sont présents dans un tableau, dans quel ordre doivent apparaître
ces éléments de groupement ?
o thead / tbody / tfoot
o thead / tfoot / tbody
o aucune importance

La bonne réponse est "thead / tfoot / tbody", selon les recommandations du


W3C

42. En XHTML Strict, à quel élément "form" s’apparente-t-il au niveau du


type d’enfants directs possibles ?
o <blockquote>
o <dl>
o <div>

<blockquote>, comme <form> ne peut pas contenir directement des


éléments de type inline
Parents et enfants, les exceptions.

43. À quel élément doit appartenir l’élément "caption" ?


o <form>
o <blockquote>
o <table>

<caption> est un élément inhérent à <table> et décrivant sa légende.

44. Lequel de ces éléments n’existe pas en XHTML 1.0 ?


o <optgroup>
o <focus>
o <legend>

L'élément <focus> n'existe pas.

45. Dans une phrase, l’élément "dfn" entoure :


o le terme que l’on s’apprête à définir
o la définition du terme
o les deux ensemble

<dfn> entoure le terme que l’on s’apprête à définir.

46. Pour l’élément "input", quelle valeur de l’attribut "type" n’existe pas ?
o checked
o radio
o password

"checked" est un attribut et non une valeur de l'attribut "type".

47. En XHTML Strict, quel élément se rapproche le plus de "div" au niveau du


type d’enfants directs possibles ?
o <ul>
o <p>
o <li>

<li> est la bonne réponse car cet élément peut contenir tous types d'éléments
contrairement à <ul> qui ne peut contenir directement que des éléments <li>,
et à <p> qui ne peut pas contenir de blocs.
Parents et enfants, les exceptions.
48. Quel couple d’attributs permet de lier sémantiquement un "label" à un
champ dans un formulaire ?
o to / name
o rel / id
o for / id

La réponse est : for / id.


Pour en savoir plus : The label element.

49. En XHTML Strict, lequel de ces éléments est le plus restrictif au niveau des
enfants directs possibles ?
o <ol>
o <p>
o <dl>

La bonne réponse est <ol> qui ne peut être parent direct que d'éléments <li>.
<p> peut contenir tous les éléments de type inline, et <dl> peut contenir des
éléments <dt> et <dd>

50. "div" est à "span" ce que "blockquote" est à ?


o <q>
o <p>
o <em>
1. 1. Que signifie PHP?
A Personal Home Page
B Hypertext Preprocessor
C Pretext Hypertext Processor
D Preprocessor Home Page
Réponse
A, B
PHP signifier Hypertext Preprocessor, auparavant c’était Personal Home Page.

2. Les fichiers PHP ont l’extension …. ?


A .html
B .xml
C .php
D .ph
Réponse
C
Les fichiers PHP portent l’extension .php

3. Un script PHP devrait commencer par ___ ?


A <php
B <?php
C <?
D <?php
Réponse
B

Un script PHP devrait commencer par <?php et se termine par ?>, exemple:

<? php

// votre code PHP

?>

4. Lequel des éléments suivants doit être installé sur votre


ordinateur pour exécuter des scripts PHP?
A Adobe Dreamweaver
B PHP
C Apache
D IIS
Réponse

B, C, D
PHP, Apache et un serveur IIS ou WampServer doit être installé sur votre ordinateur pour
exécuter des scripts PHP.

5. Quelle version de PHP a introduit Try/catch Exception?


A PHP 4
B PHP 5
C PHP 5.3
D PHP 7.2
Réponse
B
PHP5 a introduit la gestion des exceptions avec try/catch qui est utilisée pour modifier le
déroulement normal de l’exécution du code si une condition d’erreur se produit.

Voici la structure d’un block try/catch :

<?php

try {

// le code qui pourrait lever une exception

catch (Exception $e) {

// le code qui gére l'exception

?>

6. Nous pouvons utiliser ___ pour commenter une seule ligne?


A /?
B //
C#
D /* */
Réponse
B
Pour commenter une seule ligne on utilise //, et pour commenter plusieurs lignes on utilise /* */

7. Laquelle parmi les instructions php suivantes va stocker 55


dans la variable nbr?
A
int $nbr= 55;
B
int nbr = 55;
C
$nbr= 55;
D
55= $nbr;
Réponse
C
PHP ne nécessite pas la définition de type explicite dans la déclaration de variable, sachant que
PHP7 a introduit le ‘Type Hinting’, dorénavant on pourrait utilisé les types primitif lors de la
déclaration d’une variable.

8. Quelle est la sortie de ce code?


<?php

$nbr1= 2;

$nbr2 = 2;

print $nbr1 . "+". $nbr2;

?>
A Erreur
B4
C2+2
D 2. + 2
Réponse

C
Les deux points sont utilisés pour la concaténation.
9. Quelle est la sortie de ce code?
<?php

$nbr1= 2;

$nbr2 = 2;

print $nbr1 + $nbr2;

?>
A Erreur
B4
C2+2
D 2. + 2
Réponse
B
L’instruction sera évaluée.

1. Laquelle des constantes magiques suivantes de PHP renvoie


le chemin complet plus le nom du fichier?
A _LINE_
B _FILE_
C _FUNCTION_
D _CLASS_
Réponse
B
_FILE_ est une constante magique qui renvoie Le chemin complet plus le nom du fichier. Depuis
PHP 4.0.2, _FILE_ contient toujours un chemin absolu alors que dans les versions antérieures, il
contenait un chemin relatif dans certaines circonstances.

2. Laquelle des variables suivantes peut-on lui attribuer une


valeur?
A $5var
B $_var
C $var
D $This
E Tout les réponses sont vrais
Réponse
B, D
Une variable ne peut pas commencer par un nombre. En plus, $this est une variable spéciale qui
ne peut pas être assignée, mais $This peut être assigné.

3. Quelle sera la sortie du code suivant?


<?php

$firstname = 'Alex';

$reffirstname = &$firstname;

$reffirstname = "My first name is : $reffirstname";

echo $reffirstname;

echo $firstname;

?>
A Erreur
B My first name is : AlexAlex
C My first name is : AlexMy first name is : Alex
D My first name is : Alex Alex
Réponse

C
La ligne

$reffirstname = &$firstname;
référencera $firstname via $reffirstname.

4. Lequel des énoncés suivants est correct à propos de PHP?


A PHP est un acronyme récursif pour « PHP: Hypertext Preprocessor ».
B PHP est un langage de script côté serveur intégré dans HTML.
C Il est utilisé pour gérer le contenu dynamique, les bases de données, le suivi de
session, voire même pour construire des sites de e-commerce entiers.
D Tout les réponses sont vrais
Réponse

D
Toutes les options ci-dessus sont correctes.
5. Laquelle des déclarations PHP suivantes affichera Hello
World à l’écran?
A
echo ("Hello World");
B
print ("Hello World");
C
printf ("Hello World");
D
sprintf ("Hello World");
E Tout les réponses sont vrais
Réponse
A, B, C
La fonction echo(), print() et printf() peuvent être utilisés pour afficher une déclaration à
l’écran. La fonction sprintf() est fonctionnellement identique à printf(), sauf que la sortie est
affectée à une chaîne plutôt que sur le navigateur.

6. Laquelle des fonctions suivantes trie un tableau dans l’ordre


inverse?
A rsort()
B shuffle()
C reset()
D sort()
Réponse

A
rsort() – Trie un tableau dans l’ordre inverse. Exemple :

<?php

$languages = array("Java","PHP","C++");

rsort($languages);

?>

La sortie:
———————-
C++

Java

PHP

7. Quelle sera la sortie du code PHP suivant?


<?php

$color = "blue";

$var = $color[2];

echo "$var";

?>
Al
B $color[2]
C $var
Du
Réponse

D
PHP traite les chaînes de caractéres de la même manière que les tableaux, ce qui permet
d’accéder à des caractères spécifiques via la notation de tableau.

8. Quelle sera la sortie du code PHP suivant?


<?php

$var = "Bon";

$var .= "jour";

echo "$var";

?>
A Bon
B jour
C jourBon
D Bonjour
Réponse
D
L’opérateur .= est un opérateur de concaténation. $var est égal à sa valeur actuelle concaténée
avec «jour».

9. PHP est-il sensible à la casse?


A Vrai
B Faux
Réponse

A
PHP est un langage sensible à la casse.

10. Laquelle des fonctions suivantes vérifie si une valeur


spécifique existe dans un tableau?
A krsort()
B key()
C in_array()
D extract()
E Tout les réponses sont vrais
Réponse

C
La fonction in_array() vérifie si une valeur spécifique existe dans un tableau. Exemple :

<?php

$languages = array("Java", "PHP", "Python", "C");

if (in_array("PHP", $languages))

echo "Une correspondance trouvée";

else

echo "Aucune correspondance trouvée";


}

?>

La sortie:
———————-

Une correspondance trouvée

1. Lequel des éléments suivants est un tableau associatif


contenant des variables de session disponibles pour un script
?
A $GLOBALS
B $_SERVER
C $SESSION
D $_SESSION
Réponse
D
$ _SESSION – Un tableau associatif contenant les variables de session disponibles pour un
script.

2. Quel sera le résultat du code PHP suivant?


<?php

$number = 9876;

$nbr = (array) $number;

echo $nbr[0];

?>
A9
B6
C 9876
D8
Réponse

C
L’opérateur (array) est un opérateur de casting utilisé pour convertir les valeurs d’un type de
données vers un tableau.

3. Quelle sera la sortie du code PHP suivant?


<?php

$total = "15 personne";

$autre = 5;

$total = $total + $autre;

echo "$total";

?>
A Erreur
B 20 personne
C 20
D 15 personne
Réponse
C
La valeur 15 est utilisée dans le calcul. Pourtant, si elle commence par autre chose qu’une valeur
numérique, la valeur sera 0.

4. Laquelle des fonctions suivantes crée un tableau?


A array()
B new array()
C array[]
D $array()
Réponse
A
< PHP 5.4:

$ tab = array();

> PHP 5.4:

$ tab = [];
5. Pouvez-vous attribuer une valeur par défaut à un paramètre
de fonction?
A Vrai
B Faux
Réponse

A
Nous pouvons définir un paramètre avec une valeur par défaut si l’appel de la fonction ne le
transmet pas. Exemple :

function myFunction($default = 10)

echo $default;

myFunction();

La sortie :
————

10

6. Quel énoncé affichera $x à l’écran?


A
echo "\$x";
B
echo "$$x";
C
echo "/$x";
D
echo "$x;";
Réponse
A
le backslash ou antislash « \ » est utilisée pour que le signe dollar soit traité comme un caractère
de chaîne normal plutôt que traiter $x comme une variable. L’antislash utilisée de cette manière
est appelée « caractère d’échappement ».

7. Quelle sera la sortie du code suivant?


<?php

function count() {

static $i = 0;

$i++;

echo $i;

count();

count();

count();

?>
A 123
B 111
C 000
D 011
Réponse

A
Puisque la variable $i est statique, il garde sa valeur précédente chaque fois que la fonction est
appelée.

8. Laquelle des méthodes suivantes connecte une base de


données MySql en utilisant PHP?
A mysql_connect()
B mysql_query()
C mysql_close()
D Aucune de ces réponses n’est vraie.
Réponse
A
PHP fournit la fonction mysql_connect() pour ouvrir une connexion à une base de données.

9. Lequel des énoncés ci-dessous est équivalent à $nbr +=


$nbr?
A
$nbr =+ $nbr
B
$nbr = $nbr + $nbr
C
$nbr = $nbr + 1
D
$nbr = $nbr + $nbr + 1
Réponse
B
a += b est une affectation plus addition dont le résultat est a = a + b. C’est la même chose pour la
soustraction, la multiplication, la division, etc.

10. Lequel des mots-clés suivants amène la boucle à ignorer le


reste de ses instructions et à retester immédiatement son état
avant de le répéter?
A break
B continue
Réponse

B
LE mot-clé « continue » amène la boucle à ignorer le reste de ses instructions et à tester de
nouveau son état avant de le répéter.

1. Quelle sera la sortie du code PHP suivant?


<?php

$a = 4;

$b = 4;

echo ($a === $b);

?>
A 4 === 4
B $a === $b
C1
D False
Réponse

C
L’opérateur === renvoie 1 si $a et $b sont équivalents et que $a et $b ont le même type.

2. Parmi les types de variables suivants, lesquels sont des


nombres à virgule flottante, comme 2.121 ou 22.1?
A Integers
B Doubles
C Booleans
D Strings
Réponse
B
Les valeurs de type double sont des nombres à virgule flottante, comme 2.121 ou 22.1.

3. Lequel des symboles ci-dessous est un caractère pour un


saut de ligne?
A \r
B \n
C /n
D /r
Réponse

4. Qui est le père de PHP?


A Rasmus Lerdorf
B Willam Makepiece
C Drek Kolkevi
D List Barely
Réponse

A
5. Laquelle des fonctions suivantes permet d’extraire une
partie d’un tableau?
A array_reverse()
B array_search()
C array_shift()
D array_slice()
Réponse

D
array_slice() – Permet d’extraire une partie d’un tableau. Exemple:

<?php

$a = array("Java","PHP","Python","Pascal","C");

print_r(array_slice($a,2));

?>

La sortie:

Array ( [0] => Python [1] => Pascal [2] => C )

6. Quelle est la valeur de $a et $b après l’appel de fonction?


<?php

function increment( &$arg ) {

$return = $arg;

$arg += 1;

return $return;

$a = 5;

$b = increment( $a );
?>
A a est 5 et b est 6
B a est 6 et b est 5
C Les deux sont 5
D Les deux sont 6
Réponse
B
$a contient 6 parce que $arg est passé par référence. $b contient 5 parce que la valeur de retour
de la fonction est une copie de la valeur initiale de l’argument.

7. Laquelle des méthodes suivantes de la classe Exception


retourne une chaîne de trace formatée?
A getMessage()
B getCode()
C getTrace()
D getTraceAsString()
Réponse
D
La méthode getTraceAsString () de la classe Exception retourne une chaîne de trace formatée.

8. Si $a = 5, que sera-t-il retourné quand


($a == 5) ? 10 : 15
est exécuté?
A5
B 15
C erreur
D 10
Réponse
D
« ? : » Est appelé un opérateur ternaire. Si la condition est vraie, la partie juste après le « ? » est
exécuté sinon la partie après « : »

9. Lequel des mots-clés suivants termine la boucle « for » ou


la condition « switch » et transfère l’exécution à l’instruction
qui suit immédiatement?
A break
B continue
Réponse

A
« break » met fin à la boucle « for » ou la condition « switch » et transfère l’exécution à
l’instruction qui en suit immédiatement.

10. Quelle sera la sortie du code PHP suivant?


<?php

$n = 24;

echo 'Quel est son nom? \n Il a $n ans ';

?>
A

Quel est son nom? \n Il a $n ans

Quel est son nom?

Il a $n ans

Quel est son nom? Il a 24 ans

Quel est son nom?

Il a 24 ans

Réponse

A
Lorsqu’une chaîne est entourée par des simples guillemets (‘ ‘), les variables et les séquences
d’échappement ne sont pas interprétées.
1. Lequel des énoncés suivants est correct à propos de PHP?
A PHP remplit des fonctions système, c’est-à-dire à partir d’un fichier de système qu’il
peut créer, ouvrir, lire, écrire et fermer.
B PHP peut manipuler des formulaires, c’est-à-dire rassembler des données à partir
de fichiers, enregistrer des données dans un fichier, envoyer un courrier électronique
et renvoyer des données à l’utilisateur.
C Vous ajoutez, supprimez, modifiez des éléments dans votre base de données via
PHP.
D Tout les réponses sont vrais
Réponse
D
Toutes les options ci-dessus sont correctes.

2. Lequel des éléments suivants fournit le code d’erreur


associé au téléchargement de fichiers?
A
$_FILES['file']['error']
B
$_FILES['file']['name']
C
$_FILES['file']['size']
D
$_FILES['file']['type']
Réponse
A
$_FILES[‘file’][‘error’] – fournit le code d’erreur associé au téléchargement de fichier.

3. Lequel des éléments suivants est utilisé pour déclarer une


constante?
A const
B constant
C define
D #pragma
E def
Réponse

C
4. Est-ce que nous pouvons utiliser plusieurs versions de PHP
en même temps?
A Vrai
B Faux
Réponse

5. Qu’est-ce qui est affiché?


$var = 'false';

if ($var) {

echo 'true';

} else {

echo 'false';

}
A True
B False
Réponse

6. Quel est la façon pour créer des commentaires en PHP?


A //code commenté en fin de ligne
B /* code commenté ici */
C #code commenté à la fin de la ligne
D Tout les réponses sont vrais
Réponse
D

7. Comment accédons-nous à la valeur ‘d’?


$tab = array(

'a',

4 => 'b',
1 => 'c',

'd'

);
A
$tab[0]
B
$tab[1]
C
$tab[2]
D
$tab[3]
E
$tab[4]
F
$tab[5]
Réponse
F

8. Quelles sont les déclarations conditionnelles prises en


charge par PHP?
A if
B if-else
C if-elseif
D switch
E Tout les réponses sont vrais
Réponse

9. Quelles sont les déclarations des boucles prises en charge


par PHP?
A La boucle for
B La boucle while
C La boucle do-while
D La boucle foreach
E Tout les réponses sont vrais
Réponse
E
10. Lequel des éléments suivants n’est PAS un opérateur de
comparaison PHP valide?
A !=
B >=
C <=>
D <>
E ===
Réponse

1. « Type Hinting » a été introduit dans quelle version de PHP?


A PHP 4
B PHP 5
C PHP 5.3
D PHP 6
Réponse

B
Depuis PHP 5, vous pouvez utiliser le type d’un argument dans une déclaration de fonction.
Lorsque vous appelez la fonction, PHP vérifie que les arguments sont du type spécifié.

2. Parmi les propositions suivantes, laquelle est la meilleure


façon pour définir une fonction en PHP?
A function { instructions; }
B type function_name(parameters) { instructions; }
C function_name(parameters) { instructions; }
D function function_name(parameters) { instructions; }
Réponse
D

3. Une fonction en PHP qui commence par __ (double trait de


soulignement) est connue sous le nom d’une _____?
A Fonction magique
B Fonction incorporée
C Fonction par défaut
D Fonction définie par l’utilisateur
Réponse
A
Les fonctions PHP commençant par un double trait de soulignement «__» – sont appelées des
fonctions magiques. Ce sont des fonctions qui sont toujours définies dans des classes et ne sont
pas des fonctions autonomes. Exemple : __set(), __get(), __sleep, __wakeup, etc. Ne les confondez
pas avec les constants magiques.

4. Quelle fonction est utilisée pour supprimer les espaces (ou


autres caractères) au début et à la fin d’une chaîne?
A trim_str
B strip_str
C strip
D trim
Réponse
D
La fonction trim() est utilisée pour supprimer les espaces (ou autres caractères) au début et à la
fin d’une chaîne. Exemple :

<?php

$str = "Hello World!";

echo trim($str,"Held!");

?>

La sortie:
—————-

llo Wor

5. Est-ce que « strstr() » et « strchr() » sont des alias?


A Vrai
B Faux
Réponse

A
strstr() est un alias de strchr(), qui permettent de trouver la première occurrence d’une chaîne
de caractéres. Exemple:

<?php
$email = 'firstname@test.com';

$domainName = strstr($email, '@');

echo $domainName;

?>

La sortie:
————————

@test.com

6. Quelle est la durée d’exécution par défaut définie dans


« set_time_limit() »?
A 20 secondes
B 30 secondes
C 40 secondes
D 35 secondes
Réponse

B
La fonction set_time_limit() qui permet d’ajuster dynamiquement le temps d’exécution
maximum autorisé pour un script. La limite par défaut est généralement 30 secondes

7. Quelle sera la sortie du code PHP suivant?


<?php

function display($msg)

echo "$msg";

$var = "display";

$var("Hello World!");
?>
A Error
B Hello World!
C0
D $msg
Réponse
B
Il est possible d’appeler une fonction en utilisant une variable qui stocke le nom d’une fonction.

8. Lequel des fonctions suivants est valide?


A function()
B $function()
C .function()
D €()
Réponse
D
Sauf D les autres sont des noms invalides. Selon l’expression régulière spécifiée ([a-zA-Z_\x7f-
\xff][a-zA-Z0-9_\x7f-\xff]*), un nom de fonction comme celui-ci est valide.

9. Quelle sera la sortie du code PHP suivant?


<?php

function check($prix, $tax="")

$totale = $prix + ($prix* $tax);

echo "$totale";

check(5);

?>
A 15
B0
C5
D 10
Réponse
C
Vous pouvez ajouter des arguments facultatifs en les plaçant à la fin de la liste et en leur
affectant une valeur par défaut.

10. Quelle est la différence entre « echo » et « print »?


A Ils sont pareils.
B « print » peut prendre plusieurs paramètres, tandis que « echo » ne peut pas
C « echo » peut prendre plusieurs paramètres, alors que « print » ne peut pas
D « print » est une fonction, et « echo » n’est pas une fonction.
Réponse
C
echo peut prendre plusieurs paramètres:

echo "Start", 1, 2, 3;

print() ne peut prendre qu’un paramètre:


print ("Start 123");

1. La fonction ____________ en PHP Renvoie une liste des en-


têtes de réponse envoyés (ou prêts à être envoyés).
A header()
B headers_list()
C header_sent()
D header_send()
Réponse

B
Exemple:

<?php

//Affiche l'en-têtes qui doivent être envoyés?

var_dump(headers_list());

?>

La sortie:
—————–
array(4)

[0]=> string(23) "X-Powered-By: PHP/5.6.1"

[1]=> string(19) "Set-Cookie: TestCookie=SomeValue"

[2]=> string(18) "X-Simple-Exemple: test"

[3]=> string(24) "Content-type: text/plain"

2. Quelle sera la sortie du code PHP suivant?


<?php

function x()

function y()

echo 'JE SUIS Y';

echo 'JE SUIS X';

x();

x();

?>
A JE SUIS Y
B JE SUIS YJE SUIS X
C Error
D JE SUIS X Erreur
Réponse
D
La sortie :

JE SUIS X Erreur fatale: Impossible de redéclarer y()

3. Quelle est la différence entre les méthodes GET et POST?


A GET affiche les valeurs entrées dans un formulaire dans l’URL, contrairement à
POST.
B POST affiche les valeurs saisies dans un formulaire dans l’URL, contrairement à GET.
C Il n’y a pas de différence
Réponse
A

4. Quelle sera la sortie du code PHP suivant?


<?php

$str2 = "world!";

function fun($str1)

echo $str1;

echo $str2;

fun("Hello");

?>
A Helloworld!
B Error
C Hello
D Helloworld!world!
Réponse

C
Si vous voulez mettre des variables dans une fonction qui n’ont pas été passées par celle-ci, vous
devez utiliser «global».

<?php

$str2 = "world!";
function fun($str1)

//Variable globale

global $str2;

echo $str1;

echo $str2;

fun("Hello");

?>

La sortie
——————-

Helloworld!

5. A quoi sert la fonction strpos()?


A Trouver le dernier caractère d’une chaîne
B Rechercher un caractère dans une chaîne
C Les deux A et B sont vrais.
D Localiser la position du premier caractère d’une chaîne
Réponse
B

<?php

echo strpos("php java python pascal c", "python");

?>

La sortie
——————-
9

6. Lequel des énoncés suivants est correct à propos de NULL?


A NULL est un type spécial qui n’a qu’une valeur: NULL.
B La constante spéciale NULL est mise en majuscule par convention, mais en réalité,
elle est insensible à la casse.
C NULL est un type générique
D Aucune de ces réponses n’est vraie.
Réponse
A, B

7. Laquelle des constantes magiques suivantes de PHP renvoie


le nom de la classe?
A _LINE_
B _FILE_
C _FUNCTION_
D _CLASS_
Réponse

D
La constante _CLASS_ renvoie le nom de la classe. (Ajouté dans PHP 4.3.0) Depuis PHP 5, cette
constante renvoie le nom de la classe telle qu’elle a été déclarée (sensible à la casse). En PHP 4,
sa valeur est toujours minuscule.

8. Lequel des éléments suivants est utilisé pour déclarer une


constante?
A const
B constant
C define
D #pragma
E def
Réponse
C
9. S’il y a un problème de chargement du fichier, la fonction
require() génère un warning, mais le script continue son
exécution.
A Vrai
B Faux
Réponse
B
En cas de problème de chargement d’un fichier, la fonction require() génère une erreur fatale et
arrête l’exécution du script.

10. Lequel des éléments suivants est utilisé pour supprimer un


cookie?
A La fonction setcookie()
B La variable $_COOKIE
C La fonction isset()
D Aucune de ces réponses n’est vraie.
Réponse
A
Pour supprimer un cookie, vous devez appeler setcookie() avec l’argument name uniquement.

1. Laquelle des fonctions PHP suivantes peut être utilisée pour


créer une fonction qui accepte un nombre quelconque
d’arguments?
A func_get_argv()
B func_get_args()
C get_argv()
D get_argc()
Réponse

B
Exemple:

<?php

function fun()

$args = func_get_args();
foreach ($args as $key => $value)

echo "arg".($key + 1).": $value\n";

fun();

/* Il n'affichera rien */

fun("Hello");

/* Il affichera arg1: Hello */

fun("Hello","World", "Good", "Bye");

/* Il affichera arg1: Hello arg2: World arg3: Good arg4: Bye */

?>

2. Laquelle des méthodes suivantes renvoie une chaîne


formatée représentant une date?
A time()
B getdate()
C date()
D Aucune de ces réponses n’est vraie.
Réponse

C
La fonction date() renvoie une chaîne formatée représentant une date. Voici un exemple:

<?php

echo "Aujourd'hui c'est" . date("Y/m/d");

echo "Aujourd'hui c'est" . date("Y.m.d");

echo "Aujourd'hui c'est" . date("Y-m-d");

echo "Aujourd'hui c'est" . date("l");

?>
La sortie:
——————————–

Aujourd'hui c'est 2018/11/10

Aujourd'hui c'est 2018.11.10

Aujourd'hui c'est 2018-11-10

Aujourd'hui c'est Samedi

3. Laquelle des fonctions PHP suivantes peut être utilisée pour


trouver des fichiers?
A get_file()
B file()
C fold()
D glob()
Réponse

D
Nous utilisons la fonction glob(), voici un exemple

<?php

//Récupère tous les fichiers php et les fichiers txt

$files = glob('*.{php,txt}', GLOB_BRACE);

print_r($files);

?>

La sortie:
——————————–

Array

[0] => test.php


[1] => file.php

4. Laquelle des fonctions PHP suivantes peut être utilisée pour


générer des identifiants uniques?
A uniqueid()
B id()
C md5()
D mdid()
Réponse

A
La fonction uniqid() génère un identifiant unique basé sur le microtime (heure actuelle en
microsecondes). Voici un exemple:

<?php

echo uniqid();

?>

La sortie:
——————————–

5be69f0134689

5. Quelle sera la sortie du code PHP suivant?


<?php

echo "chr(43)";
?>
A–
B*
C+
D=
Réponse
C
La fonction chr() renvoie le caractère d’une valeur ASCII spécifiée. Puisque la valeur ASCII de
+ est 43, le + a donc été affiché.

6. A quoi sert array_keys()?


A Compare les clés d’un tableau et retourne les correspondances
B Vérifie si la clé spécifiée existe dans le tableau
C Renvoie toutes les clés d’un tableau
D Les deux A et B sont vrais.
Réponse

C
array_keys() est une fonction intégrée à PHP et est utilisée pour renvoyer toutes les clés d’un
tableau.

<?php

$tab = ("php" => "first", "java" => "second ", "python" => "third")

?>

La sortie:
——————————–

Array

[0] => php

[1] => java

[2] => python

)
7. Quelle sera la sortie du code PHP suivant?
<?php

echo lcfirst("welcome to Waytolearnx");

?>
A welcome to Waytolearnx
B welcome to waytolearnx
C Welcome to Waytolearnx
D Welcome to waytolearnx
Réponse

A
La fonction lcfirst() convertit le premier caractère d’une chaîne en minuscule.

8. Laquelle des fonctions suivantes trie un tableau dans l’ordre


inverse?
A rsort()
B shuffle()
C reset()
D sort()
Réponse
A
rsort() – Trie un tableau dans l’ordre inverse. Exemple :

<?php

$languages = array("Java","PHP","C++");

rsort($languages);

?>

La sortie:
———————-

C++

Java
PHP

9. Quelle sera la sortie du code PHP suivant?


<?php

echo ucwords("welcome to waytolearnx");

?>
A Welcome to waytolearnx
B welcome to Waytolearnx
C Welcome to Waytolearnx
D Welcome To Waytolearnx
Réponse
D
La fonction ucwords() convertit le premier caractère de chaque mot d’une chaîne en majuscule.

10. Quelle sera la sortie du code PHP suivant?


<?php

echo ord("hello");

?>
A 106
B 105
C 104
D ehllo
Réponse

C
La fonction ord() renvoie la valeur ASCII du premier caractère d’une chaîne. La valeur ASCII
de h est 104.

1. Laquelle des fonctions suivantes crée un tableau?


A array()
B new array()
C array[]
D $array()
Réponse
A
Avant PHP 5.4:

$ tab = array();

PHP 5.4 et > :

$ tab = [];

2. L’index des tableaux en PHP commence par la position


___________?
A1
B2
C0
D -1
Réponse

C
Comme dans de nombreux langages de programmation, la valeur d’index du premier élément
d’un tableau est 0.

3. Laquelle des fonctions suivantes vérifie si une valeur


spécifique existe dans un tableau?
A krsort()
B key()
C in_array()
D extract()
E Tout les réponses sont vrais
Réponse

C
La fonction in_array() vérifie si une valeur spécifique existe dans un tableau. Exemple :

<?php

$languages = array("Java", "PHP", "Python", "C");

if (in_array("PHP", $languages))

echo "Une correspondance trouvée";


}

else

echo "Aucune correspondance trouvée";

?>

La sortie:
———————-

Une correspondance trouvée

4. Quelle fonction retournera « True » si la variable passée en


paramètre est un tableau, ou « False » si ce n’est pas le cas?
A this_array()
B is_array()
C do_array()
D in_array()
Réponse
B
is_array() est une fonction intégrée, disponible pour vérifier si la variable passée en paramètre
est un tableau. Son prototype est :

boolean is_array (parameter)


. Exemple :

<?php

$tab = array('php','java','python');

if (is_array($tab))

echo 'Ceci est un tableau....';

else
echo 'Ceci n'est pas un tableau....';

?>

La sortie:
—————————–

Ceci est un tableau...

5. Quelle fonction permet d’ajouter une valeur à la fin du


tableau?
A array_unshift()
B into_array()
C array_end()
D array_push()
Réponse
D
array_push() ajoute une valeur à la fin d’un tableau et renvoie le nombre total d’éléments dans
le tableau après l’ajout du nouvelle valeur. Exemple :

<?php

$var = array("php", "java");

array_push($var, "python", "c++");

print_r($var);

?>

La sortie:
—————————–

Array (

[0] => php


[1] => java

[2] => python

[3] => c++

6. Quelle sera la sortie du code PHP suivant?


<?php

$languages = array ("PHP", "Java", "Python", "Pascal");

echo (array_search ("PHP", $languages) );

?>
A True
B False
C0
D1
Réponse

C
La fonction array_search() recherche dans un tableau la valeur spécifiée en paramètre et
renvoie sa clé si elle est localisée et FALSE sinon.

7. Quelle sera la sortie du code PHP suivant?


<?php

$lettres = array ("A", "B", "C");

echo (next($lettres));

echo (next($lettres));

?>
A BC
B AB
C CA
D CB
Réponse
A
La fonction next() renvoie la valeur du tableau qui se trouve dans la position qui suit
immédiatement celle du pointeur de tableau actuel.

8. Quelle fonction peut être utilisée pour déplacer le pointeur


sur la position précédente du tableau?
A last()
B before()
C prev()
D previous()
Réponse

C
Exemple:

<?php

$languages = array("PHP", "Java", "C++", "Scala");

echo current($languages) . "<br>";

echo next($languages) . "<br>";

echo prev($languages);

?>

La sortie:
———-

PHP

Java

PHP

9. Quelle sera la sortie du code PHP suivant?


<?php
$letters = array ("A", "B", array ("X", "Y"), "C");

echo (count($letters, 1));

?>
A3
B4
C5
D6
Réponse
D
Le tableau contenant X et Y est considérée comme un élément, et son contenu aussi considérée
comme un élément.

10. Laquelle des fonctions suivantes trie un tableau dans


l’ordre inverse?
A rsort()
B shuffle()
C reset()
D sort()
Réponse
A
rsort() – Trie un tableau dans l’ordre inverse. Exemple :

<?php

$languages = array("Java","PHP","C++");

rsort($languages);

?>

La sortie:
———————-

C++

Java
PHP

1. Laquelle des expressions régulières suivantes correspond à


une chaîne contenant zéro ou un « p »?
A p+
B p*
C P?
D p#
Réponse

C
« ? » Indique que l’expression régulière doit correspondre à zéro ou une occurrence de
l’expression précédente

2. PHP supporte depuis longtemps deux implémentations


d’expressions régulières appelées ___ et ___?
A Perl
B PEAR
C Pearl
D POSIX
Réponse
A, D

3. [:alpha:] peut également être spécifié en tant que _____?


A [A-Za-z0-9].
B [A-za-z].
C [A-z].
D [a-z].
Réponse
B
[:alpha:] n’est autre que des caractères minuscules et majuscules.

4. Combien de fonctions PHP propose-t-il, pour la recherche


de chaînes en utilisant une expression régulière de style
POSIX?
A6
B7
C8
D9
Réponse
B
ereg(), ereg_replace(), eregi(), eregi_replace(), split(), spliti() et sql_regcase() sont des fonctions
proposées dans POSIX.

5. L’implémentation POSIX est obsolète dans quelle version de


PHP?
A PHP 4
B PHP 5
C PHP 5.2
D PHP 5.3
Réponse

6. POSIX signifie _________?


A Portable Operating System Interface for Unix
B Portable Operating System Interface for Linux
C Portative Operating System Interface for Unix
D Portative Operating System Interface for Linux
Réponse

7. Parmi les propositions suivantes, laquelle correspondrait le


mieux à l’expression régulière
/mo{2,4}/
basée sur Perl?
A mol
B mool
C mooool
D mooooool
Réponse

B, C
8. Quelle sera la sortie du code PHP suivant?
<?php

$colors = array("blue", "citron", "citrine", "flirt");

$color = preg_grep("/^c/", $colors);

print_r($color);

?>
A Array ( [2] => citrine )
B Array ( [1] => citron [2] => citrine )
C Array ( [0] => citron [1] => citrine )
D Array ( [0] => blue [1] => citron [2] => citrine [3] => flirt )
Réponse
B

9. Laquelle des fonctions suivantes convertira une chaîne en


majuscule?
A strtoupper()
B uppercase()
C str_uppercase()
D struppercase()
Réponse

10. Laquelle des fonctions suivantes peut être utilisée pour


concaténer les éléments de tableau afin de former une seule
chaîne de caractéres?
A explode()
B implode()
C concat()
D concatenate()
Réponse

B
Nous utilisons la fonction implode(), exemple:
<?php

$arr = array('Welcom','to','WayToLearnX.');

echo implode(" ",$arr);

?>

La sortie:
————————-

Welcom to WayToLearnX.

1. Quelle sera la sortie du code PHP suivant?


<?php

$auteur = "support@waytolearnx.com";

$auteur = str_replace("a","@",$auteur);

echo "Contactez l'auteur à $auteur.";

?>
A Contactez l’auteur à supportaw@ytole@rnx.com.
B Cont@ctez l’@uteur à support@w@ytole@rnx.com.
C Contactez l’auteur à support@w@ytole@rnx.com.
D Erreur
Réponse
C

2. Quelle sera la sortie du code PHP suivant?


<?php

$url = "support@waytolearnx.com";

echo ltrim(strstr($url, "@"),"@");

?>
A support@waytolearnx.com
B support
C support@
D waytolearnx.com
Réponse

3. Dans la déclaration suivante, que signifie le symbole « + »?


<?php

preg_match('/^[0-9]+$/', $var)

?>
A n’importe quel caractère
B un caractère entre 0 et 9
C un ou plusieurs caractères compris entre 0 et 9
D zéro ou plusieurs caractères entre 0 et 9
E tout caractère compris entre 0 et 9 suivi d’un $
Réponse
C

4. Qu’est-ce qui correspondrait à l’expression régulière dans


l’énoncé suivant?
<?php

preg_match('/^[0-9]{3}-[0-9]{2,4}$/', $var)

?>
A 5-88
B 1-2345
C 416
D 213-99
E 87090
Réponse

5. Quelle sera la sortie du code PHP suivant?


<?php

$text="Welcom To WayToLearnX";

$array = preg_split("/ /", $text);


print_r($array);

?>
A Array ( [0] => Welcom)
B Array ( [0] => Welcom To WayToLearnX )
C Array ( [0] => Welcom [1] => To [2] => WayToLearnX )
D Aucune de ces réponses n’est vraie.
Réponse

6. Quelle sera la sortie du code PHP suivant?


<?php

$keywords = preg_split("/[s,]+/", "Hi, welcom to WayToLearnX");

print_r( $keywords );

?>
A Array ( [0] => Hi, welcom to WayToLearnX)
B Array ( [0] => Hi [1] => welcom to WayToLearnX )
C Array ( [0] => Hi [1] => Welcom [2] => To [3] => WayToLearnX )
D Aucune de ces réponses n’est vraie.
Réponse
B
Il divise s’il rencontre un espace(s : space) ou une virgule(,).

7. Quelle sera la sortie du code PHP suivant?


<?php

$names = array('Alex','John','Yohan','Thomas','Bob');

$output = preg_grep('/^[a-m]/i', $names);

print_r( $output );

?>
A Array ( [0] => Alex [1] => John [4] => Bob )
B Array ( [0] => Alex [1] => John [4] => Yohan )
C Array ( [0] => Alex [1] => Thomas [4] => Bob )
D Array ( [0] => Yohan [1] => Thomas [4] => Bob )
Réponse
A

8. Qu’est-ce qui correspondrait à l’expression régulière dans


l’énoncé suivant?
<?php

$regex = "colou{0,1}r";

?>
A color
B colour
C colouur
D colouuur
Réponse

A, B
Ici, l’utilisation de {0,1} rend le « u » facultatif.

9. Quelle sera la sortie du code PHP suivant?


<?php

$languages = array("PHP", "Java", "python");

$output = preg_grep('/^p[a-z]+/i', $languages);

print_r( $output );

?>
A Array ( [2] => python )
B Array ( [0] => PHP )
C Array ( )
D Array ( [0] => PHP [2] => python )
Réponse
D
Ici, nous recherchons dans le tableau $languages les éléments commençant par ‘p’ (minuscules
ou majuscules)

10. Quelle sera la sortie du code PHP suivant?


<?php
echo preg_match("#[a-z]#", "s");

?>
A0
B1
C False
D True
Réponse

B
La fonction « preg_match() » recherche si le caractère ‘s’ est dans la plage de caractères [a-z].
La plage représente tous les caractères de a à z. Il retourne 1 pour le succès.

1. Quelle fonction est utilisée pour supprimer les espaces au


début d’une chaîne?
A trim()
B strim()
C rtrim()
D ltrim()
Réponse
D
La fonction ltrim() supprime les les espaces au début d’une chaîne. Voici un exemple:

<?php

echo ltrim($str," Hello");

?>

La sortie:
————————–

Hello

2. Quelle fonction pour comparer deux chaines de caractères?


A strcmp()
B strcasecmp()
C strspn()
D strcspn()
E Tout les réponses sont vrais
Réponse
E
Toutes les fonctions mentionnées ci-dessus peuvent être utilisées pour comparer des chaînes de
caractères.

3. Laquelle des fonctions suivantes convertira une chaîne en


majuscule?
A strtoupper()
B uppercase()
C str_uppercase()
D struppercase()
E Tout les réponses sont vrais
Réponse
A

4. Quelle sera la sortie du code PHP suivant?


<?php

$title = "welcom to waytolearnx!";

echo ucwords($title);

?>
A Welcom to waytolearnx!
B Welcom To Waytolearnx!
C WELCOM TO WAYLEARNX!
D welcom to waytolearnx!
Réponse

B
La fonction ucwords() met en majuscule la première lettre de chaque mot d’une chaîne.

5. Laquelle des fonctions suivantes trouve la dernière


occurrence d’une chaîne et renvoie sa position numérique?
A strlastpos()
B strpos()
C strlast()
D strrpos()
Réponse
D
Exemple : La fonction strrpos() trouve la position du dernière occurrence de « bob » dans la
chaîne:

<?php

echo strrpos("I love bob, I love bob too!","bob"); //19

?>

6. Lorsque deux chaînes sont exactement


équivalentes, strcmp() renvoie quoi?
A Renvoie une chaîne
B Renvoie 0
C Retourne 1
D Ne renvoie rien
Réponse
B

7. Quelle fonction est utilisée pour remplacer une chaîne


entière par une autre chaîne?
A Strstr()
B Strrpos()
C Replace()
D Str_replace()
Réponse

D
Exemple : La fonction str_replace() remplace le mot « world » par « Jean »:

<?php

echo str_replace("world","Jean","Hello world!"); //Hello Jean!

?>

8. Pour sélectionner une sous-chaîne par position, vous


utilisez ______ ?
A Strstr()
B substr()
C Strsub()
D str()
Réponse
B
Exemple : Renvoie « waytolearnx! »:

<?php

echo substr("Welcom to waytolearnx!",9); //waytolearnx!

?>

9. PHP offre un autre moyen pour définir une chaîne de


caractére, autre que simples guillemets ‘ ‘ ou doubles
guillemets ” ”, lequel?
A Heredoc
B Concaténation
C Littéraux
D Aucune de ces réponses n’est vraie.
Réponse
A

10. Les caractères suivant \,?, *, \, &, $,] sont échappés par
quelle méthode?
A remove()
B quotemeta()
C removechar()
D addslashes()
Réponse
B

1. Les espaces de noms ou « namespaces » sont disponibles


depuis quelle version ?
A PHP2
B PHP4
C PHP5
D PHP6
Réponse
D
2. Laquelle des portées suivantes n’est pas prise en charge en
PHP?
A static
B final
C public
D friendly
Réponse

D
PHP prend en charge cinq portées: public, private, protected, final et static.

3. Les variables membres d’une classe sont également


appelées __________?
A Des attributs
B Des propriétés
C Des instances
D Tout les réponses sont vrais
Réponse

4. Lequel des éléments suivants peut être utilisé pour


instancier un objet en PHP en supposant que le nom de la
classe soit « MaClass »?
A
$obj = new $maClass;
B
$obj = new MaClass();
C
$obj = new MaClass;
D
obj = new MaClass();
Réponse

5. Lorsque la fonction a le même prototype dans la classe de


base et dans la classe file, nous appelons cela _________?
A Surcharge d’une méthode
B Redéfinition d’une méthode
C Méthode chaînée
D Tout les réponses sont vrais
Réponse

6. Parmi les propositions suivantes, laquelle est la meilleure


façon pour définir une constante?
A
constant MAX = “100”;
B
const $MAX = “100”;
C
constant MAX = ‘100’;
D
const MAX = ‘100’;
Réponse
D
Les constantes d’une classe sont créées comme suit:

const NAME = ‘VALUE’;

7. Parmi les propositions suivantes, laquelle est la meilleure


façon d’appeler une constante de classe, étant donné que la
classe est « maClass »?
A
echo MAX;
B
echo maClass->MAX;
C
echo maClass::MAX;
D
echo maClass = MAX;
Réponse
C
8. Parmi les propositions suivantes, laquelle est la meilleure
façon d’invoquer une méthode?
A
$object->maMethod();
B
object->maMethod();
C
object::maMethod();
D
$object::maMethod();
Réponse
A

9. Parmi les propositions suivantes, laquelle est / sont la


meilleure façon de déclarer une méthode?
A
function myFunction() { instructions; }
B
scope function myFunction() { instructions; }
C
method myMethod() { instructions; }
D
scope method myMethod() { instructions; }
Réponse
A, B
Dans le cas de méthodes publiques, vous pouvez vous abstenir de déclarer explicitement la
portée et de déclarer simplement la méthode comme vous le feriez avec une fonction.

10. Laquelle des portées suivantes n’est pas prise en charge


en PHP?
A private
B final
C static
D abstract
E Aucune de ces réponses n’est vraie.
Réponse
E
PHP prend en charge cinq portées: public, private, protected, final et static.

1. Les méthodes sont également appelées des_______?


A fonction membre
B instances
C objets
D constructeurs
Réponse

2. Quelle mot-clé empêche une méthode d’être redéfinie par


une classe file?
A Abstract
B Protected
C Final
D Static
Réponse
C

3. Parmi les affirmations suivantes, lesquelles sont vraies à


propos des constructeurs en PHP?
A PHP 4 a introduit les constructeurs de classes.
B Les constructeurs peuvent accepter des paramètres.
C Les constructeurs peuvent appeler des méthodes de classe ou d’autres fonctions.
D Les constructeurs de classe peuvent faire appel à d’autres constructeurs.
E Tout les réponses sont vrais
Réponse

4. PHP reconnaît les constructeurs sous le nom de _________?


A construct()
B _construct()
C function _construct()
D function __construct()
Réponse
D
Un double trait de soulignement ‘__’ suivi du mot clé construct. Sa syntaxe est

fonction __construct ([argument1, argument2,… ..]) { ... }

5. Quelle version de PHP a introduit le mot clé « instanceof »?


A PHP 4
B PHP 5
C PHP 5.3
D PHP 6
Réponse

B
En utilisant le mot-clé « instanceof », nous pouvons déterminer si un objet est une instance d’une
classe.

$car = new Car()

if ($car instanceof Car )

echo “True”;

6. Définir une classe en termes d’une autre classe, puis


spécifier uniquement les éléments que vous souhaitez
différencier de cette classe, est appelé _______?
A Encapsulation
B Héritage
C Objets
D Instances
Réponse
B

7. La fonction Serialize() prend une valeur de tout type, puis


______?
A Décode la valeur sous forme entière
B Encode une valeur sous forme de chaîne de caractères
C Change la valeur en caractères
D Aucune de ces réponses n’est vraie.
Réponse
B

8. Laquelle des fonctions suivantes est utilisée pour


déterminer si une classe existe ou non?
A exist()
B exist_class()
C class_exist()
D __exist()
Réponse

C
La fonction class_exist() renvoie true ou false selon que la classe existe ou non dans le script en
cours d’exécution.

<?php

if (class_exists('MaClass')) {

$maclass = new MaClass();

?>

9. Laquelle des fonctions suivantes est utilisée pour


déterminer le type d’objet?
A obj_type()
B is_obj()
C is_a()
D type()
Réponse

C
La fonction « is_a() » renvoie la valeur true si l’objet appartient à un type de classe ou s’il
appartient à une classe qui est une sous-classe de cette classe. Ou bien false est retourné.

<?php

//Vérifie si $maclasse est un objet de la classe MaClasse

if ( is_a($maclasse, 'MaClasse') )

{
echo "True";

10. Lequel des mots-clés suivants est utilisé pour q’une classe
file hériter une classe mère?
A include
B extends
C implements
D inherit
Réponse

<?php

class Employee extends Person

...

?>

1. Le destructeur est disponible depuis quelle version?


A PHP4
B PHP4.2
C PHP5
D PHP6
Réponse
C
Pour ajouter un destructeur à une classe, vous ajoutez simplement une méthode spéciale appelée
__destruct() comme suit:

//Fonction à appeler lorsque l'objet est supprimé

public function __destruct(){

//libérer les ressources ici

}
2. Dans le code PHP donné ci-dessous, quelles sont les
propriétés?
<?php

class MaClass

public $var;

function test()

echo "Ceci est un exemple";

?>
A
function test()
B
class MaClass
C
public $var;
D
echo “Ceci est un exemple”;
Réponse
C

3. Quel mot-clé est utilisé pour faire référence à des


propriétés ou à des méthodes dans la classe elle-même?
A private
B $this
C protected
D public
Réponse

B
4. Quel mot clé permet aux membres de la classe (méthodes
et propriétés) d’être utilisés sans avoir à instancier une
nouvelle instance de la classe?
A protected
B final
C static
D private
Réponse
C

5. La fonction __sleep() est appelée lorsque vous ______?


A sérialiser un objet
B désérialiser un objet
C Partager un objet
D Choisissez un objet
Réponse

6. La clause Extends est utilisée pour____?


A hériter d’une autre classe
B extension de fonction
C créer des constructeurs
D Aucune de ces réponses n’est vraie.
Réponse
A

7. PHP ne prend pas en charge _______?


A HTML
B JavaScript
C Héritage multiple
D Tout les réponses sont vrais
Réponse
C

8. Une classe abstraite est une classe qui ne peut être


instanciée mais ___?
A Seulement hérité
B Seulement déclaré
C Seulement copié
D Tout les réponses sont vrais
Réponse

9. Un processus qui convertit une chaîne d’octets de manière


à ce que vous puissiez à nouveau produire les données
d’origine est appelé ____?
A Synchronisation
B Spécialisation
C Sérialisation
D Parallélisation
Réponse
C

10. Quelle version de PHP a introduit les concepts avancés de


la POO?
A PHP 4
B PHP 5
C PHP 5.3
D PHP 6
Réponse

B
PHP 5 fournit une pléthore de nouvelles fonctionnalités.
 Support robuste pour la programmation orientée objet.

 Une extension MySQL complètement réécrite.

 Une suite d’outils XML interopérables.

 Cleaner Error Handling avec Exceptions.

 Une implémentation SOAP.

1. Quelle est la meilleur façon pour cloner un objet?


A
_clone($targetObject);
B
$destObject = clone $srcObject;
C
$destObject = _clone($srcObject);
D
$destObject = clone($srcObject);
Réponse
B
Vous pouvez cloner un objet en le faisant précéder par le mot clé « clone ».

2. La fonction « Get_class() » renvoie le nom de la classe


d’où____?
A Une fonction appartient
B Un objet appartient
C Un constructeur appartient
D Tout les réponses sont vrais
Réponse
B

<?php

class MaClass {

function name()

echo "Le nom de la class est : ". get_class($this) ."\n";

$maclass = new MaClass();

$maclass->name(); //cela affiche : Le nom de la class est MaClass

?>

3. La classe dont hérite la classe file s’appelle _____?


A Classe file
B Classe mére
C Super class
D Classe de base
Réponse
B, D

4. Quelle fonction renvoie VRAI si l’argument est le nom d’une


classe?
A get_class()
B exist_class()
C class_exists
D Aucune de ces réponses n’est vraie.
Réponse

C
La fonction class_exist() renvoie true ou false selon que la classe existe ou non dans le script en
cours d’exécution.

<?php

if (class_exists('MaClass')) {

$maclass = new MaClass();

?>

5. Lesquels des énoncés suivants est/sont vrai(s) pour une


classe abstraite?
A Une classe est déclarée abstraite en faisant précéder la définition du mot-clé
abstract.
B Une classe est déclaré abstract en utilisant le mot-clé implements.
C C’est une classe qui n’est vraiment pas supposée être instanciée, mais qui sert
plutôt d’une classe de base.
D Toute tentative d’instancier une classe abstraite entraîne une erreur.
Réponse

A, C, D
6. Quelle méthode magique est utilisée pour implémenter la
surcharge en PHP?
A __call
B __invoke
C __wakeup
D __unset
Réponse

7. Quelle fonctionnalité nous permet d’appeler plus d’une


méthode ou fonction de la classe en une seule instruction?
A cast
B inclusion des méthodes
C Sérialisation des méthodes
D Chaînage des méthodes
Réponse

D
Voici un exemple de chaînage de méthode en php:

$order = new Order();

$order->CreateOrder()->sendOrderEmail()->printOrder();

8. Les membres protégés d’une classe sont accessibles à la


classe dans laquelle___?
class MaClass{

protected $member1;

protected $member2;

//....

}
A Il n’est pas déclaré
B Il est déclaré
C Il est déplacé
D Aucune de ces réponses n’est vraie.
Réponse
B

9. L’encapsulation est _______?


A Cacher des données
B Définir les classes
C Suppression de données
D Aucune de ces réponses n’est vraie.
Réponse

10. Quelle méthode est utilisée pour modifier le


comportement de clonage d’un objet?
A clone()
B __clone()
C _clone
D object_clone()
Réponse
B

1. Lequel des noms suivants n’est pas un nom de classe


valide?
A MaClasse
B Maclasse
C Maclasse2
D 1Maclasse
Réponse

D
Vous déclarez une classe avec le mot-clé class et un nom de classe arbitraire. Les noms de classe
peuvent être toute combinaison de chiffres et de lettres, bien qu’ils ne doivent pas commencer
par un chiffre.

2. Quel énoncé concernant le code ci-dessous est correct?


class A {}

class B {}

class C extends A, B {}
A Le code est parfaitement correct
B Les classes ne peuvent pas être vides
C Classe C ne peut pas hériter à la fois A et B
D Les modificateurs public/privé sont absents dans les définitions de classe
Réponse

C
PHP ne supporte pas l’héritage multiple pour les classes.

3. Un objet est un(e) ________ d’une classe.


A type
B prototype
C instance
D objet
Réponse

C
Un objet est une instance de sa classe. Il est du type défini par la classe.

4. Quelle version de PHP a introduit les mots-clés de visibilité:


public, private, et protected?
A PHP 4
B PHP 5
C PHP 5.1
D PHP 5.3
Réponse
B

5. Il y a deux objets:
$house1 = new House();

$house2 = new House();


Laquelle des affirmations suivantes est correct?

A $house1 et $house2 sont les mêmes objets du même type générés à partir d’une
même classe.
B $house1 et $house2 sont des objets différents du même type générés à partir
d’une même classe.
C $house1 et $house2 sont les mêmes objets de types différents générés à partir
d’une même classe.
D $house1 et $house2 sont des objets différents de types différents générés à partir
d’une même classe.
Réponse

6. Quel caractère utilisé pour accéder aux propriétés d’un


objet?
A ::
B=
C ->
D.
Réponse

C
Exemple:

$house1->message = "Welcome";

7. Le constructeur doit avoir le même nom que le nom d’un(e)


______?
A Classe
B Objet
C Méthode
D Instance
Réponse
A

8. PHP5 prend en charge ______?


A Variables publiques
B Variables privées
C Variables protégées
D Tout les réponses sont vrais
Réponse
D

9. Namespaces définit une zone dans laquelle un identifiant


est _______?
A Statique
B Du même type
C Unique
D Aucune de ces réponses n’est vraie.
Réponse
C

10. Le code qui utilise une classe, une interface, une fonction
ou une méthode est souvent décrit comme le _______?
A code serveur
B code client
C code de l’objet
D code de classe
Réponse
B
Le code qui utilise une classe, une fonction ou une méthode est souvent décrit comme le client de
la classe, interface, fonction ou méthode

1. Quel mot clé précède le nom d’une méthode?


A method
B function
C protected
D public
Réponse

B
La déclaration d’une méthode ressemble à une déclaration d’une fonction. Le mot clé
« function » précède le nom d’une méthode, suivi d’une liste facultative des arguments. Voici un
exemple :

<?php

class MaClass

// déclaration de propriété

public $var = 'une valeur par défaut';

// déclaration de méthode

public function afficher() {

echo $this->var;

}
?>

2. Si vous n’avez pas utilisé le mot-clé de visibilité dans votre


déclaration de méthode, la méthode sera déclarée par défaut
en tant que _______?
A public
B private
C protected
D friendly
Réponse

A
En déclarant une méthode publique, vous vous assurez qu’elle peut être appelée depuis
l’extérieur.

3. Quelle fonction est utilisée pour déterminer si la valeur


d’une variable est TRUE ou FALSE?
A boolean()
B is_boolean()
C is_bool()
D bool()
Réponse
C
La fonction is_bool () permet de déterminer si une variable est un booléen ou non. Voici un
exemple:

<?php

$var = false;

if (is_bool($var))

echo "Ceci est un booléen.";

else

echo "Ceci n'est pas un booléen.";

?>
La sortie:
———————

Ceci est un booléen.

4. Quelle sera la sortie du code PHP suivant?


<?php

class PageBlog

public function ecrire( $page )

$str = "{$page->title}, Nombre de page: " .$page->getPageNumber() .", ({$page-


>description})\n";

print $str;

$page = new Page( "QCM PHP", 12, "Simple description");

$auteur = new Auteur();

$auteur->ecrire( $page );

?>
A QCM PHP, Nombre de page: 12, Simple description
B Simple description, QCM PHP, Nombre de page: 12,
C Nombre de page: 12, QCM PHP, Simple description
D Aucune de ces réponses n’est vraie.
Réponse
A

5. L’héritage est le moyen par lequel une ou plusieurs classes


peuvent hériter d’une classe _____?
A De base
B Abstract
C null
D prédéfini
Réponse
A
Une classe qui hérite d’une autre classe est une sous-classe de celle-ci. Cette relation est souvent
décrite en termes de classe mére et classe file. Une classe file hérite des caractéristiques de la
classe mére.

6. Quelle version de PHP a introduit le mot clé static?


A PHP 4
B PHP 5
C PHP 5.2
D PHP 5.3
Réponse
B
Le mot clé static a été introduit dans PHP 5. Il ne peut pas être utilisé dans les scripts écrits en
PHP 4.

7. Quel mot clé est utilisé pour accéder à un membre statique


d’une classe?
A static
B this
C self
D set
Réponse

C
On utilise « self » pour faire référence à la classe actuel. On utilise « $this » pour faire référence
à l’objet actuel. Autrement dit, on utilise self ::$var pour les membres statiques, on utilise $this-
>var pour les membres non statiques. Voici un exemple:

<?php

class MaClasse {

private $nonStaticMember = 5;

private static $staticMember = 10;

function __construct() {

echo $this->nonStaticMember . ' ' . self::$staticMember;


}

new MaClasse();

?>

8. Laquelle des variables suivantes ne peut pas être utilisée


dans une méthode statique?
A $this
B $self
C $super
D $set
Réponse
A
les méthodes statiques ne sont pas appelées dans un contexte d’un objet. Pour cette raison, les
propriétés statiques sont souvent appelées des variables.

9. Que signifie PDO?


A PHP Data Orientation
B PHP Data Object
C PHP Database Orientation
D PHP Database Object
Réponse
B
La classe PDO(PHP Data Object) fournit une interface commune pour interagir avec une base
de données.

10. La classe mère est une ______?


A Classe Super
B Classe de base
C Classe dérivée
D Les deux A et B sont vrais.
Réponse
D

1. Quelle sera la sortie du code PHP suivant?


<?php

class MaClasse

class AutreClasse

$var = new MaClasse;

var_dump($var instanceof MaClasse);

var_dump($var instanceof AutreClasse);

?>
A bool(true) bool(true)
B bool(false) bool(false)
C bool(true) bool(false)
D bool(false) bool(true)
Réponse

C
« instanceof » est utilisé pour déterminer si une variable PHP est un objet instancié d’une
certaine classe.

2. Quelle version de PHP vous permet de définir des


constantes dans une classe?
A PHP 4
B PHP 4.1
C PHP 4.3
D PHP 5
Réponse
D

3. Quelle sera la sortie du code PHP suivant?


<?php

class MaClasseMere
{

class MaClasse extends MaClasseMere

$var = new MaClasse;

var_dump($var instanceof MaClasse);

var_dump($var instanceof MaClasseMere);

?>
A bool(false) bool(false)
B bool(true) bool(true)
C bool(false) bool(true)
D bool(true) bool(false)
Réponse

B
« instanceof » peut également être utilisé pour déterminer si une variable est un objet instancié
d’une classe qui hérite d’une classe mére.

4. Laquelle des variables suivantes est une variable constante?


A
const $max
B
const $MAX
C
constant MAX
D
const MAX
Réponse
D
Les constantes ne sont pas précédées du signe dollar $ comme les propriétés normales. Par
convention, ils sont souvent nommés en utilisant uniquement des caractères majuscules.

5. Quelle sera la sortie du code PHP suivant?


<?php

class MaClasse

$var = new MaClasse;

var_dump(!($var instanceof stdClass));

?>
A bool(false)
B bool(true)
C error
D Aucune de ces réponses n’est vraie.
Réponse
B
Pour vérifier si un objet n’est pas une instance d’une classe, l’opérateur logique « NOT ‘!' » peut
être utilisé.

6. Que se passera-t-il si vous essayez de modifier la valeur


d’une constante une fois qu’elle a été déclarée?
A La valeur de la variable changera
B La valeur de la variable ne changera pas
C Erreur
D Aucune de ces réponses n’est vraie.
Réponse

C
Vous devez utiliser des constantes lorsque la variable doit être disponible pour toutes les
instances d’une classe et lorsque la valeur de la variable doit être fixe et immuable.

7. Quelle sera la sortie du code PHP suivant?


<?php

interface MonInterface

class MaClasse implements MonInterface

{
}

$var = new MaClasse;

var_dump($var instanceof MaClasse);

var_dump($var instanceof MonInterface);

?>
A bool(false) bool(false)
B bool(true) bool(true)
C bool(false) bool(true)
D bool(true) bool(false)
Réponse

B
« instanceof » peut également être utilisé pour déterminer si une variable est un objet instancié
d’une classe qui implémente une interface.

8. Que faut-il utiliser pour faire référence à une méthode dans


le contexte d’une classe plutôt qu’un objet?
A$
B ->
C.
D ::
Réponse
D
Example:

parent::__construct()

9. Laquelle des méthodes suivantes est la meilleur façon pour


déclarer une méthode abstraite?
A
public function display()
B
abstract function display()
C
abstract public display();
D
abstract public function display();
Réponse
D
Une méthode abstraite n’a pas d’implémentation. Vous le déclarez normalement, mais vous
terminez la déclaration par un point-virgule.

10. Un mutateur est aussi appelée _____?


A Setter
B Accesseur
C Getter
D Destructeur
Réponse
A
Un mutateur est une méthode permettant de modifier le contenu d’une propriété. Voici un
exemple:

class MaClasse

private $name;

// Mutateur (ou Setter)

public function setName($value)

$this->name = $value;

1. Les règles de codage recommande que le nom des classes


doit commencer par ______?
A Lettre minuscule
B Lettre majuscule
C Un chiffre
D Les deux A et B sont vrais.
Réponse
B
Vous pouvez déclarer le nom d’une classe en minuscule, mais pour respecter les conventions, il
vaudrait mieux que le nom commence par une lettre majuscule. Exemple:

class MaClass{}

2. Dans une classe abstraite, combien de méthodes abstraites


doit-elle contenir?
A Une
B Deux
C Trois
D Aucune
Réponse

A
Les classes définies comme abstraites ne peuvent pas être instanciées et toute classe contenant au
moins une méthode abstraite doit également être abstraite. Voici un exemple:

<?php

abstract class Animal

// méthodes abstraites

abstract public function manger();

abstract public function dormir($prefix);

// méthode commune

public function afficher() {

print "Je mange de la viande.");

?>

3. Lequel des mots-clés suivants est utilisé pour implémenter


une interface?
A implements
B get
C inherit
D interface
Réponse

A
Une classe peut implémenter une interface en utilisant le mot clé « implements » dans sa
déclaration. Exemple:

class MaClasse implements MonInterface{}

4. Quel mot-clé est utilisé pour empêcher l’héritage?


A private
B final
C break
D end
Réponse
B
Une classe final ne peut pas être héritée.

5. Laquelle des méthodes suivantes est invoquée lorsqu’une


valeur est affectée à une propriété non définie?
A __get()
B __set()
C __isset()
D __call()
Réponse
B
La méthode __set() est appelée lorsque le code client tente d’attribuer une valeur à une propriété
non définie dans la classe. Deux arguments sont transmis: le nom de la propriété et la valeur que
le client tente de définir. Voici un exemple:

<?php

class MaClasse

public function __set($property, $value)

{
// Code à exécuter

?>

6. Lequel des éléments suivants est la clé de la


programmation orientée objet?
A Polymorphisme
B Encapsulation
C Abstraction
D Héritage
Réponse
B
L’encapsulation signifie simplement le masquage de données et de fonctionnalités.

7. Laquelle des affirmations suivantes est vraie?


class MaClasse {}

$var1 = new MaClasse();

$var2 = $var1;
A En PHP 4: $var1 et $var2 sont deux objets distincts
B En PHP 5: $var1 et $var2 sont deux objets distincts
C En PHP 4: $var1 et $var2 font référence à un objet
D Aucune de ces réponses n’est vraie.
Réponse
A

8. Quelle sera la sortie du code PHP suivant?


<?php

class Book

function getName() { return "Alchimiste"; }

function getPageNumber() { return 255; }


function __toString() {

$description = $this->getName();

$description .= ", Nombre de pages: ".$this->getPageNumber();

return $description;

$book = new Book();

print $book;

?>
A Error
B Object Not Found
C Alchimiste, Nombre de pages: 255
D Alchimiste
Réponse

C
En implémentant la méthode __toString(), vous pouvez contrôler la manière dont vos objets se
représentent lorsqu’ils sont affichés. La méthode est invoquée automatiquement lorsque votre
objet est passé à « print » ou « echo » et que sa valeur de retour est substituée.

10. Lorsque la fonction a le même prototype dans la classe de


base et dans la classe file, nous appelons cela _________?
A Surcharge d’une méthode
B Redéfinition d’une méthode
C Méthode chaînée
D Tout les réponses sont vrais
Réponse

1. Lequel des opérateurs suivants n’est pas un opérateur


binaire?
A AND
B NOT
C XOR
D OR
Réponse
B
L’opérateur NOT est un opérateur unaire mais pas un opérateur binaire. L’opérateur AND, OR
et XOR sont des opérateurs binaires. Un opérateur binaire est un opérateur qui opère sur deux
opérandes puis les manipule pour renvoyer un résultat. Tandis qu’un opérateur unaire est un
opérateur qui prend un seul opérande dans une expression ou une instruction.

2. Laquelle des options est correcte en ce qui concerne le


code ci-dessous?
<?php

$x = array (1, 2, 3);

$y = array (1 => 2, 2 => 3, 0 => 1);

$z = array ('x' => 1, 'y' => 2, 'z' => 3);

var_dump ($x == $y);

var_dump ($x === $y);

var_dump ($x == $z);

?>
A false true true
B true true false
C true false true
D true false false
Réponse

D
L’opérateur d’équivalence == renvoie true si les deux tableaux ont le même nombre d’éléments
avec les mêmes valeurs et clés, quel que soit leur ordre. L’opérateur d’identité ===, en revanche,
ne renvoie true que si le tableau contient les mêmes paires clé / valeur dans le même ordre.

var_dump ($x == $y); // True

var_dump ($x === $y); // False

var_dump ($x == $z); // False

3. Considérons le code suivant:


<html>

<head>

<title>

Ceci est un script de test.

</title>

</head>

<body>

<?php

echo 'Ceci est un script de test.';

?>

</body>

</html>
Laquelle des balises suivantes est utilisée dans le script php?

A Balise standard
B Balise ASP
C Balise de script
D Balise courte
Réponse

<?php?>
:est la balise PHP standard

4. Laquelle des opérations suivantes est évaluée à « true » si


les deux opérandes ne sont pas du même type de données ou
n’ont pas la même valeur?
A !==
B ===
C !=
D ==
Réponse
A
L’opérateur (!==) est évaluée à « true » si les deux opérandes ne sont pas du même type de
données ou n’ont pas la même valeur.
 L’opérateur (==): elle est évaluée à true si les deux opérandes sont identiques, c’est-à-dire

qu’ils peuvent être convertis en un type de données commun dans lequel ils ont la même

valeur mais ne sont pas nécessairement du même type.

 L’opérateur (===): elle n’a la valeur true que si les opérandes sont du même type de données

et ont la même valeur.

 L’opérateur (!=): La valeur est true si les deux opérandes ne sont pas identiques, quel que

soit leur type de données.

 L’opérateur (!==): La valeur est true si les deux opérandes ne sont pas du même type de

données ou n’ont pas la même valeur.

5. Considérons le code suivant:


<?php

$a=2;

$b=3;

$c=4;

$d=6;

$e=($a*$b)+$c*$d/$a;

print($e);

?>
Quelle sera la sortie du code ci-dessus?

A 12
B 18
C 24
D6
Réponse

B
La sortie du code sera produite dans les étapes suivantes:
 La valeur de a et b sera multipliée, c’est-à-dire ($a * $b) = 6.
 La valeur de c et d sera multipliée, c’est-à-dire $c * $d = 24.

 Le produit de c et d sera divisé par a, c’est-à-dire 24/2 = 12.

 Le quotient obtenu sera ajouté au produit de a et b, soit 6 + 12 = 18.

6. Quelle sera la sortie du code ci-dessous?


<?php

$x = false;

if($x = true)

print("True");

else

print("False");

?>
A False
B True
C Le script va lancer un message d’erreur.
D True false
Réponse
B
La seule expression légale dans une instruction « if » est une expression booléenne. Dans
l’exemple ci-dessus, la valeur « true » est affectée à la variable « x ». Donc le programme affiche
« True ».

7. Laquelle des options suivantes est correcte concernant la


portée de variables en PHP?
A script, function et class
B class, global et script
C global, function et class
D global, script et function
Réponse

C
La portée de variable décrit où la variable peut être utilisée dans le programme. Les trois
portées de variables pour PHP sont « global », « function » et « class ».
 « function »: La portée de variable existe dans la fonction où la variable a été définie.

 « global »: La variable existe partout dans le script PHP.


 « class »: La portée de variable existe dans une classe où la variable a été définie.

8. Quelle sera la sortie du code ci-dessous?


<?php

for($x = 1; $x <= 2; $x++){

for($y = 1; $y <= 3; $y++){

if ($x == $y) continue;

print("x = $x y = $y");

?>
Ax=2y=3
Bx=2y=2
Cx=2y=1
Dx=1y=3
Ex=1y=2
Fx=1y=1
Réponse

A, C, D, E
La première boucle « for » initialise la variable « x » avec la valeur 1 et exécute en continu le
bloc de code qui le suit jusqu’à ce que la valeur de « x » devienne 2.

Pour chacune des valeurs de « x », la boucle for interne initialise la variable « y »


avec la valeur 1 et exécute en continu le bloc de code qui le suit jusqu’à ce que
la valeur de « y » devienne 3. Elle exécute également une instruction
« continue » chaque fois que les valeurs de « x » et « y » sont identiques. À la
suite de l’exécution de l’instruction « continue », l’instruction de la ligne 5 est
ignorée et le contrôle du programme est transféré de la ligne 3, c’est-à-dire que
les valeurs égales de « x » et de « y » ne seront jamais affichées en sortie.

Les options F et B sont incorrectes. L’instruction continue à la ligne 4 transfère le


contrôle de programme au début de la boucle for interne lorsque les valeurs de
« x » et « y » sont identiques. Par conséquent, l’instruction à la ligne 5 ne
s’exécutera pas pour afficher des valeurs égales de « x » et « y ».
9. Quelle sera la sortie du code ci-dessous?
<?php

var_dump((bool)5.8);

?>
A bool(false)
B1
C bool(true)
D0
Réponse
C
Tout nombre supérieur à zéro converti en booléen devient « true ». Donc, le code suivant
générera

bool(true)
.

10. Quelle sera la sortie du code ci-dessous?


<?php

function updateTab (&$array)

foreach ($array as &$value)

$value = $value + 2;

$value = $value + 3;

$array = array (1, 2, 3);

updateTab($array);

print_r($array);

?>
A Array ( [0] => 5 [1] => 7 [2] => 9 )
B Array ( [0] => 2 [1] => 4 [2] => 6 )
C Array ( [0] => 1 [1] => 2 [2] => 3 )
D Array ( [0] => 3 [1] => 4 [2] => 8 )
Réponse

D
Les commentaires expliquent le fonctionnement du script:

<?php

function updateTab (&$array)

foreach ($array as &$value)

$value = $value + 2; //Incrémente chaque valeur de 2

$value = $value + 3; //Cela n'incrémentera que la dernière valeur du tableau

$array = array(1, 2, 3);

updateTab($array);

print_r($array);

?>

1. À quoi sert la fonction suivante quand deux valeurs entières


sont passées en paramètre?
<?php

function f($a, $b)

return ($b == 0) ? $a : f($b, $a % $b);

?>
A Change les valeurs de $a et $b.
B Détermine si elles sont paires ou impaires.
C Détermine le plus grand commun diviseur entre eux.
D Boucles infini.
Réponse

C
Ceci est la condition ternaire de if. La condition est vraie alors appelle la fonction f() en passant
$b comme premier argument et modulo de $a et $b comme second argument, ceci continue
jusqu’à $b == 0 et renvoie la valeur de $a. Il détermine le plus grand commun diviseur entre $a
et $b.

2. Laquelle des affirmations suivantes explique la différence


entre print() et echo()?
A Vous pouvez utiliser print() pour afficher des nombres alors que vous ne pouvez
pas utiliser echo pour cela.
B Vous ne pouvez pas utiliser echo() avec des opérateurs au niveau des bits, mais
vous pouvez utiliser print() pour cela.
C Il n’y a pas de différence entre les fonctions echo() et print().
D Vous pouvez utiliser print() dans une expression alors que vous ne pouvez pas
utiliser echo().
Réponse
D
print() et echo() affichent le même comportement, il existe une grande différence entre eux.
print() est une construction de langage qui se comporte comme une fonction avec sa propre
valeur de retour, ce qui vous permet de l’utiliser comme expression. echo() est une construction
de langage qui n’a pas de valeur de retour, vous ne pouvez donc pas l’utiliser comme expression.

3. Quelle sera la sortie du script PHP ci-dessous?


<?php

echo (int)((0.1 + 0.7) * 10);

?>
A8
B7
C 10
D Le script PHP retournera un message d’erreur.
Réponse
B
L’expression ((0.1 + 0.7) * 10) doit être évaluée à 8. Toutefois, la sortie de l’expression dans le
script est évaluée à 7 car le moteur PHP stocke la valeur de l’expression en interne sous la forme
7.999999 au lieu de 7. Lorsque la valeur fractionnelle est converti en un entier, le moteur PHP
tronque simplement la partie fractionnaire. Lorsque la valeur est convertie en int, PHP tronque
simplement la partie décimale, ce qui entraîne une erreur assez importante (12,5%, pour être
exact).

4. Parmi les fonctionnalités suivantes, quelles sont les


suivantes sont obsolète dans PHP 5.3?
A ereg()
B split()
C is_a()
D Aucune de ces réponses n’est vraie.
Réponse
C
Les options A et B sont incorrectes. ereg(), split() sont des fonctionnalités obsolètes de PHP.

5. Lequel des types d’erreur suivants interrompt l’exécution


d’un script PHP et ne peut pas être intercepté?
A Fatal error
B Warning
C Notice
D Compile-time error
Réponse
A
Fatal error est une erreur qui stoppe l’exécution d’un script et ne peut pas être interceptée.

L’option B est incorrecte. Warning est une erreur récupérable qui indique une
erreur d’exécution, mais n’interrompt pas l’exécution du script.

L’option C est incorrecte. Notice est une indication qu’une condition d’erreur
s’est produite, mais ce n’est pas nécessairement significatif. Cela n’arrête pas
l’exécution du script.

L’option D est incorrecte. Une erreur de compilation est détectée par


l’interpréteur.

6. Que fait l’extrait de code suivant?


$a = `ls -l`;
A La sortie de la commande UNIX ls sera stockée dans $a.
B Cela provoquera un message warning.
C Cela provoquera une erreur.
D Il ne donnera aucun résultat car ls -l n’est qu’une chaîne de caractéres simples.
Réponse

A
L’opérateur backtick permet d’exécuter une commande shell et d’extraire sa sortie. Ainsi, $a va
stocker le contenu du répertoire de travail actuel.

7. Que fait l’extrait de code suivant?


$a =30;

while($a<10)

$a--;

print($a);
A 30
B 10
C0
D Le script va lancer un message d’erreur.
Réponse
A
L’instruction while exécute un bloc d’instructions lorsque la condition est vraie. L’instruction
while évalue l’expression qui renvoie une valeur booléenne. Si l’expression du bloc while est
évaluée à true, l’instruction while exécute les instructions du bloc while. L’instruction while
continue à exécuter le bloc jusqu’à ce que l’expression soit évaluée à false. Dans le code ci-
dessus, l’expression dans l’instruction while est évaluée à false et par conséquent, 30 est affiché
dans la sortie.

8. Que fait l’extrait de code suivant?


echo strtotime("january 1, 1901");
A 167312
B 17653
C0
D -1
Réponse
D
Dans tout système d’exploitation où des versions plus anciennes de la bibliothèque glibc sont
présentes, la fonction strtotime() ne pourra pas identifier les dates antérieures à la période UNIX
du 1er janvier 1970 à minuit UTC. Par conséquent, la sortie du script sera -1.
9. Quelle est la sortie du code PHP suivant?
<?php

define('BAR', 5);

$array = array(5 => BAR,"BAR" => 10);

print $array[$array[BAR]] * $array["BAR"];

?>
A5
B 10
C 50
D BAR
Réponse
C
Dans cette question,

$array["BAR"] = 10
et

$array[$array[BAR]] = 5
, BAR est une constant avec la valeur 5, donc

$array[$array[5]] * $array["BAR"];
, sera évalué à 50.

10. Quelle est la sortie du code PHP suivant?


<?php

switch(1) {

case 1: print("Le choix 1");

case 2: print("Le choix 2");

default: print("Le choix par defaut");

?>
A Le choix 1
B Le choix 2
C Le choix par defaut
D Il affichera toutes les trois lignes.
E Le script va lancer une erreur.
Réponse
D
Le script donné s’exécutera correctement et affichera les trois lignes en sortie. L’expression
« switch » a la valeur 1; cela correspond à la valeur littérale spécifiée dans chaque instruction
« case ». « Le choix 1 » a la valeur correspondante, mais comme il n’y a pas d’instruction break
après celle-ci, toutes les instructions sont exécutées.

1. Quelle est la sortie du code PHP suivant?


<?php
$x = 2;
switch ($x) {
case 1:
print("FOO");
break;
case 2:
print("BAR");
case 3:
print("STOP");
default: print("default");
}
?>
A BARSTOPdefault
B FOO STOP
C default
D FOO
Réponse
A
L’instruction break est utilisée dans un bloc de code qui suive l’instruction switch pour
mettre fin à l’exécution d’une séquence d’instructions. Dès qu’une instruction break est
rencontrée, le contrôle du programme est transféré à la première ligne de code qui suit
l’intégralité de l’instruction switch.
Dans le programme donné, l’argument de l’instruction switch est une valeur
entière = 2. Par conséquent, le contrôle du programme sera transféré au cas
correspondant, c’est-à-dire à la ligne 7. Comme il n’y a pas d’instruction break
après la ligne 6, l’exécution de ce code continuera à passer et toutes les
instructions après la ligne 7 seront exécutées. Par conséquent, l’exécution du
programme affichera BARSTOPdefault en tant que sortie.
2. Quelle est la sortie du code PHP suivant?
<?php
$c=0;
$i;
for($i=0;$i<5;$i++)
{
$c+=$i;
}
print($c);
?>
A7
B8
C9
D 10
Réponse
D
La boucle fonctionnera de 0 à 4. A chaque exécution, la valeur de i sera incrémentée de
un. La valeur sera ensuite ajoutée et attribuée à c. Après la fin de la boucle, la valeur de
c sera 10.

3. Vous voulez itérer ce tableau et modifier la valeur de


chacun de ses éléments. Quel est le meilleur choix?
<?php
$tab = array("foo", "bar", "hello world!");
?>
A La boucle Do while
B La boucle For each
C La boucle For
D La boucle While
Réponse
B
La boucle for each est la construction la plus appropriée pour itérer un tableau. Depuis
PHP 5, il est également possible de personnaliser l’itération des objets. Par conséquent,
la boucle for each sera la réponse la plus appropriée pour cette question.

4. Quelle est la sortie du code PHP suivant?


<?php
function f()
{
$a=10;
$res=++$a;
print($res);
}
f();
?>
A9
B 10
C 11
D Le script va lancer un message d’erreur.
Réponse
C
Supposons la valeur de a = 10, puis dans l’instruction res = ++a, la valeur des variables
« a » et « res » sera 11.
Dans le cas de l’instruction res = a++, la valeur de « res » sera 10 et la valeur de
« a » sera 11.

5. Quelle est la sortie du code PHP suivant?


<?php
$x=5;
$y=12;
$z=10;
$w=7;
$res=($x*$y)+$z*$w/$x;
print($res);
?>
A 130
B 26
C 154
D 74
Réponse
D
La sortie du code donné sera produite dans les étapes suivantes:
 La valeur de a et b sera multipliée, c’est-à-dire ($x * $y) = 60.

 La valeur de c et d sera multipliée, c’est-à-dire $z * $w = 70.

 Le produit de c et d sera divisé par x, c’est-à-dire 70/5 = 14.


 Le quotient obtenu sera ajouté au produit de x et y, soit 14 + 60 = 74.

6. Quelle est la sortie du code PHP suivant?


<?php
$x=10;
$y=2;
$res=$x%$y;
print($res);
?>
A4
B5
C 20
D0
Réponse
D
La valeur de la variable res sera 0. L’opérateur modulo (%) permet de connaître le reste
après la fin d’une division. Ceci peut être utilisé avec des nombres entiers et des
nombres à virgule flottante.

7. Lequel des codes suivants peut être utilisé pour créer une
constante insensible à la casse?
A
<?php
define("STR","Hello World!",TRUE);
echo constant("str");
?>
B
<?php
define("STR","Hello World!");
echo constant("str");
?>
C
<?php
define("STR","Hello World!",FALSE);
echo constant("str");
?>
D
<?php
define("STR","Hello World!",'USECASE');
echo constant("str");
?>
Réponse
A
Pour définir la constante sensible à la casse, vous écrirez le code comme suit:
<?php
define("STR","Hello World!");
echo constant("STR");
?>
Pour définir la constante insensible à la casse, vous écrirez le code comme suit:

<?php
define("STR","Hello World!",TRUE);
echo constant("str");
?>

8. Lesquels des types de données suivants sont des types de


données composés?
A Array
B Objects
C Strings
D Booleans
Réponse
A, B
Les tableaux(Arrays) et les objets sont des types de données composés. Les tableaux sont
des types de données contenant des éléments de données ordonnés. Un tableau peut être
utilisé pour stocker et récupérer tout autre type de données, tel que des nombres, des
valeurs booléennes, des chaînes, des objets et même d’autres tableaux. Les objets sont
des types de données contenant à la fois des données et du code.
Les options C et D sont incorrectes. Les booléens et les chaînes sont des types de
données scalaires.

9. Quelle est la sortie du code PHP suivant?


<?php
function f($x = 4)
{
$x = $x / 2;
return $x;
}
$x = 10;
f($x);
echo $x;
?>
A4
B5
C 10
D Le script va lancer un message d’erreur.
Réponse
C
Dans le script donné, le résultat sera 10, car la valeur de la variable $x ne sera pas
affectée par la valeur de $x dans la fonction f() (en raison du portée de la fonction). La
portée de variable décrit où la variable peut être utilisée dans le script.

10. Quelle est la sortie du code PHP suivant?


<?php
echo 0x33, 'student sit on', 022, 'chairs.';
?>
A 51 student sit on 0 chairs.
B 51 student sit on 22 chairs.
C 51 student sit on 18 chairs.
D 51 student sit on chairs.
Réponse
C
echo convertit le nombre hexadécimal 0x33 en 51, le nombre octal 022 en 18.

1. Quel sera le résultat de ce programme?


<?php

$x;

for( $x=1; $x<=100; $x++ )

{
if($x==50)

continue;

print($x);

?>
A Une série de 1 à 100 sera affichée. Le nombre 50 ne sera pas affichée.
B Une série de 1 à 50 sera affichée.
C Une série de 51 à 100 sera affichée.
D Une série de 1 à 100 sera affichée.
Réponse
A
Dans le programme donné, l’instruction « continue » oblige le programme à passer à x++. La
valeur est incrémentée de un, 51 est donc affichée et 50 est ignorée.

2. Parmi les affirmations suivantes, laquelle est/sont FAUX


concernant les fonctions en PHP?
A Les fonctions en PHP ne peuvent pas retourner des expressions par référence.
B La valeur de retour d’une fonction peut être spécifiée à l’aide du mot-clé return.
C Le concept des fonctions void existe en PHP.
D PHP peut permettre aux fonctions de renvoyer des variables.
Réponse
C
Toutes les fonctions en PHP renvoient une valeur – même si vous ne les indiquez pas
explicitement. Ainsi, le concept de fonctions void ne s’applique pas vraiment à PHP.

3. Quelle est la sortie du code suivant?


<?php

$x = 20;

function f($y) {

$x = 30;

global $x, $z;


return $z = ($y + $x);

print f(40) + $z;

?>
A 20
B 60
C 120
D Erreur de syntaxe
Réponse
C
Dans cette question, les commentaires expliquent le code:

<?php

$x = 20;

function f($y) {

$x = 30;

global $x, $z;

return $z = ($y + $x); //40+ 20

print f(40) + $z; //60+60

?>

4. Lequel des noms de variable suivants n’est pas valide?


A $_5var
B $5var
C $__var
D $var
Réponse
B
Les variables en PHP doivent être nommées en utilisant uniquement des lettres (a-z, A-Z), le
caractère de soulignement « _ » et des nombres. De plus, le nom doit commencer par une lettre
ou un caractère de soulignement « _ ».
5. Lequel des éléments suivants est / sont FAUX en ce qui
concerne la POO en PHP 5.3?
A La méthode __toString est appelée dans n’importe quel contexte de chaîne
B Les exceptions levées dans la fonction __autoload peuvent être interceptées dans le
bloc catch
C Ajout du support heredoc et nowdoc pour les définitions de classe const et
property
D Les classes qui implémentent des interfaces avec des méthodes ayant des valeurs
par défaut dans le prototype doivent correspondre à la valeur par défaut de
l’interface.
Réponse
D
Les classes qui implémentent des interfaces avec des méthodes ayant des valeurs par défaut dans
le prototype ne sont plus obligées de correspondre à la valeur par défaut de l’interface.

6. Quelle est la valeur de $res dans l’extrait de code suivant?


<?php

$res = 123 == 0123;

?>
A 123
B FALSE
C NULL
D TRUE
Réponse

B
123 et 0123 sont complètement différents, puisque PHP considère 0123 comme une valeur octale.

7. Laquelle des fonctions suivantes renvoie le timestamp


actuel dans Unix?
A strtotime()
B localtime()
C date()
D time()
Réponse
D
8. Lequel des fichiers suivants peut être utilisé pour modifier
les configurations PHP?
A php.ini
B config.ini
C isset.ini
D httpd_php.conf
Réponse
A
Le fichier php.ini est un fichier de configuration en PHP utilisé pour personnaliser le
comportement de PHP lors de l’exécution. Il peut personnaliser divers paramètres tels que le
répertoire de téléchargement, les variables globales, les erreurs d’affichage, les erreurs dans le
log, taille maximale de téléchargement et le temps maximal d’exécution d’un script et d’autres
configurations.

9. Laquelle des directives PHP suivantes utiliserez-vous pour


afficher toutes les erreurs sauf les notices?
A error_reporting= E_ALL & ~E_NOTICE
B error_reporting= -E_NOTICE
C error_reporting=E_ALL – E_NOTICE
D error_reporting= ~E_NOTICE
Réponse
A

10. Quelle est la sortie du code suivant?


<?php

$x = 20;

$y = 10;

$x>$y ? print($x) : print($y);

?>
A 10
B 20
C0
D Le script va lancer une erreur.
Réponse
B

1. Lequel des éléments suivants est utilisé pour définir une


constante?
A new
B const
C define
D set
Réponse

2. Quelle est la longueur du hachage généré par la fonction


de cryptographie
crc32()
?
A 128
B 64
C 32
D 512
Réponse

3. Lequel des opérateurs logiques suivants est un opérateur


logique d’équivalence?
A ==
B ===
C !=
D !==
Réponse
A

4. Laquelle des options suivantes n’est PAS une balise valide


pour un script PHP?
A <?= … ?>
B <!– … !>
C <% … %>
D <?php … ?>
Réponse
B

5. Laquelle des propositions suivantes est une constante


magique?
A $_SERVER
B __LINE__
C $_POST
D $_GET
Réponse
B

6. Lequel des opérateurs suivants a une priorité plus élevée?


A—
B–
C ++
D[
Réponse

7. Lequel des éléments suivants est lié à APC (Alternative PHP


Cache)?
A Variable
B Constant
C Byte code caching
D Namespace
Réponse

C
APC signifie Alternative PHP cache. C’est un plugin de cache PHP. APC est un opcode libre et
open source. C’est un module PECL qui peut être chargé dans PHP.

8. Lequel des éléments suivants n’est PAS un nom de variable


valide?
A $x
B $$x
C $_x
D $2x
Réponse
D
9. Vous exécutez le script PHP suivant: Quelle sera la sortie?
<?php

$x=20%-8;

echo $x;

?>
A2
B Le script affichera un message d’erreur.
C -4
D4
Réponse

10. Quelle sera la sortie du script PHP ci-dessous?


<?php

echo (int) "1235FOO";

?>
A 1235FOO
B 1235
C Il affiche une erreur.
D0
Réponse

11. Quelle sera la sortie du script PHP ci-dessous?


<?php

$a = 200;

$a = $a- + 1;

echo $a;

?>
A 200
B 201
C 199
D Il affiche une erreur.
Réponse
C
Le + est analysé comme un opérateur unaire.

<?php

$a = 200;

$a = $a- + 1;

$a = 200 - 1; // +1 = 1

$a = 199;

?>

Question 1/7 : PHP

Barème : bonne réponse 2 points, mauvaise réponse -0,5 point, je ne sais pas 0
point

<?php
$res = 2+3/4;
print $res;
?>

Qu'affiche le script ?

Je ne sais pas
A) 1.25
B) 2
C) 2.75

Question 2/7 : PHP

Barème : bonne réponse 2 points, mauvaise réponse -0,5 point, je ne sais pas 0
point

<?php
$res = 15;
$Res = 10;
$Res = $Res -7;
print $res;
?>

Qu'affiche le script ?

Je ne sais pas
A) 3
B) 8
C) 15

Question 3/7 : PHP

Barème : bonne réponse 2 points, mauvaise réponse -0,5 point, je ne sais pas 0
point

<?php
$a = 6;
$b = 15;
$c = $a;
$a = $b;
$b = $c;
print "$a $b";
?>

Qu'affiche le script ?

Je ne sais pas
A) 6 6
B) 6 15
C) 15 6
D) 15 15

Question 4/7 : PHP


Barème : bonne réponse 2 points, mauvaise réponse -0,5 point, je ne sais pas 0
point

<?php
$a = 1,5;
$b = 2,2;
$c = $a + $b;
print $c;
?>

Qu'affiche le script ?

Je ne sais pas
A) 3,7
B) 3.7
C) Le script génère une erreur.

Question 5/7 : PHP

Barème : bonne réponse 2 points, mauvaise réponse -1 point, je ne sais pas 0 point

<?php
$a = "3*7";
print $a;
?>

Qu'affiche le script ?

Je ne sais pas
A) 21
B) 3*7

Question 6/7 : PHP


Barème : bonne réponse 2 points, mauvaise réponse -0,5 point, je ne sais pas 0
point

<?php
$a = "4";
$b = "2";
$c = $a.$b;
print $c;
?>

Qu'affiche le script ?

Je ne sais pas
A) 8
B) 24
C) 42

Question 7/7 : PHP

Barème : bonne réponse 2 points, mauvaise réponse -0,5 point, je ne sais pas 0
point

<?php
$a = "Bon";
$b = "jour";
print $b.$a;
?>

Qu'affiche le script ?

Je ne sais pas
A) jourBon
B) Bonjour
C) $b.$a
Questions

1 _ Que veut dire SQL ?


Structured Query Language (Standard Query Language)

Software Query Layer

Software Query Language

2 _ Quel sont les affirmations ci-après qui sont vraies ?


Dans une table on peut accéder indépendemment à chaque enregistrement

Dans une table, les données sont rangées par ordre alphabétique

Une table fait toujours partie d'une base de données

3 _ Quel sont les affirmations ci-après qui sont vraies ?


Une table MySQL à toujours une clé primaire

Une table a toujours au moins un index, en plus de la clé primaire

Un champ indexé est plus rapide qu'une clé primaire

4 _ Quel sont les affirmations ci-après qui sont vraies ?


Une table est en général mieux protégée qu'un fichier texte

Une table tient moins de place qu'un fichier texte

Une table est toujours organisée en lignes et en colonnes

5 _ Quel sont les avantages d'une table par rapport à un fichier texte ?
On peut facilement en lire le contenu dans un editeur de texte (wordpad)

Son contenu est facilement modifiable par programme

On peut relier les données d'une table avec les données d'une autre table

6 _ Pour extraire la colonne 'NOM' d'une table 'EMPLOYES' en langage SQL ?


select NOM from EMPLOYES

select NOM from table EMPLOYES

select NOM into EMPLOYES

7 _ Comment voir les données renvoyées par la fonction 'mysql_query(select * from EMPLOYES)' ?
on peut imprimer directement le contenu des champs sélectionés

on utilise en général une autre fonction 'mysql_fetch_array()'

on utilise en général une autre fonction 'mysql_list_fields()'

8 _ A quoi sert la clause 'where' en SQL ?


Trier les données en sortie

Rechercher certains enregistrements parmi dans une table ou un ensemble de tables

Regrouper des enregistrement en sortie

9 _ A quoi sert la clause 'order by' en SQL ?


Trier les données en sortie

Rechercher certains enregistrements parmi dans une table ou un ensemble de tables


Regrouper des enregistrement en sortie

10 _ A quoi cela sert-il de relier plusieurs tables entre elles ?


Eviter la duplication des informations

Accélérer les extractions de données

Faciliter les extractions de données

1
Qu'est-ce que PHP ?
 C'est un langage de programmation compilé.
 C'est un interpréteur permettant de créer n'importe quel logiciel.
 C'est un langage de scripts permettant de créer des sites Web
dynamiques
 C'est un langage interprété permettant de créer des applications Web
« Il ne faut surtout pas confondre entre un langage interprété et un langage de
programmation compilé.
PHP est un interpréteur Open source et il existe d'autres interpréteurs. »
2
Que signifie PHP ?
 Page Helper Process
 Programming Home Pages
 PHP : Hypertext Preprocessor
 PHP : Programming Hypertext Preprocessor
« Prendre connaissance de la notion d''acronyme récursif. »
3
Quel est l'usage le plus courant du PHP ?
 Créer le design des pages Web
 Générer le contenu des pages Web mis à jour systématiquement.
 Créer des sites Web dynamiques
 Créer des sites Web statiques
« Il faudrait se documenter sur la différence entre un site Web statique et un site
Web dynamique. »
4
PHP remplace-t-il HTML ?
 Oui, PHP génère aussi du code HTML.
 Non, HTML s'occupe de la mise en forme d'une page Web et PHP prend en
charge le contenu de la page.
 Oui, PHP possède des fonctions permettant de remplacer HTML
 Non, HTML permet de créer le contenu et PHP génère l'interface
graphique.
« Renseignez-vous sur la différence entre le langage HTML et PHP. »
5
Je veux créer une page Web contenant le titre suivant : "Ma première
page Web". Aurai-je besoin du PHP ?
 Non, le HTML est suffisant.
 Oui, il faudrait utiliser une fonction PHP permettant d'afficher une chaîne de
caractères.
 Oui, puisque PHP permet de construire une page Web
 Non, PHP est nécessaire lorsque le titre est dynamique.
« Il faudrait décider dès le départ si votre page Web est statique ou dynamique
pour que vous puissiez confirmer ou infirmer la nécessité d'utiliser PHP. »
6
Je veux créer une page Web affichant les nom et prénoms des
utilisateurs qui sont stockés dans une base de données MySQL. Aurai-je
besoin du PHP ?
 Oui, il s'agit d'une page dynamique puisqu'elle affiche le contenu d'une
base de données.
 Non, il s'agit d'un affichage et HTML peut le faire.
 Oui, HTML ne peut pas interagir avec une base de données.
 Oui, puisque les données affichées peuvent changer en fonction du
contenu de la base de données.
« Il faudrait se documenter sur les bases de données notamment MySQL. »
7
Comment appelle-t-on un programme écrit en PHP ?
 Fichier PHP
 Code HTLM
 Script PHP
 Programme PHP
« On utilise le plus souvent le terme "Script PHP" pour désigner tout programme
intégrant du code PHP. »
8 Bonne réponse
Quelle est l'extension des fichiers PHP ?
 Xml
 Html
 Ph
 Php
« Si vous voulez intégrer du code PHP dans un fichier html pour insérer des
données variables. il faudrait remplacer .html du fichier par .php et intégrer le
code php dans le fichier et le délimiter par les deux balises »
9
Que faut-il installer pour exécuter un script PHP?
 Il faudrait avoir uniquement un navigateur pour afficher le contenu de la
page Web générée par PHP
 Il faudrait installer un serveur Web contenant un interpréteur PHP qui va
traduire le code PHP.
 Il faudrait installer un SGBD si le script PHP interagit avec une base de
données.
 Nous n'aurons pas besoin du navigateur puisque le script PHP s'exécute au
niveau serveur et non pas au niveau client
« Un site web dynamique fait en PHP est avant tout une application
client/serveur. Les requêtes du client se font à travers un navigateur. Le serveur
Web (comme Apache) s'occupe de l'exécution du code PHP à l'aide de l'interpréteur
PHP qui est installé dans ce serveur. Si les données évoquées dans le script PHP
sont issues d'une base de données il faudrait installer le SGBD comme MySQL. »
10
J'ai créé un script PHP que j'ai nommé FirstPHPScript.php
J'ai ouvert le fichier à partir de mon navigateur pour voir le résultat.
Mais, il m'a ré-affiché le code PHPque j'ai écrit. Où réside l'erreur ?
 Le script PHP est appelé au niveau du navigateur
 PHP s'exécute au niveau du serveur Web.
 L'erreur est plutot syntaxique.
 Il se peut que les éléments logiciels nécessaires ne sont pas disponibles.
« L'erreur réside dans le fait que le script PHP est évoqué localement. Or,
contrairement à HTML qui s'execute au niveau client (Un navigateur), PHP,
s'exécute au niveau du serveur Web possédant un interpréteur PHP. »
Questions

1 _ Quel est le symbole à utiliser pour séparer les variables passées par un url ?
Un point virgule ;

&

2 _ Comment sont récupérées dans la page d'arrivée les variables passées par l'URL ?
$_GET['nom_de_variable']

$_GET[$nom_de_variable]

$_GET('nom_de_variable)

3 _ Différence essentielle entre un formulaire method = POST et un formulaire method = GET ?


La methode GET est plus rapide

La méthode POST passe par le système de courrier du serveur

Avec la methode GET les données sont passées par l'URL, et avec POST en interne

4 _ Pour donner à l'internaute la possibilité de choisir une seule case à cocher parmi plusieurs on utilise ?
Les boutons radio

Les cases à cocher normales

Des boites de dioalogues spéciales

5 _ D'une façon générale, dans quelle variable récupère-t-on les valeurs : ?


Dans la variable dont le nom est identifié dans HTML par le mot-clé 'type='

Dans la variable dont le nom est identifié dans HTML par le mot-clé 'name='

Dans la variable dont le nom est identifié dans HTML par le mot-clé 'value='

6 _ Quelle est la particularité du code HTML pour une liste à choix multiple ?
Le nom de la variable à passer doit être en majuscules

Le nom de la variable à passer est suivi de crochets []

Le nom de la variable à passer est suivi de parenthèses ()

7 _ Comment appelle-t-on en général les cases à cocher avec choix unique ?


Boutons radio

Cases à cocher simple

Cases à cocher boutons

8 _ Quel mot clé particulier est utilisé en HTML pour les liste de choix ?
CHOICE

SELECTED

SELECT

9 _ Dans quelle variable est stockée le nom du fichier du script en cours ?


$SERVER[PHP_SELF]

$_SERVER[PHP_SELF]

$_SERVER[$PHP_SELF]
10 _ Comment conserver les retour à la ligne dans une boite d edialogue ? ?
utiliser la fonction nl2br() dans la page emetrice

utiliser la fonction nl2br() dans la page receptrice

utiliser la fonction nlobr() dans la page receptrice

1. On évalue le code suivant :


$kiwi = 'vert';
$fruit = &$kiwi;
$fruit = array();
$fruit['kiwi'] = $kiwi;

Que contient $fruit ?


o Infiniment de rien
o Un kiwi.
o du vert !
o La variable n'est pas définie.

A, la simple assignation d'un tableau vide ne supprime pas la référence, il


faudrait utiliser unset() avant.

2. Sachant que l'on veut retrouver une portion de texte sous la forme crochet
gauche, 2 à 6 caractères alphanumériques ou souligné, crochet droit avec
preg_match, quelle expression utiliser :
o "/\[[A-Za-z0-9]{2,6}\]/"
o '`\[\w{2,6}\]`'
o '#\[[A-Z0-9_]{2,6}\]#iA'
o "\`\[\w{2,6}\]\`"
o A et B
o B et D

B, tous les autres masques sont invalides : A. Il manque le souligné; C. L'option


"A" force la validation de tout le texte et non pas une portion; D. Les
guillemets doubles provoquent l'interprétation des backslash et les crochets
ne sont plus échappés pour preg_match().

3. Soit query() un fonction faisant une requête SQL et escape() une fonction
effectuant un échappement des caractères potentiellement dangereux.
Quelle requête est sécurisée de manière optimale ?
o query('SELECT * FROM `table` WHERE champ1='.$a.' AND
champ2='.$b);
o query('SELECT * FROM `table` WHERE champ1='.escape($a).' AND
champ2='.escape($b));
o query(sprintf('SELECT * FROM `table` WHERE champ1="%s" AND
champ2="%d"', escape($a), escape($b));
o query(escape('SELECT * FROM `table` WHERE champ1='.$a.' AND
champ2='.$b));
o query(sprintf('SELECT * FROM `table` WHERE champ1="%s" AND
champ2="%d"', escape($a), $b);

E, les autres requêtes ne sont pas optimales: A. Il n'y a aucun échappement; B.


Les variables à insérer sont bien échappées mais elle ne sont pas entourées de
guillemets; C. Il est inutile d'échapper la 2eme variable, en effet %d force son
interprétation comme un nombre; D. L'échappement de toute la requête la
rend totalement inutile

4. On interprète le code suivant:


$a = 'ki' || 'wi';
$b = 'ki' or 'wi';
Que donne var_dump($a, $b); ?
o bool(true) bool(true)
o string(2) "ki" bool(true).
o bool(true) string(2) "ki".
o 1 1.
o ki wi

C, l'opérateur "||" ayant une précédence supérieure à "=" et "or" une


précédence inférieure on peut lire le code ainsi:
$a = ('ki' || 'wi');
($b = 'ki') or 'wi';

5. En utilisant la fonction header() de php afin d'envoyer un code HTTP 404,


puis exit(), qu'est-ce qui est affiché (aucun envoi n'a encore été fait au
client) ?
o Une page blanche avec un code html minimaliste "HTTP/1.1 404 Not
Found".
o Une erreur PHP.
o La page d'erreur 404 par défaut de mon site ou de mon CMS/Blog.
o Une page blanche ou la page type 404 intégrée au navigateur.

Le header HTTP est bien envoyé mais il n'y a aucun ajout de contenu par le
serveur, ce qui ne donne aucune indication au navigateur hormis le code
retour HTTP. Celui-ci est donc libre de ne rien afficher (par exemple Firefox) ou
de remplacer le tout par une page 404 par défaut qui oriente l'internaute (par
exemple Internet Explorer).

6. Ma page index.php contient le code suivant :


$a = 'a'.file_exists(__FILE__);
$a1 = 'wiki';
$a2 = 'kiwi';
echo ${$a};

Qu'est-ce qui s'affiche si on y accède ?


o Une page blanche.
o kiwi.
o wiki
o Une erreur PHP.
o Aucune des solutions précédentes.

C, $a contient 'a1', donc ${$a} correspond à ${a1} soit 'wiki'

7. Quel est l'effet de l'utilisation de la structure return(); dans un fichier inclus


(sans être dans une fonction) ?
o Retour au script parent sans exécuter la suite du fichier.
o Une erreur PHP.
o Arrêt du script à la manière de exit().
o Aucun, il est ignoré.
o Cela dépend s'il a été inclus avec require() ou include().

A, et si un paramètre est ajouté il peut être récupérer comme retour de


include();

8. Que donne le code suivant en PHP5 ?


$b = false;
$a = unset($b);
var_dump($a);

o NULL
o Une erreur PHP.
o bool(true)
o bool(false)
o ressource(#)

B, unset() n'a aucune valeur de retour depuis PHP4, tenter d'utiliser le retour
provoque donc une erreur d'analyse.

9. PHP possède deux analyseurs XML, quelle est leur principale différence ?
o Il n'y a qu'un analyseur XML
o L'un commence par la fin du fichier, l'autre par le début
o L'un ignore les erreurs, l'autre arrête l'analyse
o L'un nécessite une DTD pour travailler, l'autre pas
o L'un charge toute la chaine en mémoire, l'autre travail sur un flux
E, il est possible d'utiliser simpleXML ou les fonctions xml. SimpleXML charge
l'intégralité de la chaine en mémoire et construit l'arborescence. SAX (le
moteur utilisé par les fonctions xml), lui lit la chaine par petits morceaux (flux).

10. Laquelle de ces affirmations concernant PHP6 est fausse ?


o Le type string est destiné à disparaître
o La syntaxe "goto label" sera utilisable.
o Une classe fille pourra avoir plusieurs classes mères.
o On pourra utiliser: foreach($a as $key => list($value1, $value2)).
o Les espaces de nom feront leur apparition.
o Les directives magic_quotes_gpc et register_global disparaîtront.

Une classe fille ne pourra pas avoir plusieurs classes mères. Toutes les autres
affirmations sont justes (le type "string" deviendra "unicode").

1 / Quel est le type de la variable $a = 19.9; ?


Double
String
Integer
Float
2 / Quel symbole permet d'identifier les variables en PHP ?
&
!
$
%
3 / Quel symbole permet de finaliser une déclaration en PHP ?
?>
!>
,
;
4 / Quelle syntaxe utilisée pour incrémenter la variable $a de 1 ?
$a+1;
$a++;
++$a;
($a)1;
5 / Quel est l'opérateur de concaténation en PHP ?
+
.
$
&&
6 / Quel opérateur de comparaison utiliser pour tester si $a est différent de $b ?
==
&&
!=
!!
7 / Quel fonction permet d'afficher le type et la valeur d'une varibale en PHP ?
echo()
dump()
debug()
var_dump()
8 / Pour quel type de variable la boucle foreach() est très utile ?
String
Array
Boolean
Integer
9 / Quelle fonction permet de générer un nombre aléatoire en PHP ?
random()
rand()
aleatoire()
rand_int()
10 / Combien d'itération provoquera la boucle suivante : for($i = 0;$i <=
5;$i++) ?
4
5
6
C'est une boucle infinie
11 / Quelles sont les valeurs possibles pour une variable de type booléen ?
0 ou 1
TRUE ou FALSE
Une infinité de possibilité
Tout sauf NULL
12 / Quelle est la bonne méthode pour afficher grâce au PHP : Code is Poetry ?
Code is Poetry;
echo Code is Poetry;
echo (Code is Poetry);
echo "Code is Poetry";
13 / Quelle syntaxe utiliser pour commenter une seule ligne en PHP ?
// Commentaire en PHP
?? Commentaire en PHP
%% Commentaire en PHP
$$ Commentaire en PHP
14 / Quelle syntaxe permet de supprimer l'élément avec la clé 2 du tableau $tableau ?
unset($tableau[2]);
remove($tableau[2]);
delete($tableau[2]);
delete($tableau{2});
15 / Dans une structure conditionnelle if, quel mot clé peut-on retrouver 0 ou N fois ?
if()
else()
else if()
Aucun
16 / Parmi ces propositions, laquelle n'est pas une boucle en PHP ?
for()
each()
while()
do...while()
17 / Parmi les variables suivantes, laquelle a un nom invalide ?
$1variable
$variable1
$_mavariable
$maVariable
18 / Quel est l'extension d'un fichier PHP ?
.php
.php5
.pp
.html
19 / Parmi les propositions suivantes, laquelle est fausse au sujet du PHP ?
Le PHP permet d'interagir avec une base de données
Le PHP permet d'afficher du HTML
Un serveur est obligatoire pour développer du PHP
Le navigateur web lit et comprend le PHP
20 / Quel symbole permet de clôturer un script PHP ?
;
?>
!>
>

1. Que signifie PHP ?


o Page Helper Process
o Programming Home Pages
o PHP: Hypertext Preprocessor (correct)
2. Quelle fonction retourne la longueur d'une chaîne de texte ?
o strlen (correct)
o strlength
o length
o substr
3. Comment accède-t-on au 1er élément chaton dans le tableau suivant :
$tableau = Array('chaton' , 'ornithorynque', 'dauphin'); ?
o $tableau[1]
o $tableau[0] (correct)
o $tableau{0}
o $tableau.get(1)
4. Comment vérifie-t-on l'égalité de deux variables : $a et $b ?
o $a = $b
o $a == $b (correct)
o $a != $b
o if($a,$b)
5. Quelle est l'utilité de l'opérateur || ?
o Il sert à vérifier que toutes les conditions sont réalisées.
o Il sert à vérifier qu'une, et une seule, des conditions est réalisée.
o Il sert à vérifier qu'une, au moins, des conditions est réalisée. (correct)
6. Quelles valeurs peut prendre le type booléen ?
o 0 ou 1
o TRUE ou FALSE (correct)
o Toutes sauf NULL
7. La boucle for ($i=0 ; $i<=3 ; $i++ ) { echo $i; }...
o Sera éxécutée 2 fois
o Sera éxécutée 3 fois
o Sera éxécutée 4 fois (correct)
8. Sachant que $a = 4. Quelle instruction affiche : 4 = quatre ?
o echo '$a = quatre';
o echo '$a = 2+2';
o echo "$a = quatre"; (correct)
9. Sachant que $dodo = 6. Quelle est la valeur de ma nuit : $dodo += 2; ?
o 3
o 8 (correct)
o 12
10. Dans le cas d'envoi d'informations plus ou moins sensibles par formulaire,
quelle méthode utilisera-t-on de préférence ?
o get
o mailto
o post (correct)
11. Quelle fonction retourne le nombre de secondes écoulées depuis le 1er
janvier 1970 ?
o time (correct)
o timestamp
o mktime
o microtime
12. Quelle instruction permet d'ouvrir un fichier en écriture afin d'ajouter des
données à la fin de son contenu ?
o fopen("fichier","r+") (faux)
o fopen("fichier","w")
o fopen("fichier","a") (correct)

"a" Ouvre en écriture seule et place le pointeur de fichier à la fin du fichier.


"r+" Ouvre en lecture et écriture, et place le pointeur de fichier au début du
fichier.
"w" Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et
réduit la taille du fichier à 0.

13. Quelle fonction retire un élément de la fin d'un tableau ?


o array_splice()
o array_pop() (correct)
o array_pad() (faux)
o array_shift()

- La fonction array_splice() sert à effacer et remplacer une portion de tableau.


- La fonction array_pop() dépile et retourne le dernier élément du tableau.
- La fonction array_pad() sert à compléter un tableau avec une valeur jusqu'à la
longueur spécifiée.
- La fonction array_shift() dépile un élément en début de tableau.

14. Quelle fonction permet d'envoyer des en-têtes HTTP au navigateur avant le
contenu de la page ?
o parse_url()
o http_post() (faux)
o header() (correct)

- La fonction parse_url() sert à analyse une URL et à retourner ses composants.


- http_post() n'est pas une fonction existante.
- La fonction header() permet l'envoi d'un en-tête http.

15. Dans quel tableau de données retrouve-t-on les cookies du visiteur ?


o $SETCOOKIE
o $COOKIES
o $HTTP_COOKIES
o $_COOKIE (correct)
o $HTTP_COOKIES_VARS (faux)

- La variable $SETCOOKIE n'existe pas. La fonction setcookie(), quant à elle,


permet l'envoi d'un cookie.
- La variable $COOKIES n'est pas initialisée par défaut dans php. Vous pouvez
la créer et l'utiliser.
- La variable $HTTP_COOKIES n'existe pas. Mais là encore, vous pouvez la
créer.
- $_COOKIE contient les variables fournies par les cookies via le protocole
HTTP. $HTTP_COOKIE_VARS (pas de S à COOKIE) en est un alias.

16. Quelle fonction permet de lire le résultat d'une ressources MySQL renvoyée
par mysql_query() ?
o mysql_fetch_row() (correct)
o mysql_data_seek() (faux)
o mysql_affected_rows()

- La fonction mysql_fetch_row() retourne une ligne de résultat MySQL sous la


forme d'un tableau.
- La fonction mysql_data_seek() déplace le pointeur interne de résultat MySQL.
- La fonction mysql_affected_rows() retourne le nombre de lignes affectées lors
de la dernière opération MySQL.

A noter que d'autres fonctions peuvent être utilisées :


- mysql_fetch_array retourne une ligne de résultat MySQL sous la forme d'un
tableau associatif, indexé, ou les deux.
- mysql_fetch_assoc() renvoie un tableau associatif.
- mysql_fetch_object() retourne une ligne de sous la forme d'un objet.

17. Quelle fonction permet d'effacer un fichier ?


o delete() (faux)
o unlink() (correct)
o remove()
o clearfile()

- En PHP, la fonction delete() n'existe pas.


- La fonction unlink() efface un fichier.
- En PHP, la fonction remove() n'existe pas.
- En PHP, la fonction clearfile() n'existe pas.
Nota : Pour la suppression de dossiers on utilisera également la fonction
rmdir().

18. Comment peut-on trier un tableau en ordre inverse ?


o $tableau = ksort($tableau);
o ksort($tableau)
o $tableau = rsort($tableau); (faux)
o rsort($tableau); (correct)

- La fonction ksort() renvoie un booléen (true ou false selon que l'action ait été
effectuée ou non). Cette ligne remplacerait donc le contenu de $tableau par
TRUE ou FALSE selon le contexte.
- La fonction ksort() trie un tableau suivant les clés.
- Comme ksort(), rsort() renvoie un booléen. Cette ligne remplacerait donc le
contenu de $tableau par TRUE ou FALSE.
- La fonction rsort() trie un tableau (passé en référence) en ordre inverse et
renvoie une valeur booléenne (true) en cas de succès.

19. Comment définit-on une constante ?


o set('maconstante' = 'valeur');
o define("maconstante","valeur"); (correct)
o const $maconstante = valeur;
20. Quelle instruction n'est pas le nom d'une fonction ?
o exit (correct)
o print_r
o define
21. Comment vérifier la syntaxe d'une adresse e-mail contenue dans la variable
$email ?
o strpos($email,"*@*.*")
o ereg($email,"[:alpha:]*@[:alpha:]*\.[:alpha:]*")
o preg_match("/^(\w|-)+@((\w|-)+\.)+[a-z]{2,6}$/i",$email)

- La fonction strpos() trouve la position d'un caractère dans une chaîne. Ici,
l'expression *@*.* est recherchée.
- Dans la deuxième proposition, les arguments sont inversés bien que
l'expression de vérification puisse être correcte.
- La fonction preg_match() associée au motif cité permet de s'assurer que la
variable $email correspond bien à une adresse standard.

22. Par défaut, dans quel ordre de priorité sont affectées les variables envoyées
par HTTP ?
o get, cookie, post
o post, get, cookie
o get, post, cookie
o post,cookie, get

L'ordre de priorité est GET, POST, COOKIE (intitulé GPC comme toutes les
fonctions y faisant référence).
Cet ordre peut être modifié en redéfinissant la variables_order dans le fichier
de configuration php.ini

23. Comment définit-on le constructeur d'une classe (compatible PHP3/4/5) ?


o grâce à public static void()
o en utilisant __construct()
o en nommant la fonction comme la classe

- public static void() n'est pas une fonction à proprement parler en PHP.
- __construct() est le nom de la fonction à écrire pour implémenter un
constructeur dans l'objet en PHP5.
- En PHP3/4, le constructeur est une fonction qui a le même nom que la classe.
En PHP5, on utilise la fonction __construct().
Si __construct() est absente, PHP5 acceptera une fonction portant le nom de
la classe comme constructeur.

24. Comment mémorise-t-on de façon pratique une variable d'un script à l'autre
sur un serveur web ?
o Grâce à serialize()
o En utilisant $_SESSION
o Au moyen de register_globals()

- La fonction serialize() permet de stocker ou passer des valeurs entre scripts,


sans perdre ni leur structure, ni leur type.
- Tous les éléments de $_SESSION sont automatiquement enregistrés dans la
session courante.
- register_globals() permets de définir si oui ou non les variables EGPCS
(Environment, GET, POST, Cookie, Server) seront enregistrées comme des
variables globales.
A noter que l'on peut également utiliser la fonction session_register(). Elle
enregistre toutes les variables de nom donné en argument dans la session
courante lorsque register_globals est activée.
En savoir plus : session_register().

Note : Attention, l'utilisation des variables de sessions peut provoquer des


effets secondaires indésirables.

25. Quelle fonction de bufferisation (temporisation) envoie au navigateur les


données contenues par le tampon, et stoppe la tamporisation de sortie ?
o ob_flush()
o ob_end_flush()
o ob_get_flush()

- ob_end_flush envoie les données du tampon de sortie et éteint la


tamporisation de sortie.
- ob_flush() envoie le tampon de sortie.
- ob_get_flush() vide le tampon, le retourne en tant que chaîne et stoppe la
tamporisation.

26. De quelle façon autorise-t-on l'accès à un fichier


- en lecture/écriture/exécution pour le propriétaire
- en lecture/écriture pour le groupe
- en lecture pour les autres
?
o chmod('fichier',0764);
o chmod('fichier','u+wrx g+rw o+r');
o chown('fichier','0777');

- La fonction chmod() change le mode du fichier. Le paramètre mode est


constitué de quatre valeurs octales (trois en décimal) qui spécifient les droits
pour le propriétaire, le groupe du propriétaire et les autres, respectivement.
Chaque composant peut être calculé en ajoutant les droits désirés. Le chiffre 1
donne les droits d'exécution, le chiffre 2 les droits d'écriture et le chiffre 4 les
droits de lecture. Ajoutez simplement ces nombres pour spécifier les droits
voulus.
- La fonction chown() permet de changer le groupe propriétaire du fichier.

27. Quel mot clé permet de conserver la valeur d'une variable locale dans une
même fonction appelée plusieurs fois de suite ?
o global
o const
o static

- Le niveau global permet à une variable d'être utilisée dans la fonction et à


l'extérieur de celle-ci.
- Le niveau const est inexistant en php.
- Le niveau static permet de définir une variable locale à la fonction, qui
persiste durant le temps de l'exécution du script. Elle conservera ses
différentes valeurs à chaque nouvel appel de la fonction.

28. Quelle fonction permet d'obtenir les informations suivantes à propos d'un
fichier : date de dernier accès, date de modification, date de création ?
o stat()
o filemtime()
o filegroup()

stat() retourne un tableau contenant diverses informations à propos d'un


fichier, dont les différentes dates mentionnées, la taille en octets, etc.
- La fonction filemtime() renvoie la date de dernière modification du fichier.
- La fonction filegroup() renvoie le groupe qui possède le fichier filename.

29. Quelle méthode permet d'attraper par défaut les exceptions lancées par un
script, à l'aide d'une fonction propre function gestion_exception($e) { ...
}?
o $handler->setdefault('gestion_exception');
o set_exception_handler('gestion_exception');
o exception_handler($e) = gestion_exception();

- set_exception_handler('gestion_exception'); définit le gestionnaire


d'exceptions par défaut si une exception n'est pas attrapée avec un bloc
d'essai/d'attrape. L'exécution sera stoppée après l'appel à la
fonction gestion_exception.
- Les autres syntaxes n'existent pas en PHP.

30. $a = M_PI;
$b = &$a;
Sachant qu'au cours de l'éxécution du script, $a = 10, que vaudra pow($b,2)
* sqrt(3)/2 + $a; ?
o pi² sqrt(3)/2 + 10
o pi² sqrt(3)/2 + pi
o Quel est le tordu qui a pu pondre un truc pareil ?
o 50 sqrt(3) + 10

La syntaxe $b = &$a; indique que la valeur de la variable $a n'est pas copiée


dans la variable $b.
La variable $b fait référence à la variable $a.
Les deux variables pointent vers la même zone de mémoire et la modification
de l'une des deux variable se répercute sur l'autre.
Donc, la valeur de $b sera la même que la valeur de $a, à savoir 10.
Le reste n'est qu'une histoire de calcul :

$b = 10
pow($b,2) = 100
pow($b,2) * sqrt(3)/2 + $a = 100 * sqrt(3)/2 + 10
pow($b,2) * sqrt(3)/2 + $a = 50 sqrt(3) + 10

1. On évalue le code suivant :


$kiwi = 'vert';
$fruit = &$kiwi;
$fruit = array();
$fruit['kiwi'] = $kiwi;

Que contient $fruit ?


o Infiniment de rien
o Un kiwi.
o du vert !
o La variable n'est pas définie.

A, la simple assignation d'un tableau vide ne supprime pas la référence, il


faudrait utiliser unset() avant.

2. Sachant que l'on veut retrouver une portion de texte sous la forme crochet
gauche, 2 à 6 caractères alphanumériques ou souligné, crochet droit avec
preg_match, quelle expression utiliser :
o "/\[[A-Za-z0-9]{2,6}\]/"
o '`\[\w{2,6}\]`'
o '#\[[A-Z0-9_]{2,6}\]#iA'
o "\`\[\w{2,6}\]\`"
o A et B
o B et D

B, tous les autres masques sont invalides : A. Il manque le souligné; C. L'option


"A" force la validation de tout le texte et non pas une portion; D. Les
guillemets doubles provoquent l'interprétation des backslash et les crochets
ne sont plus échappés pour preg_match().

3. Soit query() un fonction faisant une requête SQL et escape() une fonction
effectuant un échappement des caractères potentiellement dangereux.
Quelle requête est sécurisée de manière optimale ?
o query('SELECT * FROM `table` WHERE champ1='.$a.' AND
champ2='.$b);
o query('SELECT * FROM `table` WHERE champ1='.escape($a).' AND
champ2='.escape($b));
o query(sprintf('SELECT * FROM `table` WHERE champ1="%s" AND
champ2="%d"', escape($a), escape($b));
o query(escape('SELECT * FROM `table` WHERE champ1='.$a.' AND
champ2='.$b));
o query(sprintf('SELECT * FROM `table` WHERE champ1="%s" AND
champ2="%d"', escape($a), $b);

E, les autres requêtes ne sont pas optimales: A. Il n'y a aucun échappement; B.


Les variables à insérer sont bien échappées mais elle ne sont pas entourées de
guillemets; C. Il est inutile d'échapper la 2eme variable, en effet %d force son
interprétation comme un nombre; D. L'échappement de toute la requête la
rend totalement inutile

4. On interprète le code suivant:


$a = 'ki' || 'wi';
$b = 'ki' or 'wi';
Que donne var_dump($a, $b); ?
o bool(true) bool(true)
o string(2) "ki" bool(true).
o bool(true) string(2) "ki".
o 1 1.
o ki wi

C, l'opérateur "||" ayant une précédence supérieure à "=" et "or" une


précédence inférieure on peut lire le code ainsi:
$a = ('ki' || 'wi');
($b = 'ki') or 'wi';

5. En utilisant la fonction header() de php afin d'envoyer un code HTTP 404,


puis exit(), qu'est-ce qui est affiché (aucun envoi n'a encore été fait au
client) ?
o Une page blanche avec un code html minimaliste "HTTP/1.1 404 Not
Found".
o Une erreur PHP.
o La page d'erreur 404 par défaut de mon site ou de mon CMS/Blog.
o Une page blanche ou la page type 404 intégrée au navigateur.

Le header HTTP est bien envoyé mais il n'y a aucun ajout de contenu par le
serveur, ce qui ne donne aucune indication au navigateur hormis le code
retour HTTP. Celui-ci est donc libre de ne rien afficher (par exemple Firefox) ou
de remplacer le tout par une page 404 par défaut qui oriente l'internaute (par
exemple Internet Explorer).

6. Ma page index.php contient le code suivant :


$a = 'a'.file_exists(__FILE__);
$a1 = 'wiki';
$a2 = 'kiwi';
echo ${$a};

Qu'est-ce qui s'affiche si on y accède ?


o Une page blanche.
o kiwi.
o wiki
o Une erreur PHP.
o Aucune des solutions précédentes.

C, $a contient 'a1', donc ${$a} correspond à ${a1} soit 'wiki'

7. Quel est l'effet de l'utilisation de la structure return(); dans un fichier inclus


(sans être dans une fonction) ?
o Retour au script parent sans exécuter la suite du fichier.
o Une erreur PHP.
o Arrêt du script à la manière de exit().
o Aucun, il est ignoré.
o Cela dépend s'il a été inclus avec require() ou include().

A, et si un paramètre est ajouté il peut être récupérer comme retour de


include();

8. Que donne le code suivant en PHP5 ?


$b = false;
$a = unset($b);
var_dump($a);

o NULL
o Une erreur PHP.
o bool(true)
o bool(false)
o ressource(#)

B, unset() n'a aucune valeur de retour depuis PHP4, tenter d'utiliser le retour
provoque donc une erreur d'analyse.

9. PHP possède deux analyseurs XML, quelle est leur principale différence ?
o Il n'y a qu'un analyseur XML
o L'un commence par la fin du fichier, l'autre par le début
o L'un ignore les erreurs, l'autre arrête l'analyse
o L'un nécessite une DTD pour travailler, l'autre pas
o L'un charge toute la chaine en mémoire, l'autre travail sur un flux
E, il est possible d'utiliser simpleXML ou les fonctions xml. SimpleXML charge
l'intégralité de la chaine en mémoire et construit l'arborescence. SAX (le
moteur utilisé par les fonctions xml), lui lit la chaine par petits morceaux (flux).

10. Laquelle de ces affirmations concernant PHP6 est fausse ?


o Le type string est destiné à disparaître
o La syntaxe "goto label" sera utilisable.
o Une classe fille pourra avoir plusieurs classes mères.
o On pourra utiliser: foreach($a as $key => list($value1, $value2)).
o Les espaces de nom feront leur apparition.
o Les directives magic_quotes_gpc et register_global disparaîtront.

Une classe fille ne pourra pas avoir plusieurs classes mères. Toutes les autres
affirmations sont justes (le type "string" deviendra "unicode").
2019/2021

HTML – Rappels
1. Web et Html:
Qu'est ce que l'HTML?
HTML est le langage de balisage hypertexte utilisé dans le Web (HyperText Markup Language). Ce n'est pas
un langage de programmation proprement dit.
Ce sont "simplement" des balises pour mettre en forme (avec des liens, en tableau, etc...) du texte et des
images. Pour avoir une idée de l'aspect d'une page écrite en HTML, cliquez sur "Affichage" dans votre
navigateur, puis sélectionnez "page source".
Qu'est ce qu'une balise?
 Une balise est une "instruction" comprise entre crochets < > qui possède un nom et parfois des
attributs.
<br> est, par exemple, la balise utilisée pour spécifier qu'il faut passer à la ligne.
 La plupart des balises doivent être ouvertes puis refermées. On retrouvera donc souvent une balise
de début et une balise de fin.
La balise de fin porte le même nom que la balise de début mais est en plus précédée du signe /.
Nous aurons donc: (ouverture) <nom_de_balise> et (fermeture) </nom_de_balise>.
Par exemple: <b>mon texte en gras (bold)</b>.
 Le nom de la balise (contenu entre les crochets) n'est pas sensible à la casse: il peut être écrit
indifféremment en majuscule, en minuscule ou en un mélange des 2.
 L'attribut d'une balise est défini comme suit: nom_attribut="valeur"
Par exemple, la balise utilisée pour faire un lien a pour nom "a", et pour nom d'attribut "href". Ainsi,
<a href="http://www.google.fr">Google</a> permet de faire un lien vers la page principale du site
de Google. Dans ce cas, la valeur de l'attribut "href" est donc "http://www.google.fr".

2. Premiers outils
Vous avez besoin de:
 d'un éditeur de texte tout simple comme par exemple le Bloc-notes ou Notepad de Windows ou
tout autre équivalent dans votre système d'exploitation.
 un browser (navigateur internet)

3. Document Html minimum


<HTML> Ceci est le début d'un document de type HTML.
</HTML> Ceci est la fin d'un document de type HTML.
Ceci est le début de la zone d'en-tête (prologue au document proprement dit
<HEAD>
contenant des informations destinées au browser).
</HEAD> Ceci est la fin de la zone d'en-tête.

A. Ouchatti1 1
<TITLE> Ceci est le début du titre de la page.
</TITLE> Ceci est la fin du titre de la page.
<BODY> Ceci est le début du document proprement dit.
</ BODY> Ceci est la fin du document proprement dit.

Remarques
 Vous aurez remarqué qu'à chaque balise de début d'une action, soit <...>, correspond (en toute logique) une balise de fin
d'une action </...>.

 Vous noterez aussi que les balises ne sont pas "case sensitive". Il est donc équivalent d'écrire <HTML>, <html>, <Html>, etc.

Notre premier document Html:


1-. Ouvrir l'éditeur de texte.
2-. Ecrire les codes Html suivants:
<HTML>
<HEAD>
<TITLE>Document Html minimum</TITLE>
</HEAD>
<BODY>
</BODY>
</HTML>
3-. - Enregistrer le document avec l'extension .html ou .htm.
4-. - Ouvrir le navigateur.
5-. - Afficher le document via le menu File/Open file...
Remarques
 Celui-ci est vide (c'est normal) mais tout à fait opérationnel! Il faudra maintenant lui fournir votre
information à l'intérieur des balises <BODY></BODY>. Remarquez que votre "TITLE" est présent
dans la fenêtre de Netscape.
 Pour vos éventuelles modifications, il n'est pas nécessaire de rouvrir à chaque fois le navigateur.
 Retourner dans l'éditeur de texte (sans fermer le navigateur).
 Modifier les codes Html.
 Enregistrer le fichier.
 Utiliser la commande Reload du browser ou cliquer dans la barre "Location"et faire "Enter".
4. Texte
Tout document Html contiendra en majorité du texte. Voyons comment l'arranger par quelques balises
élémentaires.
<B>...</B>
Gras [Bold] Début et fin de zone en gras
<STRONG>...</STRONG>
<I>...</I>
Italique [Italic] Début et fin de zone en italique
<EM>...</EM>
Début et fin de zone avec cette
Taille de caractère [Font size] <FONT SIZE=?>...</FONT>
taille
Couleur de
[Font color] <FONT COLOR="#$$$$$$">... </FONT> Début et fin de zone en couleur
caractère
A la ligne [Line break] <BR> Aller à la ligne
Commentaires [Comments] <!-- *** --> Ne pas afficher
Centrage [Center] <CENTER>...</CENTER> Centrer

Exemple
1.- Ouvrir l'éditeur de texte

A. Ouchatti2 2
<HTML>
<HEAD><TITLE></TITLE></HEAD>
<BODY>texte simple<BR>
<B>texte en gras</B><BR>
<STRONG>texte en gras</STRONG><BR>
<I>texte en italique</I><BR>
<EM>texte en italique</EM><BR>
<B><I>texte en gras et en italique</I></B><BR>
<FONT SIZE=5>texte</FONT>
<FONT COLOR="#0000FF">en bleu</FONT>
<!--C'est fini-->
</BODY>
</HTML>
2.- - Ouvrir le browser
Remarques & commentaires :
 Le texte tout simple s'écrit sans balises. Il sera repris par le browser avec la police et taille de
caractères choisies dans sa configuration par défaut.
 Le browser affiche le texte qu'on lui "dicte" en passant à la ligne lorsque celui-ci atteint le bord de la
fenêtre. Pour le forcer à passer outre à cette règle de conduite et à faire un saut à la ligne comme vous
le souhaitez, il faut une instruction particulière. C'est la balise <BR>. Celle-ci représente une action
ponctuelle et n'a donc pas besoin de balise de fin.
 Le même browser ne tient compte que d'un seul espace entre les mots. Ainsi pour lui
<FONT SIZE=5>texte</FONT> <FONT COLOR="#0000FF">en bleu</FONT> est équivalent à
<FONT SIZE=5>texte</FONT><FONT COLOR="#0000FF">en bleu</FONT>
 Il n'est pas rare d'utiliser plusieurs balises pour un même élément de texte. Il faut veiller à bien les
imbriquer. Ainsi <B><I>...</I></B> est correct et <B><I>...</B></I> risque de créer des ennuis.
 La taille dans <FONT SIZE=?> peut être indiquée de deux façons :
 avec un nombre de 1 à 7. La valeur par défaut étant 3.
 de façon relative par rapport à la valeur par défaut (ici 0). Soit -3 -2 -1 0 +1 +2 +3.
 Les balises <I> et <EM>, <B> et <STRONG> ne sont pas totalement équivalentes.
Voici les codes de quelques couleurs basiques.
Bleu #0000FF Vert #00FF00
Blanc #FFFFFF Violet #8000FF
Rouge #FF0000 Jaune #FFFF00
Gris clair #C0C0C0 Noir #000000

5. Titres et listes
Tout document d'une certaine consistance se doit de présenter, par exemple dans la table des matières, les
différents niveaux de son exposé. Html a disposé dès son origine d'outils spécialement conçus à cet effet.
En-têtes [Heading] <Hn></Hn> avec n=1 à 6 Afficher une en-tête de niveau n et sauter une ligne
Liste non-ordonnée [Bullet list] <UL></UL> Afficher le texte sous forme d'une liste non ordonnée.
Liste ordonnée [Numbered list] <OL></OL> Afficher le texte sous forme d'une liste ordonnée.
Elément de liste [List items] <LI> Voici un élément de la liste
Paragraphe [Paragraph] <P></P> Saut de ligne, insérer une ligne vierge et commencer un paragraphe

- On ouvre l’éditeur de texte


<H1>Les mois du printemps</H1>
<UL><LI>avril
<LI>mai
<LI>juin</UL>
<P>
<H3>Les mois d'automne</H3>
<OL><LI>octobre
<LI>novembre
<LI>d&eacute;cembre</OL>

A. Ouchatti3 3
Remarques & commentaires :
1. &eacute; est l'un de ces caractères spéciaux utilisés pour représenter le é. Les éditeurs Html vous
déchargeront de cette corvée.
2. Les paragraphes et les en-têtes peuvent s'aligner à gauche, au centre ou à droite.
<H1 align=left></H1>
<P align=left></P>
<H1 align=center></H1>
<P align=center></P>
<H1 align=right></H1>
<P align=right></P>
3. Les listes peuvent s'imbriquer:
<H4>Les 12 mois</H4>
<UL><LI>Les mois du printemps
<OL><LI>avril
</OL></UL>

6. Liens
Html (Hyper Text Markup Language) est un langage hypertexte (et hypergraphique) qui vous permet en
cliquant sur un mot, généralement souligné (ou une image) de vous transporter;
 vers un autre endroit du document.
 vers un autre fichier Html situé sur l’ordinateur.
 vers un autre ordinateur situé sur le Web.
Ce système d'hypertexte vous est familier car il est également utilisé par les fichiers d'aide de Windows. Ce
sont ces liens qui vous permettent de surfer de page en page et qui constituent l'essence des documents
Html.
La syntaxe de ces liens entre plusieurs pages, est simple: <A HREF="URL ou adresse">...</A>
Lien externe
Tout ordinateur situé sur le réseau Internet possède une adresse ou une URL (Universal Ressource
Locator). Html permet d'accéder à toutes les machines et toutes les ressources du Net.
Ce sont les adresses du type : http://serveur/chemin.../fichier, ftp://serveur/chemin.../fichier
mailto:utilisateur@hôte
Lien local
L'organisation classique d'un site Web consiste à regrouper l'ensemble des éléments de celui-ci (fichiers
html, images, ...) dans un même répertoire. Ceci permet de "transporter" aisément le site pour sur un
autre ordinateur ou le charger sur un serveur.

7. Tableaux
En Html, les tableaux servent non seulement à aligner des chiffres mais surtout à placer des éléments à
l'emplacement souhaité. L'usage des tableaux est donc très fréquent.
Un tableau est composé de lignes et de colonnes qui forment les cellules du tableau. Les balises de base
sont:
Définition du tableau [Table] <TABLE></TABLE> Début et fin de tableau
Définition d'une ligne [Table Row] <TR></TR> Début et fin de ligne
Définition d'une cellule [Table Data] <TD></TD> Début et fin de cellule
Exemples
Un tableau à deux lignes et deux colonnes, et donc à quatre cellules se représente comme suit :

A. Ouchatti4 4
<TABLE>
<TR><TD>1</TD><TD>2</TD></TR>
<TR><TD>3</TD><TD>4</TD></TR>
</TABLE>

Si on souhaite y adjoindre des bordures :


Bordure de cadre [Border] <TABLE border=?></TABLE>
<TABLE border=2>
<TR><TD>1</TD><TD>2</TD></TR>
<TR><TD>3</TD><TD>4</TD></TR>
</TABLE>

Il y a encore trois éléments (définis par défaut mais modifiables) :


L'espace entre les cellules ou l'épaisseur des lignes du quadrillage <TABLE cellspacing=?>
L'enrobage des cellules ou l'espace entre le bord et le contenu <TABLE cellpadding=?>
La largeur de la table <TABLE width=?> <TABLE width=%>
Exemples
<TABLE border=2 cellspacing=10>
<TR><TD>1</TD><TD>2</TD></TR>
<TR><TD>3</TD><TD>4</TD></TR>
</TABLE>

<TABLE border=2 cellpadding=10>


<TR><TD>1</TD><TD>2</TD></TR>
<TR><TD>3</TD><TD>4</TD></TR>
</TABLE>

Les cellules peuvent contenir tous les éléments Html suivants:


 du texte
 des images
 des liens
 des arrière-plans
 et même des tableaux
Chaque cellule est en quelque sorte un petit univers à part qui a ses propres spécifications :
<TD width=?> en pixels
Largeur d'une cellule
<TD width=%> en pourcentage
Fusion de lignes <TD rowspan=?>
Fusion de colonnes <TD colspan=?>
Exemple
<CENTER><TABLE width=60% border=1>
<TR>
<TD colspan=3>cellule 1</TD>
</TR>
<TR> <TD width=33%>cellule 1</TD> <TD
width=33%>cel 2</TD>
<TD width=34%>3</TD> </TR>
</TABLE></CENTER>

A. Ouchatti5 5
Exercice
Donnez le code HTML permettant de présenter le contenu d’une page pour les cas suivants

a-.

b-.

c-.

d-.
8. Frames
Pour diviser l'écran en plusieurs fenêtres, les balises sont peu nombreuses :
Zone avec des fenêtres
<FRAMESET> Début de zone avec des fenêtres
</FRAMESET> Fin de zone avec des fenêtres
Agencement des fenêtres
<FRAMESET ROWS="..."> Fenêtres horizontales
<FRAMESET COLS="..."> Fenêtres verticales

Exemples:
<HTML>
<HEAD></HEAD>
<FRAMESET ROWS="30%,70%">
<FRAME>
<FRAME>
</FRAMESET>
</HTML>

Exemple d’un agencement vertical


<FRAMESET COLS="30%,70%">
<FRAME>
<FRAME>
</FRAMESET>

On peut mélanger les deux :


<FRAMESET ROWS="30%,70%">
<FRAME>
<FRAMESET COLS="30%,70%">
<FRAME>
<FRAME>
</FRAMESET>
</FRAMESET>

Le remplissage des fenêtres se fait par les attributs de la balise <FRAME>:


<FRAME .SRC="URL ou adresse du document à afficher dans la fenêtre">
Exemple :

A. Ouchatti6 6
On construit 3 fichiers Html élémentaires que l'on place dans le même répertoire que le fichier de frames :
A.htm B.htm C.htm
<HTML><BODY> <HTML><BODY> <HTML><BODY>
<H4>A</H4> <H1>B</H1> <H1>C</H1>
</BODY></HTML> </BODY></HTML> </BODY></HTML>

On reprend le fichier de frame précédent que l'on


complète par :
<FRAMESET ROWS="30%,70%">
<FRAME SRC="A.htm">
<FRAMESET COLS="30%,70%">
<FRAME SRC="B.htm">
<FRAME SRC="C.htm">
</FRAMESET>
</FRAMESET>
Remarque :
Les ascenseurs, apparaissent automatiquement.
Par l'attribut de la balise <FRAME> SCROLLING="yes/no/auto" vous pouvez indiquer si la fenêtre doit
ou non posséder une barre de défilement.

9. Formulaires
Un formulaire sert à récupérer des données que l’utilisateur va entrer et les envoyer au serveur pour un traitement
(en PHP par exemple). La Balise principale du formulaire est :

• Deux méthodes :
 method="get" : limitée à 255 caractères, informations passées dans la barre d’adresse
 method="post" : envoie les données dans le corps de la requête sans passer par la barre d’adresse, c’est la
méthode la plus utilisée
• Action : l’adresse du fichier ou programme qui va traiter les données
Les éléments de formulaires HTML
Elément Définition
form Définit un formulaire
input Définit un champ de données pour l’utilisateur
label Définit une légende pour un élément input
textarea Définit un champ de texte long
select Définit une liste de choix
optgroup Définit un groupe d’options dans une liste
option Définit une option dans une liste
fieldset Permet de regrouper les éléments d’un formulaire en différentes parties
legend Ajoute une légende à un élément fieldset
Exemple :
<html>
<head>
<title>Un exemple simple de formulaire</title>
</head>
<body>
<H1>Exemple simple de formulaire utilisant l'interface CGI</H1>

A. Ouchatti7 7
<P>
Ceci est un formulaire simple qui illustre l'utilisation de
la bibliothèque de fonctions CGI permettant de traiter
les informations saisies dans les zones de dialogue.
</P>
<HR>
<form method="post" action="formulaire-simple.cgi">
<H2>Questionnaire</H2>
Quel est votre prénom ? <input name="prenom">
<P>
Quel est votre nom ? <input name="nom">
<P>
Quelle est votre couleur favorite ?
<select name="couleur">
<option selected>blanc
<option>jaune
<option>orange
<option>rouge
<option>vert
<option>bleu
<option>violet
<option>noir
</select>
<P>
Aimez vous l'informatique ?
<input type="radio" name="choix" value="oui" checked> Oui ou
<input type="radio" name="choix" value="non"> Non
<P>
Veuillez expliquer brièvement ci-dessous le choix que vous venez de faire :
<input name="message" size=60,5>
<P>
Cliquez sur <input type="submit" value="Valider"> pour soumettre votre requête.,
sinon <input type="reset" value="Annuler">
</form>
</body>
</html>

A. Ouchatti8 8
10. Liste complète des balises HTML5
Balise Description
<!– … –> Définit un commentaire
<!DOCTYPE> Définit le type du document
<a> Définit un lien
<abbr> Définit une abréviation
<address> Définit une adresse
<area> Définit une zone à l’intérieur d’une image
<article> NOUVEAU Définit un article
<aside> NOUVEAU Définit une partie latérale au contenu
<audio> NOUVEAU Définit un fichier audio
<b> Texte en gras
<base> Définit une URL de base pour tous les liens de la page
<bdo> Définit la direction du texte
<blockquote> Définit une longue citation
<body> Définit le corps de la page
<br> Saut de ligne
<button> Définit un bouton cliquable
<canvas> NOUVEAU Définit un graphique
<caption> Légende du tableau
<cite> Définit une citation
<code> Mise en forme d’un texte en code informatique
<col> Définit une colonne d’un tableau
<colgroup> Définit un groupe de colonne pour un tableau
<command> NOUVEAU Définit un bouton de commande
<datalist> NOUVEAU Définit une liste d’options
<dd> Définition d’un terme
<del> Définit un texte supprimé
<details> NOUVEAU Définit les détails d’un élément
<dfn> Définition
<div> Définit un calque ou une section
<dl> Liste de définition
<dt> Définition d’un terme
<em> Mise en exergue d’un texte – italique
<embed> NOUVEAU Définit un contenu extérieur (audio, vidéo …)
<fieldset> Regroupe plusieurs éléments d’un formulaire
<figcaption> NOUVEAU Légende d’un groupe d’élément multimédia
<figure> NOUVEAU Définit un groupe d’élément multimédia
<footer> NOUVEAU Définit le bas d’un section ou d’une page
<form> Définit un formulaire
<h1> to <h6> Définit un titre par degré importance de 1 à 6
<head> Définit l’en-tête d’un document
<header> NOUVEAU Définit le haut d’une section ou d’une page
<hgroup> NOUVEAU Regroupe les informations du haut d’une page ou section
<hr> Barre horizontale
<html> Définit un document html
<i> Texte en italique

A. Ouchatti9 9
<iframe> Introduit un page html dans une frame
<img> Définit une image
<input> Définit un champ
<ins> Définit un texte insérer
<keygen> NOUVEAU Générateur de clé pour un formulaire
<kbd> Raccourcis ou touche du clavier
<label> Légende d’un groupe d’élément de formulaire
<legend> Titre d’un groupe d’élément d’un formulaire
<li> Élément d’une liste
<link> Définit les relations entre les documents
<map> Définit une carte
<mark> NOUVEAU Mise en valeur d’un mot ou d’un texte – Texte marqué
<math> NOUVEAU Définit une formule mathématique
<menu> Définit un menu en liste
<meta> Définit des informations relatives au document
<meter> NOUVEAU Définit une unité de mesure
<nav> NOUVEAU Définit un groupe de liens de navigation
<noscript> Définit une alternative au script non supporté
<object> Définit un objet du contenu extérieur multimédia
<ol> Définit une liste ordonné
<optgroup> Regroupe d’une liste d »option dans un formulaire
<option> Option d’une liste dans un formulaire
<output> NOUVEAU Définit un type de sortie
<p> Définit un paragraphe
<param> Définit les paramètres d’un objet
<pre> Texte pré-formaté
<progress> NOUVEAU Définit une progression
<q> Définit une courte citation
<rp> NOUVEAU Annotation ruby si le script n’est pas supporté
<rt> NOUVEAU Annotation ruby d’explication
<ruby> NOUVEAU Définit une annotation en ruby
<samp> Définit un échantillon de code
<script> Définit un script
<section> NOUVEAU Définit une section
<select> Définit une liste sélectionnable
<small> Minimise l’importance d’un texte
<source> NOUVEAU Définit la source d’un contenu multimédia
<span> Définit une section de type inline
<strong> Mise en exergue d’un texte – Texte en Gras
<style> Définit un style CSS
<sub> Mise en indice d’un texte
<summary> NOUVEAU Définit l’en-tête des détails d’un document ou section
<sup> Mise en exposant d’un texte
<svg> NOUVEAU Définit une image vectorielle
<table> Définit un tableau
<tbody> Définit le corps d’un tableau
<td> Définit une cellule d’un tableau

A. Ouchatti10 10
<textarea> Définit une zone de texte
<tfoot> Définit le bas d’un tableau
<th> Définit une cellule d’en-tête d’un tableau
<thead> Définit le haut d’un tableau
<time> NOUVEAU Définit une unité de temps
<title> Définit le titre d’un document
<tr> Définit une ligne de tableau
<track> NOUVEAU Définit une unité de temps pour les éléments <audio> et <video>.
<ul> Définit une liste non-ordonné
<var> Définit une variable
<video> NOUVEAU Définit une vidéo
<wbr> NOUVEAU Définit un possible retour à la ligne

A. Ouchatti11 11
Systèmes
d’Information 2
(Bases de Données – SGBD)

Abderrahmane Ouchatti
Prof Agrégé de Génie Electrique

2020/2021
Bases de Données : SGBD relationnels
Plan
Introduction
Méthode de modélisation des données
Définitions
Modèle conceptuel des données (MCD)
Modèle logique des données (MLD)
Modèle physique des données (MPD)

Tables
Définition
champs d'une table
Clé primaire
Relations entre tables - clé étrangère
Index
Requêtes
Définition
2
Introduction au langage SQL
Bases de Données : SGBD relationnels
Introduction

Modèle conceptuel des données (MCD)

3
Bases de Données : SGBD relationnels
Introduction
Représentation informatique des données
Les données d'un système d'information peuvent être stockées et
manipulées à l'aide d'un outil informatique spécialisé dans ce domaine.
Les Systèmes de Gestion de Bases de Données (SGBD) constituent le type
de logiciel le mieux adapté pour implémenter les systèmes d'information.
Exemples de SGBD:

4
Bases de Données : SGBD relationnels
Méthode de modélisation des données

Démarche classique d'un projet informatique comprend les étapes


suivantes:

1. Analyse de la situation existante et des besoins;

2. Création d'une série de modèles, qui permettent de


représenter tous les aspects importants;

3. A partir des modèles, implémentation d'une base de


données.

5
Bases de Données : SGBD relationnels
Méthode de modélisation des données
3 niveaux de conception essentiels:
1. Le niveau conceptuel, qui se base directement sur l'analyse, décrit
l'ensemble des données du système d'information, sans tenir compte de
l'implémentation informatique de ces données.
Modèle conceptuel des données (MCD)
2. Le niveau logique, qui se base sur le modèle conceptuel des données,
prend en considération l'implémentation du système d'information par
un SGBD. Ce niveau introduit la notion des tables logiques, et constitue
donc le premier pas vers les tables des SGBD. Ce niveau est représenté
par le:
Modèle logique des données (MLD)
3. Le niveau physique, qui se base sur le modèle logique des données,
contient finalement les tables définies à l’aide d’un SGBD spécifique (p.ex.
MS Access, MySQL, Oracle …). Ce niveau est représenté par le:
Modèle physique des données (MPD) 6
Bases de Données : SGBD relationnels
Abstraction des données

 Niveau interne ou physique :


– plus bas niveau
– indique comment (avec quelles structures de données) sont stockées
physiquement les données
 Niveau logique ou conceptuel :
– décrit par un schéma conceptuel
– indique quelles sont les données stockées et quelles sont leurs relations
indépendamment de l’implantation physique
 Niveau externe ou vue :
– propre à chaque utilisateur
– décrit par un ou plusieurs schémas externes 7
Bases de Données : SGBD relationnels
Instances et schéma

 Instances de base de données :


– données de la base à un instant donné
– manipulées par un langage de manipulation de données (DML -
Data Manipulation Language)

 Schéma de base de données :


– description de la structure des données
– ensemble de définitions exprimées en langage de description de
données (DDL – Data Definition Language)

8
Bases de Données : SGBD relationnels
Étapes pour traduire un système d'information en une base de données

9
Bases de Données : SGBD relationnels
Modèle conceptuel des données (MCD)
Le formalisme utilisé dans ce modèle est celui du langage de
modélisation UML (Unified Modeling Language).
A l'aide de ce langage nous pouvons créer un diagramme de classes
qui se base autour de 3 concepts principaux:
les classes,
les associations et,
les attributs.

10
Bases de Données : SGBD relationnels
Modèle conceptuel des données (MCD) - Notion d'identifiant
Afin de pouvoir distinguer les différents objets d'une même
classe, la classe doit être dotée d'un identifiant.
L'identifiant est composé d'un ou de plusieurs attributs de
la classe. Chaque objet d’une classe doit avoir une valeur
différente pour l’identifiant:
3 possibilités de choix pour l'identifiant d'une classe :
1. Un attribut naturel
Exemple: Le nom d'un pays pour une classe Pays
2. Un attribut artificiel qui est inventé par le créateur du MCD
Exemple: Le numéro d'un client pour une classe Client
3. Un identifiant composé de plusieurs attributs naturels
Exemple: Le nom et la localité pour une classe Entreprise
11
Bases de Données : SGBD relationnels
Modèle conceptuel des données (MCD) - Multiplicités d'une association

Sur les extrémités d'une association on indique les multiplicités.


Les multiplicités expriment le nombre minimum et maximum
d'objets d'une classe qui peuvent être associés à des objets de
l'autre classe.
Un client passe au minimum 1 et au
maximum plusieurs commandes

Une commande est passée au


minimum par un et au maximum 12
par un client
Bases de Données : SGBD relationnels
Modèle conceptuel des données (MCD) - Multiplicités d'une association

13
Bases de Données : SGBD relationnels
Modèle conceptuel des données (MCD) - Multiplicités d'une association

Exemple :

Interprétez cette modélisation

On dit qu'une classe est indépendante par rapport à une association


lorsque sa multiplicité minimale vaut 0, et dépendante par rapport à une
association lorsque sa multiplicité minimale vaut 1. 14
Bases de Données : SGBD relationnels
Modèle conceptuel des données (MCD) - Multiplicités d'une association

Exemple :

Interprétez cette modélisation

Si les multiplicités de deux classes liées à l'aide d'une association ont


la valeur 1 (1..1) des deux côtés, on transforme les deux classes en une
seule et on omet ainsi l'association. 15
Bases de Données : SGBD relationnels
Modèle logique des données (MLD)
La finalité d'un MCD est de faciliter la création d'une base de
données pour gérer un tel domaine.
Une base de données est constituée par un ensemble de tables,
dont chacune est composée de champs de données. Or, le MCD ne
connaît pas la notion de table, tandis qu'une base de données ne
connaît pas le concept des classes reliées entre-elles via des
associations avec des multiplicités.
Pour cela, il existe un autre modèle, le modèle logique des données (MLD),
qui utilise essentiellement le formalisme des tables logiques. Un MLD, qui est
toujours basé sur un MCD donné, contient donc toutes les informations de ce
MCD, mais les représente à l'aide d'un formalisme différent qui est très
adapté aux structures d'une base de données. Tandis que le MCD représente
un système d'information d'une façon générale et indépendante d'un système
informatique, le MLD tient compte de la réalisation par le biais d'un SGBD.
Un MLD est essentiellement composé de tables logiques reliées entre elles
par des flèches.
16
Bases de Données : SGBD relationnels
Modèle logique des données (MLD)

17
Bases de Données : SGBD relationnels
Modèle physique des données (MPD)
Définition
Le modèle physique des données (MPD) est la traduction du
modèle logique des données (MLD) dans une structure de données
spécifique au système de gestion de bases de données (SGBD)
utilisé.
Le MPD est donc représenté par des tables définies au niveau du
système de gestion de bases de données.
Passage du MLD au MPD
Le passage MLD  MPD se fait par les étapes suivantes:
 Implémentation physique de chaque table du MLD dans le SGBD
utilisé.
 Pour chaque table, indiquer au SGBD quel(s) champ(s)
constitue(nt) la clé primaire.
 Pour chaque table, indiquer au SGBD la (les) clé(s) étrangère(s),
et la (les) clé(s) primaire(s) correspondante(s).
18
Bases de Données : SGBD relationnels
Tables
Type de champs d'une table

Lors de la création d'une table, nous devons indiquer au SGBD, pour chaque
champ:
1. Le nom du champ, qui doit être unique dans la table
2. Le type de données du champ

19
Bases de Données : SGBD relationnels
Tables
Clé primaire
La clé primaire, constituée d'un
ou de plusieurs champs, nous
permet d'identifier de manière
unique chaque enregistrement
d'une table.
Relations entre tables - clé étrangère
Une base de données bien conçue est rarement composée d'une seule
table, mais d'un ensemble de tables, entre lesquelles il existe certaines
relations (voir Méthode de modélisation de données).

Clé étrangère
Un champ qui, dans une table, fait référence à la clé primaire d'une autre
table est appelé clé étrangère (foreign key, foreign identifier). Ainsi sont
20
définies les relations entre les tables.
Bases de Données : SGBD relationnels
Requêtes (queries)
Définition
Les requêtes servent à répondre aux questions basées sur le contenu d'une
ou de plusieurs tables.
Types de requêtes
Il existe 4 types de requêtes:
1. Requêtes de sélection.
2. Requêtes d'insertion.
3. Requêtes de modification.
4. Requêtes de suppression.

Langage SQL
Le langage SQL (Structured Query Language) est un standard
international, en ce qui concerne les langages de manipulation des BD. SQL
est connu par tous les SGBDR. Il faut cependant mentionner que, malgré la
présence de standards internationaux tels que SQL-86, SQL-89, SQL-92
(SQL2) ou SQL3 chaque SGBD sur le marché utilise un peu son propre
dialecte du langage SQL. 21
Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base
Nous distinguons les 4 types de requêtes suivants.
1. Requêtes de sélection

2. Requêtes d'insertion

[ ] veut dire que la liste des


champs est optionnelle.
3. Requêtes de modification

4. Requêtes de suppression

22
Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base

 Structure d'une requête formée de trois clauses:


SELECT <liste_attributs>
FROM <liste_tables>
WHERE <condition>
 SELECT définit le format du résultat cherché
 FROM définit à partir de quelles tables le résultat est
calculé
 WHERE définit les prédicats de sélection du résultat
Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base – Opérateurs de comparaison

 = égal
 WHERE id = 2

 <> différent
 WHERE nom <> ‘Buard’

 > plus grand que


 WHERE annee_insc > 2010

 >= plus grand ou égal


 WHERE annee_insc >= 2018
 < plus petit que
 WHERE id < 3

 <= plus petit ou égal


 WHERE id <= 2
Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base – Opérateurs logiques

 AND
 WHERE annee_insc < 2010 AND id<5

 OR
 WHERE annee_insc < 2010 OR id<5

 Négation de la condition : NOT


 SELECT *

FROM Emprunteur
WHERE nom = 'Buard'
AND NOT annee_insc = '2019' ;
Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base – Expressions logiques

Combinaisons:

WHERE
( ensoleillement > 80 AND pluviosité < 200 )
OR température > 30

WHERE
ensoleillement > 80
AND ( pluviosité < 200 OR température > 30 )
Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base – Appartenance à un ensemble : IN

WHERE monnaie = ‘Pound’


OR monnaie = ‘Schilling’
OR monnaie = ‘Euro’

Équivalent à:

WHERE monnaie IN (‘Pound’, ‘Schilling’, ‘Euro')

NOT IN: non appartenance à un ensemble


Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base – Comparaison à un ensemble : ALL

SELECT * FROM Employe


WHERE salaire >= 1400
AND salaire >= 3000 ;

Équivalent à:

SELECT * FROM Employe


WHERE salaire >= ALL ( 1400, 3000);
Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base – Valeur dans un intervalle : BETWEEN

WHERE population >= 50 AND population <= 60

Équivalent à:

WHERE population BETWEEN 50 AND 60

NOT BETWEEN
Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base – Conditions partielles (joker)

 % : un ou plusieurs caractères
 WHERE nom LIKE ‘%uard’

 WHERE prenom LIKE ‘%erem%’

 _ : exactement un caractère
 WHERE nom LIKE ‘B_ard’

 NOT LIKE
Bases de Données : SGBD relationnels
Langage SQL – Syntaxe de base – Valeurs calculées

 SELECT nom, population, surface, natalité


FROM Pays
WHERE (population * 1000 / surface) < 50
AND (population * natalité / surface) > 0

 SELECT nom, (population * 1000 / surface )


FROM Pays
Bases de Données : SGBD relationnels
Langage SQL – Les jointures

 Principe :
– Joindre plusieurs tables
– On utilise les informations communes des tables
Bases de Données : SGBD relationnels
Langage SQL – Les jointures
 Prenons pour exemple un ouvrage de V. Hugo
 Si l'on souhaite des informations sur la cote d'un exemplaire il faudrait
le faire en 2 temps
– 1) je récupère l'id de l'ouvrage :
SELECT id FROM ouvrage where auteur LIKE 'V. Hugo'
– 2) Je récupère la ou les cote avec l'id récupéré
SELECT cote FROM exemplaire WHERE ouvrageId = id_récupéré
Ne serait-ce pas merveilleux de pouvoir faire tout ça (et plus encore) en
une seule requête ?
C'est là que les jointures entrent en jeu
SELECT exemplaire.cote
FROM exemplaire
INNER JOIN ouvrage
ON exemplaire.ouvrageId = ouvrage.idOuvrage
WHERE ouvrage.auteur LIKE 'V. Hugo' ;
Bases de Données : SGBD relationnels
Langage SQL – Les jointures

Ne serait-ce pas merveilleux de pouvoir faire tout ça (et plus


encore) en une seule requête ?
C'est là que les jointures entrent en jeu
SELECT exemplaire.cote
FROM exemplaire
INNER JOIN ouvrage
ON exemplaire.ouvrageId = ouvrage.idOuvrage
WHERE ouvrage.auteur LIKE 'V. Hugo' ;
Bases de Données : SGBD relationnels
Langage SQL – Les jointures: Remarques

 Le résultat d'une requête peut contenir plusieurs


occurrences d’un tuple,
 pour avoir une seule occurrence de chaque n-uplet dans

une relation : DISTINCT


 Exemple : select DISTINCT nom FROM Personne

 Le résultat d'une requête peut être trié,

 Il existe une valeur spéciale dite indéfinie (NULL) utilisée


pour remplir un champ dont on ne connait pas la valeur.
Bases de Données : SGBD relationnels
Langage SQL – Les jointures: Remarques

 En SQL, le produit cartésien est possible sans renommer


les attributs communs.
 Exemple : schéma(RxS) = A (de R), B (de R), B (de S),

C (de S).

 En SQL, si plusieurs attributs ont le même nom, pour


résoudre l’ambiguité, on spécifie la relation auquel l’attribut
appartient.
 Exemple : SELECT A, R.B, C FROM R, S
Bases de Données : SGBD relationnels
Langage SQL –Requêtes avec blocs emboîtés
 les produits: Produit(np,nomp,couleur,poids,prix)
Exemple BD

 les usines: Usine(nu,nomu,ville,pays)


 les fournisseurs: Fournisseur(nf,nomf,type,ville,pays)
 les livraisons: Livraison(np,nu,nf,quantité)
(np référence Produit.np, nu référence Usine.nu, nf référence Fournisseur.nf)
Nom et couleur des produits livrés par le fournisseur 1
 Solution 1 : la jointure déclarative
SELECT nomp, couleur FROM Produit,Livraison
WHERE (Livraison.np = Produit.np) AND nf = 1 ;
 Solution 2 : la jointure procédurale (emboîtement)
SELECT nomp, couleur FROM Produit
WHERE np IN
(SELECT np FROM Livraison WHERE nf = 1) ;

Numéros de produits livrés par le


fournisseur 1
Bases de Données : SGBD relationnels
Langage SQL –Requêtes avec blocs emboîtés

 SELECT nomp, couleur FROM Produit


WHERE np IN
( SELECT np FROM Livraison
WHERE nf = 1) ;
 IN compare chaque valeur de np avec l'ensemble (ou

multi-ensemble) de valeurs retournés par la sous-requête


 IN peut aussi comparer un tuple de valeurs:

SELECT nu FROM Usine


WHERE (ville, pays)
IN (SELECT ville, pays FROM Fournisseur)
Bases de Données : SGBD relationnels
Langage SQL –Requêtes avec blocs emboîtés

Nom des fournisseurs qui approvisionnent une usine de Londres ou de


Paris en un produit rouge

SELECT nomf
FROM Livraison, Produit, SELECT nomf FROM Fournisseur
WHERE nf IN
Fournisseur, Usine
(SELECT nf FROM Livraison
WHERE
WHERE np IN
couleur = 'rouge'
(SELECT np FROM Produit
AND Livraison.np = Produit.np WHERE couleur = 'rouge')
AND Livraison.nf = Fournisseur.nf
AND nu IN
AND Livraison.nu = Usine.nu
(SELECT nu FROM Usine
AND (Usine.ville = 'Londres' WHERE ville = 'Londres' OR
OR Usine.ville = 'Paris'); ville = 'Paris') ) ;
Bases de Données : SGBD relationnels
Langage SQL –Requêtes avec blocs emboîtés ALL
Quantificateur
 Numéros des fournisseurs qui ne fournissent que des produits rouges
SELECT nf FROM Fournisseur
WHERE 'rouge' = ALL
(SELECT couleur FROM Produit
WHERE np IN
(SELECT np FROM Livraison
WHERE Livraison.nf = Fournisseur.nf ) ) ;

 La requête imbriquée est ré-évaluée pour chaque tuple de


la requête (ici pour chaque nf)
 ALL: tous les éléments de l'ensemble doivent vérifier la
condition
40
Bases de Données : SGBD relationnels
Langage SQL –Requêtes avec blocs emboîtés EXISTS
Condition sur des ensemble

 Test si l’ensemble n’est pas vide (E  )


 Exemple : Noms des fournisseurs qui fournissent au moins un produit
rouge

SELECT nomf
FROM Fournisseur
WHERE EXISTS ( SELECT *
FROM Livraison, Produit
WHERE Livraison.nf = Fournisseur.nf
AND Livraison.np = Produit.np
Le produit fourni
AND Produit.couleur = 'rouge' ); est rouge

41
Bases de Données : SGBD relationnels
Langage SQL –Blocs emboîtés - récapitulatif

SELECT …
FROM …
WHERE …
attr IN requête

attr NOT IN requête

attr opérateur ALL reqûete

EXISTS requête

NOT EXISTS requête


Bases de Données : SGBD relationnels
Langage SQL – Traitement des résultats - Fonctions sur les colonnes

 Attributs calculés
 Exemple : SELECT nom, population*1000/surface FROM
Pays
Opérateurs
d'agrégation
 Opérateurs sur attributs numériques
 SUM: somme des valeurs des tuples sélectionnés

 AVG: moyenne

 Opérateurs sur tous types d’attributs


 MIN: minimum

 MAX: maximum

 COUNT: nombre de tuples sélectionnés


Bases de Données : SGBD relationnels
Langage SQL – Traitement des résultats - Opérateurs d'agrégation

pays
Nom Capitale Population Surface Continent
Irlande Dublin 5 70 Europe
Autriche Vienne 10 83 Europe
UK Londres 50 244 Europe
Suisse Berne 7 41 Europe
USA Washington 350 441 Amérique

SELECT MIN(population), MAX(population), AVG(population),


SUM(surface), COUNT(*)
FROM Pays WHERE continent = ‘Europe’

Donne le résultat :

MIN(population) MAX(population) AVG(population) SUM(surface) COUNT(*)

5 50 18 438
Bases de Données : SGBD relationnels
Langage SQL – Traitement des résultats - DISTINCT
Suppression des doubles
pays
Nom Capitale Population Surface Continent
Irlande Dublin 5 70 Europe
Autriche Vienne 10 83 Europe
UK Londres 50 244 Europe
Suisse Berne 7 41 Europe
USA Washington 350 441 Amérique

SELECT DISTINCT continent


FROM Pays

Continent
Donne le résultat :
Europe

Amérique
Bases de Données : SGBD relationnels
Langage SQL – Traitement des résultats - ORDER BY
Tri des tuples du résultat
pays
Nom Capitale Population Surface Continent
Irlande Dublin 5 70 Europe
Autriche Vienne 10 83 Europe
UK Londres 50 244 Europe
Suisse Berne 7 41 Europe
USA Washington 350 441 Amérique

SELECT continent, nom, population


FROM Pays
Continent Nom Population
WHERE surface > 60
Amérique USA 350
ORDER BY continent, nom ASC Europe Autriche 10
Europe Irlande 5
Europe Suisse 7
2 possibilités : ASC / DESC Europe UK 50
Bases de Données : SGBD relationnels
Langage SQL – Traitement des résultats - GROUP BY
Partition de l'ensemble des tuples en groupes homogènes
pays
Nom Capitale Population Surface Continent
Irlande Dublin 5 70 Europe
Autriche Vienne 10 83 Europe
UK Londres 50 244 Europe
Suisse Berne 7 41 Europe
USA Washington 350 441 Amérique

SELECT continent, MIN(population), MAX(population),AVG(population),


SUM(surface), COUNT(*)
FROM Pays GROUP BY continent ;
Continent MIN(population) MAX(population) AVG(population) SUM(surface) COUNT(*)

Europe 5 50 18 438 4

Amérique 350 350 350 441 1


47
Bases de Données : SGBD relationnels
Langage SQL – Traitement des résultats - HAVING
Conditions sur les fonctions d'agrégation
Il n'est pas possible d'utiliser la clause WHERE pour faire des conditions sur
une fonction d'agrégation. Donc, si l'on veut afficher les pays dont on
possède plus de 3 individus, la requête suivante ne fonctionnera pas.

SELECT continent, COUNT(*)


FROM Pays
WHERE COUNT(*) > 3
GROUP BY continent ;

Il faut utiliser HAVING qui se place juste après le GROUP BY

SELECT continent, COUNT(*)


FROM Pays
GROUP BY continent
HAVING COUNT(*) > 3; 48
Bases de Données : SGBD relationnels
Langage SQL – Traitement des résultats - AS
Renommage des attributs
SELECT MIN(population) AS min_pop,
MAX(population) AS max_pop,
AVG(population) AS avg_pop,
SUM(surface) AS sum_surface,
COUNT(*) AS count
FROM Pays
WHERE continent = ‘Europe’ ;

min_pop max_pop avg_pop sum_surface count

5 50 18 438 4

49
Systèmes d’Information 2
/ Bases de Données 2

Abderrahmane Ouchatti

2021/2022
Plan
1. Introduction aux Systèmes d’information
 Définition – objectif
 SI & informatiques
 SI & Web

2. Langage PHP
 Définitions & Syntaxe de base
 Variables & Types de données
 Opérateurs
 Instructions conditionnelles
 Boucles
 Fonctions
 Tableaux
 Classes et Objets
 Dates et heures
 Interactivité PHP - formulaires
 Sessions
2
3. SGBD (MySQL)
Introduction

Environnement

Entrées Sorties
Système réel

Régulation

3
Introduction

Système d’Information
Système =
Ensemble auto-réglable et interagissant avec
l’environnement qui fonctionne en vue d’un objectif
précis

Information =
Données enrichies d’un modèle d’interprétation

4
Introduction

Fonctions du SI
Un SI a deux fonctions principales :
 La production d’information
• Collecter des informations
• Traiter et transmettre des informations
• Mémoriser des informations
 La mise en œuvre d’outils de gestion
• Fonction technologiques (matériels, logiciels, méthodes,
savoir-faire, …)
• Fonction économique
• Fonction sociale

5
Introduction

Informatique et SI
L’informatique facilite la gestion d’un SI mais ne le couvre pas
dans son ensemble.

 SIO – Système d’Information Opérationnel = toute


l’activité autour du SI
 SII – Système d’Information Informatisé = uniquement le
contenu informatisé (fichiers, bases, logiciels, …) 6
Introduction

Système d’information: Définition - objectif

Le système d’information (SI) est un élément central


d’une entreprise ou d’une organisation.
 Il permet aux différents acteurs de véhiculer des informations et de
communiquer grâce à un ensemble de ressources matérielles,
humaines et logicielles.
 Il permet de créer, collecter, stocker, traiter, modifier des informations
sous divers formats.

L’objectif d’un SI est de restituer une information à la


bonne personne et au bon moment sous le format
approprié.

7
Introduction

Système d’information: Définition - objectif

8
Introduction

Système d’information: Fonctions


Les fonctions principales d’un SI :
 Collecter : c’est à partir de là que naît la donnée, qu’on acquière
les informations provenant de l’environnement interne ou externe à
l’entreprise.

 Stocker : dès que l’information est acquise, le système


d’information la conserve. Elle doit pouvoir être disponible et doit
pouvoir être conservée dans le temps.

 Transformer/traiter : cette phase permet de transformer


l’information et choisir le support adapté pour traiter l’information. Ici
ont construit de nouvelles informations en modifiant le fond ou la
forme.

 Diffuser : le SI transmet ensuite l’information dans son


environnement interne ou externe. 9
Introduction
SI et Systèmes informatiques

Système d’information

Système informatique ou
système d’information automatisé
Information
non structurée,
procédures
Programmes, non automati-
Programmes,
Procédures,
Bases Programmes,
Procédures, sées, …
Programmes,

Procédures,
de …
Procédures,

données

10
Introduction
SI web

caractérisé par:
– Grand volume de données
– Données organisées en structures web
– La structure est réalisée sous forme d’hyperliens
– Disponible à un grand nombre d’utilisateurs aux profils
diversifiés
– Potentiel d’atteindre une audience plus large à travers
différentes plateformes
– Permettent d’intégrer différentes sources de données
hétérogènes et réparties sur le Web
11
Introduction
SI web vs. SI classiques

SI Classiques
– Référentiel de données fermé et bien défini
– Répondent aux besoins d’utilisateurs spécifiques et connus
d’avance
– Utilisent des plateformes dédiées

SI Web
 Sources de données hétérogènes, dynamiques et réparties
 Répondent aux besoins d’une audience large et de profils
diversifiés
 Utilisent la navigation web avec ses caractéristiques propres

12
Introduction
SI web

Caractéristiques
– Orientés données (sources multiples et hétérogènes)

– Multi plateformes

– Adaptés à l’utilisateur (préférences et connaissances de


l’utilisateur)

– Flexibles (données semi structurées)

– Automatiques (peu d’intervention humaine)

– Interactifs (avec l’utilisateur)

13
Introduction
SI web
Technologies
– Aspect multimédia
– Hypermédia : données textuelles auxquelles s’adjoignent
des images fixes ou animées et des sons
– Hyper-document : données que l’on met en relation dans
un produit hypermédia ou multimédia
– Le matériel : poste client et réseau maillé de la toile
– Poste client : logiciel de navigation
– Réseau : accès en réseau
– Les langages : HTML, XHTML, XML, ….
14
– Les architectures client/serveur
Introduction
SI: Application web - Site web
 Ensemble constitué de l’information et de l’infrastructure qui
l’organise
 Consultable à travers un réseau au moyen d’un système web
 Collection de pages web, communes à un domaine particulier,
disponibles sur WWW à travers Internet

Page web: document HTML/XHTML accessible via HTTP


• Statique: contenu ne change pas fréquemment, maintenu
manuellement
• Dynamique: contenu change fréquemment, peut être généré par des
logiciels (ASP, JSP, PHP), avec des accès à des BD avec XML (RSS)
15
Introduction
SI: Application web - Site web

 Site web : Présente les dimensions de l’information et de la


navigation

 Application web : présente en plus la dimension des opérations.


De plus, il y a
• Déconnexion des informations et de ceux qui les consultent (grâce
au réseau et à l’organisation client/serveur)
• Déconnexion de la structure de stockage et de la structure de
visualisation

16
Introduction
SI: Application web - Structure technologique

requête

Client internet Serveur

réponse

appel de la page

Base de Script
données extraction Document
de données PHP exécution
MySQL Html

17
Introduction
SI: Application web - Structure technologique

Portail
Internaute SI opérationnel
entreprise

Traitements Traitements Traitements


HTML XML SQL
SGML
Base
Serveur de
Poste Serveur
d’application données
client web

INGENIERIE DU WEB INGENIERIE DES SI

18
Introduction
SI: Internet et pages web

 HTML : conception de pages destinées à être publiées sur Internet

 Page html : contient le texte à afficher et des instructions de mise


en page

 HTML est un langage de description de page et non pas un


langage de programmation

 pas d’instructions de calcul ou pour faire des traitements suivant


des conditions

 Des sites de plus en plus riches en informations


 Nécessité croissante d’améliorer le contenu de sites
 Mises à jour manuelles trop complexes
19
Introduction
SI: Application web - Eléments à considérer
 Interface utilisateur
• Technologie : celle des pages web : HTML, Javascript, style CSS
(Cascading Style Sheets), etc.
• Concepts : document, style, formulaire, script, balise
 Contrôle de la cohérence des actions de l’utilisateur
• Technologies : génération dynamique de pages web associée à un
langage de programmation PHP, JSP (Java), ASP (C#)
• Modèle associé : décrit les composantes d’une application C/S :
serveur, application, session, requête et contexte
 Données (objets)
• Technologie des langages objets utilisée pour développer le niveau
contrôle : Java et J2EE, ASP et .NET, la version objet de PHP
• Si les données sont persistantes, une BD relationnelle est utilisée:
SGBD relationnel : SQL Server, Oracle, MySQL, Sybase
 Inter-niveaux (middleware) 20
Introduction
SI: Application web - Pages web dynamiques

côté Serveur ou côté Client


 Langage côté client :
traité par la machine qui accueille le logiciel de
navigation.

 Langage côté serveur :


le travail d’interprétation du programme est réalisé par
le serveur

 Pages côté serveur et côté client :

21
Introduction
SI: Application web - Pages web dynamiques
Langages de création de pages web dynamiques côté serveur
 CGI

 ASP

 JSP

 PHP (Hypertext PreProcessor)


 Connaît un succès toujours croissant sur le Web et se positionne
comme un rival important pour ASP
 L'environnement Linux est sa plateforme de prédilection
 Combiné avec le serveur Web Apache et la base de données
MySQL, PHP offre une solution particulièrement robuste, stable et
efficace
 Gratuité : Tous les logiciels sont issus du monde des logiciels libres
(Open Source). 22
SI: Langages de programmation

Le Langage PHP

Les bases du langage

23
PHP
Définition

 Un langage de scripts permettant la création d’applications


Web
 Indépendant de la plate-forme utilisée puisqu’il est exécuté
côté serveur et non côté client.
 La syntaxe du langage provient de celles du langage C, du
Perl et de Java.
 Ses principaux atouts sont:
 La gratuité et la disponibilité du code source (PHP4 est distribué
sous licence GNU GPL)
 La simplicité d'écriture de scripts
 La possibilité d'inclure le script PHP au sein d'une page HTML
 La simplicité d'interfaçage avec des bases de données
 L'intégration au sein de nombreux serveurs web (Apache,
Microsoft IIS, ...) 24
PHP
Intégration PHP et HTML

 Principe
 Les scripts PHP sont généralement intégrés dans le code
d’un document HTML
 L’intégration nécessite l’utilisation de balises
 avec le style xml : <? ligne de code PHP ?>

 Avec le style php: <?php ligne de code PHP ?>

 avec le style JavaScript :


<script language=«php»> ligne de code PHP </script>

 avec le style des ASP : <% ligne de code ASP %>

25
PHP
Intégration PHP et HTML
 Forme d’une page PHP < ?php
//ligne de code PHP
?>
 Intégration directe <html>
<head> <title> Mon script PHP
</title> </head>
<body>
//ligne de code HTML
< ?php
//ligne de code PHP
?>
//ligne de code HTML
….
</body> </html>

 Inclusion d’un fichier PHP dans un fichier HTML :


include() <html>
<head>
<title> Fichier d’appel </title>
<?php </head>
$chaine=$salut. “ , C’est PHP “ ; <body>
echo “ <table border= \“3“ <?php
<tr> <td width = “ 100%\ “ > $salut = “ BONJOUR” ;
<h2> $chaine</h2> include “information.inc” ;
</td> </tr></table> “;
?>
?>
</body> 26
</html>
PHP
Intégration PHP et HTML
 Envoi du code HTML par PHP

 La fonction echo : echo Expression;


 echo "Chaine de caracteres";
 echo (1+2)*87;

 La fonction print : print(expression);


 print("Chaine de caracteres");
 print ((1+2)*87);

 La fonction printf : printf (chaîne formatée);


 printf ("Le périmètre du cercle est %d",$Perimetre);

27
PHP
Syntaxe de base
 Typologie
 Toute instruction se termine par un point-virgule

 Sensible à la casse
 Sauf par rapport aux fonctions

 Commentaires
 /* Voici un commentaire! */
NULL
 // un commentaire sur une ligne
_FILE_
 Constantes _LINE_
 Define("nom_constante", valeur_constante ) PHP_VERSION
 define (“ma_const”, “Vive PHP4”) ; PHP_OS
 define (“an”, 2002) ; TRUE et FALSE
E_ERROR
 Les constantes prédéfinies
28
PHP
Syntaxe de base – Les variables
 Principe
 Commencent par le caractère $
 N'ont pas besoin d'être déclarées

 Fonctions de vérifications de variables


 Doubleval(), empty(), gettype(), intval(),
 is_array(), is_bool(), is_double(), is_float(), is_int(), is_integer,
is_long(), is_object(), is_real(), is_numeric(), is_string()
 Isset(), settype(), strval(), unset()

 Affectation par valeur et par référence


 Affectation par valeur : $b=$a
 Affectation par (référence) variable : $c = &$a

29
PHP
Syntaxe de base – Les variables
 Visibilité des variables
 Variable locale
– Visible uniquement à l’intérieur d’un contexte d’utilisation

 Variable globale
– Visible dans tout le script
– Utilisation de l’instruction global() dans des contextes
locales
<? $var = 100;
function test()
{
global $var;
return $var;
}
$resultat = test();
if ($resultat) echo $resultat; else echo " erreur ";
?>
30
PHP
Syntaxe de base – Les variables
 Variables dynamiques
 Permettent d'affecter un nom différent à une autre variable
$nom_variable = 'nom_var';
$$nom_variable = valeur; // équivaut à $nom_var = valeur;

 Les variables tableaux sont également capables de supporter les noms


dynamiques
$nom_variable = array("val0", "val1", ...,"valN");
${$nom_variable[0]} = valeur; $val0 = valeur;
$nom_variable = "nom_var";
${$nom_variable}[0] = valeur;
$nom_var[0] = valeur;

 Les accolades servent aussi à éviter toute confusion lors du rendu d'une
variable dynamique
echo "Nom : $nom_variable - Valeur : ${$nom_variable}";
// équivaut à echo "Nom : $nom_variable - Valeur : $nom_var";

31
PHP
Syntaxe de base – Les variables
 Variables prédéfinies
 Les variables d'environnement dépendant du client
Variable Description
$_SERVER["HTTP_HOST"] Nom d'hôte de la machine du client (associée
à l'adresse IP)
$_SERVER["HTTP_REFERER"] URL de la page qui a appelé le script PHP
$_SERVER["HTTP_ACCEPT_LANGUAGE"] Langue utilisée par le serveur (par défaut en-
us)
$_SERVER["HTTP_ACCEPT"] Types MIME reconnus par le serveur
(séparés par des virgules)
$_SERVER["CONTENT_TYPE"] Type de données contenu présent dans le
corps de la requête. Il s'agit du type MIME
des données
$_SERVER["REMOTE_ADDR"] L'adresse IP du client appelant le script CGI
$_SERVER["PHP_SELF"] Nom du script PHP
32
PHP
Syntaxe de base – Les variables

 Variables prédéfinies
 Les variables d'environnement dépendant du serveur

Variable Description
$_SERVER["SERVER_NAME"] Le nom du serveur
$_SERVER["HTTP_HOST"] Nom de domaine du serveur
$_SERVER["SERVER_ADDR"] Adresse IP du serveur
$_SERVER["SERVER_PROTOCOL"] Nom et version du protocole
utilisé pour envoyer la requête au
script PHP
$_SERVER["DATE_GMT"] Date actuelle au format GMT

$_SERVER["DATE_LOCAL"] Date actuelle au format local


$_SERVER["$DOCUMENT_ROOT"] Racine des documents Web sur le
serveur

33
PHP
Syntaxe de base – Les variables
 Variables prédéfinies
 Affichage des variables d'environnement
– la fonction phpinfo()
• <? phpinfo(); ?>
• echo phpinfo(constante);

INFO_CONFIGURATION affiche les informations de configuration.


INFO_CREDITS affiche les informations sur les auteurs du
module PHP
INFO_ENVIRONMENT affiche les variables d'environnement.
INFO_GENERAL affiche les informations sur la version de
PHP.
INFO_LICENSE affiche la licence GNU Public
INFO_MODULES affiche les informations sur les modules
associés à PHP
INFO_VARIABLES affiche les variables PHP prédéfinies.

– la fonction getenv()
• <? echo getenv("HTTP_USER_AGENT");?> 34
PHP
Syntaxe de base – Les types de données
 Principe
 Pas besoin d’affecter un type à une variable avant de l’utiliser

 La même variable peut changer de type en cours de script

 Les variables issues de l’envoi des données d’un formulaire sont du


type string

 Types de données
 Les entiers : le type Integer

 Les flottants : le type Double

 Les tableaux : le type array

 Les chaînes de caractères : le type string

 Les objets
35
PHP
Syntaxe de base – Les types de données
 Transtypage
 La fonction settype() permet de convertir le type auquel appartient
une variable
<? $nbre=10;
Settype($nbre, " double ");
Echo " la variable $nbre est de type " , gettype($nbre); ?>

 Transtypage explicite : le cast


 (int), (integer) ; (real), (double), (float); (string); (array); (object)

<? $var=" 100 FRF ";


Echo " pour commencer, le type de la variable est $var, gettype($var);
$var =(double) $var;
Echo <br> Après le cast, le type de la variable est $var ", gettype($var);
Echo "<br> et a la valeur $var "; ?>

 Détermination du type de données


 Gettype(), Is_long(), Is_double(), Is_string(), Is_array(), Is_object(),
Is_bool()
36
PHP
Syntaxe de base – Les chaînes de caractères
 Principe
 Peuvent être constituées de n'importe quel caractère alphanumérique et
de ponctuation, y compris les caractères spéciaux
\tLa nouvelle monnaie unique, l' €uro, est enfin là...\n\r
 Une chaîne de caractères doit être toujours entourée par des guillemets
simples (')ou doubles (")
" Ceci est une chaîne de caractères valide."
'Ceci est une chaîne de caractères valide.'
"Ceci est une chaîne de caractères invalide.'
 Des caractères spéciaux à insérer directement dans le texte, permettent
de créer directement certains effets comme des césures de lignes
Car CodeASCII Codehex Description
\car échappe un caractère spécifique.
"" 32 0x20 un espace simple.
\t 9 0x09 tabulation horizontale
\r 10 0x0A retour chariot
\0 0 0x00 caractère NUL
\v 37
11 0x0B tabulation verticale
PHP
Syntaxe de base – Les chaînes de caractères
 Quelques fonctions de manipulation
chaîne_result = addCSlashes(chaîne, liste_caractères);
ajoute des slashs dans une chaîne
chaîne_result = addSlashes(chaîne);
ajoute un slash devant tous les caractères spéciaux.

chaîne_result = chop(chaîne);
supprime les espaces blancs en fin de chaîne.
caractère = chr(nombre);
retourne un caractère en mode ASCII
chaîne_result = crypt(chaîne [, chaîne_code])
code une chaîne avec une base de codage.
echo expression_chaîne;
affiche à l'écran une ou plusieurs chaînes de caractères.
$tableau = explode(délimiteur, chaîne);
scinde une chaîne en fragments à l'aide d'un délimiteur et retourne un 38
tableau.
PHP
Syntaxe de base – Les opérateurs

 opérateurs de calcul
 opérateurs d'assignation
 opérateurs d'incrémentation
 opérateurs de comparaison
 opérateurs logiques
 opérateurs bit-à-dit
 opérateurs de rotation de bit

39
PHP
Syntaxe de base – Les opérateurs
 Opérateurs d'assignation

Opérateur Effet
+= addition deux valeurs et stocke le résultat dans la variable (à gauche)
-= soustrait deux valeurs et stocke le résultat dans la variable
*= multiplie deux valeurs et stocke le résultat dans la variable
/= divise deux valeurs et stocke le résultat dans la variable
donne le reste de la division deux valeurs et stocke le résultat dans la
%=
variable
Effectue un OU logique entre deux valeurs et stocke le résultat dans la
|=
variable
Effectue un OU exclusif entre deux valeurs et stocke le résultat dans la
^=
variable
Effectue un Et logique entre deux valeurs et stocke le résultat dans la
&=
variable
.= Concatène deux chaînes et stocke le résultat dans la variable 40
PHP
Syntaxe de base – Les opérateurs
 Opérateurs d'incrémentation
Opérateur Dénomination Effet Syntaxe Résultat (avec x valant 7)
++ Incrémentation Augmente d'une unité la variable $x++
-- Décrémentation Diminue d'une unité la variable $x--

 Opérateurs de comparaison
Opérateur Dénomination Effet Exemple Résultat
== opérateur Compare deux valeurs et vérifie
$x==3
d'égalité leur égalité
opérateur Vérifie qu'une variable est
< d'infériorité strictement inférieure à une $x<3
stricte valeur
opérateur Vérifie qu'une variable est
<= $x<=3
d'infériorité inférieure ou égale à une valeur
opérateur de Vérifie qu'une variable est
> supériorité strictement supérieure à une $x>3
stricte valeur

opérateur de Vérifie qu'une variable est


>= $x>=3
supériorité supérieure ou égale à une valeur

opérateur de Vérifie qu'une variable est 41


!= $x!=3
différence différente d'une valeur
PHP
Syntaxe de base – Les opérateurs
 Opérateurs logiques
Opérateur Dénomination Effet Syntaxe
Vérifie qu'une des conditions est
|| ou OR OU logique ((condition1)||(condition2))
réalisée
&& ou Vérifie que toutes les conditions sont
ET logique ((condition1)&&(condition2))
AND réalisées
XOR OU exclusif Opposé du OU logique ((condition1)XOR(condition2))
Inverse l'état d'une variable booléenne
! NON logique (retourne la valeur 1 si la variable vaut(!condition)
0, 0 si elle vaut 1)

 Opérateurs bit-à-bit
Op Dénomination Effet Syntaxe Résultat
Retourne 1 si les deux bits de même
& ET bit-à-bit 9 & 12 (1001 & 1100)
poids sont à 1
Retourne 1 si l'un ou l'autre des deux
| OU bit-à-bit 9 | 12 (1001 | 1100)
bits de même poids est à 1 (ou les deux)
Retourne 1 si l'un des deux bits de
^ OU bit-à-bit 9 ^ 12 (1001 ^ 1100)
même poids est à 1 (mais pas les deux)
Complément Retourne 1 si le bit est à 0 (et
~ ~9 (~1001)
(NON) inversement)
42
PHP
Syntaxe de base – Les opérateurs
 Opérateurs de rotation de bit
Op Dénom. Effet Syntaxe Résultat
Décale les bits vers la gauche (multiplie par 2 à chaque
Rotation à
<< gauche
décalage). Les zéros qui sortent à gauche sont perdus, 6 << 1 (110 << 1)
tandis que des zéros sont insérés à droite
Rotation à Décale les bits vers la droite (divise par 2 à chaque
droite avec décalage). Les zéros qui sortent à droite sont perdus,
>> conservation tandis que le bit non-nul de poids plus fort est recopié à
6 >> 1 (0110 >> 1)
du signe gauche

 Autres opérateurs
Op Dénomination Effet Syntaxe Résultat
"Bonjour"."Au
. Concaténation Joint deux chaînes bout à bout
revoir"
Référencement
$ de variable
Permet de définir une variable $MaVariable = 2;

Propriété d'un Permet d'accéder aux données $MonObjet-


-> objet membres d'une classe >Propriete

43
PHP
Syntaxe de base – Les opérateurs
 Priorités
Priorité des opérateurs
() []
-- ++ ! ~ -
* / %
+ -
< <= >= >
== !=
&
^
|
&&
||
? :
= += -= *= /= %= <<= >>= >>>= &= ^= |=
AND

XOR
44
PHP
Syntaxe de base – Les instructions conditionnelles

 L'instruction if
 if (condition réalisée) { liste d'instructions }

 L'instruction if ... Else


 if (condition réalisée) {liste d'instructions}
else { autre série d'instructions }

 L'instruction if ... elseif ... Else


 if (condition réalisée) {liste d'instructions}
elseif (autre condition ) {autre série d'instructions }
else (dernière condition réalisée) { série d'instructions }

 Opérateur ternaire
 (condition) ? instruction si vrai : instruction si faux

45
PHP
Syntaxe de base – Les instructions conditionnelles
 L'instruction switch
switch (Variable) {
case Valeur1: Liste d'instructions break;
case Valeur1: Liste d'instructions break;
case Valeurs...: Liste d'instructions break;
default: Liste d'instructions break;
}

46
PHP
Syntaxe de base – Les boucles

 Boucle for
 for ($i=1; $i<6; $i++) { echo "$i<br>"; }

 Boucle while
 While(condition) {bloc d’instructions ;}
 While (condition) :Instruction1 ;Instruction2 ;
…. endwhile ;

 Boucle do…while
 Do {bloc d’instructions ;}while(condition) ;

 Boucle foreach (PHP4)


 Foreach ($tableau as $valeur) {insts utilisant $valeur ;}

47
PHP
Syntaxe de base – Les fonctions

 Déclaration et appel d’une fonction


Function nom_fonction($arg1, $arg2, …$argn)
{
déclaration des variables ;
bloc d’instructions ;
//fin du corps de la fonction
return $resultat ;
}

 Fonction avec nombre d’arguments inconnu


 func_num_args() : fournit le nombre d’arguments qui ont été passés lors de
l’appel de la fonction
 func_get_arg($i) : retourne la valeur de la variable située à la position $i
dans la liste des arguments passés en paramètres.
 Ces arguments sont numérotés à partir de 0

48
PHP
Syntaxe de base – Les fonctions
 Fonction avec nombre d’arguments inconnu
<?php
function produit()
{
$nbarg = func_num_args() ;
$prod=1 ;
// la fonction produit a ici $nbarg arguments
for ($i=0 ; $i <$nbarg ; $i++)
{
$prod *= func_get_arg($i)
}
return $prod;
}
echo "le produit est : ", produit (3, 77, 10, 5, 81, 9),
"<br />" ;
// affiche le produit est 8 419 950
?>

49
PHP
Syntaxe de base – Les fonctions
 Passage de paramètre par référence
 Pour passer une variable par référence, il faut que son nom soit précédé du
symbole & (exemple &$a)
<?
function dire_texte($qui, &$texte){ $texte = "Bienvenue $qui";}
$chaine = "Bonjour ";
dire_texte("cher phpeur",$chaine);
echo $chaine; // affiche "Bienvenue cher phpeur"
?>

 L’appel récursif
 PHP admet les appels récursifs de fonctions

50
PHP
Syntaxe de base – Les fonctions

 Appel dynamique de fonctions


 Exécuter une fonction dont le nom n’est pas forcément connu à l’avance
par le programmeur du script
 L’appel dynamique d’une fonction s’effectue en suivant le nom d’une
variable contenant le nom de la fonction par des parenthèses
<?php $datejour = getdate() ; // date actuelle
//récupération des heures et minutes actuelles
$heure = $datejour[hours] ; $minute=$datejour[minutes] ;
function bonjour(){ global $heure; global $minute;
echo "<b> BONJOUR A VOUS IL EST : ", $heure, " H ", $minute, "</b> <br />" ;}
function bonsoir (){
global $heure ; global $minute ;
echo "<b> BONSOIR A VOUS IL EST : ", $heure, " H ", $minute , "</ b> <br />" ;}
if ($heure <= 17) {$salut = "bonjour" ; } else $salut="bonsoir" ;
//appel dynamique de la fonction
$salut() ; ?>

51
PHP
Syntaxe de base – Les fonctions
 Variables locales et variables globales
 variables en PHP : global, static, local
 toute variable déclarée en dehors d’une fonction est globale
 utiliser une variable globale dans une fonction, l’instruction global suivie
du nom de la variable
 Pour conserver la valeur acquise par une variable entre deux appels de la
même fonction : l’instruction static.
 Les variables statiques restent locales à la fonction et ne sont pas réutilisables à
l’extérieur.
<?php
function cumul ($prix) { static $cumul = 0 ;
static $i = 1 ;
echo "Total des achats $i = ";
$cumul += $prix; $i++ ;
return $cumul ; }
echo cumul (175), "<br />" ;echo cumul (65), "<br />" ;echo cumul
(69), "<br />" ; ?>
52
PHP
Syntaxe de base – Les tableaux
 Principe
 Création à l’aide de la fonction array()

 Uniquement des tableaux à une dimension

 Les éléments d’un tableau peuvent pointer vers d’autres


tableaux

 Les éléments d’un tableau peuvent appartenir à des types distincts

 L’index d’un tableau en PHP commence de 0

 Pas de limites supérieures pour les tableaux

 La fonction count() pour avoir le nombre d’éléments d’un tableau

53
PHP
Syntaxe de base – Les tableaux

 Les tableaux indicés et les tableaux associatifs


 Tableau indicé
 Accéder aux éléments par l’intermédiaire de numéros

$tableau[indice] = valeur;
$jour[3] = "Mercredi";
$note[0] = 20;

$tableau = array(valeur0, valeur1,..., valeurN);


$jour = array("Dimanche", "Lundi", "Mardi", "Mercredi",
"Jeudi", "Vendredi", "Samedi");
$note = array(20, 15, 12.6, 17, 10, 20, 11, 18, 19);

$variable = $tableau[indice];
$JJ = $jour[6]; // affecte "Samedi" à $JJ
echo $note[1] + $note[5];

54
PHP
Syntaxe de base – Les tableaux

 Les tableaux indicés et les tableaux associatifs


 Tableau associatif (ou table de hachage)
– Les éléments sont référencés par des chaînes de caractères
associatives en guise de nom: la clé d’index

$tableau["indice"] = valeur;
$jour["Dimanche"] = 7
$jour["Mercredi"] = "Le jour des enfants"

$tableau = array(ind0 => val0, ind1 => val1,..., indN =>


valN);
$jour = array("Dimanche" => 1, "Lundi" => 2, "Mardi" =>
3, "Mercredi" => 4, "Jeudi" => 5, "Vendredi" => 6,
"Samedi" => 7);

$variable = $tableau["indice"];
$JJ = $jour["Vendredi"]; //affecte 6 à $JJ
echo $jour["Lundi"]; //retourne la valeur 2
55
PHP
Syntaxe de base – Les tableaux
 Tableaux multidimensionnels
 Pas d'outils pour créer directement des tableaux multidimensionnels
 L'imbrication des tableaux est possible

$tab1 = array(Val0, Val1,..., ValN);


$tab2 = array(Val0, Val1,..., ValN);
// Création d'un tableau à deux dimensions
$tableau = array($tab1, $tab2);
$mois = array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin",
"Juillet", "Août", "Septembre", "Octobre", "Novembre",
"Décembre");
$jour = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi",
"Vendredi", "Samedi");
&element_date = array(&mois, &jour);

$variable = $tableau[indice][indice];
$MM = $element_date[0][0]; //affecte "Janvier" à $MM
echo $element_date[1][5] . " 7 " . $element_date[0][2] . "2002"; //
retourne "Jeudi 7 Mars 2002"
56
PHP
Syntaxe de base – Les tableaux

 Lecture des éléments d’un tableau


 Avec une boucle for
for ($i=0; $i<count($tab) ; $i++){
if ($tab[$i]== "a") {echo $tab[$i], "<br />"; }}

 Avec une boucle while


$i=0;
while ($tab[$i]){
if ($tab[$i][0] =="a" ) {echo $tab[$i], "<br /> "; }}

 Avec La boucle foreach


$jour = array("Dimanche", "Lundi", "Mardi",
"Mercredi", "Jeudi", "Vendredi", "Samedi");
$i = 0;
foreach($jour as $JJ) { echo "La cellule n° ". $i . "
: " . $JJ . "<br>"; $i++; }
57
PHP
Syntaxe de base – Les tableaux

 Lecture des éléments d’un tableau


 Parcours d'un tableau associatif
 Réalisable en ajoutant avant la variable $valeur, la clé associée
$tableau = array(clé1 => val1, clé2 => val2, ..., cléN => valN);
foreach($tableau as $clé => $valeur)
{ echo "Valeur ($clé): $valeur"; }
$jour = array("Dimanche" => 7, "Lundi" => 1, "Mardi" => 2,
"Mercredi" => 3, "Jeudi" => 4, "Vendredi" => 5,"Samedi" => 6);
foreach($jour as $sJJ => $nJJ)
{
echo "Le jour de la semaine n° ". $nJJ . " : " . $sJJ . "<br>";
}

58
PHP
Syntaxe de base – Les tableaux
 Fonctions de tri
 Tri selon les valeurs
 La fonction sort() effectue un tri sur les valeurs des éléments d’un tableau
selon un critère alphanumérique :selon les codes ASCII :
– « a » est après « Z » et « 10 » est avant « 9 »)
– Le tableau initial est modifié et non récupérables dans son ordre original
– Pour les tableaux associatifs les clés seront perdues et remplacées par un
indice créé après le tri et commencant à 0
 La fonction rsort() effectue la même action mais en ordre inverse des codes
ASCII.
 La fonction asort() trie également les valeurs selon le critère des codes
ASCII, mais en préservant les clés pour les tableaux associatifs
 La fonction arsort() la même action mais en ordre inverse des codes ASCII
 la fonction natcasesort() effectue un tri dans l’ordre alphabétique non ASCII
(« a » est avant « z » et « 10 » est après « 9 »)

59
PHP
Syntaxe de base – Les tableaux
 Fonctions de tri
 Tri sur les clés
 La fonction ksort() trie les clés du tableau selon le critère des codes
ASCII, et préserve les associations clé /valeur
 La fonction krsort() effectue la même action mais en ordre inverse des
codes ASCII

<?php
$tab2 = array ("1622"=>"Molière","1802"=>"Hugo","1920"=>"Vian") ;
ksort ($tab2);
echo "<h3 > Tri sur les clés de \$tab2 </h3>" ;
foreach ($tab2 as $cle=>$valeur) {
echo "<b> l’élément a pour clé : $clé; et pour valeur : $ valeur
</b> <br />";
}
?>

60
PHP
Syntaxe de base – Les tableaux
 Fonctions de tableaux
$tableau = array_count_values($variable);
retourne un tableau comptant le nombre d'occurrences des valeurs d'un tableau.

$tableau = array_diff($var_1, $var_2, ..., $var_N);


retourne dans un tableau contenant les valeurs différentes entre deux ou
plusieurs tableaux.

$tableau = array_intersect($var_1, $var_2, ..., $var_N);


retourne un tableau contenant les enregistrements communs aux tableaux entrés
en argument.

$tableau = array_flip($variable);
intervertit les paires clé/valeur dans un tableau.

$tableau = array_keys($variable [, valeur]);


retourne toutes les clés d'un tableau ou les emplacements d'une valeur dans un
tableau. 61
PHP
Syntaxe de base – Les tableaux
$tableau = array_filter($variable, "fonction")
retourne un tableau contenant les enregistrements filtrés d'un tableau à partir
d'une fonction.

<?php
function impair($var)
{return ($var % 2 == 1);}

function pair($var)
{return ($var % 2 == 0);}

$array1 = array ("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);


$array2 = array (6, 7, 8, 9, 10, 11, 12);
echo "Impairs :\n";
print_r(array_filter($array1, "impair"));
echo "Pairs :\n";
print_r(array_filter($array2, "pair"));
?>
62
PHP
Syntaxe de base – Les tableaux
 Fonctions de tableaux
$tableau = array_map($var_1 [, $var_2, ..., $var_N], 'fonction');
applique une fonction à un ou plusieurs tableaux.

$tableau = array_merge($var_1, $var_2, ..., $var_N);


enchaîne des tableaux entrés en argument afin d'en retourner un unique.

$tableau = array_merge_recursive($var_1, $var_2, ..., $var_N);


enchaîne des tableaux en conservant l'ordre des éléments dans le tableau
résultant. Dans le cas de clés communes, les valeurs sont placées dans un
tableau.

true | false = array_multisort($var, critère1, critère2 [, ..., $var_N, critère1, critère2])


trie un ou plusieurs tableaux selon un ordre croissant ou décroissant
(SORT_ASC ou SORT_DESC) et selon une comparaison alphabétique,
numérique ou de chaîne de caractères (SORT_REGULAR, SORT_NUMERIC
ou SORT_STRING).

$tableau = array_pad($variable, taille, valeur);


recopie tout un tableau en ajustant sa taille à l'argument correspondant et63en
bourrant d'une valeur spécifiée les éléments vides.
PHP
Syntaxe de base – Les tableaux
 Les fonctions de tableaux

$tableau = array_map($var_1 [, $var_2, ..., $var_N], 'fonction');


applique une fonction à un ou plusieurs tableaux.

$tableau = array_merge($var_1, $var_2, ..., $var_N);


enchaîne des tableaux entrés en argument afin d'en retourner un unique.

$tableau = array_merge_recursive($var_1, $var_2, ..., $var_N);


enchaîne des tableaux en conservant l'ordre des éléments dans le tableau résultant. Dans
le cas de clés communes, les valeurs sont placées dans un tableau.

true | false = array_multisort($var, critère1, critère2 [, ..., $var_N, critère1, critère2])


trie un ou plusieurs tableaux selon un ordre croissant ou décroissant (SORT_ASC ou
SORT_DESC) et selon une comparaison alphabétique, numérique ou de chaîne de
caractères (SORT_REGULAR, SORT_NUMERIC ou SORT_STRING).

$tableau = array_pad($variable, taille, valeur);


recopie tout un tableau en ajustant sa taille à l'argument correspondant et en bourrant
d'une valeur spécifiée les éléments vides.

64
PHP
Syntaxe de base – Les classes et les objets
 Création d’une classe et d’un objet
 Une classe est composée de deux parties:
 Les attributs: il s'agit des données représentant l'état de l'objet
 Les méthodes : il s'agit des opérations applicables aux objets
<?php
class client
{
var $nom; var $ville; var $naiss ;
function Afficher_age() {
$jour = getdate();
$an=$jour["year"];
$age = $an - $this->naiss; //utilisation des propriétés
echo "Il a $age ans cette année <br echo "le nom du client1 est ", $client1-
/>" ; >nom, "<br />" ;
}
} echo "la ville du client1 est ", $client1->
//création d’un objet
ville, "<br />" ;
$client1 = new client() ; echo "le client1 est né en ", $client1-
//affectation des propriétés de >naiss, "<br />" ;
l’objet
$client1 -> nom = "Ahmadi" ; //appel de la méthode Afficher_age()
$client1-> naiss = "1998" ; $client1->Afficher_age() ;
$client1->ville = "Casablanca" ; ?>
65
PHP
Syntaxe de base – Les classes et les objets

 Manipulation des classes et des objets


 Php n'inclue pas dans sa version 4 de niveaux de visibilité des
éléments de la classe, il n'y a donc pas de concept d'encapsulation
 Instanciation de la classe
 $Nom_de_l_objet = new Nom_de_la_classe;

 Accéder aux propriétés d'un objet


 $Nom_de_l_objet->Nom_de_la_donnee_membre = Valeur;

 Accéder aux méthodes d'un objet


 $Nom_de_l_objet-
>Nom_de_la_fonction_membre(parametre1,parametre2,...);

 La variable $this
 $this->age = $Age;

66
PHP
Syntaxe de base – Les classes et les objets
 Héritage
 Instruction extends : class nouvelle_classe extends super_classe

 La nouvelle classe hérite des attributs et des méthodes appartenant à la


super-classe tout en définissant ses propres fonctions et variables.
 Le langage PHP ne supporte pas l'héritage multiple

 Constructeur
 Une fonction qui est appelée automatiquement par la classe lors de son
instanciation avec l'opérateur new
 Doit posséder un nom identique à celle de la classe
 Avec PHP 3, une fonction définie dans une classe héritée devient un
constructeur si son nom est similaire à celle de la nouvelle classe
 Avec PHP 4, une fonction constructeur ne peut être définie que dans sa
propre classe
 Lorsqu'une classe héritant d'une autre est instanciée et si aucun
constructeur n'est défini dans cette classe, alors la fonction constructeur
sollicitée sera celle de la super-classe
67
PHP
Syntaxe de base – Les classes et les objets
 L'opérateur ::
 faire référence à une fonction définie dans une super-classe à partir d'une
classe héritant de cette dernière
class nouvelle_classe extends super_classe
{function fonction()
{echo "Blocs d'instructions de la fonction fonction() . "
dans la nouvelle-classe.";
super_classe::fonction(); } }
 L'opérateur parent
 faire référence à des variables ou des fonctions présentes dans la super-classe à
partir d'une autre classe héritant de cette dernière
class nouvelle_classe extends super_classe
{ function fonction() {
echo "Blocs d'instructions de la fonction fonction()"
. " dans la nouvelle-classe.";
// se référe à la fonction fonction() de la super_classe
parent::fonction(); }
68
}
PHP
Syntaxe de base – Les classes et les objets
 Sauvegarde des objets
 La sauvegarde et la relecture des objets s'effectuent respectivement
par serialize et unserialize

 serialize permet de transformer un objet en une chaîne de caractères


pouvant être facilement transmise à une autre page lors d'une session

 unserialize permet de reconstituer l'objet à partir de la chaîne de


caractères précitée

69
PHP
Syntaxe de base – Les classes et les objets

 Les fonctions __sleep et __wakeup


 Les fonctions __sleep et __wakeup sont appelées resp. par les
commandes serialize et unserialize afin de traiter l'objet ou la chaîne de
caractères représentant un objet avant la linéarisation ou délinéarisation

class nom_classe{
function __sleep()
{Instructions à accomplir avant serialize()...}

function __wakeup() {
Instructions à accomplir avant unserialize()...}
}

73
PHP
Syntaxe de base – Les classes et les objets

 Manipulation des classes et des objets


 Les fonctions __sleep et __wakeup
 La fonction serialize recherche la méthode __sleep dans une
classe afin de la lancer avant le processus de linéarisation.
– Effectuer un traitement préliminaire de l'objet dans le but de
terminer proprement toutes les opérations relatives à cet objet,
• la fermeture des connexions sur des bases de données,
• suppression des informations superflues ne nécessitant pas de
sauvegarde, etc..

 La fonction unserialize recherche la méthode __wakeup dans


une classe afin de la lancer avant le processus de délinéarisation
– Accomplir des opérations de reconstruction de l'objet
• en ajoutant des informations,
• en réouvrant des connexions vers des bases de données,
• en initialisant des actions, etc..
74
PHP
Syntaxe de base – Les classes et les objets

 Manipulation des classes et des objets

 Les informations méta sur les classes et les objets


 Get_class() détermination de la classe d’un objet
 Get_parent_class() détermination des super-classes d’un objet
 Method_exists() détermination de la présence d’une méthode
dans un objet
 Class_exists() Détermination de la présence d’une définition de
classe
 Is_subclass_of() Vérifie si une classe est une sous classe d’une autre
 Get_class_methods() Retourne les méthodes d’une classe dans un
tableau
 Get_declared_classes() Retourne les classes déclarées dans un tableau
 Get_class_vars() Retourne les variables de classe dans un tableau
 Get_object_vars() Retourne les variables d’un objet dans un tableau

75
PHP
Syntaxe de base – Les classes et les objets
 Les objets PHP sont des tableaux associatifs
 Les noms des variables sont conçus comme des mots-clés
 Les valeurs des variables comme les éléments d’un tableau associatif
<?
Class ClasseTest {
var $col = "#0000E0" ;
var $txt= "Salut PHP" ;
var $ft = "Arial" ;
function ClasseTest() {
echo "<FONT FACE=\ " COLOR=\"$this->col\" >$this-
>txt</FONT><br>;}};

$obj = new ClasseTest;


Reset($obj);
Foreach ($obj as $key=>$elem){
Echo "$key=>$elem<br>" ;
} ?>

76
PHP
Syntaxe de base – Les dates et heures
 Les fonctions de date et d’heure
true | false = checkdate(mois, jour, année);
vérifie la validité d'une date.
$chaine = date(format [, nombre]);
retourne une chaîne de caractères date/heure selon le format spécifié et représentant l
date courante par défaut.

$tableau = getdate([nombre]);
retourne les éléments de date et d'heure dans un tableau associatif.

$tableau = gettimeofday();
retourne l'heure courante dans un tableau associatif.

$chaine = gmdate(format [, nombre]);


retourne une chaîne de caractères date/heure GMT/CUT selon le format spécifié et
représentant la date courante par défaut.
$nombre = gmmktime(heure, minute, seconde, mois, jour, année [, 1/0]);
retourne l'instant UNIX d'une date GMT spécifiée et avec éventuellement une heure
d'hiver

77
PHP
Syntaxe de base – Les dates et heures

 Les fonctions de date et d’heure


$chaine = gmstrftime(format [, nombre]);
formate une date/heure GMT/CUT en fonction des paramétrages locaux définis par
setlocale.
$tableau = localtime([nombre][, tab_associatif]);
retourne l'heure locale dans un tableau indicé par défaut ou associatif (1)

$chaine = microtime();
retourne l'instant UNIX courant en secondes et microsecondes (1 janvier 1970 à 0H00)

$nombre = mktime(heure, minute, seconde, mois, jour, année [, 1/0]);


retourne l'instant UNIX d'une date spécifiée et avec éventuellement une heure d'hiver (1

$chaine = strftime(format [, instant]);


formate une date/heure locale avec les options locales
$nombre = time();
retourne l'instant UNIX courant

78
PHP
Syntaxe de base – Les dates et heures

 Les formats de date et d'heure


a représente am (matin) ou pm (après-midi).
A représente AM (matin) ou PM (après-midi).
B représente une heure Internet Swatch.
d représente le jour du mois sur deux chiffres allant de 01 à 31.
D représente le jour de la semaine en trois lettres et en anglais (Sun, ..., Sat).
F représente le mois complet en anglais (January, ..., December).
g représente une heure au format 12 heures allant de 1 à 12.
G représente une heure au format 24 heures allant de 1 à 24.
h représente une heure au format 12 heures avec un zéro de complément allant de 00 à 11.
H représente une heure au format 24 heures allant de 00 à 23.
i représente les minutes allant de 00 à 59.
I est égal à 1 si l'heure d'été est activée ou 0 pour l'heure d'hiver.
j représente le jour du mois allant de 1 à 31.
l représente le jour de la semaine complet et en anglais (Sunday, ..., Saturday).
L est égal à 1 si l'année est bissextile, sinon 0.
m représente un mois allant de 01 à 12.
M représente un mois en trois lettres et en anglais (Jan, ..., Dec).

79
PHP
Syntaxe de base – Les dates et heures

 Les formats de date et d'heur

n représente un mois allant de 1 à 12.


O représente la différence d'heures avec l'heure de Greenwich (+0100).
r représente un format de date conforme au RFC 822 (Mon, 25 Mar 2002 05:08:26 +0100).
s représente les secondes allant de 00 à 59.
S représente le suffixe ordinal d'un nombre en anglais et sur deux lettres th ou nd.
t représente le nombre de jours dans le mois (28, 29, 30 ou 31).
T représente le fuseau horaire.
U représente les secondes depuis une époque.
w représente le jour de la semaine allant de 0 (Dimanche) à 6 (Samedi).
Y représente une année sur quatre chiffres (2002).
y représente une année sur 2 chiffres (02).
z représente le jour de l'année allant de 0 à 365.
Z représente le décalage horaire en secondes.

80
PHP
Syntaxe de base – Interactivité PHP - formulaires
 Formulaire HTML
 Retourne des informations saisies par un utilisateur vers une
application serveur
 La création d’un formulaire nécessite la connaissance de quelques
balises HTML indispensables :
 Structure : un formulaire commence toujours par la balise
<form> et se termine par la balise </form>
 Champ de saisie de text en ligne :
<input type = "text" name ="nom_du_champ" value="chaîne">

 Boutons d’envoi et d’effacement :


<input type=" submit " value = "Envoyer">
<input type = "reset" name ="efface" value = "Effacer">

 Case à cocher et bouton radio :


<input type = "checkbox" name ="case1" value="valeur_case">
<input type = "radio" name ="radio1" value ="valeur_radio">
81
PHP
Syntaxe de base – Interactivité PHP - formulaires
 Formulaire HTML
 Retourne des informations saisies par un utilisateur vers une
application serveur
 La création d’un formulaire nécessite la connaissance de quelques
balises HTML indispensables :
 Structure : un formulaire commence toujours par la balise
<form> et se termine par la balise </form>
 Champ de saisie de text en ligne :
<input type = "text" name ="nom_du_champ" value="chaîne">

 Boutons d’envoi et d’effacement :


<input type=" submit " value = "Envoyer">
<input type = "reset" name ="efface" value = "Effacer">

 Case à cocher et bouton radio :


<input type = "checkbox" name ="case1" value="valeur_case">
<input type = "radio" name ="radio1" value ="valeur_radio">
82
PHP
Syntaxe de base – Interactivité PHP - formulaires

 Liste de sélection avec options à choix unique :

<select name ="select" size="1">


<option value = "un"> choix </option>
<option value ="deux"> choix2 </option>
</select>

 Liste de sélection avec options à choix multiples :

<select name ="select" size = "1" multiple>


<option value = "un"> choix1 </option>
<option value = "deux"> choix2 </option>
</select>

83
PHP
Syntaxe de base – Interactivité PHP - formulaires
 Méthodes d’envoi get et post
 transmission selon une des deux méthodes d'envoi GET ou POST

– La méthode GET place les informations d'un formulaire


directement à la suite de l'adresse URL de la page appelée.
• http://www.site.com/cible.php?champ=valeur&champ2=valeur
• inconvénients :
- rendre visibles les données dans la barre d’adresse du
navigateur.
- De plus, la longueur totale est limitée à 255 caractères, ce qui
rend impossible la transmission d’un volume de données
important

– La méthode POST regroupe les informations dans l'entête d'une


requête HTTP
• Assure une confidentialité efficace des données
84
PHP
Syntaxe de base – Interactivité PHP - formulaires
 Récupération des paramètres en PHP
 Si la directive register_globals de php.ini est TRUE, lors de la
soumission, chaque élément de saisie est assimilé à une variable PHP
dont le nom est constitué par la valeur de l'attribut name et son
contenu par la valeur de l'attribut value
A DECONSEILLER

 Les tableaux associatifs $_GET et $_POST contiennent toutes les


variables envoyées par un formulaire

85
PHP
Syntaxe de base – Interactivité PHP - formulaires
 PHP et les formulaires
 La plupart des éléments d'un formulaire n'acceptent qu'une seule et
unique valeur, laquelle est affectée à la variable correspondante
dans le script de traitement.
$Champ_Saisie  "Ceci est une chaîne de caractères.";

 Pour des cases à cocher et les listes à choix multiples, plusieurs


valeurs peuvent être sélectionnées entraînant l'affectation d'un
tableau de valeurs aux variables correspondantes.
$Case_Cocher[0]  "Case radio 1";
$Case_Cocher[1]  "Case radio 3";

88
PHP
Syntaxe de base – Interactivité PHP - Base de données

 Principe
 PHP propose de nombreux outils permettant de travailler avec la
plupart des SGBDR
 Oracle, Sybase, Microsoft SQL Server, PostgreSQL ou encore MySQL

 Lorsqu'une base de données n'est pas directement supportée par


Php, il est possible d'utiliser un driver ODBC (pilote standard) pour
communiquer avec les bases de données
 Php fournit un grand choix de fonctions permettant de manipuler
les bases de données.
 Quatre fonctions sont essentielles:

– La fonction de connexion au serveur


– La fonction de choix de la base de données
– La fonction de requête
– La fonction de déconnexion

89
PHP
Syntaxe de base – Les Sessions
 Principe
 Est un mécanisme permettant de mettre en relation les différentes requêtes
du même client sur une période de temps donnée.
 Les sessions permettent de conserver des informations relatives à un
utilisateur lors de son parcours sur un site web
 Des données spécifiques à un visiteur pourront être transmises de page en
page afin d'adapter personnellement les réponses d'une application PHP
 Chaque visiteur en se connectant à un site reçoit un numéro d'identification
dénommé identifiant de session (SID)
 La fonction session_start() se charge de générer automatiquement cet
identifiant unique de session et de créer un répertoire. Elle doit être placée
au début de chaque page afin de démarrer ou de continuer une session.
<?php
session_start();
$Session_ID = session_id();
// $Session_ID = 7edf48ca359ee24dbc5b3f6ed2557e90 ?>

90
PHP
Syntaxe de base – Les Sessions
 Principe
 Un répertoire est créé sur le serveur à l'emplacement désigné par le
fichier de configuration php.ini, afin de recueillir les données de la
nouvelle session.
[Session]
session.save_path= C:\PHP\sessiondata
; Rép session = \sess_7edf48ca359ee24dbc5b3f6ed2557e90

 Le fichier php.ini peut également préciser un nom de session par


l'option session.name ou sa durée de vie par session.gc_maxlifetime

 La session en cours peut être détruite par la fonction


session_destroy(). Cette commande supprime toutes les
informations relatives à l'utilisateur.
session_destroy();

91
PHP
Syntaxe de base – Les Sessions
 Le traitement des variables de session
 Les variables de session sont chargées dans une session par
l'intermédiaire de la fonction session_register()
<?php
session_start();
session_register("nom_variable");
...
session_register("nom_variableN");
?>

 Une fois la variable enregistrée, elle est accessible à


travers le tableau associatif $_SESSION["nom_variable"]

92
PHP
Syntaxe de base – Les Sessions
 Les fonctions de sessions
session_start() -- Initialise les données de session
session_id() -- Affecte et/ou retourne l'identifiant de session courante
session_name() -- Affecte et/ou retourne le nom de la session courante
session_register() -- Enregistre une variable dans la session courante
session_destroy() -- Détruit toutes les données enregistrées d'une session
session_is_registered() -- Indique si une variable a été enregistrée dans la session ou pas
session_unregister() -- Supprime une variable dans la session courante
session_unset() -- Détruit toutes les variables de session
session_cache_expire() -- Retourne la date d'expiration du cache de la session
session_save_path() -- Affecte et/ou retourne le chemin de sauvegarde de la session courante
session_decode() -- Décode les données de session à partir d'une chaîne
session_encode() -- Encode les données de session dans une chaîne

96
PHP
Syntaxe de base – Les en-têtes HTTP
 Principe
 Les entêtes sont des informations envoyées lors de chaque échange
par le protocole HTTP entre un navigateur et un serveur
 Informations sur les données à envoyer dans le cas d'une
requête

 Permettent aussi d'effectuer des actions sur le navigateur comme le


transfert de cookies ou bien une redirection vers une autre page
 Ce sont les premières informations envoyées au navigateur
(pour une réponse) ou au serveur (dans le cas d'une requête),
– elles se présentent sous la forme: en-tête: valeur

 la syntaxe doit être rigoureusement respectée


 aucun espace ne doit figurer entre le nom de l'en-tête et les deux
points (:). Un espace doit par contre figurer après celui-ci

97
PHP
Syntaxe de base – Les en-têtes HTTP
 Principe
 PHP fournit une fonction permettant d'envoyer des en-tête HTTP
manuellement du serveur au navigateur
 booléen header(chaîne en-tête HTTP)

 La fonction header() doit être utilisée avant tout envoi de données


HTML au navigateur
 Exemples
 Rediriger le navigateur vers une nouvelle page:
<?
header("location: http://www.monsite.fr/"); ?>

 Pour envoyer au navigateur une image créé à la volée


<?
header("Content-Type: image/gif");
imagegif($image); // envoi de l'image au navigateur // code générant l'image
?>
98
PHP
Syntaxe de base – Les en-têtes HTTP

 Récupérer les en-têtes de la requête


 Alors que la fonction header() permet d'envoyer des en-têtes HTTP au
navigateur, PHP fournit une seconde fonction permettant de récupérer
dans un tableau l'ensemble des en-têtes HTTP envoyées par le navigateur
Tableau getallheaders();
 Le tableau retourné par la fonction contient les en-têtes indexés par leur
nom
 Exemple : un script permettant par exemple de récupérer des en-têtes
particuliers.

<?
$headers = getallheaders();
foreach ($headers as $nom => $contenu) {
echo "headers[$nom] = $contenu<br />\n";
}
?>

99
PHP
Syntaxe de base – Les en-têtes HTTP

 Les fonctions HTTP

header(chaîne);
envoie une entête HTTP avant toute commande PHP.

true | false = headers_sent();


vérifie si les entêtes HTTP ont bien été envoyés

setcookie(nom, valeur [, date_expiration [, chemin [, domaine [, sécurisation]]]]);


envoie un cookie.

100
PHP
Syntaxe de base – Les en-têtes HTTP

 Les fonctions HTTP

header(chaîne);
envoie une entête HTTP avant toute commande PHP.

true | false = headers_sent();


vérifie si les entêtes HTTP ont bien été envoyés

setcookie(nom, valeur [, date_expiration [, chemin [, domaine [, sécurisation]]]]);


envoie un cookie.

101

Vous aimerez peut-être aussi