1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Week 8] 2 00:00:02,000 --> 00:00:04,000 [David J Malan] [Harvard Universiteit] 3 00:00:04,000 --> 00:00:07,000 [Hierdie is CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Welkom terug. 5 00:00:09,000 --> 00:00:11,000 Dit is CS50, en dit is die begin van die week 8. 6 00:00:11,000 --> 00:00:14,000 'N paar geleenthede hierdie week, 7 00:00:14,000 --> 00:00:17,000 onder hulle praat hier, by watter kos sal bedien word. 8 00:00:17,000 --> 00:00:20,000 Vir meer besonderhede check die skyfies wat aanlyn is. 9 00:00:20,000 --> 00:00:24,000 En ook 'n ander geval hierdie week deur ons eie Thomas Carriero. 10 00:00:24,000 --> 00:00:27,000 Hy is een van CS50 se voormalige hoof onderrig genote wat nou by Dropbox, 11 00:00:27,000 --> 00:00:29,000 en hy is die man wat ons hooked up met die jy weet wat, 12 00:00:29,000 --> 00:00:36,000 so as jy meer wil weet van daardie kop na hul gesprek vanmiddag vir Dropbox en nog baie meer. 13 00:00:36,000 --> 00:00:38,000 CS50 middagete is hierdie Vrydag. 14 00:00:38,000 --> 00:00:41,000 Doen by ons aansluit as jy in staat is om, 1:15, soos gewoonlik, op Fire and Ice. 15 00:00:41,000 --> 00:00:45,000 >> En nou het ons duik in iets genaamd Seminare. 16 00:00:45,000 --> 00:00:49,000 Ons CS50 Seminare, onthou, is hierdie opsionele klasse gelei deur die onderrig genote 17 00:00:49,000 --> 00:00:51,000 en natuurlik assistente en vriende van die kursus, 18 00:00:51,000 --> 00:00:55,000 mense van 'n groep op die kampus genoem ABCD, wat is 'n groep van 19 00:00:55,000 --> 00:00:58,000 technophiles op die kampus, sowel as 'n groep met die naam HCS, 20 00:00:58,000 --> 00:01:02,000 die Harvard Computer Society, voorgraadse studente wat insgelyks geïnteresseerd in rekenaar. 21 00:01:02,000 --> 00:01:08,000 Hierdie jaar se rooster van seminare sluit seminare op Android en IOS en JavaScript 22 00:01:08,000 --> 00:01:13,000 en PHP, Unix, Vim, en nog baie meer, so besef dat hierdie seminare kom. 23 00:01:13,000 --> 00:01:16,000 As jy wil om te RSVP vir enige van hulle kop na die URL daar. 24 00:01:16,000 --> 00:01:20,000 Ons sal dan die tye en plekke plaas op die kursus se webblad sodra dit gefinaliseer is. 25 00:01:20,000 --> 00:01:26,000 Maar weet daar is 5 jaar se moeite werd van vorige seminare aanlyn beskikbaar, 26 00:01:26,000 --> 00:01:29,000 baie van wat nog baie stroom in terme van tegnologie jy dalk 27 00:01:29,000 --> 00:01:36,000 wil om te speel met jou finale projekte, sodat daar kop vir 'n paar beskikbare video's daarvan. 28 00:01:36,000 --> 00:01:39,000 >> CSS, diegene van julle wat reeds vertroud is met CSS, 29 00:01:39,000 --> 00:01:42,000 Wat is dit in 'n neutedop? 30 00:01:42,000 --> 00:01:45,000 Wat is CSS? 31 00:01:45,000 --> 00:01:48,000 Dit is Cascading Style Sheets, en wat beteken dit? 32 00:01:48,000 --> 00:01:53,000 Wat beteken dit vir ons doen, CSS? 33 00:01:53,000 --> 00:01:57,000 Alle reg, laat opwarm met 'n makliker een, HTML, HyperText Markup Language. 34 00:01:57,000 --> 00:02:01,000 Wat beteken dit vir ons kan doen? 35 00:02:01,000 --> 00:02:04,000 Enigeen by almal? 36 00:02:04,000 --> 00:02:07,000 Dit is regtig ongemaklik om hierdie vrae te vra. 37 00:02:07,000 --> 00:02:11,000 HTML, HyperText Markup Language. 38 00:02:11,000 --> 00:02:14,000 Ja? Nie? 39 00:02:14,000 --> 00:02:17,000 [Onhoorbaar student reaksie] 40 00:02:17,000 --> 00:02:20,000 Goed, goed, dit stel ons in staat om te merk teks te vertoon in 'n webblaaier. 41 00:02:20,000 --> 00:02:22,000 Dit is nie 'n programmeertaal. 42 00:02:22,000 --> 00:02:25,000 Dit is inderdaad 'n opmaak taal, wat beteken dat dit die leser hoe om te vertoon opdrag 43 00:02:25,000 --> 00:02:28,000 inligting, sodat die eenvoudigste inkarnasie van hierdie as ons gesien het 44 00:02:28,000 --> 00:02:32,000 is iets super eenvoudig soos boldfacing, oop bracket b gesluit bracket sê 45 00:02:32,000 --> 00:02:36,000 hierdie teks vet maak, en dit is eintlik net een van baie maniere 46 00:02:36,000 --> 00:02:39,000 waarin ons dit kan doen, en inderdaad, hierdie dae 'n beter benadering 47 00:02:39,000 --> 00:02:42,000 jou web bladsy, stylizing om dinge te maak vet en kursief 48 00:02:42,000 --> 00:02:47,000 en gesentreer en geregverdig en dies meer, is nie gedoen nie alleen via HTML tags 49 00:02:47,000 --> 00:02:51,000 maar eerder met 'n tegniek genaamd CSS, Cascading Style Sheets. 50 00:02:51,000 --> 00:02:53,000 Dit is 'n taal op sigself. 51 00:02:53,000 --> 00:02:55,000 Dit is ook nie 'n programmeertaal, maar- 52 00:02:55,000 --> 00:02:58,000 almal, dit is Dan, wat hou by ons vandag. 53 00:02:58,000 --> 00:03:01,000 'N paar tegniese probleme. Nie 'n probleem. 54 00:03:01,000 --> 00:03:04,000 >> CSS stel ons in staat om 'n bladsy te stiliseren 55 00:03:04,000 --> 00:03:07,000 deur die instelling van die sogenaamde eienskappe, so laat ons neem 'n blik op hierdie 56 00:03:07,000 --> 00:03:09,000 deur middel van 'n paar basiese voorbeelde. 57 00:03:09,000 --> 00:03:12,000 Laat my gaan vandag in die toestel. 58 00:03:12,000 --> 00:03:15,000 Ek het die bron 8 Maandag directory in hier, 59 00:03:15,000 --> 00:03:18,000 en ek gaan om te gaan na 'n gids met die naam van CSS waar ons 'n hele klomp 60 00:03:18,000 --> 00:03:21,000 van lêers wag vir ons hier, 61 00:03:21,000 --> 00:03:27,000 en ons het in hierdie gids, byvoorbeeld, search0.html van die laaste tyd. 62 00:03:27,000 --> 00:03:31,000 Nou, onthou ons vertrek met search0 op hierdie nota 63 00:03:31,000 --> 00:03:35,000 deur soort van die implementering van Google of eintlik net die front-end vir 'n week of so gelede, 64 00:03:35,000 --> 00:03:38,000 en let op dat ons het 'n paar nuwe tags daar. 65 00:03:38,000 --> 00:03:41,000 Ons het h1 vir 'n groot, vet opskrif, 66 00:03:41,000 --> 00:03:45,000 vorm, wat ons toegelaat het om werklik 'n HTML-vorm vir die toevoer van die gebruiker. 67 00:03:45,000 --> 00:03:48,000 Aksie, wat was die betekenis van 'n aksie attribuut 68 00:03:48,000 --> 00:03:52,000 op die HTML-vorm tag? 69 00:03:52,000 --> 00:03:58,000 Wat was die betekenis van hierdie aksie? 70 00:03:58,000 --> 00:04:00,000 Ek sal net doen dit vandag. 71 00:04:00,000 --> 00:04:03,000 Aksie is die bestemming waar die vorm gaan ingedien word. 72 00:04:03,000 --> 00:04:07,000 Die feit dat sê action = "google.com / search" 73 00:04:07,000 --> 00:04:10,000 beteken dat wanneer die gebruiker op die submit-knoppie of die ekwivalent 74 00:04:10,000 --> 00:04:14,000 watter vorm velde wat hulle ingevul gaan word nie aan ons bediener gestuur 75 00:04:14,000 --> 00:04:17,000 of ons toestel maar eerder om daardie spesifieke URL by Google. 76 00:04:17,000 --> 00:04:19,000 En die metode wat dit gaan gebruik word genoem kry, 77 00:04:19,000 --> 00:04:25,000 en kry, vir nou, is net 'n tegniek vir die inligting deurgee saam na 'n web-bediener 78 00:04:25,000 --> 00:04:29,000 deur middel van die URL, so laat ons neem 'n vinnige blik op hoe dit werk. 79 00:04:29,000 --> 00:04:31,000 >> Let daarop dat daar is 'n inset wie se naam is q 80 00:04:31,000 --> 00:04:35,000 wie se soort teks en dan 'n tweede inset van die tipe ' 81 00:04:35,000 --> 00:04:39,000 waarvan die waarde is CS50 Soek, en inderdaad, as ons hierdie lêer oop te maak, 82 00:04:39,000 --> 00:04:42,000 search0.html, dit is 'n super eenvoudige vorm, 83 00:04:42,000 --> 00:04:45,000 en as ek soek vir iets soos rekenaarwetenskap 84 00:04:45,000 --> 00:04:50,000 en dan druk Enter of kliek op CS50 Search 85 00:04:50,000 --> 00:04:53,000 sien dat wat gebeur is buite om te Google 86 00:04:53,000 --> 00:04:56,000 Ek het spesifiek op hierdie URL beland op die top, 87 00:04:56,000 --> 00:05:01,000 google.com / search q =? rekenaar + wetenskap, 88 00:05:01,000 --> 00:05:04,000 en rekenaarwetenskap is natuurlik wat ek getik. 89 00:05:04,000 --> 00:05:06,000 Die + beteken net dat is waar 'n spasie karakter was, 90 00:05:06,000 --> 00:05:10,000 en dit is gedoen deur die leser net om seker te maak dat daar geen 91 00:05:10,000 --> 00:05:13,000 verwarring en wit spasie in die werklike URL. 92 00:05:13,000 --> 00:05:15,000 En dan q, natuurlik, is die parameter naam. 93 00:05:15,000 --> 00:05:20,000 Ons het nie gesien hoe ons, die programmeerder, kan eintlik toegang q nog. 94 00:05:20,000 --> 00:05:23,000 Ons kan aanneem dat Google weet wat om te doen met dit hier, 95 00:05:23,000 --> 00:05:25,000 maar ons sal daar vandag op die regte tyd. 96 00:05:25,000 --> 00:05:30,000 >> Maar laat my toe om 'n blik plaas by search1.html, 97 00:05:30,000 --> 00:05:34,000 wat lyk 'n bietjie anders, want ek het besluit dat hierdie vorm hier was net 'n bietjie lam. 98 00:05:34,000 --> 00:05:36,000 Ek bedoel, dit is by die boonste linkerhoek. 99 00:05:36,000 --> 00:05:40,000 Daar is regtig geen estetika, en so ek wil om dit te stileer 100 00:05:40,000 --> 00:05:43,000 'n bietjie meer soos Google, wie se tuisblad, onthou, 101 00:05:43,000 --> 00:05:47,000 selfs al is jy nie dit wat dikwels besoek, lyk vandag soos hierdie op Halloween. 102 00:05:47,000 --> 00:05:53,000 As ons plaas weergawe 1 van hierdie lêer, soek 1.html oopmaak, het ek dit gesentreer. 103 00:05:53,000 --> 00:05:57,000 Nog redelik lelik nie, maar ten minste nou het ek begin om die estetika van hierdie bladsy te beheer, 104 00:05:57,000 --> 00:06:00,000 nie net die nasien daarvan. 105 00:06:00,000 --> 00:06:04,000 Kom ons neem 'n blik op soek 1, en daar is regtig net een verskil hier, 106 00:06:04,000 --> 00:06:06,000 wat kan spring uit by jou, of miskien nie, 107 00:06:06,000 --> 00:06:11,000 maar wat is die een lyn of uit van die verskil? 108 00:06:11,000 --> 00:06:14,000 >> Daar is hierdie styl kenmerk, so dit blyk dat in HTML 109 00:06:14,000 --> 00:06:19,000 die meeste elemente, kan die meeste tags 'n styl kenmerk op hulle, 110 00:06:19,000 --> 00:06:23,000 en binnekant van daardie styl kenmerk is 'n aangehaal string, 111 00:06:23,000 --> 00:06:26,000 en dat aangehaal string CSS. 112 00:06:26,000 --> 00:06:29,000 Jy kan cascading style sheet daar 113 00:06:29,000 --> 00:06:32,000 deur dit as 'n eiendom se naam te spesifiseer 114 00:06:32,000 --> 00:06:34,000 gevolg deur 'n dubbelpunt, gevolg deur 'n waarde. 115 00:06:34,000 --> 00:06:37,000 Dit is 'n soort van 'n ongelukkige ontwerp-besluit 'n paar jaar gelede 116 00:06:37,000 --> 00:06:40,000 dat CSS is 'n taal op sigself, 117 00:06:40,000 --> 00:06:43,000 maar dit is sintakties baie verskil van HTML. 118 00:06:43,000 --> 00:06:46,000 In hierdie geval, sien ons dat die binnekant van my webblad, wat geskryf is in HTML, 119 00:06:46,000 --> 00:06:51,000 Ek het CSS binnekant van hierdie aanhalings, en die Konvensie vir CSS 120 00:06:51,000 --> 00:06:55,000 is dat jy wat 'n eiendom, gevolg deur weer 'n kolon genoem word, 121 00:06:55,000 --> 00:06:58,000 gevolg deur die waarde van daardie eiendom, dus is daar geen gelyke teken. 122 00:06:58,000 --> 00:07:00,000 Daar is geen addisionele aanhalings. 123 00:07:00,000 --> 00:07:03,000 Dit is net hierdie dubbelpunt geskei sleutel waardepaar, 124 00:07:03,000 --> 00:07:05,000 en teks lyn doen presies wat dit sê. 125 00:07:05,000 --> 00:07:09,000 Dit lijnt jy die teks in die liggaam van die bladsy, wat is regtig die guts van die bladsy, 126 00:07:09,000 --> 00:07:11,000 in die middel. 127 00:07:11,000 --> 00:07:13,000 >> Okay, die eindresultaat, om duidelik te wees, is dit. 128 00:07:13,000 --> 00:07:17,000 Nie alles wat sexier, maar ten minste is dit gesentreer en 'n bietjie meer soos die ware Google. 129 00:07:17,000 --> 00:07:21,000 Maar wat as ek plaas oopmaak weergawe 2 van hierdie 130 00:07:21,000 --> 00:07:25,000 en wys hier onder om 'n nuwe tag altesaam? 131 00:07:25,000 --> 00:07:30,000 Nou in die kop van my bladsy, wat voorheen het net wat tag 132 00:07:30,000 --> 00:07:32,000 in alle vorige voorbeelde? 133 00:07:32,000 --> 00:07:34,000 Dit moes net die titel. 134 00:07:34,000 --> 00:07:38,000 'N Oomblik gelede het die kop tag kyk soos hierdie. 135 00:07:38,000 --> 00:07:40,000 Nou in plaas dit het 'n styl tag binnekant van dit, 136 00:07:40,000 --> 00:07:44,000 en dit ook, ek is jammer, lyk sintakties baie verskillende van HTML, 137 00:07:44,000 --> 00:07:47,000 maar jy daaraan gewoond te raak, waardeur binnekant van die styl tag 138 00:07:47,000 --> 00:07:50,000 Ek kan nou faktor wat 'n oomblik gelede 139 00:07:50,000 --> 00:07:54,000 'n kenmerk van die styl kenmerk, en ek kan sit dit op die top van my bladsy. 140 00:07:54,000 --> 00:07:56,000 >> Hoekom? 141 00:07:56,000 --> 00:08:00,000 Wel, dit is 'n stap in die rigting van die skoonmaak dinge, net soos in die C-kode te skryf 142 00:08:00,000 --> 00:08:04,000 sou ons soms skryf funksies faktor gemeenskaplike funksionaliteit. 143 00:08:04,000 --> 00:08:07,000 Dit is net 'n bietjie skoner factoring te begin uit dinge soos die estetika 144 00:08:07,000 --> 00:08:11,000 na 'n sentrale plek eerder as om dit alles deurspek regdeur jou HTML. 145 00:08:11,000 --> 00:08:14,000 Dit beteken ook wat dit sê, selfs al is daar is 'n bietjie van die nuwe sintaksis. 146 00:08:14,000 --> 00:08:19,000 Dit is hier om 'n keurder, en liggaam beteken net kies die liggaam element 147 00:08:19,000 --> 00:08:21,000 en die volgende eienskappe toe te pas om dit te. 148 00:08:21,000 --> 00:08:23,000 Wel, die eiendom is presies dieselfde. 149 00:08:23,000 --> 00:08:25,000 Vir 'n goeie maatreël Ek het bygevoeg 'n kommapunt aan die einde, 150 00:08:25,000 --> 00:08:29,000 wat geneig is om te wees konvensie, en ek het hierdie hele eiendom toegedraai 151 00:08:29,000 --> 00:08:33,000 kode tussen krulhakies, want ek kan eintlik verskillende dinge hier. 152 00:08:33,000 --> 00:08:39,000 Ek kon eintlik sê iets soos kleur: blou; 153 00:08:39,000 --> 00:08:42,000 >> Nou dit is ook nie van plan om 'n stap in die rigting van enigiets alles wat mooier, 154 00:08:42,000 --> 00:08:47,000 maar as ek nou terug gaan na die weergawe 2 het ten minste het ek nou die liggaam van my 155 00:08:47,000 --> 00:08:49,000 bladsy se teks al die blou. 156 00:08:49,000 --> 00:08:51,000 Die knoppie dieselfde bly, want dit is 'n inset. Dit is nie suiwer teks. 157 00:08:51,000 --> 00:08:56,000 Maar alles wat teks, soos CS50 Search tot bo, is in werklikheid blou. 158 00:08:56,000 --> 00:09:01,000 Weer, al het ons nou gedoen verwyder uit die liggaam tag, kennisgewing, 159 00:09:01,000 --> 00:09:04,000 die styl kenmerk, en ons het ingereken dit hier. 160 00:09:04,000 --> 00:09:08,000 Dit is nie 'n groot verbetering, maar as ons hierdie een stap verder neem 161 00:09:08,000 --> 00:09:10,000 Let op wat ons kan doen in die derde weergawe hier. 162 00:09:10,000 --> 00:09:14,000 >> In search3.html die webblad is byna identies 163 00:09:14,000 --> 00:09:17,000 behalwe vir dit wat nuwe tag nou? 164 00:09:17,000 --> 00:09:20,000 Link, so hierdie een is baie gepas nie genoem 165 00:09:20,000 --> 00:09:24,000 omdat jy nie met 'n skakel in die sin van 'n klikbare skakel. 166 00:09:24,000 --> 00:09:28,000 Nee, jy is soort van die doen van die ekwivalent van # sluit in C 167 00:09:28,000 --> 00:09:31,000 waardeur die link tag met 'n href kenmerk 168 00:09:31,000 --> 00:09:34,000 en 'n rel kenmerk sê gaan voort 169 00:09:34,000 --> 00:09:39,000 en 'n afskrif plak die inhoud van 'n lêer genaamd search3.css reg hier, in wese. 170 00:09:39,000 --> 00:09:42,000 Dit maak nie regtig doen nie, maar dit is die gees van dit. 171 00:09:42,000 --> 00:09:45,000 Dit sê gaan oop lêer, search3.css, 172 00:09:45,000 --> 00:09:49,000 en behandel dit asof die gebruiker ingetik dit reg hier in die kop van die bladsy 173 00:09:49,000 --> 00:09:51,000 net soos ek gedoen het in die vorige voorbeeld. 174 00:09:51,000 --> 00:09:54,000 Search3.css, intussen, is redelik eenvoudig. 175 00:09:54,000 --> 00:09:58,000 Dit is regtig bevat presies wat was 'n oomblik gelede 176 00:09:58,000 --> 00:10:03,000 in die styl tag, maar ek ingereken dit hier na sy eie lêer. 177 00:10:03,000 --> 00:10:07,000 >> Selfs al het ons nie spandeer baie tyd in HTML of web ontwikkeling op alle 178 00:10:07,000 --> 00:10:11,000 net intuïtief wat is die motivering, miskien, vir factoring uit 179 00:10:11,000 --> 00:10:14,000 hierdie klein brokkie selfs van CSS in sy eie lêer 180 00:10:14,000 --> 00:10:19,000 en dan dit met hierdie link tag hier? 181 00:10:19,000 --> 00:10:21,000 [Onhoorbaar student reaksie] 182 00:10:21,000 --> 00:10:25,000 Goed, dit is makliker om te lees in die sin dat jy jou CSS in 'n CSS-lêer. 183 00:10:25,000 --> 00:10:28,000 Jy het jou HTML-kode in jou HTML-lêer, dus is dit meer leesbaar in daardie sin nie. 184 00:10:28,000 --> 00:10:30,000 Wat anders kan wees dwingende? Ja. 185 00:10:30,000 --> 00:10:32,000 [Onhoorbaar student reaksie] 186 00:10:32,000 --> 00:10:35,000 Ja, so jy kan sluit dit baie keer, so nou het ons doen hierdie 187 00:10:35,000 --> 00:10:38,000 basiese voorbeelde met individuele lêers, maar dink jy werklik jy maak 188 00:10:38,000 --> 00:10:42,000 'n ware webwerf soos jy sal vir pset 7 of jou finale projek miskien, 189 00:10:42,000 --> 00:10:45,000 en jy wil verskeie webblaaie te hê, is so seker algemeen op 190 00:10:45,000 --> 00:10:48,000 die World Wide Web, en dit sou soort van kreupeles 191 00:10:48,000 --> 00:10:52,000 om te kopieer en plak dieselfde blou kleur 192 00:10:52,000 --> 00:10:56,000 en dieselfde teks in lyn sentrum in elke een van hierdie bladsye. 193 00:10:56,000 --> 00:10:59,000 Inteendeel, dit maak meer sin om faktor, baie soos ons gedoen het in C 194 00:10:59,000 --> 00:11:02,000 met die h-lêer, sit dit in 'n sentrale plek, 195 00:11:02,000 --> 00:11:06,000 in hierdie geval search3.css, en dan toelaat dat enige lêer 196 00:11:06,000 --> 00:11:11,000 in om jou webwerf te sluit in dat lêer deur middel van hierdie tag hier in lyn 16. 197 00:11:11,000 --> 00:11:14,000 Soos gewoonlik die geval is, het ons begin met weergawe 0, watter soort van werke 198 00:11:14,000 --> 00:11:18,000 maar is nie noodwendig die beste, en met elke stap, 199 00:11:18,000 --> 00:11:21,000 soek 1, soek 2, en nou soek 3 het ons hierdie baba stappe geneem 200 00:11:21,000 --> 00:11:26,000 na ontwerpe wat is 'n bietjie skoner en meer voorbereidende 201 00:11:26,000 --> 00:11:30,000 vir meer komplekse bladsye wat ons kan doen in die pad af. 202 00:11:30,000 --> 00:11:33,000 >> Laat my een laaste voorbeeld hier oop te maak net om te wys 203 00:11:33,000 --> 00:11:36,000 'n selfs meer gestileerde bladsy, maar laat ons kyk na die HTML. 204 00:11:36,000 --> 00:11:41,000 Dit is search4.html, en let op dat dit struktureel is amper dieselfde 205 00:11:41,000 --> 00:11:44,000 behalwe vir die bekendstelling van 'n nuwe tag, DIV. 206 00:11:44,000 --> 00:11:48,000 Div is 'n tag wat stel 'n afdeling van die bladsy. 207 00:11:48,000 --> 00:11:51,000 Jy kan dink van hierdie as 'n onsigbare reghoek. 208 00:11:51,000 --> 00:11:54,000 Dit skep soort van 'n strook van die gebied in die webblad 209 00:11:54,000 --> 00:11:56,000 wat jy kan stiliseren alles op een slag. 210 00:11:56,000 --> 00:11:58,000 Wat ek hier gedoen is, is soos volg. 211 00:11:58,000 --> 00:12:01,000 Binnekant van my liggaam tag, wat is daar almal saam, 212 00:12:01,000 --> 00:12:05,000 Ek sê 'n afdeling van die bladsy hier via lyne 45 deur 47, 213 00:12:05,000 --> 00:12:09,000 en dit beteken in wese gee vir my 'n onsigbare reghoek langs die top van die bladsy. 214 00:12:09,000 --> 00:12:14,000 Gee my dan 'n tweede reghoek, alhoewel onsigbaar, onder, 215 00:12:14,000 --> 00:12:16,000 en identifiseer dit deur die naam inhoud, en dan laastens, 216 00:12:16,000 --> 00:12:19,000 gee my 1/3 afdeling aan die onderkant van die bladsy 217 00:12:19,000 --> 00:12:21,000 genoem ID. 218 00:12:21,000 --> 00:12:23,000 Ons sal sien hoekom ek dit gedoen het in net 'n oomblik, 219 00:12:23,000 --> 00:12:26,000 maar konseptueel Ek het 'n kop-afdeling. 220 00:12:26,000 --> 00:12:30,000 Ek het 'n inhoud-afdeling, en ek het 'n footer afdeling van die bladsy 221 00:12:30,000 --> 00:12:32,000 selfs al is dit net in opmaak. 222 00:12:32,000 --> 00:12:35,000 Die gebruiker is nie van plan om 3 reghoeke om te sien, 223 00:12:35,000 --> 00:12:37,000 maar soort van struktureel daar agter die skerms 224 00:12:37,000 --> 00:12:39,000 hulle is eintlik teenwoordig. 225 00:12:39,000 --> 00:12:41,000 >> Nou, wat omgee? Hoekom eintlik doen? 226 00:12:41,000 --> 00:12:43,000 Alles anders op die bladsy is dieselfde as wat ons voorheen gesien het nie. 227 00:12:43,000 --> 00:12:47,000 Hier is my vorm. Hier is my insette, my insette, 'n lyn breek en so meer. 228 00:12:47,000 --> 00:12:50,000 Hier is 'n beeld, al is, so ons sal sien waar dit vandaan kom in net 'n oomblik. 229 00:12:50,000 --> 00:12:52,000 Hier is 'n voet, wat is 'n nuwe, net omdat ek wou te voer 230 00:12:52,000 --> 00:12:54,000 sommige meer inhoud. 231 00:12:54,000 --> 00:12:58,000 As ons scroll up opmerk dat die ID van hierdie div kop. 232 00:12:58,000 --> 00:13:02,000 Die ID van hierdie div inhoud, en die ID van hierdie een is footer. 233 00:13:02,000 --> 00:13:05,000 En soos die naam aandui, wanneer jy 'n ID-attribuut 234 00:13:05,000 --> 00:13:09,000 in HTML, moet dit per definisie identifiseer 235 00:13:09,000 --> 00:13:12,000 een van die elemente, een van die tags in jou bladsy. 236 00:13:12,000 --> 00:13:16,000 Die las is heeltemal op jou om te onthou dat jy 'n header ID reeds. 237 00:13:16,000 --> 00:13:19,000 Jy het 'n footer. Jy het reeds 'n inhoud-ID. 238 00:13:19,000 --> 00:13:22,000 Die rekenaar is nie van plan om uit te vind wat 'n beskikbare ID is vir jou, 239 00:13:22,000 --> 00:13:27,000 sodat jy kan gee per ongeluk 2 tags 'n ID van die kop, 240 00:13:27,000 --> 00:13:29,000 en dit sou net verkeerd wees. 241 00:13:29,000 --> 00:13:31,000 >> Jy moet in gedagte te hou wat jy geskep het, 242 00:13:31,000 --> 00:13:34,000 maar sodra jy dit gedoen het kennis wat ons hier doen. 243 00:13:34,000 --> 00:13:38,000 Ek kan nou spesifiseer in my styl tag op die top 244 00:13:38,000 --> 00:13:41,000 of gelykerwys in my CSS-lêer, as ek nog steeds met behulp van die weergawe, 245 00:13:41,000 --> 00:13:46,000 # Header ek kan sê, en wat dit beteken, is dat alles wat tag 246 00:13:46,000 --> 00:13:49,000 in hierdie webblad het 'n ID van die kop 247 00:13:49,000 --> 00:13:53,000 en #, net deur menslike konvensie verteenwoordig ID. 248 00:13:53,000 --> 00:13:56,000 Die skerp teken of hekje verteenwoordig ID. 249 00:13:56,000 --> 00:13:58,000 Selected is die naam wat ek het dit. 250 00:13:58,000 --> 00:14:01,000 Dit beteken dat hierdie CSS eiendom toe te pas 251 00:14:01,000 --> 00:14:04,000 watter tag op hierdie bladsy 'n ID van die kop dra. 252 00:14:04,000 --> 00:14:06,000 Dieselfde deal hier. 253 00:14:06,000 --> 00:14:09,000 Dien hierdie eiendom, wat gebeur dieselfde te wees, aan enige element 254 00:14:09,000 --> 00:14:11,000 wie se ID is inhoud, en dan af hier 255 00:14:11,000 --> 00:14:14,000 sien ek het 'n bietjie Persoon met footer. 256 00:14:14,000 --> 00:14:18,000 Enige element wie se ID is footer, waarvan daar kan net een per definisie, 257 00:14:18,000 --> 00:14:21,000 gaan voort en maak sy lettergrootte kleiner, 258 00:14:21,000 --> 00:14:24,000 sy font gewig vet, sy marge 20 pixels. 259 00:14:24,000 --> 00:14:26,000 >> Wat beteken dit? 260 00:14:26,000 --> 00:14:28,000 Dit is net 'n marge op die top, die onderkant, en die linker-en die reg. 261 00:14:28,000 --> 00:14:31,000 Dit gee my 'n 20-pixel onsigbare marge rondom dit 262 00:14:31,000 --> 00:14:35,000 net alles weg te stoot van dit 'n bietjie, net soos julle dit kan doen in Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word of bladsye of die wil. 264 00:14:37,000 --> 00:14:39,000 En dan teks in lyn sentrum. 265 00:14:39,000 --> 00:14:43,000 Kom ons sien die eind resultaat, en dan gaan ons terug tot die een oorblywende snippet van CSS. 266 00:14:43,000 --> 00:14:48,000 Dit is weergawe 4, het ons vir die soektog voorbeelde, en dit is baie, baie sexier. 267 00:14:48,000 --> 00:14:54,000 Nou, in regverdigheid, ek het net Googled "google font logo generator." 268 00:14:54,000 --> 00:14:58,000 En dit het my toegelaat om 'n GIF, 'n beeld-formaat aan te bied, wat lyk soos dat daar te skep. 269 00:14:58,000 --> 00:15:00,000 In feite, kan jy dit ook doen. 270 00:15:00,000 --> 00:15:03,000 Ons het "google fonts logo generator." 271 00:15:03,000 --> 00:15:05,000 >> Kom ons kyk of ons kan dit doen. 272 00:15:05,000 --> 00:15:07,000 Okay, ek dink dit is die webwerf wat ek gebruik. 273 00:15:07,000 --> 00:15:11,000 Ons kan sê Ec 10, byvoorbeeld, en hulle maak hul eie. 274 00:15:11,000 --> 00:15:13,000 Jy kan speel met dit die hele dag lank en dan regs kliek op dit 275 00:15:13,000 --> 00:15:16,000 en dan die werklike GIF, wat is al wat ek gedoen het. 276 00:15:16,000 --> 00:15:19,000 En inderdaad, dit is die rede waarom in my HTML, onthou, hier 277 00:15:19,000 --> 00:15:22,000 Ek het 'n beeld tag, wat ons kortliks verlede week gesien het 278 00:15:22,000 --> 00:15:24,000 wie se bron is logo.gif. 279 00:15:24,000 --> 00:15:28,000 En wat weer was die motivering vir die feit dat hierdie alt attribuut, 280 00:15:28,000 --> 00:15:31,000 hierdie alternatiewe kenmerk? 281 00:15:31,000 --> 00:15:33,000 Ja. 282 00:15:33,000 --> 00:15:35,000 [Onhoorbaar student reaksie] 283 00:15:35,000 --> 00:15:37,000 Goed, so 2 redes regtig, as die leser kan nie trek die beeld 284 00:15:37,000 --> 00:15:40,000 want jy het 'n stadige netwerk verbinding, of die beeld is korrup 285 00:15:40,000 --> 00:15:44,000 of iets soos dit ten minste die mens kan sien "CS50 soek," 286 00:15:44,000 --> 00:15:46,000 en dan ook vir toeganklikheid redes. 287 00:15:46,000 --> 00:15:48,000 As jy 'n gebruiker wat blind is en is met behulp van 'n skermleser 288 00:15:48,000 --> 00:15:50,000 en daarom kan natuurlik nie beelde wat hulle kan ten minste sien 289 00:15:50,000 --> 00:15:52,000 hoor teks indien hul rekenaar praat dit aan hulle. 290 00:15:52,000 --> 00:15:56,000 >> In die algemeen, is dit die beste praktyk wanneer dit kom by die toeganklikheid van bladsye 291 00:15:56,000 --> 00:16:00,000 sodat selfs gebruikers in daardie situasie kan hoor of sien, om so te praat, 292 00:16:00,000 --> 00:16:03,000 wat dit is wat op jou bladsy. 293 00:16:03,000 --> 00:16:05,000 Daar is 'n ander ding wat ek het hier 294 00:16:05,000 --> 00:16:09,000 wat is 'n bietjie interessant, en ons sal sien meer hieroor in probleem gestel 7 295 00:16:09,000 --> 00:16:12,000 via een van die kortbroek gelei deur een van die onderrig-genote. 296 00:16:12,000 --> 00:16:15,000 Maar # inhoud verwys na die tag 297 00:16:15,000 --> 00:16:20,000 wie se ID is inhoud, maar dan is daar 'n spasie karakter, en dan is daar die woord insette. 298 00:16:20,000 --> 00:16:25,000 Wel, wat is interessant oor CSS is dat jy kan 299 00:16:25,000 --> 00:16:29,000 verwys na die tags in 'n bladsy soort hiërargies, 300 00:16:29,000 --> 00:16:33,000 en wat hierdie brokkie CSS manier is om te vind die tag 301 00:16:33,000 --> 00:16:37,000 wie se ID is inhoud, en dan pas die volgende eienskappe 302 00:16:37,000 --> 00:16:42,000 aan al die inset tags wat afstammelinge van die inhoud, 303 00:16:42,000 --> 00:16:44,000 dit is wat ingekeep binnekant van dit. 304 00:16:44,000 --> 00:16:48,000 Inkeping, weer, is net belangrik om die rekenaar, nie na die mens nie, 305 00:16:48,000 --> 00:16:51,000 maar deur die konvensie het ons streepje dinge as ons gaan dieper in 'n bladsy, 306 00:16:51,000 --> 00:16:54,000 so dit beteken aansoek doen om 'n marge van 5 pixels aan enige inset element 307 00:16:54,000 --> 00:16:57,000 wat is iewers in of geneste binnekant van 308 00:16:57,000 --> 00:16:59,000  die element wie se ID inhoud. 309 00:16:59,000 --> 00:17:01,000 >> Wat nie van toepassing? 310 00:17:01,000 --> 00:17:03,000 Wel, daar is eintlik net hierdie 2 ouens hier. 311 00:17:03,000 --> 00:17:05,000 Let op dat die binnekant van die vorm daar is 2 insette, 312 00:17:05,000 --> 00:17:07,000 as daar is vir al hierdie voorbeelde. 313 00:17:07,000 --> 00:17:11,000 Maar let op dat diegene wat 2 insette gebeur binne geneste, 314 00:17:11,000 --> 00:17:13,000 hoewel 'n bietjie diep, 'n paar lae van inkeping, 315 00:17:13,000 --> 00:17:16,000 binnekant van die tag wie se ID is die inhoud. 316 00:17:16,000 --> 00:17:18,000 Wat beteken dit? 317 00:17:18,000 --> 00:17:21,000 As ons na die leser hier kan jy ooit so iets sien 318 00:17:21,000 --> 00:17:23,000 laat my zoom in dat daar 'n bietjie van die padding tussen die knoppie 319 00:17:23,000 --> 00:17:25,000 en tussen die teks veld. 320 00:17:25,000 --> 00:17:27,000 >> Laat my tydelik draai dit af. 321 00:17:27,000 --> 00:17:30,000 Laat my gaan tot my CSS, en laat my voor en net gaan 322 00:17:30,000 --> 00:17:34,000 verander hierdie marge van 5 pixels 0 pixels. 323 00:17:34,000 --> 00:17:37,000 Laat my voort te gaan en dan die lêer stoor, gaan terug na die soek-enjin 324 00:17:37,000 --> 00:17:40,000 en herlaai, en kyk na die middel van die bladsy. 325 00:17:40,000 --> 00:17:43,000 Alles bymekaar gekom saamgepers, en toe ek die eerste keer geklopte hierdie voorbeeld 326 00:17:43,000 --> 00:17:46,000 Ek het gedink dat kyk dom met die teks veld en dan die knoppie onmiddellik onder dit. 327 00:17:46,000 --> 00:17:50,000 Ek wou pad dit 'n bietjie, sodat ek bekendgestel marges. 328 00:17:50,000 --> 00:17:55,000 Wat sal ons doen nie in die lesing gaan deur middel van die paar dosyn 329 00:17:55,000 --> 00:17:58,000 CSS eienskappe wat bestaan ​​nie, want, weer, daar is dinge soos lettergrootte, 330 00:17:58,000 --> 00:18:02,000 font gewig, marge, teks sluit, en 'n paar dosyn ander, 331 00:18:02,000 --> 00:18:06,000 en ons sal jou verwys in probleem gestel 7 aan verskeie tutoriale aanlyn 332 00:18:06,000 --> 00:18:08,000 en verwysings wat u toelaat om hierdie dinge af te haal. 333 00:18:08,000 --> 00:18:10,000 Maar wat is werklik belangrik is by die einde van die dag 334 00:18:10,000 --> 00:18:12,000 >> is om te verstaan ​​hoe hierdie dinge toegepas word. 335 00:18:12,000 --> 00:18:15,000 Weereens, as ons die styl tag binnekant van 336 00:18:15,000 --> 00:18:19,000 kan gaan die keurders, die soort van identifiseerders wat spesifiseer 337 00:18:19,000 --> 00:18:21,000 wie wil jy hierdie eienskappe toe te pas, 338 00:18:21,000 --> 00:18:24,000 en dan kan jy die eienskappe as die sleutel waarde paar 339 00:18:24,000 --> 00:18:28,000 geskei deur 'n dubbelpunt en wat op daardie datum geëindig het met 'n kommapunt, 340 00:18:28,000 --> 00:18:32,000 of jy kan rip al wat uit en sit dit in 'n aparte CSS-lêer 341 00:18:32,000 --> 00:18:35,000 op sigself. 342 00:18:35,000 --> 00:18:39,000 Alle reg, enige vrae oor die konsepte 343 00:18:39,000 --> 00:18:41,000 of die groot prentjie van CSS? 344 00:18:41,000 --> 00:18:43,000 Jy sal weer te sien meer van dit in pset 7, 345 00:18:43,000 --> 00:18:47,000 maar ons hou dit in die algemeen redelik eenvoudig. 346 00:18:47,000 --> 00:18:49,000 Nie? Alles reg. 347 00:18:49,000 --> 00:18:51,000 Dit is tyd vir 'n werklike programmeertaal, 348 00:18:51,000 --> 00:18:54,000 en ons sal terug kom in die vorm van 'n voorbeeld om 'n bietjie van CSS. 349 00:18:54,000 --> 00:18:58,000 PHP is eintlik 'n wonderlike toeganklike taal 350 00:18:58,000 --> 00:19:02,000 in die sin dat dit is sintakties byna gelykstaande aan C. 351 00:19:02,000 --> 00:19:06,000 Met ander woorde, as jy weet C, jy weet vir die grootste deel PHP, 352 00:19:06,000 --> 00:19:08,000 ten minste sintakties, selfs al is daar 'n paar nuwe funksies 353 00:19:08,000 --> 00:19:10,000 en 'n paar nuwe konsepte wat ons sal hê om na te kyk. 354 00:19:10,000 --> 00:19:13,000 >> Maar vir die grootste deel, nou dat ons oorgang vanaf C na PHP 355 00:19:13,000 --> 00:19:16,000 die meeste van die nuwe dinge is regtig in die groot prent, 356 00:19:16,000 --> 00:19:19,000 hoe jy gebruik om 'n taal te program op die web, in teenstelling met 357 00:19:19,000 --> 00:19:23,000 op die command line of in 'n flikkerende prompt as ons het tot dusver te doen. 358 00:19:23,000 --> 00:19:27,000 Vir verwysing, veral met pset 7 en die finale projek af, 359 00:19:27,000 --> 00:19:31,000 doen om voordeel te trek van hierdie URL hier as jy wil om te lees oor die formaliteite van PHP. 360 00:19:31,000 --> 00:19:34,000 Dit is eintlik 'n gratis aanlyn-handboek effektief, 361 00:19:34,000 --> 00:19:37,000 en jy sal ook vind dat wat is regtig mooi oor PHP 362 00:19:37,000 --> 00:19:41,000 is dat daar honderde funksies wat kom met dit, 363 00:19:41,000 --> 00:19:44,000 terwyl jy in C nie noodwendig toegang tot 364 00:19:44,000 --> 00:19:47,000 meer funksies as in die wiskunde biblioteek, die CS50 biblioteek. 365 00:19:47,000 --> 00:19:51,000 In PHP en het 'n baie van die moderne tale, Python en Ruby onder hulle, 366 00:19:51,000 --> 00:19:54,000 kry jy toegang tot soveel meer funksies, wat beteken dat jy kry om te skryf 367 00:19:54,000 --> 00:19:57,000 'n baie minder kode, want jy kan staan ​​op die skouers van ander mense 368 00:19:57,000 --> 00:19:59,000 wat reeds geskryf is sekere dinge vir jou. 369 00:19:59,000 --> 00:20:03,000 >> Kom ons neem 'n vinnige toer van die sintaksis van PHP en skryf dan 'n paar voorbeelde. 370 00:20:03,000 --> 00:20:06,000 Wat is mooi oor PHP in die eerste plek 371 00:20:06,000 --> 00:20:08,000 is daar is geen hooffunksie. 372 00:20:08,000 --> 00:20:10,000 As jy wil om 'n program te skryf in PHP jy net begin skryf kode, 373 00:20:10,000 --> 00:20:12,000 en jy hoef nie te bekommer oor die hoof. 374 00:20:12,000 --> 00:20:14,000 Daar is geen int. Daar is geen terugkeer. 375 00:20:14,000 --> 00:20:17,000 Daar is geen bevat SPASIES, argc wat nodig is wanneer jy die program skryf. 376 00:20:17,000 --> 00:20:20,000 Eerder kan jy net begin kode skryf, en dit is in die deel 377 00:20:20,000 --> 00:20:23,000 want PHP is wat genoem word 'n geïnterpreteer taal. 378 00:20:23,000 --> 00:20:26,000 C is opgestel, en dit is saamgestel in die sin dat jy begin 379 00:20:26,000 --> 00:20:29,000 met die bronkode, loop dit deur klang, wat is 'n vertaler, 380 00:20:29,000 --> 00:20:33,000 en uiteindelik na 'n aantal stappe wat jy object code, 0'e en 1s. 381 00:20:33,000 --> 00:20:36,000 PHP en Python en Ruby en Pearl en ander 382 00:20:36,000 --> 00:20:39,000 is verskillende tipes van die tale in die sin dat jy dit nie stel nie. 383 00:20:39,000 --> 00:20:42,000 Jy gaan nie van die bron-kode 0e en 1e. 384 00:20:42,000 --> 00:20:45,000 Jy moet net hardloop die bronkode, en jy loop die bronkode 385 00:20:45,000 --> 00:20:49,000 deur te skryf in 'n gewone teks lêer eindig. php in hierdie geval 386 00:20:49,000 --> 00:20:53,000 in plaas van c, en wat die program nie op jou rekenaar 387 00:20:53,000 --> 00:20:57,000 is dit interpreteer letterlik jou kode lyn reël vir reël. 388 00:20:57,000 --> 00:21:00,000 >> Met ander woorde, eerder as om 'n program skryf en hardloop die program 389 00:21:00,000 --> 00:21:04,000 jy direk in plaas skryf 'n program met 'n lêer wat eindig in. php. 390 00:21:04,000 --> 00:21:09,000 Dan moet jy loop 'n werklike program genaamd php.exe, as jy op Windows, 391 00:21:09,000 --> 00:21:12,000 of net PHP as jy op Mac OS of Linux, 392 00:21:12,000 --> 00:21:17,000 en gee jou as inset tot die PHP-program jou eie bronkode, 393 00:21:17,000 --> 00:21:20,000 en sy doel in die lewe is om jou kode bo na onder, links na regs te lees, 394 00:21:20,000 --> 00:21:23,000 en doen alles wat jy vertel het om dit te doen. 395 00:21:23,000 --> 00:21:25,000 >> Kom ons kyk wat dit gaan sintakties beteken. 396 00:21:25,000 --> 00:21:27,000 In PHP ons voorwaardes. 397 00:21:27,000 --> 00:21:29,000 Hierdie dia is identies aan wat jy gesien het, terug in week 1 398 00:21:29,000 --> 00:21:33,000 omdat sintakties voorwaardes, ifs en anders ifs en anders in PHP 399 00:21:33,000 --> 00:21:35,000 lyk presies soos hierdie. 400 00:21:35,000 --> 00:21:38,000 Wanneer dit kom by Boolse uitdrukkings hulle gaan om presies te lyk soos hierdie. 401 00:21:38,000 --> 00:21:43,000 Wanneer dit kom by die anding dinge saam as boolse dit gaan om presies te lyk soos hierdie. 402 00:21:43,000 --> 00:21:46,000 Skakelaars dieselfde lyk, en jy kry die bykomende voordeel in PHP 403 00:21:46,000 --> 00:21:51,000 dat skakelaars in C kan slegs op 'n kar of 'n int skakel. 404 00:21:51,000 --> 00:21:53,000 Jy kan nie oorskakel op 'n string waarde. 405 00:21:53,000 --> 00:21:55,000 In PHP jy kan eintlik 'n uitdrukking 406 00:21:55,000 --> 00:21:58,000 dit is 'n veranderlike waarvan die inhoud is 'n string, 407 00:21:58,000 --> 00:22:01,000 en jy kan eintlik doen string vergelyking in die werklike intuïtiewe manier, 408 00:22:01,000 --> 00:22:06,000 nie wyser vergelyking, ten einde te besluit of die saak te doen i of j of iets anders. 409 00:22:06,000 --> 00:22:09,000 Ons sal sien wat potensieel voor lank. 410 00:22:09,000 --> 00:22:11,000 >> Loops te wonderlik is dieselfde. 411 00:22:11,000 --> 00:22:15,000 Vir loops 'n inisialisering, 'n voorwaarde, en 'n paar van updates. 412 00:22:15,000 --> 00:22:18,000 Terwyl loops ook bestaan ​​in PHP. 413 00:22:18,000 --> 00:22:21,000 Doen terwyl loops ook bestaan ​​in PHP, 414 00:22:21,000 --> 00:22:26,000 en skikkings bestaan ​​in PHP, maar hier is waar die sintaksis begin om te kry 'n bietjie anders, 415 00:22:26,000 --> 00:22:29,000 maar die konsepte is dieselfde, en die begrippe werklik is dieselfde 416 00:22:29,000 --> 00:22:32,000 soos hulle was in Week 0 met Scratch. 417 00:22:32,000 --> 00:22:34,000 Die eerste plek is die $ teken. 418 00:22:34,000 --> 00:22:37,000 Dit was 'n ontwerp-besluit in PHP waardeur enige veranderlike 419 00:22:37,000 --> 00:22:41,000 deur ontwerp in PHP begin met $ teken. 420 00:22:41,000 --> 00:22:46,000 Daar is nie meer X, Y, Z Dis nou $ X, $ Y, $ Z net omdat. 421 00:22:46,000 --> 00:22:49,000 Dit is iets om in gedagte te hou, en nou op die regterkant 422 00:22:49,000 --> 00:22:52,000 dit lyk soortgelyk aan 'n skikking, 423 00:22:52,000 --> 00:22:54,000 maar ons gebruik vierkantige hakies hier. 424 00:22:54,000 --> 00:22:57,000 In PHP en in JavaScript, soos ons sal uiteindelik sien, 425 00:22:57,000 --> 00:23:01,000 'n skikking wat jy doen plein bracket en gesluit vierkante bracket te verklaar, 426 00:23:01,000 --> 00:23:04,000 en dan moet jy 'n deur kommas geskei lys van waardes, of ints 427 00:23:04,000 --> 00:23:09,000 of stringe of karakters, wat jy wil, binnekant van daardie uitdrukking daar. 428 00:23:09,000 --> 00:23:11,000 >> Nou, hoe het ons doen iets soos hierdie in C? 429 00:23:11,000 --> 00:23:16,000 Wat was die sintaksis vir staties waarby 'n verskeidenheid van bekende nommers? 430 00:23:16,000 --> 00:23:19,000 Kode tussen krulhakies, Dit was so 'n klein verskil hier, maar in beide PHP 431 00:23:19,000 --> 00:23:22,000 en uiteindelik JavaScript dit gebruik net tussen vierkantige hakies, so werklik 432 00:23:22,000 --> 00:23:25,000 die enigste interessante detail hier is die $ teken vir die veranderlike naam 433 00:23:25,000 --> 00:23:28,000 en ook die vierkantige hakies, en daar is 'n snaakse ding 434 00:23:28,000 --> 00:23:32,000 wat sowel op die linkerkant van die = teken weggelaat. 435 00:23:32,000 --> 00:23:36,000 Wat ontbreek wat ons het is wat vir weke nou? Ja. 436 00:23:36,000 --> 00:23:38,000 [Onhoorbaar student reaksie] 437 00:23:38,000 --> 00:23:41,000 Die grootte, dus is daar geen melding van die grootte van die skikking. 438 00:23:41,000 --> 00:23:45,000 Om eerlik te wees, is daar geen melding van vierkantige hakies aan die linkerkant 439 00:23:45,000 --> 00:23:47,000 van die = teken, en wat anders ontbreek van die lyn? 440 00:23:47,000 --> 00:23:49,000 Ja >> [onhoorbaar student antwoord]. 441 00:23:49,000 --> 00:23:52,000 Die tipe, so wat is interessant in die besonder oor PHP 442 00:23:52,000 --> 00:23:56,000 is dat dit nie is 'n sterk getikte taal as C is, 443 00:23:56,000 --> 00:23:58,000 en dit is sterk in die sin dat jy moet sê char getik, 444 00:23:58,000 --> 00:24:00,000 moet jy int sê, moet jy sê float. 445 00:24:00,000 --> 00:24:03,000 >> Wanneer jy wil 'n veranderlike wat jy het geratel te vertel wat sy soort is. 446 00:24:03,000 --> 00:24:05,000 PHP is 'n bietjie luier. 447 00:24:05,000 --> 00:24:08,000 Dit is losweg getik in die sin dat 448 00:24:08,000 --> 00:24:11,000 jy kan dryf en karakters en stringe 449 00:24:11,000 --> 00:24:14,000 EN SY en so meer, maar die taal self 450 00:24:14,000 --> 00:24:17,000 nie regtig omgee wat jy binnekant van 'n veranderlike. 451 00:24:17,000 --> 00:24:20,000 Jy het dit nie vooraf in te lig watter datatipe 452 00:24:20,000 --> 00:24:22,000 gaan in 'n veranderlike. 453 00:24:22,000 --> 00:24:24,000 Dit is heeltemal aan jou, so dit is lekker 454 00:24:24,000 --> 00:24:27,000 in die sin dat jy hoef nie te veel bekommerd wees oor die data te tik 455 00:24:27,000 --> 00:24:29,000 en bekommer wat jou argumente is en so meer. 456 00:24:29,000 --> 00:24:32,000 Dit beteken ook uiteindelik funksies in PHP gaan in staat wees om terug te keer 457 00:24:32,000 --> 00:24:36,000 óf 'n int meeste van die tyd, en miskien een keer in 'n rukkie 458 00:24:36,000 --> 00:24:40,000 hulle sal terugkeer 'n Bool, 'n boolean vals, byvoorbeeld, om aan te dui dat iets verkeerd geloop het. 459 00:24:40,000 --> 00:24:44,000 Dit gee ons sommige upsides, maar dit sal ook maak ons ​​soort van ontwerp 460 00:24:44,000 --> 00:24:47,000 'n bietjie luier wanneer dit kom by data tik. 461 00:24:47,000 --> 00:24:50,000 >> Wat anders is daar om te hou in gedagte hier? 462 00:24:50,000 --> 00:24:54,000 Veranderlikes lyk baie graag, so $ s = "hello, wêreld." 463 00:24:54,000 --> 00:24:57,000 Dit is miskien inferable van die vorige voorbeeld, 464 00:24:57,000 --> 00:24:59,000 en ons het 'n ander tipe van die lus. 465 00:24:59,000 --> 00:25:02,000 Hierdie een sal ons eintlik een keer te sien in 'n tyd, want dit is baie handig, 466 00:25:02,000 --> 00:25:04,000 'n foreach bou. 467 00:25:04,000 --> 00:25:11,000 In hierdie geval, die foreach lus neem binnekant van sy hakies 3 woorde tipies, 468 00:25:11,000 --> 00:25:16,000 $ Iets eerste, en dit is wat array doen wat jy wil om te itereer oor die lede van 469 00:25:16,000 --> 00:25:19,000 dan letterlik die trefwoord as, en dan laastens, 470 00:25:19,000 --> 00:25:21,000 'n ander veranderlike naam wat jy kry om te kies. 471 00:25:21,000 --> 00:25:23,000 Dit kan wees foo, bar, of element, 472 00:25:23,000 --> 00:25:26,000 en wat hierdie konstruk doen 473 00:25:26,000 --> 00:25:29,000 is as die $ array bevat 10 elemente 474 00:25:29,000 --> 00:25:34,000 op elke iterasie van hierdie array-jammer, op elke iterasie van hierdie lus 475 00:25:34,000 --> 00:25:37,000 die veranderlike genaamd element gaan word opgedateer 476 00:25:37,000 --> 00:25:40,000 na die eerste element in die skikking, dan is die tweede element in die skikking te wees, 477 00:25:40,000 --> 00:25:44,000 dan die derde element van die skikking, en daardeur die wegneem van die behoefte 478 00:25:44,000 --> 00:25:46,000 die effens irriterende vierkante hakienotasie te doen en 479 00:25:46,000 --> 00:25:49,000 $ I ten einde na die indeks in 'n skikking. 480 00:25:49,000 --> 00:25:53,000 PHP doen al daardie werk vir jou en op elke iterasie 481 00:25:53,000 --> 00:25:55,000 oorhandig jy net die volgende element van die skikking 482 00:25:55,000 --> 00:26:01,000 sonder dat jy om te weet oor of sorg oor die numeriese indeks plek. 483 00:26:01,000 --> 00:26:04,000 >> En dan laastens, vir nou, daar is 'n ander kenmerk van PHP 484 00:26:04,000 --> 00:26:08,000 wat gaan uiters nuttig wees, veral wanneer ons begin programmering op die web, 485 00:26:08,000 --> 00:26:10,000 en dit is bekend as 'n associatieve array. 486 00:26:10,000 --> 00:26:13,000 Die skikkings wat ons tot dusver weet van 20 sekondes gelede 487 00:26:13,000 --> 00:26:17,000 en vir die afgelope 8 weke numeries geïndekseer skikkings, 488 00:26:17,000 --> 00:26:20,000 soort van tradisionele skikkings waar die indekse is ints, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, al die pad op tot. 490 00:26:23,000 --> 00:26:25,000 Assosiatiewe skikkings is 'n baie meer kragtig. 491 00:26:25,000 --> 00:26:28,000 Hulle toelaat dat jy 'n arbitrêre sleutels te hê, 492 00:26:28,000 --> 00:26:31,000 arbitrêre indekse en arbitrêre waardes. 493 00:26:31,000 --> 00:26:34,000 AANGESIEN dit in 'n tradisionele skikking dit is 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 in 'n assosiatiewe skikking kan jy 'n indeks 495 00:26:37,000 --> 00:26:41,000 of 'n sleutel van foo wie se waarde is bar. 496 00:26:41,000 --> 00:26:46,000 Jy kan dan 'n ander sleutel wie se naam is Baz en wie se waarde is qux. 497 00:26:46,000 --> 00:26:49,000 >> Weer, dom rekenaar wetenskap generiese veranderlike name hier, 498 00:26:49,000 --> 00:26:55,000 maar die punt is dat die skikking nie bracket 0 of bracket 1. 499 00:26:55,000 --> 00:26:59,000 Dit plaas gaan bracket foo en bracket Baz te hê. 500 00:26:59,000 --> 00:27:03,000 Dit is 'n baie meer veelsydig is in die sin dat ons gaan om in staat wees om te assosieer 501 00:27:03,000 --> 00:27:07,000 woorde met ander woorde, sleutels met waardes heeltemal arbitrêr, 502 00:27:07,000 --> 00:27:12,000 en ons gaan in staat wees om hierdie waardes terug te kry in konstante tyd 503 00:27:12,000 --> 00:27:14,000 want onder die kap wat 'n associatieve array 504 00:27:14,000 --> 00:27:16,000 regtig is 'n hash tafel. 505 00:27:16,000 --> 00:27:20,000 Onthou dat 'n hash tafel laat jou toe om te sit in sommige insette 506 00:27:20,000 --> 00:27:25,000 graag in die woord Dawid as jy wil om Dawid te voeg in 'n soort van 'n woordeboek, 507 00:27:25,000 --> 00:27:27,000 en dan kry jy 'n waarde tipies terug. 508 00:27:27,000 --> 00:27:29,000 In die geval van speller, waar of vals is. 509 00:27:29,000 --> 00:27:33,000 Dawid of wat ookal woord is of is nie in die woordeboek. 510 00:27:33,000 --> 00:27:36,000 'N associatieve array is regtig net 'n hash tafel, 511 00:27:36,000 --> 00:27:38,000 maar dit is 'n baie meer gebruikers vriendelik inkarnasie van. 512 00:27:38,000 --> 00:27:41,000 Soos ons sal sien, gaan dit toe te laat ons 'n paar dinge om te doen 513 00:27:41,000 --> 00:27:43,000 baie, baie maklik. 514 00:27:43,000 --> 00:27:45,000 >> Kom ons neem 'n blik op 'n paar basiese PHP 515 00:27:45,000 --> 00:27:47,000 voorbeelde en kyk wat ons kan doen met hierdie taal. 516 00:27:47,000 --> 00:27:51,000 Laat my voort te gaan en maak vandag in ons bron directory 517 00:27:51,000 --> 00:27:54,000 n lêer genaamd hello1.php. 518 00:27:54,000 --> 00:27:57,000 Hierdie lêer is meer kommentaar as dit is 'n werklike kode, 519 00:27:57,000 --> 00:28:00,000 so laat my eintlik al die kommentaar verwyder uit die lêer 520 00:28:00,000 --> 00:28:05,000 en die hede jy miskien die eenvoudigste PHP program hier. 521 00:28:05,000 --> 00:28:07,000 5 lyne, en sommige van hulle is wit spasie, 522 00:28:07,000 --> 00:28:09,000 so 'n paar belangrike verskille opmerk hier. 523 00:28:09,000 --> 00:28:12,000 Die lêer genoem hello1.php. 524 00:28:12,000 --> 00:28:16,000 Die heel eerste lyn, al is, 00:28:18,000 Similar in die gees na HTML, 526 00:28:18,000 --> 00:28:21,000 dat die volgorde van die karakters vertel die rekenaar 527 00:28:21,000 --> 00:28:25,000 "Hey, rekenaar, hier kom 'n program wat ons in PHP." 528 00:28:25,000 --> 00:28:28,000 Dit maak seker dat dit nie verwar dat dit is 'n ander taal. 529 00:28:28,000 --> 00:28:30,000 Lyn 2 is 'n interessante wit spasie. 530 00:28:30,000 --> 00:28:32,000 Lyn 3 is ons ou vriend printf, 531 00:28:32,000 --> 00:28:34,000 hierdie keer in die konteks van PHP. 532 00:28:34,000 --> 00:28:37,000 PHP het sy eie weergawe van printf wat presies dieselfde optree, 533 00:28:37,000 --> 00:28:39,000 So dit is net gaan om te druk "Hello, world." 534 00:28:39,000 --> 00:28:46,000 En dan hierdie teenoorgestelde tag hier,>, beteken dat dit vir my PHP-kode. 535 00:28:46,000 --> 00:28:48,000 >> Kom ons kyk hoe om dit uit te voer. 536 00:28:48,000 --> 00:28:50,000 Ek gaan om terug te gaan na my terminale venster. 537 00:28:50,000 --> 00:28:52,000 Ek gaan om te gaan in my PHP gids. 538 00:28:52,000 --> 00:28:56,000 Let op dat ons het 'n hele klomp van lêers, die eerste een wat hello.php. 539 00:28:56,000 --> 00:29:01,000 Laat my voort te gaan en uit te voer, hello1.php, tik. 540 00:29:01,000 --> 00:29:03,000 Toestemming geweier. Okay. 541 00:29:03,000 --> 00:29:06,000 Hoe het ons vasgestel dinge soos hierdie in die verlede? 542 00:29:06,000 --> 00:29:08,000 Wat is dit >> [onhoorbaar student reaksie]? 543 00:29:08,000 --> 00:29:11,000 Ons nodig het lees en skryf, maar laat my doen ls-l. 544 00:29:11,000 --> 00:29:14,000 Onthou hierdie ietwat kripties uitset waardeur hello1 545 00:29:14,000 --> 00:29:17,000 blyk te wees leesbaar en skryfbaar nie deur my 546 00:29:17,000 --> 00:29:19,000 maar leesbaar is deur almal anders. 547 00:29:19,000 --> 00:29:22,000 Dit blyk dit is eintlik nie 'n stap in die regte rigting. 548 00:29:22,000 --> 00:29:25,000 Die verskil is weer met 'n geïnterpreteer taal 549 00:29:25,000 --> 00:29:27,000 is jy loop nie die program direk. 550 00:29:27,000 --> 00:29:30,000 Jy hardloop in plaas van 'n tolk en handig dit die kode 551 00:29:30,000 --> 00:29:33,000 wat jy geskryf het sodat dit kan interpreteer dit reël vir reël. 552 00:29:33,000 --> 00:29:36,000 In hierdie geval, die tolk of program wat ek eintlik wil uit te voer 553 00:29:36,000 --> 00:29:38,000 genoem is letterlik PHP. 554 00:29:38,000 --> 00:29:41,000 >> Iewers op hierdie hardeskyf van die toestel daar is 'n program 555 00:29:41,000 --> 00:29:45,000 iemand anders geskryf genaamd PHP, of op Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Wat ek gaan doen is ek gaan eintlik loop PHP 557 00:29:48,000 --> 00:29:51,000 maar gee dit as 'n command line argument die kode wat ek geskryf het, 558 00:29:51,000 --> 00:29:54,000 en dan sal ek zoom uit en druk Enter. 559 00:29:54,000 --> 00:29:58,000 Dit loop my program vir my, van bo na onder, links na regs. 560 00:29:58,000 --> 00:30:01,000 Laat my voort te gaan en maak 'n effense afwyking van hierdie. 561 00:30:01,000 --> 00:30:05,000 In hello2.php kennisgewing dat dit ook 562 00:30:05,000 --> 00:30:08,000 is meestal kommentaar, so laat my ontslae te raak van die mense as 'n afleiding, 563 00:30:08,000 --> 00:30:13,000 en wat is nou duidelik anders oor hierdie lêer? 564 00:30:13,000 --> 00:30:15,000 Daar is hierdie nuwe lyn, ietwat kripties aan die bokant. 565 00:30:15,000 --> 00:30:20,000 Dit is in lyn 1 #! / Bin / PHP. 566 00:30:20,000 --> 00:30:24,000 Bin is 'n konvensie op Linux en Mac OS vir binaries, 567 00:30:24,000 --> 00:30:27,000 / bin beteken dit is 'n gids met 'n klomp van die binaries 568 00:30:27,000 --> 00:30:29,000 wat is geprogrammeer, waarvan een is PHP. 569 00:30:29,000 --> 00:30:32,000 Die #! is die bynaam kaboedel, 570 00:30:32,000 --> 00:30:35,000 wat is die vinnige manier om dit te sê, en wat dit beteken 571 00:30:35,000 --> 00:30:40,000 is dat wanneer jy hierdie program nou daar is 'n wenk aan die top van die lêer 572 00:30:40,000 --> 00:30:44,000 wat vertel die rekenaar wat die tolk te gebruik. 573 00:30:44,000 --> 00:30:47,000 >> Dit raak 'n bietjie irriterend as jy moes jou gebruikers en jou kliënte te vertel 574 00:30:47,000 --> 00:30:50,000 "Hey, ons hierdie program genaamd hello1.php geskryf het." 575 00:30:50,000 --> 00:30:54,000 Al wat jy hoef te doen, is vir ewig loop PHP en dan die naam van hierdie program. 576 00:30:54,000 --> 00:30:58,000 Om eerlik te wees, dit sou net lekkerder te voer hello1.php, 577 00:30:58,000 --> 00:31:00,000 en inderdaad, kan ons as ons doen die volgende. 578 00:31:00,000 --> 00:31:05,000 Laat my gaan voort en doen ls-l, en kennis in hello2 dit is net nog lees, skryf 579 00:31:05,000 --> 00:31:10,000 en lees dan gelees, so ek kan nog nie dit doen, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Maar ons het hierdie ooit so kortliks die laaste keer, die chmod opdrag. 581 00:31:15,000 --> 00:31:20,000 As ek dit doen chmod a + x, wat beteken dat alle plus executability, 582 00:31:20,000 --> 00:31:26,000 en dan hello2.php en dan ls-l Let weer op wat verander het. 583 00:31:26,000 --> 00:31:29,000 Een, is Linux wys my die lêernaam in die groen om die idee oor te dra 584 00:31:29,000 --> 00:31:32,000 dat dit uitvoerbaar, maar meer belangrik, op die linkerkant 585 00:31:32,000 --> 00:31:36,000 sien dat die bietjie wat x uitvoerbare nou. 586 00:31:36,000 --> 00:31:42,000 Wat dit nou beteken, is ek ./hello2.php kan hardloop soos gewoonlik, 587 00:31:42,000 --> 00:31:45,000 druk Enter, en as gevolg van die kaboedel op die top van die lêer 588 00:31:45,000 --> 00:31:48,000 wat is 'n wenk, weer, na Linux wat sê 589 00:31:48,000 --> 00:31:51,000 gebruik hierdie tolk om hierdie lêer uit te voer. 590 00:31:51,000 --> 00:31:54,000 Moenie bekommerd wees oor te dwing om die gebruiker om werklik te tik dit. 591 00:31:54,000 --> 00:31:57,000 >> En wat lekker is, is nou dit is soort van irrelevant vir my kliënte of my vriende 592 00:31:57,000 --> 00:32:01,000 die taal wat ek geskryf het hierdie program in, so ek kan voortgaan met mv 593 00:32:01,000 --> 00:32:04,000 en die naam van hierdie ding om te hello2, byvoorbeeld. 594 00:32:04,000 --> 00:32:07,000 En as ek nou doen ./hello2 595 00:32:07,000 --> 00:32:10,000 en uit te zoem my program gaan voort om te hardloop. 596 00:32:10,000 --> 00:32:13,000 Hierdie lêer uitbreidings is 'n menslike konvensie wat nodig is 597 00:32:13,000 --> 00:32:15,000 vir iets soos geratel en maak wat vir hulle kyk. 598 00:32:15,000 --> 00:32:18,000 Maar vir PHP, kan ek hierdie lêer uitbreiding enigiets wat ek wil noem. 599 00:32:18,000 --> 00:32:22,000 Ek kon die wêreld mislei om te dink dat ek regtig 'n goeie by Ruby, 600 00:32:22,000 --> 00:32:25,000 en ek kon skryf hello2.rb en dan die uitvoering van hierdie, 601 00:32:25,000 --> 00:32:28,000 en voila, nou het ek die Ruby-weergawe, wat is 'n volledige leuen. 602 00:32:28,000 --> 00:32:30,000 Maar die lêer uitbreidings is betekenisloos 603 00:32:30,000 --> 00:32:35,000 As die lêer is uitvoerbare en het hierdie spesiale wenk op die top van die lêer. 604 00:32:35,000 --> 00:32:38,000 >> Nou, as 'n eenkant, laat ek jou wys jy vinnig weergawe 3, 605 00:32:38,000 --> 00:32:40,000 wat is 'n soort van 'n nuttige truuk om te weet. 606 00:32:40,000 --> 00:32:45,000 In hello3 het ek iets verkeerd gedoen het 607 00:32:45,000 --> 00:32:47,000 dat ek sal werk om die bronkode aanlyn. 608 00:32:47,000 --> 00:32:50,000 In weergawe 3 blyk dit dat op die meeste Linux-rekenaars 609 00:32:50,000 --> 00:32:53,000 daar is 'n program genaamd env vir die omgewing, 610 00:32:53,000 --> 00:32:56,000 en wat jy hier kan doen is as jy het geen idee waar PHP 611 00:32:56,000 --> 00:33:00,000 op die plaaslike hardeskyf geïnstalleer word nie, want dit kan wissel op grond van die rekenaar 612 00:33:00,000 --> 00:33:03,000 dat iemand gebruik, env sê net loop env, 613 00:33:03,000 --> 00:33:07,000 wat is op die meeste stelsels, en uitvind waar PHP is. 614 00:33:07,000 --> 00:33:11,000 Net 'n gemeenskaplike truuk, sodat jy nie hoef te bekommer oor om uit te vind waar 'n program is. 615 00:33:11,000 --> 00:33:14,000 Maar as jy nie versigtig om uit te vind waar 'n program is en jy nie versorg tot dusver 616 00:33:14,000 --> 00:33:16,000 jy kan gebruik om die wat opdrag. 617 00:33:16,000 --> 00:33:19,000 >> Laat my uitzoomen en tipe wat php, 618 00:33:19,000 --> 00:33:23,000 en let op dit vertel my dit is eintlik in usr / bin / PHP. 619 00:33:23,000 --> 00:33:25,000 Dit is soort van 'n leuen. Dit is ook in die bin. 620 00:33:25,000 --> 00:33:27,000 Dit is net wat my die eerste treffer. 621 00:33:27,000 --> 00:33:31,000 As jy al ooit gewonder waar klang, klang, dit is in usr / bin / klang, 622 00:33:31,000 --> 00:33:34,000 wat maak, usr / bin / maak, en wat dit beteken is al hierdie tyd 623 00:33:34,000 --> 00:33:38,000 jy kon gewees het tik usr / bin / kletteren betree kletteren uit te voer, 624 00:33:38,000 --> 00:33:41,000 maar dit is soort van saai dit te doen, sodat sommige dopgehou 625 00:33:41,000 --> 00:33:44,000 soos usr / bin en bin word aanvaar dat die verstek 626 00:33:44,000 --> 00:33:50,000 sodat die rekenaar weet om te kyk in dit vir jou. 627 00:33:50,000 --> 00:33:53,000 Enige vrae oor die skryf van 'n super, super eenvoudige Hello World program 628 00:33:53,000 --> 00:33:55,000 in PHP en dan loop dit? 629 00:33:55,000 --> 00:33:59,000 Want nou sal ons begin meer dwingende sintaksis te stel. 630 00:33:59,000 --> 00:34:01,000 Alle reg, hier gaan ons. 631 00:34:01,000 --> 00:34:03,000 Hierdie programme het ons eintlik almal van hulle voor gesien. 632 00:34:03,000 --> 00:34:07,000 >> As ek oop te maak, byvoorbeeld, laat ons doen beer1.php, 633 00:34:07,000 --> 00:34:09,000 ons sal nie deur middel van verskeie weergawes van hierdie, maar wat ek gedoen het 634 00:34:09,000 --> 00:34:13,000 het ek gaan sit en gooi dit of omgeskakel 635 00:34:13,000 --> 00:34:15,000 my C-kode PHP-kode hier. 636 00:34:15,000 --> 00:34:18,000 Die meeste van die top van die lêer is kommentaar hier. 637 00:34:18,000 --> 00:34:20,000 Dit blyk uit daar is 'n nuwe funksie wat ons moet genoem read line. 638 00:34:20,000 --> 00:34:23,000 GetString, onthou, van Week 0 af was 'n CS50 ding. 639 00:34:23,000 --> 00:34:27,000 PHP kom met sy eie gebruikers-vriendelike funksie genoem read line 640 00:34:27,000 --> 00:34:30,000 1 argument wat spesifiseer die vinnige 641 00:34:30,000 --> 00:34:33,000 wat jy wil om te wys aan die gebruiker, en wat read line doen 642 00:34:33,000 --> 00:34:35,000 is dit terug wat die gebruiker tipes. 643 00:34:35,000 --> 00:34:39,000 In hierdie geval, ek verklaar 'n veranderlike genaamd $ n. 644 00:34:39,000 --> 00:34:42,000 Ek stoor in die terugkeer waarde van read line 645 00:34:42,000 --> 00:34:44,000 nadat waarna die gebruiker met hierdie string. 646 00:34:44,000 --> 00:34:47,000 Net om te back-up, om werklik te loop hierdie ding, laat my gaan voort 647 00:34:47,000 --> 00:34:50,000 en hardloop php beer1.php. 648 00:34:50,000 --> 00:34:53,000 Hoeveel bottels sal daar wees? Laat ons net 2 hierdie tyd. 649 00:34:53,000 --> 00:34:55,000 Enter. Dis al. 650 00:34:55,000 --> 00:34:59,000 >> Die program is funksioneel identies aan die C-weergawe van weke gelede. 651 00:34:59,000 --> 00:35:01,000 Maar sintakties laat ons sien wat anders is. 652 00:35:01,000 --> 00:35:05,000 Nadat ek kry 'n int van die gebruiker kennisgewing dat ek 'n paar foutopsporing ek doen, 653 00:35:05,000 --> 00:35:08,000 en as n minder as 1 Ek stop en ek druk 654 00:35:08,000 --> 00:35:11,000 'n jammer boodskap aan die gebruiker en uitgang met 1. 655 00:35:11,000 --> 00:35:13,000 Dit is ook 'n bietjie anders. 656 00:35:13,000 --> 00:35:16,000  In C wat het ons te doen? In C is ons terug 1. 657 00:35:16,000 --> 00:35:20,000 In PHP jy die uitgang met 1, wat eerlik is Ek dink 'n bietjie meer intuïtief 658 00:35:20,000 --> 00:35:22,000 omdat jy letterlik die verlaat van die program. 659 00:35:22,000 --> 00:35:25,000 Alles reg, en dan af hier om die irriterende liedjie is identies sintakties 660 00:35:25,000 --> 00:35:29,000 behalwe vir die veranderlike, so af hier in die lyn 24 en verder 661 00:35:29,000 --> 00:35:31,000 let my lus is amper dieselfde, 662 00:35:31,000 --> 00:35:34,000 maar ek het $ in die voorkant van i en n 663 00:35:34,000 --> 00:35:37,000 en wat ook ontbreek in lyn 26 wat ons gehad het in die verlede 664 00:35:37,000 --> 00:35:39,000 wanneer 'n veranderlike i verklaar? 665 00:35:39,000 --> 00:35:41,000 Daar is geen tipe. 666 00:35:41,000 --> 00:35:43,000 Dit is verkeerd om te sê in PHP int. 667 00:35:43,000 --> 00:35:45,000 Jy moet net nie wat om te doen. 668 00:35:45,000 --> 00:35:48,000 Die rekenaar, die tolk PHP is slim genoeg om te besef 669 00:35:48,000 --> 00:35:51,000 dat as jy 'n nommer in die $ ek dit sal hanteer dit 670 00:35:51,000 --> 00:35:53,000 as 'n nommer vir jou. 671 00:35:53,000 --> 00:35:57,000 En dan af hier is ons plug in $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Al wat dieselfde is, en dan af ons doen hier 'n "Sjoe, dit is irriterende" printf 673 00:36:00,000 --> 00:36:02,000 en dan verlaat (0). 674 00:36:02,000 --> 00:36:05,000 >> Weereens, die afhaal hier is dat alhoewel ons gaan om relatief spandeer 675 00:36:05,000 --> 00:36:09,000 min tyd oor PHP, seker teenoor wat ons gedoen het op die C, 676 00:36:09,000 --> 00:36:12,000 dit is amper dieselfde, en so wat ons sal vandag en volgende week doen 677 00:36:12,000 --> 00:36:14,000 en verder is fokus regtig op 'n paar van die nuwe idees. 678 00:36:14,000 --> 00:36:17,000 Net om te sien dat 'n ander ding nie vertaal van C, 679 00:36:17,000 --> 00:36:20,000 dit was 'n super eenvoudige program wat ons gedoen het in Week 1 680 00:36:20,000 --> 00:36:22,000 of 2 wat in blokkies gesny 'n waarde. 681 00:36:22,000 --> 00:36:25,000 Maar wat was interessant aan die tyd oor hierdie program is dat dit 682 00:36:25,000 --> 00:36:28,000 lei die idee van 'n persoonlike skriftelike funksie wat ons geskryf het. 683 00:36:28,000 --> 00:36:31,000 Die sintaksis in PHP is byna dieselfde. 684 00:36:31,000 --> 00:36:33,000 Hier is my program tot bo. 685 00:36:33,000 --> 00:36:35,000 Let weer afwesig is enige idee van die belangrikste. 686 00:36:35,000 --> 00:36:39,000 Ek begin skryf kode, en dit is wat gaan uitgevoer deur die tolk te kry. 687 00:36:39,000 --> 00:36:42,000 Ek druk x is nou 2, vermoedelik. 688 00:36:42,000 --> 00:36:44,000 Toe het ek beweer cubing ... 689 00:36:44,000 --> 00:36:47,000 Dan roep ek die kubus funksie en slaag in $ x 690 00:36:47,000 --> 00:36:50,000 en die toeken van die terugkeer waarde tot $ x. 691 00:36:50,000 --> 00:36:53,000 Toe het ek beweer dat dit in blokkies gesny, en dan sê ek dit, wat hopelik 692 00:36:53,000 --> 00:36:55,000 sal sê x is nou 8. 693 00:36:55,000 --> 00:36:59,000 Die sintaksis vir die funksie in PHP is ooit so effens anders. 694 00:36:59,000 --> 00:37:01,000 Weer ontbreek, is die terugkeer tipe. 695 00:37:01,000 --> 00:37:05,000 Weer ontbreek, is die terugstuur tipe en het ook ontbreek is wat ander tipe? 696 00:37:05,000 --> 00:37:07,000 [Onhoorbaar student reaksie] 697 00:37:07,000 --> 00:37:10,000 Wel, okay, dis goed so. Kom ons kom terug na wat in 'n tweede. 698 00:37:10,000 --> 00:37:12,000 >> Ons het nie, byvoorbeeld, hier int. 699 00:37:12,000 --> 00:37:15,000 Ons nie, byvoorbeeld, hier, want weer int, in PHP 700 00:37:15,000 --> 00:37:18,000 jy moet net nie en moet dit nie doen nie, 701 00:37:18,000 --> 00:37:20,000 maar eerder daar is hierdie nuwe sleutelwoord genoem funksie. 702 00:37:20,000 --> 00:37:23,000 In PHP dit is amper 'n bietjie duideliker, want wanneer jy wil 'n funksie 703 00:37:23,000 --> 00:37:26,000 sê jy letterlik funksie, jy gee dit 'n naam en dan 'n komma geskei lys 704 00:37:26,000 --> 00:37:28,000 indien enige van sy argumente. 705 00:37:28,000 --> 00:37:32,000 Geen nietig of iets soos dit nodig om te sê, en dan opbrengs is dieselfde, 706 00:37:32,000 --> 00:37:35,000 $ * $ * $ A. 707 00:37:35,000 --> 00:37:38,000 Wat ook ontbreek? Sammy wys dit uit hier. 708 00:37:38,000 --> 00:37:43,000 Op die top van die lêer heeltemal afwesig is in PHP is ook 'n prototipe. 709 00:37:43,000 --> 00:37:45,000 Dit is ook deur die ontwerp. 710 00:37:45,000 --> 00:37:48,000 Tale en tolke soos PHP is slimmer as C ooit was 711 00:37:48,000 --> 00:37:50,000 in samestellers soos kletteren. 712 00:37:50,000 --> 00:37:53,000 >> Onthou dat klang, as jy nie vertel dat kubus bestaan, 713 00:37:53,000 --> 00:37:56,000 as jy nie vertel wat printf bestaan ​​soos met 'n prototipe 714 00:37:56,000 --> 00:38:00,000 of met 'n # include, wel, was dit aan die gang te gil op jou, en selfs nie jou kode stel. 715 00:38:00,000 --> 00:38:03,000 PHP en meer moderne tale is 'n baie slimmer wanneer dit kom by hierdie. 716 00:38:03,000 --> 00:38:07,000 Hulle sal dit op hulself te lees deur al jou kode 717 00:38:07,000 --> 00:38:11,000 en dan skree jy slegs indien dit vind kubus nêrens. 718 00:38:11,000 --> 00:38:15,000 Dit maak nie saak as die kubus is aan die onderkant of die top of selfs in 'n aparte lêer. 719 00:38:15,000 --> 00:38:18,000 PHP en soortgelyke tale is nou slim genoeg om vorentoe te kyk 720 00:38:18,000 --> 00:38:26,000 alles voordat jy as 'n fout gemaak geagte. 721 00:38:26,000 --> 00:38:28,000 Waar laat dit ons? 722 00:38:28,000 --> 00:38:32,000 >> Kom ons doen 'n laaste voorbeeld hier in die voorwaardes, 723 00:38:32,000 --> 00:38:35,000 en as ek oopmaak conditions2.php kennisgewing te 724 00:38:35,000 --> 00:38:37,000 hier sintaks is byna dieselfde. 725 00:38:37,000 --> 00:38:40,000 Ek gebruik read line in plaas van GetString, maar daardie lyn is dieselfde as voorheen, 726 00:38:40,000 --> 00:38:42,000 "Ek wil graag 'n heelgetal asseblief." 727 00:38:42,000 --> 00:38:45,000 Ek het toe 'n indien toestand, anders as, en dan 'n ander, 728 00:38:45,000 --> 00:38:48,000 maar funksioneel hierdie program is ook identies aan wat ons gedoen het weke gelede, 729 00:38:48,000 --> 00:38:51,000 so as ek hardloop hierdie ding, php van conditions2, 730 00:38:51,000 --> 00:38:54,000 en ek gee dit 'n getal soos 23 - 731 00:38:54,000 --> 00:38:57,000 Ek pluk 'n positiewe getal. As ek gee dit -1 ek opgetel het 'n negatiewe getal. 732 00:38:57,000 --> 00:39:00,000 As ek gee dit 0 Ek inderdaad opgetel 0. 733 00:39:00,000 --> 00:39:02,000 So, wat omgee oor al hierdie dinge? 734 00:39:02,000 --> 00:39:06,000 Wel, een van die die prettige soort van oefeninge hier 735 00:39:06,000 --> 00:39:10,000 vir my ten minste was om terug te gaan en kyk hoe vinnig ek kon pset 5 implementeer, 736 00:39:10,000 --> 00:39:12,000 die spelfoute pset. 737 00:39:12,000 --> 00:39:15,000 Onthou dat daar was hierdie lêer genaamd speller.c, 738 00:39:15,000 --> 00:39:17,000 en daar was n lêer genaamd dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Wat ek gedoen het, was ek soort van 'n paar minute spandeer en ek die C-kode omgeskakel 740 00:39:20,000 --> 00:39:23,000 PHP-kode, en ons sal nie spandeer baie tyd op speller 741 00:39:23,000 --> 00:39:26,000 want net soos in pset 5 het jy nie regtig nodig het om te 742 00:39:26,000 --> 00:39:29,000 spandeer baie tyd op die speller self omdat jou aandag was op die woordeboek. 743 00:39:29,000 --> 00:39:32,000 >> Is dit voldoende om te sê dat as jy lees deur speller, 744 00:39:32,000 --> 00:39:35,000 hierdie lêer hier, dit is pretty much gelykstaande aan die C-kode 745 00:39:35,000 --> 00:39:37,000 ons vir jou gegee het vir pset 5. 746 00:39:37,000 --> 00:39:39,000 Ek het net 'n paar $ in plekke. 747 00:39:39,000 --> 00:39:43,000 Ek het sekere funksie name verander as hulle nie bestaan ​​in PHP. 748 00:39:43,000 --> 00:39:45,000 Daar is een addisionele ding hier, preg_match, 749 00:39:45,000 --> 00:39:48,000 wat is 'n bietjie liefhebber manier om iets te doen, maar ons sal terug te kom na wat uiteindelik. 750 00:39:48,000 --> 00:39:51,000 Maar in kort, speller is byna identies, en as jy kyk na die heel onderste 751 00:39:51,000 --> 00:39:54,000 wat dit uiteindelik uitspoeg, is dit hier, 752 00:39:54,000 --> 00:39:57,000 woorde verkeerd gespel, woorde in die woordeboek, woorde in die teks. 753 00:39:57,000 --> 00:40:00,000 Alle reg, sodat wat is interessant nou is die volgende. 754 00:40:00,000 --> 00:40:05,000 Ek op die top van my lêer wat dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Net soos C # include PHP het 'n spesiale funksie genoem vereis 756 00:40:09,000 --> 00:40:14,000 dat pretty much dieselfde ding, vereis 'n lêer genaamd dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Hoe kan ek gaan oor die uitvoering pset 5? 758 00:40:18,000 --> 00:40:21,000 Laat my voort te gaan en open 'n lêer hier. 759 00:40:21,000 --> 00:40:24,000 Laat my toe om 'n bietjie verwysing hier. 760 00:40:24,000 --> 00:40:29,000 En laat my 'n nuwe lêer te skep en begin met die roeping van hierdie dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Laat ek dit in 'n ander gids, sodat ons kan doen om hierdie lewe. 762 00:40:31,000 --> 00:40:33,000 En nou sal ek zoom. 763 00:40:33,000 --> 00:40:37,000 Ek gaan my PHP lêer om te begin met 'n oop bracket php gesluit bracket. 764 00:40:37,000 --> 00:40:40,000 En dan in hier en daar was 'n paar funksies wat ek nodig het om te implementeer vir pset 5, 765 00:40:40,000 --> 00:40:42,000 so laat my begin met die implementering van sommige van diegene, 766 00:40:42,000 --> 00:40:47,000 so funksie tjek, wat het 'n woord in 'n argument te neem. 767 00:40:47,000 --> 00:40:49,000 Ons sal dit doen en kom terug na dit in 'n oomblik. 768 00:40:49,000 --> 00:40:53,000 >> Daar was funksie las, wat het in wat as 'n argument? 769 00:40:53,000 --> 00:40:56,000 Woordeboek, sodat die lêer wat ek eintlik wou om te laai. 770 00:40:56,000 --> 00:41:00,000 Daar was funksie grootte, wat nie enige argumente 771 00:41:00,000 --> 00:41:04,000 en daar was funksie wat was die ander? 772 00:41:04,000 --> 00:41:06,000 Los, wat nie enige argumente. 773 00:41:06,000 --> 00:41:10,000 Dit is die 4 funksies wat ek nodig sou wees om nou te implementeer in PHP, 774 00:41:10,000 --> 00:41:13,000 en wat ek gaan om dit te doen gaan voort en doen dit. 775 00:41:13,000 --> 00:41:16,000 Baie van julle gebruik om 'n hash tafel in pset 5, 776 00:41:16,000 --> 00:41:21,000 so laat my gaan voort en die skep van 'n hash tafel in PHP. 777 00:41:21,000 --> 00:41:23,000 Gedoen het. 778 00:41:23,000 --> 00:41:25,000 Dit gee my 'n hash tafel. Wel, hoekom? 779 00:41:25,000 --> 00:41:30,000 Een, is die veranderlike genaamd $ tafel, net die idee van 'n hash tafel te besweer. 780 00:41:30,000 --> 00:41:34,000 Die vierkantige hakies, maar onthou, verteenwoordig wat? 781 00:41:34,000 --> 00:41:37,000 'N skikking, maar in PHP skikkings nie numeries geïndekseer word. 782 00:41:37,000 --> 00:41:41,000 Hulle kan ook assosiatiewe skikkings, 783 00:41:41,000 --> 00:41:44,000 wat beteken dat jy arbitrêre sleutels en waardes kan hê. 784 00:41:44,000 --> 00:41:49,000 >> Graag in pset 5, dié van julle wat hash tafel implementasies het 785 00:41:49,000 --> 00:41:53,000 jy waarskynlik ingevoeg die woord en dan plaas dit in 'n ketting van geskakelde lyste, 786 00:41:53,000 --> 00:41:56,000 of jy gestoor word die waarde van die ware êrens of iets te dien effekte. 787 00:41:56,000 --> 00:41:59,000 Jy het een of ander manier gedink aan die feit dat die woord was daar. 788 00:41:59,000 --> 00:42:01,000 Vir nou, wat gaan my hash tafel, 789 00:42:01,000 --> 00:42:06,000 en so nou om te gaan oor die uitvoering van die tjek funksie 790 00:42:06,000 --> 00:42:09,000 Ek hoef net na binne kyk van daardie hash tafel 791 00:42:09,000 --> 00:42:11,000 en kyk of 'n woord is daar. 792 00:42:11,000 --> 00:42:15,000 Wat ek gaan om dit te doen, is ek gaan om te sê indien- 793 00:42:15,000 --> 00:42:20,000 laat ons sê isset, wat is 'n PHP funksie wat letterlik beteken net is die sleutel stel, 794 00:42:20,000 --> 00:42:24,000 so isset ($ tabel [$ woord], 795 00:42:24,000 --> 00:42:29,000 en indien wel terugkeer waar. 796 00:42:29,000 --> 00:42:32,000 Dit is dit. Dit is pset 5 in PHP. 797 00:42:32,000 --> 00:42:34,000 Wel, in regverdigheid, okay. 798 00:42:34,000 --> 00:42:37,000 Anders return false, so dit is nie daar nie. 799 00:42:37,000 --> 00:42:39,000 Wat is werklik gaan hier aan? 800 00:42:39,000 --> 00:42:42,000 Wel, as tafel-of hash tafel hier meer in die algemeen 801 00:42:42,000 --> 00:42:46,000 is 'n assosiatiewe skikking wat beteken dat jy kan indeks in dit 802 00:42:46,000 --> 00:42:50,000 met 'n woord soos "woord", en jy het om terug te kry 'n bietjie waarde. 803 00:42:50,000 --> 00:42:52,000 >> Ons is soort van die kry van 'n stap vorentoe van onsself. 804 00:42:52,000 --> 00:42:56,000 Dit sou soort van lekker wees as ons werklik die lêer gelaai, 805 00:42:56,000 --> 00:42:58,000 so las is nie heeltemal so eenvoudig nie, maar laat my gaan voort en sweep 806 00:42:58,000 --> 00:43:00,000  'n baie vinnige implementering van die vrag. 807 00:43:00,000 --> 00:43:07,000 Laat my gaan voort en sê woorde kry lêer woordeboek. 808 00:43:07,000 --> 00:43:10,000 Die lêer funksie in PHP open 'n lêer 809 00:43:10,000 --> 00:43:12,000 en opgawes aan u 'n verskeidenheid van al die woorde in die lêer, 810 00:43:12,000 --> 00:43:14,000 gee dit net aan jou. 811 00:43:14,000 --> 00:43:16,000 Dit was ook 'n groot pyn, dit is nie? 812 00:43:16,000 --> 00:43:21,000 Nou foreach, dit is ons nuwe konstruk, foreach ($ woorde as $ woord). 813 00:43:21,000 --> 00:43:25,000 Hierdie lus is gaan om te begin iterating oor die skikking woorde 814 00:43:25,000 --> 00:43:30,000 en toewys aan die $ woord veranderlike elke woord in die lêer 815 00:43:30,000 --> 00:43:32,000 vanaf die eerste tot die tweede na die derde na die vierde al die pad 816 00:43:32,000 --> 00:43:35,000 so ek het nie die irriterende [i] notasie te doen en die wil. 817 00:43:35,000 --> 00:43:38,000 En wat ek net gaan om te doen vir elk van hierdie woorde 818 00:43:38,000 --> 00:43:43,000 word stoor dit in my tafel deur indeksering in tabel 819 00:43:43,000 --> 00:43:47,000 en dan doen waar omdat om te onthou 820 00:43:47,000 --> 00:43:50,000 dat 'n woord in my woordeboek is al wat ek regtig hoef te doen 821 00:43:50,000 --> 00:43:55,000 is 'n soort van flip 'n bietjie en sê hierdie woord in my hash tafel daar, waar is. 822 00:43:55,000 --> 00:43:58,000 En as dit nie daar is nie, kan ek nie sit uitdruklik valse, 823 00:43:58,000 --> 00:44:01,000 anders het ek wil hê om vals te maak vir alle moontlike woorde in die heelal. 824 00:44:01,000 --> 00:44:05,000 >> Dit is voldoende vir my net 'n indeks waarde in te stel 825 00:44:05,000 --> 00:44:09,000 na ware as 'n woord in my hash tafel. 826 00:44:09,000 --> 00:44:12,000 Nou het ek 'n paar van die hoeke te sny hier dat ek my hande sal beweeg vir nou, 827 00:44:12,000 --> 00:44:15,000 maar nou die las funksie gedoen word. 828 00:44:15,000 --> 00:44:18,000 Ek laai al die woorde van die lêer in 'n skikking. 829 00:44:18,000 --> 00:44:21,000 Ek itereer oor daardie skikking, en vir elke woord in die skikking 830 00:44:21,000 --> 00:44:24,000 Ek prop dit in my hash tafel met 1 lyn van kode. 831 00:44:24,000 --> 00:44:26,000 Dit is pret. Jy weet hoe ons die grootte kan nou implementeer? 832 00:44:26,000 --> 00:44:28,000 Wel, die grootte is altyd redelik maklik, in regverdigheid. 833 00:44:28,000 --> 00:44:32,000 Hier kan ons net terug doen telling van tabel. 834 00:44:32,000 --> 00:44:34,000 Dit is ook redelik maklik, tel die aantal van die dinge wat in die tabel. 835 00:44:34,000 --> 00:44:36,000 Dit is eintlik soort van die mees doeltreffende. 836 00:44:36,000 --> 00:44:39,000 Ek moet waarskynlik 'n veranderlike genoem grootte, sodat ons dit kan doen 837 00:44:39,000 --> 00:44:41,000 in konstante tyd, maar dit is redelik maklik. 838 00:44:41,000 --> 00:44:45,000 O, en dan los, as ons regtig wil om anale hier te wees 839 00:44:45,000 --> 00:44:47,000 ons kan sê dit is hoe jy iets los. 840 00:44:47,000 --> 00:44:49,000 Jy moet net die veranderlike gelyk aan 'n leë skikking, 841 00:44:49,000 --> 00:44:51,000 en dit raak ontslae van alles wat daar was. 842 00:44:51,000 --> 00:44:53,000 Hoef nie te bel gratis. 843 00:44:53,000 --> 00:44:56,000 >> Weereens, ek sny sommige hoeke, en ek vra om verskoning vir toewys probleem stel 5 844 00:44:56,000 --> 00:45:00,000 miskien in C, maar as ons nou voort te gaan en loop dit, 845 00:45:00,000 --> 00:45:02,000 Ek gaan eintlik loop die weergawe wat ek geskryf het in advance 846 00:45:02,000 --> 00:45:05,000 net so dat ek nie enige sintaktiese foute hoegenaamd. 847 00:45:05,000 --> 00:45:08,000 Laat my voort te gaan en uit te voer speller. Die gebruik is dieselfde. 848 00:45:08,000 --> 00:45:12,000 Hier is 'n woordeboek lêer wat net die woord cat bevat. 849 00:45:12,000 --> 00:45:15,000 Hier is 'n tekslêer wat net foo bar bevat. 850 00:45:15,000 --> 00:45:19,000 Kom ons spel kyk, so speller, die gebruik van hierdie woordeboek lêer op hierdie teks lêer. 851 00:45:19,000 --> 00:45:21,000 Daar is een woord verkeerd gespel, bar, en voila. 852 00:45:21,000 --> 00:45:23,000 Gedoen met pset 5. 853 00:45:23,000 --> 00:45:30,000 Kom ons neem 'n 5-minute breek hier, en ons sal terug en meer kom op PHP. 854 00:45:30,000 --> 00:45:32,000 Alle reg, ons is terug. 855 00:45:32,000 --> 00:45:34,000 Kom ons haat my vir 'n rukkie. 856 00:45:34,000 --> 00:45:37,000 Kom ons kyk nou eintlik kyk of dit was nie 'n positiewe 857 00:45:37,000 --> 00:45:39,000 eintlik die uitvoering van hierdie ding in PHP. 858 00:45:39,000 --> 00:45:43,000 Toegegee, dit het 45 sekondes om te implementeer. 859 00:45:43,000 --> 00:45:45,000 >> Maar laat ons nou voort te gaan en uit te voer dinge. 860 00:45:45,000 --> 00:45:49,000 Laat my voort te gaan en uit te voer 'n C-weergawe 861 00:45:49,000 --> 00:45:52,000 speller, en ons sal dit op een van die grootste lêers hardloop, 862 00:45:52,000 --> 00:45:54,000 wat is die King James Bybel. 863 00:45:54,000 --> 00:45:57,000 En dit is hier in-laat ons gaan in ons C-gids, 864 00:45:57,000 --> 00:46:01,000 speller op King James die 5de. 865 00:46:01,000 --> 00:46:03,000 'N baie verkeerd gespelde woorde. 866 00:46:03,000 --> 00:46:06,000 Okay, so wat is die uitset wat jy het waarskynlik selfs as die tye is 'n bietjie anders, 867 00:46:06,000 --> 00:46:09,000 as jy het alles korrek werk, en so tyd in totaal gekorrigeerde 868 00:46:09,000 --> 00:46:13,000 die King James Bybel was 0,38 sekondes, so redelik goed met behulp van dat die uitvoering. 869 00:46:13,000 --> 00:46:16,000 Nou laat my gaan in die PHP weergawe, wat ons net geskryf. 870 00:46:16,000 --> 00:46:18,000 Laat ek hardloop speller op King James. 871 00:46:18,000 --> 00:46:21,000 Oeps, ignoreer daardie fout. Ek is in die verkeerde gids. 872 00:46:21,000 --> 00:46:24,000 Speller op King James die 5de. 873 00:46:46,000 --> 00:46:48,000 Amper klaar. 874 00:46:48,000 --> 00:46:51,000 >> Okay, sal die slim waarnemer besef dit was meer as 3 sekondes daar. 875 00:46:51,000 --> 00:46:54,000 Dit is die ware looptyd. 876 00:46:54,000 --> 00:46:58,000 Dit blyk dat dit neem tyd baie van die teks uit te spoeg 877 00:46:58,000 --> 00:47:00,000 as gevolg van buffering kwessies, maar lang storie kort, 878 00:47:00,000 --> 00:47:04,000 wat was 3,15 sekondes van die masjien, CPU tyd, 879 00:47:04,000 --> 00:47:07,000 versus wat was dit 'n oomblik gelede? 880 00:47:07,000 --> 00:47:09,000 Soos 0,3. 881 00:47:09,000 --> 00:47:11,000 Ek bedoel, dit is 'n orde van grootte stadiger, so waar is dat 882 00:47:11,000 --> 00:47:14,000 belaglik verlangsaming vandaan? 883 00:47:14,000 --> 00:47:17,000 Wel, soos die geval is met die meeste enige ontwerp besluit wat ons gemaak het 884 00:47:17,000 --> 00:47:21,000 in die klas oor die afgelope 9 weke daar is byna altyd hierdie nadeel. 885 00:47:21,000 --> 00:47:24,000 Soms tussen net ruimte, soms tussen ruimte en tyd, 886 00:47:24,000 --> 00:47:27,000 ruimte, tyd en ontwikkelings poging, en wel hier, selfs al 887 00:47:27,000 --> 00:47:31,000 het ons gered van 'n groot hoeveelheid van die tyd, miskien potensieel 10-20-30 uur 888 00:47:31,000 --> 00:47:34,000 van die ontwikkeling tyd die uitvoering van die speltoetser 889 00:47:34,000 --> 00:47:36,000 deur lyfstraf dit in net 45 sekondes met hierdie taal 890 00:47:36,000 --> 00:47:40,000 die prys wat ons betaal, is dat dit 'n orde van grootte stadiger as 'n resultaat, 891 00:47:40,000 --> 00:47:43,000 en dit is gewoonlik die geval met die meeste enige geïnterpreteer taal, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl of ander waardeur 893 00:47:46,000 --> 00:47:49,000 as jy gaan om dit te doen deur middel van 'n tolk en dit lees jou kode 894 00:47:49,000 --> 00:47:52,000 reël vir reël, van bo na onder, links na regs, 895 00:47:52,000 --> 00:47:55,000 dat die middelman is gaan 'n geruime tyd van sy eie te neem, 896 00:47:55,000 --> 00:47:59,000 en wat jy voel in die 3 sekondes, in teenstelling met 0,3 sekondes 897 00:47:59,000 --> 00:48:02,000 is die feit dat daar is hierdie middelman wat letterlik ons ​​kode te interpreteer 898 00:48:02,000 --> 00:48:05,000 reël vir reël, en God verbied as jy binnekant van 'n lus 899 00:48:05,000 --> 00:48:08,000 met 'n groot lêer met honderde duisende woorde. 900 00:48:08,000 --> 00:48:11,000 >> Wat oorhoofse toe te voeg en voeg en voeg en voeg. 901 00:48:11,000 --> 00:48:16,000 Vir 'n instrument soos hierdie is dit waarskynlik nie die beste taal om te gebruik vir die implementering van 902 00:48:16,000 --> 00:48:20,000 'n speltoetser as onmiddellikheid is van belang is vir jou gebruikers en aan julle. 903 00:48:20,000 --> 00:48:23,000 Maar die luukse wat ons het in 'n oomblik is, as jy 904 00:48:23,000 --> 00:48:27,000 gebruik van 'n taal soos PHP of 'n baie van die geïnterpreteerde tale 905 00:48:27,000 --> 00:48:30,000 in die konteks van die Web, for that matter, jy het die voordeel 906 00:48:30,000 --> 00:48:34,000 dat die internet is 'n baie stadiger as die meeste rekenaars. 907 00:48:34,000 --> 00:48:38,000 Jy het 'n GHz CPU in jou rekenaar, 2 GHz, miskien selfs meer hierdie dae. 908 00:48:38,000 --> 00:48:41,000 Maar die werklikheid is op die internet daar is 'n hoë bedrag van die latency 909 00:48:41,000 --> 00:48:45,000 waardeur vir 'n leser om te praat met 'n bediener, selfs al het ons verlede week gesien het 910 00:48:45,000 --> 00:48:47,000 dat dit is redelik vinnig, die helfte van 'n millisekonde of so, 911 00:48:47,000 --> 00:48:51,000 wat te voeg, en as jy die aflaai van dinge soos 'n beeld 912 00:48:51,000 --> 00:48:54,000 of 'n Facebook-foto of om kitsboodskappe oor Facebook chatter, 913 00:48:54,000 --> 00:48:57,000 Gchat of iets dergeliks, al van hierdie ronde-trip keer 914 00:48:57,000 --> 00:49:00,000 tussen die leser en die bediener begin te voeg, 915 00:49:00,000 --> 00:49:03,000 wat maak jou spesifieke keuse van taal in baie gevalle 916 00:49:03,000 --> 00:49:07,000 nie almal wat betrokke, sodat jy boete van die gebruik van 'n effens stadiger taal 917 00:49:07,000 --> 00:49:10,000 soos PHP of Python of Ruby 918 00:49:10,000 --> 00:49:13,000 maar waarvoor daar groot upsides aan jou en jou kollegas 919 00:49:13,000 --> 00:49:17,000 en jou vriende, omdat jy kan implementeer dinge so, so baie vinniger. 920 00:49:17,000 --> 00:49:20,000 En bowendien, jy het 'n veel minder risiko van sekere sekuriteit foute. 921 00:49:20,000 --> 00:49:22,000 Daar is geen verwysings in PHP. 922 00:49:22,000 --> 00:49:25,000 Daar is geen seg foute wat jy maklik kan veroorsaak 923 00:49:25,000 --> 00:49:27,000 in dieselfde manier wat jy kan in C. 924 00:49:27,000 --> 00:49:29,000 Met C jy super naby aan die hardeware. 925 00:49:29,000 --> 00:49:33,000 Met PHP en soortgelyke tale jy is soort van 'n hoër vlak, om so te praat, 926 00:49:33,000 --> 00:49:37,000 met 'n baie van verdediging tussen jou en wat is eintlik aan die gang 927 00:49:37,000 --> 00:49:39,000 binne-in die masjien, en dit is net 'n nadeel. 928 00:49:39,000 --> 00:49:42,000 >> Ons het gekry tot op die punt van hierdie meer moderne, hoë vlak tale 929 00:49:42,000 --> 00:49:47,000 soos PHP, omdat van die lesse wat geleer is in tale soos PHP in C. 930 00:49:47,000 --> 00:49:50,000 Maar as jy nie verstaan ​​wat aan die gang is onder die kap al die tyd 931 00:49:50,000 --> 00:49:53,000 jy kan seker nie die regte ontwerp besluite te neem, 932 00:49:53,000 --> 00:49:56,000 en seker wanneer dit kom by die werk op 'n plek soos Facebook of Google 933 00:49:56,000 --> 00:49:59,000 of enige van hierdie plekke wat toenemend speel met 'n groot data stel 934 00:49:59,000 --> 00:50:01,000 selfs as jy terug gaan en doen premed en werk met 'n paar MD 935 00:50:01,000 --> 00:50:04,000 op 'n paar groot data stel wat pasiënte en dokters 936 00:50:04,000 --> 00:50:08,000 en soos die gebruik van die regte gereedskap is uiters dwingende 937 00:50:08,000 --> 00:50:11,000 want anders jou ontleding van sommige datastel kan sekondes, 938 00:50:11,000 --> 00:50:14,000 of dit kan letterlik ure neem. 939 00:50:14,000 --> 00:50:17,000 Dit is maar net een voorbeeld, nie om jou te frustreer met hoeveel meer moeite 940 00:50:17,000 --> 00:50:21,000 dit was in C, maar om jou te help verstaan ​​dat wanneer jy iets in C te implementeer nie 941 00:50:21,000 --> 00:50:24,000 jy regtig verstaan, of in teorie, regtig verstaan 942 00:50:24,000 --> 00:50:28,000 hoe alles is of moet werk, en jy het feitlik volle beheer 943 00:50:28,000 --> 00:50:31,000 oor wat gaan aan onder die enjinkap, en met hierdie hoër vlak tale 944 00:50:31,000 --> 00:50:34,000 het jy meer beheer af te staan ​​aan die mense wat hulle uitgevind 945 00:50:34,000 --> 00:50:37,000 en is onderhewig meer aan hul ontwerp besluite as joune. 946 00:50:37,000 --> 00:50:41,000 Maar as ons as vanselfsprekend aanvaar dat die prestasie 947 00:50:41,000 --> 00:50:44,000 is nie heeltemal so belangrik op die web as gevolg van hierdie ander kwessies, 948 00:50:44,000 --> 00:50:47,000 net netwerk spoed is 'n bietjie stadiger as die CPU spoed in elk geval, 949 00:50:47,000 --> 00:50:50,000 sodat ons dit kan sorteer bekostig om 'n effens stadiger taal te gebruik 950 00:50:50,000 --> 00:50:55,000 indien die upsides ons dinge kan ontwikkel 10 keer vinniger of selfs meer. 951 00:50:55,000 --> 00:50:57,000 >> Kom ons kyk hoe ons kan begin met hierdie. 952 00:50:57,000 --> 00:51:00,000 Laat my gaan in 'n gids 953 00:51:00,000 --> 00:51:03,000 onder vandag se voorbeelde genoem frosh.ims, 954 00:51:03,000 --> 00:51:06,000 en dit is eintlik persoonlik gemotiveer deur die feit dat die heel eerste ding 955 00:51:06,000 --> 00:51:10,000 Ek geskryf het vir die Web jaar gelede na die neem CS50 en CS51 956 00:51:10,000 --> 00:51:14,000 was 'n webwerf vir die Frosh kitsboodskappe program, eerstejaars binnemuurse sport, 957 00:51:14,000 --> 00:51:16,000 wat by die tyd dit was genoeg jaar gelede dat op die oomblik 958 00:51:16,000 --> 00:51:19,000 daar was geen webwerf vir die program, selfs al was daar 'n web, 959 00:51:19,000 --> 00:51:22,000 en in plaas daarvan was daar 'n Proctor in Wigglesworth waardeur as jy wil 960 00:51:22,000 --> 00:51:26,000 om te registreer vir vlugbal of sokker of wat ook al sou jy vul 'n stuk papier. 961 00:51:26,000 --> 00:51:28,000 Jy sal dan loop oor die werf. 962 00:51:28,000 --> 00:51:31,000 Jy sal dan klop aan hul deur en slide in hul deur of hand aan die Proctor 963 00:51:31,000 --> 00:51:34,000 'n stukkie papier met jou naam op dit, of jy wil om 'n kaptein van die span te wees, 964 00:51:34,000 --> 00:51:37,000 watter sport jy wil doen, en wat dorm jy was. 965 00:51:37,000 --> 00:51:39,000 Dit was soort van 'n ou skool manier van dinge doen, en dit was 'n eerste 966 00:51:39,000 --> 00:51:41,000 geleentheid om 'n baie van hierdie proses te outomatiseer. 967 00:51:41,000 --> 00:51:43,000 Jy moet net gaan na die webwerf. Jy tik iets. 968 00:51:43,000 --> 00:51:46,000 Jy kry 'n e-pos bevestiging, en die boom, is jy klaar. 969 00:51:46,000 --> 00:51:49,000 >> Dit was die heel eerste ding wat ek gedoen het, al is dit in 'n taal met die naam Pearl, 970 00:51:49,000 --> 00:51:52,000 maar dit is relatief maklik om te doen in PHP, en dit is 'n soort van verteenwoordiger 971 00:51:52,000 --> 00:51:55,000 van die probleme wat jy kan begin oplos wanneer jy jouself kan uitdruk 972 00:51:55,000 --> 00:51:58,000 programmaties en het nie om te vertrou op dinge soos Google Sites 973 00:51:58,000 --> 00:52:01,000 of Excel of gereedskap wat aan jou oorhandig word. 974 00:52:01,000 --> 00:52:03,000 Julle ouens het nou die vermoë om dinge te doen soos hierdie. 975 00:52:03,000 --> 00:52:06,000 Dit is 'n super lelik weergawe van 'n vorm, 976 00:52:06,000 --> 00:52:09,000 maar laat ons net dit gebruik vir die begin van die gesprek waardeur dit is 977 00:52:09,000 --> 00:52:12,000 min of meer wat die vorm lyk soos jare gelede vir ons 978 00:52:12,000 --> 00:52:14,000 in staat te stel om mense op die web aan te meld vir Frosh kitsboodskappe. 979 00:52:14,000 --> 00:52:18,000 Ons het gevra vir 'n naam, 'n boks vir of hulle nie wou wees kaptein, 980 00:52:18,000 --> 00:52:21,000 manlik of vroulik, en dan watter dorm hulle was, 981 00:52:21,000 --> 00:52:23,000 en dan sou hulle hierdie vorm instuur. 982 00:52:23,000 --> 00:52:27,000 Laat se eerste blik onder die kap op die HTML-kode wat verteenwoordig hierdie webblad. 983 00:52:27,000 --> 00:52:31,000 Laat my gaan in froshims0, 984 00:52:31,000 --> 00:52:35,000 en as 'n eenkant, vir pset 7 Ek neem as vanselfsprekend aanvaar 985 00:52:35,000 --> 00:52:37,000 die dopgehou en die dopgehou wat ek om dinge. 986 00:52:37,000 --> 00:52:40,000 Ons sal loop jy deur presies waar dinge het om te gaan in die toestel, 987 00:52:40,000 --> 00:52:43,000 watter mod opdragte jy hoef te hardloop, so moenie bekommerd wees oor al die 988 00:52:43,000 --> 00:52:46,000 dom besonderhede sinchroniseer vanaf die get-go hier. 989 00:52:46,000 --> 00:52:49,000 >> Alle reg, hier is froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Let me down blaai, en wat is hier nuuskierig, 991 00:52:52,000 --> 00:52:56,000 dit is 'n PHP-lêer, maar wat is binnekant van dit duidelik? 992 00:52:56,000 --> 00:52:59,000 Dit is 'n hele klomp van HTML, en inderdaad, PHP se oorsprong 993 00:52:59,000 --> 00:53:02,000 werklik was vir die feit dat 'n web-sentriese taal. 994 00:53:02,000 --> 00:53:04,000 'N oomblik gelede het ons dit gebruik het die bier voorbeeld te implementeer, 995 00:53:04,000 --> 00:53:07,000 die voorwaardes byvoorbeeld die Hello voorbeeld, en dit is goed. 996 00:53:07,000 --> 00:53:11,000 Jy kan gebruik PHP as 'n script taal 997 00:53:11,000 --> 00:53:15,000 waar 'n script is eintlik net die naam wat gegee word aan 'n vinnige en vuil program 998 00:53:15,000 --> 00:53:19,000 of iets wat jy skryf in 'n geskrewe of meer in die algemeen 'n geïnterpreteer taal. 999 00:53:19,000 --> 00:53:22,000 PHP is super nuttig vir daardie, want jy het gesien hoe vinnig 1000 00:53:22,000 --> 00:53:24,000 relatief ons kan sweep programme in PHP. 1001 00:53:24,000 --> 00:53:27,000 Maar dit was werklik ontwerp om gebruik te word vir die Web, 1002 00:53:27,000 --> 00:53:31,000 en ontwerp vir die Web in die sin dat merk hier op die top van die lêer 1003 00:53:31,000 --> 00:53:34,000 Ek begin met die 00:53:38,000 Dan het ek 'n klomp van die nutteloos kommentaar, toegestaan, maar dan het ek PHP mode sluit. 1005 00:53:38,000 --> 00:53:41,000 Maar dan het ek laat val in 'n HTML-modus. 1006 00:53:41,000 --> 00:53:45,000 >> Wat is interessant oor PHP is selfs al is die lêer eindig. Php 1007 00:53:45,000 --> 00:53:48,000 dit is oor die algemeen bedoel is om te word saam gemeng met HTML, 1008 00:53:48,000 --> 00:53:50,000 sommige PHP-kode, sommige HTML. 1009 00:53:50,000 --> 00:53:53,000 En ons sal uiteindelik sien dat ons kan begin om diegene uitmekaar terg 1010 00:53:53,000 --> 00:53:56,000 en hou ons HTML afsonderlike geheel en al van ons PHP, 1011 00:53:56,000 --> 00:53:59,000 maar die oorsprong van PHP werklik te gee jy hierdie buigsaamheid, 1012 00:53:59,000 --> 00:54:02,000 dat as jy wil 'n paar HTML net skryf dit, en dit sal 1013 00:54:02,000 --> 00:54:04,000 spoeg uit identies aan die leser. 1014 00:54:04,000 --> 00:54:07,000 Maar as jy 'n paar programme tegniek, 1015 00:54:07,000 --> 00:54:12,000 n paar programme kode, kan jy ook sit dit in presies dieselfde lêer, soos ons sal gou sien. 1016 00:54:12,000 --> 00:54:14,000 Hier is my HTML. 1017 00:54:14,000 --> 00:54:16,000 Ek het 'n titel van hierdie Frosh kitsboodskappe. 1018 00:54:16,000 --> 00:54:20,000 Ek het 'n liggaam tag wat het 'n CSS op te sentrumnommer alles in die middel, 1019 00:54:20,000 --> 00:54:23,000 en dan af Ek het hier 'n vorm wat blykbaar gaan ingedien word 1020 00:54:23,000 --> 00:54:27,000 na 'n nuwe lêer met die naam register0.php, so ons sal sien dat in 'n oomblik. 1021 00:54:27,000 --> 00:54:31,000 Dit is die gebruik van 'n metode met die naam post, wat ons sal terug kom so goed. 1022 00:54:31,000 --> 00:54:34,000 Toe het ek het 'n paar vorm insette, een sogenaamde naam, wie se tipe is teks, 1023 00:54:34,000 --> 00:54:37,000 een wie se naam is kaptein, wie se tipe is boks, 1024 00:54:37,000 --> 00:54:40,000 en dit het ons nie gesien dit voor, maar dit nie presies wat dit sê. 1025 00:54:40,000 --> 00:54:42,000 Jy kry 'n boks in plaas van 'n tekskassie. 1026 00:54:42,000 --> 00:54:46,000 Down hier het jy 'n radio knoppie, wat is een van daardie ronde knoppies 1027 00:54:46,000 --> 00:54:48,000 dat jy kan kies om hierdie een of daardie een. 1028 00:54:48,000 --> 00:54:52,000 >> Let op dit is doelbewuste dat ek het beide radio knoppies om die naam van geslag. 1029 00:54:52,000 --> 00:54:55,000 Dit is hoe jy kry wedersydse uitsluiting waar jy moet kliek 1030 00:54:55,000 --> 00:54:58,000 hierdie een of daardie een, en deur te kliek op die ander 1031 00:54:58,000 --> 00:55:01,000 dit unchecks die ander, so jy hoef te gee hulle dieselfde naam 1032 00:55:01,000 --> 00:55:03,000 as jy wil hê hulle moet wedersyds uitsluitend nie soos dit. 1033 00:55:03,000 --> 00:55:07,000 En dan vir die dorm, ek dink nie ons het gesien het nie, maar dit is 'n uitgesoekte menu, 'n drop-down menu. 1034 00:55:07,000 --> 00:55:09,000 Die tag want dit is kies. 1035 00:55:09,000 --> 00:55:11,000 Jy gee dan die drop-down menu 'n naam, 1036 00:55:11,000 --> 00:55:13,000 en dan moet jy 'n hele klomp van hierdie opsies. 1037 00:55:13,000 --> 00:55:16,000 Die eerste een, net vir estetika, is 'n leë string. 1038 00:55:16,000 --> 00:55:20,000 Ek wou net die drop down leeg te wees by verstek, 1039 00:55:20,000 --> 00:55:22,000 en dan is daar Apley, Canaday, Grays, en so meer. 1040 00:55:22,000 --> 00:55:24,000 En let op die digotomie hier. 1041 00:55:24,000 --> 00:55:27,000 Die opsie in die drop down 'n waarde, 1042 00:55:27,000 --> 00:55:30,000 maar dan is dit 'n mens-vriendelike naam, wat in hierdie voorbeeld 1043 00:55:30,000 --> 00:55:33,000 is identies, maar as ons regtig wou wees anale ons kan hê 1044 00:55:33,000 --> 00:55:36,000 die waarde van hierdie drop down net die kort weergawe, 1045 00:55:36,000 --> 00:55:39,000 Grays, maar ons kon regtig sê Grays Hall dat die mens eintlik sien, 1046 00:55:39,000 --> 00:55:43,000 maar dit is nie alles wat interessant, so ek het net het dit eenvoudig gehou en het hulle identies. 1047 00:55:43,000 --> 00:55:46,000 Dan af na die bodem het ons het 'n submit-knoppie 1048 00:55:46,000 --> 00:55:49,000 wat ons voorheen gesien, maar sien ek het dit net 'n ander woord. 1049 00:55:49,000 --> 00:55:53,000 In plaas van CS50 soek Ek het die etiket "Register." 1050 00:55:53,000 --> 00:55:56,000 >> Die eindresultaat is hierdie webblad hier, en weer, 1051 00:55:56,000 --> 00:56:00,000 waar dit ingedien raak? 1052 00:56:00,000 --> 00:56:04,000 Dit word aan sommige lêer, die waarde van die aksie kenmerk, 1053 00:56:04,000 --> 00:56:07,000 wat register0.php. 1054 00:56:07,000 --> 00:56:09,000 Kom ons kyk wat werklik hier gebeur. 1055 00:56:09,000 --> 00:56:13,000 Laat my gaan voort en vul hierdie vorm, sê Dawid, 1056 00:56:13,000 --> 00:56:16,000 wat manlik is, Matthews, en dan sal ek sê registreer. 1057 00:56:16,000 --> 00:56:18,000 Laat my uitzoomen en kliek op 'registreer'. 1058 00:56:18,000 --> 00:56:22,000 Okay, so soort van nutteloos nie, maar laat ons kyk wat eintlik gaan. 1059 00:56:22,000 --> 00:56:26,000 Let daarop dat die URL verander te wees register0.php. 1060 00:56:26,000 --> 00:56:34,000 Wat is vreemd afwesig is van die URL, al is, selfs al het ons net 'n vorm ingedien? 1061 00:56:34,000 --> 00:56:37,000 [Onhoorbaar student reaksie] 1062 00:56:37,000 --> 00:56:39,000 Oukei, dis net Chrome synde use hierdie dae. 1063 00:56:39,000 --> 00:56:42,000 Dit is eintlik daar. Hulle steek dit net om ruimte te bespaar. 1064 00:56:42,000 --> 00:56:44,000 Maar 'n goeie denke, goeie gedagte. 1065 00:56:44,000 --> 00:56:46,000 Na die ander einde van die URL, al is, is wat ontbreek? Ja. 1066 00:56:46,000 --> 00:56:48,000 [Studente] Die soeknavraag. 1067 00:56:48,000 --> 00:56:51,000 Die query string, so onthou van ons eenvoudige Google-soektog voorbeelde. 1068 00:56:51,000 --> 00:56:54,000 So gou as ek kliek op die submit-knoppie om die URL 1069 00:56:54,000 --> 00:57:00,000 het om my te Google, maar dan was daar q =? rekenaarwetenskap of alles wat ek het getik. 1070 00:57:00,000 --> 00:57:04,000 Dis omdat ons die GET-metode gebruik met die soektog voorbeeld. 1071 00:57:04,000 --> 00:57:06,000 >> Hierdie keer het ons met behulp van watter metode plaas? 1072 00:57:06,000 --> 00:57:10,000 Plaas, en een van die onmiddellike onderskeidings 1073 00:57:10,000 --> 00:57:14,000 tussen AOO en pos is dat die post nie sit die gebruiker se insette in die URL. 1074 00:57:14,000 --> 00:57:16,000 Dit steek dit weg. Dit stuur dit nog steeds. 1075 00:57:16,000 --> 00:57:19,000 In werklikheid, wat ons sien in die leser hier, soos ons sal openbaar in 'n oomblik 1076 00:57:19,000 --> 00:57:22,000 deur op soek na register0, is ek net om die inhoud te sien 1077 00:57:22,000 --> 00:57:25,000 van die skikking wat van die leser na die bediener voorgelê is. 1078 00:57:25,000 --> 00:57:29,000 Maar die URL nie 'n?, Het nie enige trefwoorde 1079 00:57:29,000 --> 00:57:31,000 of waardes in, en waarom is dit? 1080 00:57:31,000 --> 00:57:35,000 Wel, post jou toelaat om data van die vorm aan 'n bediener stuur, 1081 00:57:35,000 --> 00:57:38,000 maar dit sit dit nie in die URL, so watter soort inligting is post 1082 00:57:38,000 --> 00:57:41,000 veral geskik is vir miskien wanneer jy die gebruiker te vra 1083 00:57:41,000 --> 00:57:44,000 tik in insette tot 'n vorm? 1084 00:57:44,000 --> 00:57:48,000 Iets soos 'n wagwoord, iets soos wat anders? 1085 00:57:48,000 --> 00:57:50,000 Kredietkaart nommers. 1086 00:57:50,000 --> 00:57:53,000 Enigiets wat is effens gevoelig jy waarskynlik wil nie eindig in die URL 1087 00:57:53,000 --> 00:57:56,000 as net omdat dit beteken dat jou kamermaat of familielid kan net trol deur 1088 00:57:56,000 --> 00:57:59,000 jou internet geskiedenis en dan letterlik sien jou wagwoorde, 1089 00:57:59,000 --> 00:58:02,000 letterlik sien hoe jou kredietkaart nommers, want die meeste blaaiers 1090 00:58:02,000 --> 00:58:05,000 in die geskiedenis onthou watter URL's wat jy het al op, 1091 00:58:05,000 --> 00:58:09,000 so alleen al omdat dit 'n slegte idee sou wees. 1092 00:58:09,000 --> 00:58:11,000 Deur gebruik te maak van post velle dat die detail van die gebruiker. 1093 00:58:11,000 --> 00:58:14,000 >> Ook, hoe kan jy 'n foto op Facebook? 1094 00:58:14,000 --> 00:58:17,000 Wel, die enigste 2 meganismes wat jy werklik kan gebruik, 1095 00:58:17,000 --> 00:58:21,000 selfs al is daar 'n paar ander meer arcane kinders kry en post. 1096 00:58:21,000 --> 00:58:26,000 Hoe jy dalk 'n foto oplaai via 'n URL? 1097 00:58:26,000 --> 00:58:28,000 Jy kan eintlik dit te doen. 1098 00:58:28,000 --> 00:58:30,000 Jy kan 'n JPEG of bitmap of GIF en kan jy dit in heksadesimaal verteenwoordig 1099 00:58:30,000 --> 00:58:32,000 of iets genoem basis 64. 1100 00:58:32,000 --> 00:58:35,000 In plaas van die basis 16 jy gebruik basis 64, wat in wese lyk 1101 00:58:35,000 --> 00:58:38,000 ASCII-karakters, en jy kan eintlik 'n foto via 'n URL 1102 00:58:38,000 --> 00:58:41,000 na 'n vraagteken, maar daar is oor die algemeen die beperkings op grootte. 1103 00:58:41,000 --> 00:58:44,000 Die meeste blaaiers dwing URL's word nie meer as 1000 karakters, 1104 00:58:44,000 --> 00:58:47,000 miskien 2000 karakters of dies meer, so jy kan nie oplaai 1105 00:58:47,000 --> 00:58:50,000 'n 10 MB Facebook photo. 1106 00:58:50,000 --> 00:58:54,000 Vir wat jy gebruik post so goed, so vir nou sit die parameters in die URL, 1107 00:58:54,000 --> 00:58:57,000 wat is mooi en nuttige soms, maar vir enigiets sensitiewe of groot 1108 00:58:57,000 --> 00:58:59,000 pos is die pad om te gaan. 1109 00:58:59,000 --> 00:59:02,000 Wat register0 is eintlik hier? 1110 00:59:02,000 --> 00:59:05,000 Wel, as ek oopmaak register0 kennis dat dit is 'n super eenvoudige bladsy, 1111 00:59:05,000 --> 00:59:09,000 maar dit is die demonstrasie van die feit dat ek kan saam meng, vir 'n beter of vir slegter, 1112 00:59:09,000 --> 00:59:12,000 HTML met PHP. 1113 00:59:12,000 --> 00:59:15,000 Hierdie hele lêer, behalwe vir die kommentaar aan die bokant, HTML 1114 00:59:15,000 --> 00:59:19,000 behalwe vir hierdie man hier. 1115 00:59:19,000 --> 00:59:22,000 >> Kennisgewing in die middel van my PHP-kode, 1116 00:59:22,000 --> 00:59:26,000 in die middel van my HTML, ek het soort van tydelik 1117 00:59:26,000 --> 00:59:28,000 ingeskryf PHP mode. 1118 00:59:28,000 --> 00:59:31,000 Ek noem 'n spesiale funksie print r genoem. 1119 00:59:31,000 --> 00:59:34,000 Dit beteken druk rekursiewe, en wat dit doen is dit rekursief druk 1120 00:59:34,000 --> 00:59:38,000 veranderlike wat jy handig dit, kommapunt, afrit PHP mode. 1121 00:59:38,000 --> 00:59:40,000 En die pre tag gee jou pre-geformateerde teks, 1122 00:59:40,000 --> 00:59:43,000 mono ruimte teks sodat elke plek wat jy sien nie. 1123 00:59:43,000 --> 00:59:46,000 Dit maak nie verdwyn nie. Wat is die boodskap? 1124 00:59:46,000 --> 00:59:48,000 Wel, wat is interessant en dwingende oor PHP 1125 00:59:48,000 --> 00:59:52,000 is dat wanneer jy 'n vorm kry of 1126 00:59:52,000 --> 00:59:56,000 enigiets wat aan jou voorgelê is deur 'n leser 1127 00:59:56,000 --> 01:00:00,000 PHP self figure uit wat die sleutel waarde pare is, 1128 01:00:00,000 --> 01:00:02,000 figure uit as daar gelyke tekens, figure uit as daar 'n vraagteken. 1129 01:00:02,000 --> 01:00:07,000 Dit doen al die harde werk vir jou, en dan is dit aan jou oorhandig 'n associatieve array 1130 01:00:07,000 --> 01:00:10,000 met alles wat die gebruiker in die vorm getik. 1131 01:00:10,000 --> 01:00:12,000 Wel, watter velde van hierdie vorm? 1132 01:00:12,000 --> 01:00:14,000 >> Dit het 4 velde. 1133 01:00:14,000 --> 01:00:16,000 Een daarvan was 'n teks-veld met die naam naam. 1134 01:00:16,000 --> 01:00:18,000 Een daarvan was 'n boks met die naam van kaptein. 1135 01:00:18,000 --> 01:00:22,000 Een daarvan was 'n radio knoppie genoem geslag, 1136 01:00:22,000 --> 01:00:24,000 en een was 'n drop-down menu genoem dorm, 1137 01:00:24,000 --> 01:00:27,000 so sien wanneer ek druk rekursief 1138 01:00:27,000 --> 01:00:29,000 die inhoud van hierdie spesiale veranderlike. 1139 01:00:29,000 --> 01:00:34,000 Dit is 'n spesiale globale veranderlike genoem letterlik $ _POST, in alle pette. 1140 01:00:34,000 --> 01:00:39,000 Dit is 'n spesiale globale veranderlike wat PHP skep net vir jou 1141 01:00:39,000 --> 01:00:42,000 en die hande aan julle, sodat jy kan toegang tot alles 1142 01:00:42,000 --> 01:00:45,000 wat ingedien is deur middel van 'n vorm deur 'n gebruiker. 1143 01:00:45,000 --> 01:00:48,000 En deur print r op te roep jy sal nie dit doen in 'n gewone aansoek. 1144 01:00:48,000 --> 01:00:50,000 Ons is om dit te doen om te sien die binnekant van hierdie veranderlike, 1145 01:00:50,000 --> 01:00:53,000 en wat is binnekant van dit, goed, 4 sleutels, 1146 01:00:53,000 --> 01:00:56,000 4 http parameters, om so te praat, 1147 01:00:56,000 --> 01:00:59,000 naam, kaptein, geslag, dorm, en dan die waardes wat die gebruiker 1148 01:00:59,000 --> 01:01:01,000 getik in met een uitsondering. 1149 01:01:01,000 --> 01:01:03,000 Ek het tipe D-A-V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Ek die boks, maar, vir mans, wat glo 'n waarde ingedien 1151 01:01:05,000 --> 01:01:07,000 net m te wees bondige. 1152 01:01:07,000 --> 01:01:10,000 >> Toe ek gekies het Matthews, wat is die waarde wat het gekies, 1153 01:01:10,000 --> 01:01:12,000 en hierdie een is 'n bietjie dom, maar dit is die konvensie. 1154 01:01:12,000 --> 01:01:17,000 Toe ek die boks, 'n waarde van oor, "op," het vir die boks ingedien. 1155 01:01:17,000 --> 01:01:21,000 As ek dit nie nagegaan word, sou geen waarde gewees het hoegenaamd gestuur. 1156 01:01:21,000 --> 01:01:26,000 Dit is net gee ons insig in wat is binnekant van hierdie spesiale globale veranderlike, 1157 01:01:26,000 --> 01:01:29,000 en dit is so spesiaal dat dit 'n super globale veranderlike genoem. 1158 01:01:29,000 --> 01:01:33,000 Dit bestaan ​​oral vir jou in jou kode, sodat jy kan eintlik toegang. 1159 01:01:33,000 --> 01:01:36,000 Dit is nie dat dwingende, so laat ons eintlik gebruik van die super globale 1160 01:01:36,000 --> 01:01:38,000 en eintlik probeer om iemand te registreer. 1161 01:01:38,000 --> 01:01:41,000 In froshims1 ek gaan een verandering te maak. 1162 01:01:41,000 --> 01:01:44,000 Ek is die verandering van die aksie te wees register1.php, 1163 01:01:44,000 --> 01:01:46,000 en ek doen 'n ander ding. 1164 01:01:46,000 --> 01:01:48,000 Ek was soort van verleentheid deur die kwaliteit van my webblad daar. 1165 01:01:48,000 --> 01:01:52,000 Dit is pretty afskuwelike, eerlik, so dit blyk uit 1166 01:01:52,000 --> 01:01:56,000 wat jy kan baie maklik gebruik op die web 1167 01:01:56,000 --> 01:01:59,000 ander mense se JavaScript-kode, ander mense se CSS 1168 01:01:59,000 --> 01:02:02,000 wat hulle geskryf het en oop verkry en beskikbaar gestel word as 'n biblioteek, 1169 01:02:02,000 --> 01:02:06,000 om so te praat, byvoorbeeld, hier is ek met behulp van 'n vrylik beskikbaar biblioteek, 1170 01:02:06,000 --> 01:02:08,000 'n klomp van die kode wat iemand anders geskryf het. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter gebeur hierdie kode te skryf, en dit is bekend as die bootstrap biblioteek, 1172 01:02:11,000 --> 01:02:15,000 en dit is net 'n klomp van CSS style sheets, 'n klomp van die css lêers 1173 01:02:15,000 --> 01:02:19,000 dat iemand anders geskryf het en uitgepluis het hoe om alles mooi en mooi 1174 01:02:19,000 --> 01:02:22,000 sodat mense soos ons kan 'n bietjie minder bekommer oor estetika en fokus veel meer 1175 01:02:22,000 --> 01:02:24,000 op die logika en die eintlike programmering. 1176 01:02:24,000 --> 01:02:30,000 Deur dit te koppel met daardie tag, wat dieselfde tag ek gebruik onthou vir styles3.css vroeër, 1177 01:02:30,000 --> 01:02:34,000 Ek het nou toegang tot 'n lêer genaamd bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min beteken net hulle het dit minified en hulle het ontslae geraak van al die wit spasie en so meer 1179 01:02:37,000 --> 01:02:40,000 net om seker te maak hulle nie wil stuur my meer bytes as wat ek werklik nodig het. 1180 01:02:40,000 --> 01:02:45,000 Maar daar is 'n hele klomp van CSS, so as ek nou oopmaak weergawe 1 van Frosh kitsboodskappe 1181 01:02:45,000 --> 01:02:49,000 agterkom dat my lêer is beslis mooier. 1182 01:02:49,000 --> 01:02:54,000 Nou is dit nog net swart en wit nie, maar sien dat deur net met behulp van hul style sheet 1183 01:02:54,000 --> 01:02:58,000 en die gebruik van sekere kenmerke van dit op my vorm dit is nie amazing, 1184 01:02:58,000 --> 01:03:01,000 maar dit is beslis skoner as wat dit was voor, en die projektor is om dit te doen nie geregtigheid. 1185 01:03:01,000 --> 01:03:05,000 Daar is min grys lyne om die knoppies en rondom die teks veld reg hier, 1186 01:03:05,000 --> 01:03:07,000 maar dit is beslis skoner as wat dit tevore was. 1187 01:03:07,000 --> 01:03:09,000 >> Nou, in regverdigheid, het ek my opmaak 'n bietjie verander. 1188 01:03:09,000 --> 01:03:12,000 Dit is 'n weergawe 1, en let op dat ek 'n paar nuwe tags gebruik het, 1189 01:03:12,000 --> 01:03:17,000 en eerlik, ek het geen idee hoe om dit te doen totdat ek lees die dokumentasie 1190 01:03:17,000 --> 01:03:20,000 vir Twitter se bootstrap biblioteek, en hulle het vir my gesê as jy wil ons biblioteek te gebruik 1191 01:03:20,000 --> 01:03:23,000 gebruik 'n fieldset element binne-in jou vorm, 1192 01:03:23,000 --> 01:03:27,000 die woord wat jy wil vertoon langs 'n veld binnekant van 'n etiket tag, 1193 01:03:27,000 --> 01:03:30,000 dan gee jou insette 'n naam, net soos voor, 1194 01:03:30,000 --> 01:03:34,000 en dan vir die boks, nie net jy draai dit in 'n etiket element, 1195 01:03:34,000 --> 01:03:36,000 jy gebruik iets genoem 'n klas, so ons het nie gesien dit voor, 1196 01:03:36,000 --> 01:03:39,000 maar jy sal sien dit in een van pset 7 se kortbroek. 1197 01:03:39,000 --> 01:03:43,000 'N klas in CSS kan jy doen iets baie soortgelyk aan die ID, 1198 01:03:43,000 --> 01:03:46,000 maar voor toe ons 'n ID met die #-simbool 1199 01:03:46,000 --> 01:03:48,000 wat vir slegs een element was. 1200 01:03:48,000 --> 01:03:51,000 Wat is mooi oor 'n klas is, is dat verskeie elemente kan dieselfde klas 1201 01:03:51,000 --> 01:03:54,000 of die dieselfde CSS dinge toegepas word. 1202 01:03:54,000 --> 01:03:57,000 >> Maar weereens, meer op diegene in die kort, en die res van hierdie is net kopieer en plak 1203 01:03:57,000 --> 01:04:00,000 van hul dokumentasie waar ek 'n etiket het bygevoeg hier en daar. 1204 01:04:00,000 --> 01:04:03,000 En aan die einde, want ek het ingesluit die link tag aan die bokant, 1205 01:04:03,000 --> 01:04:06,000 alles lyk mooier outomaties 1206 01:04:06,000 --> 01:04:10,000 deur eenvoudig gemerk my bladsy in 'n wyse wat 1207 01:04:10,000 --> 01:04:12,000 Twitter verwag, en daar is so baie verskillende maniere 1208 01:04:12,000 --> 01:04:14,000 om dit te doen, en dit is inderdaad baie toepaslik. 1209 01:04:14,000 --> 01:04:17,000 Op hierdie punt in die semester, soos u sal sien in pset 7 se spec, 1210 01:04:17,000 --> 01:04:20,000 Googlen rond, lees op biblioteke, met behulp van ander mense se CSS 1211 01:04:20,000 --> 01:04:23,000 en JavaScript aanverwante probleme op te los 1212 01:04:23,000 --> 01:04:26,000 aan die gestelde probleem self is beslis aangemoedig en is die manier waarop 1213 01:04:26,000 --> 01:04:29,000 die web gebou is hierdie dae, deur middel van 'n permanente op ander mense se skouers 1214 01:04:29,000 --> 01:04:32,000 sodat jy werklik kan fokus op die nuwe en interessante probleme. 1215 01:04:32,000 --> 01:04:34,000 Maar laat ons nou fokus op, weer, die logika. 1216 01:04:34,000 --> 01:04:38,000 >> Dit was 'n vinnige ompad op die estetiese net om jou te wys in die rigting waarin jy kan gaan. 1217 01:04:38,000 --> 01:04:40,000 Ek gaan terug om terug te keer na die leliker een vir nou net omdat 1218 01:04:40,000 --> 01:04:44,000 daar is geen afleiding met Twitter stuff, en laat my gaan voort en maak 1219 01:04:44,000 --> 01:04:51,000 die froshims2, wat, weer, verskil net in die aksie, register2.php, 1220 01:04:51,000 --> 01:04:55,000 en laat ons neem 'n blik op wat die effek is hier. 1221 01:04:55,000 --> 01:04:57,000 Laat my gaan voort en tik in Dawid. 1222 01:04:57,000 --> 01:04:59,000 Ek sal nie kaptein hierdie tyd. 1223 01:04:59,000 --> 01:05:01,000 Ek sal sê manlik, Matthews, register. 1224 01:05:01,000 --> 01:05:05,000 Damn dit. Goed, dit is 'n skroef op my deel. 1225 01:05:05,000 --> 01:05:07,000 Staan. 1226 01:05:07,000 --> 01:05:17,000 Register2, lyn 22 word, indien leeg of jammer. 1227 01:05:17,000 --> 01:05:19,000 Kom se herlaai. 1228 01:05:19,000 --> 01:05:22,000 Goed, op hierdie vorm te stuur wat nou net gebeur? 1229 01:05:22,000 --> 01:05:25,000 Ek getik in Dawid, nagegaan manlik, Matthews, register gekliek. 1230 01:05:25,000 --> 01:05:27,000 U geregistreer is. (Wel, nie regtig nie.) 1231 01:05:27,000 --> 01:05:32,000 Dit is duidelik 'n stap verder as net die druk van die inhoud van 'n paar veranderlike, 1232 01:05:32,000 --> 01:05:34,000 maar wat hierdie lêer is eintlik besig om te doen? 1233 01:05:34,000 --> 01:05:37,000 In register2.php 1234 01:05:37,000 --> 01:05:40,000 agterkom dat ek het 'n paar nuwe kode. 1235 01:05:40,000 --> 01:05:44,000 Binnekant van my liggaam tag Ek het in wese 'n as anders konstrueer, 1236 01:05:44,000 --> 01:05:47,000 maar omdat ek mede-vermenging dit met 'n paar HTML 1237 01:05:47,000 --> 01:05:51,000 Ek het om te betree en die uitgang PHP af heen en weer, so laat ons sien wat ek doen. 1238 01:05:51,000 --> 01:05:55,000 >> In die eerste reël hier ek sê as dit die geval is 1239 01:05:55,000 --> 01:06:00,000 dat die post super wêreld is leeg vir die sleutel van 'n naam, 1240 01:06:00,000 --> 01:06:04,000 So met ander woorde, indien die gebruiker nie gee my 'n waarde vir die naam in die vorm, 1241 01:06:04,000 --> 01:06:07,000 dan leeg gaan om terug te keer waar omdat die waarde is leeg. 1242 01:06:07,000 --> 01:06:11,000 Of-kennis van die vertikale stawe as geslag is leeg 1243 01:06:11,000 --> 01:06:15,000 binnekant van hierdie spesiale super wêreld, wat, weer, die inhoud van die vorm, 1244 01:06:15,000 --> 01:06:19,000 of die dorm leeg is, dan gaan ek om voort te gaan en skree op die gebruiker. 1245 01:06:19,000 --> 01:06:22,000 Hoe werk dit? Wel, merk ek gaan om te sê jy moet jou naam, geslag, en dorm. 1246 01:06:22,000 --> 01:06:24,000 Kom ons eintlik veroorsaak dat die fout. 1247 01:06:24,000 --> 01:06:27,000 Laat my terug te gaan na my vorm. Laat my herlaai om dit skoon te maak. 1248 01:06:27,000 --> 01:06:30,000 En ek is net gaan om aan hulle te gee Dawid, en hulle hoef nie te weet waar ek woon. 1249 01:06:30,000 --> 01:06:33,000 Registreer. Blykbaar het ek nodig het om hulle te vertel waar ek woon. 1250 01:06:33,000 --> 01:06:35,000 Jy moet jou naam, geslag en dorm. Gaan terug. 1251 01:06:35,000 --> 01:06:39,000 >> En ek kon kliek om terug te gaan na daardie vorm, maar hoekom is dit? 1252 01:06:39,000 --> 01:06:43,000 Wel, in daardie geval se naam was nie leeg nie, maar geslag was, en dorm was, 1253 01:06:43,000 --> 01:06:47,000 so hierdie hele uitdrukking geëvalueer waar, en selfs al is die sintaksis is 'n bietjie nuwe, 1254 01:06:47,000 --> 01:06:51,000 gaan ons weer, PHP mode, bekend as verklaring, 1255 01:06:51,000 --> 01:06:54,000 maar die nuwe deel hier is net hierdie kolon, en ek het screwed up deur die weglating van 'n hakie 1256 01:06:54,000 --> 01:06:57,000 deur 'n ongeluk, maar let op die kolon, en dit beteken dat 1257 01:06:57,000 --> 01:07:00,000 selfs al is ons opwindende PHP mode alles 1258 01:07:00,000 --> 01:07:03,000 wat volg moet spoeg uit woordeliks aan die leser 1259 01:07:03,000 --> 01:07:07,000 totdat jy sien 'n ander blok, soos ons hier doen, 1260 01:07:07,000 --> 01:07:10,000 in welke geval jy moet eerder spoeg dit uit 1261 01:07:10,000 --> 01:07:13,000 totdat jy sien die endif, sodat sommige effens nuwe sintaksis 1262 01:07:13,000 --> 01:07:16,000 wat dit moontlik maak om my te skakel tussen HTML en PHP. 1263 01:07:16,000 --> 01:07:19,000 Ons kan hierdie up uiteindelik skoon te maak, maar vir nou, 1264 01:07:19,000 --> 01:07:22,000 dit is soort van 'n dwingende manier van foutopsporing die vorm. 1265 01:07:22,000 --> 01:07:25,000 >> Nou, ek sê dat jy regtig nie geregistreer is nie, omdat natuurlik ons ​​het niks gedoen nie, maar die data, 1266 01:07:25,000 --> 01:07:28,000 so laat ons werklik probeer om iets cool om te doen. 1267 01:07:28,000 --> 01:07:33,000 In froshims3 die enigste verskil is ek gaan aan register3, 1268 01:07:33,000 --> 01:07:35,000 sodat die HTML daar is dieselfde. 1269 01:07:35,000 --> 01:07:38,000 In register3 opmerk. 1270 01:07:38,000 --> 01:07:40,000 Hierdie een is 'n soort van sexy. 1271 01:07:40,000 --> 01:07:44,000 Op die top het ek 'n vereiste verklaring is gebruik, sodat dit is soos # include. 1272 01:07:44,000 --> 01:07:46,000 Hierdie keer is dit nie stdio.h of iets soos dit. 1273 01:07:46,000 --> 01:07:50,000 Dit is 'n PHP-biblioteek, en hierdie een is genoem PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Hoe het ek weet presies dit aangehaal string te sluit? 1275 01:07:53,000 --> 01:07:56,000 Ek lees dit in die dokumentasie, so toe hulle vir my gesê het dit op die top van die lêer 1276 01:07:56,000 --> 01:08:00,000 As jy wil 'n spesiale biblioteek genoem PHPMailer wat doen wat dit sê om te gebruik. 1277 01:08:00,000 --> 01:08:03,000 Dit laat jou toe om e-pos te stuur via PHP. 1278 01:08:03,000 --> 01:08:05,000 Laat ons nou scroll af verder. 1279 01:08:05,000 --> 01:08:08,000 >> Kennisgewing om te begin Ek is in PHP mode hierdie hele tyd, 1280 01:08:08,000 --> 01:08:11,000 so kyk nou hier na die invoer van daardie biblioteek, 1281 01:08:11,000 --> 01:08:13,000  om so te praat, ek is besig met 'n paar gesonde verstand tjeks. 1282 01:08:13,000 --> 01:08:16,000 As dit die geval is dat die naam nie leeg is 1283 01:08:16,000 --> 01:08:19,000 en geslag is nie met leë let op die uitroep punte- 1284 01:08:19,000 --> 01:08:24,000 en dorm nie leeg is, dan die gebruiker logies gevul die vorm, ten minste genoeg. 1285 01:08:24,000 --> 01:08:28,000 Ek gee nie om as hulle kaptein of nie. Ek hoef net hul naam, geslag, en dorm. 1286 01:08:28,000 --> 01:08:31,000 As hulle diegene wat nie gevul het sodat niemand van daardie velde is leeg 1287 01:08:31,000 --> 01:08:33,000 dit is 'n bietjie nuwe sintaksis. 1288 01:08:33,000 --> 01:08:36,000 PHP, as 'n eenkant, is 'n objek-georiënteerde programmeertaal 1289 01:08:36,000 --> 01:08:39,000 wat sommige van julle ouens kan onthou van APCS of iets dergeliks. 1290 01:08:39,000 --> 01:08:42,000 Vir nou, as onbekende, weet net dat hierdie biblioteek te gebruik 1291 01:08:42,000 --> 01:08:45,000 jy het 'n lyn van die kode soos hierdie te skryf deur gebruik te maak van 'n nuwe sleutelwoord, 1292 01:08:45,000 --> 01:08:47,000 letterlik 'n nuwe navraag genoem nuwe. 1293 01:08:47,000 --> 01:08:50,000 Maar as dit nie, ons het 'n paar bekende sintaksis. 1294 01:08:50,000 --> 01:08:54,000 Dit is 'n pyl operateur, wat is soortgelyk aan wat ons gebruik vir structs in die konteks van wysers. 1295 01:08:54,000 --> 01:08:57,000 Vir vandag PHP nie pointers, 1296 01:08:57,000 --> 01:09:01,000 maar weet nou dat die binnekant van die e-pos veranderlike 1297 01:09:01,000 --> 01:09:05,000 is in wese 'n soort van 'n wyser na 'n spesiale biblioteek 1298 01:09:05,000 --> 01:09:08,000 dat iemand anders geskryf het, en as ek wil om spesifieke funksies om toegang te verkry tot 1299 01:09:08,000 --> 01:09:12,000 binnekant van daardie biblioteek het ek, soos in C, gebruik die pyltjie operateur, 1300 01:09:12,000 --> 01:09:14,000 selfs al is dit nie eintlik wysers. 1301 01:09:14,000 --> 01:09:16,000 Dit is soort van PHP se eie weergawe daarvan. 1302 01:09:16,000 --> 01:09:20,000 Dit beteken in die biblioteek en noem die IsSMTP funksie. 1303 01:09:20,000 --> 01:09:23,000 SMTP, herroep, van ons Warriors van die Net verwys na e-pos, 1304 01:09:23,000 --> 01:09:28,000 en dit beteken dat net 'n e-pos bediener vir hierdie Frosh IMS-registrasie. 1305 01:09:28,000 --> 01:09:30,000 >> Wat gasheer wil ek om te gebruik? 1306 01:09:30,000 --> 01:09:34,000 Wel, Harvard, as jy Google rond, het 'n e-pos bediener genaamd smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 As jy speel saam by die huis, of jy leef op 'n Comcast netwerk 1308 01:09:37,000 --> 01:09:40,000 is dit dalk iets soos smtp.comcast.net wees. 1309 01:09:40,000 --> 01:09:43,000 Dit hang heeltemal van waar jy woon en wat jou ISP is. 1310 01:09:43,000 --> 01:09:47,000 Daarna het ek gaan my op te stel van adres arbitrêr te wees jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Dan gaan ek te stel aan te spreek te wees jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 Die enigste manier wat ek het geweet dat hierdie funksies is genoem SetFrom en AddAddress 1313 01:09:55,000 --> 01:09:57,000 is, weer, ek lees die dokumentasie. 1314 01:09:57,000 --> 01:09:59,000 Dit is nie die soort van mettertyd aan alle programmeerders bekend. 1315 01:09:59,000 --> 01:10:02,000 Toe het ek 'n onderwerp na "registrasie." 1316 01:10:02,000 --> 01:10:07,000 En nou hierdie lyn is 'n bietjie lelik, want wat het die dot-operateur in PHP beteken? 1317 01:10:07,000 --> 01:10:09,000 Iemand weet? 1318 01:10:09,000 --> 01:10:11,000 Koppel. 1319 01:10:11,000 --> 01:10:14,000 In C is dit is 'n pyn in die nek 2 snare saam te koppel. 1320 01:10:14,000 --> 01:10:17,000 Jy het om te gaan met malloc of realloc of al van daardie dinge 1321 01:10:17,000 --> 01:10:20,000 net die lengte van 'n string uit te brei. 1322 01:10:20,000 --> 01:10:22,000 In PHP, JavaScript en ander tale 1323 01:10:22,000 --> 01:10:24,000 kan jy gewoonlik doen dit met 'n enkele karakter. 1324 01:10:24,000 --> 01:10:28,000 In hierdie geval, dot beteken hierdie string hier 1325 01:10:28,000 --> 01:10:30,000 en voeg dit string. 1326 01:10:30,000 --> 01:10:32,000 >> O ja, en by the way, voeg aan hierdie string, 1327 01:10:32,000 --> 01:10:34,000 wat gebeur met 'n veranderlike binnekant van daardie super wêreld. 1328 01:10:34,000 --> 01:10:37,000 Dan voeg aan 'n nuwe reël, so al hierdie kolletjies net beteken 1329 01:10:37,000 --> 01:10:39,000 hou die maak van 'n groter en groter en groter string, 1330 01:10:39,000 --> 01:10:43,000 en jy hoef nie te alle omgee malloc of soos in 'n taal soos hierdie, 1331 01:10:43,000 --> 01:10:46,000 en daar is ander maniere om dit te doen, maar dit is een van die vinnigste 1332 01:10:46,000 --> 01:10:48,000 maniere om dit uit te lê. 1333 01:10:48,000 --> 01:10:50,000 Wat is dit besig om te doen? 1334 01:10:50,000 --> 01:10:55,000 Dit is die skep van 'n e-pos liggaam wat gaan Naam te sê: Kaptein: Geslag: dorm: 1335 01:10:55,000 --> 01:10:58,000 almal op aparte lyne, en dan laastens, 1336 01:10:58,000 --> 01:11:00,000 een lyn van kode, en ek gaan om dit te ignoreer vir nou. 1337 01:11:00,000 --> 01:11:02,000 Indien == valse beteken net as iets verkeerd geloop het, 1338 01:11:02,000 --> 01:11:04,000 maar die magie gebeur hier. 1339 01:11:04,000 --> 01:11:08,000 Pos stuur stuur hierdie e-pos. 1340 01:11:08,000 --> 01:11:10,000 Kom ons kyk wat die netto resultaat is. 1341 01:11:10,000 --> 01:11:13,000 Aan die onderkant van die lêer, sien dit gaan om te sê jy is regtig geregistreer 1342 01:11:13,000 --> 01:11:15,000 as ek so ver. 1343 01:11:15,000 --> 01:11:18,000 As egter die gebruiker skroewe, opmerk dat ons begin hierdie 1344 01:11:18,000 --> 01:11:21,000 Indien die toestand hier, as dit nie leeg is en dan nie leeg weg nie 1345 01:11:21,000 --> 01:11:24,000 en nie met leë hande stuur ons die e-pos. 1346 01:11:24,000 --> 01:11:27,000 Anders gaan ons hierdie lyn van die kode te stuur, 1347 01:11:27,000 --> 01:11:30,000 wat gaan die effek te hê, soos u sal sien in pset 7, redirecting van die gebruiker 1348 01:11:30,000 --> 01:11:35,000 terug na waar hulle vandaan kom, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Vingers gekruis, anders dit gaan vandag die mees teleurstellende demo. 1350 01:11:38,000 --> 01:11:40,000 Hier gaan ons. 1351 01:11:40,000 --> 01:11:42,000 Laat ek my e-pos inboks vir jharvard in Gmail oopmaak. 1352 01:11:42,000 --> 01:11:44,000 Geen e-pos right now. Alles reg. 1353 01:11:44,000 --> 01:11:53,000 Nou laat my oopmaak froshims3, wat is die derde en laaste voorbeeld sal ons kyk hier. 1354 01:11:53,000 --> 01:11:55,000 Okay, hier gaan ons. 1355 01:11:55,000 --> 01:12:00,000 Nate, sal hy kaptein, manlik te wees, van, sê, Apley. 1356 01:12:00,000 --> 01:12:04,000 Registreer. Goed, is jy regtig geregistreer. 1357 01:12:04,000 --> 01:12:07,000 As ek dan nou scroll oor na my e-pos, oh, my God. 1358 01:12:07,000 --> 01:12:09,000 Ek het dinamiese net gestuur om 'n e-pos op die web. 1359 01:12:09,000 --> 01:12:11,000 >> Kom ons verlaat op daardie noot. 1360 01:12:11,000 --> 01:12:16,000 'N video is die komende vir die lesing wat ons gemis het. Sien julle volgende week. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]