Vous êtes sur la page 1sur 4

5/30/2014 Rsultats du Quiz PHP difficile (bis) - Alsacreations

http://www.alsacreations.com/quiz/resultat/15 1/4
Quiz
Rsultats du Quiz PHP difficile (bis)
1. On value le code suivant :
$kiwi = 'vert';
$fruit = &$kiwi;
$fruit = array();
$fruit['kiwi'] = $kiwi;
Que contient $fruit ?
Infiniment de rien (correct)
Un kiwi. (faux)
du vert !
La variable n'est pas dfinie.
A, la simple assignation d'un tableau vide ne supprime pas la rfrence, il faudrait utiliser unset() avant.
2. Sachant que l'on veut retrouver une portion de texte sous la forme crochet gauche, 2 6 caractres alphanumriques ou
soulign, crochet droit avec preg_match, quelle expression utiliser :
"/\[[A-Za-z0-9]{2,6}\]/" (faux)
'`\[\w{2,6}\]`' (correct)
'#\[[A-Z0-9_]{2,6}\]#iA'
"\`\[\w{2,6}\]\`"
A et B
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'interprtation des backslash et les crochets ne sont plus chapps pour preg_match().
3. Soit query() un fonction faisant une requte SQL et escape() une fonction effectuant un chappement des caractres
potentiellement dangereux. Quelle requte est scurise de manire optimale ?
query('SELECT * FROM `table` WHERE champ1='.$a.' AND champ2='.$b);
query('SELECT * FROM `table` WHERE champ1='.escape($a).' AND champ2='.escape($b));
query(sprintf('SELECT * FROM `table` WHERE champ1="%s" AND champ2="%d"', escape($a), escape($b)); (faux)
query(escape('SELECT * FROM `table` WHERE champ1='.$a.' AND champ2='.$b));
query(sprintf('SELECT * FROM `table` WHERE champ1="%s" AND champ2="%d"', escape($a), $b); (correct)
5/30/2014 Rsultats du Quiz PHP difficile (bis) - Alsacreations
http://www.alsacreations.com/quiz/resultat/15 2/4
E, les autres requtes ne sont pas optimales: A. Il n'y a aucun chappement; B. Les variables insrer sont bien chappes mais elle
ne sont pas entoures de guillemets; C. Il est inutile d'chapper la 2eme variable, en effet %d force son interprtation comme un
nombre; D. L'chappement de toute la requte la rend totalement inutile
4. On interprte le code suivant:
$a = 'ki' || 'wi';
$b = 'ki' or 'wi';
Que donne var_dump($a, $b); ?
bool(true) bool(true)
string(2) "ki" bool(true).
bool(true) string(2) "ki". (correct)
1 1.
ki wi (faux)
C, l'oprateur "||" ayant une prcdence suprieure "=" et "or" une prcdence infrieure 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) ?
Une page blanche avec un code html minimaliste "HTTP/1.1 404 Not Found".
Une erreur PHP.
La page d'erreur 404 par dfaut de mon site ou de mon CMS/Blog.
Une page blanche ou la page type 404 intgre au navigateur. (correct)
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 accde ?
Une page blanche. (faux)
kiwi.
wiki (correct)
Une erreur PHP.
Aucune des solutions prcdentes.
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) ?
5/30/2014 Rsultats du Quiz PHP difficile (bis) - Alsacreations
http://www.alsacreations.com/quiz/resultat/15 3/4
Retour au script parent sans excuter la suite du fichier. (correct)
Une erreur PHP.
Arrt du script la manire de exit().
Aucun, il est ignor.
Cela dpend s'il a t inclus avec require() ou include().
8. Que donne le code suivant en PHP5 ?
$b = false;
$a = unset($b);
var_dump($a);
NULL
Une erreur PHP. (correct)
bool(true)
bool(false)
ressource(#) (faux)
B, unset() n'a aucune valeur de retour depuis PHP4, tenter d'utiliser le retour provoque donc une erreur d'analyse.
9. PHP possde deux analyseurs XML, quelle est leur principale diffrence ?
Il n'y a qu'un analyseur XML
L'un commence par la fin du fichier, l'autre par le dbut
L'un ignore les erreurs, l'autre arrte l'analyse
L'un ncessite une DTD pour travailler, l'autre pas
L'un charge toute la chaine en mmoire, l'autre travail sur un flux (correct)
10. Laquelle de ces affirmations concernant PHP6 est fausse ?
Le type string est destin disparatre
La syntaxe "goto label" sera utilisable.
Une classe fille pourra avoir plusieurs classes mres. (correct)
On pourra utiliser: foreach($a as $key => list($value1, $value2)).
Les espaces de nom feront leur apparition. (faux)
Les directives magic_quotes_gpc et register_global disparatront.
Une classe fille ne pourra pas avoir plusieurs classes mres. Toutes les autres affirmations sont justes (le type "string" deviendra
"unicode").
Score : 3/10
Le verdict de Hiro Nakamura
5/30/2014 Rsultats du Quiz PHP difficile (bis) - Alsacreations
http://www.alsacreations.com/quiz/resultat/15 4/4
Ce niveau est encore un peu ardu pour toi, mais n'hsite pas consulter les innombrables ressources ce sujet
/apprendre/ .