1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Article 8] [Moins confortable] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Université de Harvard] 3 00:00:04,000 --> 00:00:08,000 [C'est CS50.] [CS50.TV] 4 00:00:08,000 --> 00:00:11,000 >> Bienvenue à notre deuxième section précédente. 5 00:00:11,000 --> 00:00:13,000 En cette semaine, nous allons parler de PHP, puis la semaine prochaine 6 00:00:13,000 --> 00:00:17,000 nous ferons une petite revue du Quiz 1. 7 00:00:17,000 --> 00:00:20,000 Nous allons commencer à la page 3 de ce problème met pack, 8 00:00:20,000 --> 00:00:28,000 et nous allons travailler à travers la section de questions assez rapidement. 9 00:00:28,000 --> 00:00:34,000 À la page 3, nous commençons à parler de cette différence entre C et PHP 10 00:00:34,000 --> 00:00:38,000 en ce sens que PHP est un langage typé dynamiquement, 11 00:00:38,000 --> 00:00:42,000 tandis que C est typé statiquement, 12 00:00:42,000 --> 00:00:46,000 et quiconque a très rapidement fait aucun codage à quelque chose comme PHP 13 00:00:46,000 --> 00:00:51,000 ou Python ou Ruby avant, JavaScript? 14 00:00:51,000 --> 00:00:53,000 Totalement nouveau? D'accord. 15 00:00:53,000 --> 00:00:56,000 >> Toutes ces langues que je viens de mentionner 16 00:00:56,000 --> 00:01:01,000 sont très différentes de langages tels que C et C + + et Java 17 00:01:01,000 --> 00:01:04,000 dans le sens où lorsque vous déclarez une variable que vous n'avez pas à déclarer 18 00:01:04,000 --> 00:01:09,000 quel type de variable, il est donc dans C, nous étions coincés avoir à toujours dire 19 00:01:09,000 --> 00:01:13,000 cela va être une variable de type int, ou cela va être une variable char *, 20 00:01:13,000 --> 00:01:16,000 alors qu'avec PHP, Python, Ruby avec, 21 00:01:16,000 --> 00:01:20,000 avec un grand nombre de ces langues plus modernes, vous n'avez pas à le faire du tout. 22 00:01:20,000 --> 00:01:24,000 Vous venez de déclarer votre variable, et dans le cas de PHP 23 00:01:24,000 --> 00:01:28,000 vous déclarez que c'est une variable en la faisant précéder par un signe $, 24 00:01:28,000 --> 00:01:35,000 et ensuite le type de la variable est déterminée par la valeur qui lui est retenue, 25 00:01:35,000 --> 00:01:38,000 ce qui est plutôt cool. 26 00:01:38,000 --> 00:01:44,000 Pour jouer avec ce petit un peu, nous avons échantillon de code PHP ici 27 00:01:44,000 --> 00:01:47,000 entre les balises de début et de fin. 28 00:01:47,000 --> 00:01:53,000 Nous utilisons ce genre de comme le HTML dans le sens où 29 00:01:53,000 --> 00:01:56,000 nous avons ces équerres ici pour ouvrir et fermer. 30 00:01:56,000 --> 00:01:58,000 Vous verrez cela avec le langage HTML. 31 00:01:58,000 --> 00:02:03,000 Vous verrez le même type de syntaxe de XML aussi. 32 00:02:03,000 --> 00:02:06,000 >> Cela indique le début d'un bloc PHP. 33 00:02:06,000 --> 00:02:09,000 Cette php? Est spécifique à PHP. 34 00:02:09,000 --> 00:02:16,000 Nous terminons le tout avec un?> Ainsi. 35 00:02:16,000 --> 00:02:22,000 Ouvrons un fichier dans notre appareil à l'aide que vous le souhaitez. 36 00:02:22,000 --> 00:02:25,000 Dans ce paquet il est dit d'appeler dynamic.php. 37 00:02:25,000 --> 00:02:29,000 En vérité, vous pouvez l'appeler comme vous voulez, mais le nom du fichier viendra 38 00:02:29,000 --> 00:02:34,000 et jouer un rôle important plus tard, donc n'oubliez pas ce que vous appelez. 39 00:02:34,000 --> 00:02:36,000 Je vais passer à l'appareil, 40 00:02:36,000 --> 00:02:43,000 et je vais faire un répertoire pour 41 00:02:43,000 --> 00:02:48,000 l'article 9, je crois que nous en sommes. 42 00:02:48,000 --> 00:02:51,000 Et nous passerons à l'article 9, 43 00:02:51,000 --> 00:02:54,000 et je vais utiliser gedit. 44 00:02:54,000 --> 00:02:59,000 Voyons, gedit, et je vais appeler dynamic.php mine. 45 00:02:59,000 --> 00:03:03,000 Boom. 46 00:03:03,000 --> 00:03:06,000 Dans dynamic.php, puisqu'il s'agit d'un fichier PHP 47 00:03:06,000 --> 00:03:09,000 et je veux exécuter ce grâce à l'interpréteur PHP 48 00:03:09,000 --> 00:03:12,000 J'ai besoin de commencer tout enlever avec les balises d'ouverture, 49 00:03:12,000 --> 00:03:17,000 donc je vais commencer tout de suite ceux qui, 50 00:03:17,000 --> 00:03:23,000 me donner un peu d'espace entre les balises, 51 00:03:23,000 --> 00:03:26,000 et puis le but de cet exercice était de jouer avec 52 00:03:26,000 --> 00:03:34,000 Cette fonction s'appelle gettype, afin gettype, cette fonction ici. 53 00:03:34,000 --> 00:03:38,000 >> Notez qu'il n'y a pas de trait de soulignement ou l'espace ou trait d'union ou quelque chose comme ça 54 00:03:38,000 --> 00:03:42,000 séparant les 2 mots, obtenir et taper, juste un mot tout à fait. 55 00:03:42,000 --> 00:03:46,000 Mais qu'est-ce que cela va faire, c'est que si je passe dans une variable pour gettype, 56 00:03:46,000 --> 00:03:51,000 dire $ var ou $ x, 57 00:03:51,000 --> 00:03:55,000 cela va me dire en quelque sorte dans un format de débogage 58 00:03:55,000 --> 00:03:59,000 quel est le nom de ce type est. 59 00:03:59,000 --> 00:04:03,000 Nous allons expérimenter ici. 60 00:04:03,000 --> 00:04:07,000 En particulier, si vous regardez en arrière à la spécification pset 61 00:04:07,000 --> 00:04:11,000 nous avons quelques lignes de code différents ici. 62 00:04:11,000 --> 00:04:16,000 Dans la première ligne de code que nous avons initialiser cette variable, $ var, 63 00:04:16,000 --> 00:04:21,000 être égal à 7, puis nous avons cette ligne printf 64 00:04:21,000 --> 00:04:25,000 qui dit hey, var printf est vide. 65 00:04:25,000 --> 00:04:29,000 Printf est l'une des nombreuses façons dont nous pouvons imprimer des choses en PHP. 66 00:04:29,000 --> 00:04:33,000 Souvent, vous verrez la fonction d'écho utilisé à la place de printf, 67 00:04:33,000 --> 00:04:40,000 printf, mais nous sommes tous familiers d'avoir été le codage en C pour un certain temps. 68 00:04:40,000 --> 00:04:42,000 Qu'est-ce que vous pouvez réellement faire est nous allons voir si les travaux de copier-coller. 69 00:04:42,000 --> 00:04:46,000 Je vais opter pour cette solution. 70 00:04:46,000 --> 00:04:52,000 Nous allons revenir sur l'appareil. 71 00:04:52,000 --> 00:05:00,000 D'accord, et voilà. 72 00:05:00,000 --> 00:05:05,000 Et l'espacement est un peu excentrique, mais on y va. 73 00:05:05,000 --> 00:05:08,000 Nous avons obtenu ce code ici. 74 00:05:08,000 --> 00:05:11,000 >> [Étudiants] Est-ce le style n'est pas bon de le onglet? 75 00:05:11,000 --> 00:05:13,000 Désolé? 76 00:05:13,000 --> 00:05:15,000 [Étudiants] Est-ce classique de l'onglet? 77 00:05:15,000 --> 00:05:21,000 Bon, alors Sam lui demande si c'est convention de la languette ou non. 78 00:05:21,000 --> 00:05:23,000 En général oui. 79 00:05:23,000 --> 00:05:26,000 Dans ce cas, j'ai choisi de ne pas le faire. 80 00:05:26,000 --> 00:05:33,000 Honnêtement, vous verrez des choses différentes parmi les programmeurs différents. 81 00:05:33,000 --> 00:05:40,000 PHP est généralement utilisé souvent en combinaison avec HTML 82 00:05:40,000 --> 00:05:45,000 et d'autres langues, et si parfois l'impression aura l'air un peu funky 83 00:05:45,000 --> 00:05:50,000 si vous tiret dans début balises de PHP. 84 00:05:50,000 --> 00:05:53,000 Cela dépend vraiment. 85 00:05:53,000 --> 00:05:56,000 Dans ce cas, la copie et la pâte ne colle pas aux pattes de pour moi, 86 00:05:56,000 --> 00:06:02,000 mais il n'a certainement, comme vous l'avez dit, le rendre plus clair. 87 00:06:02,000 --> 00:06:06,000 Très bien, si vous enregistrez ce code dans dynamic.php 88 00:06:06,000 --> 00:06:10,000 alors qu'est-ce que vous pouvez faire est de descendre à votre fenêtre de terminal où je suis juste ici 89 00:06:10,000 --> 00:06:17,000 dans gedit, et pour faire l'équivalent de la compilation 90 00:06:17,000 --> 00:06:20,000 en utilisant make puis exécutez votre code en C 91 00:06:20,000 --> 00:06:25,000 tout ce que vous avez à faire avec le fichier PHP est de démarrer l'interpréteur PHP, 92 00:06:25,000 --> 00:06:30,000 qui est un petit programme appelé PHP, 93 00:06:30,000 --> 00:06:35,000 et l'argument que vous donnez à l'interprète est le fichier que vous souhaitez interpréter. 94 00:06:35,000 --> 00:06:40,000 Dans ce cas, dynamic.php. 95 00:06:40,000 --> 00:06:43,000 Oups, où ai-je mis? 96 00:06:43,000 --> 00:06:52,000 Oh, je l'ai mis dans la section 9, et me voici. C'est pourquoi. 97 00:06:52,000 --> 00:06:57,000 >> Maintenant, si je lance à nouveau que 98 00:06:57,000 --> 00:07:02,000 nous voyons que dans mon appel gettype première fonction 99 00:07:02,000 --> 00:07:04,000 var est un nombre entier. 100 00:07:04,000 --> 00:07:12,000 Dans le prochain var est une chaîne, puis dans le troisième var est un booléen. 101 00:07:12,000 --> 00:07:15,000 Ce qui est intéressant à ce sujet est si nous revenir en arrière jusqu'à ce que nous voyons 102 00:07:15,000 --> 00:07:18,000 ce sont des types semblables à celles que nous avons eues en C. 103 00:07:18,000 --> 00:07:22,000 Nous avons eu ints en C. 104 00:07:22,000 --> 00:07:26,000 Nous trions des cordes en ut eu, 105 00:07:26,000 --> 00:07:31,000 si les chaînes ne sont pas d'un type tout à fait légitime en ce sens que 106 00:07:31,000 --> 00:07:37,000 notre chaîne CS50 était vraiment quoi? 107 00:07:37,000 --> 00:07:39,000 Désolé? Missy? 108 00:07:39,000 --> 00:07:41,000 [Missy] Char *. 109 00:07:41,000 --> 00:07:43,000 Ouais, c'est ce char *, nous avons utilisé. 110 00:07:43,000 --> 00:07:47,000 Au tout début du semestre nous avons été en utilisant le type de chaîne, 111 00:07:47,000 --> 00:07:52,000 mais c'était vraiment un char * sous le capot. 112 00:07:52,000 --> 00:07:58,000 On tape défini, alors que dans ces chaînes PHP sont un type réel. 113 00:07:58,000 --> 00:08:07,000 Il n'y a plus de ces trucs de type char *. 114 00:08:07,000 --> 00:08:10,000 >> Vous verrez que nous pouvons faire beaucoup plus de choses avec des cordes 115 00:08:10,000 --> 00:08:14,000 beaucoup plus facilement en PHP que nous ne pourrions en C, 116 00:08:14,000 --> 00:08:17,000 et puis finalement, nous avons ce type booléen, et la grande différence ici, c'est que 117 00:08:17,000 --> 00:08:21,000 si nous défiler vers le bas, nous voyons que le nom de ces types 118 00:08:21,000 --> 00:08:28,000 sont maintenant integer, string, boolean et au lieu d', int et bool 119 00:08:28,000 --> 00:08:31,000 et que vous décrochez différents langages de programmation, 120 00:08:31,000 --> 00:08:36,000 en supposant que à un certain moment dans votre vie vous entrer en contact avec 121 00:08:36,000 --> 00:08:40,000 les différentes vous remarquerez petites manies comme celui-ci 122 00:08:40,000 --> 00:08:44,000 où C appelle ints entiers. 123 00:08:44,000 --> 00:08:46,000 Certains l'appellent entiers. 124 00:08:46,000 --> 00:08:51,000 Il existe d'autres expressions que vous rencontrer. 125 00:08:51,000 --> 00:08:55,000 Big int nous avons vu aujourd'hui dans SQL. 126 00:08:55,000 --> 00:08:59,000 Il ya aussi le numéro, puis bool, booléen, 127 00:08:59,000 --> 00:09:03,000 toutes sortes de différences là. 128 00:09:03,000 --> 00:09:07,000 >> Ce n'est pas très intéressant, mais maintenant, je vais vous donner un peu de temps 129 00:09:07,000 --> 00:09:13,000 si nous effectuer un zoom arrière à travailler à travers cet exercice au bas de la page 3 130 00:09:13,000 --> 00:09:20,000 où il demande quels types correspondent à ces valeurs ici en bas. 131 00:09:20,000 --> 00:09:24,000 Nous avons 3,50. 132 00:09:24,000 --> 00:09:28,000 Nous avons ce qu'il faut ici, ce qui est intéressant. 133 00:09:28,000 --> 00:09:32,000 Nous n'avons pas vu cela avant, mais si vous avez suivi en cours 134 00:09:32,000 --> 00:09:35,000 vous savez probablement déjà ce que c'est. 135 00:09:35,000 --> 00:09:40,000 Ensuite, nous avons ce qui est de ce genre de funky. 136 00:09:40,000 --> 00:09:42,000 Vous le reconnaître. 137 00:09:42,000 --> 00:09:46,000 Qu'est-ce que cela en C? 138 00:09:46,000 --> 00:09:50,000 Sam? Qu'est-ce que cela vous donne en C? 139 00:09:50,000 --> 00:09:54,000 Il serait d'ouvrir un fichier appelé dynamic.php et le rendre lisible. 140 00:09:54,000 --> 00:09:58,000 Oui, et quel serait le type de variable que nous assigner à? Étoile du fichier. >> 141 00:09:58,000 --> 00:10:02,000 Exactement, nous l'affecter à une étoile fichier. 142 00:10:02,000 --> 00:10:08,000 C'est PHP légitime aussi. 143 00:10:08,000 --> 00:10:12,000 Exécutez cela. Voir ce qui se passe quand vous passez dans ce gettype. 144 00:10:12,000 --> 00:10:19,000 Et puis aussi vérifier ce que nulle est, ce qui pourrait être dans PHP. 145 00:10:19,000 --> 00:10:21,000 Je vais vous donner quelques minutes. 146 00:10:21,000 --> 00:10:24,000 Vous pouvez littéralement copier et coller ces valeurs dans, 147 00:10:24,000 --> 00:10:29,000 puis nous ferons une petite visite au hasard sur vous 148 00:10:29,000 --> 00:10:34,000 et de voir ce que tu as. 149 00:10:34,000 --> 00:10:36,000 >> [Étudiants] J'ai une question. << Ouais. 150 00:10:36,000 --> 00:10:40,000 Dans une des conférences David dit il ya quelque chose que vous pouvez mettre en haut de votre fichier 151 00:10:40,000 --> 00:10:43,000 de sorte que vous n'avez pas à taper dans PHP à chaque fois. 152 00:10:43,000 --> 00:10:45,000 Qu'est-ce que c'était? 153 00:10:45,000 --> 00:10:50,000 Il parlait probablement le bang livre, le coup de hachage. 154 00:10:50,000 --> 00:10:57,000 Il s'agit d'une directive que si vous marquez votre fichier comme exécutable 155 00:10:57,000 --> 00:11:01,000 alors qu'est-ce qu'il fait, c'est lorsque vous exécutez le fichier 156 00:11:01,000 --> 00:11:06,000 il vous indiquera le programme shell 157 00:11:06,000 --> 00:11:12,000 d'utiliser l'interpréteur PHP pour interpréter le contenu du fichier. 158 00:11:12,000 --> 00:11:16,000 La question est quelle est cette ligne spéciale 159 00:11:16,000 --> 00:11:20,000 que nous pourrions inclure dans le haut de nos fichiers PHP de ne pas avoir à inclure 160 00:11:20,000 --> 00:11:26,000 cette ligne ou cette commande PHP PHP à chaque fois que nous voulons exécuter le fichier? 161 00:11:26,000 --> 00:11:31,000 Et vous pouvez le faire avec un tas de fichiers différents. 162 00:11:31,000 --> 00:11:37,000 Je crois que cela dépend de l'endroit où le binaire PHP est stockée, 163 00:11:37,000 --> 00:11:43,000 mais souvent usr / bin / php est un bon endroit pour commencer. 164 00:11:43,000 --> 00:11:45,000 Vous pouvez comprendre cela exactement en allant vers le bas à votre appareil 165 00:11:45,000 --> 00:11:50,000 et en tapant sur lequel php. 166 00:11:50,000 --> 00:11:55,000 La commande qui figure sur lorsque vous exécutez binaire 167 00:11:55,000 --> 00:12:01,000 ou une commande où le fichier correspondant est. 168 00:12:01,000 --> 00:12:06,000 Cela me dit que le PHP est vraiment aliasing ce fichier binaire 169 00:12:06,000 --> 00:12:13,000 qui est stocké dans usr / bin, là où une grande partie des binaires du système sont installés. 170 00:12:13,000 --> 00:12:21,000 Par exemple, si je défiler vers le haut vers le haut, maintenant que je l'ai mis #! ligne ici 171 00:12:21,000 --> 00:12:27,000 Je peux faire défiler vers le bas, et je peux essayer de courir 172 00:12:27,000 --> 00:12:35,000 dynamic.php, mais je reçois ce message d'erreur à propos autorisation à refuser, 173 00:12:35,000 --> 00:12:42,000 et ce que cela signifie, c'est que ce fichier n'est pas actuellement donner des autorisations d'exécutables. 174 00:12:42,000 --> 00:12:46,000 Ce n'est pas marqué comme un fichier que quelqu'un puisse fonctionner. 175 00:12:46,000 --> 00:12:52,000 >> Lorsque vous avez exécuté Marque ou Clang et vous avez obtenu un fichier exécutable à partir de l' 176 00:12:52,000 --> 00:12:56,000 le compilateur est assez intelligent pour savoir que bon, je vais construire un exécutable. 177 00:12:56,000 --> 00:13:00,000 Vous voulez sans doute pour l'exécuter, il serait de configurer automatiquement 178 00:13:00,000 --> 00:13:02,000 les autorisations pour vous. 179 00:13:02,000 --> 00:13:06,000 Ce n'est pas le cas, cependant, lorsque vous créez un fichier normal à partir de zéro, 180 00:13:06,000 --> 00:13:13,000 la raison étant généralement vous ne voulez pas avoir n'importe quel fichier sur votre système exécutable, 181 00:13:13,000 --> 00:13:15,000 si vous avez réellement à y aller et le faire manuellement. 182 00:13:15,000 --> 00:13:22,000 La meilleure façon de le faire est avec la commande chmod, 183 00:13:22,000 --> 00:13:28,000 et chmod + x dit additionner le bit exécutable 184 00:13:28,000 --> 00:13:31,000 parce qu'il est le bit de lecture, le bit d'écriture et le bit exécutable, 185 00:13:31,000 --> 00:13:35,000 r, w et x, 186 00:13:35,000 --> 00:13:39,000 et en disant chmod + x pour allumer le bit exécutable 187 00:13:39,000 --> 00:13:46,000 car alors le fichier que nous précisons, qui dans ce cas sera dynamic.php. 188 00:13:46,000 --> 00:13:49,000 >> [Étudiants] Est-ce que allumée pour tout le monde? 189 00:13:49,000 --> 00:13:52,000 Nous allons vérifier cela, alors comment aurais-je vérifier les autorisations? 190 00:13:52,000 --> 00:13:54,000 Savez-vous comment je pourrais vérifier les permissions d'un fichier? 191 00:13:54,000 --> 00:13:56,000 [Réponse de l'élève inaudible] 192 00:13:56,000 --> 00:13:58,000 Désolé? >> [Étudiants] XSD. 193 00:13:58,000 --> 00:14:03,000 XSD nous donne le fichier de hacks. 194 00:14:03,000 --> 00:14:09,000 Listant tous les fichiers,-l, va me montrer tous les fichiers dans mon répertoire 195 00:14:09,000 --> 00:14:13,000 en quelque sorte dans leur longue liste longue, et si nous voyons ici que 196 00:14:13,000 --> 00:14:17,000 ce fichier dynamic.php 197 00:14:17,000 --> 00:14:23,000 Dernière modification de Novembre 5ème à 4:21 PM. 198 00:14:23,000 --> 00:14:26,000 Le propriétaire de ce fichier est jharvard. 199 00:14:26,000 --> 00:14:28,000 C'est l'utilisateur qui est connecté po 200 00:14:28,000 --> 00:14:31,000 C'est à l'utilisateur, je travaille en tant que, 201 00:14:31,000 --> 00:14:36,000 et si vous êtes aussi dans l'appareil, vous êtes également travaillé comme jharvard utilisateur. 202 00:14:36,000 --> 00:14:38,000 Vous êtes dans le groupe des étudiants, 203 00:14:38,000 --> 00:14:44,000 et ce sont des choses que vous verrez assez souvent. 204 00:14:44,000 --> 00:14:47,000 >> Nous pouvons entrer dans beaucoup de détails ici, 205 00:14:47,000 --> 00:14:50,000 mais pour la plupart ce que vous voulez regarder quand vous cherchez à voir 206 00:14:50,000 --> 00:14:55,000 si oui ou non un fichier exécutable est essentiellement 207 00:14:55,000 --> 00:14:58,000 l'utilisateur qui possède le fichier, le propriétaire, 208 00:14:58,000 --> 00:15:03,000 si ce jharvard, puis nous avons 209 00:15:03,000 --> 00:15:07,000 les bits de permissions plus ici sur la gauche, 210 00:15:07,000 --> 00:15:13,000 et la façon de lire ce que le dernier bit 211 00:15:13,000 --> 00:15:18,000 est généralement utilisé pour le marquage ou au non-moins dans ce cas 212 00:15:18,000 --> 00:15:21,000 ce dernier morceau sera souvent mis à annonce pour indiquer 213 00:15:21,000 --> 00:15:24,000 que le fichier est un répertoire, et pas seulement un fichier normal. 214 00:15:24,000 --> 00:15:28,000 Puis les 3 bits suivants, ici 215 00:15:28,000 --> 00:15:34,000 déterminer les autorisations que le propriétaire du fichier dispose, 216 00:15:34,000 --> 00:15:38,000 alors dans ce cas jharvard, en tant que propriétaire du fichier, peut lire et écrire dans ce fichier, 217 00:15:38,000 --> 00:15:42,000 mais il ya un tableau de bord en disant que jharvard ne peut pas exécuter ce fichier. 218 00:15:42,000 --> 00:15:46,000 Les 3 bits suivants sont pour le groupe, c'est donc le groupe d'étudiants, 219 00:15:46,000 --> 00:15:49,000 donc si il y avait plusieurs utilisateurs sur mon appareil, 220 00:15:49,000 --> 00:15:52,000 et nous avons eu plusieurs utilisateurs dans le cadre du groupe d'étudiants, 221 00:15:52,000 --> 00:15:55,000 alors ils peuvent tous lire ce fichier, mais ils ne peuvent pas écrire, 222 00:15:55,000 --> 00:15:59,000 et de même quelqu'un d'autre, le monde 223 00:15:59,000 --> 00:16:01,000 ne peut lire ce fichier ainsi. 224 00:16:01,000 --> 00:16:03,000 Il ya une bonne, longue writeup à ce sujet, 225 00:16:03,000 --> 00:16:05,000 de sorte que vous pouvez lire en ligne. 226 00:16:05,000 --> 00:16:10,000 Dans la spécification problème posé nous allons dans cette question plus en détail. 227 00:16:10,000 --> 00:16:12,000 >> [Étudiants] Est-ce que 218 se référant au monde? 228 00:16:12,000 --> 00:16:17,000 Le 218 est-du haut de ma tête j'en oublie, 229 00:16:17,000 --> 00:16:20,000 mais non. 230 00:16:20,000 --> 00:16:29,000 Voyons voir. Je suis d'obturation dessus en ce moment. 231 00:16:29,000 --> 00:16:32,000 Retour à ce que nous allions faire avec cette chmod + x 232 00:16:32,000 --> 00:16:37,000 où nous voulions donner des autorisations exécutables dynamic.php, 233 00:16:37,000 --> 00:16:40,000 et la question était de savoir si ce serait donner des autorisations exécutables à tout le monde 234 00:16:40,000 --> 00:16:44,000 ou simplement jharvard, et nous pouvons le voir en 235 00:16:44,000 --> 00:16:48,000 exécutant les commandes et en tapant ls-l, 236 00:16:48,000 --> 00:16:51,000 et maintenant nous voyons qu'il est marqué comme exécutable. 237 00:16:51,000 --> 00:16:54,000 Vous voyez qu'il ya eu un changement de couleur. 238 00:16:54,000 --> 00:16:57,000 Maintenant dynamic.php est inscrite en vert, 239 00:16:57,000 --> 00:17:01,000 et il semble que la réponse à la question est ce que, Charlotte? 240 00:17:01,000 --> 00:17:04,000 [Charlotte] Uniquement jharvard. >> Seulement jharvard, ouais. 241 00:17:04,000 --> 00:17:08,000 >> Si nous voulions tourner le bit d'exécution pour tout le monde sur 242 00:17:08,000 --> 00:17:10,000 comment pourrions-nous le faire? 243 00:17:10,000 --> 00:17:13,000 Toute pensée? >> A + x? 244 00:17:13,000 --> 00:17:15,000 Oui, exactement. 245 00:17:15,000 --> 00:17:23,000 Charlotte a dit que nous pouvons faire chmod + x d'un des dynamic.php, 246 00:17:23,000 --> 00:17:26,000 et maintenant, si nous courons ls-l, nous voyons que les bits exécutables 247 00:17:26,000 --> 00:17:30,000 sont en effet mis en marche pour tout le monde. 248 00:17:30,000 --> 00:17:37,000 Et vous pouvez faire l'inverse de cela, de sorte que vous pouvez le désactiver à tout le monde 249 00:17:37,000 --> 00:17:41,000 en utilisant moins. 250 00:17:41,000 --> 00:17:46,000 Maintenant, il est désactivé, et maintenant nous pouvons le rallumer pour jharvard 251 00:17:46,000 --> 00:17:52,000 de sorte que nous pouvons vraiment le faire maintenant, 252 00:17:52,000 --> 00:17:58,000 et maintenant vous voyez quand nous courons le code de cette spéciale #! ligne vers le haut, 253 00:17:58,000 --> 00:18:04,000 #! ligne, a déclaré à la coquille, 254 00:18:04,000 --> 00:18:08,000 dit notre terminal hey, lorsque ce fichier est exécuté, 255 00:18:08,000 --> 00:18:14,000 utiliser / usr / bin / php pour interpréter ce fichier 256 00:18:14,000 --> 00:18:20,000 puis imprimez la sortie. 257 00:18:20,000 --> 00:18:22,000 [Question étudiant inaudible] 258 00:18:22,000 --> 00:18:25,000 Bien sûr, permettez-moi de revenir en arrière vers le haut. Juste comme ça. 259 00:18:25,000 --> 00:18:36,000 Vous verrez tous ces directives commencer par ce livre, puis le point d'exclamation, 260 00:18:36,000 --> 00:18:39,000 parfois appelé tout le toutim, bang hachage. 261 00:18:39,000 --> 00:18:48,000 >> [Étudiants] Comment pouvons-nous le faire fonctionner avec dynamic.php php avant de le rendre exécutable? 262 00:18:48,000 --> 00:18:55,000 La question était de savoir comment peut-on exécuter ce en utilisant le binaire PHP 263 00:18:55,000 --> 00:18:58,000 tandis que dynamic.php n'est pas exécutable? 264 00:18:58,000 --> 00:19:01,000 C'est super important parce que c'est exactement la façon dont 265 00:19:01,000 --> 00:19:06,000 il va travailler quand vous écrivez 7 set problème. 266 00:19:06,000 --> 00:19:09,000 La plupart des fichiers PHP de temps ne sont pas directement exécutable. 267 00:19:09,000 --> 00:19:14,000 La façon dont fonctionne c'est parce que c'est le binaire PHP est exécutable. 268 00:19:14,000 --> 00:19:16,000 L'interprète est la chose qui en cours d'exécution, 269 00:19:16,000 --> 00:19:20,000 et si ce qu'il fait est littéralement siphonage dans tout le contenu 270 00:19:20,000 --> 00:19:25,000 de notre dossier et dynamic.php ligne par ligne va 271 00:19:25,000 --> 00:19:29,000 et l'exécution de ces commandes, il est donc en utilisant notre fichier PHP 272 00:19:29,000 --> 00:19:31,000 comme une liste d'instructions. 273 00:19:31,000 --> 00:19:36,000 Ce n'est pas l'exécuter directement. 274 00:19:36,000 --> 00:19:40,000 C'est là que nous disons que ces fichiers sont interprétés lors de l'exécution. 275 00:19:40,000 --> 00:19:46,000 C'est un langage moment de l'exécution au lieu de quelque chose qui est déterminée au moment de la compilation, 276 00:19:46,000 --> 00:19:49,000 pas un langage compilé comme C 277 00:19:49,000 --> 00:19:54,000 >> Y at-il un moyen d'obtenir un langage moment de l'exécution d'agir comme si c'était une langue moment de la compilation, 278 00:19:54,000 --> 00:19:58,000 comme si vous avez tous fait la course sur le serveur 279 00:19:58,000 --> 00:20:00,000 plutôt que, vous savez ce que je veux dire? 280 00:20:00,000 --> 00:20:04,000 Oui, la question est donc 281 00:20:04,000 --> 00:20:11,000 y at-il un moyen d'obtenir langues de l'exécution pour agir plus comme des types de compilation de langues? 282 00:20:11,000 --> 00:20:18,000 Et il ya, je veux dire, c'est un domaine de recherche actif pour un grand nombre de ces entreprises. 283 00:20:18,000 --> 00:20:22,000 Je crois que Facebook a fait beaucoup de travail avec PHP 284 00:20:22,000 --> 00:20:25,000 et le compiler en bas, le rendant plus rapide, de l'optimiser 285 00:20:25,000 --> 00:20:29,000 depuis leur site est construit sur PHP. 286 00:20:29,000 --> 00:20:34,000 Si vous avez suivi node.js à tous, 287 00:20:34,000 --> 00:20:40,000 qui est une sorte d'un interpréteur JavaScript 288 00:20:40,000 --> 00:20:44,000 d'être capable d'exécuter JavaScript dehors du navigateur, à l'extérieur de votre navigateur, 289 00:20:44,000 --> 00:20:47,000 parce que traditionnellement JavaScript voudrais juste courir à l'intérieur de Firefox ou Chrome, 290 00:20:47,000 --> 00:20:52,000 et qu'il serait utilisé pour faire des animations fraîches arriver sur une page Web 291 00:20:52,000 --> 00:20:55,000 et faire de votre page web dynamique. 292 00:20:55,000 --> 00:20:59,000 Qui a été construit sur un terrain de travail que Google a fait 293 00:20:59,000 --> 00:21:03,000 de faire activer JavaScript et C + + 294 00:21:03,000 --> 00:21:09,000 lier ensemble, de sorte qu'il ya beaucoup de recherche active d' 295 00:21:09,000 --> 00:21:13,000 obtenir ces langues d'interagir et de les optimiser, 296 00:21:13,000 --> 00:21:17,000 principalement parce que plusieurs personnes puissent coder en PHP et JavaScript 297 00:21:17,000 --> 00:21:19,000 parce que c'est beaucoup plus facile. 298 00:21:19,000 --> 00:21:21,000 C'est beaucoup plus agréable. Vous n'avez pas les pointeurs. 299 00:21:21,000 --> 00:21:27,000 Vous n'avez pas les types qui circulent. 300 00:21:27,000 --> 00:21:31,000 Ils voulaient profiter des avantages de ces langues de compilation 301 00:21:31,000 --> 00:21:36,000 avec toute la vérification du type et de la vitesse et de la diminution de l'utilisation de la mémoire et que tous 302 00:21:36,000 --> 00:21:42,000 tout en conservant la flexibilité et la facilité d'utilisation de ces plus récents. 303 00:21:42,000 --> 00:21:46,000 >> Retour à notre plan initial de l'attaque. 304 00:21:46,000 --> 00:21:50,000 Nous avons eu un peu de ces questions ici, dans notre spec problème posé. 305 00:21:50,000 --> 00:21:54,000 Passons en revue les très rapidement, et nous allons faire le tour de la salle. 306 00:21:54,000 --> 00:21:59,000 Charlotte, de quel type est de 3,50? 307 00:21:59,000 --> 00:22:01,000 [Charlotte] C'est un double. >> C'est un double. 308 00:22:01,000 --> 00:22:03,000 Jimmy, qu'est-ce que le prochain? >> Un tableau. 309 00:22:03,000 --> 00:22:09,000 Un tableau, impressionnant, et Jared, ce qui est la fonction fopen? 310 00:22:09,000 --> 00:22:11,000 [Jared] Il s'agit d'une ressource. >> C'est une ressource. 311 00:22:11,000 --> 00:22:15,000 C'est une sorte de nouveau, pas une étoile fichier, pas un fichier. 312 00:22:15,000 --> 00:22:19,000 Il s'agit d'une ressource est du type en PHP, 313 00:22:19,000 --> 00:22:24,000 et je suis désolé, Ella, le dernier null, c'est quoi? 314 00:22:24,000 --> 00:22:26,000 Null. 315 00:22:26,000 --> 00:22:28,000 Null, comment est-il précisé en PHP? >> Le même manière. 316 00:22:28,000 --> 00:22:30,000 De la même façon, les capitales? >> Oui. 317 00:22:30,000 --> 00:22:33,000 Ouais, d'accord. 318 00:22:33,000 --> 00:22:35,000 Ici nous allons, nous avons eu une chambre double, nous avons un tableau, 319 00:22:35,000 --> 00:22:41,000 nous avons une ressource, puis nous avons nulle. 320 00:22:41,000 --> 00:22:48,000 Voyons maintenant avez-vous vu- 321 00:22:48,000 --> 00:22:51,000 Voyons, maintenant, je suppose que ce que je veux faire est de tirer vers le haut 322 00:22:51,000 --> 00:22:56,000 cette page web ici, ce php.net / manuel, 323 00:22:56,000 --> 00:23:01,000 donc si vous les gars copier cela et ouvrir un navigateur Web. 324 00:23:01,000 --> 00:23:07,000 Je vais remonter Chrome, mettez po 325 00:23:07,000 --> 00:23:10,000 Je veux vous montrer non seulement parce 326 00:23:10,000 --> 00:23:13,000 nous pouvons parler toute la journée sur les types et tous ces trucs fun 327 00:23:13,000 --> 00:23:19,000 mais plutôt parce que c'est le manuel PHP, 328 00:23:19,000 --> 00:23:23,000 et il ya beaucoup de programmeurs PHP là-bas. 329 00:23:23,000 --> 00:23:26,000 Il ya beaucoup de sites web en PHP là-bas, 330 00:23:26,000 --> 00:23:31,000 et, par conséquent, il ya beaucoup de documentation sur PHP, 331 00:23:31,000 --> 00:23:36,000 et le manuel, ce php.net, est un très bon endroit où aller 332 00:23:36,000 --> 00:23:43,000 chaque fois que vous rencontrez des questions sur ce qui est la meilleure façon de faire X en PHP 333 00:23:43,000 --> 00:23:45,000 ou qu'est-ce que la fonction ressembler? 334 00:23:45,000 --> 00:23:49,000 Tout type de se familiariser avec ce qui ressemble à ce que 335 00:23:49,000 --> 00:23:54,000 vous viendrez souvent ici, un peu de problème posé 7. 336 00:23:54,000 --> 00:23:57,000 >> Si vous finissez par faire un projet final qui utilise PHP 337 00:23:57,000 --> 00:24:04,000 ce sera un endroit où vous allez devenir connaît très bien. 338 00:24:04,000 --> 00:24:09,000 Souvent, la façon dont les gens le faire, c'est qu'ils utilisent Google pour rechercher sur le site, 339 00:24:09,000 --> 00:24:16,000 et ils n'ont pas utiliser la boîte de recherche qui est ici en haut à droite, qui est une sorte de minuscule. 340 00:24:16,000 --> 00:24:19,000 Si vous googler autour de quelque chose à voir avec PHP et que vous voyez 341 00:24:19,000 --> 00:24:24,000 l'un des liens manuels pop up vous pouvez généralement compter sur cette 342 00:24:24,000 --> 00:24:31,000 comme une ressource assez bonne. 343 00:24:31,000 --> 00:24:34,000 Génial, tellement hors de ces types, juste par curiosité, 344 00:24:34,000 --> 00:24:37,000 ceux qui n'ont pas vu nous? 345 00:24:37,000 --> 00:24:40,000 Tout ce que nous n'avons pas vu ici? 346 00:24:40,000 --> 00:24:44,000 [Étudiants] de ressources. >> Nous avons vu des ressources à l'appel fopen. 347 00:24:44,000 --> 00:24:48,000 [Étudiants]. Objets Objets >> nous n'avons pas vu, c'est sûr. 348 00:24:48,000 --> 00:24:51,000 Rappels, nous n'avons pas vu. 349 00:24:51,000 --> 00:24:54,000 Il ya certaines de ces pseudo-types. 350 00:24:54,000 --> 00:24:57,000 Nous avons certainement ne voyait entier et double. 351 00:24:57,000 --> 00:25:01,000 Nous n'avons pas vu quelques-uns des autres, donc si l'on clique sur des entiers 352 00:25:01,000 --> 00:25:08,000 nous pouvons voir ce qu'il ya des autres entiers qu'ils ont ici? 353 00:25:08,000 --> 00:25:11,000 Sont-ils tous si-integer, integer, integer. 354 00:25:11,000 --> 00:25:14,000 Certaines langues ont des grands types d'entiers, 355 00:25:14,000 --> 00:25:23,000 comme nous l'avons vu sur MySQL aujourd'hui il y avait int puis int grand. 356 00:25:23,000 --> 00:25:25,000 Cool. 357 00:25:25,000 --> 00:25:28,000 >> Donc, manuel PHP. 358 00:25:28,000 --> 00:25:37,000 Revenons à nos spécifications problème posé, et nous allons maintenant faire défiler la page 4. 359 00:25:37,000 --> 00:25:41,000 Une des choses qui arrive quand vous obtenez ces langues 360 00:25:41,000 --> 00:25:49,000 qui n'ont pas ce typage statique, de sorte que ces langues où vous devez déclarer 361 00:25:49,000 --> 00:25:52,000 le type d'une variable de l'avant jusqu'à 362 00:25:52,000 --> 00:26:00,000 est que vous obtenez lorsque vous pourriez commencer à avoir des variables de types différents 363 00:26:00,000 --> 00:26:04,000 interagissant les uns avec les autres, 364 00:26:04,000 --> 00:26:09,000 et PHP fait cette chose où il essaie de faire 365 00:26:09,000 --> 00:26:13,000 ce qu'il considère être la chose la plus sensée à faire 366 00:26:13,000 --> 00:26:18,000 quand on a 2 types d'interagir les uns avec les autres. 367 00:26:18,000 --> 00:26:24,000 Par exemple, si nous regardons ces lignes de code ici 368 00:26:24,000 --> 00:26:29,000 vous voyez que nous avons ce qu'il se passe quand 369 00:26:29,000 --> 00:26:38,000 nous essayons et ajoutez la chaîne 1 à l'entier 2. 370 00:26:38,000 --> 00:26:41,000 Qu'est-ce qui se passe si nous essayer et d'ajouter une chaîne qui n'est pas une valeur numérique 371 00:26:41,000 --> 00:26:48,000 mais plutôt des personnages réels, CS au nombre 50? 372 00:26:48,000 --> 00:26:51,000 Ensuite, nous verrons là quelque chose de différent qui se passe, où 373 00:26:51,000 --> 00:26:56,000 au lieu d'ajouter une corde à un certain nombre, nous ajouterons un nombre en une chaîne, 374 00:26:56,000 --> 00:27:00,000 et ainsi de suite et ainsi de suite jusqu'au point où nous obtenons 375 00:27:00,000 --> 00:27:05,000 une sorte de trucs bizarres ici, où nous avons 7 + vrai. 376 00:27:05,000 --> 00:27:09,000 Qu'est-ce que ça peut bien vouloir dire? 377 00:27:09,000 --> 00:27:19,000 >> Si vous les gars aller de l'avant et coller une partie de ce code dans votre appareil. 378 00:27:19,000 --> 00:27:27,000 Vous pouvez le garder dans dynamic.php. 379 00:27:27,000 --> 00:27:30,000 Nous allons voir ce qui se passe. 380 00:27:41,000 --> 00:27:43,000 [Étudiants] Il suffit d'utiliser print, printf pas? 381 00:27:43,000 --> 00:27:52,000 Ouais, et alors vous verrez que d'impression est également une fonction valide pour l'impression en PHP. 382 00:27:52,000 --> 00:27:54,000 Il existe de nombreuses façons de le faire. 383 00:27:54,000 --> 00:27:58,000 Nous allons voir avec un couple des exemples plus tard une fois que nous commençons à parler 384 00:27:58,000 --> 00:28:02,000 sur le problème particulier que nous allons écrire 385 00:28:02,000 --> 00:28:06,000 et puis le problème concentrations que nous allons écrire 386 00:28:06,000 --> 00:28:09,000 que même si nous avons fopen et fclose 387 00:28:09,000 --> 00:28:15,000 ce n'est souvent pas le moyen le plus simple de lire le contenu d'un fichier. 388 00:28:15,000 --> 00:28:21,000 PHP dispose d'un grand nombre de ces survivances C-like. 389 00:28:21,000 --> 00:28:28,000 [Étudiants] Lorsque je mets dans les 6 de ces choses que je ne obtenir un certain nombre comme une sortie. 390 00:28:28,000 --> 00:28:36,000 [Nate H.] Lorsque vous mettez en tout 6 de ces choses. 391 00:28:36,000 --> 00:28:39,000 Voyons est-ce parce que c'est peut-être- 392 00:28:39,000 --> 00:28:46,000 une chose, c'est que ces appels d'impression ne sont pas terminées à la fin avec de nouvelles lignes. 393 00:28:46,000 --> 00:28:49,000 Il ya aucune nouvelle ligne séparant chacun de ces appels d'impression, 394 00:28:49,000 --> 00:28:51,000 alors peut-être vous en achetez une grand nombre, 395 00:28:51,000 --> 00:28:58,000 et il est vraiment juste amalgame de caractères de nouvelle ligne. 396 00:28:58,000 --> 00:29:00,000 [Étudiants] Bon, comment puis-je m'assurer- 397 00:29:00,000 --> 00:29:03,000 Eh bien, il ya un tas de façons différentes. 398 00:29:03,000 --> 00:29:06,000 Vous pouvez mettre manuellement par le tirage d'un caractère de nouvelle ligne, 399 00:29:06,000 --> 00:29:09,000 l'écho d'un caractère de nouvelle ligne, 400 00:29:09,000 --> 00:29:12,000 imprimer de la nouvelle ligne. 401 00:29:12,000 --> 00:29:16,000 [Étudiants] Donc écho est la même chose que printf? 402 00:29:16,000 --> 00:29:21,000 >> Printf est comme printf 403 00:29:21,000 --> 00:29:24,000 où vous imprimez une chaîne formatée. 404 00:29:24,000 --> 00:29:32,000 Vous n'êtes approvisionnant la chaîne de format, puis toutes les variables d'espace réservé. 405 00:29:32,000 --> 00:29:39,000 Il ya souvent quelque chose qui n'est pas utilisé- 406 00:29:39,000 --> 00:29:42,000 Voyons voir, comme un avertissement, 407 00:29:42,000 --> 00:29:48,000 Je suis moins familier avec PHP que je suis avec d'autres langages du web, 408 00:29:48,000 --> 00:29:53,000 et quand je l'ai programmé en PHP, je n'utilisent généralement pas printf 409 00:29:53,000 --> 00:29:59,000 parce que je trouve plus rapide d'utiliser les capacités d'interpolation de chaîne qui l'a, 410 00:29:59,000 --> 00:30:04,000 que nous allons entrer et je vais vous montrer dans un instant, 411 00:30:04,000 --> 00:30:08,000 alors qu'en C, nous avons sorte de faire cette chose hacky pour le faire imprimer correctement. 412 00:30:08,000 --> 00:30:16,000 Vous pouvez effectivement mettre des variables directement dans des chaînes en PHP. 413 00:30:16,000 --> 00:30:22,000 Printf est du genre trop long pour ce que je fais d'habitude. Oui, Ella. 414 00:30:22,000 --> 00:30:25,000 [Ella] En général, si vous obtenez une erreur d'analyse que ça veut dire- 415 00:30:25,000 --> 00:30:30,000 comme sur C, il ne vous dira exactement où l'erreur est et ce qu'elle est, 416 00:30:30,000 --> 00:30:34,000 ne signifie pas pour que regarder à travers votre code entier et le comprendre? 417 00:30:34,000 --> 00:30:39,000 Il est généralement plus ciblée que cela. 418 00:30:39,000 --> 00:30:48,000 Je pense que dans ce cas, il était un peu hors, 419 00:30:48,000 --> 00:30:51,000 donc je pense que dans ce cas, il nous manquait un point-virgule. 420 00:30:51,000 --> 00:30:54,000 Il a essayé de donner un sens à tout, 421 00:30:54,000 --> 00:30:57,000 si semblable à ces langages interprétés, l'interprète va essayer 422 00:30:57,000 --> 00:31:01,000 et faire de son mieux pour que tout fonctionne correctement. 423 00:31:01,000 --> 00:31:04,000 >> Vous verrez, par exemple, en JavaScript 424 00:31:04,000 --> 00:31:10,000 Vous serez souvent en ligne des déclarations d'extrémité avec un point-virgule comme ils le font en PHP, 425 00:31:10,000 --> 00:31:13,000 comme ils le font en C. 426 00:31:13,000 --> 00:31:15,000 En JavaScript quelques-uns des interpréteurs JavaScript 427 00:31:15,000 --> 00:31:20,000 dans un grand nombre de navigateurs mettra en points-virgules pour vous 428 00:31:20,000 --> 00:31:23,000 s'il vous arrive d'être leur disparition. 429 00:31:23,000 --> 00:31:29,000 Ils vont tenter de répondre pendant un certain laisser-aller de votre part. 430 00:31:29,000 --> 00:31:34,000 C'est là que ça pourrait être d'essayer et d'essayer et d'essayer de faire fonctionner les choses, 431 00:31:34,000 --> 00:31:36,000 et puis finalement il arrive à un point où il est dit d'accord, 432 00:31:36,000 --> 00:31:38,000 Je ne peux pas faire fonctionner les choses pour renflouer, et c'est là que vous aurez un numéro de ligne 433 00:31:38,000 --> 00:31:44,000 qui pourrait sembler un peu hors de l'endroit exact. 434 00:31:44,000 --> 00:31:47,000 Ok, nous allons donc passer par ce très rapidement. 435 00:31:47,000 --> 00:31:50,000 Nous nous sommes quittés avec Ella, nous allons donc passer à Missy, 436 00:31:50,000 --> 00:31:54,000 et Missy, qu'est-ce tirage de corde 1 plus le nombre 2, vous donner? 437 00:31:54,000 --> 00:31:56,000 [Missy] 3. >> 3. 438 00:31:56,000 --> 00:31:59,000 Est-ce logique? En quelque sorte? 439 00:31:59,000 --> 00:32:02,000 Est-il vous donner un chiffre? Elle vous donne une chaîne? 440 00:32:02,000 --> 00:32:05,000 [Missy] Un certain nombre. >> C'est un nombre. 441 00:32:05,000 --> 00:32:09,000 Mais c'est de l'imprimer, donc ça va vous donner une sorte de chaîne. 442 00:32:09,000 --> 00:32:12,000 >> Une chose que nous pouvons faire pour vérifier cela 443 00:32:12,000 --> 00:32:21,000 est de savoir si nous faisons $ var = 1 + 2 444 00:32:21,000 --> 00:32:28,000 et alors nous disons écho de gettype, 445 00:32:28,000 --> 00:32:33,000 Nous sommes donc en utilisant un troisième type d'impression ici. 446 00:32:33,000 --> 00:32:39,000 Maintenant, nous pouvons voir ce qui se passe ici. 447 00:32:39,000 --> 00:32:42,000 Voici ce que nous avons est nous avons eu un nombre entier de là. 448 00:32:42,000 --> 00:32:45,000 Même si nous avons ajouté cette chaîne en nombre, 449 00:32:45,000 --> 00:32:48,000 nous n'avons pas une chaîne hors de lui, tout comme Missy dit. 450 00:32:48,000 --> 00:32:52,000 Nous recevions un nombre entier. 451 00:32:52,000 --> 00:32:57,000 Bon, voyons voir, next up, Kevin. 452 00:32:57,000 --> 00:32:59,000 CS + 50? >> [Kevin] 50. 453 00:32:59,000 --> 00:33:02,000 [Nate H.] 50. Est-ce logique? 454 00:33:02,000 --> 00:33:04,000 [Kevin] Ouais. 455 00:33:04,000 --> 00:33:06,000 [Nate H.] Pourquoi? Pourquoi faut-il un sens pour vous? 456 00:33:06,000 --> 00:33:11,000 [Kevin] Parce que c'est juste avoir la chaîne, ayant une valeur nulle nombre. 457 00:33:11,000 --> 00:33:16,000 Ouais, génial. 458 00:33:16,000 --> 00:33:20,000 Genre de situations ambiguës, mais il est bon de savoir ce qui se passe. 459 00:33:20,000 --> 00:33:25,000 Stella, ce qui arrive ensuite avec le numéro 1 + string 2? 460 00:33:25,000 --> 00:33:27,000 [Stella] 3. >> 3 fois. 461 00:33:27,000 --> 00:33:30,000 Et dans ce cas, pouvons-nous obtenir une chaîne ou un nombre? 462 00:33:30,000 --> 00:33:36,000 >> Nous allons opter pour cette solution. 463 00:33:36,000 --> 00:33:43,000 Tout le monde plus vite que moi d'obtenir la réponse? Charlotte? 464 00:33:43,000 --> 00:33:46,000 Oh, je didn't-bien, nous allons voir, nous allons faire la même chose 465 00:33:46,000 --> 00:33:49,000 où nous avons un nombre plus une ficelle, et nous allons faire l'écho de la nature, 466 00:33:49,000 --> 00:33:51,000 voir ce que nous obtenons. 467 00:33:51,000 --> 00:33:55,000 Nous recevons aussi un entier. 468 00:33:55,000 --> 00:33:58,000 Il n'est pas question que l'on est de la chaîne, dont l'un est le nombre. 469 00:33:58,000 --> 00:34:00,000 Nous allons encore pour obtenir un nombre entier. 470 00:34:00,000 --> 00:34:04,000 Il va continuer à faire ce que nous pourrions nous attendre. 471 00:34:04,000 --> 00:34:09,000 D'accord, Sam, qu'est environ 90 + 9 bouteilles de bière sur le mur? 472 00:34:09,000 --> 00:34:12,000 [Sam] 99. >> 99. 473 00:34:12,000 --> 00:34:15,000 Pas de bouteilles de bière sur le mur, cependant. 474 00:34:15,000 --> 00:34:17,000 Il nous donne des informations un peu plus sur ce qui se passe. 475 00:34:17,000 --> 00:34:21,000 [Sam] Si vous aviez écrit 9 en lettres 476 00:34:21,000 --> 00:34:23,000 alors vous avez 90, non? 477 00:34:23,000 --> 00:34:26,000 [Nate H.] Ouais. 478 00:34:26,000 --> 00:34:30,000 La question était de savoir si nous avions écrit 9 sur la N-I-N-E 479 00:34:30,000 --> 00:34:34,000 aurions-nous eu 99 ou 90? 480 00:34:34,000 --> 00:34:38,000 Nous obtiendrions 90. 481 00:34:38,000 --> 00:34:42,000 Il est littéralement juste à la recherche de caractères numériques. 482 00:34:42,000 --> 00:34:46,000 Ce n'est pas assez intelligent pour reconnaître les mots nombre et ce genre de choses. Oui. 483 00:34:46,000 --> 00:34:48,000 >> [Étudiants] Y at-il une chose telle que transtypage en PHP? 484 00:34:48,000 --> 00:34:54,000 Il ya, et c'est exactement la façon dont vous le feriez dans C. 485 00:34:54,000 --> 00:34:56,000 Qu'en est-10/7, Charlotte? 486 00:34:56,000 --> 00:34:58,000 [Charlotte] 1,4285. 487 00:34:58,000 --> 00:35:01,000 [Nate H.] Ouais, et alors peut-être surprenant à ce sujet? 488 00:35:01,000 --> 00:35:04,000 Qu'arriverait-il si vous avez fait ce même genre de chose en C, 489 00:35:04,000 --> 00:35:06,000 si vous avez 10/7 en C? 490 00:35:06,000 --> 00:35:08,000 [Charlotte] Il ne vous donne-selon la façon dont vous typecasted je suppose 491 00:35:08,000 --> 00:35:12,000 cela vous donnerait un nombre limité de chiffres après la virgule. 492 00:35:12,000 --> 00:35:16,000 Ouais, donc un nombre limité de chiffres après la virgule. 493 00:35:16,000 --> 00:35:21,000 Quoi d'autre pourrait être serait-il-vous donner tous les chiffres après la virgule? 494 00:35:21,000 --> 00:35:28,000 Souvent pas, à nouveau, selon la façon dont vous le transtypage 495 00:35:28,000 --> 00:35:31,000 il peut ou ne peut le convertir en un nombre à virgule flottante. 496 00:35:31,000 --> 00:35:35,000 Ici, il était assez jolie qu'il a fait. 497 00:35:35,000 --> 00:35:40,000 Si nous avions montré ce que vous en arrière quand nous avons commencé à faire ce genre de choses dans C 498 00:35:40,000 --> 00:35:44,000 il aurait probablement fait sens un peu plus 499 00:35:44,000 --> 00:35:48,000 qu'il ne fait pas que passer à 1. 500 00:35:48,000 --> 00:35:51,000 Et puis finalement, Jamie, qu'en est-il vrai 7 +? 501 00:35:51,000 --> 00:35:53,000 [Jamie] 8. >> 8. 502 00:35:53,000 --> 00:35:56,000 Qu'est-ce que ça veut dire? 503 00:35:56,000 --> 00:35:58,000 Je suppose que cela donne juste true, la valeur de 1. 504 00:35:58,000 --> 00:36:01,000 Ouais. Qu'advient-il si nous changeons que la valeur false? 505 00:36:01,000 --> 00:36:04,000 [Étudiants] 7. 506 00:36:04,000 --> 00:36:09,000 Ouais, donc n'oubliez pas que nous parlons de ces valeurs binaires, 507 00:36:09,000 --> 00:36:12,000 1 étant activé, 0 étant éteint? 508 00:36:12,000 --> 00:36:17,000 Maintenant, nous avons vrai est de 1, 0 est faux, 509 00:36:17,000 --> 00:36:21,000 et vous n'auriez pas vu cela dans les exemples C que nous avons fait ce semestre passé, 510 00:36:21,000 --> 00:36:27,000 mais, historiquement, le type bool en C n'a pas été un type réel, 511 00:36:27,000 --> 00:36:32,000 afin que les gens ont utilisé 0 et 1 à la place du vrai et du faux. 512 00:36:32,000 --> 00:36:35,000 Il s'agit d'une manifestation de cela. 513 00:36:35,000 --> 00:36:39,000 >> Ok, donc une part importante de tout cela 514 00:36:39,000 --> 00:36:41,000 est que nous avons ces différents types. 515 00:36:41,000 --> 00:36:43,000 Ils peuvent interagir les uns avec les autres. 516 00:36:43,000 --> 00:36:49,000 Ils peuvent souvent interagir les uns avec les autres d'une manière qui sont agréables, comme nous l'avons vu ici. 517 00:36:49,000 --> 00:36:53,000 C'est agréable d'être en mesure d'avoir des cordes 1 et le numéro 2, additionnez-les et obtenez 3. 518 00:36:53,000 --> 00:36:55,000 Cela a du sens. 519 00:36:55,000 --> 00:36:59,000 Toutefois, lorsque vous écrivez des sites Web, et en particulier lorsque vous traitez 520 00:36:59,000 --> 00:37:04,000 saisie de l'utilisateur, de sorte que vous avez écrit un formulaire web 521 00:37:04,000 --> 00:37:09,000 qui collecte des informations de l'utilisateur, puis va à la traiter 522 00:37:09,000 --> 00:37:13,000 sur l'arrière, sur le côté serveur dans votre code PHP 523 00:37:13,000 --> 00:37:18,000 si vous vous attendez à ce que la valeur que l'utilisateur a tapé et envoyé 524 00:37:18,000 --> 00:37:23,000 à votre formulaire pour être un entier ou un nombre à virgule flottante ou quelque chose comme ça 525 00:37:23,000 --> 00:37:29,000 vous devez explicitement de le jeter 526 00:37:29,000 --> 00:37:34,000 puis faites un contrôle de type. 527 00:37:34,000 --> 00:37:41,000 >> Vous ne voulez pas compter uniquement sur ce système jonglerie genre à faire les choses fonctionnent, 528 00:37:41,000 --> 00:37:48,000 notamment pour des raisons de sécurité et juste pour la robustesse de votre site web. 529 00:37:48,000 --> 00:37:51,000 Juste une chose à garder à l'esprit que chaque fois que vous manipulez les données de formulaire, 530 00:37:51,000 --> 00:37:57,000 tout ce qui vient par la poste ou les superglobales get 531 00:37:57,000 --> 00:38:01,000 assurez-vous que vous avez toujours le valider et de le convertir et transtyper. 532 00:38:01,000 --> 00:38:04,000 Et tout comme nous parlions il ya un instant que transtypage 533 00:38:04,000 --> 00:38:08,000 en PHP est exactement la même que dans C où vous avez les parenthèses 534 00:38:08,000 --> 00:38:14,000 et ensuite le type. 535 00:38:14,000 --> 00:38:16,000 Gardez cela à l'esprit. 536 00:38:16,000 --> 00:38:19,000 Une fonction qui vous sera utile lorsque vous faites cela 537 00:38:19,000 --> 00:38:22,000 est que nous avons utilisé et c'est un peu comme une parenthèse- 538 00:38:22,000 --> 00:38:27,000 nous avons utilisé cette fonction gettype ici 539 00:38:27,000 --> 00:38:30,000 pour déterminer le type d'une variable, 540 00:38:30,000 --> 00:38:37,000 et tout ce qui est pratique pour le débogage et pour voir quel type d'une variable est 541 00:38:37,000 --> 00:38:42,000 vous ne voulez pas l'utiliser, par exemple, dans un état où 542 00:38:42,000 --> 00:38:57,000 vous vérifiez pour voir si gettype d'entier $ var = faire quelque chose. 543 00:38:57,000 --> 00:39:01,000 Ce qui est mauvais, mauvais, mauvais. 544 00:39:01,000 --> 00:39:09,000 Au lieu de cela, il ya ces fonctions appelées est un entier, est une chaîne, 545 00:39:09,000 --> 00:39:14,000 est un tableau que vous souhaitez utiliser à la place, donc dans ce cas 546 00:39:14,000 --> 00:39:18,000 ce que je voudrais faire au lieu de ce gars ici 547 00:39:18,000 --> 00:39:31,000 est d'utiliser le var est entier. 548 00:39:31,000 --> 00:39:37,000 Et ils sont souvent appelés * est is_ dans le sens que vous pouvez remplacer * par nombre entier, 549 00:39:37,000 --> 00:39:43,000 chaîne, et cetera, et juste pour s'assurer vraiment rapide 550 00:39:43,000 --> 00:39:50,000 est ce n'est int php. 551 00:39:50,000 --> 00:39:59,000 On dirait que vous pouvez faire c'est soit int ou est-il est un entier ainsi? 552 00:39:59,000 --> 00:40:06,000 Oui, alias, alias donc int entier. 553 00:40:06,000 --> 00:40:08,000 Cool. 554 00:40:14,000 --> 00:40:17,000 >> Comment faisons-nous? 555 00:40:17,000 --> 00:40:20,000 Nous allons accélérer le rythme un peu. 556 00:40:20,000 --> 00:40:24,000 Maintenant, nous allons parler de tableaux, de sorte que vous pouvez voir 557 00:40:24,000 --> 00:40:28,000 dans la prochaine partie de la spécification nous parlons de la façon dont les tableaux en PHP 558 00:40:28,000 --> 00:40:31,000 sont légèrement différents de ce qu'ils sont dans C. 559 00:40:31,000 --> 00:40:34,000 En vérité, ils sont une sorte d'amalgame de 560 00:40:34,000 --> 00:40:36,000 les tableaux que vous avez appris à connaître et aimer en C 561 00:40:36,000 --> 00:40:40,000 où tout est du même type 562 00:40:40,000 --> 00:40:43,000 stockées consécutivement et de manière contiguë à la mémoire, 563 00:40:43,000 --> 00:40:46,000 et vous avez ces indices numériques. 564 00:40:46,000 --> 00:40:49,000 Vous avez index 0, l'indice 1, indice 2, 565 00:40:49,000 --> 00:40:53,000 et de stocker des valeurs de ces indices. 566 00:40:53,000 --> 00:40:57,000 Vous avez également en C, quand vous avez écrit Speller, beaucoup d'entre vous 567 00:40:57,000 --> 00:41:00,000 a l'approche table de hachage, et vous avez vu que nous avons eu il ya 568 00:41:00,000 --> 00:41:03,000 un autre type de stockage où nous étions cartographie 569 00:41:03,000 --> 00:41:07,000 une clé à une valeur, alors quand vous avez essayé de stocker quelque chose dans la table de hachage 570 00:41:07,000 --> 00:41:11,000 vous avez dû spécifier que vous voulez l'enregistrer avec une clé spécifique, 571 00:41:11,000 --> 00:41:17,000 et en ce que la clé déterminé l'emplacement de la valeur et où il est stocké. 572 00:41:17,000 --> 00:41:22,000 Vous avez obtenu type de ces deux concepts se passe en même temps dans un tableau PHP, 573 00:41:22,000 --> 00:41:27,000 et, par conséquent, nous appelons souvent ces tableaux associatifs 574 00:41:27,000 --> 00:41:33,000 où nous associer une clé à une valeur. 575 00:41:33,000 --> 00:41:39,000 Dans la partie suivante nous parlons d'un tableau PHP simple 576 00:41:39,000 --> 00:41:45,000 où nous avons touches a, b, et c, 577 00:41:45,000 --> 00:41:53,000 toutes les chaînes de caractères, la cartographie des nombres entiers 1, 2, et 3. 578 00:41:53,000 --> 00:41:57,000 Et vous pouvez avoir des clés de différents types. 579 00:41:57,000 --> 00:42:00,000 >> Vous pouvez avoir quelques clés qui sont des chaînes, certaines touches qui sont des nombres entiers. 580 00:42:00,000 --> 00:42:03,000 On peut avoir des valeurs de types différents. 581 00:42:03,000 --> 00:42:06,000 Vous pouvez avoir une valeur qui est une chaîne, une valeur qui est un nombre entier, 582 00:42:06,000 --> 00:42:11,000 une valeur qui est un objet ou d'un autre tableau, par exemple, 583 00:42:11,000 --> 00:42:16,000 le tout dans l'objet même tableau, ce qui est un peu bizarre. 584 00:42:16,000 --> 00:42:20,000 Vous n'avez pas besoin d'avoir un tableau qui a juste un type d'élément de celui-ci. 585 00:42:20,000 --> 00:42:26,000 Vous pouvez avoir beaucoup de choses différentes se passe là-bas. 586 00:42:26,000 --> 00:42:33,000 L'autre chose à noter est que quand vous voyez quelque chose comme ceci dans votre code, 587 00:42:33,000 --> 00:42:38,000 qui est PHP valide pour déclarer un tableau comme ça, 0, 1, 2, 3, 4, 5, 588 00:42:38,000 --> 00:42:43,000 qui déclarent un montant arr initialisé à ce tableau. 589 00:42:43,000 --> 00:42:48,000 Mais ce que vous obtenez réellement sous le capot est ce genre de implicite 590 00:42:48,000 --> 00:42:55,000 génération de clés où nous avons obtenu de 0 à 0, 1 à 1, 2 à 2, 3 à 3. 591 00:42:55,000 --> 00:42:59,000 Et il s'avère que même si vous avez un tableau comme ce gars ici 592 00:42:59,000 --> 00:43:03,000 où vous avez a, b et c comme les touches 593 00:43:03,000 --> 00:43:09,000 et puis vous commencez à utiliser la méthode push tableau pour commencer à utiliser ce tableau comme une pile, 594 00:43:09,000 --> 00:43:12,000 de sorte que vous pouvez voir que cet objet tableau, ce tableau est vraiment en cas de surcharge. 595 00:43:12,000 --> 00:43:15,000 Nous pouvons l'utiliser comme un tableau. Nous pouvons l'utiliser comme une table de hachage. 596 00:43:15,000 --> 00:43:19,000 Nous pouvons l'utiliser comme une pile. 597 00:43:19,000 --> 00:43:22,000 Lorsque vous commencez à pousser les choses sur ce tableau 598 00:43:22,000 --> 00:43:30,000 la première chose que vous appuyez sur ce sera l'index 0 et l'indice 1 et l'index 2. 599 00:43:30,000 --> 00:43:33,000 Vous pouvez obtenir ce genre de génération implicite de touches 600 00:43:33,000 --> 00:43:38,000 sauf si vous les spécifier explicitement. 601 00:43:38,000 --> 00:43:43,000 La façon dont vous spécifiez explicitement les touches, bien sûr, est d'utiliser cette notation support, 602 00:43:43,000 --> 00:43:48,000 qui est similaire à l'exception des tableaux au lieu de n'autoriser 603 00:43:48,000 --> 00:43:54,000 indices entiers dans ici, maintenant nous permettre quoi que ce soit. 604 00:43:54,000 --> 00:43:57,000 Si vous voulez que votre clé soit une chaîne, vous précisez comme ça. 605 00:43:57,000 --> 00:44:06,000 Si vous voulez qu'il soit un int, vous spécifiez avec l'int que vous souhaitez utiliser. 606 00:44:06,000 --> 00:44:13,000 >> Questions à ce sujet jusqu'à présent? 607 00:44:13,000 --> 00:44:18,000 Une des choses gentilles sur cette idée 608 00:44:18,000 --> 00:44:26,000 est que vous ne pouvez jamais avoir une valeur stockée avec une touche particulière. 609 00:44:26,000 --> 00:44:32,000 Si nous revenons sur notre appareil, laissez-moi supprimer certaines de ces choses. 610 00:44:32,000 --> 00:44:47,000 Et disons que je initialiser un tableau à 0, 1, 2, c'est fait. 611 00:44:47,000 --> 00:44:55,000 Si je sais maintenant que, par exemple, si je echo $ arr [0] 612 00:44:55,000 --> 00:44:59,000 Je vais prendre la valeur 0 imprimé, 613 00:44:59,000 --> 00:45:05,000 et depuis il ne peut y avoir qu'une seule valeur stockée pour une clé particulière 614 00:45:05,000 --> 00:45:11,000 si je stocker quelque chose à $ arr [0], par exemple un, 615 00:45:11,000 --> 00:45:16,000 alors je sais que quand je echo $ arr [0] à nouveau 616 00:45:16,000 --> 00:45:19,000 Je ne vais pas pour obtenir le 0 imprimé comme avant. 617 00:45:19,000 --> 00:45:24,000 Je vais seulement pour obtenir un. 618 00:45:24,000 --> 00:45:30,000 Donc, c'est essentiellement à dire que je ne peux pas $ arr [0] stocker des 2 valeurs différentes. 619 00:45:30,000 --> 00:45:34,000 Il ne peut pas stocker à la fois 0 et la chaîne a, comme celui-ci remplace littéralement 620 00:45:34,000 --> 00:45:38,000 ce qui était à $ arr [0] précédemment. 621 00:45:38,000 --> 00:45:43,000 La raison pour laquelle je soulève cette question est-elle de fonctionner, voir ce qui se passe. 622 00:45:43,000 --> 00:45:47,000 Voir ici que j'ai obtenu 0 imprimés puis un ici-bas. 623 00:45:47,000 --> 00:45:51,000 Il n'ya pas de nouvelle ligne là parce que j'étais paresseux et ne pas mettre cette po 624 00:45:51,000 --> 00:45:54,000 Ce qui est cool à ce sujet est que nous pouvons utiliser cela comme un moyen 625 00:45:54,000 --> 00:46:00,000 de saisir cette idée d'un ensemble 626 00:46:00,000 --> 00:46:07,000 où l'on ne peut pas avoir plusieurs clés d'un tableau. 627 00:46:07,000 --> 00:46:10,000 Nous ne pouvons pas avoir des clés identiques dans un tableau. 628 00:46:10,000 --> 00:46:17,000 Je ne peux pas avoir la touche 0 et la valeur 1 et la touche 0 et la valeur d'un 629 00:46:17,000 --> 00:46:21,000 ou la touche 0 et la valeur réelle. 630 00:46:21,000 --> 00:46:27,000 Les touches sont tout il ya seulement 1 clé dans le tableau. 631 00:46:27,000 --> 00:46:32,000 Même si vous pouvez avoir la même valeur stockée 632 00:46:32,000 --> 00:46:35,000 à plusieurs reprises dans le tableau sous différentes touches 633 00:46:35,000 --> 00:46:42,000 il n'est pas possible d'avoir des clés identiques plusieurs fois dans votre tableau PHP. 634 00:46:42,000 --> 00:46:47,000 >> Si nous regardons ce problème prochaine, unique.php, 635 00:46:47,000 --> 00:46:51,000 où nous voulons ouvrir un fichier PHP 636 00:46:51,000 --> 00:46:54,000 contenant une liste de chaînes de caractères, une chaîne de caractères par ligne, 637 00:46:54,000 --> 00:47:01,000 et nous voulons trouver toutes les chaînes uniques dans ce fichier 638 00:47:01,000 --> 00:47:06,000 tout ce que nous devons faire est d'utiliser l'un de ces tableaux PHP 639 00:47:06,000 --> 00:47:12,000 et d'utiliser les chaînes de caractères dans le fichier que les clés de ce tableau 640 00:47:12,000 --> 00:47:17,000 et de garder à jour notre tableau comme nous stockons ces nouvelles clés. 641 00:47:17,000 --> 00:47:22,000 Comme nous le lisons chaque ligne à partir du fichier on peut le stocker dans le tableau, 642 00:47:22,000 --> 00:47:28,000 et à la fin nous aurons comme nos clés dans notre tableau 643 00:47:28,000 --> 00:47:34,000 toutes les chaînes de caractères uniques dans le fichier. 644 00:47:34,000 --> 00:47:37,000 Est-ce logique? 645 00:47:37,000 --> 00:47:41,000 Voyons comment cela fonctionne. 646 00:47:41,000 --> 00:47:49,000 Nous allons ouvrir, selon les spécifications, un nouveau fichier appelé unique.php. 647 00:47:49,000 --> 00:47:58,000 Ouvrez-le. Oups, désolé, nouveau fichier. 648 00:47:58,000 --> 00:48:03,000 Nous allons commencer avec elle balises de début et de fin même. 649 00:48:03,000 --> 00:48:17,000 Nous allons l'enregistrer à l'article 9, et nous allons l'appeler unique.php. 650 00:48:17,000 --> 00:48:25,000 Bon, maintenant effectuer un zoom avant 651 00:48:25,000 --> 00:48:32,000 L'idée ici est d'ouvrir un fichier, 652 00:48:32,000 --> 00:48:38,000 lire fichier ligne par ligne. 653 00:48:38,000 --> 00:48:46,000 Pour chaque ligne dans le fichier 654 00:48:46,000 --> 00:48:51,000 nous aurons un tableau où nous avons 655 00:48:51,000 --> 00:49:03,000  la ligne comme notre clé. 656 00:49:03,000 --> 00:49:09,000 Et puis, quand nous arrivons à la fin ici 657 00:49:09,000 --> 00:49:17,000 Clés $ arr sont les lignes uniques 658 00:49:17,000 --> 00:49:25,000 à partir du fichier puisque nous savons que si je mets en ligne dans la matrice 659 00:49:25,000 --> 00:49:33,000 plusieurs fois il va tout simplement continuer remplaçant l'ancienne valeur, 660 00:49:33,000 --> 00:49:46,000 et nous pouvons effectivement mis line array en tant que lui-même comme ça. 661 00:49:46,000 --> 00:49:48,000 >> C'est un peu bizarre. 662 00:49:48,000 --> 00:49:52,000 Nous vous stockez la paire même valeur de clé maintes et maintes et maintes fois, 663 00:49:52,000 --> 00:50:00,000 mais puisque nous sommes assurés qu'il y aura seulement 1 clé appelée ligne 664 00:50:00,000 --> 00:50:05,000 si nous avons un fichier qui dit-un fichier de bruits d'animaux et il a woof, woof, 665 00:50:05,000 --> 00:50:11,000 miaou, miaou, meuh, meuh, et chaque fois que nous lisons un bruit sur les animaux 666 00:50:11,000 --> 00:50:15,000 comme trame et nous le stockons dans notre gamme nous obtenons trame, puis la deuxième fois 667 00:50:15,000 --> 00:50:20,000 nous stockons woof il va écraser la première fois que nous l'avons stocké. 668 00:50:20,000 --> 00:50:25,000 En fin de compte nous n'avons qu'une seule entrée dans le tableau 669 00:50:25,000 --> 00:50:33,000 pour chacune des bruits d'animaux chez l'animal bruits notre fichier. 670 00:50:33,000 --> 00:50:41,000 Ne vous les gars se sentent confiants que vous pouvez aborder l'ouverture d'un fichier en PHP? 671 00:50:41,000 --> 00:50:45,000 Une façon de le faire, nous allons passer rapidement de cette façon-et-un pour le faire 672 00:50:45,000 --> 00:50:50,000 C'est avec fopen, comme nous l'avons vu plus haut. 673 00:50:50,000 --> 00:50:55,000 Vous pouvez fopen some_file.txt. 674 00:50:55,000 --> 00:50:59,000 Vous pouvez l'ouvrir en mode lecture, tout comme en C. 675 00:50:59,000 --> 00:51:02,000 C'est une façon parfaitement bon de le faire. 676 00:51:02,000 --> 00:51:05,000 Vous aussi, puis pour la lecture dans le fichier ligne par ligne 677 00:51:05,000 --> 00:51:12,000 ont les mêmes fonctions, beaucoup d'entre eux, que vous avez fait en C. 678 00:51:12,000 --> 00:51:14,000 Vous avez fgets. 679 00:51:14,000 --> 00:51:17,000 Vous avez feof, même si nous n'aimons pas utiliser ce 680 00:51:17,000 --> 00:51:22,000 parce que, souvenez-vous, ce n'était pas grand C. 681 00:51:22,000 --> 00:51:25,000 Vous pouvez le faire de la même manière, 682 00:51:25,000 --> 00:51:34,000 mais ici, c'est une chose vraiment cool. 683 00:51:34,000 --> 00:51:41,000 Désolé, je ne veux pas faire $ fichier, mais il ya une fonction appelée fichier en PHP, 684 00:51:41,000 --> 00:51:47,000 et cette fonction droite est ici cool car il lit tout le contenu 685 00:51:47,000 --> 00:51:52,000 du fichier que vous spécifiez, si some_file.txt, 686 00:51:52,000 --> 00:51:56,000 lit tout le contenu de ce fichier dans un tableau 687 00:51:56,000 --> 00:52:03,000 et puis vous permet de parcourir, ce qui est assez chouette. 688 00:52:03,000 --> 00:52:07,000 >> Si nous allons, par exemple, à notre navigateur 689 00:52:07,000 --> 00:52:14,000 et nous attendons avec Google pour fichier PHP 690 00:52:14,000 --> 00:52:23,000 vous pouvez voir ici que notre manuel indique que le fichier se lit tout un fichier dans un tableau, 691 00:52:23,000 --> 00:52:27,000 et nous pouvons file_get_contents pour renvoyer le contenu d'un fichier sous forme de chaîne, 692 00:52:27,000 --> 00:52:30,000 mais en général, il suffit de faire comme un tableau est vraiment bien car ce qu'il fait 693 00:52:30,000 --> 00:52:33,000 il est le décompose de sorte que chaque élément de 694 00:52:33,000 --> 00:52:37,000 dans la matrice est une ligne du fichier, 695 00:52:37,000 --> 00:52:41,000 si nous regardons fichier 0, c'est la première ligne du fichier. 696 00:52:41,000 --> 00:52:46,000 Fichier 1, deuxième ligne, le fichier 2, troisième ligne, et ainsi de suite et ainsi de suite. 697 00:52:46,000 --> 00:52:50,000 Ce ne serait pas bien si c'est tout ce que vous avez eu à le faire en C? 698 00:52:50,000 --> 00:52:53,000 Très chouette. 699 00:52:53,000 --> 00:52:59,000 David l'a montré dans la conférence, et l'idiome qu'il montrait était 700 00:52:59,000 --> 00:53:03,000 qu'en plus de notre niveau de boucle en PHP que nous avons eu 701 00:53:03,000 --> 00:53:09,000 for ($ i = 0; i <10; i + +), 702 00:53:09,000 --> 00:53:16,000 et vous pouvez le faire en PHP aussi, même chose, 703 00:53:16,000 --> 00:53:27,000 nous avons également ce concept cool appelé foreach. 704 00:53:27,000 --> 00:53:32,000 Foreach est très pratique lorsque vous parcourez des tableaux ou ces structures de données 705 00:53:32,000 --> 00:53:36,000 car il vous permet de retirer chaque élément du tableau 706 00:53:36,000 --> 00:53:42,000 sans avoir à le faire manuellement vous-même l'indexation, 707 00:53:42,000 --> 00:53:46,000 sans avoir à créer manuellement une variable d'index, l'incrémenter, 708 00:53:46,000 --> 00:53:51,000 retirer la valeur dans le tableau à ce moment-là, parce que c'est une chose très commune à faire. 709 00:53:51,000 --> 00:53:54,000 >> Vous avez probablement fait que des tonnes de fois où vous avez été faire des trucs C 710 00:53:54,000 --> 00:54:00,000 au cours du semestre, de sorte à ce foreach 711 00:54:00,000 --> 00:54:06,000 nous pouvons boucler sur ce tableau dossier, 712 00:54:06,000 --> 00:54:12,000 et la syntaxe, c'est que nous voulons maintenant une boucle sur ce tableau 713 00:54:12,000 --> 00:54:18,000 et de préciser que la variable que nous allons utiliser pour stocker 714 00:54:18,000 --> 00:54:27,000 l'élément de ce tableau au niveau local, locale à la portée de cette boucle foreach, 715 00:54:27,000 --> 00:54:32,000 est que nous allons appeler la ligne. 716 00:54:32,000 --> 00:54:38,000 Si c'est un fichier de mots justes et il ya un mot dans une ligne 717 00:54:38,000 --> 00:54:43,000 On pourrait appeler cela le mot ainsi, vraiment juste vous donner ce nom, 718 00:54:43,000 --> 00:54:49,000 tout ce que vous voulez l'appeler, 719 00:54:49,000 --> 00:55:02,000 puis à l'intérieur de la boucle, vous pouvez faire ce que vous voulez avec cette ligne variable. 720 00:55:02,000 --> 00:55:08,000 Si cela ne suffit pas pour obtenir la valeur du tableau et vous aussi vous voulez obtenir 721 00:55:08,000 --> 00:55:17,000 l'indice avec elle, vous pouvez spécifier un nom pour l'index 722 00:55:17,000 --> 00:55:22,000 ainsi que la valeur, et maintenant vous avez accès à 2 variables. 723 00:55:22,000 --> 00:55:26,000 Vous avez $ i et la ligne 724 00:55:26,000 --> 00:55:30,000 où $ i est l'index dans le tableau, 725 00:55:30,000 --> 00:55:38,000 et la ligne est la ligne que vous avez récupéré à partir du fichier. 726 00:55:38,000 --> 00:55:49,000 Par exemple, si nous voulions imprimer echo 0 ligne du fichier de ce type, 727 00:55:49,000 --> 00:55:57,000 nous pourrions le faire comme ça, "Ligne $ i du fichier est $ line», 728 00:55:57,000 --> 00:56:02,000 et c'est là quelque chose que nous n'avons pas encore vu non plus 729 00:56:02,000 --> 00:56:13,000 où je viens totalement sauté% cette% s ensemble d entreprise 730 00:56:13,000 --> 00:56:16,000 que nous avons eu à traiter en C, et à la place je suis allé directement à 731 00:56:16,000 --> 00:56:19,000 écrit les variables en ligne dans ma chaîne. 732 00:56:19,000 --> 00:56:23,000 >> C'est ce qu'on appelle l'interpolation de variables, chaîne d'interpolation 733 00:56:23,000 --> 00:56:26,000 où vous bourrer les variables de droite, et l'interpréteur PHP 734 00:56:26,000 --> 00:56:31,000 est assez intelligent quand il est lu par une chaîne qui commence avec doubles quotes- 735 00:56:31,000 --> 00:56:34,000 pas de guillemets simples, avec des chaînes entre apostrophes vous ne pouvez pas le faire- 736 00:56:34,000 --> 00:56:38,000 mais avec des chaînes entre guillemets tel qu'il se lit à travers elle cherche variables. 737 00:56:38,000 --> 00:56:42,000 Il a les traquer, et si elle voit variables, il prendra la valeur de la variable 738 00:56:42,000 --> 00:56:47,000 et le farcir dans la chaîne si elle ne peut le convertir en une représentation de chaîne, 739 00:56:47,000 --> 00:56:51,000 ce qui est assez chouette. 740 00:56:51,000 --> 00:56:56,000 Pour l'instant, nous allons commenter le reste de tout, 741 00:56:56,000 --> 00:57:00,000 enregistrer cette, et ce que nous pouvons faire maintenant, c'est nous pouvons ouvrir un fichier 742 00:57:00,000 --> 00:57:06,000 que nous pouvons appeler some_file.txt-let 's créer un nouveau fichier 743 00:57:06,000 --> 00:57:15,000 et l'on peut mettre dans un tas de trucs non-sens ici juste pour tester tout ça, 744 00:57:15,000 --> 00:57:25,000 l'enregistrer, appelez-le some_file.txt, comme je le fais ici en haut, 745 00:57:25,000 --> 00:57:33,000 et maintenant si je effectuer un zoom arrière juste pour s'assurer que tout est dans le même répertoire- 746 00:57:33,000 --> 00:57:36,000 il semble que je dois unique.php et some_file.txt dans le même répertoire. 747 00:57:36,000 --> 00:57:42,000 Si je lance unique.php php 748 00:57:42,000 --> 00:57:51,000 voir comment elle imprime chaque ligne dans mon fichier et ce que la ligne est? 749 00:57:51,000 --> 00:57:56,000 >> C'est assez puissant, non? 750 00:57:56,000 --> 00:58:03,000 Regardez, il a fallu 3 lignes de code pour ouvrir un fichier. 751 00:58:03,000 --> 00:58:08,000 Eh bien, 4 lignes de code. Je ne compte plus aujourd'hui, clairement. 752 00:58:08,000 --> 00:58:13,000 Mais, en réalité seulement 2 lignes de code intéressants, car les 2 autres étaient des accolades, 753 00:58:13,000 --> 00:58:17,000 mais dans ce code beaucoup, nous avons pu ouvrir un fichier, la parcourir, 754 00:58:17,000 --> 00:58:20,000 retirer le numéro de la ligne et la ligne elle-même 755 00:58:20,000 --> 00:58:24,000 et l'imprimer. 756 00:58:24,000 --> 00:58:26,000 Cool stuff. Charlotte. 757 00:58:26,000 --> 00:58:28,000 [Charlotte] J'ai une question à propos de la syntaxe. 758 00:58:28,000 --> 00:58:33,000 Donc foreach traite chaque ligne du fichier que vous ouvrez, 759 00:58:33,000 --> 00:58:37,000 et puis quand vous voulez faire des choses avec chaque ligne que vous venez de le faire aussi 760 00:58:37,000 --> 00:58:39,000 puis associer la valeur. 761 00:58:39,000 --> 00:58:41,000 [Nate H.] Ce que vous pouvez faire ici-la question a été 762 00:58:41,000 --> 00:58:46,000 foreach a à voir avec le tableau, la syntaxe foreach 763 00:58:46,000 --> 00:58:51,000 est vraiment foreach, et l'avis qu'il n'y a pas d'espace 764 00:58:51,000 --> 00:58:53,000 ou quoi que ce soit entre le pour et le chacun. 765 00:58:53,000 --> 00:58:56,000 Ils doivent passer juste à côté de l'autre, 766 00:58:56,000 --> 00:59:00,000 puis il prend dans un tableau, 767 00:59:00,000 --> 00:59:05,000 et puis vous avez ce mot-clé autre que celui appelé doit être là, 768 00:59:05,000 --> 00:59:11,000 puis après la comme vous pouvez soit mettre un nom de variable, 769 00:59:11,000 --> 00:59:14,000 Dans ce cas, vous allez être en tirant sur les valeurs du tableau, 770 00:59:14,000 --> 00:59:20,000 pas les indices, ou si vous le faites comme nous l'avons écrit ci-dessous 771 00:59:20,000 --> 00:59:24,000 vous obtenez les clés et les valeurs. 772 00:59:24,000 --> 00:59:33,000 Vous avez élément du tableau foreach ou une paire du tableau comme calé sur la valeur 773 00:59:33,000 --> 00:59:38,000 ou juste valeur. 774 00:59:38,000 --> 00:59:40,000 Selon ce que vous avez besoin, si vous n'avez pas besoin des clefs, 775 00:59:40,000 --> 00:59:42,000 alors vous pouvez aller avec la valeur. 776 00:59:42,000 --> 00:59:45,000 Si vous voulez que les touches que vous pouvez aller avec eux. 777 00:59:45,000 --> 00:59:48,000 >> [Charlotte] J'ai aussi réalisé que nous n'avons jamais déclaré la commande i ou en ligne. 778 00:59:48,000 --> 00:59:51,000 Comment ça sait même pas ce qu'ils sont? 779 00:59:51,000 --> 00:59:53,000 [Nate H.] Que voulez-vous dire par déclarer? 780 00:59:53,000 --> 00:59:57,000 [Charlotte] Nous n'avons jamais dit ce que je ou une ligne moyen. 781 00:59:57,000 --> 01:00:01,000 [Nate H.] Nous n'avons jamais dit ce que je l'ordinateur ou de la ligne signifie en termes de- 782 01:00:01,000 --> 01:00:05,000 [Charlotte] C'est qu'ils sont indexées ou que they're- 783 01:00:05,000 --> 01:00:09,000 [Nate H.] Nous n'avons jamais dit que ce qui est censé être l'index ou la clé et la valeur, 784 01:00:09,000 --> 01:00:13,000 et c'est parce que c'est l'interpréteur PHP. 785 01:00:13,000 --> 01:00:17,000 Cela sert de la déclaration et dit d'accord, la clé va être 786 01:00:17,000 --> 01:00:20,000 une variable appelée i stocké dans une variable appelée i. 787 01:00:20,000 --> 01:00:24,000 La valeur va être stockée dans une variable appelée ligne, 788 01:00:24,000 --> 01:00:28,000 si cela sert la déclaration de ces variables 789 01:00:28,000 --> 01:00:35,000 et dit i $ est une clé, et $ line est une valeur. 790 01:00:35,000 --> 01:00:37,000 Ouais, Ella. 791 01:00:37,000 --> 01:00:41,000 [Ella] Si les touches ne sont pas fait numériquement 792 01:00:41,000 --> 01:00:44,000 comment ça décider dans quel ordre il va tout imprimer? 793 01:00:44,000 --> 01:00:47,000 Est-il juste comme la commande il est entré en? 794 01:00:47,000 --> 01:00:51,000 [Nate H.] Nous allons faire un essai. 795 01:00:51,000 --> 01:00:57,000 Nous allons créer une variable appelée arr, 796 01:00:57,000 --> 01:01:06,000 et nous pouvons faire une passe à 7. 797 01:01:06,000 --> 01:01:19,000 Disons 0 va à un autre tableau avec 1, 2, ou de pomme. 798 01:01:19,000 --> 01:01:30,000 Disons que 7 va à 1, b passe à 2, 799 01:01:30,000 --> 01:01:39,000 et 3 va à 4. 800 01:01:39,000 --> 01:01:44,000 C'est en quelque sorte d'un exemple de regard fou parce que nous sommes mélanger 801 01:01:44,000 --> 01:01:47,000 chaînes et les entiers un peu partout. 802 01:01:47,000 --> 01:01:50,000 Il n'y a aucun ordre réel de ce tableau. 803 01:01:50,000 --> 01:01:55,000 Je veux dire, on pouvait commander tout dans l'ordre alphabétique des touches. 804 01:01:55,000 --> 01:01:57,000 On peut commander tout par ordre alphabétique de la valeur. 805 01:01:57,000 --> 01:02:00,000 >> Nous pourrions essayer de prendre en compte que certains sont des chaînes, certaines sont de type int, 806 01:02:00,000 --> 01:02:03,000 et nous pourrions essayer de les convertir au même type et de voir ce qui se passe, 807 01:02:03,000 --> 01:02:09,000 ou nous pourrions les prendre en compte dans la valeur dans laquelle nous les avons déjà conclu 808 01:02:09,000 --> 01:02:14,000 où nous mettons ce gars en premier, ce gars-là dans le deuxième, ce gars-là en troisième position, 809 01:02:14,000 --> 01:02:19,000 ce gars-là en quatrième, et ainsi de suite. 810 01:02:19,000 --> 01:02:23,000 Voyons voir ce qui se passe quand on exécuter ce code. 811 01:02:23,000 --> 01:02:29,000 Si nous faisons défiler vers le bas et faire le même genre de chose, 812 01:02:29,000 --> 01:02:31,000 et ici ce n'est pas l'impression des nouvelles lignes. 813 01:02:31,000 --> 01:02:35,000 Quand il lu des choses sur le fichier, il a été notamment les nouvelles lignes dans les valeurs, 814 01:02:35,000 --> 01:02:38,000 qui a été imprimé pourquoi il gentiment, alors qu'ici elle n'a pas, 815 01:02:38,000 --> 01:02:40,000 c'est pourquoi tout est smushed ensemble. 816 01:02:40,000 --> 01:02:44,000 Ajoutons à cette nouvelle ligne juste pour rendre les choses plus agréables. 817 01:02:44,000 --> 01:02:51,000 Regardons les choses en rediffusion, et ainsi de suite ici 818 01:02:51,000 --> 01:02:54,000 regardez ce qui s'est passé. 819 01:02:54,000 --> 01:03:00,000 Il imprimés tout dans l'ordre dans lequel nous l'avons mis dans le tableau. 820 01:03:00,000 --> 01:03:10,000 Il ne maintenir l'ordre dans ce sens. 821 01:03:10,000 --> 01:03:15,000 >> Pour en revenir à ce problème de visiteurs uniques 822 01:03:15,000 --> 01:03:20,000 là où nous voulons être en mesure de parcourir un fichier, 823 01:03:20,000 --> 01:03:24,000 et nous allons lui donner some_file.txt, 824 01:03:24,000 --> 01:03:27,000 et nous allons itérer sur elle comme ça. 825 01:03:27,000 --> 01:03:31,000 Nous avons dit que nous voulions utiliser un tableau pour s'assurer que nous avions pris toutes les 826 01:03:31,000 --> 01:03:36,000 lignes uniques sortir de là, et nous avons pu le faire très facilement 827 01:03:36,000 --> 01:03:49,000 par tout stocker dans un tableau que nous avons bien sûr déclarer hors de la portée d'une boucle, 828 01:03:49,000 --> 01:03:55,000 et nous avons dit que si nous avons utilisé les lignes dans le fichier que les touches dans notre tableau 829 01:03:55,000 --> 01:03:59,000 si nous sommes entrés dans une ligne double que nous serions remplacer la valeur précédente. 830 01:03:59,000 --> 01:04:08,000 Ce n'est pas toujours possible d'avoir 2 clés identiques dans le même tableau. 831 01:04:08,000 --> 01:04:13,000 Nous pouvons le faire. 832 01:04:13,000 --> 01:04:17,000 Nous allons vous débarrasser de cette instruction echo ici. 833 01:04:17,000 --> 01:04:24,000 Ici, nous stockons la ligne dans le fichier dans notre tableau 834 01:04:24,000 --> 01:04:28,000 lui-même en utilisant comme clé. 835 01:04:28,000 --> 01:04:32,000 Rien à faire, et il s'avère que nous n'avons même pas besoin de cette clé. 836 01:04:32,000 --> 01:04:38,000 Nous n'avons pas besoin que la variable i. 837 01:04:38,000 --> 01:04:43,000 À ce stade, si nous devions faire une autre boucle foreach 838 01:04:43,000 --> 01:04:48,000 et nous avons été faire une boucle sur chaque arr 839 01:04:48,000 --> 01:04:56,000 et en ligne dès maintenant si nous echo-oups, désolé. 840 01:04:56,000 --> 01:05:00,000 Nous ne pouvons pas utiliser la virgule. Nous devons l'utiliser comme mot-clé. 841 01:05:00,000 --> 01:05:05,000 Maintenant, si nous faisons écho à la ligne que nous devrions obtenir tous les mots uniques dans le fichier. 842 01:05:05,000 --> 01:05:10,000 Si nous montons à some_file.txt, 843 01:05:10,000 --> 01:05:19,000 et disons que nous faisons pomme, banane, pomme, pomme, banane, 844 01:05:19,000 --> 01:05:22,000 si nous imprimons sur tous les mots uniques dans ce fichier nous ne devrions obtenir 845 01:05:22,000 --> 01:05:30,000 pomme et la banane à imprimer. 846 01:05:30,000 --> 01:05:36,000 Si nous gagnons ce, maintenant nous allons en faire un zoom avant, 847 01:05:36,000 --> 01:05:44,000 php unique.php, et ta-da. 848 01:05:44,000 --> 01:05:51,000 Nous avons réussi à uniqued le fichier. 849 01:05:51,000 --> 01:05:55,000 >> La dernière partie de ce problème, on vous demande de trier ce tableau avant de l'imprimer 850 01:05:55,000 --> 01:05:58,000 parce que, dans cet exemple simple que nous venons de faire 851 01:05:58,000 --> 01:06:04,000 nous avons eu de la chance en ce sens que le fichier 852 01:06:04,000 --> 01:06:06,000 nous avons fait cet exemple artificiel avec des pommes et des bananes. 853 01:06:06,000 --> 01:06:08,000 Il a déjà été triés. 854 01:06:08,000 --> 01:06:19,000 Mais en utilisant la fonction de tri simple, vous pouvez trier un tableau, ce qui est assez chouette. 855 01:06:19,000 --> 01:06:24,000 La dernière chose que je voulais parler avec vous très rapidement sur 856 01:06:24,000 --> 01:06:31,000 est que ce genre de PHP est très bien, et c'est super pratique 857 01:06:31,000 --> 01:06:43,000 de savoir comment faire si jamais vous avez besoin de faire de petites choses, rapides programme. 858 01:06:43,000 --> 01:06:48,000 Par exemple, si j'ai besoin d'écrire un programme qui, par exemple, 859 01:06:48,000 --> 01:06:53,000 met tout le monde en sections je ne vais pas aller l'écrire en C 860 01:06:53,000 --> 01:06:55,000 Ça va être long. 861 01:06:55,000 --> 01:06:57,000 Il va y avoir une sorte de douleur, surtout si il ya des fichiers impliqués, 862 01:06:57,000 --> 01:07:00,000 tout comme vous les gars ont vu. 863 01:07:00,000 --> 01:07:05,000 C'est tellement agréable que, avec juste ce code beaucoup ici 864 01:07:05,000 --> 01:07:08,000 nous avons réussi à extraire dans un fichier, extraire toutes les valeurs uniques 865 01:07:08,000 --> 01:07:11,000 et de les imprimer arrière. 866 01:07:11,000 --> 01:07:16,000 >> Toutefois, pour vos travaux, de vos projets, 867 01:07:16,000 --> 01:07:20,000 si vous construisez des sites Web avec PHP, c'est que le pouvoir 868 01:07:20,000 --> 01:07:25,000 nous manquons à nos fichiers PHP par cet interprète, 869 01:07:25,000 --> 01:07:29,000 et l'interprète est le traitement de tout l'intérieur des balises PHP, 870 01:07:29,000 --> 01:07:34,000 laissant tout le reste intact et recrachant les résultats. 871 01:07:34,000 --> 01:07:40,000 Nous pouvons le faire pour construire HTML par programmation. 872 01:07:40,000 --> 01:07:46,000 Maintenant, si nous revenons à la spécification, le dernier problème dans la spécification 873 01:07:46,000 --> 01:07:56,000 parle de cette idée de concentrations 874 01:07:56,000 --> 01:08:01,000 et la création d'un menu déroulant, 875 01:08:01,000 --> 01:08:06,000 qui vous peuvent ou ne veulent pas faire, en fonction de ce que votre projet final est fait, 876 01:08:06,000 --> 01:08:13,000 qui permet à l'utilisateur de choisir parmi une liste de toutes les concentrations possibles 877 01:08:13,000 --> 01:08:15,000 leur seule concentration. 878 01:08:15,000 --> 01:08:21,000 Maintenant, c'est une sorte de douleur à taper ce sur 879 01:08:21,000 --> 01:08:25,000 et à faire tout cela manuellement, surtout quand vous avez à vous assurer 880 01:08:25,000 --> 01:08:28,000 que vous avez tous les équerres à la bonne place et toutes les citations à la bonne place, 881 01:08:28,000 --> 01:08:34,000 donc avec PHP, vous pouvez le faire par programme, et vous pouvez le faire très rapidement. 882 01:08:34,000 --> 01:08:36,000 >> Voyons comment faire cela. 883 01:08:36,000 --> 01:08:42,000 Nous allons ouvrir un nouveau fichier. 884 01:08:42,000 --> 01:08:46,000 Nous allons mettre dans nos balises PHP. 885 01:08:46,000 --> 01:08:53,000 Nous allons l'appeler concentrations.php, 886 01:08:53,000 --> 01:08:58,000 et maintenant, quand vous faites cela, une sorte de bonne chose à penser 887 01:08:58,000 --> 01:09:02,000 lorsque vous essayez de mélanger et assortir votre PHP et votre code HTML 888 01:09:02,000 --> 01:09:08,000 est de trouver, d'accord, ce qui est la partie que je veux générer par programmation? 889 01:09:08,000 --> 01:09:11,000 Quelle est la partie que je peux générer par programmation? 890 01:09:11,000 --> 01:09:17,000 Il est vrai que vous pouvez faire tout de votre code HTML 891 01:09:17,000 --> 01:09:19,000 à l'intérieur de blocs PHP. 892 01:09:19,000 --> 01:09:24,000 Vous pouvez l'écho de tout le code HTML sous forme de chaînes. 893 01:09:24,000 --> 01:09:30,000 Par exemple, si je veux commencer à faire les balises select à l'intérieur de PHP 894 01:09:30,000 --> 01:09:46,000 Je peux dire d'écho, disons sélectionnez le nom = concentration, 895 01:09:46,000 --> 01:09:49,000 puis en bas je pouvais avoir une autre balise écho 896 01:09:49,000 --> 01:09:57,000 ou un autre écho appelé près de la sélectionner. 897 01:09:57,000 --> 01:10:00,000 C'est une façon de le faire parce que cela va littéralement faire 898 01:10:00,000 --> 01:10:09,000 est d'imprimer cette chaîne quand il est exécuté par l'interpréteur PHP, 899 01:10:09,000 --> 01:10:12,000 de sorte que le résultat sera HTML. 900 01:10:12,000 --> 01:10:18,000 Si je sauve ce fichier car il est en ce moment 901 01:10:18,000 --> 01:10:24,000 et je cours concentrations.php php 902 01:10:24,000 --> 01:10:26,000 regardez ce que j'ai obtenu. 903 01:10:26,000 --> 01:10:30,000 J'ai eu cette ouverture balise de fermeture de sélection. 904 01:10:30,000 --> 01:10:36,000 >> Si je devais le faire et je devais sauvegarder ce résultat dans un fichier, 905 01:10:36,000 --> 01:10:45,000 dire, concentrations.html-attente, il semble que le l a passé à l'autre côté, 906 01:10:45,000 --> 01:11:02,000 maintenant, si j'ouvre ici concentrations.html vous voyez que j'ai un fichier HTML valide. 907 01:11:02,000 --> 01:11:05,000 Est-ce bizarre? 908 01:11:05,000 --> 01:11:09,000 Nous utilisons PHP pour créer HTML, de créer du code HTML valide. 909 01:11:09,000 --> 01:11:13,000 La façon dont nous le faisons, c'est que nous sommes juste avoir l'impression PHP 910 01:11:13,000 --> 01:11:16,000 le code HTML que nous voulons pour l'imprimer. 911 01:11:16,000 --> 01:11:20,000 C'est littéralement la façon dont des sites Web PHP fonctionnent. 912 01:11:20,000 --> 01:11:24,000 Lorsque vous visitez un site Web qui vous envoie quelque chose comme 913 01:11:24,000 --> 01:11:30,000 quelque chose, quelque chose, quelque chose dot com slash index.php 914 01:11:30,000 --> 01:11:33,000 l'ordinateur est littéralement appeler index.php, 915 01:11:33,000 --> 01:11:38,000 l'exécutant à travers l'interpréteur PHP, et tout ce qui sort indésirable 916 01:11:38,000 --> 01:11:49,000 qu'il envoie au navigateur et dire hey, navigateur, interpréter cela comme HTML. 917 01:11:49,000 --> 01:11:54,000 La bonne chose est que cela peut être une douleur à écrire constamment écho, l'écho, l'écho, l'écho 918 01:11:54,000 --> 01:11:59,000 et joindre tout entre guillemets comme celui-ci, donc si vous voulez écrire 919 01:11:59,000 --> 01:12:04,000 le code HTML qui va être statique vous-même vous pouvez le faire comme ceci, 920 01:12:04,000 --> 01:12:16,000 le mettre dehors, fermez-le, 921 01:12:16,000 --> 01:12:21,000 et puis là, vous ne mettre dans les balises PHP que vous connaissez 922 01:12:21,000 --> 01:12:26,000 vous souhaitez générer par programmation, et dans ce cas ce sont ces étiquettes d'option 923 01:12:26,000 --> 01:12:31,000 qui sont une douleur à générer. 924 01:12:31,000 --> 01:12:37,000 >> Par exemple, nous pourrions générer un millier d'étiquettes d'option 925 01:12:37,000 --> 01:12:48,000 en faisant quelque chose comme ceci, $ i <1000, i + + 926 01:12:48,000 --> 01:13:00,000 et en disant valeur de l'option echo = $-oups, je ne peux pas faire ça. 927 01:13:00,000 --> 01:13:03,000 Eh bien, nous allons lui donner un essai et voir ce qui se passe. 928 01:13:03,000 --> 01:13:22,000 $ I puis dire $ i 01:13:27,000 Plutôt que d'avoir à taper cette balise option d'un millier de fois différentes 930 01:13:27,000 --> 01:13:33,000 J'utilise le code PHP pour le générer automatiquement, par programmation. 931 01:13:33,000 --> 01:13:38,000 Sorte de chouette. Ouais. 932 01:13:38,000 --> 01:13:41,000 Je me souviens que cela soit mentionné ni dans la conférence ou la procédure pas à pas, 933 01:13:41,000 --> 01:13:43,000 mais quelle est la différence entre les guillemets, 934 01:13:43,000 --> 01:13:45,000 les normaux et ces choses simples? 935 01:13:45,000 --> 01:13:49,000 En fait, c'est quelque chose que j'ai mal fait ici que je vais vous montrer. 936 01:13:49,000 --> 01:13:52,000 Les guillemets simples ne permettent pas de caractères spéciaux, 937 01:13:52,000 --> 01:13:57,000 donc tout l'intérieur d'une chaîne de caractères entre guillemets simples est interprété littéralement. 938 01:13:57,000 --> 01:14:02,000 Si j'avais un \ n à l'intérieur des guillemets simples et je sauver ce, par exemple, 939 01:14:02,000 --> 01:14:07,000 et maintenant je descends ici et exécutez-le- 940 01:14:07,000 --> 01:14:12,000 oups, où vais-je? 941 01:14:12,000 --> 01:14:19,000 Oh, c'est parce que j'ai oublié de dollars. 942 01:14:19,000 --> 01:14:25,000 >> Maintenant, si j'ouvre-en fait, ici, nous allons vous débarrasser de la tapant le dans un fichier. 943 01:14:25,000 --> 01:14:27,000 Nous allons le lire. 944 01:14:27,000 --> 01:14:34,000 Ici vous voyez que j'ai ce littéral \ n dans la chaîne, à l'instar pas une ligne réelle nouvelle, 945 01:14:34,000 --> 01:14:38,000 et de même, au lieu d'interpolation en fait la valeur de cette variable 946 01:14:38,000 --> 01:14:42,000 il m'a donné l'$ i lui-même, qui est une sorte de douleur. 947 01:14:42,000 --> 01:14:46,000 Le moyen de contourner cela est d'utiliser les guillemets, 948 01:14:46,000 --> 01:14:52,000 et puis quand vous utilisez des guillemets doubles, il sera effectivement 949 01:14:52,000 --> 01:14:56,000 correctement interpoler les valeurs de toutes ces variables ici 950 01:14:56,000 --> 01:14:59,000 et aussi reconnaître ce n \ être la nouvelle ligne qu'il est 951 01:14:59,000 --> 01:15:02,000 et non \ n. 952 01:15:02,000 --> 01:15:07,000 En utilisant les simples est agréable quand vous avez 953 01:15:07,000 --> 01:15:10,000 caractères qui pourraient être interprétés comme des caractères spéciaux parce que vous n'avez pas à 954 01:15:10,000 --> 01:15:15,000 leur échapper en permanence. 955 01:15:15,000 --> 01:15:18,000 Les choses peuvent déraper, et souvent la façon dont je le fais, 956 01:15:18,000 --> 01:15:24,000 juste pour rendre les choses faciles, c'est que si je vais avoir quoi que ce soit 957 01:15:24,000 --> 01:15:31,000 HTML comme dans mon code, je vais inclure édition des guillemets simples 958 01:15:31,000 --> 01:15:36,000 et ensuite utiliser cet opérateur de concaténation 959 01:15:36,000 --> 01:15:43,000 pour concaténer les variables po 960 01:15:43,000 --> 01:15:47,000 C'est une autre façon de le faire 961 01:15:47,000 --> 01:15:52,000 où nous avons le point qui va relier ceci est une chaîne 962 01:15:52,000 --> 01:15:56,000 avec cette ce avec cela, 963 01:15:56,000 --> 01:15:59,000 et maintenant je n'ai pas d'échapper à ces guillemets. 964 01:15:59,000 --> 01:16:02,000 Je n'ai pas à utiliser ce type de s'échapper. 965 01:16:02,000 --> 01:16:08,000 Ils vont littéralement être imprimés sous forme de guillemets et puis ce gars ici. 966 01:16:08,000 --> 01:16:11,000 C'est une autre façon de mélanger le tout. 967 01:16:11,000 --> 01:16:14,000 >> [Étudiants] Aussi, lorsque vous gettype écho il n'y avait pas de guillemets tout. 968 01:16:14,000 --> 01:16:22,000 Bon, alors écho est un peu spécial dans le sens que vous n'avez pas besoin de parenthèses. 969 01:16:22,000 --> 01:16:29,000 Vous n'avez pas besoin d'avoir les guillemets autour des variables nécessairement, 970 01:16:29,000 --> 01:16:37,000 comme il est valable de dire echo $ i, et il va interpréter cela comme une chaîne. 971 01:16:37,000 --> 01:16:44,000 Il va faire le casting, afin que nous puissions le faire, et c'est valable aussi, mais nous n'en avons pas besoin. 972 01:16:44,000 --> 01:16:48,000 Il est facultatif. 973 01:16:48,000 --> 01:16:53,000 Dans problème posé cette semaine regarder dehors pour beaucoup de ce genre de choses 974 01:16:53,000 --> 01:16:58,000 où vous mélanger et assortir HTML avec PHP 975 01:16:58,000 --> 01:17:08,000 juste comme ça, et maintenant, si nous revenir en arrière et nous courons ce 976 01:17:08,000 --> 01:17:13,000 nous pouvons voir que nous avons un tas de valeurs d'option 977 01:17:13,000 --> 01:17:15,000 qui vient de se imprimées. 978 01:17:15,000 --> 01:17:20,000 Nous avons tout ce qu'il s'est HTML généré très vite pour nous. 979 01:17:20,000 --> 01:17:22,000 Je vais laisser comme un exercice. 980 01:17:22,000 --> 01:17:24,000 Il est très similaire à la lecture des fichiers que nous avons fait auparavant. 981 01:17:24,000 --> 01:17:31,000 >> Il s'agit d'un fichier concentrations.txt que vous pouvez tirer vers le bas de la CAN, 982 01:17:31,000 --> 01:17:34,000 et vous pouvez l'ouvrir en utilisant la même astuce foreach que nous avons fait précédemment, 983 01:17:34,000 --> 01:17:39,000 et foreach vous avez juste faire écho à une option et branchez 984 01:17:39,000 --> 01:17:44,000 les valeurs appropriées, les touches appropriées et indices, 985 01:17:44,000 --> 01:17:49,000 et alors vous obtenez un menu déroulant qui crée littéralement 986 01:17:49,000 --> 01:17:54,000 programme pour vous toutes les différentes concentrations de Harvard. 987 01:17:54,000 --> 01:17:57,000 Une chose très pratique d'avoir. 988 01:17:57,000 --> 01:18:02,000 Il ya beaucoup de choses de configuration pour cette mission. 989 01:18:02,000 --> 01:18:07,000 Si vous n'avez pas fait cela prennent déjà la prochaine demi-heure, une heure, 990 01:18:07,000 --> 01:18:10,000 un peu de temps ce soir définitivement à coup sûr, 991 01:18:10,000 --> 01:18:14,000 marcher à travers la spécification problème posé, 992 01:18:14,000 --> 01:18:20,000 voir ce qui se passe avec la mise en place des serveurs virtuels, l'hôte local, tous ces trucs. 993 01:18:20,000 --> 01:18:24,000 Une chose à remarquer en ce moment, c'est que 994 01:18:24,000 --> 01:18:30,000 dans la plupart des ensembles de problèmes que nous avons été aller dans votre dossier Dropbox 995 01:18:30,000 --> 01:18:34,000 puis en téléchargeant le fichier zip problème posé et le décompresser. 996 01:18:34,000 --> 01:18:36,000 Pour ce jeu de problème que vous ne voulez pas. 997 01:18:36,000 --> 01:18:40,000 Vous voulez aller dans ce répertoire vhosts. 998 01:18:40,000 --> 01:18:45,000 Vous aurez envie d'aller en vhosts et allez dans le répertoire hôte local en son sein, 999 01:18:45,000 --> 01:18:50,000 et c'est là que vous aurez envie de tirer vers le bas le fichier zip, 1000 01:18:50,000 --> 01:18:55,000 décompressez-le, et soyez prêt à y aller. 1001 01:18:55,000 --> 01:18:57,000 Vous devrez suivre les étapes de près. 1002 01:18:57,000 --> 01:19:02,000 >> Si vous avez des questions, envoyez un courriel, postez sur Discutez, venez aux heures de bureau. 1003 01:19:02,000 --> 01:19:08,000 Merci les gars. La semaine prochaine, nous allons avoir une session d'examen pour le quiz. 1004 01:19:08,000 --> 01:19:12,000 Profitez de votre jeu dernier problème. J'espère que tout va très bien. 1005 01:19:12,000 --> 01:19:14,000 [CS50.TV]