1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Semaine 8] 2 00:00:02,000 --> 00:00:04,000 [David J Malan] [Université de Harvard] 3 00:00:04,000 --> 00:00:07,000 [C'est CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Bienvenue à nouveau. 5 00:00:09,000 --> 00:00:11,000 C'est CS50, et c'est le début de la semaine 8. 6 00:00:11,000 --> 00:00:14,000 A quelques occasions cette semaine, 7 00:00:14,000 --> 00:00:17,000 parmi eux cet exposé ici, au cours de laquelle la nourriture sera servie. 8 00:00:17,000 --> 00:00:20,000 Pour plus de détails, consultez les diapositives qui sont en ligne. 9 00:00:20,000 --> 00:00:24,000 Et aussi un autre événement cette semaine par notre propre Carriero Thomas. 10 00:00:24,000 --> 00:00:27,000 Il est l'un des anciens boursiers du CS50 enseignement tête qui est maintenant à Dropbox, 11 00:00:27,000 --> 00:00:29,000 et c'est lui qui nous a mis en contact avec le vous savez quoi, 12 00:00:29,000 --> 00:00:36,000 donc si vous voulez plus de cette tête de leur parler cet après-midi pour Dropbox et plus encore. 13 00:00:36,000 --> 00:00:38,000 CS50 déjeuner est ce vendredi. 14 00:00:38,000 --> 00:00:41,000 N'hésitez pas à nous joindre si vous êtes en mesure, 1:15, comme d'habitude, au feu et la glace. 15 00:00:41,000 --> 00:00:45,000 >> Et maintenant nous plonger dans quelque chose qui s'appelle séminaires. 16 00:00:45,000 --> 00:00:49,000 Nos CS50 Séminaires, rappel, sont ces cours facultatifs menés par les boursiers d'enseignement 17 00:00:49,000 --> 00:00:51,000 assistants de formation et des amis du cours, 18 00:00:51,000 --> 00:00:55,000 des gens provenant d'un groupe sur le campus appelé ABCD, qui est un groupe de 19 00:00:55,000 --> 00:00:58,000 technophiles sur le campus, ainsi que d'un groupe appelé HCS, 20 00:00:58,000 --> 00:01:02,000 la Société Harvard ordinateur, étudiants de premier cycle qui sont également intéressés par l'informatique. 21 00:01:02,000 --> 00:01:08,000 L'alignement de cette année, des séminaires comprend des séminaires sur Android et iOS et JavaScript 22 00:01:08,000 --> 00:01:13,000 et PHP, Unix, Vim, et de plus, donc se rendre compte que ces séminaires sont à venir. 23 00:01:13,000 --> 00:01:16,000 Si vous voulez confirmer votre présence à la tête de l'un d'eux à cette URL là-bas. 24 00:01:16,000 --> 00:01:20,000 Nous allons ensuite poster sur le site Web du cours des temps et des lieux une fois qu'ils sont finalisés. 25 00:01:20,000 --> 00:01:26,000 Mais il convient de savoir de 5 années de séminaires antérieurs disponibles en ligne, 26 00:01:26,000 --> 00:01:29,000 dont un grand nombre sont encore très actuelle en termes de technologies que vous pourriez 27 00:01:29,000 --> 00:01:36,000 envie de jouer avec pour vos projets finaux, la tête là pour des vidéos disponibles de celui-ci. 28 00:01:36,000 --> 00:01:39,000 >> CSS, ceux d'entre vous qui sont familiers avec les CSS déjà, 29 00:01:39,000 --> 00:01:42,000 quel est-il en quelques mots? 30 00:01:42,000 --> 00:01:45,000 Qu'est-ce que CSS? 31 00:01:45,000 --> 00:01:48,000 Il a des feuilles de style, et ça veut dire quoi? 32 00:01:48,000 --> 00:01:53,000 Qu'est-ce que faire pour nous, CSS? 33 00:01:53,000 --> 00:01:57,000 Très bien, nous allons réchauffer avec un plus facile, HTML, Hypertext Markup Language. 34 00:01:57,000 --> 00:02:01,000 Qu'est-ce que faire pour nous? 35 00:02:01,000 --> 00:02:04,000 N'importe qui? 36 00:02:04,000 --> 00:02:07,000 Il commence à faire vraiment maladroit poser ces questions. 37 00:02:07,000 --> 00:02:11,000 HTML, Hypertext Markup Language. 38 00:02:11,000 --> 00:02:14,000 Oui? Non? 39 00:02:14,000 --> 00:02:17,000 [Réponse de l'élève inaudible] 40 00:02:17,000 --> 00:02:20,000 Bon, bon, il nous permet de marquer le texte à afficher dans un navigateur Web. 41 00:02:20,000 --> 00:02:22,000 Ce n'est pas un langage de programmation. 42 00:02:22,000 --> 00:02:25,000 C'est en effet un langage de balisage, ce qui signifie qu'il indique au navigateur comment afficher 43 00:02:25,000 --> 00:02:28,000 l'information, de sorte que le plus simple incarnation de ce que nous avons vu 44 00:02:28,000 --> 00:02:32,000 est quelque chose de super simple comme boldfacing, ouvert support b Support fermé dit 45 00:02:32,000 --> 00:02:36,000 faire de ce texte en gras, et c'est en fait juste une des nombreuses façons 46 00:02:36,000 --> 00:02:39,000 dans lequel nous pouvons le faire, et en effet, ces jours-ci une meilleure approche 47 00:02:39,000 --> 00:02:42,000 pour styliser votre page web, rendant les choses en gras et en italique 48 00:02:42,000 --> 00:02:47,000 et centré et justifié et autres, ne se fait pas par l'intermédiaire des balises HTML seul 49 00:02:47,000 --> 00:02:51,000 mais plutôt avec une technique appelée CSS, Cascading Style Sheets. 50 00:02:51,000 --> 00:02:53,000 C'est un langage en soi. 51 00:02:53,000 --> 00:02:55,000 Il n'est pas non plus un langage de programmation, mais- 52 00:02:55,000 --> 00:02:58,000 tout le monde, c'est Dan, qui ne cesse de nous rejoindre aujourd'hui. 53 00:02:58,000 --> 00:03:01,000 Certaines difficultés techniques. Pas un problème. 54 00:03:01,000 --> 00:03:04,000 >> CSS nous permet de styliser une page 55 00:03:04,000 --> 00:03:07,000 en fixant ce qu'on appelle des propriétés, nous allons donc jeter un oeil à cette 56 00:03:07,000 --> 00:03:09,000 par le biais de quelques exemples de base. 57 00:03:09,000 --> 00:03:12,000 Laissez-moi aller dans l'appareil aujourd'hui. 58 00:03:12,000 --> 00:03:15,000 J'ai le répertoire source 8 lundi ici, 59 00:03:15,000 --> 00:03:18,000 et je vais aller dans un répertoire appelé CSS où nous avons tout un tas 60 00:03:18,000 --> 00:03:21,000 des fichiers en attente pour nous ici, 61 00:03:21,000 --> 00:03:27,000 et dans ce dossier, nous avons, par exemple, search0.html de la dernière fois. 62 00:03:27,000 --> 00:03:31,000 Maintenant, rappelons avec search0 nous sommes partis sur cette note 63 00:03:31,000 --> 00:03:35,000 trier par Google de mettre en œuvre ou vraiment juste avant la fin pour une semaine ou deux il ya, 64 00:03:35,000 --> 00:03:38,000 et remarquez que nous avons eu quelques nouvelles balises là. 65 00:03:38,000 --> 00:03:41,000 Nous avons eu h1 pour un grand titre en gras, 66 00:03:41,000 --> 00:03:45,000 forme, ce qui nous a permis de réellement avoir un formulaire HTML pour l'utilisateur. 67 00:03:45,000 --> 00:03:48,000 Action, quel était le sens d'un attribut d'action 68 00:03:48,000 --> 00:03:52,000 sur la balise form HTML? 69 00:03:52,000 --> 00:03:58,000 Quel était le sens de cette action,? 70 00:03:58,000 --> 00:04:00,000 Je vais le faire aujourd'hui. 71 00:04:00,000 --> 00:04:03,000 L'action est la destination où le formulaire doit être soumis. 72 00:04:03,000 --> 00:04:07,000 Le fait que l'action qui dit = "google.com / search» 73 00:04:07,000 --> 00:04:10,000 signifie que lorsque l'utilisateur clique sur le bouton de soumission ou l'équivalent 74 00:04:10,000 --> 00:04:14,000 quelle que soit la forme qu'ils champs remplis vont être envoyé à notre serveur 75 00:04:14,000 --> 00:04:17,000 ou notre appareil, mais plutôt à cette URL spécifique à Google. 76 00:04:17,000 --> 00:04:19,000 Et la méthode qu'il va utiliser est appelée obtenir, 77 00:04:19,000 --> 00:04:25,000 et obtenir, pour l'instant, c'est juste une technique pour transmettre des informations sur un serveur Web 78 00:04:25,000 --> 00:04:29,000 par le biais de l'URL, nous allons donc jeter un coup d'œil en arrière à la façon dont cela fonctionne. 79 00:04:29,000 --> 00:04:31,000 >> Notez qu'il ya une entrée dont le nom est q 80 00:04:31,000 --> 00:04:35,000 dont le type est texte, puis une seconde entrée de type submit 81 00:04:35,000 --> 00:04:39,000 dont la valeur est CS50 Recherche, et en effet, si nous ouvrons ce fichier ici, 82 00:04:39,000 --> 00:04:42,000 search0.html, c'est une forme super simple, 83 00:04:42,000 --> 00:04:45,000 et si je recherche quelque chose comme l'informatique 84 00:04:45,000 --> 00:04:50,000 puis appuyez sur Entrée ou cliquez sur Rechercher CS50 85 00:04:50,000 --> 00:04:53,000 remarquer que ce qui se passe est au-delà d'apprendre à Google 86 00:04:53,000 --> 00:04:56,000 J'ai spécifiquement retrouvés dans cet URL en haut, 87 00:04:56,000 --> 00:05:01,000 google.com / search? q = ordinateur + science, 88 00:05:01,000 --> 00:05:04,000 et de l'informatique est évidemment ce que j'ai tapé po 89 00:05:04,000 --> 00:05:06,000 Le + signifie juste que c'est là un caractère d'espace était, 90 00:05:06,000 --> 00:05:10,000 et c'est fait par le navigateur juste pour s'assurer qu'il n'ya pas de 91 00:05:10,000 --> 00:05:13,000 la confusion et l'espace blanc dans l'URL. 92 00:05:13,000 --> 00:05:15,000 Et alors q, bien sûr, est le nom du paramètre. 93 00:05:15,000 --> 00:05:20,000 Nous n'avons pas vu la façon dont nous, le programmeur, peut effectivement accéder q encore. 94 00:05:20,000 --> 00:05:23,000 On peut supposer que Google sait pas quoi faire avec ça ici, 95 00:05:23,000 --> 00:05:25,000 mais on va y arriver en temps voulu aujourd'hui. 96 00:05:25,000 --> 00:05:30,000 >> Mais laissez-moi jeter un oeil à la place search1.html, 97 00:05:30,000 --> 00:05:34,000 ce qui est un peu différent parce que j'ai décidé que cette forme là était juste un peu boiteux. 98 00:05:34,000 --> 00:05:36,000 Je veux dire, il est en haut à gauche. 99 00:05:36,000 --> 00:05:40,000 Il n'y a vraiment pas d'esthétique à elle, et je tiens donc à styliser cette 100 00:05:40,000 --> 00:05:43,000 un peu plus comme Google, dont la page d'accueil, rappel, 101 00:05:43,000 --> 00:05:47,000 même si vous ne pourriez pas le visiter souvent, ressemble à ceci aujourd'hui le jour d'Halloween. 102 00:05:47,000 --> 00:05:53,000 Si nous, au lieu d'ouvrir la version 1 de ce fichier, 1.html recherche, je l'ai porté. 103 00:05:53,000 --> 00:05:57,000 , Encore assez laid, mais au moins maintenant, j'ai commencé à contrôler l'esthétique de cette page 104 00:05:57,000 --> 00:06:00,000 pas seulement le marquage de celui-ci. 105 00:06:00,000 --> 00:06:04,000 Jetons un coup d'oeil à la recherche 1, et il n'y a vraiment qu'une seule différence ici, 106 00:06:04,000 --> 00:06:06,000 qui pourrait sauter hors de vous, ou peut-être pas, 107 00:06:06,000 --> 00:06:11,000 mais ce qui est la seule ligne ou un extrait de la différence? 108 00:06:11,000 --> 00:06:14,000 >> Il ya cet attribut style, il s'avère que dans HTML 109 00:06:14,000 --> 00:06:19,000 la plupart des éléments, la plupart des balises peut avoir un attribut style sur eux, 110 00:06:19,000 --> 00:06:23,000 et à l'intérieur de cet attribut style est une chaîne entre guillemets, 111 00:06:23,000 --> 00:06:26,000 et cette chaîne est cité CSS. 112 00:06:26,000 --> 00:06:29,000 Vous pouvez mettre la feuille de style en cascade il 113 00:06:29,000 --> 00:06:32,000 en le spécifiant comme nom de propriété 114 00:06:32,000 --> 00:06:34,000 suivie par un deux-points suivi d'une valeur. 115 00:06:34,000 --> 00:06:37,000 C'est en quelque sorte d'une décision de conception malheureuse il ya quelques années 116 00:06:37,000 --> 00:06:40,000 que le CSS est un langage en soi, 117 00:06:40,000 --> 00:06:43,000 mais syntaxiquement, il est très différent du HTML. 118 00:06:43,000 --> 00:06:46,000 Dans ce cas, nous voyons que l'intérieur de ma page, ce qui est écrit en HTML, 119 00:06:46,000 --> 00:06:51,000 J'ai CSS à l'intérieur de ces citations, et de la convention pour le CSS 120 00:06:51,000 --> 00:06:55,000 c'est que vous avez ce qu'on appelle une propriété suivie, encore une fois, un point virgule 121 00:06:55,000 --> 00:06:58,000 suivie de la valeur de ce bien, il n'y a donc pas de signe égal. 122 00:06:58,000 --> 00:07:00,000 Il n'ya pas de guillemets supplémentaires. 123 00:07:00,000 --> 00:07:03,000 C'est juste ce colon paire séparée valeur de la clé, 124 00:07:03,000 --> 00:07:05,000 et la ligne de texte fait exactement ce qu'il dit. 125 00:07:05,000 --> 00:07:09,000 Elle aligne le texte dans le corps de la page, ce qui est vraiment le courage de la page, 126 00:07:09,000 --> 00:07:11,000 dans le centre. 127 00:07:11,000 --> 00:07:13,000 >> Bon, le résultat final alors, pour être clair, est-ce. 128 00:07:13,000 --> 00:07:17,000 Pas du tout sexy, mais au moins il est centré et un peu plus comme la vraie Google. 129 00:07:17,000 --> 00:07:21,000 Mais si je la place d'ouvrir la version 2 du présent 130 00:07:21,000 --> 00:07:25,000 et souligner ici une nouvelle étiquette tout à fait? 131 00:07:25,000 --> 00:07:30,000 Maintenant à la tête de ma page, qui, auparavant, n'avaient quelle balise 132 00:07:30,000 --> 00:07:32,000 dans tous les exemples précédents? 133 00:07:32,000 --> 00:07:34,000 Il vient d'avoir cela, le titre. 134 00:07:34,000 --> 00:07:38,000 Un moment il ya la balise head ressemblait à ceci. 135 00:07:38,000 --> 00:07:40,000 Maintenant, au lieu qu'il a une étiquette à l'intérieur de style de celui-ci, 136 00:07:40,000 --> 00:07:44,000 et cela aussi, je m'excuse, ressemble syntaxiquement très différent du HTML, 137 00:07:44,000 --> 00:07:47,000 mais on s'y habitue, où à l'intérieur de la balise de style 138 00:07:47,000 --> 00:07:50,000 Je peux maintenant factoriser ce qui était il ya un instant 139 00:07:50,000 --> 00:07:54,000 un attribut, l'attribut de style, et je peux le mettre tout en haut de ma page. 140 00:07:54,000 --> 00:07:56,000 >> Pourquoi? 141 00:07:56,000 --> 00:08:00,000 Eh bien, c'est une étape vers la nettoyer des choses, un peu comme dans l'écriture de code C 142 00:08:00,000 --> 00:08:04,000 il nous arrivait écrire des fonctions pour factoriser des fonctionnalités communes. 143 00:08:04,000 --> 00:08:07,000 C'est juste un peu plus propre pour commencer l'affacturage des choses comme l'esthétique 144 00:08:07,000 --> 00:08:11,000 dans un emplacement central plutôt que de l'avoir tout au long de votre intercaler HTML. 145 00:08:11,000 --> 00:08:14,000 Cela ne veut trop ce qu'il dit, même si il ya un peu de syntaxe nouvelle. 146 00:08:14,000 --> 00:08:19,000 Il s'agit ici d'un sélecteur, et le corps signifie suffit de sélectionner l'élément de corps 147 00:08:19,000 --> 00:08:21,000 et appliquer les propriétés suivantes à celui-ci. 148 00:08:21,000 --> 00:08:23,000 Eh bien, la propriété est exactement le même. 149 00:08:23,000 --> 00:08:25,000 Pour faire bonne mesure, j'ai ajouté un point-virgule à la fin, 150 00:08:25,000 --> 00:08:29,000 qui tend à être la convention, et je l'ai enveloppé cette propriété entière 151 00:08:29,000 --> 00:08:33,000 dans des accolades car je pouvais avoir des choses différentes ici. 152 00:08:33,000 --> 00:08:39,000 Je pouvais dire quelque chose comme color: blue; 153 00:08:39,000 --> 00:08:42,000 >> Maintenant, ce n'est pas non plus va être une étape vers quelque chose tout ce que jolie, 154 00:08:42,000 --> 00:08:47,000 mais si je reviens à la version 2, j'ai au moins fait maintenant le corps de mon 155 00:08:47,000 --> 00:08:49,000 Cette page a texte tout bleu. 156 00:08:49,000 --> 00:08:51,000 Le bouton reste le même, parce que c'est une entrée. Il ne s'agit pas du texte pur. 157 00:08:51,000 --> 00:08:56,000 Mais tout ce qui est du texte, comme CS50 Recherche en haut, est en fait bleu. 158 00:08:56,000 --> 00:09:01,000 Encore une fois, tout ce que nous avons fait aujourd'hui est de retirer de la balise body, avis, 159 00:09:01,000 --> 00:09:04,000 l'attribut de style, et nous avons pris il ici. 160 00:09:04,000 --> 00:09:08,000 Ce n'est pas une amélioration énorme, mais si nous prenons un peu plus loin 161 00:09:08,000 --> 00:09:10,000 remarquer ce que nous pouvons faire dans cette troisième version ici. 162 00:09:10,000 --> 00:09:14,000 >> En search3.html la page Web est presque identique 163 00:09:14,000 --> 00:09:17,000 sauf pour ce nouveau tag? 164 00:09:17,000 --> 00:09:20,000 Lien, si celui-ci n'est pas très bien son nom 165 00:09:20,000 --> 00:09:24,000 parce que vous n'êtes pas la liaison dans le sens d'un lien hypertexte cliquable. 166 00:09:24,000 --> 00:09:28,000 Au contraire, vous êtes en quelque sorte de faire l'équivalent de # include en C 167 00:09:28,000 --> 00:09:31,000 où la balise de lien avec un attribut href 168 00:09:31,000 --> 00:09:34,000 et un attribut rel dit aller de l'avant 169 00:09:34,000 --> 00:09:39,000 et copier coller le contenu d'un fichier appelé search3.css ici, essentiellement. 170 00:09:39,000 --> 00:09:42,000 Ce n'est pas tout à fait cela, mais c'est l'esprit de celui-ci. 171 00:09:42,000 --> 00:09:45,000 Il dit aller ouvrir ce fichier, search3.css, 172 00:09:45,000 --> 00:09:49,000 et de la traiter comme si l'utilisateur avait tapé ici, à la tête de la page 173 00:09:49,000 --> 00:09:51,000 comme je l'ai fait dans l'exemple précédent. 174 00:09:51,000 --> 00:09:54,000 Search3.css, quant à lui, est assez simple. 175 00:09:54,000 --> 00:09:58,000 Il contient vraiment exactement ce qui était il ya un instant 176 00:09:58,000 --> 00:10:03,000 dans la balise style, mais j'ai pris ça sur ici pour son propre fichier. 177 00:10:03,000 --> 00:10:07,000 >> Même si nous n'avons pas passé beaucoup de temps du tout en HTML ou en programmation web 178 00:10:07,000 --> 00:10:11,000 juste intuitivement ce qui est de la motivation, peut-être, pour la factorisation 179 00:10:11,000 --> 00:10:14,000 ce petit extrait de CSS, même dans son propre fichier 180 00:10:14,000 --> 00:10:19,000 puis l'inclure avec ce tag lien ici? 181 00:10:19,000 --> 00:10:21,000 [Réponse de l'élève inaudible] 182 00:10:21,000 --> 00:10:25,000 Bon, il est plus facile de lire dans le sens que vous avez votre code CSS dans un fichier CSS. 183 00:10:25,000 --> 00:10:28,000 Vous avez votre code HTML dans votre fichier HTML, il est donc plus lisible dans ce sens. 184 00:10:28,000 --> 00:10:30,000 Quoi d'autre pourrait être convaincant? Ouais. 185 00:10:30,000 --> 00:10:32,000 [Réponse de l'élève inaudible] 186 00:10:32,000 --> 00:10:35,000 Ouais, donc vous pouvez inclure plusieurs fois, alors maintenant nous faisons ces 187 00:10:35,000 --> 00:10:38,000 exemples de base avec des fichiers individuels, mais supposons que vous êtes en train de faire 188 00:10:38,000 --> 00:10:42,000 un vrai site comme vous voulez pour pset 7 ou votre projet final peut-être, 189 00:10:42,000 --> 00:10:45,000 et vous voulez avoir plusieurs pages Web, comme c'est certainement commune sur 190 00:10:45,000 --> 00:10:48,000 le Web réelle large, et il serait un peu boiteux 191 00:10:48,000 --> 00:10:52,000 d'avoir à copier et coller la même couleur bleue 192 00:10:52,000 --> 00:10:56,000 et le même texte aligné centre dans chacune de ces pages. 193 00:10:56,000 --> 00:10:59,000 Au contraire, il est plus judicieux de factoriser, un peu comme nous l'avons fait en C 194 00:10:59,000 --> 00:11:02,000 avec le fichier. h, mettez-le dans un endroit central, 195 00:11:02,000 --> 00:11:06,000 dans ce cas search3.css, puis laisser n'importe quel fichier 196 00:11:06,000 --> 00:11:11,000 dans votre site Web à fait inclure ce fichier par le biais de ce tag ici à la ligne 16. 197 00:11:11,000 --> 00:11:14,000 Comme c'est généralement le cas, nous avons commencé avec la version 0, le type de travaux 198 00:11:14,000 --> 00:11:18,000 mais n'est pas nécessairement le meilleur, et à chaque étape, 199 00:11:18,000 --> 00:11:21,000 recherche 1, de recherche 2 et 3, nous avons maintenant chercher avons pris ces mesures pour bébés 200 00:11:21,000 --> 00:11:26,000 vers des conceptions qui sont un peu plus propre et plus préparatoires 201 00:11:26,000 --> 00:11:30,000 pour les pages plus complexes que nous pourrions faire sur la route. 202 00:11:30,000 --> 00:11:33,000 >> Permettez-moi d'ouvrir ici un dernier exemple juste pour montrer 203 00:11:33,000 --> 00:11:36,000 une page encore plus stylisée, mais d'abord, regardons le code HTML. 204 00:11:36,000 --> 00:11:41,000 C'est search4.html, et notez que structurellement c'est presque la même 205 00:11:41,000 --> 00:11:44,000 à l'exception de l'introduction d'une nouvelle balise, div. 206 00:11:44,000 --> 00:11:48,000 Div est une balise qui introduit une division de la page. 207 00:11:48,000 --> 00:11:51,000 Vous pouvez considérer cela comme un rectangle invisible. 208 00:11:51,000 --> 00:11:54,000 Il crée en quelque sorte une bande de zone dans la page Web 209 00:11:54,000 --> 00:11:56,000 que vous pouvez styliser tout à la fois. 210 00:11:56,000 --> 00:11:58,000 Qu'est-ce que j'ai fait ici est la suivante. 211 00:11:58,000 --> 00:12:01,000 A l'intérieur de ma balise body, qui a toujours été là, 212 00:12:01,000 --> 00:12:05,000 Je dis créer une division de la page ici par des lignes 45 à 47, 213 00:12:05,000 --> 00:12:09,000 ce qui signifie essentiellement me donner un rectangle invisible en haut de la page. 214 00:12:09,000 --> 00:12:14,000 Alors donnez-moi un second rectangle, quoique invisible, en dessous, 215 00:12:14,000 --> 00:12:16,000 et l'identifier par la teneur nom, puis enfin, 216 00:12:16,000 --> 00:12:19,000 donnez-moi une troisième division de la page en bas 217 00:12:19,000 --> 00:12:21,000 appelé ID. 218 00:12:21,000 --> 00:12:23,000 Nous allons voir pourquoi j'ai fait cela dans un instant, 219 00:12:23,000 --> 00:12:26,000 mais conceptuellement J'ai une division en-tête. 220 00:12:26,000 --> 00:12:30,000 J'ai une division du contenu, et j'ai une division de bas de page de la page 221 00:12:30,000 --> 00:12:32,000 même si ce ne sont que dans le balisage. 222 00:12:32,000 --> 00:12:35,000 L'utilisateur n'est pas d'aller voir 3 rectangles, 223 00:12:35,000 --> 00:12:37,000 mais il sorte de structure dans les coulisses 224 00:12:37,000 --> 00:12:39,000 ils sont effectivement présents. 225 00:12:39,000 --> 00:12:41,000 >> Maintenant, qui s'en soucie? Pourquoi fait cela? 226 00:12:41,000 --> 00:12:43,000 Tout le reste de la page est le même que nous avons vu auparavant. 227 00:12:43,000 --> 00:12:47,000 Voici mon formulaire. Voici ma contribution, ma contribution, un saut de ligne et ainsi de suite. 228 00:12:47,000 --> 00:12:50,000 Voici une image, mais alors nous verrons où cela vient dans un instant. 229 00:12:50,000 --> 00:12:52,000 Voici un pied de page, ce qui est nouveau, juste parce que je voulais mettre en place 230 00:12:52,000 --> 00:12:54,000 contenu un peu plus ici. 231 00:12:54,000 --> 00:12:58,000 Si nous défiler vers le haut remarquerez que l'ID de ce div est d'en-tête. 232 00:12:58,000 --> 00:13:02,000 L'ID de cette div est contenu, et l'identifiant de celui-ci est de bas de page. 233 00:13:02,000 --> 00:13:05,000 Et comme son nom l'indique, lorsque vous avez un attribut ID 234 00:13:05,000 --> 00:13:09,000 en HTML, par définition, il doit identifier 235 00:13:09,000 --> 00:13:12,000 l'un des éléments, l'un des balises dans votre page. 236 00:13:12,000 --> 00:13:16,000 Le fardeau est totalement de vous rappeler que vous avez un code d'en-tête déjà. 237 00:13:16,000 --> 00:13:19,000 Vous avez un pied de page. Vous avez déjà un ID de contenu. 238 00:13:19,000 --> 00:13:22,000 L'ordinateur ne va pas comprendre ce que l'ID disponible est pour vous, 239 00:13:22,000 --> 00:13:27,000 de sorte que vous pourriez accidentellement donner 2 balises d'en-tête d'un ID, 240 00:13:27,000 --> 00:13:29,000 et ce serait juste faux. 241 00:13:29,000 --> 00:13:31,000 >> Vous devez garder à l'esprit ce que vous avez créée, 242 00:13:31,000 --> 00:13:34,000 mais une fois que vous avez fait cela préavis ce que nous pouvons faire ici. 243 00:13:34,000 --> 00:13:38,000 Je peux maintenant spécifier dans ma balise de style au sommet 244 00:13:38,000 --> 00:13:41,000 ou de manière équivalente dans mon fichier CSS, si j'étais encore en utilisant cette version, 245 00:13:41,000 --> 00:13:46,000 Je peux dire # header, et ce que cela signifie, c'est que quel que soit tag 246 00:13:46,000 --> 00:13:49,000 dans cette page web a un ID de tête 247 00:13:49,000 --> 00:13:53,000 et #, juste par convention humaine, représente l'ID. 248 00:13:53,000 --> 00:13:56,000 Le signe dièse ou le signe dièse représente l'ID. 249 00:13:56,000 --> 00:13:58,000 En-tête est le nom que je lui ai donné. 250 00:13:58,000 --> 00:14:01,000 Cela signifie appliquer cette propriété CSS 251 00:14:01,000 --> 00:14:04,000 à tout ce tag dans cette page porte un ID de tête. 252 00:14:04,000 --> 00:14:06,000 Même affaire ici. 253 00:14:06,000 --> 00:14:09,000 Appliquer cette propriété, qui se trouve être le même, à n'importe quel élément 254 00:14:09,000 --> 00:14:11,000 dont l'identifiant est contenu, et puis ici 255 00:14:11,000 --> 00:14:14,000 remarquerez que je me suis un peu amateur avec pied de page. 256 00:14:14,000 --> 00:14:18,000 Tout élément dont l'ID est de bas de page, dont il peut y avoir qu'un seul par définition, 257 00:14:18,000 --> 00:14:21,000 aller de l'avant et de faire sa taille de police plus petite, 258 00:14:21,000 --> 00:14:24,000 son audacieuse poids de la police, sa marge de 20 pixels. 259 00:14:24,000 --> 00:14:26,000 >> Qu'est-ce que ça veut dire? 260 00:14:26,000 --> 00:14:28,000 C'est juste une marge sur le haut, le bas, la gauche et la droite. 261 00:14:28,000 --> 00:14:31,000 Cela signifie me donner une marge de 20 pixels invisibles autour d'elle 262 00:14:31,000 --> 00:14:35,000 juste pour pousser tout le reste loin de lui un peu, comme vous le feriez dans Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word ou Pages ou similaire. 264 00:14:37,000 --> 00:14:39,000 Et puis le texte align center. 265 00:14:39,000 --> 00:14:43,000 Voyons le résultat final, et puis nous allons revenir à l'extrait de celle qui reste du CSS là. 266 00:14:43,000 --> 00:14:48,000 Ceci est la version 4, le dernier des exemples de recherche, et c'est beaucoup, beaucoup plus sexy. 267 00:14:48,000 --> 00:14:54,000 Maintenant, pour être juste, je viens de googlé "générateur de google logo de la police." 268 00:14:54,000 --> 00:14:58,000 Et cela m'a permis de créer un fichier GIF, un format d'image, qui ressemble à celui là. 269 00:14:58,000 --> 00:15:00,000 En fait, vous pouvez le faire aussi. 270 00:15:00,000 --> 00:15:03,000 Nous avons "générateur de logo google polices." 271 00:15:03,000 --> 00:15:05,000 >> Voyons voir si nous pouvons faire cela. 272 00:15:05,000 --> 00:15:07,000 Bon, je pense que c'est le site que j'ai utilisé. 273 00:15:07,000 --> 00:15:11,000 Nous pouvons dire Ec 10, par exemple, et se les approprier. 274 00:15:11,000 --> 00:15:13,000 Vous pouvez jouer avec toute la journée longue, puis faites un clic droit sur l' 275 00:15:13,000 --> 00:15:16,000 et ensuite télécharger le réel GIF, qui est tout ce que j'ai fait. 276 00:15:16,000 --> 00:15:19,000 Et en effet, c'est pour cela que dans mon HTML, de rappeler ici 277 00:15:19,000 --> 00:15:22,000 J'ai eu une balise d'image, dont nous avons vu brièvement la semaine dernière 278 00:15:22,000 --> 00:15:24,000 dont la source est logo.gif. 279 00:15:24,000 --> 00:15:28,000 Et quoi encore était la motivation pour avoir cet attribut alt, 280 00:15:28,000 --> 00:15:31,000 cet attribut alternative? 281 00:15:31,000 --> 00:15:33,000 Ouais. 282 00:15:33,000 --> 00:15:35,000 [Réponse de l'élève inaudible] 283 00:15:35,000 --> 00:15:37,000 Bon, alors 2 raisons vraiment, si le navigateur ne peut pas tirer vers le haut l'image 284 00:15:37,000 --> 00:15:40,000 parce que vous avez une connexion réseau lente ou si l'image est corrompue 285 00:15:40,000 --> 00:15:44,000 ou quelque chose comme ça au moins l'humain peut voir "CS50 recherche», 286 00:15:44,000 --> 00:15:46,000 et puis aussi pour des raisons d'accessibilité. 287 00:15:46,000 --> 00:15:48,000 Si vous avez un utilisateur qui est aveugle et utilise un lecteur d'écran 288 00:15:48,000 --> 00:15:50,000 et par conséquent ne peuvent évidemment pas voir les images qu'ils peuvent au moins 289 00:15:50,000 --> 00:15:52,000 entendre le texte si leur ordinateur, il leur parle. 290 00:15:52,000 --> 00:15:56,000 >> En général, il est préférable de pratiquer quand il s'agit de l'accessibilité des pages 291 00:15:56,000 --> 00:16:00,000 de sorte que les utilisateurs, même dans cette situation peut entendre ou voir, pour ainsi dire, 292 00:16:00,000 --> 00:16:03,000 qu'est-ce que c'est sur votre page. 293 00:16:03,000 --> 00:16:05,000 Il ya une autre chose que j'ai fait ici 294 00:16:05,000 --> 00:16:09,000 qui est un peu intéressant, et nous verrons plus sur ce problème dans set 7 295 00:16:09,000 --> 00:16:12,000 via un des courts métrages dirigés par l'un des compagnons d'enseignement. 296 00:16:12,000 --> 00:16:15,000 Mais # contenu se réfère à la balise 297 00:16:15,000 --> 00:16:20,000 dont l'identifiant est contenu, mais alors il ya un espace, et puis il ya le mot d'entrée. 298 00:16:20,000 --> 00:16:25,000 Eh bien, ce qui est intéressant à propos de CSS est que vous pouvez 299 00:16:25,000 --> 00:16:29,000 reportez-vous aux étiquettes dans une sorte page de façon hiérarchique, 300 00:16:29,000 --> 00:16:33,000 et ce que ce bout de moyens CSS est de trouver la balise 301 00:16:33,000 --> 00:16:37,000 dont l'identifiant est contenu, et ensuite appliquer les propriétés suivantes 302 00:16:37,000 --> 00:16:42,000 à toutes les étiquettes d'entrée qui sont des descendants de contenu, 303 00:16:42,000 --> 00:16:44,000 c'est ce que sont mis en retrait à l'intérieur de celui-ci. 304 00:16:44,000 --> 00:16:48,000 Indentation, encore une fois, est seulement important de l'ordinateur et non à l'être humain, 305 00:16:48,000 --> 00:16:51,000 mais par convention, nous tiret choses comme nous aller plus loin dans une page, 306 00:16:51,000 --> 00:16:54,000 si cela signifie appliquer une marge de 5 pixels à n'importe quel élément d'entrée 307 00:16:54,000 --> 00:16:57,000 c'est quelque part à l'intérieur ou imbriquées à l'intérieur des 308 00:16:57,000 --> 00:16:59,000  l'élément dont l'ID est contenu. 309 00:16:59,000 --> 00:17:01,000 >> Qui est-ce que s'appliquent-elles? 310 00:17:01,000 --> 00:17:03,000 Eh bien, il ya en fait seulement ces 2 gars ici. 311 00:17:03,000 --> 00:17:05,000 Notez que l'intérieur de la forme, il ya 2 entrées, 312 00:17:05,000 --> 00:17:07,000 comme il a été pour tous ces exemples. 313 00:17:07,000 --> 00:17:11,000 Mais remarquez que ces 2 entrées se trouvent être imbriquées à l'intérieur, 314 00:17:11,000 --> 00:17:13,000 quoique un peu profondément, un couple de couches indentation, 315 00:17:13,000 --> 00:17:16,000 à l'intérieur de la balise dont l'ID est contenu. 316 00:17:16,000 --> 00:17:18,000 Qu'est-ce que cela signifie? 317 00:17:18,000 --> 00:17:21,000 Si nous allons vers le navigateur vous pouvez voir ici un tant soit peu- 318 00:17:21,000 --> 00:17:23,000 permettez-moi de zoomer-ce que il ya un peu de rembourrage entre le bouton 319 00:17:23,000 --> 00:17:25,000 et entre la zone de texte. 320 00:17:25,000 --> 00:17:27,000 >> Permettez-moi de mettre temporairement hors que. 321 00:17:27,000 --> 00:17:30,000 Permettez-moi de remonter vers mon CSS, et laissez-moi aller de l'avant et juste 322 00:17:30,000 --> 00:17:34,000 changer cette marge de 5 pixels à 0 pixels. 323 00:17:34,000 --> 00:17:37,000 Permettez-moi aller de l'avant alors et enregistrez le fichier, revenez au moteur de recherche 324 00:17:37,000 --> 00:17:40,000 et de recharger, et de regarder le milieu de la page. 325 00:17:40,000 --> 00:17:43,000 Tout a été comprimées ensemble, et quand je suis fouettée cet exemple jusqu'à 326 00:17:43,000 --> 00:17:46,000 Je pensais que l'air stupide avec le champ de texte, puis sur le bouton juste en dessous. 327 00:17:46,000 --> 00:17:50,000 Je voulais pad c'est un peu, alors j'ai introduit des marges. 328 00:17:50,000 --> 00:17:55,000 Ce que nous ne ferons pas dans la conférence est de passer par la plusieurs dizaines de 329 00:17:55,000 --> 00:17:58,000 Propriétés CSS qui existent parce que, encore une fois, il ya des choses comme la taille de la police, 330 00:17:58,000 --> 00:18:02,000 poids de la police, de la marge, le texte aligner, et quelques dizaines d'autres, 331 00:18:02,000 --> 00:18:06,000 et nous allons vous renvoyer à problème posé 7 à différents tutoriels en ligne 332 00:18:06,000 --> 00:18:08,000 et des références qui vous permettent de choisir ces choses. 333 00:18:08,000 --> 00:18:10,000 Mais ce qui est vraiment important à la fin de la journée 334 00:18:10,000 --> 00:18:12,000 >> est de comprendre comment ces choses sont appliquées. 335 00:18:12,000 --> 00:18:15,000 Encore une fois, si nous avons l'étiquette à l'intérieur de style dont 336 00:18:15,000 --> 00:18:19,000 peuvent aller les sélecteurs, le tri des identificateurs qui spécifient 337 00:18:19,000 --> 00:18:21,000 à qui voulez-vous appliquer ces propriétés, 338 00:18:21,000 --> 00:18:24,000 et puis vous mettez les propriétés comme la paire valeur-clé 339 00:18:24,000 --> 00:18:28,000 séparés par deux points et terminé par un point virgule, 340 00:18:28,000 --> 00:18:32,000 ou vous pouvez ripper tout cela et de le mettre dans un fichier CSS séparé 341 00:18:32,000 --> 00:18:35,000 lui-même. 342 00:18:35,000 --> 00:18:39,000 Tout droit, toute question sur les concepts 343 00:18:39,000 --> 00:18:41,000 ou la grande image de CSS? 344 00:18:41,000 --> 00:18:43,000 Vous voyez encore plus de lui dans pset 7, 345 00:18:43,000 --> 00:18:47,000 mais on garde ça en général assez simple. 346 00:18:47,000 --> 00:18:49,000 Non? Très bien. 347 00:18:49,000 --> 00:18:51,000 Il est temps pour un langage de programmation proprement dite, 348 00:18:51,000 --> 00:18:54,000 et nous y reviendrons un peu de CSS sous la forme d'un exemple. 349 00:18:54,000 --> 00:18:58,000 PHP est en fait une langue merveilleusement accessible 350 00:18:58,000 --> 00:19:02,000 en ce qu 'elle est à peu près équivalent à syntaxiquement C. 351 00:19:02,000 --> 00:19:06,000 En d'autres termes, si vous connaissez le C, vous le savez pour la plupart, PHP, 352 00:19:06,000 --> 00:19:08,000 au moins syntaxiquement, même s'il ya quelques nouvelles fonctionnalités 353 00:19:08,000 --> 00:19:10,000 et quelques nouveaux concepts que nous aurons à regarder. 354 00:19:10,000 --> 00:19:13,000 >> Mais la plupart du temps, maintenant que nous avons de transition de C à PHP 355 00:19:13,000 --> 00:19:16,000 la plupart des choses est vraiment nouveau dans le grand tableau, 356 00:19:16,000 --> 00:19:19,000 la façon dont vous utilisez un langage de programmation sur le Web, par opposition à 357 00:19:19,000 --> 00:19:23,000 à la ligne de commande ou dans une invite de clignoter comme nous l'avons fait jusqu'à présent. 358 00:19:23,000 --> 00:19:27,000 À titre de référence, en particulier avec pset 7 et le projet final en avant, 359 00:19:27,000 --> 00:19:31,000 ne profiter de cette URL ici si vous voulez lire sur les formalités de PHP. 360 00:19:31,000 --> 00:19:34,000 Il s'agit en fait comme un manuel en ligne gratuit efficacement, 361 00:19:34,000 --> 00:19:37,000 et vous trouverez aussi que ce qui est vraiment bien avec PHP 362 00:19:37,000 --> 00:19:41,000 est qu'il ya des centaines de fonctions qui vont avec, 363 00:19:41,000 --> 00:19:44,000 alors qu'en C vous n'avez pas nécessairement accès à 364 00:19:44,000 --> 00:19:47,000 plus de fonctions que ne l'étaient dans la bibliothèque mathématique, la bibliothèque CS50. 365 00:19:47,000 --> 00:19:51,000 En PHP, et un grand nombre de langues modernes, Python et Ruby parmi eux, 366 00:19:51,000 --> 00:19:54,000 vous aurez accès à tellement de fonctions plus, ce qui signifie que vous obtenez pour écrire 367 00:19:54,000 --> 00:19:57,000 beaucoup moins de code que vous pouvez vous tenir sur les épaules des autres personnes 368 00:19:57,000 --> 00:19:59,000 qui ont déjà écrit certaines choses pour vous. 369 00:19:59,000 --> 00:20:03,000 >> Jetons un rapide tour d'horizon de la syntaxe de PHP et puis écrire quelques exemples. 370 00:20:03,000 --> 00:20:06,000 Ce qui est bien sur PHP abord et avant tout 371 00:20:06,000 --> 00:20:08,000 est il n'ya pas de fonction principale. 372 00:20:08,000 --> 00:20:10,000 Si vous voulez écrire un programme en PHP que vous venez de commencer à écrire du code, 373 00:20:10,000 --> 00:20:12,000 et vous n'avez pas à vous soucier principale. 374 00:20:12,000 --> 00:20:14,000 Il n'y a aucun int. Il n'y a pas de retour. 375 00:20:14,000 --> 00:20:17,000 Il n'ya pas de argv, argc qui est nécessaire lorsque vous écrivez le programme. 376 00:20:17,000 --> 00:20:20,000 Plutôt que vous pouvez juste commencer à écrire du code, et c'est en partie 377 00:20:20,000 --> 00:20:23,000 parce que PHP est ce qu'on appelle un langage interprété. 378 00:20:23,000 --> 00:20:26,000 C a été compilé, et il a été compilé dans le sens que vous commencez 379 00:20:26,000 --> 00:20:29,000 avec le code source, le lancer à travers Clang, qui est un compilateur, 380 00:20:29,000 --> 00:20:33,000 et, finalement, après un certain nombre d'étapes que vous obtenez le code objet, 0 et de 1. 381 00:20:33,000 --> 00:20:36,000 PHP et Python et Ruby et Pearl et d'autres 382 00:20:36,000 --> 00:20:39,000 existe différents types de langues en ce que vous ne les compiler. 383 00:20:39,000 --> 00:20:42,000 Tu ne vas pas partir du code source de 0 et de 1. 384 00:20:42,000 --> 00:20:45,000 Il vous suffit d'exécuter le code source, et que vous exécutez le code source 385 00:20:45,000 --> 00:20:49,000 par écrit dans un fichier texte ordinaire, se terminant par. php dans ce cas, 386 00:20:49,000 --> 00:20:53,000 au lieu de. c, et de ce fait le programme sur votre ordinateur 387 00:20:53,000 --> 00:20:57,000 est l'interprète littéralement votre code ligne par ligne par ligne. 388 00:20:57,000 --> 00:21:00,000 >> En d'autres termes, plutôt que d'écrire un programme et exécutez le programme 389 00:21:00,000 --> 00:21:04,000 directement vous au lieu d'écrire un programme avec un fichier se terminant par. php. 390 00:21:04,000 --> 00:21:09,000 Ensuite, vous exécutez un programme qui s'appelle php.exe, si vous êtes sous Windows, 391 00:21:09,000 --> 00:21:12,000 ou tout simplement PHP si vous êtes sur Mac OS ou Linux, 392 00:21:12,000 --> 00:21:17,000 et de vous fournir en entrée au programme PHP votre propre code source, 393 00:21:17,000 --> 00:21:20,000 et son but dans la vie est de lire votre code de haut en bas, de gauche à droite, 394 00:21:20,000 --> 00:21:23,000 et faites ce que vous avez dit de faire. 395 00:21:23,000 --> 00:21:25,000 >> Voyons voir ce que cela va signifier syntaxiquement. 396 00:21:25,000 --> 00:21:27,000 En PHP, nous avons conditions. 397 00:21:27,000 --> 00:21:29,000 Cette diapositive est identique à ce que vous avez vu revenir dans la semaine 1 398 00:21:29,000 --> 00:21:33,000 parce que syntaxiquement conditions, IFS et IFS else et else en PHP 399 00:21:33,000 --> 00:21:35,000 exactement comme ça. 400 00:21:35,000 --> 00:21:38,000 Quand il s'agit de les expressions booléennes ils vont ressembler exactement cela. 401 00:21:38,000 --> 00:21:43,000 Quand il s'agit de Anding choses ensemble comme des booléens ça va ressembler exactement cela. 402 00:21:43,000 --> 00:21:46,000 Interrupteurs le même aspect, et vous obtenez l'avantage supplémentaire en PHP 403 00:21:46,000 --> 00:21:51,000 que les commutateurs C ne pouvait passer sur un char ou un int. 404 00:21:51,000 --> 00:21:53,000 On ne pouvait pas passer sur une valeur de chaîne. 405 00:21:53,000 --> 00:21:55,000 En PHP, vous pouvez en fait avoir une expression 406 00:21:55,000 --> 00:21:58,000 qui est une variable dont le contenu est une chaîne de caractères, 407 00:21:58,000 --> 00:22:01,000 et vous pouvez réellement faire une comparaison de chaînes dans la vraie façon intuitive, 408 00:22:01,000 --> 00:22:06,000 comparaison pointeur non, afin de décider s'il ya lieu de faire cas i ou j ou autre chose. 409 00:22:06,000 --> 00:22:09,000 Nous allons voir ce que pourrait avant longtemps. 410 00:22:09,000 --> 00:22:11,000 >> Boucles trop merveilleusement sont les mêmes. 411 00:22:11,000 --> 00:22:15,000 Pour les boucles ont une initialisation, une condition, et un certain nombre de mises à jour. 412 00:22:15,000 --> 00:22:18,000 Alors que les boucles existent aussi en PHP. 413 00:22:18,000 --> 00:22:21,000 Faire des boucles while existent aussi en PHP, 414 00:22:21,000 --> 00:22:26,000 et les tableaux existent en PHP, mais c'est ici que la syntaxe commence à être un peu différent, 415 00:22:26,000 --> 00:22:29,000 mais les concepts sont les mêmes, et les concepts sont vraiment la même 416 00:22:29,000 --> 00:22:32,000 comme ils étaient dans 0 Semaine avec Scratch. 417 00:22:32,000 --> 00:22:34,000 D'abord et avant tout, c'est le signe $. 418 00:22:34,000 --> 00:22:37,000 Il s'agissait d'une décision de conception dans laquelle une variable PHP 419 00:22:37,000 --> 00:22:41,000 en PHP par la conception commence avec signe $. 420 00:22:41,000 --> 00:22:46,000 Il n'y a plus aucun X, Y, Z. Il est maintenant X $, $ Y, Z $ juste parce que. 421 00:22:46,000 --> 00:22:49,000 C'est quelque chose à garder à l'esprit, et maintenant sur le côté droit 422 00:22:49,000 --> 00:22:52,000 ce ressemble à un tableau, 423 00:22:52,000 --> 00:22:54,000 mais nous utilisons ici entre crochets. 424 00:22:54,000 --> 00:22:57,000 En PHP et JavaScript que nous finirons par voir, 425 00:22:57,000 --> 00:23:01,000 pour déclarer un tableau que vous faites ouvert et fermé crochet crochet, 426 00:23:01,000 --> 00:23:04,000 et puis vous avez une liste séparée par des virgules des valeurs, que ce soit ints 427 00:23:04,000 --> 00:23:09,000 ou des chaînes ou des chars, ce que vous voulez, à l'intérieur de cette expression là. 428 00:23:09,000 --> 00:23:11,000 >> Maintenant, comment avons-nous fait quelque chose comme cela en C? 429 00:23:11,000 --> 00:23:16,000 Quelle a été la syntaxe pour déclarer statiquement un tableau de nombres connus? 430 00:23:16,000 --> 00:23:19,000 C'était accolades, si peu de différence ici, mais en PHP 431 00:23:19,000 --> 00:23:22,000 et, finalement, il utilise juste JavaScript crochets, donc vraiment 432 00:23:22,000 --> 00:23:25,000 le seul détail intéressant ici, c'est le signe $ pour le nom de la variable 433 00:23:25,000 --> 00:23:28,000 et aussi les crochets, et il ya une chose curieuse 434 00:23:28,000 --> 00:23:32,000 qui a été omis aussi bien sur le côté gauche du signe =. 435 00:23:32,000 --> 00:23:36,000 Ce qui manque, ce que nous avons besoin depuis des semaines? Ouais. 436 00:23:36,000 --> 00:23:38,000 [Réponse de l'élève inaudible] 437 00:23:38,000 --> 00:23:41,000 La taille, donc il n'y a aucune mention de la taille du tableau. 438 00:23:41,000 --> 00:23:45,000 Franchement, il n'y a aucune mention de crochets sur le côté gauche 439 00:23:45,000 --> 00:23:47,000 du signe =, et quoi d'autre est absent de la ligne? 440 00:23:47,000 --> 00:23:49,000 Ouais. >> [Réponse de l'élève inaudible] 441 00:23:49,000 --> 00:23:52,000 Le type, donc ce qui est intéressant, en particulier à propos de PHP 442 00:23:52,000 --> 00:23:56,000 c'est que ce n'est pas un langage fortement typé comme C est, 443 00:23:56,000 --> 00:23:58,000 et qui est fortement typé dans le sens que vous devez dire char, 444 00:23:58,000 --> 00:24:00,000 vous devez dire int, float, vous devez dire. 445 00:24:00,000 --> 00:24:03,000 >> Chaque fois que vous voulez une variable que vous avez à dire à ce Clang son type est. 446 00:24:03,000 --> 00:24:05,000 PHP est un peu paresseux. 447 00:24:05,000 --> 00:24:08,000 Il est typé dans le sens où 448 00:24:08,000 --> 00:24:11,000 vous pouvez avoir des flotteurs et les caractères et les chaînes 449 00:24:11,000 --> 00:24:14,000 et ints et ainsi de suite, mais la langue elle-même 450 00:24:14,000 --> 00:24:17,000 ne s'intéressent pas vraiment ce que vous mettez à l'intérieur d'une variable. 451 00:24:17,000 --> 00:24:20,000 Vous n'avez pas à informer à l'avance ce type de données 452 00:24:20,000 --> 00:24:22,000 va dans une variable. 453 00:24:22,000 --> 00:24:24,000 C'est entièrement à vous, donc c'est sympa 454 00:24:24,000 --> 00:24:27,000 en ce que vous n'avez pas à s'inquiéter autant de données en tapant 455 00:24:27,000 --> 00:24:29,000 et s'inquiéter de ce que vos arguments sont et ainsi de suite. 456 00:24:29,000 --> 00:24:32,000 Cela signifie aussi éventuellement des fonctions de PHP vont être en mesure de retourner 457 00:24:32,000 --> 00:24:36,000 soit plus un int du temps, et peut-être de temps en temps 458 00:24:36,000 --> 00:24:40,000 ils vont retourner un bool, un booléen faux, par exemple, pour signifier que quelque chose s'est mal passé. 459 00:24:40,000 --> 00:24:44,000 Cela nous donne quelques bons côtés, mais aussi nous rendra genre de par sa conception 460 00:24:44,000 --> 00:24:47,000 un peu paresseux quand il s'agit de typage des données. 461 00:24:47,000 --> 00:24:50,000 >> Qu'y at-il de garder à l'esprit ici? 462 00:24:50,000 --> 00:24:54,000 Variables air tout à fait comme ça, donc $ s = "Bonjour, monde." 463 00:24:54,000 --> 00:24:57,000 C'est peut-être déductible de l'exemple précédent, 464 00:24:57,000 --> 00:24:59,000 et nous avons un autre type de boucle. 465 00:24:59,000 --> 00:25:02,000 Celui-ci nous fait voir de temps en temps car il est tout à fait maniable, 466 00:25:02,000 --> 00:25:04,000 un foreach construire. 467 00:25:04,000 --> 00:25:11,000 Dans ce cas, la boucle foreach emmène à l'intérieur de ses parenthèses 3 mots typiquement, 468 00:25:11,000 --> 00:25:16,000 $ Quelque chose d'abord, qui est ce tableau ne vous voulez effectuer une itération sur les membres de, 469 00:25:16,000 --> 00:25:19,000 alors littéralement le mot-clé sous, puis enfin, 470 00:25:19,000 --> 00:25:21,000 un autre nom de la variable que vous aurez à choisir. 471 00:25:21,000 --> 00:25:23,000 Il peut être foo, bar, ou un élément, 472 00:25:23,000 --> 00:25:26,000 et ce que cette construction ne 473 00:25:26,000 --> 00:25:29,000 est de savoir si le tableau $ contient 10 éléments 474 00:25:29,000 --> 00:25:34,000 à chaque itération de ce tableau, pardon, à chaque itération de cette boucle 475 00:25:34,000 --> 00:25:37,000 l'élément variable appelée va être mis à jour 476 00:25:37,000 --> 00:25:40,000 d'être le premier élément de la matrice, puis le deuxième élément dans la matrice, 477 00:25:40,000 --> 00:25:44,000 puis le troisième élément de la matrice, éliminant ainsi la nécessité 478 00:25:44,000 --> 00:25:46,000 pour faire la notation crochets légèrement ennuyeux carré et 479 00:25:46,000 --> 00:25:49,000 $ I afin de les indexer dans un tableau. 480 00:25:49,000 --> 00:25:53,000 PHP fait tout ce travail pour vous et à chaque itération 481 00:25:53,000 --> 00:25:55,000 tend simplement vous le prochain élément du tableau 482 00:25:55,000 --> 00:26:01,000 sans avoir à connaître ou se soucier de son emplacement d'index numérique. 483 00:26:01,000 --> 00:26:04,000 >> Et puis enfin, pour l'instant, il ya une autre caractéristique de PHP 484 00:26:04,000 --> 00:26:08,000 qui va être extrêmement utile, surtout quand on commence la programmation sur le Web, 485 00:26:08,000 --> 00:26:10,000 et qui est connu comme un tableau associatif. 486 00:26:10,000 --> 00:26:13,000 Les tableaux que nous connaissons à ce jour que de 20 secondes il ya 487 00:26:13,000 --> 00:26:17,000 et pour les 8 dernières semaines sont indexé numériquement des tableaux, 488 00:26:17,000 --> 00:26:20,000 sorte de baies traditionnelles où les indices sont des entiers, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, sur tout le chemin vers le haut. 490 00:26:23,000 --> 00:26:25,000 Les tableaux associatifs sont beaucoup plus puissants. 491 00:26:25,000 --> 00:26:28,000 Ils vous permettent d'avoir des clés arbitraires, 492 00:26:28,000 --> 00:26:31,000 indices arbitraires et des valeurs arbitraires. 493 00:26:31,000 --> 00:26:34,000 Alors que dans un régime traditionnel, c'est 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 dans un tableau associatif, vous pouvez avoir un index 495 00:26:37,000 --> 00:26:41,000 ou une clé de foo dont la valeur est bar. 496 00:26:41,000 --> 00:26:46,000 Vous pouvez alors avoir une autre clé dont le nom est baz et dont la valeur est qux. 497 00:26:46,000 --> 00:26:49,000 >> Encore une fois, stupides informatique génériques des noms de variables ici, 498 00:26:49,000 --> 00:26:55,000 mais le fait est que ce tableau n'a pas tranche 0 ou support 1. 499 00:26:55,000 --> 00:26:59,000 Il est plutôt allez devoir support foo et baz support. 500 00:26:59,000 --> 00:27:03,000 C'est beaucoup plus souple en ce que nous allons être en mesure d'associer 501 00:27:03,000 --> 00:27:07,000 mots avec d'autres mots, les clés avec des valeurs tout à fait arbitrairement, 502 00:27:07,000 --> 00:27:12,000 et nous allons être en mesure d'obtenir ces valeurs dans le temps constant 503 00:27:12,000 --> 00:27:14,000 parce que sous le capot ce qu'est un tableau associatif 504 00:27:14,000 --> 00:27:16,000 est vraiment, c'est une table de hachage. 505 00:27:16,000 --> 00:27:20,000 Rappelons qu'une table de hachage permet de mettre en peu d'entrée 506 00:27:20,000 --> 00:27:25,000 comme mettre dans le David mot si vous voulez insérer David dans une sorte de dictionnaire, 507 00:27:25,000 --> 00:27:27,000 et puis vous revenez une valeur généralement. 508 00:27:27,000 --> 00:27:29,000 Dans le cas du correcteur orthographique, vrai ou faux. 509 00:27:29,000 --> 00:27:33,000 David ou peu importe le mot est ou n'est pas dans le dictionnaire. 510 00:27:33,000 --> 00:27:36,000 Un tableau associatif est vraiment juste une table de hachage, 511 00:27:36,000 --> 00:27:38,000 mais il est une incarnation beaucoup plus convivial de celui-ci. 512 00:27:38,000 --> 00:27:41,000 Comme nous le verrons, cela va nous permettre de faire certaines choses 513 00:27:41,000 --> 00:27:43,000 très, très facilement. 514 00:27:43,000 --> 00:27:45,000 >> Jetons un coup d'oeil à quelques-uns de base PHP 515 00:27:45,000 --> 00:27:47,000 exemples et voyons ce que nous pouvons faire avec ce langage. 516 00:27:47,000 --> 00:27:51,000 Permettez-moi aller de l'avant et d'ouvrir dans notre répertoire source aujourd'hui 517 00:27:51,000 --> 00:27:54,000 un fichier appelé hello1.php. 518 00:27:54,000 --> 00:27:57,000 Ce fichier est plus commentaire que c'est le code réel, 519 00:27:57,000 --> 00:28:00,000 Permettez-moi donc effectivement supprimer tous les commentaires à partir du fichier 520 00:28:00,000 --> 00:28:05,000 et de vous présenter peut-être le programme le plus simple PHP ici. 521 00:28:05,000 --> 00:28:07,000 5 lignes, et certains d'entre eux sont des espaces blancs, 522 00:28:07,000 --> 00:28:09,000 donc remarquer quelques différences clés ici. 523 00:28:09,000 --> 00:28:12,000 Le fichier est appelé hello1.php. 524 00:28:12,000 --> 00:28:16,000 La toute première ligne, cependant, est de 00:28:18,000 Dans le même esprit au format HTML, 526 00:28:18,000 --> 00:28:21,000 cette séquence de caractères indique à l'ordinateur 527 00:28:21,000 --> 00:28:25,000 "Hé, ordinateur, voici un programme que nous sommes en PHP." 528 00:28:25,000 --> 00:28:28,000 Il est sûr que ça ne se confond pas que c'est une autre langue. 529 00:28:28,000 --> 00:28:30,000 La ligne 2 est un espace intéressant blanc. 530 00:28:30,000 --> 00:28:32,000 La ligne 3 est notre vieil ami printf, 531 00:28:32,000 --> 00:28:34,000 cette fois dans le contexte de PHP. 532 00:28:34,000 --> 00:28:37,000 PHP dispose de sa propre version de printf qui se comporte exactement les mêmes, 533 00:28:37,000 --> 00:28:39,000 donc cela va juste écris "bonjour, monde." 534 00:28:39,000 --> 00:28:46,000 Et puis cette balise face ici,>, signifie que c'est pour mon code PHP. 535 00:28:46,000 --> 00:28:48,000 >> Voyons comment gérer cela. 536 00:28:48,000 --> 00:28:50,000 Je vais retourner dans ma fenêtre de terminal ici. 537 00:28:50,000 --> 00:28:52,000 Je vais aller dans mon répertoire PHP. 538 00:28:52,000 --> 00:28:56,000 Notez que nous avons tout un tas de fichiers, le premier de ce qui est hello.php. 539 00:28:56,000 --> 00:29:01,000 Permettez-moi aller de l'avant et exécutez ce hello1.php,, entrez. 540 00:29:01,000 --> 00:29:03,000 Permission denied. D'accord. 541 00:29:03,000 --> 00:29:06,000 Comment avons-nous fixé des choses comme ça dans le passé? 542 00:29:06,000 --> 00:29:08,000 Qu'est-ce que c'est? >> [Réponse de l'élève inaudible] 543 00:29:08,000 --> 00:29:11,000 Nous avons besoin lire et à écrire, mais laissez-moi faire ls-l. 544 00:29:11,000 --> 00:29:14,000 Se souvenir de cette sortie quelque peu énigmatique où hello1 545 00:29:14,000 --> 00:29:17,000 semble être lisible et modifiable par moi 546 00:29:17,000 --> 00:29:19,000 mais lisible par tout le monde. 547 00:29:19,000 --> 00:29:22,000 Il s'avère que ce n'est pas vraiment un pas dans la bonne direction. 548 00:29:22,000 --> 00:29:25,000 La différence, encore une fois, avec un langage interprété 549 00:29:25,000 --> 00:29:27,000 est de ne pas exécuter le programme directement. 550 00:29:27,000 --> 00:29:30,000 Vous exécutez plutôt un interprète et il remettra le code 551 00:29:30,000 --> 00:29:33,000 que vous avez écrit pour qu'il puisse l'interpréter ligne par ligne. 552 00:29:33,000 --> 00:29:36,000 Dans ce cas, l'interprète ou du programme En fait, je veux courir 553 00:29:36,000 --> 00:29:38,000 est littéralement appelé PHP. 554 00:29:38,000 --> 00:29:41,000 >> Quelque part sur ce disque dur de l'appareil il ya un programme 555 00:29:41,000 --> 00:29:45,000 quelqu'un d'autre a écrit appelé PHP, ou php.exe sous Windows. 556 00:29:45,000 --> 00:29:48,000 Ce que je vais faire ici, c'est que je vais diriger effectivement et en PHP 557 00:29:48,000 --> 00:29:51,000 mais il donne comme argument de ligne de commande le code que j'ai écrit, 558 00:29:51,000 --> 00:29:54,000 et puis je vais effectuer un zoom arrière et appuyez sur Entrée. 559 00:29:54,000 --> 00:29:58,000 Il s'exécute mon programme pour moi, de haut en bas, de gauche à droite. 560 00:29:58,000 --> 00:30:01,000 Permettez-moi aller de l'avant et d'ouvrir un léger écart de cela. 561 00:30:01,000 --> 00:30:05,000 Dans l'avis hello2.php que cela aussi 562 00:30:05,000 --> 00:30:08,000 est principalement commentaires, alors laissez-moi vous débarrasser de ces comme une distraction, 563 00:30:08,000 --> 00:30:13,000 et ce qui est bien différent aujourd'hui de ce dossier? 564 00:30:13,000 --> 00:30:15,000 Il ya cette nouvelle ligne, quelque peu énigmatique au sommet. 565 00:30:15,000 --> 00:30:20,000 En ligne 1 il est #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin est une convention sur Linux et Mac OS pour les binaires, 567 00:30:24,000 --> 00:30:27,000 si / bin signifie qu'il s'agit d'un dossier contenant un ensemble de binaires 568 00:30:27,000 --> 00:30:29,000 qui est programmée, dont l'un est PHP. 569 00:30:29,000 --> 00:30:32,000 La ligne #! est surnommé shebang, 570 00:30:32,000 --> 00:30:35,000 qui est la façon rapide de le dire, et ce que cela signifie 571 00:30:35,000 --> 00:30:40,000 est que lorsque vous exécutez ce programme maintenant, il ya une allusion à la partie supérieure du dossier 572 00:30:40,000 --> 00:30:44,000 qui indique à l'ordinateur interprète à utiliser. 573 00:30:44,000 --> 00:30:47,000 >> Cela devient un peu ennuyeux si vous aviez à dire à vos utilisateurs et vos clients 574 00:30:47,000 --> 00:30:50,000 «Hé, nous avons écrit ce programme appelé hello1.php." 575 00:30:50,000 --> 00:30:54,000 Tout ce que vous avez à faire est toujours de fonctionner PHP et le nom de ce programme. 576 00:30:54,000 --> 00:30:58,000 Franchement, il serait tout simplement plus agréable de courir hello1.php, 577 00:30:58,000 --> 00:31:00,000 et en effet, nous pouvons, si nous faisons ce qui suit. 578 00:31:00,000 --> 00:31:05,000 Permettez-moi aller de l'avant et de faire ls-l, et de l'avis de hello2 il est toujours juste de lire écrire 579 00:31:05,000 --> 00:31:10,000 puis lire lire, donc je ne peux pas encore le faire, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Mais nous avons introduit cette très brièvement la dernière fois, la commande chmod. 581 00:31:15,000 --> 00:31:20,000 Si je fais un chmod + x, ce qui signifie que tous les exécutabilité plus, 582 00:31:20,000 --> 00:31:26,000 puis hello2.php et puis ne ls-l à nouveau constater ce qui a changé. 583 00:31:26,000 --> 00:31:29,000 Un, Linux me montre le nom du fichier en vert pour exprimer l'idée 584 00:31:29,000 --> 00:31:32,000 qu'il est exécutable, mais plus important encore, sur le côté gauche 585 00:31:32,000 --> 00:31:36,000 remarquerez que le bit représentant x de l'exécutable a été réglée. 586 00:31:36,000 --> 00:31:42,000 Ce que cela signifie est maintenant je peux courir ./hello2.php comme d'habitude, 587 00:31:42,000 --> 00:31:45,000 appuyez sur Entrée, et à cause de tout le tralala tout en haut du fichier 588 00:31:45,000 --> 00:31:48,000 c'est un indice, encore une fois, qui dit à Linux 589 00:31:48,000 --> 00:31:51,000 utiliser cet interpréteur pour exécuter ce fichier. 590 00:31:51,000 --> 00:31:54,000 Ne vous inquiétez pas pour forcer l'utilisateur à entrer réellement. 591 00:31:54,000 --> 00:31:57,000 >> Et ce qui est bien, c'est maintenant que c'est un peu hors de propos à mes clients ou mes amis 592 00:31:57,000 --> 00:32:01,000 quelle langue j'ai écrit ce programme, afin que je puisse aller de l'avant avec mv 593 00:32:01,000 --> 00:32:04,000 et renommer cette chose hello2, par exemple. 594 00:32:04,000 --> 00:32:07,000 Et maintenant, si je le fais ./hello2 595 00:32:07,000 --> 00:32:10,000 et effectuer un zoom arrière mon programme continue à fonctionner. 596 00:32:10,000 --> 00:32:13,000 Ces extensions de fichiers sont une convention humaine qui est nécessaire 597 00:32:13,000 --> 00:32:15,000 pour quelque chose comme Clang et Make qui regardent pour eux. 598 00:32:15,000 --> 00:32:18,000 Mais pour PHP, je pourrais appeler ce que je veux extension de fichier. 599 00:32:18,000 --> 00:32:22,000 Je ne pouvais tromper le monde en pensant que je suis vraiment bon à Ruby, 600 00:32:22,000 --> 00:32:25,000 et je pourrais écrire hello2.rb puis exécutez ce, 601 00:32:25,000 --> 00:32:28,000 et voila, maintenant j'ai la version Ruby, qui est un mensonge complet. 602 00:32:28,000 --> 00:32:30,000 Mais les extensions de fichiers sont vides de sens 603 00:32:30,000 --> 00:32:35,000 si le fichier est exécutable et a cette astuce spéciale au début du fichier. 604 00:32:35,000 --> 00:32:38,000 >> Maintenant, en passant, permettez-moi de vous montrer rapidement la version 3, 605 00:32:38,000 --> 00:32:40,000 qui est une sorte de truc utile à savoir. 606 00:32:40,000 --> 00:32:45,000 En hello3 je faisais quelque chose ne tourne pas rond 607 00:32:45,000 --> 00:32:47,000 que je vais mettre à jour le code source en ligne. 608 00:32:47,000 --> 00:32:50,000 Dans la version 3, il s'avère que la plupart des ordinateurs Linux 609 00:32:50,000 --> 00:32:53,000 il ya un programme appelé env pour l'environnement, 610 00:32:53,000 --> 00:32:56,000 et ce que vous pouvez faire ici est que si vous n'avez aucune idée où PHP 611 00:32:56,000 --> 00:33:00,000 est installé sur le disque dur local, car en effet il pourrait varier en fonction de l'ordinateur 612 00:33:00,000 --> 00:33:03,000 que quelqu'un utilise, env dit il suffit d'exécuter env, 613 00:33:03,000 --> 00:33:07,000 qui se trouve sur la plupart des systèmes, et de savoir où PHP est. 614 00:33:07,000 --> 00:33:11,000 Juste un truc commun de sorte que vous n'avez pas à vous soucier de savoir si un programme est. 615 00:33:11,000 --> 00:33:14,000 Mais si vous prenez soin de savoir si un programme est que vous n'avez pas pris en charge à ce jour 616 00:33:14,000 --> 00:33:16,000 vous pouvez utiliser la commande qui. 617 00:33:16,000 --> 00:33:19,000 >> Permettez-moi de faire un zoom arrière et le type qui php, 618 00:33:19,000 --> 00:33:23,000 et remarquez qu'il me dit que c'est réellement dans usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 C'est un peu un mensonge. C'est aussi dans le bac. 620 00:33:25,000 --> 00:33:27,000 C'est juste en me montrant le premier coup. 621 00:33:27,000 --> 00:33:31,000 Si vous jamais demandé où Clang est, qui Clang, qui se trouve dans usr / bin / clang, 622 00:33:31,000 --> 00:33:34,000 qui font, usr / bin / make, et ce que cela signifie, c'est tout ce temps 623 00:33:34,000 --> 00:33:38,000 vous auriez pu taper usr / bin / clang entrer pour exécuter Clang, 624 00:33:38,000 --> 00:33:41,000 mais c'est un peu fastidieux de le faire, de sorte que certains dossiers 625 00:33:41,000 --> 00:33:44,000 comme usr / bin bin et sont supposées être par défaut 626 00:33:44,000 --> 00:33:50,000 afin que l'ordinateur sait à regarder en eux pour vous. 627 00:33:50,000 --> 00:33:53,000 Toute question concernant la rédaction d'un super, super simple programme Bonjour tout le monde 628 00:33:53,000 --> 00:33:55,000 en PHP, puis de l'exécuter? 629 00:33:55,000 --> 00:33:59,000 Parce que maintenant, nous allons commencer à introduire la syntaxe plus convaincant. 630 00:33:59,000 --> 00:34:01,000 Très bien, nous y voilà. 631 00:34:01,000 --> 00:34:03,000 Ces programmes nous avons vu effectivement chacun d'eux avant. 632 00:34:03,000 --> 00:34:07,000 >> Si j'ouvre, par exemple, nous allons faire beer1.php, 633 00:34:07,000 --> 00:34:09,000 nous n'irons pas à travers plusieurs versions de ce sujet, mais ce que j'ai fait 634 00:34:09,000 --> 00:34:13,000 a été je me suis assis et il pleuvait ou convertis 635 00:34:13,000 --> 00:34:15,000 mon code C en code PHP ici. 636 00:34:15,000 --> 00:34:18,000 La plupart de la partie supérieure du dossier est commentaire ici. 637 00:34:18,000 --> 00:34:20,000 Il s'avère qu'il ya une fonction nouvelle que nous devons appelée readline. 638 00:34:20,000 --> 00:34:23,000 GetString, rappel, à partir de la semaine 0 en avant était une chose CS50. 639 00:34:23,000 --> 00:34:27,000 PHP est livré avec sa propre fonction conviviale appelée readline 640 00:34:27,000 --> 00:34:30,000 qui prend 1 argument qui spécifie l'invite 641 00:34:30,000 --> 00:34:33,000 que vous voulez montrer à l'utilisateur, et ce ne readline 642 00:34:33,000 --> 00:34:35,000 est elle renvoie tout ce que l'utilisateur tape po 643 00:34:35,000 --> 00:34:39,000 Dans ce cas, je vais déclarer une variable appelée $ n. 644 00:34:39,000 --> 00:34:42,000 Je suis stocker en elle la valeur de retour de readline 645 00:34:42,000 --> 00:34:44,000 après demande à l'utilisateur avec cette chaîne. 646 00:34:44,000 --> 00:34:47,000 Juste pour sauvegarder, diriger effectivement cette chose, laissez-moi aller de l'avant 647 00:34:47,000 --> 00:34:50,000 et exécuter beer1.php php. 648 00:34:50,000 --> 00:34:53,000 Combien de bouteilles seront-ils? Disons simplement faire 2 pour le moment. 649 00:34:53,000 --> 00:34:55,000 Entrée. Voilà tout. 650 00:34:55,000 --> 00:34:59,000 >> Le programme est fonctionnellement identique à la version C de semaines. 651 00:34:59,000 --> 00:35:01,000 Mais syntaxiquement nous allons voir ce qui est différent. 652 00:35:01,000 --> 00:35:05,000 Après je reçois un int à partir de la notice d'utilisation que je fais de la vérification des erreurs, 653 00:35:05,000 --> 00:35:08,000 et si n est inférieur à 1 j'arrête et je imprimer 654 00:35:08,000 --> 00:35:11,000 un message désolé de l'utilisateur et de sortie avec 1. 655 00:35:11,000 --> 00:35:13,000 Cela aussi est un peu différent. 656 00:35:13,000 --> 00:35:16,000  En C qu'avons-nous fait? En C, on a retourné 1. 657 00:35:16,000 --> 00:35:20,000 En PHP, vous quittez avec 1, ce qui est franchement je pense un peu plus intuitive 658 00:35:20,000 --> 00:35:22,000 parce que vous êtes littéralement quitter le programme. 659 00:35:22,000 --> 00:35:25,000 Tout à droite, puis vers le bas ici la chanson ennuyeux est identique syntaxiquement 660 00:35:25,000 --> 00:35:29,000 à l'exception de la variable, donc ici, dans la ligne 24 en avant 661 00:35:29,000 --> 00:35:31,000 remarque que ma boucle for est presque le même, 662 00:35:31,000 --> 00:35:34,000 mais j'ai en face de $ i et n, 663 00:35:34,000 --> 00:35:37,000 et ce qui est également absente de la ligne 26 que nous avons eu dans le passé 664 00:35:37,000 --> 00:35:39,000 en déclarant une variable i? 665 00:35:39,000 --> 00:35:41,000 Il n'y a aucun type. 666 00:35:41,000 --> 00:35:43,000 Il est incorrect de PHP-à-dire int. 667 00:35:43,000 --> 00:35:45,000 Vous n'avez tout simplement pas besoin de le faire. 668 00:35:45,000 --> 00:35:48,000 L'ordinateur, l'interpréteur PHP est assez intelligent pour se rendre compte 669 00:35:48,000 --> 00:35:51,000 que si vous mettez un nombre dans $ I elle sera traitée 670 00:35:51,000 --> 00:35:53,000 comme un numéro pour vous. 671 00:35:53,000 --> 00:35:57,000 Et puis, ici-bas nous brancher i $, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Tout cela est la même chose, et puis ici nous faire un "Wow, c'est ennuyeux" printf 673 00:36:00,000 --> 00:36:02,000 et puis quittez (0). 674 00:36:02,000 --> 00:36:05,000 >> Encore une fois, l'emporter ici, c'est que même si nous allons dépenser relativement 675 00:36:05,000 --> 00:36:09,000 peu de temps sur PHP, certainement par rapport à ce que nous avons fait sur C, 676 00:36:09,000 --> 00:36:12,000 c'est presque la même chose, et si ce que nous allons faire aujourd'hui et la semaine prochaine 677 00:36:12,000 --> 00:36:14,000 et au-delà est vraiment l'accent sur quelques-unes des idées nouvelles. 678 00:36:14,000 --> 00:36:17,000 Juste pour voir ce que autre chose ne traduit plus de C, 679 00:36:17,000 --> 00:36:20,000 ce programme était super simple que nous avons fait dans la semaine 1 680 00:36:20,000 --> 00:36:22,000 ou 2 qui en cubes d'une valeur. 681 00:36:22,000 --> 00:36:25,000 Mais ce qui était intéressant à l'époque sur ce programme, c'est qu'il 682 00:36:25,000 --> 00:36:28,000 introduit la notion d'une fonction personnalisée écrite que nous-mêmes écrit. 683 00:36:28,000 --> 00:36:31,000 La syntaxe de PHP est presque la même. 684 00:36:31,000 --> 00:36:33,000 Voici mon programme en haut. 685 00:36:33,000 --> 00:36:35,000 Notez à nouveau absent, c'est toute notion de principal. 686 00:36:35,000 --> 00:36:39,000 Je commence à écrire de code, et c'est ce qui va se faire exécuté par l'interpréteur. 687 00:36:39,000 --> 00:36:42,000 J'imprime x est 2, sans doute. 688 00:36:42,000 --> 00:36:44,000 Puis-je réclamer cubage ... 689 00:36:44,000 --> 00:36:47,000 Puis-je appeler la fonction cube et passez x $ 690 00:36:47,000 --> 00:36:50,000 et affecter la valeur de retour de x $. 691 00:36:50,000 --> 00:36:53,000 Puis-je prétendre que c'est en cubes, puis je dis cela, qui nous l'espérons 692 00:36:53,000 --> 00:36:55,000 dira x est maintenant de 8. 693 00:36:55,000 --> 00:36:59,000 La syntaxe de la fonction en PHP est très légèrement différente. 694 00:36:59,000 --> 00:37:01,000 Encore une fois manque, c'est le type de retour. 695 00:37:01,000 --> 00:37:05,000 Encore une fois disparue est le type de retour et aussi manque, c'est quel autre type? 696 00:37:05,000 --> 00:37:07,000 [Réponse de l'élève inaudible] 697 00:37:07,000 --> 00:37:10,000 Bon, d'accord, c'est bien. Revenons à ce que dans une seconde. 698 00:37:10,000 --> 00:37:12,000 >> Nous n'avons pas, par exemple, int ici. 699 00:37:12,000 --> 00:37:15,000 Nous n'avons pas, par exemple, ont int ici parce que, encore une fois, en PHP 700 00:37:15,000 --> 00:37:18,000 vous n'avez tout simplement pas besoin et ne devrait pas le faire, 701 00:37:18,000 --> 00:37:20,000 mais il ya ce nouveau mot-clé appelée fonction. 702 00:37:20,000 --> 00:37:23,000 En PHP, c'est presque un peu plus clair parce que quand vous voulez une fonction 703 00:37:23,000 --> 00:37:26,000 vous avez littéralement dire fonction, vous lui donnez un nom et une liste séparée par des virgules 704 00:37:26,000 --> 00:37:28,000 si l'un de ses arguments. 705 00:37:28,000 --> 00:37:32,000 Inutile de dire nulle ou quelque chose comme ça, et puis retour est le même, 706 00:37:32,000 --> 00:37:35,000 $ Un $ * a * $ a. 707 00:37:35,000 --> 00:37:38,000 Qu'est-ce qui manque aussi? Sammy l'a souligné ici. 708 00:37:38,000 --> 00:37:43,000 Au début du fichier complètement absent en PHP est également un prototype. 709 00:37:43,000 --> 00:37:45,000 C'est aussi par le design. 710 00:37:45,000 --> 00:37:48,000 Langues et interprètes comme PHP sont plus intelligents que C a jamais été 711 00:37:48,000 --> 00:37:50,000 dans les compilateurs comme Clang. 712 00:37:50,000 --> 00:37:53,000 >> Rappelons que Clang, si vous n'avez pas dit ce que cube existe, 713 00:37:53,000 --> 00:37:56,000 si vous ne l'avez pas dit ce qui existe comme printf avec un prototype 714 00:37:56,000 --> 00:38:00,000 ou avec un # include, eh bien, il allait crier à vous et même pas compiler votre code. 715 00:38:00,000 --> 00:38:03,000 PHP et autres langages modernes sont beaucoup plus intelligents quand il s'agit de cela. 716 00:38:03,000 --> 00:38:07,000 Ils se prennent sur eux de lire tout votre code 717 00:38:07,000 --> 00:38:11,000 puis crier à vous que si elle ne trouve nulle part cube. 718 00:38:11,000 --> 00:38:15,000 Ce n'est pas grave si cube est en bas ou en haut, ou même dans un fichier séparé. 719 00:38:15,000 --> 00:38:18,000 Langages PHP et similaires sont maintenant assez intelligent pour regarder vers l'avenir 720 00:38:18,000 --> 00:38:26,000 à tout avant de vous jugeant comme ayant commis une erreur. 721 00:38:26,000 --> 00:38:28,000 Où en sommes-nous? 722 00:38:28,000 --> 00:38:32,000 >> Faisons un dernier exemple ici dans des conditions, 723 00:38:32,000 --> 00:38:35,000 et si j'ouvre un avis conditions2.php too 724 00:38:35,000 --> 00:38:37,000 syntaxe ici est presque la même. 725 00:38:37,000 --> 00:38:40,000 J'utilise readline au lieu de GetString, mais cette ligne est la même que précédemment, 726 00:38:40,000 --> 00:38:42,000 "Je voudrais un entier s'il vous plaît." 727 00:38:42,000 --> 00:38:45,000 Ensuite, il faut une condition si, d'une autre si, et puis un autre, 728 00:38:45,000 --> 00:38:48,000 mais fonctionnellement ce programme est également identique à ce que nous faisions semaines, 729 00:38:48,000 --> 00:38:51,000 donc si je lance cette chose, php de conditions2, 730 00:38:51,000 --> 00:38:54,000 et je lui donne un nombre comme 23 - 731 00:38:54,000 --> 00:38:57,000 J'ai choisi un nombre positif. Si je lui donne -1 Je choisi un nombre négatif. 732 00:38:57,000 --> 00:39:00,000 Si je lui donne 0 Je pris effet 0. 733 00:39:00,000 --> 00:39:02,000 Alors, qui se soucie de tout cela? 734 00:39:02,000 --> 00:39:06,000 Eh bien, l'un de la sorte amusant d'exercices ici 735 00:39:06,000 --> 00:39:10,000 du moins pour moi était de revenir en arrière et voir à quelle vitesse je pouvais mettre en œuvre pset 5, 736 00:39:10,000 --> 00:39:12,000 le pset fautes d'orthographe. 737 00:39:12,000 --> 00:39:15,000 Rappelez-vous que il y avait ce fichier appelé speller.c, 738 00:39:15,000 --> 00:39:17,000 et il y avait un fichier appelé dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Ce que j'ai fait j'ai un peu passé quelques minutes et je converti le code C 740 00:39:20,000 --> 00:39:23,000 le code PHP, et nous ne passerons pas beaucoup de temps sur orthographique 741 00:39:23,000 --> 00:39:26,000 parce que tout comme dans pset 5, vous n'avez pas vraiment besoin d' 742 00:39:26,000 --> 00:39:29,000 passer beaucoup de temps sur lui-même orthographe parce que votre attention est le dictionnaire. 743 00:39:29,000 --> 00:39:32,000 >> Qu'il suffise de dire que si vous lisez orthographe, 744 00:39:32,000 --> 00:39:35,000 ce fichier ici, c'est à peu près équivalent au code C 745 00:39:35,000 --> 00:39:37,000 nous vous avons donné pour pset 5. 746 00:39:37,000 --> 00:39:39,000 Je viens d'ajouter quelques $ par endroits. 747 00:39:39,000 --> 00:39:43,000 J'ai changé les noms de fonctions certaines si elles n'existaient pas en PHP. 748 00:39:43,000 --> 00:39:45,000 Il ya une chose supplémentaire à cet égard, preg_match, 749 00:39:45,000 --> 00:39:48,000 qui est la façon un peu fantaisiste de faire quelque chose, mais nous allons y revenir par la suite. 750 00:39:48,000 --> 00:39:51,000 Mais enfin, orthographe est presque identique, et si vous regardez en bas 751 00:39:51,000 --> 00:39:54,000 ce qu'il crache finalement sur ce ici, 752 00:39:54,000 --> 00:39:57,000 mots mal orthographiés, les mots dans le dictionnaire, mots dans le texte. 753 00:39:57,000 --> 00:40:00,000 D'accord, ce qui est intéressant maintenant est la suivante. 754 00:40:00,000 --> 00:40:05,000 Au sommet de mon dossier, je suis exigeant dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Tout comme C # include a PHP dispose d'une fonction spéciale appelée nécessitent 756 00:40:09,000 --> 00:40:14,000 c'est à peu près fait la même chose, besoin d'un fichier appelé dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Comment puis-je faire pour la mise en œuvre pset 5? 758 00:40:18,000 --> 00:40:21,000 Permettez-moi aller de l'avant et d'ouvrir un fichier ici. 759 00:40:21,000 --> 00:40:24,000 Permettez-moi de prendre un peu de référence ici. 760 00:40:24,000 --> 00:40:29,000 Et permettez-moi de créer un nouveau fichier et commencer à appeler cette dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Permettez-moi de le mettre dans un autre dossier afin que nous puissions le faire vivre. 762 00:40:31,000 --> 00:40:33,000 Et maintenant, je vais effectuer un zoom avant 763 00:40:33,000 --> 00:40:37,000 Je vais commencer mon fichier PHP avec support php open close support. 764 00:40:37,000 --> 00:40:40,000 Et puis ici, il y avait quelques fonctions dont j'avais besoin pour mettre en oeuvre pour pset 5, 765 00:40:40,000 --> 00:40:42,000 permettez-moi de commencer à mettre en œuvre certaines de celles-ci, 766 00:40:42,000 --> 00:40:47,000 contrôle de fonctionnement ainsi, qui a dû prendre un mot en argument. 767 00:40:47,000 --> 00:40:49,000 Nous allons le faire et d'y revenir dans un instant. 768 00:40:49,000 --> 00:40:53,000 >> Il était fonction de la charge, qui a pris en ce qui comme argument? 769 00:40:53,000 --> 00:40:56,000 Dictionnaire, de sorte que le fichier que je voulais à charger. 770 00:40:56,000 --> 00:41:00,000 Il était de taille fonction, qui ne prend aucun argument 771 00:41:00,000 --> 00:41:04,000 et il y avait de fonction ce qui était l'autre? 772 00:41:04,000 --> 00:41:06,000 Décharger, qui ne prend aucun argument non plus. 773 00:41:06,000 --> 00:41:10,000 Ce sont les 4 fonctions que j'aurais besoin pour mettre en œuvre maintenant en PHP, 774 00:41:10,000 --> 00:41:13,000 et ce que je vais faire est d'aller de l'avant et le faire. 775 00:41:13,000 --> 00:41:16,000 Beaucoup d'entre vous ont utilisé une table de hachage en pset 5, 776 00:41:16,000 --> 00:41:21,000 alors laissez-moi aller de l'avant et de créer une table de hachage en PHP. 777 00:41:21,000 --> 00:41:23,000 Terminé. 778 00:41:23,000 --> 00:41:25,000 Cela me donne une table de hachage. Eh bien, pourquoi? 779 00:41:25,000 --> 00:41:30,000 Un, la variable est appelée $ table, juste pour évoquer l'idée d'une table de hachage. 780 00:41:30,000 --> 00:41:34,000 Les crochets, cependant, rappeler, représentent quoi? 781 00:41:34,000 --> 00:41:37,000 Un tableau, mais dans des tableaux PHP n'ont pas à être indexé numériquement. 782 00:41:37,000 --> 00:41:41,000 Ils peuvent également être des tableaux associatifs, 783 00:41:41,000 --> 00:41:44,000 ce qui signifie que vous pouvez avoir des clés et des valeurs arbitraires. 784 00:41:44,000 --> 00:41:49,000 >> Tout comme dans pset 5, ceux d'entre vous qui ont fait des implémentations de table de hachage 785 00:41:49,000 --> 00:41:53,000 vous avez probablement inséré le mot, puis inséré dans une chaîne de listes chaînées, 786 00:41:53,000 --> 00:41:56,000 ou vous avez stocké la valeur de quelque part ou quelque chose de vrai à cet effet. 787 00:41:56,000 --> 00:41:59,000 Vous en quelque sorte oublier le fait que le mot était là. 788 00:41:59,000 --> 00:42:01,000 Pour l'instant, ça va être ma table de hachage, 789 00:42:01,000 --> 00:42:06,000 et donc maintenant d'aller sur l'application de la fonction de contrôle 790 00:42:06,000 --> 00:42:09,000 J'ai juste besoin de regarder à l'intérieur de cette table de hachage 791 00:42:09,000 --> 00:42:11,000 et de voir si un mot est là. 792 00:42:11,000 --> 00:42:15,000 Ce que je vais faire, c'est que je vais dire, si- 793 00:42:15,000 --> 00:42:20,000 disons isset, qui est une fonction PHP qui, littéralement, signifie simplement le jeu de clés, 794 00:42:20,000 --> 00:42:24,000 si isset ($ tableau [$ mot], 795 00:42:24,000 --> 00:42:29,000 et si oui retourne vrai. 796 00:42:29,000 --> 00:42:32,000 C'est tout. C'est pset 5 en PHP. 797 00:42:32,000 --> 00:42:34,000 Eh bien, en toute équité, d'accord. 798 00:42:34,000 --> 00:42:37,000 Else return false, donc il n'est pas là. 799 00:42:37,000 --> 00:42:39,000 Qu'est-ce qui se passe vraiment ici? 800 00:42:39,000 --> 00:42:42,000 Eh bien, si la table de table ou de hachage ici de façon plus générale- 801 00:42:42,000 --> 00:42:46,000 est un tableau associatif qui signifie que vous pouvez indexer dans l' 802 00:42:46,000 --> 00:42:50,000 avec un mot comme «parole», et vous devez retrouver une certaine valeur. 803 00:42:50,000 --> 00:42:52,000 >> Nous sommes en quelque sorte d'en avoir une longueur d'avance sur nous-mêmes. 804 00:42:52,000 --> 00:42:56,000 Il serait assez sympa si nous réellement chargé le premier fichier, 805 00:42:56,000 --> 00:42:58,000 si la charge n'est pas tout à fait aussi simple, mais laissez-moi aller de l'avant et fouetter jusqu'à 806 00:42:58,000 --> 00:43:00,000  une mise en œuvre très rapide de la charge. 807 00:43:00,000 --> 00:43:07,000 Permettez-moi aller de l'avant et de dire des mots devient dictionnaire fichier. 808 00:43:07,000 --> 00:43:10,000 La fonction PHP dans le fichier ouvre un fichier 809 00:43:10,000 --> 00:43:12,000 et revient à vous un tableau de tous les mots de ce fichier, 810 00:43:12,000 --> 00:43:14,000 tend simplement à vous. 811 00:43:14,000 --> 00:43:16,000 Ce fut une grande douleur aussi, n'est-ce pas? 812 00:43:16,000 --> 00:43:21,000 Maintenant foreach, c'est notre nouvelle construction, foreach ($ words as $ mot). 813 00:43:21,000 --> 00:43:25,000 Cette boucle va commencer à itérer sur les mots tableau 814 00:43:25,000 --> 00:43:30,000 et attribuer à la variable $ word chaque mot dans le fichier 815 00:43:30,000 --> 00:43:32,000 à partir de la première à la seconde à la troisième à la quatrième complètement 816 00:43:32,000 --> 00:43:35,000 donc je n'ai pas à faire l'ennuyeux [i] la notation, etc. 817 00:43:35,000 --> 00:43:38,000 Et ce que je vais simplement faire de chacun de ces mots 818 00:43:38,000 --> 00:43:43,000 est le stocker dans mon tableau en indexant la table 819 00:43:43,000 --> 00:43:47,000 et puis en faisant vrai, car se souvenir 820 00:43:47,000 --> 00:43:50,000 qu'un mot est dans mon dictionnaire tout ce que je dois faire 821 00:43:50,000 --> 00:43:55,000 est sorte de retourner un peu et dire ce mot dans ma table de hachage est là, c'est vrai. 822 00:43:55,000 --> 00:43:58,000 Et si elle n'est pas là, je n'ai pas à mettre explicitement faux, 823 00:43:58,000 --> 00:44:01,000 sinon je dois mettre fausse pour tous les mots possibles de l'univers. 824 00:44:01,000 --> 00:44:05,000 >> Il me suffit juste de fixer une valeur d'index 825 00:44:05,000 --> 00:44:09,000 true si un mot est en fait dans ma table de hachage. 826 00:44:09,000 --> 00:44:12,000 Maintenant, je vais couper quelques virages ici que je vais saluer mes mains pour le moment, 827 00:44:12,000 --> 00:44:15,000 mais maintenant la fonction de charge est terminé. 828 00:44:15,000 --> 00:44:18,000 Je charge tous les mots à partir du fichier dans un tableau. 829 00:44:18,000 --> 00:44:21,000 Je itération sur ce tableau, et pour chaque mot de la matrice 830 00:44:21,000 --> 00:44:24,000 Je le branche sur ma table de hachage avec 1 ligne de code. 831 00:44:24,000 --> 00:44:26,000 C'est amusant. Vous savez comment nous pouvons mettre en œuvre la taille maintenant? 832 00:44:26,000 --> 00:44:28,000 Eh bien, la taille est toujours assez facile, en toute équité. 833 00:44:28,000 --> 00:44:32,000 Ici, nous pouvons tout simplement pas retourner comte de table. 834 00:44:32,000 --> 00:44:34,000 C'est assez facile aussi, compter le nombre de choses dans le tableau. 835 00:44:34,000 --> 00:44:36,000 C'est en fait assez pas la plus efficace. 836 00:44:36,000 --> 00:44:39,000 Je devrais probablement avoir une taille variable appelée afin que nous puissions le faire 837 00:44:39,000 --> 00:44:41,000 en temps constant, mais c'est assez facile. 838 00:44:41,000 --> 00:44:45,000 Oh, et puis décharger, si nous voulons vraiment être ici anale 839 00:44:45,000 --> 00:44:47,000 on peut dire que c'est la façon dont vous décharger quelque chose. 840 00:44:47,000 --> 00:44:49,000 Vous venez de définir la variable égale à un tableau vide, 841 00:44:49,000 --> 00:44:51,000 et il se débarrasse de tout ce qui s'y trouvait. 842 00:44:51,000 --> 00:44:53,000 Pas besoin d'appeler gratuitement. 843 00:44:53,000 --> 00:44:56,000 >> Encore une fois, j'ai coupé quelques coins, et je m'en excuse problème posé attribuer 5 844 00:44:56,000 --> 00:45:00,000 peut-être en C, mais si nous avons maintenant aller de l'avant et exécutez ce, 845 00:45:00,000 --> 00:45:02,000 Je vais effectivement faire tourner la version que j'ai écrit à l'avance 846 00:45:02,000 --> 00:45:05,000 tellement que je n'ai pas fait d'erreurs syntaxiques que ce soit. 847 00:45:05,000 --> 00:45:08,000 Permettez-moi aller de l'avant et exécutez orthographe. L'utilisation est le même. 848 00:45:08,000 --> 00:45:12,000 Voici un fichier de dictionnaire qui contient juste la foo mot. 849 00:45:12,000 --> 00:45:15,000 Voici un fichier texte qui contient juste foo bar. 850 00:45:15,000 --> 00:45:19,000 Nous allons vérifier l'orthographe de cela, donc orthographe, l'utilisation de ce fichier de dictionnaire sur ce fichier texte. 851 00:45:19,000 --> 00:45:21,000 Il ya un mot mal orthographié, un bar, et le tour est joué. 852 00:45:21,000 --> 00:45:23,000 Fait avec pset 5. 853 00:45:23,000 --> 00:45:30,000 Prenons une pause de 5 minutes, et nous y reviendrons en plus sur PHP. 854 00:45:30,000 --> 00:45:32,000 Très bien, nous sommes de retour. 855 00:45:32,000 --> 00:45:34,000 Permettez-moi de ne déteste-pendant un certain temps. 856 00:45:34,000 --> 00:45:37,000 Nous allons maintenant voir réellement si ce n'était pas un effet positif 857 00:45:37,000 --> 00:45:39,000 effectivement mise en œuvre de cette chose en PHP. 858 00:45:39,000 --> 00:45:43,000 Certes, il a fallu 45 secondes pour la mise en œuvre. 859 00:45:43,000 --> 00:45:45,000 >> Mais nous allons aller de l'avant maintenant et diriger les choses. 860 00:45:45,000 --> 00:45:49,000 Permettez-moi aller de l'avant et exécuter une version C 861 00:45:49,000 --> 00:45:52,000 d'orthographe, et nous allons le faire tourner sur l'un des plus gros fichiers, 862 00:45:52,000 --> 00:45:54,000 qui est la Bible King James. 863 00:45:54,000 --> 00:45:57,000 Et c'est ici en allons dans notre dossier C, 864 00:45:57,000 --> 00:46:01,000 orthographe sur King James de la 5ème. 865 00:46:01,000 --> 00:46:03,000 Un grand nombre de mots mal orthographiés. 866 00:46:03,000 --> 00:46:06,000 Bon, alors c'est la sortie vous avez probablement même si les temps sont un peu différentes, 867 00:46:06,000 --> 00:46:09,000 si vous avez obtenu tout fonctionne correctement, et ainsi de fois au total pour la vérification orthographique 868 00:46:09,000 --> 00:46:13,000 la Bible King James était 0,38 secondes, si jolie bonne utilisation de cette mise en œuvre. 869 00:46:13,000 --> 00:46:16,000 Maintenant, laissez-moi aller dans la version de PHP que nous venons d'écrire. 870 00:46:16,000 --> 00:46:18,000 Permettez-moi de lancer le correcteur orthographique King James. 871 00:46:18,000 --> 00:46:21,000 Oups, ignorer cette erreur. Je suis dans le mauvais répertoire. 872 00:46:21,000 --> 00:46:24,000 Speller King James le 5. 873 00:46:46,000 --> 00:46:48,000 C'est presque fini. 874 00:46:48,000 --> 00:46:51,000 >> Bon, l'observateur attentif aura rendu compte que c'était plus de 3 secondes là-bas. 875 00:46:51,000 --> 00:46:54,000 C'est le temps vrai en marche. 876 00:46:54,000 --> 00:46:58,000 Il s'avère que cela prend du temps de cracher beaucoup de texte sur 877 00:46:58,000 --> 00:47:00,000 en raison de problèmes de mise en mémoire tampon, mais longue histoire courte, 878 00:47:00,000 --> 00:47:04,000 qui était de 3,15 secondes de temps machine, temps CPU, 879 00:47:04,000 --> 00:47:07,000 par rapport à ce qui était il ya un instant? 880 00:47:07,000 --> 00:47:09,000 Comme .3. 881 00:47:09,000 --> 00:47:11,000 Je veux dire, c'est un ordre de grandeur plus lent, alors où est ce que 882 00:47:11,000 --> 00:47:14,000 ralentissement ridicule viennent-ils? 883 00:47:14,000 --> 00:47:17,000 Eh bien, comme cela a été le cas avec la plupart des décisions de conception que nous avons fait 884 00:47:17,000 --> 00:47:21,000 dans la classe au cours des 9 dernières semaines il ya presque toujours ce compromis. 885 00:47:21,000 --> 00:47:24,000 Parfois, entre un peu d'espace, parfois entre l'espace et le temps, 886 00:47:24,000 --> 00:47:27,000 l'espace, le temps et l'effort de développement, et bien là, même si 887 00:47:27,000 --> 00:47:31,000 nous avons économisé énormément de temps, peut-être potentiellement 20.10.30 heure 888 00:47:31,000 --> 00:47:34,000 de temps de développement mise en œuvre du correcteur orthographique 889 00:47:34,000 --> 00:47:36,000 en le fouettant en seulement 45 secondes avec cette langue 890 00:47:36,000 --> 00:47:40,000 le prix à payer, c'est que c'est un ordre de grandeur plus lent en raison, 891 00:47:40,000 --> 00:47:43,000 ce qui est généralement le cas avec la plupart des langages interprétés, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl ou autres aux termes desquelles 893 00:47:46,000 --> 00:47:49,000 si vous allez le lancer à travers un interprète et avoir lu votre code 894 00:47:49,000 --> 00:47:52,000 ligne par ligne, de haut en bas, de gauche à droite, 895 00:47:52,000 --> 00:47:55,000 cet intermédiaire va prendre un peu de temps qui lui est propre, 896 00:47:55,000 --> 00:47:59,000 et ce que vous vous sentiez ici dans les 3 secondes au lieu de 0,3 secondes 897 00:47:59,000 --> 00:48:02,000 est le fait qu'il y ait cet intermédiaire qui doit interpréter littéralement notre code 898 00:48:02,000 --> 00:48:05,000 ligne par ligne, et Dieu ne plaise, si vous êtes à l'intérieur d'une boucle 899 00:48:05,000 --> 00:48:08,000 avec un énorme fichier contenant des centaines de milliers de mots. 900 00:48:08,000 --> 00:48:11,000 >> Que les frais généraux va ajouter et s'additionnent et s'accumulent et s'accumulent. 901 00:48:11,000 --> 00:48:16,000 Pour un outil de ce genre, il n'est probablement pas le meilleur langage à utiliser pour la mise en œuvre 902 00:48:16,000 --> 00:48:20,000 un correcteur orthographique si l'immédiateté est d'intérêt pour les utilisateurs et pour vous. 903 00:48:20,000 --> 00:48:23,000 Mais le luxe que nous avons dans un instant est que si vous 904 00:48:23,000 --> 00:48:27,000 utiliser un langage comme le PHP ou un grand nombre de langages interprétés 905 00:48:27,000 --> 00:48:30,000 dans le contexte du Web, d'ailleurs, vous avez l'avantage 906 00:48:30,000 --> 00:48:34,000 que l'Internet est beaucoup plus lent que la plupart des ordinateurs. 907 00:48:34,000 --> 00:48:38,000 Vous avez un processeur GHz dans votre ordinateur, 2 GHz, peut-être même plus ces jours-ci. 908 00:48:38,000 --> 00:48:41,000 Mais la réalité est sur l'Internet il ya une grande quantité de latence 909 00:48:41,000 --> 00:48:45,000 selon laquelle, pour un navigateur pour parler à un serveur, même si nous avons vu la semaine dernière 910 00:48:45,000 --> 00:48:47,000 que c'est assez rapide, une demi-milliseconde ou deux, 911 00:48:47,000 --> 00:48:51,000 qui ajoute trop haut, et si vous téléchargez des choses comme une image 912 00:48:51,000 --> 00:48:54,000 ou une photo Facebook ou recevoir des messages instantanés sur Facebook bavardage, 913 00:48:54,000 --> 00:48:57,000 GChat ou analogue, l'ensemble de ces temps aller-retour, 914 00:48:57,000 --> 00:49:00,000 entre le navigateur et le démarrage du serveur à s'additionner, 915 00:49:00,000 --> 00:49:03,000 ce qui rend votre choix particulier de la langue dans de nombreux cas, 916 00:49:03,000 --> 00:49:07,000 pas tout à fait pertinente, de sorte que vous êtes bien en utilisant un langage un peu plus lent 917 00:49:07,000 --> 00:49:10,000 comme PHP ou Python ou Ruby 918 00:49:10,000 --> 00:49:13,000 mais pour lesquelles il ya d'énormes bons côtés à vous et à vos collègues 919 00:49:13,000 --> 00:49:17,000 et vos amis parce que vous pouvez mettre en œuvre tant de choses, tellement plus rapide. 920 00:49:17,000 --> 00:49:20,000 Et en plus, vous avez beaucoup moins de risques de défauts de sécurité. 921 00:49:20,000 --> 00:49:22,000 Il n'ya pas de pointeurs en PHP. 922 00:49:22,000 --> 00:49:25,000 Il n'ya pas de fautes seg que vous pouvez facilement induire 923 00:49:25,000 --> 00:49:27,000 de la même manière que vous pourriez en C. 924 00:49:27,000 --> 00:49:29,000 Avec C vous êtes tout près de la quincaillerie. 925 00:49:29,000 --> 00:49:33,000 Avec les langages PHP et vous êtes même genre de niveau plus élevé, pour ainsi dire, 926 00:49:33,000 --> 00:49:37,000 avec beaucoup de défenses entre vous et ce qui se passe réellement 927 00:49:37,000 --> 00:49:39,000 à l'intérieur de la machine, et c'est juste un compromis. 928 00:49:39,000 --> 00:49:42,000 >> Nous avons obtenu au point d'avoir plus modernes, ces langages de haut niveau 929 00:49:42,000 --> 00:49:47,000 comme PHP en raison des leçons apprises dans des langages comme PHP en C 930 00:49:47,000 --> 00:49:50,000 Mais si vous ne comprenez pas ce qui se passe sous le capot tout ce temps 931 00:49:50,000 --> 00:49:53,000 vous ne pouvez certainement pas faire les bons choix de conception, 932 00:49:53,000 --> 00:49:56,000 et certainement quand il s'agit de travailler dans un endroit comme Facebook ou Google 933 00:49:56,000 --> 00:49:59,000 ou l'un de ces lieux qui sont de plus en plus jouer avec grands ensembles de données 934 00:49:59,000 --> 00:50:01,000 même si vous revenez en arrière et ne PREMED et nous travaillons avec un certain MD 935 00:50:01,000 --> 00:50:04,000 sur certaines vaste ensemble de données portant sur des patients et des médecins 936 00:50:04,000 --> 00:50:08,000 et analogues en utilisant les bons outils est extrêmement convaincante 937 00:50:08,000 --> 00:50:11,000 parce que sinon votre analyse d'un certain ensemble de données peut prendre quelques secondes, 938 00:50:11,000 --> 00:50:14,000 ou il peut littéralement prendre des heures. 939 00:50:14,000 --> 00:50:17,000 Ce n'est là qu'un exemple, de ne pas vous frustrer avec un effort à combien plus forte 940 00:50:17,000 --> 00:50:21,000 c'était en C, mais pour vous aider à comprendre que lorsque vous n'avez mettre en œuvre quelque chose dans C 941 00:50:21,000 --> 00:50:24,000 vous comprenez vraiment, ou en théorie, vraiment comprendre 942 00:50:24,000 --> 00:50:28,000 comment tout est ou devrait fonctionner, et vous avez le contrôle presque complet 943 00:50:28,000 --> 00:50:31,000 sur ce qui se passe sous le capot, et avec ces langues de niveau supérieur 944 00:50:31,000 --> 00:50:34,000 vous devez renoncer à un plus grand contrôle aux personnes qui les ont inventés 945 00:50:34,000 --> 00:50:37,000 et font l'objet de plus à leurs décisions de conception que le vôtre. 946 00:50:37,000 --> 00:50:41,000 Mais si l'on prend pour acquis que la performance 947 00:50:41,000 --> 00:50:44,000 n'est pas aussi importante sur le Web en raison de ces autres questions, 948 00:50:44,000 --> 00:50:47,000 vitesses de réseau sont seulement un peu plus lent que la vitesse du processeur de toute façon, 949 00:50:47,000 --> 00:50:50,000 Nous pourrons ainsi de permettre d'utiliser un langage un peu plus lent 950 00:50:50,000 --> 00:50:55,000 si les bons côtés sont les choses, nous pouvons développer 10 fois plus rapide, voire plus. 951 00:50:55,000 --> 00:50:57,000 >> Voyons comment nous pouvons commencer à utiliser cette. 952 00:50:57,000 --> 00:51:00,000 Laissez-moi aller dans un dossier 953 00:51:00,000 --> 00:51:03,000 parmi les exemples aujourd'hui appelé frosh.ims, 954 00:51:03,000 --> 00:51:06,000 et cela a été fait personnellement motivé par le fait que la première chose 955 00:51:06,000 --> 00:51:10,000 J'ai écrit pour le Web ans après la prise CS50 CS51 et 956 00:51:10,000 --> 00:51:14,000 est un site web pour le programme Frosh messages instantanés, les sports intra-muros de première année, 957 00:51:14,000 --> 00:51:16,000 qui, à cette époque, c'était il ya assez d'années que, au moment 958 00:51:16,000 --> 00:51:19,000 il n'y avait pas de site web pour le programme, même s'il y avait un site Web, 959 00:51:19,000 --> 00:51:22,000 et à la place il y avait un surveillant dans l'arrêt Wigglesworth sorte que si vous vouliez 960 00:51:22,000 --> 00:51:26,000 pour vous inscrire au volley-ball ou de football ou ce que vous ne remplissez une feuille de papier. 961 00:51:26,000 --> 00:51:28,000 Vous pouvez ensuite marcher à travers la cour. 962 00:51:28,000 --> 00:51:31,000 Vous pouvez ensuite frapper à leur porte et faire glisser dans la porte ou à la main au surveillant 963 00:51:31,000 --> 00:51:34,000 un morceau de papier avec votre nom là-dessus, si oui ou non vous voulez être un capitaine d'équipe, 964 00:51:34,000 --> 00:51:37,000 quel sport tu voulais faire, et ce que vous étiez dortoir po 965 00:51:37,000 --> 00:51:39,000 C'était en quelque sorte une façon vieille école de faire les choses, et ce fut un premier 966 00:51:39,000 --> 00:51:41,000 possibilité d'automatiser une grande partie de ce processus. 967 00:51:41,000 --> 00:51:43,000 Vous allez simplement sur le site. Vous tapez quelque chose po 968 00:51:43,000 --> 00:51:46,000 Vous recevez un email de confirmation, et boum, vous avez terminé. 969 00:51:46,000 --> 00:51:49,000 >> Ce fut la première chose que j'ai fait, mais dans un langage appelé Pearl, 970 00:51:49,000 --> 00:51:52,000 mais il est relativement facile de le faire en PHP, et c'est une sorte de représentant 971 00:51:52,000 --> 00:51:55,000 des problèmes, vous pouvez commencer à résoudre quand vous pouvez vous exprimer 972 00:51:55,000 --> 00:51:58,000 programme et ne pas avoir à compter sur des choses comme les sites de Google 973 00:51:58,000 --> 00:52:01,000 ou Excel ou des outils qui sont remis à vous. 974 00:52:01,000 --> 00:52:03,000 Les gars, vous avez maintenant la possibilité de faire des choses comme ça. 975 00:52:03,000 --> 00:52:06,000 Il s'agit d'une version super laid d'un formulaire, 976 00:52:06,000 --> 00:52:09,000 mais disons simplement l'utiliser pour le début de la conversation où cela est 977 00:52:09,000 --> 00:52:12,000 à peu près ce que la forme ressemblait ans pour nous 978 00:52:12,000 --> 00:52:14,000 pour permettre aux gens sur le Web pour vous inscrire à Frosh IM. 979 00:52:14,000 --> 00:52:18,000 Nous avons demandé un nom, une case à cocher si oui ou non ils ont voulu être capitaine, 980 00:52:18,000 --> 00:52:21,000 homme ou femme, et puis ce qu'ils étaient en dortoir, 981 00:52:21,000 --> 00:52:23,000 et alors ils soumettre ce formulaire. 982 00:52:23,000 --> 00:52:27,000 Examinons d'abord sous le capot à l'HTML qui représente la page web suivante. 983 00:52:27,000 --> 00:52:31,000 Laissez-moi aller dans froshims0, 984 00:52:31,000 --> 00:52:35,000 et en passant, pour pset 7 Je prends pour acquis 985 00:52:35,000 --> 00:52:37,000 les répertoires et les dossiers que je suis en train choses po 986 00:52:37,000 --> 00:52:40,000 Nous allons vous guider à travers choses exactement où doit se rendre dans l'appareil, 987 00:52:40,000 --> 00:52:43,000 les commandes mod vous avez à courir, donc ne vous inquiétez pas pour l'ensemble de la 988 00:52:43,000 --> 00:52:46,000 détails stupides synchronisation à partir de l'obtenir-aller ici. 989 00:52:46,000 --> 00:52:49,000 >> D'accord, voici froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Permettez-moi de faire défiler vers le bas, et ce qui est curieux ici, 991 00:52:52,000 --> 00:52:56,000 c'est un fichier PHP, mais ce qu'il ya dedans d'elle, clairement? 992 00:52:56,000 --> 00:52:59,000 C'est tout un tas de HTML, PHP, et en effet ses origines 993 00:52:59,000 --> 00:53:02,000 étaient vraiment pour être un langage Web-centric. 994 00:53:02,000 --> 00:53:04,000 Tout à l'heure nous l'avons utilisé pour implémenter l'exemple de la bière, 995 00:53:04,000 --> 00:53:07,000 les conditions exemple, l'exemple bonjour, et c'est bien. 996 00:53:07,000 --> 00:53:11,000 Vous pouvez utiliser PHP comme un langage de script 997 00:53:11,000 --> 00:53:15,000 où un script est vraiment juste la nomenclature donnée à un programme rapide et sale 998 00:53:15,000 --> 00:53:19,000 ou quelque chose que vous écrivez dans un script ou plus généralement un langage interprété. 999 00:53:19,000 --> 00:53:22,000 PHP est super utile pour que, parce que vous avez vu à quelle vitesse 1000 00:53:22,000 --> 00:53:24,000 relativement nous pouvons concocter des programmes en PHP. 1001 00:53:24,000 --> 00:53:27,000 Mais il a été vraiment conçu pour être utilisé pour le Web, 1002 00:53:27,000 --> 00:53:31,000 et conçu pour le Web, en ce sens que constater ici au début du fichier 1003 00:53:31,000 --> 00:53:34,000 Je commence par 00:53:38,000 Ensuite, j'ai un tas de commentaires inutiles, accordés, mais alors je ferme le mode PHP. 1005 00:53:38,000 --> 00:53:41,000 Mais ensuite j'ai passer en mode HTML. 1006 00:53:41,000 --> 00:53:45,000 >> Ce qui est intéressant à propos de PHP est même si le fichier se termine par. Php 1007 00:53:45,000 --> 00:53:48,000 il est généralement destiné à être mêlés avec HTML, 1008 00:53:48,000 --> 00:53:50,000 un peu de code PHP, le HTML. 1009 00:53:50,000 --> 00:53:53,000 Et nous verrons par la suite que nous pouvons commencer à taquiner ceux en dehors 1010 00:53:53,000 --> 00:53:56,000 et de garder notre HTML distinct de notre PHP tout à fait, 1011 00:53:56,000 --> 00:53:59,000 mais les origines de PHP étaient vraiment vous donner cette flexibilité, 1012 00:53:59,000 --> 00:54:02,000 que si vous voulez un peu de HTML juste écrire, et ce sera 1013 00:54:02,000 --> 00:54:04,000 cracher identique au navigateur. 1014 00:54:04,000 --> 00:54:07,000 Mais si vous avez besoin d'une technique de programmation, 1015 00:54:07,000 --> 00:54:12,000 du code de programmation, vous pouvez aussi le mettre dans le même fichier exact, comme nous le verrons bientôt. 1016 00:54:12,000 --> 00:54:14,000 Voici mon code HTML. 1017 00:54:14,000 --> 00:54:16,000 J'ai un titre de cette Frosh pour les GI. 1018 00:54:16,000 --> 00:54:20,000 J'ai une balise body qui a eu un peu de CSS sur elle pour tout centrer au milieu, 1019 00:54:20,000 --> 00:54:23,000 et puis ici j'ai un formulaire qui va apparemment être soumis 1020 00:54:23,000 --> 00:54:27,000 dans un nouveau fichier appelé register0.php, alors nous verrons dans un instant. 1021 00:54:27,000 --> 00:54:31,000 Il utilise une méthode appelée après que nous y reviendrons aussi. 1022 00:54:31,000 --> 00:54:34,000 Puis-je avoir quelques données du formulaire, un nom appelé, dont le type est un texte, 1023 00:54:34,000 --> 00:54:37,000 celui dont le nom est le capitaine, dont le type est cochée, 1024 00:54:37,000 --> 00:54:40,000 et cela, nous ne l'avons pas vu, mais il fait exactement ce qu'il dit. 1025 00:54:40,000 --> 00:54:42,000 Vous obtiendrez une case à cocher au lieu d'une zone de texte. 1026 00:54:42,000 --> 00:54:46,000 Ici-bas, vous avez un bouton radio, qui est l'un de ces boutons circulaires 1027 00:54:46,000 --> 00:54:48,000 que vous pouvez choisir celui-ci ou celui-là. 1028 00:54:48,000 --> 00:54:52,000 >> Remarquez que c'est délibérément que j'ai donné deux boutons radio le nom du genre. 1029 00:54:52,000 --> 00:54:55,000 C'est ainsi que vous obtenez exclusion mutuelle par lequel vous devez cliquer sur 1030 00:54:55,000 --> 00:54:58,000 soit celui-ci ou celui-là, et en cliquant sur l'autre 1031 00:54:58,000 --> 00:55:01,000 il décoche l'autre, de sorte que vous devez leur donner le même nom 1032 00:55:01,000 --> 00:55:03,000 si vous voulez qu'ils soient mutuellement exclusifs comme ça. 1033 00:55:03,000 --> 00:55:07,000 Et puis, pour dortoir, je ne pense pas que nous avons vu encore, mais c'est un menu déroulant, d'un menu déroulant. 1034 00:55:07,000 --> 00:55:09,000 La balise car c'est de sélection. 1035 00:55:09,000 --> 00:55:11,000 Vous donnez alors le menu déroulant le nom, 1036 00:55:11,000 --> 00:55:13,000 et puis vous avez tout un tas de ces options. 1037 00:55:13,000 --> 00:55:16,000 Le premier, juste pour l'esthétique, est une chaîne vide. 1038 00:55:16,000 --> 00:55:20,000 Je voulais juste la liste déroulante sera vide par défaut, 1039 00:55:20,000 --> 00:55:22,000 et puis il ya Apley, Canaday, Grays, et ainsi de suite. 1040 00:55:22,000 --> 00:55:24,000 Et remarquez la dichotomie ici. 1041 00:55:24,000 --> 00:55:27,000 L'option dans la liste déroulante en bas a une valeur, 1042 00:55:27,000 --> 00:55:30,000 mais il a un nom humain-amical, qui dans cet exemple 1043 00:55:30,000 --> 00:55:33,000 est identique, mais si l'on voulait vraiment être anale nous pourrions avoir 1044 00:55:33,000 --> 00:55:36,000 la valeur de ce menu déroulant juste être la version courte, 1045 00:55:36,000 --> 00:55:39,000 Grays, mais on pourrait vraiment dire Grays Hall que l'homme voit réellement, 1046 00:55:39,000 --> 00:55:43,000 mais ce n'est pas tout cela intéressant, alors j'ai gardé les choses simples et les a rendus identiques. 1047 00:55:43,000 --> 00:55:46,000 Puis, au bas nous avons un bouton submit 1048 00:55:46,000 --> 00:55:49,000 que nous avons vu auparavant, mais notez que je viens de donner un autre mot. 1049 00:55:49,000 --> 00:55:53,000 Au lieu de chercher CS50 j'ai donné l'étiquette «Enregistrer». 1050 00:55:53,000 --> 00:55:56,000 >> Le résultat final est la page web ici, et encore une fois, 1051 00:55:56,000 --> 00:56:00,000 d'où vient ce faire soumis? 1052 00:56:00,000 --> 00:56:04,000 Il obtient soumis à un fichier, la valeur de l'attribut d'action, 1053 00:56:04,000 --> 00:56:07,000 qui était register0.php. 1054 00:56:07,000 --> 00:56:09,000 Voyons ce qui se passe réellement ici. 1055 00:56:09,000 --> 00:56:13,000 Permettez-moi aller de l'avant et de remplir ce formulaire, disons David, 1056 00:56:13,000 --> 00:56:16,000 mâle, Matthews, et puis je vais dire vous inscrire. 1057 00:56:16,000 --> 00:56:18,000 Permettez-moi de faire un zoom arrière et cliquez sur enregistrer. 1058 00:56:18,000 --> 00:56:22,000 Bon, sorte de rien, mais nous allons voir ce qui se passe réellement. 1059 00:56:22,000 --> 00:56:26,000 Notez que l'URL a changé pour être register0.php. 1060 00:56:26,000 --> 00:56:34,000 Quelle est curieusement absent de l'URL, mais, même si nous vient de présenter un formulaire? 1061 00:56:34,000 --> 00:56:37,000 [Réponse de l'élève inaudible] 1062 00:56:37,000 --> 00:56:39,000 D'accord, c'est tout simplement l'utilisateur Chrome être amical de nos jours. 1063 00:56:39,000 --> 00:56:42,000 C'est vraiment là. Ils viennent de se cacher pour économiser de l'espace. 1064 00:56:42,000 --> 00:56:44,000 Mais la pensée bonne, bonne pensée. 1065 00:56:44,000 --> 00:56:46,000 À l'autre extrémité de l'URL, cependant, ce qui manque? Ouais. 1066 00:56:46,000 --> 00:56:48,000 [Étudiants] La chaîne de requête. 1067 00:56:48,000 --> 00:56:51,000 La chaîne de requête, de sorte souviens de nos exemples simples de recherche de Google. 1068 00:56:51,000 --> 00:56:54,000 Dès que je clique sur le bouton envoyer l'URL 1069 00:56:54,000 --> 00:57:00,000 m'a emmené à Google, mais il y avait? q = informatique ou tout ce que j'avais tapé po 1070 00:57:00,000 --> 00:57:04,000 C'est parce que nous avons utilisé la méthode GET avec l'exemple de recherche. 1071 00:57:04,000 --> 00:57:06,000 >> Cette fois-ci, nous utilisons la méthode que la place? 1072 00:57:06,000 --> 00:57:10,000 Poster, et l'une des distinctions immédiates 1073 00:57:10,000 --> 00:57:14,000 entre GET et POST est qu'après ne met pas d'entrée de l'utilisateur dans l'URL. 1074 00:57:14,000 --> 00:57:16,000 Il la cache. Il envoie encore. 1075 00:57:16,000 --> 00:57:19,000 En fait, ce que nous voyons ici dans le navigateur, comme nous allons le révéler à un moment 1076 00:57:19,000 --> 00:57:22,000 register0 en consultant d', c'est que je suis en train de voir le contenu 1077 00:57:22,000 --> 00:57:25,000 de la matrice qui ont été introduites à partir du navigateur vers le serveur. 1078 00:57:25,000 --> 00:57:29,000 Mais l'URL n'a pas de?, N'a pas de mots-clés 1079 00:57:29,000 --> 00:57:31,000 ou des valeurs en elle, et pourquoi est-ce? 1080 00:57:31,000 --> 00:57:35,000 Eh bien, après vous permet de soumettre encore les données du formulaire vers un serveur, 1081 00:57:35,000 --> 00:57:38,000 mais il ne le met pas dans l'URL, si ce type d'information est post 1082 00:57:38,000 --> 00:57:41,000 particulièrement approprié pour peut-être quand vous demandez à l'utilisateur de 1083 00:57:41,000 --> 00:57:44,000 taper d'entrée à une forme? 1084 00:57:44,000 --> 00:57:48,000 Quelque chose comme un mot de passe, quelque chose comme quoi d'autre? 1085 00:57:48,000 --> 00:57:50,000 Numéros de cartes de crédit. 1086 00:57:50,000 --> 00:57:53,000 Tout ce qui est légèrement sensible, vous ne voulez probablement pas se retrouver dans l'URL 1087 00:57:53,000 --> 00:57:56,000 ce que parce que cela signifie que votre colocataire ou membre de la famille peut juste traîne par 1088 00:57:56,000 --> 00:57:59,000 votre histoire d'Internet et littéralement voir vos mots de passe, 1089 00:57:59,000 --> 00:58:02,000 littéralement voir vos numéros de carte de crédit parce que la plupart des navigateurs 1090 00:58:02,000 --> 00:58:05,000 retenir dans l'histoire quelle que soit URLs que vous avez été à, 1091 00:58:05,000 --> 00:58:09,000 si seulement parce que ce serait une mauvaise idée. 1092 00:58:09,000 --> 00:58:11,000 À utiliser des peaux de poste qui détaillent de l'utilisateur. 1093 00:58:11,000 --> 00:58:14,000 >> De plus, comment voulez-vous charger une photo sur Facebook? 1094 00:58:14,000 --> 00:58:17,000 Eh bien, les 2 seuls mécanismes que vous pouvez réellement utiliser, 1095 00:58:17,000 --> 00:58:21,000 même s'il ya quelques autres plus obscurs, est GET et POST. 1096 00:58:21,000 --> 00:58:26,000 Comment pouvez-vous éventuellement charger une photo via une URL? 1097 00:58:26,000 --> 00:58:28,000 Vous pouvez le faire réellement. 1098 00:58:28,000 --> 00:58:30,000 Vous pouvez prendre un JPEG ou Bitmap ou GIF et vous pouvez le représenter en hexadécimal 1099 00:58:30,000 --> 00:58:32,000 ou quelque chose qui s'appelle la base 64. 1100 00:58:32,000 --> 00:58:35,000 Au lieu de base 16 en base 64 que vous utilisez, ce qui ressemble essentiellement à 1101 00:58:35,000 --> 00:58:38,000 Caractères ASCII, et vous pouvez réellement charger une photo via une URL 1102 00:58:38,000 --> 00:58:41,000 après un point d'interrogation, mais il ya généralement des limites de taille. 1103 00:58:41,000 --> 00:58:44,000 La plupart des navigateurs forcer URL à pas plus de 1000 caractères, 1104 00:58:44,000 --> 00:58:47,000 peut-être 2.000 caractères ou similaires, de sorte que vous ne pouvez pas télécharger 1105 00:58:47,000 --> 00:58:50,000 de 10 Mo Photo Facebook. 1106 00:58:50,000 --> 00:58:54,000 Pour que vous utilisez post ainsi, donc pour l'instant se met les paramètres dans l'URL, 1107 00:58:54,000 --> 00:58:57,000 ce qui est agréable et utile parfois, mais pour quoi que ce soit sensible ou grande 1108 00:58:57,000 --> 00:58:59,000 poste est le chemin à parcourir. 1109 00:58:59,000 --> 00:59:02,000 Ce qui est en train de faire register0 ici? 1110 00:59:02,000 --> 00:59:05,000 Eh bien, si j'ouvre register0 avis que ceci est une page super simple, 1111 00:59:05,000 --> 00:59:09,000 mais il démontre le fait que je peux co-mêle, pour le meilleur ou pour le pire, 1112 00:59:09,000 --> 00:59:12,000 HTML avec PHP. 1113 00:59:12,000 --> 00:59:15,000 Ce fichier entier, sauf pour les commentaires au début, sont HTML 1114 00:59:15,000 --> 00:59:19,000 sauf pour ce gars là. 1115 00:59:19,000 --> 00:59:22,000 >> Notez que dans le milieu de mon code PHP, 1116 00:59:22,000 --> 00:59:26,000 au milieu de mon HTML, j'ai en quelque sorte temporairement 1117 00:59:26,000 --> 00:59:28,000 entré en mode PHP. 1118 00:59:28,000 --> 00:59:31,000 Je vous appelle d'une fonction spéciale appelée print r. 1119 00:59:31,000 --> 00:59:34,000 Cela signifie imprimer récursive, et ce qu'il fait est qu'il imprime récursivement 1120 00:59:34,000 --> 00:59:38,000 toute variable vous le remettre, point-virgule, sortie mode PHP. 1121 00:59:38,000 --> 00:59:40,000 Et l'étiquette avant vous donne texte pré-formaté, 1122 00:59:40,000 --> 00:59:43,000 texte d'espace mono de sorte que chaque espace dont vous avez réellement le voir. 1123 00:59:43,000 --> 00:59:46,000 Elle ne disparaît pas. Quelle est la poste? 1124 00:59:46,000 --> 00:59:48,000 Eh bien, ce qui est intéressant et convaincant sur PHP 1125 00:59:48,000 --> 00:59:52,000 est que chaque fois que vous soumettez un formulaire en utilisant get ou post 1126 00:59:52,000 --> 00:59:56,000 tout ce qui est soumis à votre navigateur par un 1127 00:59:56,000 --> 01:00:00,000 PHP lui-même comprend ce à quoi les paires clé-valeur sont, 1128 01:00:00,000 --> 01:00:02,000 chiffres sur si il ya des signes d'égalité, des figures si il ya un point d'interrogation. 1129 01:00:02,000 --> 01:00:07,000 Il fait tout le travail dur pour vous, et il vous remet un tableau associatif 1130 01:00:07,000 --> 01:00:10,000 contenant tout ce que l'utilisateur a tapé dans le formulaire. 1131 01:00:10,000 --> 01:00:12,000 Eh bien, ce qui ne les champs ont cette forme? 1132 01:00:12,000 --> 01:00:14,000 >> Il avait 4 champs. 1133 01:00:14,000 --> 01:00:16,000 L'un était un champ de texte appelé nom. 1134 01:00:16,000 --> 01:00:18,000 L'une était une case à cocher appelée capitaine. 1135 01:00:18,000 --> 01:00:22,000 L'un était un bouton radio appelée sexe, 1136 01:00:22,000 --> 01:00:24,000 et un était un menu déroulant appelé dortoir, 1137 01:00:24,000 --> 01:00:27,000 si remarquerez lorsque j'imprime récursivement 1138 01:00:27,000 --> 01:00:29,000 le contenu de cette variable particulière. 1139 01:00:29,000 --> 01:00:34,000 Il s'agit d'une variable globale spéciale appelée $ _POST littéralement, tout en majuscules. 1140 01:00:34,000 --> 01:00:39,000 Il s'agit d'une variable globale spéciale que PHP crée pour vous 1141 01:00:39,000 --> 01:00:42,000 et les mains vers vous afin que vous pouvez accéder à tout 1142 01:00:42,000 --> 01:00:45,000 qui a été soumis par l'intermédiaire d'un formulaire par l'utilisateur. 1143 01:00:45,000 --> 01:00:48,000 Et en appelant r impression sur elle, vous ne feriez pas cela dans une application normale. 1144 01:00:48,000 --> 01:00:50,000 Nous faisons cela pour voir l'intérieur de cette variable, 1145 01:00:50,000 --> 01:00:53,000 et ce qui est à l'intérieur de celui-ci, eh bien, 4 touches, 1146 01:00:53,000 --> 01:00:56,000 4 paramètres http, pour ainsi dire, 1147 01:00:56,000 --> 01:00:59,000 nom, le capitaine, le sexe, le dortoir, puis les valeurs que l'utilisateur 1148 01:00:59,000 --> 01:01:01,000 tapé avec une exception. 1149 01:01:01,000 --> 01:01:03,000 J'ai fait de type D-A-V-I-D. 1150 01:01:03,000 --> 01:01:05,000 J'ai coché la case, même si, pour les hommes, qui, apparemment, a présenté une valeur 1151 01:01:05,000 --> 01:01:07,000 d'un peu m d'être succinct. 1152 01:01:07,000 --> 01:01:10,000 >> Quand j'ai sélectionné Matthews c'est la valeur qui s'est choisi, 1153 01:01:10,000 --> 01:01:12,000 et celui-ci est un peu stupide, mais c'est la convention. 1154 01:01:12,000 --> 01:01:17,000 Quand j'ai coché la case, une valeur de sur, «on», s'est soumis à la case. 1155 01:01:17,000 --> 01:01:21,000 Si je ne l'avais pas cochée, aucune valeur aurait été envoyé que ce soit. 1156 01:01:21,000 --> 01:01:26,000 C'est juste nous donner un aperçu de ce qu'il ya dedans de cette variable globale spéciale, 1157 01:01:26,000 --> 01:01:29,000 et il est si spécial que ça s'appelle une variable super-globale. 1158 01:01:29,000 --> 01:01:33,000 Il existe partout pour vous au sein de votre code de sorte que vous pouvez réellement y accéder. 1159 01:01:33,000 --> 01:01:36,000 Ce n'est pas que contraindre, nous allons donc utiliser effectivement la super globale 1160 01:01:36,000 --> 01:01:38,000 et effectivement essayer d'enregistrer quelqu'un. 1161 01:01:38,000 --> 01:01:41,000 En froshims1 je vais faire un changement. 1162 01:01:41,000 --> 01:01:44,000 Je change l'action à register1.php, 1163 01:01:44,000 --> 01:01:46,000 et je fais autre chose. 1164 01:01:46,000 --> 01:01:48,000 J'étais un peu gêné par la qualité de ma page Web là-bas. 1165 01:01:48,000 --> 01:01:52,000 Il est assez hideuse, honnêtement, il s'avère 1166 01:01:52,000 --> 01:01:56,000 que vous pouvez utiliser très facilement sur le Web 1167 01:01:56,000 --> 01:01:59,000 d'autres personnes du code JavaScript, CSS des autres 1168 01:01:59,000 --> 01:02:02,000 qu'ils ont écrit et open source et disponible sous forme de bibliothèque, 1169 01:02:02,000 --> 01:02:06,000 pour ainsi dire, et, par exemple, ici, je suis en utilisant une bibliothèque libre, 1170 01:02:06,000 --> 01:02:08,000 un tas de code que quelqu'un d'autre a écrit. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter est arrivé à écrire ce code, et cela s'appelle la bibliothèque bootstrap, 1172 01:02:11,000 --> 01:02:15,000 et c'est juste un tas de feuilles de style CSS, un tas de fichiers. css 1173 01:02:15,000 --> 01:02:19,000 que quelqu'un d'autre a écrit et compris comment obtenir tout agréable et jolie 1174 01:02:19,000 --> 01:02:22,000 de telle sorte que des gens comme nous peuvent vous inquiétez un peu moins sur l'esthétique et de se concentrer beaucoup plus 1175 01:02:22,000 --> 01:02:24,000 de la logique et de la programmation réelle. 1176 01:02:24,000 --> 01:02:30,000 En le reliant avec ce tag, qui est la même étiquette que j'ai utilisé pour styles3.css rappelez-vous plus tôt, 1177 01:02:30,000 --> 01:02:34,000 J'ai maintenant accès à un fichier appelé bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min signifie simplement qu'ils l'ont minified et ils ont réussi à se débarrasser de tout l'espace blanc et ainsi de suite 1179 01:02:37,000 --> 01:02:40,000 juste pour s'assurer qu'ils ne sont pas m'envoyer plus d'octets que j'ai réellement besoin. 1180 01:02:40,000 --> 01:02:45,000 Mais il ya dans tout un tas de CSS, donc si je maintenant ouvrir la version 1 de Frosh IMs 1181 01:02:45,000 --> 01:02:49,000 remarquerez que mon dossier est certainement plus joli. 1182 01:02:49,000 --> 01:02:54,000 Maintenant, il est encore juste en noir et blanc, mais remarquez que juste en utilisant leur feuille de style 1183 01:02:54,000 --> 01:02:58,000 et l'utilisation de certaines fonctionnalités de ce sur mon formulaire, ce n'est pas étonnant, 1184 01:02:58,000 --> 01:03:01,000 mais il est certainement plus propre qu'elle ne l'était avant, et que le projecteur n'est pas lui rendre justice. 1185 01:03:01,000 --> 01:03:05,000 Il ya peu de lignes grises autour des boutons et dans le champ de texte ici, 1186 01:03:05,000 --> 01:03:07,000 mais il est certainement plus propre qu'elle ne l'était auparavant. 1187 01:03:07,000 --> 01:03:09,000 >> Maintenant, pour être honnête, je ne dois changer mon code un peu. 1188 01:03:09,000 --> 01:03:12,000 Ceci est la version 1, et notez que j'ai utilisé quelques balises de nouvelles, 1189 01:03:12,000 --> 01:03:17,000 et honnêtement, je n'avais aucune idée de comment faire cela jusqu'à ce que j'ai lu la documentation 1190 01:03:17,000 --> 01:03:20,000 pour la bibliothèque bootstrap de Twitter, et ils m'ont dit que si vous voulez utiliser notre bibliothèque 1191 01:03:20,000 --> 01:03:23,000 utiliser un élément fieldset l'intérieur de votre formulaire, 1192 01:03:23,000 --> 01:03:27,000 mettre le mot que vous souhaitez afficher à côté d'un champ à l'intérieur d'une balise label, 1193 01:03:27,000 --> 01:03:30,000 puis donner à votre entrée un nom, comme avant, 1194 01:03:30,000 --> 01:03:34,000 et ensuite pour la case à cocher, non seulement vous l'envelopper dans un élément de l'étiquette, 1195 01:03:34,000 --> 01:03:36,000 vous utilisez quelque chose qui s'appelle une classe, donc nous n'avons pas vu cela avant, 1196 01:03:36,000 --> 01:03:39,000 mais vous verrez cela dans l'un des courts métrages pset 7 ont. 1197 01:03:39,000 --> 01:03:43,000 Une classe CSS vous permet de faire quelque chose de très similaire à l'ID, 1198 01:03:43,000 --> 01:03:46,000 mais avant quand nous avions un ID avec le symbole # 1199 01:03:46,000 --> 01:03:48,000 qui est pour un et un seul élément. 1200 01:03:48,000 --> 01:03:51,000 Ce qui est bien, c'est que la classe des éléments multiples peuvent avoir la même classe 1201 01:03:51,000 --> 01:03:54,000 ou la même chose CSS qui lui est appliquée. 1202 01:03:54,000 --> 01:03:57,000 >> Mais encore une fois, plus de celles à court, et le reste de ce est il suffit de copier et coller 1203 01:03:57,000 --> 01:04:00,000 de leur documentation où j'ai ajouté une étiquette ici et là. 1204 01:04:00,000 --> 01:04:03,000 Et à la fin, parce que j'ai inclus la balise de lien en haut, 1205 01:04:03,000 --> 01:04:06,000 tout a l'air plus joli automatiquement 1206 01:04:06,000 --> 01:04:10,000 simplement en ayant marqué ma page d'une manière qui 1207 01:04:10,000 --> 01:04:12,000 Twitter prévu, et il ya tellement de façons différentes 1208 01:04:12,000 --> 01:04:14,000 de le faire, et c'est en effet tout à fait approprié. 1209 01:04:14,000 --> 01:04:17,000 A ce point au cours du semestre, comme vous le verrez dans les spec pset des 7, 1210 01:04:17,000 --> 01:04:20,000 Googling autour, à lire sur les bibliothèques, en utilisant le CSS des autres 1211 01:04:20,000 --> 01:04:23,000 et JavaScript afin de résoudre les problèmes connexes 1212 01:04:23,000 --> 01:04:26,000 au problème posé lui-même est certainement encouragée et est le moyen le 1213 01:04:26,000 --> 01:04:29,000 le Web est construit de nos jours, en se tenant debout sur les épaules des autres 1214 01:04:29,000 --> 01:04:32,000 de sorte que vous pouvez vraiment vous concentrer sur les problèmes nouveaux et intéressants. 1215 01:04:32,000 --> 01:04:34,000 Mais nous allons maintenant nous concentrer sur, encore une fois, la logique. 1216 01:04:34,000 --> 01:04:38,000 >> C'était un petit détour sur l'esthétique juste pour vous montrer la direction dans laquelle vous pouvez aller. 1217 01:04:38,000 --> 01:04:40,000 Je vais revenir à la plus laide une pour l'instant juste parce que 1218 01:04:40,000 --> 01:04:44,000 il n'y a pas de distractions avec des trucs sur Twitter, et laissez-moi aller de l'avant et d'ouvrir 1219 01:04:44,000 --> 01:04:51,000 froshims2, ce qui, encore une fois, ne diffère que par l'action, register2.php, 1220 01:04:51,000 --> 01:04:55,000 et nous allons jeter un oeil à ce que l'effet est ici. 1221 01:04:55,000 --> 01:04:57,000 Laissez-moi aller de l'avant et taper David. 1222 01:04:57,000 --> 01:04:59,000 Je ne vais pas être le capitaine de ce temps. 1223 01:04:59,000 --> 01:05:01,000 Je dirai homme, Matthews registre. 1224 01:05:01,000 --> 01:05:05,000 Merde. D'accord, c'est une vis sur ma partie. 1225 01:05:05,000 --> 01:05:07,000 Stand by. 1226 01:05:07,000 --> 01:05:17,000 Register2, ligne 22, si elle est vide ou, désolé. 1227 01:05:17,000 --> 01:05:19,000 Nous allons recharger. 1228 01:05:19,000 --> 01:05:22,000 Bon, au moment du dépôt de ce formulaire ce qui s'est passé? 1229 01:05:22,000 --> 01:05:25,000 J'ai tapé dans David, vérifié mâle, cliqué Matthews, registre. 1230 01:05:25,000 --> 01:05:27,000 Vous êtes inscrit. (Eh bien, pas vraiment.) 1231 01:05:27,000 --> 01:05:32,000 Il s'agit clairement d'un pas au-delà de l'impression sur le contenu de certaines variables, 1232 01:05:32,000 --> 01:05:34,000 mais ce qui est en train de faire de ce fichier? 1233 01:05:34,000 --> 01:05:37,000 En register2.php 1234 01:05:37,000 --> 01:05:40,000 remarquerez que j'ai un nouveau code. 1235 01:05:40,000 --> 01:05:44,000 A l'intérieur de ma balise body j'ai essentiellement un if else construire, 1236 01:05:44,000 --> 01:05:47,000 mais parce que je suis le co-mingling cela avec un peu de HTML 1237 01:05:47,000 --> 01:05:51,000 Je dois entrer et sortir du mode PHP-et-vient, nous allons donc voir ce que je fais. 1238 01:05:51,000 --> 01:05:55,000 >> Dans la première ligne ici, je dis que si c'est le cas 1239 01:05:55,000 --> 01:06:00,000 que le super post mondiale est vide pour la clé de nom, 1240 01:06:00,000 --> 01:06:04,000 en d'autres mots, si l'utilisateur ne m'a pas donné de valeur pour nom, sous la forme, 1241 01:06:04,000 --> 01:06:07,000 puis vider va revenir vrai parce que la valeur est vide. 1242 01:06:07,000 --> 01:06:11,000 Ou-remarquerez les barres verticales, si le sexe est vide 1243 01:06:11,000 --> 01:06:15,000 l'intérieur de cette spéciale superpuissance mondiale, ce qui, encore une fois, représente le contenu de la forme, 1244 01:06:15,000 --> 01:06:19,000 ou le dortoir est vide, alors je vais aller de l'avant et de crier à l'utilisateur. 1245 01:06:19,000 --> 01:06:22,000 Comment? Eh bien, remarquez que je vais dire que vous devez fournir votre nom, le sexe, et le dortoir. 1246 01:06:22,000 --> 01:06:24,000 Nous allons effectivement induire cette erreur. 1247 01:06:24,000 --> 01:06:27,000 Permettez-moi de revenir à ma forme. Permettez-moi de recharger pour l'effacer. 1248 01:06:27,000 --> 01:06:30,000 Et je vais leur donner de David, et ils n'ont pas besoin de savoir où je vis. 1249 01:06:30,000 --> 01:06:33,000 Inscrivez-vous. Apparemment, je n'ai pas besoin de leur dire où je vis. 1250 01:06:33,000 --> 01:06:35,000 Vous devez fournir votre nom, le sexe et le dortoir. Retour. 1251 01:06:35,000 --> 01:06:39,000 >> Et je ne pouvais cliquer pour revenir à cette forme, mais pourquoi est-ce? 1252 01:06:39,000 --> 01:06:43,000 Eh bien, dans ce cas, le nom n'était pas vide, mais le sexe était, et dortoir était, 1253 01:06:43,000 --> 01:06:47,000 si cette expression toute évalué à vrai, et même si la syntaxe est un peu nouveau, 1254 01:06:47,000 --> 01:06:51,000 encore une fois, nous entrons dans le mode PHP, familier instruction if, 1255 01:06:51,000 --> 01:06:54,000 mais la nouvelle partie ici est juste ce colon, et j'avais merdé en omettant une parenthèse 1256 01:06:54,000 --> 01:06:57,000 par accident, mais remarquez le côlon, ce qui signifie 1257 01:06:57,000 --> 01:07:00,000 même si nous sommes de quitter tout mode PHP 1258 01:07:00,000 --> 01:07:03,000 qui suit doit être recracher in extenso dans le navigateur 1259 01:07:03,000 --> 01:07:07,000 jusqu'à ce que vous voyez un autre bloc, comme nous le faisons ici, 1260 01:07:07,000 --> 01:07:10,000 Dans ce cas, vous devriez plutôt cracher sur ce 1261 01:07:10,000 --> 01:07:13,000 jusqu'à ce que le endif, donc une syntaxe légèrement différente 1262 01:07:13,000 --> 01:07:16,000 qui me permet de basculer entre HTML et PHP. 1263 01:07:16,000 --> 01:07:19,000 Nous pouvons nettoyer tout ça un jour, mais pour l'instant, 1264 01:07:19,000 --> 01:07:22,000 c'est un peu une façon convaincante de vérification des erreurs dans le formulaire. 1265 01:07:22,000 --> 01:07:25,000 >> Maintenant, je dis que vous n'êtes pas vraiment inscrit car il est évident que nous n'avons rien fait, mais les données, 1266 01:07:25,000 --> 01:07:28,000 nous allons donc effectivement essayer de faire quelque chose de cool. 1267 01:07:28,000 --> 01:07:33,000 En froshims3 la seule différence est que je vais soumettre à register3, 1268 01:07:33,000 --> 01:07:35,000 si le code HTML, il ya le même. 1269 01:07:35,000 --> 01:07:38,000 En register3 remarqué. 1270 01:07:38,000 --> 01:07:40,000 Celui-ci est assez sexy. 1271 01:07:40,000 --> 01:07:44,000 Au sommet, je suis en utilisant une instruction require, donc c'est comme # include. 1272 01:07:44,000 --> 01:07:46,000 Cette fois, ce n'est pas stdio.h ou quelque chose comme ça. 1273 01:07:46,000 --> 01:07:50,000 C'est une bibliothèque PHP, et celui-ci est appelé PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Comment savais-je inclure précisément cette chaîne entre guillemets? 1275 01:07:53,000 --> 01:07:56,000 Je l'ai lu dans la documentation, alors quand on m'a dit que mettre ceci au début du fichier 1276 01:07:56,000 --> 01:08:00,000 si vous souhaitez utiliser une bibliothèque spéciale appelée PHPMailer qui fait ce qu'il dit. 1277 01:08:00,000 --> 01:08:03,000 Il vous permet d'envoyer des e-mails via PHP. 1278 01:08:03,000 --> 01:08:05,000 Maintenant, nous allons faire défiler plus bas. 1279 01:08:05,000 --> 01:08:08,000 >> Remarquez d'abord que je suis en mode PHP tout ce temps, 1280 01:08:08,000 --> 01:08:11,000 alors maintenant remarquer ici-bas après avoir importé la bibliothèque, 1281 01:08:11,000 --> 01:08:13,000  pour ainsi dire, je fais quelques vérifications. 1282 01:08:13,000 --> 01:08:16,000 Si c'est le cas ce nom n'est pas vide 1283 01:08:16,000 --> 01:08:19,000 et le sexe n'est pas vide, notez les points d'exclamation- 1284 01:08:19,000 --> 01:08:24,000 et le dortoir n'est pas vide, alors l'utilisateur a logiquement complété le formulaire, au moins assez. 1285 01:08:24,000 --> 01:08:28,000 Je ne m'inquiète pas si ils sont capitaine ou non. J'ai juste besoin de leur nom, le sexe, et le dortoir. 1286 01:08:28,000 --> 01:08:31,000 Si elles ont rempli les de telle sorte qu'aucune de ces champs sont vides 1287 01:08:31,000 --> 01:08:33,000 ce qui est légèrement nouvelle syntaxe. 1288 01:08:33,000 --> 01:08:36,000 PHP, en passant, est un langage de programmation orienté objet 1289 01:08:36,000 --> 01:08:39,000 que certains d'entre vous souvenez peut-être de APCS ou analogues. 1290 01:08:39,000 --> 01:08:42,000 Pour l'instant, si inconnu, il suffit de savoir que pour utiliser cette bibliothèque 1291 01:08:42,000 --> 01:08:45,000 vous devez écrire une ligne de code comme celui-ci en utilisant un nouveau mot-clé, 1292 01:08:45,000 --> 01:08:47,000 littéralement un nouveau mot-clé appelé de nouveau. 1293 01:08:47,000 --> 01:08:50,000 Mais au-delà, nous avons une certaine syntaxe familière. 1294 01:08:50,000 --> 01:08:54,000 C'est un opérateur flèche, ce qui est similaire à ce que nous avons utilisé pour les structures dans le cadre de pointeurs. 1295 01:08:54,000 --> 01:08:57,000 Pour aujourd'hui PHP n'a pas de pointeurs, 1296 01:08:57,000 --> 01:09:01,000 mais nous savons maintenant que l'intérieur de la variable électronique 1297 01:09:01,000 --> 01:09:05,000 est essentiellement une sorte de pointeur vers une bibliothèque spéciale 1298 01:09:05,000 --> 01:09:08,000 que quelqu'un d'autre a écrit, et si je veux accéder à des fonctionnalités spécifiques 1299 01:09:08,000 --> 01:09:12,000 l'intérieur de cette bibliothèque que je fais, comme en C, utilisez l'opérateur flèche, 1300 01:09:12,000 --> 01:09:14,000 même si elles ne sont pas réellement des pointeurs. 1301 01:09:14,000 --> 01:09:16,000 C'est en quelque sorte propre version de PHP de celle-ci. 1302 01:09:16,000 --> 01:09:20,000 Cela signifie aller à la bibliothèque et appeler la fonction IsSMTP. 1303 01:09:20,000 --> 01:09:23,000 SMTP, rappel, de nos guerriers du Net se réfère au courrier électronique, 1304 01:09:23,000 --> 01:09:28,000 et cela signifie simplement utiliser un serveur de messagerie pour cette inscription Frosh IM. 1305 01:09:28,000 --> 01:09:30,000 >> Qu'est-ce que je veux hôte à utiliser? 1306 01:09:30,000 --> 01:09:34,000 Eh bien, Harvard, si vous Google autour, a un serveur de messagerie appelé smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Si vous accompagnez à la maison ou vous vivez sur un réseau Comcast 1308 01:09:37,000 --> 01:09:40,000 il pourrait être quelque chose comme smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 Il dépend totalement de l'endroit où vous vivez et qui est votre fournisseur d'accès. 1310 01:09:43,000 --> 01:09:47,000 Après ça, je vais mettre mon adresse à partir arbitrairement à jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Je suis ensuite aller pour régler le satisfaire pour être jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 La seule façon que je savais que ces fonctions ont été appelées setFrom et AddAddress 1313 01:09:55,000 --> 01:09:57,000 est, encore une fois, j'ai lu la documentation. 1314 01:09:57,000 --> 01:09:59,000 Ce n'est pas genre de magie connu de tous les programmeurs. 1315 01:09:59,000 --> 01:10:02,000 Puis-je définir un objet d'une «inscription». 1316 01:10:02,000 --> 01:10:07,000 Et maintenant, cette ligne est un peu moche parce que ce qui ne signifie pas l'opérateur point en PHP? 1317 01:10:07,000 --> 01:10:09,000 Quelqu'un sait? 1318 01:10:09,000 --> 01:10:11,000 Concaténer. 1319 01:10:11,000 --> 01:10:14,000 En C, il est une douleur dans le cou pour concaténer 2 chaînes en même temps. 1320 01:10:14,000 --> 01:10:17,000 Vous avez à traiter avec malloc ou realloc tout ou partie de ce genre de choses 1321 01:10:17,000 --> 01:10:20,000 seulement d'étendre la longueur d'une chaîne. 1322 01:10:20,000 --> 01:10:22,000 En PHP, JavaScript et dans d'autres langues 1323 01:10:22,000 --> 01:10:24,000 vous pouvez généralement le faire avec un seul caractère. 1324 01:10:24,000 --> 01:10:28,000 Dans ce cas, point signifie profiter de cette chaîne ici 1325 01:10:28,000 --> 01:10:30,000 pour ajouter des données de cette chaîne. 1326 01:10:30,000 --> 01:10:32,000 >> Oh, et en passant, il annexer à cette chaîne, 1327 01:10:32,000 --> 01:10:34,000 qui se trouve être une variable de l'intérieur que super-globale. 1328 01:10:34,000 --> 01:10:37,000 Ensuite, ajouter à cela une nouvelle ligne, de sorte que tous ces points seulement dire 1329 01:10:37,000 --> 01:10:39,000 continuer à faire une chaîne de plus en plus gros et plus grand, 1330 01:10:39,000 --> 01:10:43,000 et vous n'avez pas à vous soucier du tout de malloc ou similaire dans un langage comme celui-ci, 1331 01:10:43,000 --> 01:10:46,000 et il ya d'autres façons de le faire, mais c'est l'un des plus rapides 1332 01:10:46,000 --> 01:10:48,000 les moyens de la mettre en page. 1333 01:10:48,000 --> 01:10:50,000 Quel est ce fait? 1334 01:10:50,000 --> 01:10:55,000 Il s'agit de créer un corps de l'email que va dire Nom: Capitaine: Sexe: Dortoir: 1335 01:10:55,000 --> 01:10:58,000 tous sur des lignes distinctes, puis enfin, 1336 01:10:58,000 --> 01:11:00,000 une ligne de code, et je vais ignorer cela pour l'instant. 1337 01:11:00,000 --> 01:11:02,000 Si == false signifie simplement que si quelque chose s'est mal passé, 1338 01:11:02,000 --> 01:11:04,000 mais la magie qui se passe ici. 1339 01:11:04,000 --> 01:11:08,000 Mail Envoyer signifie envoyer cet e-mail. 1340 01:11:08,000 --> 01:11:10,000 Voyons voir ce que le résultat net est. 1341 01:11:10,000 --> 01:11:13,000 A la fin du fichier, notez qu'il va dire que vous êtes inscrit vraiment 1342 01:11:13,000 --> 01:11:15,000 si je suis si loin. 1343 01:11:15,000 --> 01:11:18,000 Si, cependant, l'utilisateur vis en place, vous remarquerez que nous avons commencé cette 1344 01:11:18,000 --> 01:11:21,000 si l'état ici, si elle n'est pas vide et non vide 1345 01:11:21,000 --> 01:11:24,000 et ne se vide pas nous envoyer l'e-mail. 1346 01:11:24,000 --> 01:11:27,000 Sinon, nous allons envoyer cette ligne de code, 1347 01:11:27,000 --> 01:11:30,000 qui va avoir pour effet, comme vous le verrez dans pset 7, de rediriger l'internaute 1348 01:11:30,000 --> 01:11:35,000 retourner d'où ils venaient, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Je croise les doigts, sinon ça va être la démonstration la plus décevante aujourd'hui. 1350 01:11:38,000 --> 01:11:40,000 Nous y voilà. 1351 01:11:40,000 --> 01:11:42,000 Permettez-moi d'ouvrir ma boîte de réception e-mail pour jharvard dans Gmail. 1352 01:11:42,000 --> 01:11:44,000 Aucun e-mail dès maintenant. Très bien. 1353 01:11:44,000 --> 01:11:53,000 Maintenant, laissez-moi ouvrir froshims3, qui est le troisième et dernier exemple que nous allons examiner ici. 1354 01:11:53,000 --> 01:11:55,000 Ok, on y va. 1355 01:11:55,000 --> 01:12:00,000 Nate, il sera capitaine, homme, de, disons, Apley. 1356 01:12:00,000 --> 01:12:04,000 Inscrivez-vous. Ok, vous êtes inscrit vraiment. 1357 01:12:04,000 --> 01:12:07,000 Maintenant, si je défiler à mon e-mail, oh, mon Dieu. 1358 01:12:07,000 --> 01:12:09,000 Je viens dynamiquement envoyé un courriel sur le Web. 1359 01:12:09,000 --> 01:12:11,000 >> Laissons là-dessus. 1360 01:12:11,000 --> 01:12:16,000 Une vidéo est à venir pour la conférence nous a manqué. Rendez-vous la semaine prochaine. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]