1 00:00:00,000 --> 00:00:03,920 >> [Tónlist spila] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> DAVID J. MALAN: Allt í lagi. 4 00:00:13,800 --> 00:00:15,640 Þetta er CS50. 5 00:00:15,640 --> 00:00:17,620 Þetta er upphafið að viku átta. 6 00:00:17,620 --> 00:00:22,440 Og þú getur muna að við horfið síðasta skipti að horfa á nýju tungumáli 7 00:00:22,440 --> 00:00:23,240 að öllu leyti. 8 00:00:23,240 --> 00:00:25,905 Í raun, einn sem er nokkuð léttur og það er ekki einu sinni 9 00:00:25,905 --> 00:00:26,940 forritunarmál. 10 00:00:26,940 --> 00:00:31,100 Það er Markup tungumál sem leyfir okkur raun uppbygging og gera vefsíður. 11 00:00:31,100 --> 00:00:33,350 Og þegar þér eitthvað annað í tengslum við this-- 12 00:00:33,350 --> 00:00:35,670 eða þú verður bráðum, ef þú hefur ekki nú þegar. 13 00:00:35,670 --> 00:00:38,530 Við erum að fara að nota til Cascading Style Sheets eða CSS, sem 14 00:00:38,530 --> 00:00:40,971 er annar tegund af tungumáli með eiginleika og gildi 15 00:00:40,971 --> 00:00:43,220 það er að fara að láta okkur gera Hluti eins breyta litnum 16 00:00:43,220 --> 00:00:46,010 og breyta stöðu og þessar tegundir af klip. 17 00:00:46,010 --> 00:00:49,940 En í dag og áfram, byrjum við að áherslu á öflugri tungumálum, 18 00:00:49,940 --> 00:00:52,810 raunveruleg forritunarmál eins og PHP. 19 00:00:52,810 --> 00:00:54,880 >> Svo PHP hefur verið í kring um nokkurt skeið. 20 00:00:54,880 --> 00:00:56,810 Og eins og þú munt sjá, það var ætlað fyrst og fremst 21 00:00:56,810 --> 00:01:00,280 snemma á fyrir raunverulegt nota í þróun á vefnum 22 00:01:00,280 --> 00:01:02,360 og í raun búa til vefsíður. 23 00:01:02,360 --> 00:01:04,849 Svo hvers konar lögun gerir tungumál 24 00:01:04,849 --> 00:01:10,040 þarf til að gera vefnum síður virk með það? 25 00:01:10,040 --> 00:01:14,760 >> Með öðrum orðum, ef þú vilt búa til efni dynamically-- eins Facebook er 26 00:01:14,760 --> 00:01:19,480 Newsfeed, sem breytist stöðugt, eða spjallskilaboð að skjóta upp úr tíma 27 00:01:19,480 --> 00:01:21,872 að time-- eins hvað er lykill stykki af virkni 28 00:01:21,872 --> 00:01:24,580 þú þarft í forritunarmálinu sem vildi láta þig virk 29 00:01:24,580 --> 00:01:28,070 prenta nýjar upplýsingar á skjáinn? 30 00:01:28,070 --> 00:01:28,685 >> Nemandi: Code. 31 00:01:28,685 --> 00:01:29,560 DAVID J. MALAN: Code. 32 00:01:29,560 --> 00:01:30,440 OK. 33 00:01:30,440 --> 00:01:31,995 Við munum taka það. 34 00:01:31,995 --> 00:01:35,310 Smá nákvæmari. 35 00:01:35,310 --> 00:01:37,639 Ég meina, getum við gert þetta með C, hreinskilnislega. 36 00:01:37,639 --> 00:01:38,930 Það myndi vera a sársauki í hálsi. 37 00:01:38,930 --> 00:01:41,045 But-- er þetta skuldbinding? 38 00:01:41,045 --> 00:01:41,895 >> Nemandi: Já. 39 00:01:41,895 --> 00:01:42,677 Breytur, kannski? 40 00:01:42,677 --> 00:01:43,760 DAVID J. MALAN: Breytur. 41 00:01:43,760 --> 00:01:44,160 OK, viss. 42 00:01:44,160 --> 00:01:45,740 Breytur geta vissulega hjálpað okkur út. 43 00:01:45,740 --> 00:01:47,020 Og jafnvel eitthvað einfaldari. 44 00:01:47,020 --> 00:01:50,640 Við notuðum það í fyrsta dagskrá fyrsta degi 45 00:01:50,640 --> 00:01:55,686 þegar ég sagði í raun "halló heimur". 46 00:01:55,686 --> 00:01:56,570 >> Nemandi: Print. 47 00:01:56,570 --> 00:01:57,778 >> DAVID J. MALAN: Print, ekki satt? 48 00:01:57,778 --> 00:02:01,050 Prenta eða printf í Heimur C Svo allan þennan tíma, 49 00:02:01,050 --> 00:02:03,362 við höfum haft á okkar förgun a language-- C, 50 00:02:03,362 --> 00:02:05,570 í particular-- og jafnvel Klóra fyrir þessi mál sem 51 00:02:05,570 --> 00:02:07,400 getur útbúið textastrengi. 52 00:02:07,400 --> 00:02:11,090 >> Jæja, ef HTML, eins og við sáum í síðustu viku, er bara allt fullt af textastrengi 53 00:02:11,090 --> 00:02:14,692 vísu með opnum sviga og lokað sviga og einhvers konar rím 54 00:02:14,692 --> 00:02:16,650 og ástæða á bak við það, vel þá gátum virkilega 55 00:02:16,650 --> 00:02:20,440 byrja að búa til vefsíður, annaðhvort handvirkt með því að slá þá út í gedit 56 00:02:20,440 --> 00:02:23,870 eða í Microsoft Word, til að matter-- þurfum bara texta ritil. 57 00:02:23,870 --> 00:02:26,830 >> Eða við gætum skrifað kóða, til ábendinguna 58 00:02:26,830 --> 00:02:30,435 fyrr, sem myndi láta okkur breytilega búa HTML, 59 00:02:30,435 --> 00:02:32,560 og það er það sem við erum að fara að byrja að gera með PHP 60 00:02:32,560 --> 00:02:34,900 og að lokum jafnvel með a tungumáli kallast JavaScript, 61 00:02:34,900 --> 00:02:37,910 er notað eitt tungumál til að búa annars. 62 00:02:37,910 --> 00:02:40,720 Og reyndar, þetta er það sem Facebook og margir, margir aðrir síður 63 00:02:40,720 --> 00:02:44,530 gera til raunverulega virk birta nýjar upplýsingar til þín. 64 00:02:44,530 --> 00:02:47,117 >> Svo skulum byrja með this-- a dulinn útlit línu, en einn 65 00:02:47,117 --> 00:02:48,450 það er reyndar mjög öflugur. 66 00:02:48,450 --> 00:02:51,210 Svona langt, höfum við verið að nota C, sem er a safna saman tungumál. 67 00:02:51,210 --> 00:02:55,050 Og bara fljótur recap-- a saman tungumál hefur hvað eiginleika? 68 00:02:55,050 --> 00:02:59,050 Þú þarft augljóslega að safna saman það, en hvað þýðir það? 69 00:02:59,050 --> 00:03:00,505 Já? 70 00:03:00,505 --> 00:03:02,940 >> Nemandi: Það þarf að vera saman í vél númer. 71 00:03:02,940 --> 00:03:03,060 >> DAVID J. MALAN: OK. 72 00:03:03,060 --> 00:03:04,530 Það þarf að vera saman í vél númer. 73 00:03:04,530 --> 00:03:07,340 Svo þú taka þinn uppspretta merkjamál, sem er tegund af ensku-eins. 74 00:03:07,340 --> 00:03:09,270 Þú breytt þeim að eitthvað lægri, 75 00:03:09,270 --> 00:03:11,590 sem er að lokum kölluð mótmæla code-- er 0 og 1. 76 00:03:11,590 --> 00:03:14,830 Og það er þeim 0 og 1 er að a CPU, eins þær sem gerðar með Intel, 77 00:03:14,830 --> 00:03:16,110 raunverulega skilja. 78 00:03:16,110 --> 00:03:19,690 >> Nú, PHP og Python og Ruby og JavaScript og bunches af öðrum 79 00:03:19,690 --> 00:03:23,190 tungumál eru ekki saman tungumálum en túlkað tungumál, 80 00:03:23,190 --> 00:03:26,630 sem þýðir að þú skrifar bara þá og þá þú skilar ekki þá inn 0 og 1 er. 81 00:03:26,630 --> 00:03:30,790 Þú staðinn bara gefa þá eins inntak að forrita einhvers annars, 82 00:03:30,790 --> 00:03:32,080 kallast túlk. 83 00:03:32,080 --> 00:03:34,460 Og sá maður er áætlun hefur verið hannað 84 00:03:34,460 --> 00:03:38,280 að skilja hvað hver og hvert tákn í Python eða PHP 85 00:03:38,280 --> 00:03:42,650 eða Ruby eða allir tala um önnur tungumál þýðir. 86 00:03:42,650 --> 00:03:44,760 >> Og svo er allt sem við þurfum eitthvað eins og þetta. 87 00:03:44,760 --> 00:03:46,350 Svo í raun, ég ætla að fara yfir á tækið 88 00:03:46,350 --> 00:03:48,100 hér, bara í einhverju gamla glugga, og við erum 89 00:03:48,100 --> 00:03:52,580 að fara á undan og opna a skrá sem heitir, segja, halló. 90 00:03:52,580 --> 00:03:55,780 Nú áður, gæti ég hef vistað þetta jafnvel með skrá eftirnafn, 91 00:03:55,780 --> 00:03:57,910 en ég ætla að gera eitthvað jafnvel einfaldari hér. 92 00:03:57,910 --> 00:04:02,450 Ég ætla að fara á undan og byrja þessi skrá með þessari dulinn setningafræði. 93 00:04:02,450 --> 00:04:06,310 Svo "notandi, bin, ENV, fyrir umhverfi, PHP. " 94 00:04:06,310 --> 00:04:10,670 >> Þetta er einfaldlega ein lína af kóða sem er ætla að segja stýrikerfið mitt, 95 00:04:10,670 --> 00:04:13,730 fara að finna á þínu umhverfi hvað sem er, 96 00:04:13,730 --> 00:04:18,149 hvar PHP is-- á interpreter-- og fara á undan og nota þessi túlk 97 00:04:18,149 --> 00:04:20,589 að túlka eftirfarandi kóða. 98 00:04:20,589 --> 00:04:22,760 Nú, þetta er eins konar ljótt lögun af PHP. 99 00:04:22,760 --> 00:04:24,980 En í þessu tungumáli, hvaða skipti sem þú skrifar PHP kóða, 100 00:04:24,980 --> 00:04:29,200 þú þarft að hafa einn af þessum ljót PHP Tags demarcating upphafi 101 00:04:29,200 --> 00:04:32,220 af þinn code-- 00:04:37,430 >> En undir hér, get ég nú gert eitthvað alveg einfalt, eins printf halló komma 103 00:04:37,430 --> 00:04:40,922 heimurinn Sviga n Loka quote, loka sviga. 104 00:04:40,922 --> 00:04:42,630 Og þá bara til góðs mál, ég er að fara 105 00:04:42,630 --> 00:04:45,380 að fara á undan og loka PHP tag minn hérna 106 00:04:45,380 --> 00:04:47,390 þannig að allt útlit fallega falleg prentuð. 107 00:04:47,390 --> 00:04:50,780 >> Og um leið og ég smelli á Vista, gedit er reyndar klár nóg 108 00:04:50,780 --> 00:04:54,620 að líta á þeim fyrstu línu og átta sig á, ó, þú ert að skrifa PHP kóða. 109 00:04:54,620 --> 00:04:56,710 Leyfðu mér setningafræði hápunktur það með litum 110 00:04:56,710 --> 00:04:58,690 hér svo að það stendur út a lítill fleiri. 111 00:04:58,690 --> 00:05:01,300 En nú ætla ég að fara niður flugstöðinni gluggann minn. 112 00:05:01,300 --> 00:05:02,340 Ég að auka aðdrátt. 113 00:05:02,340 --> 00:05:06,860 >> Þetta forrit var kallað "halló" svo ég ætla að gera punktur rista halló, 114 00:05:06,860 --> 00:05:07,990 en aðgangi hafnað. 115 00:05:07,990 --> 00:05:08,490 Og bash. 116 00:05:08,490 --> 00:05:10,610 Við heyrðum í raun af því að hlutur nokkra vikum 117 00:05:10,610 --> 00:05:13,140 í samhengi við ShellShock, einn af þeim galla. 118 00:05:13,140 --> 00:05:16,240 >> En Aðgangi hafnað við höfum séð áður, kannski í mismunandi samhengi. 119 00:05:16,240 --> 00:05:19,060 Hefur einhver muna hvernig þú gætir festa eitthvað 120 00:05:19,060 --> 00:05:22,100 þar leyfi er hafnað svona? 121 00:05:22,100 --> 00:05:23,490 Hvað er stjórn, að minnsta kosti? 122 00:05:23,490 --> 00:05:24,159 >> Nemandi: chmod. 123 00:05:24,159 --> 00:05:26,700 DAVID J. MALAN: Já, chmod, fyrir að breyta stillingu á skrá. 124 00:05:26,700 --> 00:05:30,171 Og þú munt fá allt meira notað til þetta í næstu viku með síðari vandamál 125 00:05:30,171 --> 00:05:30,670 setja. 126 00:05:30,670 --> 00:05:33,211 En nú ætla ég að fara að breyta háttur ekki að vera læsileg, 127 00:05:33,211 --> 00:05:36,650 en að gefa öllum executeability forréttindi, getu 128 00:05:36,650 --> 00:05:37,710 að keyra þessa skrá. 129 00:05:37,710 --> 00:05:40,360 Og ég ætla að úthluta að að skránni halló. 130 00:05:40,360 --> 00:05:45,150 >> Ef ég nú punktur rista halló inn, þér sjá, í raun, program minn, halló heimur. 131 00:05:45,150 --> 00:05:48,760 Og hvað skref gerði ég greinilega sleppa öllu? 132 00:05:48,760 --> 00:05:49,520 Saman. 133 00:05:49,520 --> 00:05:51,680 Svo ég hljóp bara þetta forrit einfaldlega. 134 00:05:51,680 --> 00:05:55,690 >> Og það kemur í ljós að þú getur gert þetta með a einhver fjöldi af setningafræði minnir C 135 00:05:55,690 --> 00:06:03,400 Leyfðu mér að fara inn að kóða í dag, sem ég setti inn í vhost skrá minn 136 00:06:03,400 --> 00:06:05,250 hér, fyrir alvöru ástæðum við munum koma aftur til. 137 00:06:05,250 --> 00:06:09,350 Og ég ætla að fara inn í, skulum segja, skilyrði 1. 138 00:06:09,350 --> 00:06:12,450 >> Og þú munt sjá hér, fyrst og fremst, a heild búnt af athugasemdum. 139 00:06:12,450 --> 00:06:15,240 En þetta er í raun aftur-sköpun í PHP 140 00:06:15,240 --> 00:06:18,960 af a program sem við gerðum í vikunni Hét skilyrði 1.c 141 00:06:18,960 --> 00:06:20,690 þar sem tilgangur líf þessarar áætlunar 142 00:06:20,690 --> 00:06:22,950 er greinilega að spyrja notandinn fyrir heiltölu 143 00:06:22,950 --> 00:06:25,270 og þá gera sumir Fluffy greiningu á því þar 144 00:06:25,270 --> 00:06:29,510 þú segja ef það er jákvætt eða neikvæð eða jafnt og núll. 145 00:06:29,510 --> 00:06:34,220 Og ég koma þessu upp aðeins vegna þess, nema kannski einn lítill smáatriði, 146 00:06:34,220 --> 00:06:37,150 það er óaðgreinanlegur svo langt frá C 147 00:06:37,150 --> 00:06:39,930 >> Hvað er eitt einkenni hér sem kannski stökk út 148 00:06:39,930 --> 00:06:41,410 á þig sem svolítið öðruvísi? 149 00:06:41,410 --> 00:06:42,160 Kannski tvennt. 150 00:06:42,160 --> 00:06:42,660 Já? 151 00:06:42,660 --> 00:06:44,070 >> Nemandi: Dollar skilti n? 152 00:06:44,070 --> 00:06:44,944 >> DAVID J. MALAN: Já. 153 00:06:44,944 --> 00:06:46,210 Svo dollaramerki n er til staðar. 154 00:06:46,210 --> 00:06:48,120 Og dollara merki, sem við munum sjá, eru að fara 155 00:06:48,120 --> 00:06:51,460 til að vera a festa til byrjun af hvaða breytu í PHP. 156 00:06:51,460 --> 00:06:54,250 Það er bæði gott og bad-- gott í að það er tegund af augljóst hvað er 157 00:06:54,250 --> 00:06:56,797 breytu, slæmt af því að það er enn annar hlutur til að slá. 158 00:06:56,797 --> 00:06:58,630 Og það er einn annar sem við höfum ekki alveg 159 00:06:58,630 --> 00:07:00,876 séð, að minnsta kosti með þessum stafsetningu. já? 160 00:07:00,876 --> 00:07:01,630 >> Nemandi: readline. 161 00:07:01,630 --> 00:07:02,671 >> DAVID J. MALAN: readline. 162 00:07:02,671 --> 00:07:06,550 Readline við ekki sjá, í sjálfu sér, í C, jafnvel þó að það er til eitthvað 163 00:07:06,550 --> 00:07:09,530 svipuð, en við höfum notað getstring, og þetta er starfsbróðir hennar. 164 00:07:09,530 --> 00:07:12,950 Svo ef ég fer inn í þetta skrá, sem gerist að vera, 165 00:07:12,950 --> 00:07:18,030 eins og ég skal útskýra í smá í vhost mínu skrá og uppspretta minn möppu, 166 00:07:18,030 --> 00:07:22,730 og ég fara á undan og gera punktur skástrik conditions-- whoops-- punktur slash 167 00:07:22,730 --> 00:07:26,710 skilyrði 1, munt þú sjá, aftur, sama issue-- aðgangi hafnað. 168 00:07:26,710 --> 00:07:33,610 >> Svo láta mig súmma inn og gera chmod plús X á aðstæður, punktur aðstæður skástriki. 169 00:07:33,610 --> 00:07:35,222 Ég vil á heiltölu vinsamlegast, 50. 170 00:07:35,222 --> 00:07:36,930 Og við gætum spilað þetta leikur allan daginn. 171 00:07:36,930 --> 00:07:39,140 Það er að fara að haga sér nákvæmlega eins og það gerði í viku eitt. 172 00:07:39,140 --> 00:07:42,860 >> OK svo ekki allt sem öðruvísi, nema ekki bara að hirða hluti af setningafræði, 173 00:07:42,860 --> 00:07:45,490 en efst, ég aftur hafði þessa línu sem 174 00:07:45,490 --> 00:07:49,760 leyft mér að búa til eitthvað sem lítur út eins og C forrit sem heitir halló, 175 00:07:49,760 --> 00:07:51,150 kallast Skilyrði 1. 176 00:07:51,150 --> 00:07:54,520 En það er ekki 0 er og sjálfur Ég er framkvæmd beint. 177 00:07:54,520 --> 00:07:57,620 Það er í staðinn að keyra þetta túlkur sem nafn 178 00:07:57,620 --> 00:07:59,440 gerist að vera eins og tungumál. 179 00:07:59,440 --> 00:08:04,970 The program er kölluð PHP og númerið mitt neðan línu einn er samþykkt inn í það. 180 00:08:04,970 --> 00:08:07,740 >> Við getum gert annað nokkuð einfalt dæmi minnir eitthvað 181 00:08:07,740 --> 00:08:09,240 við gerðum vikum. 182 00:08:09,240 --> 00:08:12,020 Aftur, þetta er eins konar handahófskennt klumpur af kóða 183 00:08:12,020 --> 00:08:14,000 að virðist er hvað þegar þú keyrir það? 184 00:08:14,000 --> 00:08:15,625 Hvað er þetta að fara að prenta út, væntanlega? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Svo fyrst á línu 16, það er fara að segja x er nú 2, sennilega. 187 00:08:28,250 --> 00:08:30,920 % D er það sama og $ i fyrir printf. 188 00:08:30,920 --> 00:08:33,460 Svo þá er það cubing, punktur, punktur, punktur, í línu 17. 189 00:08:33,460 --> 00:08:36,299 Og þá línu 18 birtist að hringja í aðgerð cubed. 190 00:08:36,299 --> 00:08:37,600 Og hvar er cubed skilgreint? 191 00:08:37,600 --> 00:08:40,319 >> Jæja, það lítur út eins og í línu 25, svo það er ekki allt sem öðruvísi. 192 00:08:40,319 --> 00:08:42,610 Ég hef fengið nokkrar athugasemdir hér að ofan það, en að mestu leyti, 193 00:08:42,610 --> 00:08:45,370 það er nokkuð augljóst súlnagöng eða viðskipti 194 00:08:45,370 --> 00:08:48,470 úr C forrit til PHP útgáfa. 195 00:08:48,470 --> 00:08:52,670 En það eru nú a par af munur að kannski ætti stökkva út. 196 00:08:52,670 --> 00:08:56,100 Hvað annað er öðruvísi um hvernig þú gæti skrifað þessa sömu forrit í C? 197 00:08:56,100 --> 00:08:57,900 >> Nemandi: [inaudible]. 198 00:08:57,900 --> 00:09:00,070 >> DAVID J. MALAN: Það er engin frumgerð upp efst. 199 00:09:00,070 --> 00:09:03,210 Svo PHP-- og hreinskilnislega, a mikið af nútíma languages-- 200 00:09:03,210 --> 00:09:06,920 eru mikið betri og meira gagni en C Vistþýðendur í að þú 201 00:09:06,920 --> 00:09:09,740 getur sett aðgerðina upp hér, þú getur sett virka hérna, 202 00:09:09,740 --> 00:09:12,740 og túlkurinn er að fara að gera þér hylli lestur 203 00:09:12,740 --> 00:09:16,010 allt skrá áður en það ákveður að sumir virka er ekki til. 204 00:09:16,010 --> 00:09:17,970 Svo gott úrbætur árum síðar. 205 00:09:17,970 --> 00:09:22,126 En það er líka eitthvað annars öðruvísi eða fjarverandi hér. 206 00:09:22,126 --> 00:09:22,626 Já? 207 00:09:22,626 --> 00:09:25,084 >> Nemandi: [inaudible]. 208 00:09:25,084 --> 00:09:27,750 DAVID J. MALAN: Við þurfum ekki að lýsa þær tegundir af breytum, 209 00:09:27,750 --> 00:09:31,780 þannig að við munum sjá fyrir lengi að það eru mismunandi tegundir í PHP, 210 00:09:31,780 --> 00:09:34,970 en þú þarft ekki að tilgreina þá, sem einnig er bæði gott og slæmt. 211 00:09:34,970 --> 00:09:36,623 Og það er eitt annað sem vantar. 212 00:09:36,623 --> 00:09:37,430 >> Nemandi: Það er engin bókasöfn. 213 00:09:37,430 --> 00:09:38,630 >> DAVID J. MALAN: Það er engin bókasöfn. 214 00:09:38,630 --> 00:09:39,350 OK, svo er það gott. 215 00:09:39,350 --> 00:09:40,540 Við fáum mikið meira út af the kassi. 216 00:09:40,540 --> 00:09:43,373 Þannig að það er í raun mikið meira hlutir en ég hugsaði voru öðruvísi. 217 00:09:43,373 --> 00:09:44,350 Hvernig um hátt í bakinu? 218 00:09:44,350 --> 00:09:46,032 Hvað er það? 219 00:09:46,032 --> 00:09:46,740 Segja það einu sinni enn? 220 00:09:46,740 --> 00:09:47,960 >> Nemandi: Pointer. 221 00:09:47,960 --> 00:09:49,270 >> DAVID J. MALAN: Engar ábendingar. 222 00:09:49,270 --> 00:09:51,280 OK, að minnsta kosti í þessu dæmi, nr. 223 00:09:51,280 --> 00:09:52,070 Það er sanngjarnt. 224 00:09:52,070 --> 00:09:55,090 Þannig að það eru ekki ábendingum í PHP reyndar almennt. 225 00:09:55,090 --> 00:09:58,730 Það eru eitthvað heitir tilvísanir, en við munum ekki eyða of miklum tíma þar. 226 00:09:58,730 --> 00:09:59,520 Og hvað annað? 227 00:09:59,520 --> 00:10:00,185 >> Nemandi: Main. 228 00:10:00,185 --> 00:10:01,060 DAVID J. MALAN: Main. 229 00:10:01,060 --> 00:10:02,768 Þannig að þetta var Biggie Ég var að hugsa um. 230 00:10:02,768 --> 00:10:04,660 Eftir því að það er ekkert aðal innganga benda. 231 00:10:04,660 --> 00:10:06,525 Þú byrjar einfaldlega að skrifa kóðann. 232 00:10:06,525 --> 00:10:08,400 Og þetta er í raun fara að vera hagstæður 233 00:10:08,400 --> 00:10:10,560 þegar við umskipti augnablik að í raun að nota 234 00:10:10,560 --> 00:10:13,980 þetta sama tungumál fyrir vefur-undirstaða forritun, sem við 235 00:10:13,980 --> 00:10:16,580 vil ekki að hafa bara einn innganga benda. 236 00:10:16,580 --> 00:10:19,980 Við gætum vilt hafa fullt af Vefslóðir, fullt af mismunandi skrár 237 00:10:19,980 --> 00:10:22,930 allir taka í notandi inntak og framleiða framleiðsla. 238 00:10:22,930 --> 00:10:27,130 >> En hér er mjög Svekkjandi dæmi sem ég lofaði síðast, 239 00:10:27,130 --> 00:10:30,130 þ.e. í þessari möppu hér, stafsetningarvillur. 240 00:10:30,130 --> 00:10:33,680 Þannig að í þessu skrá Speller, sem við mun ekki eyða of miklum tíma á, það er 241 00:10:33,680 --> 00:10:37,870 fyrst og fremst á porting-- P-O-R-T. Það er bara orðið gefið þegar, segja, 242 00:10:37,870 --> 00:10:40,800 þú umbreyta frá einu tungumáli á aðra handvirkt venjulega. 243 00:10:40,800 --> 00:10:45,680 >> Þetta er súlnagöng af tölvunni útgáfa af Speller frá PSET 5. 244 00:10:45,680 --> 00:10:48,856 Og ég reyndi í raun að breyta hann línu fyrir línu eins vel og ég get. 245 00:10:48,856 --> 00:10:51,730 Svo ef þú vilt þessa tegund af hlutur, það er í raun virði á einhverjum tímapunkti 246 00:10:51,730 --> 00:10:54,229 draga þá bæði upp hlið við hlið og sjá hvað er sama 247 00:10:54,229 --> 00:10:55,230 og hvað er öðruvísi. 248 00:10:55,230 --> 00:10:57,510 En þeir eru ansi fjári svipuð. 249 00:10:57,510 --> 00:11:00,110 Ef þú manst hvað Speller leit jafnvel eins, 250 00:11:00,110 --> 00:11:02,110 jafnvel þó að þú gerðir ekki að breyta þessari skrá, 251 00:11:02,110 --> 00:11:04,860 það er nokkuð svipað setningafræðilega með réttlátur a par 252 00:11:04,860 --> 00:11:06,200 breytingar hér og þar. 253 00:11:06,200 --> 00:11:10,140 >> Þannig að þetta er aðeins til að segja að það er nokkuð einfalt að umbreyta Speller 254 00:11:10,140 --> 00:11:12,000 úr C í PHP. 255 00:11:12,000 --> 00:11:15,390 En í orðabók, það er eitthvað enn meira sannfærandi. 256 00:11:15,390 --> 00:11:19,270 Leyfðu mér að fara á undan og búa eigin dictionary.php minn skrá. 257 00:11:19,270 --> 00:11:24,010 Svo örlítið mismunandi í því við munum kalla það .php í stað .c. 258 00:11:24,010 --> 00:11:26,980 Vegna þess að þetta er a PHP skrá, I do-- örlítið annoyingly-- hafa 259 00:11:26,980 --> 00:11:30,132 að hefja skrá með PHP tag svoleiðis. 260 00:11:30,132 --> 00:11:32,340 Og ég ætla að fara á undan og skilgreina nokkrar aðgerðir. 261 00:11:32,340 --> 00:11:35,770 Virka kallast stöðva, sem er að fara að taka í orði eins og áður. 262 00:11:35,770 --> 00:11:37,520 En þetta rifrildi er fara að hafa dollara 263 00:11:37,520 --> 00:11:39,840 undirrita vegna þess að við erum aftur, nota PHP. 264 00:11:39,840 --> 00:11:42,350 Önnur starfsemi frá dictionary.c var hlaða 265 00:11:42,350 --> 00:11:47,120 og það tók í nafni orðabók, þannig að ég ætla fá að virka tilbúin að fara. 266 00:11:47,120 --> 00:11:50,920 >> Annað í dictionary.c var það? 267 00:11:50,920 --> 00:11:54,580 Stærð var einn af the ágætur sjálfur, á kosti ef þú haldið nokkrar breytu kring. 268 00:11:54,580 --> 00:11:57,830 svo stærð bara þarf að fara aftur til breytu. 269 00:11:57,830 --> 00:11:59,090 Og svo var afferma. 270 00:11:59,090 --> 00:12:02,830 >> Þannig að það voru þessir fjórir aðgerðir í Heimadæmi 5 271 00:12:02,830 --> 00:12:06,770 að þú þarf til að innleiða með sumir gögn uppbygging eða mannvirki. 272 00:12:06,770 --> 00:12:10,170 Þannig að ég lofaði að í PHP, getum við lýsa 273 00:12:10,170 --> 00:12:14,490 tæti borð, til dæmis, allt sem auðveldara. 274 00:12:14,490 --> 00:12:17,377 Í staðreynd, ef ég vil kjötkássa borð, Ég ætla bara að fara að fara svona 275 00:12:17,377 --> 00:12:18,460 og það er kjötkássa borð mitt. 276 00:12:18,460 --> 00:12:21,555 Og það er punkturinn, Svekkjandi, að við horfið á síðasta tíma. 277 00:12:21,555 --> 00:12:23,930 Og þú veist hvað, ef ég vildi breytu fyrir stærð, vel, 278 00:12:23,930 --> 00:12:25,867 þetta er ekki allt sem frábrugðin C, 279 00:12:25,867 --> 00:12:27,450 en ég ætla að fara á undan og gera það. 280 00:12:27,450 --> 00:12:28,630 Fyrirvara og gögn tegund. 281 00:12:28,630 --> 00:12:31,180 Og ég ætla að fara aftur seinna og raunverulega bæta nokkrum athugasemdum hér. 282 00:12:31,180 --> 00:12:32,480 En hvað um hleðslu? 283 00:12:32,480 --> 00:12:35,780 >> Ef dollaramerki orðabók er nafn af skrá minn 284 00:12:35,780 --> 00:12:39,600 og ég vil reyndar að hlaða orð í þessari töflu núna, 285 00:12:39,600 --> 00:12:42,360 Ég get í raun gert eitthvað frekar einfalt. 286 00:12:42,360 --> 00:12:44,880 One-- og þetta er minorly annoying-- í PHP, 287 00:12:44,880 --> 00:12:47,710 þú þarft að tilgreina inni falls ef þú 288 00:12:47,710 --> 00:12:51,060 vilt fá aðgang sumir heimsvísu breyta sem er skilgreind utan. 289 00:12:51,060 --> 00:12:53,530 >> En það er ekki sérstaklega áhugavert núna. 290 00:12:53,530 --> 00:12:57,920 Hvað er meira áhugavert er þetta fyrir hvern reisa sem ég nefndi síðast. 291 00:12:57,920 --> 00:13:01,880 Og það kemur í ljós að PHP hefur fall kallað skrá tilgangur í lífinu 292 00:13:01,880 --> 00:13:05,550 er að opna skrána og lesa í allar línur í fylkinu 293 00:13:05,550 --> 00:13:06,840 og gefa þá til baka. 294 00:13:06,840 --> 00:13:12,170 >> Hver er að segja að ég get gert orðabók svo að nú í raun þegar ég kalla skrá, 295 00:13:12,170 --> 00:13:15,472 þetta er að fara að skila mér aftur fylki af orðum úr skrá. 296 00:13:15,472 --> 00:13:16,430 Það er ekki allt sem gott. 297 00:13:16,430 --> 00:13:20,130 Það er enn að fara að vera línu orða, eitthvað línulegt. 298 00:13:20,130 --> 00:13:23,880 En ég get farið á undan og kunnugt yfir hvert af þessum orðum með því að nota 299 00:13:23,880 --> 00:13:25,710 að setningafræði við sáum stuttlega síðast. 300 00:13:25,710 --> 00:13:27,940 Og þú munt sjá það meira í komandi PSET. 301 00:13:27,940 --> 00:13:32,070 >> En nú hef ég lykkja iterating yfir hvert orð í orðabókinni. 302 00:13:32,070 --> 00:13:36,100 Og á hverjum endurtekning, muna ég hringja í núverandi orð "orð." 303 00:13:36,100 --> 00:13:39,790 Og allt það er að fara að taka til setja orð í orðabókina er 304 00:13:39,790 --> 00:13:43,530 fara að vera orðið giska "true." 305 00:13:43,530 --> 00:13:44,740 Það er innskot virka minn. 306 00:13:44,740 --> 00:13:46,661 Það er álag virka minn fyrir orðaforða mínum. 307 00:13:46,661 --> 00:13:49,410 Nú er það hluti af a svindl því, þú veist hvað, það er í raun 308 00:13:49,410 --> 00:13:52,920 Sviga n er í lok orða að ég ætti líklega að losna við, 309 00:13:52,920 --> 00:13:56,380 en það er ekki vandamál vegna þess að PHP hefur fall kallast höggva sem bókstaflega 310 00:13:56,380 --> 00:13:58,480 chops burt einn staf aftast. 311 00:13:58,480 --> 00:13:59,400 Svo ekkert vandamál þar. 312 00:13:59,400 --> 00:14:02,199 Við höfum farið á undan og í raun styttist að við bara þetta. 313 00:14:02,199 --> 00:14:05,240 Og nú ég ætti sennilega að halda utan stærð, þannig að við skulum að minnsta kosti gera this-- 314 00:14:05,240 --> 00:14:05,835 stærð ++. 315 00:14:05,835 --> 00:14:07,339 Ég get gert það eins og áður. 316 00:14:07,339 --> 00:14:10,380 Og þá er þetta er líklega að fara að vinna bara fínt, þannig að það er aftur satt. 317 00:14:10,380 --> 00:14:10,930 Lokið. 318 00:14:10,930 --> 00:14:11,797 PSET 5. 319 00:14:11,797 --> 00:14:13,545 >> [Hlátur] 320 00:14:13,545 --> 00:14:14,420 >> DAVID J. MALAN: OK. 321 00:14:14,420 --> 00:14:16,628 Við erum að fara að gera það aftur með næsta PSET líka. 322 00:14:16,628 --> 00:14:18,730 Svo hvað um stærð? 323 00:14:18,730 --> 00:14:22,080 Jæja, þetta vonandi er um eins og þú vildi búast við síðasta sinn, 324 00:14:22,080 --> 00:14:24,460 þó svo að ég verð að gera þetta heimskur Global hlutur. 325 00:14:24,460 --> 00:14:26,610 Það er bara artifact úr Hönnun tungumálsins. 326 00:14:26,610 --> 00:14:28,450 >> En stöðva er svolítið meira áhugavert. 327 00:14:28,450 --> 00:14:31,420 Svo ef ég fór í dollara undirrita orð, ég fyrst 328 00:14:31,420 --> 00:14:34,060 vilja hafa aðgang að að alþjóðlegum breytu borð. 329 00:14:34,060 --> 00:14:36,700 Og nú ef ég vil athuga hvort orð er þar, 330 00:14:36,700 --> 00:14:44,350 Ég get einfaldlega sagt ef það er satt að eftirfarandi er stillt í töflunni, 331 00:14:44,350 --> 00:14:49,957 þá fara á undan og aftur satt; annað, skila falskur. 332 00:14:49,957 --> 00:14:51,180 Lokið. 333 00:14:51,180 --> 00:14:52,440 Hinn helmingur PSET 5. 334 00:14:52,440 --> 00:14:54,540 >> Allt í lagi, svo aftur, ég er skera nokkrar horn. 335 00:14:54,540 --> 00:14:56,831 Í sanngirni, ætti ég líklega eyða nokkrum fleiri sekúndur 336 00:14:56,831 --> 00:14:58,300 á þessari framkvæmd. 337 00:14:58,300 --> 00:15:01,860 Og ég sennilega ætti ekki spotta alla klukkustundir þú setja á PSET svo mikið. 338 00:15:01,860 --> 00:15:04,045 Svo er strtolower fall. 339 00:15:04,045 --> 00:15:06,670 Eitthvað svipað existentialist í C, að minnsta kosti fyrir stafi, 340 00:15:06,670 --> 00:15:08,560 en PHP er got a heild band útgáfa. 341 00:15:08,560 --> 00:15:11,226 >> Það er að fara að þvinga allt til lágstafir, sem sumir ykkar 342 00:15:11,226 --> 00:15:14,944 gæti hafa gert til að canonicalize hvað þú varst að setja í orðabók þinni. 343 00:15:14,944 --> 00:15:16,360 Og nú er hægt að gera þetta í C líka. 344 00:15:16,360 --> 00:15:17,780 Þetta hefur ekkert að gera með PHP. 345 00:15:17,780 --> 00:15:20,260 >> En einhvern tíma á þig Boole ástand, 346 00:15:20,260 --> 00:15:22,680 eins og eitthvað á línu 10 Þar sem er aðeins 347 00:15:22,680 --> 00:15:27,145 fara að meta til satt eða rangar, og þitt ef annað greinilega 348 00:15:27,145 --> 00:15:33,620 er aftur satt eða ósatt, ég gat einfaldlega virkilega gera þetta sexier 349 00:15:33,620 --> 00:15:38,360 og bara gera eitthvað eins og this. 350 00:15:38,360 --> 00:15:40,500 Svo að það er stöðva virka minn. 351 00:15:40,500 --> 00:15:42,560 Einmitt, ef Boolean skilar satt eða ósatt, 352 00:15:42,560 --> 00:15:44,630 skulum bara skila strax. 353 00:15:44,630 --> 00:15:47,340 >> Og það er nokkur önnur klip Ég gæti gert hér og þar. 354 00:15:47,340 --> 00:15:51,380 Load-- afferma, við the vegur, það er gert. 355 00:15:51,380 --> 00:15:52,850 Ekkert að gera þar. 356 00:15:52,850 --> 00:15:55,840 Þar sem allir minni í PHP og mörgum öðrum tungumálum 357 00:15:55,840 --> 00:15:57,570 er í raun stjórnað fyrir þig. 358 00:15:57,570 --> 00:16:00,330 Svo en í C, eins og þú hefur lært harmkvælum, 359 00:16:00,330 --> 00:16:04,700 eitthvað sem þú malloc eða calloc eða realloc þarftu að losa þig. 360 00:16:04,700 --> 00:16:08,770 Nokkuð sem þú fopen, þú þarft að fclose, svo sem auðlindir eru að lokum leystur 361 00:16:08,770 --> 00:16:11,690 og verkfæri eins Valgrind ekki taka eftir og ekki kvarta ekki, 362 00:16:11,690 --> 00:16:13,570 sem er gott að keyra á þeim. 363 00:16:13,570 --> 00:16:16,190 >> En örugglega, það verður vera einhvers veiða, ekki satt? 364 00:16:16,190 --> 00:16:19,400 Annars, við konar sóun a heild búnt af vikur. 365 00:16:19,400 --> 00:16:23,270 Þannig að það er allir tala um ástæður hvers vegna við tökum konar þessari braut, 366 00:16:23,270 --> 00:16:24,440 en það er málamiðlun. 367 00:16:24,440 --> 00:16:25,820 Einmitt, þetta hefur verið þema. 368 00:16:25,820 --> 00:16:29,690 >> Svo hvað gæti málamiðlun hér flytja, úr C í PHP? 369 00:16:29,690 --> 00:16:33,250 Líður eins og allt vinna svo langt annað en smá ljótleikanum hér eða þar. 370 00:16:33,250 --> 00:16:34,040 Já. 371 00:16:34,040 --> 00:16:34,700 Hvað er það? 372 00:16:34,700 --> 00:16:36,064 >> Nemandi: [inaudible] minni. 373 00:16:36,064 --> 00:16:36,980 DAVID J. MALAN: Speed. 374 00:16:36,980 --> 00:16:37,479 OK. 375 00:16:37,479 --> 00:16:40,720 Jæja, hraði minn var ansi hratt. 376 00:16:40,720 --> 00:16:42,020 Hægri? 377 00:16:42,020 --> 00:16:44,320 En hraði framkvæmdar áætlunarinnar? 378 00:16:44,320 --> 00:16:45,580 OK, svo er það sanngjarnt lið. 379 00:16:45,580 --> 00:16:50,930 >> Svo eins og það myndi gerast, ég fyrirfram cued upp bæði mitt reyna lausn, einn 380 00:16:50,930 --> 00:16:53,510 Ég hafði á stóru borð var prófa-undirstaða lausn, 381 00:16:53,510 --> 00:16:55,510 og ég hef það í þessari möppu hér. 382 00:16:55,510 --> 00:16:58,510 Svo ég í smá stund, ég get farið á undan og keyra þetta á King James Biblíunni, 383 00:16:58,510 --> 00:16:59,657 hitting á Enter. 384 00:16:59,657 --> 00:17:01,990 Og þetta er vonandi rétt framkvæmd í lokin, 385 00:17:01,990 --> 00:17:05,109 gefur mér tíma samtals af 0.38 sekúndur fyrir að 386 00:17:05,109 --> 00:17:07,270 eitt nokkuð handahófskennt dæmi. 387 00:17:07,270 --> 00:17:09,270 >> Og ef ég fer nú inn í þetta annað endastöðvar 388 00:17:09,270 --> 00:17:14,569 hér þar sem ég opnaði fyrsta gedit, láta mig fara inn code-- dag sem, aftur, 389 00:17:14,569 --> 00:17:19,650 er í þessari möppu here-- og láta mig fara á undan og keyra Speller. 390 00:17:19,650 --> 00:17:23,470 Svo bara að vera skýr, þetta er PHP útgáfa. 391 00:17:23,470 --> 00:17:25,170 Ég ætla bara að sýna efst á það hér. 392 00:17:25,170 --> 00:17:32,020 >> Svo ef ég Speller af Tilde CS50 PSET 5 textar, King James, inn í. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 Það er samt hraðar en að skrifa það í C, en alls skipti 395 00:17:43,050 --> 00:17:47,650 er tilkynning, 0,93, en minn C-undirstaða framkvæmd var 0,38. 396 00:17:47,650 --> 00:17:49,110 Svo það er ekki léttvæg munur. 397 00:17:49,110 --> 00:17:51,100 >> Og þetta er bara á einni skrá. 398 00:17:51,100 --> 00:17:53,480 Ef þú varst að keyra tvö forrit á móti stóru borð 399 00:17:53,480 --> 00:17:56,510 og hafa a heild búnt af aðföngum prófað, þetta myndi örugglega bæta upp. 400 00:17:56,510 --> 00:18:00,310 Og ef við hefðum jafnvel stærri gagnagrunna, þetta líka, myndi bæta upp allt meira. 401 00:18:00,310 --> 00:18:04,820 Svo já, að borga sumir verð af hraða er örugglega raunin. 402 00:18:04,820 --> 00:18:05,470 Hvað annað? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Já? 405 00:18:08,860 --> 00:18:10,340 >> Nemandi: Magn RAM notkun. 406 00:18:10,340 --> 00:18:11,756 >> DAVID J. MALAN: Magn RAM notkun. 407 00:18:11,756 --> 00:18:15,380 Svo ég vissi ekki að gefa eina sekúndu hélt þegar skrifa þetta PHP 408 00:18:15,380 --> 00:18:17,300 útgáfa um hversu mikið minni ég var að nota. 409 00:18:17,300 --> 00:18:22,080 Ég er alveg frestun sem að PHP sjálft og hver skrifaði þessi forrit. 410 00:18:22,080 --> 00:18:24,500 Og það gæti verið í lagi, En ef ég reyndar mjög 411 00:18:24,500 --> 00:18:28,420 annt um að kreista eins mikið árangur út af áætlun mína eða út af vefsíðunni minni 412 00:18:28,420 --> 00:18:31,150 eða út af hvað tól Ég er að byggja, kannski 413 00:18:31,150 --> 00:18:33,310 PHP, örugglega, er ekki rétt tungumál. 414 00:18:33,310 --> 00:18:36,330 >> Og í raun, það er ástæða fyrir dæmi, margir vefur servers-- 415 00:18:36,330 --> 00:18:38,980 raunveruleg forrit sem þjóna upp vefur content-- 416 00:18:38,980 --> 00:18:41,810 eru ekki skrifuð í PHP eða Python eða Ruby. 417 00:18:41,810 --> 00:18:44,630 Þau eru skrifuð, eins þú munt nú gera með PSEt 6, 418 00:18:44,630 --> 00:18:48,120 í C þannig að þú getur kreista Sérhver hluti af frammistöðu út af því 419 00:18:48,120 --> 00:18:50,780 og raunverulega æfa fínn-korn stjórn á hvað er 420 00:18:50,780 --> 00:18:52,980 fara á undir hlutanum hetta og ekki bara taka það 421 00:18:52,980 --> 00:18:54,890 sjálfsögðum hlut sumir hærri stigi gögn uppbygging. 422 00:18:54,890 --> 00:18:58,071 >> Íhuga, eftir allt saman, hver í PHP framkvæmda 423 00:18:58,071 --> 00:19:00,070 þessi hugmynd um kjötkássa table-- það er í raun meira 424 00:19:00,070 --> 00:19:04,260 almennilega kallað tengin array-- Er hann eða hún hefur einhverjar hugmynd hvers konar 425 00:19:04,260 --> 00:19:07,090 af aðföngum sem þú ert að fara til vera setja í uppbyggingu? 426 00:19:07,090 --> 00:19:08,260 Svo augljóslega ekki, ekki satt? 427 00:19:08,260 --> 00:19:10,340 Það er almenn tól í tól sem er 428 00:19:10,340 --> 00:19:13,430 tilskildu að einhver sem vill að nota það, og svo er víst að það 429 00:19:13,430 --> 00:19:17,680 Ekki er hægt að hagræða á endanum fyrir nákvæmlega hvað þú vilt gera. 430 00:19:17,680 --> 00:19:21,180 >> Svo gæti verslun-offs-- framkvæmdatími mismunandi, árangur getur verið mismunandi, 431 00:19:21,180 --> 00:19:23,120 flókið eða minni notkun getur verið mismunandi. 432 00:19:23,120 --> 00:19:24,820 Og svo það sem þú munt finna æ er að það er 433 00:19:24,820 --> 00:19:26,570 fara að vera öðruvísi verkfæri fyrir viðskiptum. 434 00:19:26,570 --> 00:19:31,160 Og í raun og grætt meirihluta lokaverkefni fólks í þessum flokki, 435 00:19:31,160 --> 00:19:34,360 trúið því eða ekki, C er ekki að fara vænlegur tungumál að nota. 436 00:19:34,360 --> 00:19:37,880 >> Og í raun einn af the Takeaways lokum fyrir hvaða flokki svona 437 00:19:37,880 --> 00:19:40,510 er að fá þig til að hugsa um, vel, hvað ættir þú að draga burt 438 00:19:40,510 --> 00:19:42,710 Hillan þegar þú vilt að leysa nokkur vandamál. 439 00:19:42,710 --> 00:19:46,720 Og reyndar, munum við fara yfir þessa brú jafnvel meira eins og við lítum á fleiri tungumálum 440 00:19:46,720 --> 00:19:47,920 jafnvel utan í dag. 441 00:19:47,920 --> 00:19:50,530 >> Svo skulum umskipti nú kannski fleiri kunnugleg samhengi 442 00:19:50,530 --> 00:19:52,480 fyrir að nota tungumál eins og PHP. 443 00:19:52,480 --> 00:19:56,720 Það er nokkuð algengt að nota á stjórn lína, skrifa forskriftir 444 00:19:56,720 --> 00:19:59,050 eins og ég gerði, en það er miklu, miklu algengari. 445 00:19:59,050 --> 00:20:02,350 Og það var ætlað að vera notað í formi skrár sem venjulega enda 446 00:20:02,350 --> 00:20:05,060 í .php-- en það er ekki prerequisite-- 447 00:20:05,060 --> 00:20:07,990 að sjálfir búa til efni á vefnum. 448 00:20:07,990 --> 00:20:11,310 >> Svo láta mig fara á undan og opna nokkrar dæmi ég tilbúinn fyrirfram. 449 00:20:11,310 --> 00:20:15,100 Og þetta eru í raun eins konar satt Sögur af því að einn af the fyrstur hlutur 450 00:20:15,100 --> 00:20:18,200 Ég gerði alltaf sjálfur eftir að klára CS50 og kannski, ég held, 451 00:20:18,200 --> 00:20:21,350 CS51 árum er minn herbergisfélagi og ég var að hjálpa 452 00:20:21,350 --> 00:20:24,320 að keyra freshman intramural íþróttir program, sem á þeim tíma, 453 00:20:24,320 --> 00:20:28,610 hafði FRESHMAN skráir fyrir ýmsar íþróttir með því að fylla út blað, 454 00:20:28,610 --> 00:20:31,800 eins og það var kallað, ganga yfir garðinn til Wigglesworth, 455 00:20:31,800 --> 00:20:34,030 og sleppa honum í sumum Proctor er dyr falla. 456 00:20:34,030 --> 00:20:37,210 Og þá er hann eða hún myndi fara í gegnum þá og þá í raun sendu okkur tölvupóst handvirkt 457 00:20:37,210 --> 00:20:39,140 að við vorum skráð fyrir einhverjum íþróttum. 458 00:20:39,140 --> 00:20:41,166 >> Svo greinilega, tækifæri til úrbóta. 459 00:20:41,166 --> 00:20:44,040 Þessa dagana, þú might snúa bara Google Forms, en aftur í dag, 460 00:20:44,040 --> 00:20:46,914 við þurftum að raunverulega ná for-- þetta var ekki einu sinni það langan ago-- ná 461 00:20:46,914 --> 00:20:49,410 fyrir forritun tungumál sem var ekki PHP. 462 00:20:49,410 --> 00:20:51,200 Á þeim tíma, það var eitthvað sem kallast Perl, 463 00:20:51,200 --> 00:20:52,890 sem hefur farið út af Vogue síðan. 464 00:20:52,890 --> 00:20:54,160 En hugmyndin er sú sama. 465 00:20:54,160 --> 00:20:58,940 >> Og ég sat fremst niður að reyna að höfn fer Perl útgáfur á PHP, 466 00:20:58,940 --> 00:21:03,710 en í fullri fyrirvari, ekki gefa allir hugsun að fagurfræði bara ennþá. 467 00:21:03,710 --> 00:21:04,960 Svo er hér a vefur blaðsíða. 468 00:21:04,960 --> 00:21:05,670 Þetta er a skrá. 469 00:21:05,670 --> 00:21:09,470 Ef ég stækka, virðist þess kallast froshim0.php 470 00:21:09,470 --> 00:21:12,060 bara vegna þess að það er fyrst okkar dæmi í þessari röð. 471 00:21:12,060 --> 00:21:15,970 Og eftir að það hefur það sem virðist að vera mjög ljótur HTML formi, 472 00:21:15,970 --> 00:21:18,680 en mynd er áhugavert því það gerir 473 00:21:18,680 --> 00:21:21,910 mig til að veita notandi inntak til the flettitæki. 474 00:21:21,910 --> 00:21:27,730 >> Nú síðast þegar við höfðum mynd, til sem gerði við leggja fyrirspurn breytu okkar, 475 00:21:27,730 --> 00:21:30,450 biðröð breytu eins og það var kallað? 476 00:21:30,450 --> 00:21:31,330 Svo til Google, ekki satt? 477 00:21:31,330 --> 00:21:34,090 Við punted algjörlega á þeirri hugmynd að gera neitt með þeim inntak. 478 00:21:34,090 --> 00:21:36,160 >> En í dag, byrjum við að framleiða framleiðsla. 479 00:21:36,160 --> 00:21:39,420 Og hegðun sem ég ætla að sjá hér í upphafi er nokkuð léttvæg. 480 00:21:39,420 --> 00:21:42,980 David, ég athuga burt kyn hér, segja Matthews hér. 481 00:21:42,980 --> 00:21:43,800 Ég mun ekki vera fyrirliði. 482 00:21:43,800 --> 00:21:45,410 Ég ætla að smella Register. 483 00:21:45,410 --> 00:21:50,720 Athugið að slóðin hefur breytt að skrá-0.php, 484 00:21:50,720 --> 00:21:52,310 og þá er það þetta ljót texti hér. 485 00:21:52,310 --> 00:21:54,460 Ég gaf ekki hugsað til skiptir form þetta. 486 00:21:54,460 --> 00:21:59,900 >> En hvað er áhugavert er að þrír gildi voru greinilega samþykkt í. 487 00:21:59,900 --> 00:22:02,960 Þetta er tegund PHP er af jafngildir printf-- 488 00:22:02,960 --> 00:22:06,330 við munum sjá hvað það er í raun kallað í bit-- sem bara prentar út 489 00:22:06,330 --> 00:22:08,300 hvað þú stóðst í hana. 490 00:22:08,300 --> 00:22:11,414 Svo bendir þetta að því formi höfðu að minnsta kosti þremur sviðum við það, 491 00:22:11,414 --> 00:22:12,580 og þú sást mig slá þá inn. 492 00:22:12,580 --> 00:22:15,739 Einn var nafn mitt, einn var kyn, einn var svefnlofti. 493 00:22:15,739 --> 00:22:18,780 Og Skipstjórinn tók ekki einu sinni fá sendar til miðlara vegna þess að ég vissi ekki að athuga það. 494 00:22:18,780 --> 00:22:22,150 >> Svo er þetta að segja greinilega, þegar þú sendir það á vefnum, 495 00:22:22,150 --> 00:22:26,830 Ekki eini hjartarskinn the URL stundum change-- stundum gerir það ekki. 496 00:22:26,830 --> 00:22:30,330 Í staðreynd, the skrá nafn breytt, En hvað er fjarverandi frá vefslóð 497 00:22:30,330 --> 00:22:32,861 að við gerðum sjá síðasta tíma með Google. 498 00:22:32,861 --> 00:22:33,360 Já? 499 00:22:33,360 --> 00:22:34,380 >> Nemandi: Nei fyrirspurn band 500 00:22:34,380 --> 00:22:35,220 >> DAVID J. MALAN: Það er engin fyrirspurn band. 501 00:22:35,220 --> 00:22:37,270 Það er engin spurningarmerki eitthvað. 502 00:22:37,270 --> 00:22:40,050 Það er engin spurningarmerki q jafnt ketti, eins og við gerðum síðast. 503 00:22:40,050 --> 00:22:42,170 Og það er vissulega ekki nafn spurningarmerki jafngildir 504 00:22:42,170 --> 00:22:46,310 David eða dorm jafngildir Matthews, Svo hvar er að allir að fara? 505 00:22:46,310 --> 00:22:51,290 >> Jæja, láttu mig fara aftur til gedit hér og opna fyrsta af þessum skrám 506 00:22:51,290 --> 00:22:57,020 í vhost mínu, heimamaður gestgjafi, opinber skrá hér og fara inn froshim0. 507 00:22:57,020 --> 00:23:02,060 Svo kemur í ljós að nánast alla þessa síðu er bara HTML. 508 00:23:02,060 --> 00:23:05,410 Og þetta gæti verið framandi fyrir þig, en það fljótlega verður meira svo við PSET 6 509 00:23:05,410 --> 00:23:07,370 og PSET 7 og PSET 8. 510 00:23:07,370 --> 00:23:09,160 En þetta er bara HTML síðu. 511 00:23:09,160 --> 00:23:12,400 >> Og áhugavert efni virðist vera hérna. 512 00:23:12,400 --> 00:23:16,290 Eyðublað tag sem aðgerð eiginleiki hefur gildi málfar 0. 513 00:23:16,290 --> 00:23:18,890 Þess vegna þegar ég skila þetta, fer það að þessi skrá. 514 00:23:18,890 --> 00:23:20,620 En aðferð er öðruvísi today-- staða. 515 00:23:20,620 --> 00:23:23,120 Svo kemur í ljós að það er að minnsta kosti tvær aðferðir á vefnum notuð 516 00:23:23,120 --> 00:23:24,911 að senda upplýsingar úr vafranum til miðlara. 517 00:23:24,911 --> 00:23:25,980 Fá setur það í vefslóðinni. 518 00:23:25,980 --> 00:23:27,950 Post setur það annars staðar. 519 00:23:27,950 --> 00:23:30,570 Og hvenær og hvers vegna þú might raun vilja a website 520 00:23:30,570 --> 00:23:34,110 að nota færslu þá í stað af fá, bara innsæi? 521 00:23:34,110 --> 00:23:37,080 Allir website. 522 00:23:37,080 --> 00:23:42,010 Hvers konar gögn skulu liðin bara með ályktun nú gegnum staða öfugt 523 00:23:42,010 --> 00:23:45,184 að fá, ef við höfum séð tvær mismunandi? 524 00:23:45,184 --> 00:23:46,350 Nemandi: [inaudible] örugg. 525 00:23:46,350 --> 00:23:47,790 DAVID J. MALAN: Ef þú vilt eitthvað til að vera örugg. 526 00:23:47,790 --> 00:23:50,360 Svo þú gætir slegið inn lykilorð í viðbót, greiðslukort 527 00:23:50,360 --> 00:23:53,030 í viðbót myndi konar þessum suboptimal 528 00:23:53,030 --> 00:23:56,220 Ef vafrinn setja þessi gildi inni á vefslóðinni. 529 00:23:56,220 --> 00:23:57,680 Hvers vegna? 530 00:23:57,680 --> 00:24:00,059 Þú sérð það, sem ekki virðast vera svo stór samningur, 531 00:24:00,059 --> 00:24:03,350 en líkurnar eru þér nokkuð oft ganga í burtu frá tölvunni eða nota tölvuna þína 532 00:24:03,350 --> 00:24:05,310 Labs, og svo einhver annar eða jafnvel herbergisfélaga 533 00:24:05,310 --> 00:24:08,220 gæti auðveldlega gengið upp og sjá að persónuupplýsingar. 534 00:24:08,220 --> 00:24:10,220 Þegar þú sendir tölvupóst í gegnum vefinn, þú sennilega 535 00:24:10,220 --> 00:24:12,350 vil ekki að gögn endi upp í slóð eins og heilbrigður. 536 00:24:12,350 --> 00:24:15,266 Og svo er einhver tala af ástæða hvers vegna við gætum vilja til að setja það hér. 537 00:24:15,266 --> 00:24:18,610 Og photos-- rétt, ég get ekki einu sinni alveg ímynda sér hvernig þú vildi taka mynd, 538 00:24:18,610 --> 00:24:21,480 eins og JPEG, og setja það inn í URL. 539 00:24:21,480 --> 00:24:22,330 Þú gætir gert það. 540 00:24:22,330 --> 00:24:25,840 There er leiðir kóðun það, en það er bara ekki einfalt eins og þessi. 541 00:24:25,840 --> 00:24:29,030 >> Svo skrá 0 er í raun mjög underwhelming. 542 00:24:29,030 --> 00:24:31,610 Allt það segir bókstaflega er þetta. 543 00:24:31,610 --> 00:24:35,910 Það prentar út inni sumir HTML tags eftirfarandi. 544 00:24:35,910 --> 00:24:38,640 Ég hef fengið PHP tag hér orpið inni fyrirfram merkinu. 545 00:24:38,640 --> 00:24:42,300 "Pre" þýðir bara fyrirfram sniðinn texta, mónó-dreift, eins og ritvél. 546 00:24:42,300 --> 00:24:44,836 >> Printr er prentað endurkvæma virka. 547 00:24:44,836 --> 00:24:46,710 Og þá er það þetta áhugaverður hlutur hér. 548 00:24:46,710 --> 00:24:48,835 Og við munum koma aftur til þetta því það er aðra, 549 00:24:48,835 --> 00:24:51,140 en dollaramerki undirstrik staða virðist vera 550 00:24:51,140 --> 00:24:56,110 breytilegt í PHP sem nokkuð þú sendir úr vafranum til miðlara 551 00:24:56,110 --> 00:24:58,040 fær geymd fyrir þig. 552 00:24:58,040 --> 00:25:00,930 Og við munum sjá hvernig á að fá á að upplýsingar áður en langur. 553 00:25:00,930 --> 00:25:04,000 >> En fyrst skulum við fara aftur til örlítið öðruvísi dæmi. 554 00:25:04,000 --> 00:25:09,050 Að fara inn register-- eða frekar, froshims1.php, 555 00:25:09,050 --> 00:25:10,470 sem lítur svolítið öðruvísi. 556 00:25:10,470 --> 00:25:12,670 Ég tók aðeins meira átak með formatting, 557 00:25:12,670 --> 00:25:14,370 jafnvel þó að það er enn nokkuð ljót. 558 00:25:14,370 --> 00:25:16,990 En ég ætla að fara á undan og slá inn "Davíð" núna. 559 00:25:16,990 --> 00:25:17,850 Male. 560 00:25:17,850 --> 00:25:19,360 Við munum athuga "Captain" í þetta skiptið. 561 00:25:19,360 --> 00:25:20,660 Við munum gera Matthews. 562 00:25:20,660 --> 00:25:22,430 Og skrá sig. 563 00:25:22,430 --> 00:25:24,110 >> Og að þessu sinni segir, HM, eiginlega ekki. 564 00:25:24,110 --> 00:25:26,180 Allt í lagi, svo hvað er að skrá 1? 565 00:25:26,180 --> 00:25:30,509 Leyfðu mér að fara í opna skrá 1. and-- HM. 566 00:25:30,509 --> 00:25:32,300 Allt í lagi, þannig að þetta er áhugavert, og þetta 567 00:25:32,300 --> 00:25:34,880 er a stepping steinn nú átt meira áhugavert forrit. 568 00:25:34,880 --> 00:25:38,970 >> Takið efst á þessari skrá er a PHP tag auk nokkrar athugasemdir. 569 00:25:38,970 --> 00:25:42,590 Og þetta eru, fyrir nú, truflun þannig að við skulum bara fá losa af þeim athugasemdum 570 00:25:42,590 --> 00:25:47,070 bara eins og þeir eru í C. Og ég kröfu með þessari klumpur af kóða með athugasemd 571 00:25:47,070 --> 00:25:49,280 að þetta númer er staðfesta uppgjöf. 572 00:25:49,280 --> 00:25:51,690 >> Jæja, það kemur í ljós að breytur eins dollaramerki 573 00:25:51,690 --> 00:25:53,739 undirstrik færslu eru kallast super Víðværur. 574 00:25:53,739 --> 00:25:55,530 Þeir eru eins og þessir sérstakar Alþjóðlegar breytur 575 00:25:55,530 --> 00:25:58,840 sem eru bara Omni-nú boði innan forritinu. 576 00:25:58,840 --> 00:26:03,870 Og þú getur notað hornklofi sætiskerfi vísitölu í þeim ekki að nota tölur 577 00:26:03,870 --> 00:26:07,460 eins og 0, 1, 2, 3, en raunverulegt orð. 578 00:26:07,460 --> 00:26:12,100 >> Svo er hægt að hugsa um dollaramerki undirstrik færslu sem einhverskonar kjötkássa borð 579 00:26:12,100 --> 00:26:15,920 að þú gætir standast lykill í, Lookup orð í-milli hornklofa, 580 00:26:15,920 --> 00:26:19,370 og það er að fara að gefa þér aftur gildi sem notandinn í raun veitt. 581 00:26:19,370 --> 00:26:21,210 PHP hefur fall kallast tæmdu bara 582 00:26:21,210 --> 00:26:23,720 segir já eða nei, þetta breyta er tóm eða ekki. 583 00:26:23,720 --> 00:26:27,250 Við höfum þessar tvöfalda bars, sem bara þýðir eða, eins og í C. 584 00:26:27,250 --> 00:26:31,740 >> Svo í raun, þessi lína 4 er bara segja ef notandinn ekki gefa nafn 585 00:26:31,740 --> 00:26:36,540 eða ekki gefa kyn eða gerði ekki gefa dorm, fara á undan og beina honum 586 00:26:36,540 --> 00:26:38,184 eða hana í gegnum þessa línu hér. 587 00:26:38,184 --> 00:26:40,600 Þannig að þetta er svolítið dulinn, en þetta bara þýðir bókstaflega 588 00:26:40,600 --> 00:26:43,330 fara aftur á þessa staðsetningu, svo það punts notanda 589 00:26:43,330 --> 00:26:45,420 aftur til hvar sem hann eða hún kom frá. 590 00:26:45,420 --> 00:26:47,880 En það er lítið inelegant í að ég harður dulmáli það. 591 00:26:47,880 --> 00:26:52,150 >> En hvað ef þetta ef ástand ekki meta að satt? 592 00:26:52,150 --> 00:26:55,790 Hvað ef notandinn gerði gefa mér hans eða nafn hennar og dorm og kyn? 593 00:26:55,790 --> 00:26:58,540 Að ef ástand er ekki fara að meta til satt, 594 00:26:58,540 --> 00:27:00,650 svo ég högg ekki hætta í línu 7. 595 00:27:00,650 --> 00:27:01,680 Svo gerist það? 596 00:27:01,680 --> 00:27:03,880 Og þetta er það sem er áhugavert um PHP. 597 00:27:03,880 --> 00:27:07,470 >> Þú getur sleppt inn og út PHP háttur, svo að segja. 598 00:27:07,470 --> 00:27:10,985 Ef þú vilja sumir kóða til að framkvæma, þú getur opnað og loka PHP tag 599 00:27:10,985 --> 00:27:13,010 og setja kóðann þar eins og ég hef gert hér. 600 00:27:13,010 --> 00:27:16,810 Um leið og þú lokar PHP tag, þjóninum 601 00:27:16,810 --> 00:27:19,407 er bara að fara að spýta út hvað sem þú setur þarna. 602 00:27:19,407 --> 00:27:21,740 Og reyndar, þetta var hluti af upprunalega hönnun á PHP, 603 00:27:21,740 --> 00:27:25,280 fyrir betri verri, var þetta commingling af kóða og Markup 604 00:27:25,280 --> 00:27:25,920 tungumál. 605 00:27:25,920 --> 00:27:28,670 Og við munum sjá að þetta mjög fljótt devolves í óreiðu. 606 00:27:28,670 --> 00:27:31,280 Og svo við munum gera betur en þetta að lokum, en bara 607 00:27:31,280 --> 00:27:35,620 taka vellíðan sem ég er raun hægt að framkvæma nokkur rökfræði. 608 00:27:35,620 --> 00:27:37,440 >> En samt svolítið underwhelming. 609 00:27:37,440 --> 00:27:41,210 Skulum opna útgáfa tveir Frosh IMS, sem 610 00:27:41,210 --> 00:27:44,270 virðist leggur til register2.php. 611 00:27:44,270 --> 00:27:47,600 Þannig að þetta skrá er í raun að fara að líta næstum því sama. 612 00:27:47,600 --> 00:27:50,780 Ég ætla að fara til Frosh Spjallboð 2. 613 00:27:50,780 --> 00:27:53,050 En í Frosh Spjallboð 2, við skulum sjá hvað gerist. 614 00:27:53,050 --> 00:27:58,110 >> David, smelltu á hnappinn, eins það heitir; Matthews, engin fyrirliði. 615 00:27:58,110 --> 00:27:59,230 Register. 616 00:27:59,230 --> 00:28:00,130 Þú ert skráður. 617 00:28:00,130 --> 00:28:00,700 Ekki í raun. 618 00:28:00,700 --> 00:28:02,574 Ó bíddu, við fengum bara sem dæmi, ekki við? 619 00:28:02,574 --> 00:28:04,520 Allt í lagi, standa við. 620 00:28:04,520 --> 00:28:06,602 Við munum gera þrjú. 621 00:28:06,602 --> 00:28:08,560 Augljóslega er eitthvað um að gerast með Gmail. 622 00:28:08,560 --> 00:28:09,600 Við munum komast þangað. 623 00:28:09,600 --> 00:28:11,900 >> Svo Frosh Spjallboð 3 lítur svona út. 624 00:28:11,900 --> 00:28:13,050 Ekkert öðruvísi. 625 00:28:13,050 --> 00:28:19,850 En þegar ég David, karlkyns, Matthews og skrá, þetta þriðja og síðasta útgáfa 626 00:28:19,850 --> 00:28:22,230 kröfur, einfaldlega, þú eru skráð í raun. 627 00:28:22,230 --> 00:28:23,560 Það er tegund af óverulegt. 628 00:28:23,560 --> 00:28:25,600 En ég kröfu með þetta Þriðji og síðasti útgáfa 629 00:28:25,600 --> 00:28:30,610 Ég hef nú endurskapa nákvæmlega hvað minn herbergisfélagi og ég byggði fyrir Frosh Spjallboð 630 00:28:30,610 --> 00:28:31,731 program árum. 631 00:28:31,731 --> 00:28:32,480 Og það var einfalt. 632 00:28:32,480 --> 00:28:34,330 Það var ekki til gagnagrunnur, nei Excel töflureikni. 633 00:28:34,330 --> 00:28:36,450 En meira um vert, það var ekki meira pappír 634 00:28:36,450 --> 00:28:42,520 vegna þess hvað við gerðum við þetta forrit var að í raun email Proctor, sem 635 00:28:42,520 --> 00:28:44,530 var áður fá þetta í gegnum form. 636 00:28:44,530 --> 00:28:48,890 >> Og virðist sem við höfum forritað þetta í þannig að þegar einhver skráir, 637 00:28:48,890 --> 00:28:52,470 Reikningur tölvupóst John Harvard fékk proctor-- eða sjálfur í þessu tilfelli, 638 00:28:52,470 --> 00:28:55,960 John Harvard-- með eftirfarandi text-- "Þessi einstaklingur var að skrá." 639 00:28:55,960 --> 00:29:00,560 Nafn er David, skipstjóri er auður; kyn, karlkyns; og dorm, Matthews. 640 00:29:00,560 --> 00:29:01,560 >> Svo hvað gerðist þar? 641 00:29:01,560 --> 00:29:05,360 Jæja, the skrá sem um ræðir hér er greinilega register3.php. 642 00:29:05,360 --> 00:29:09,080 Og ef ég opna þetta, munt þú sjá bæði kraftur kóða svona 643 00:29:09,080 --> 00:29:12,380 og einnig, hreinskilnislega, að óöryggi á kerfi eins tölvupósti. 644 00:29:12,380 --> 00:29:16,290 Ég hef bara í raun lést vera John Harvard á eftirfarandi hátt. 645 00:29:16,290 --> 00:29:20,920 >> Ég hef opinn PHP tag upp efst, sem bara segir hér kemur smá PHP kóða. 646 00:29:20,920 --> 00:29:23,155 Down hér, reynist það eru bókasöfn í PHP. 647 00:29:23,155 --> 00:29:26,410 Þú bara þarft ekki að fela í header files eins mikið. 648 00:29:26,410 --> 00:29:28,900 Þú færð fleiri með eldhús vaskur, svo að segja. 649 00:29:28,900 --> 00:29:31,820 >> En í þetta sinn í línu 4, ég vilja sérstaka bókasafn kallast 650 00:29:31,820 --> 00:29:36,087 PHP Mailer, sem er eitthvað sem þú getur sett frítt í mörgum kerfum. 651 00:29:36,087 --> 00:29:37,920 Down hér ég ætla að staðfesta uppgjöf bara 652 00:29:37,920 --> 00:29:40,540 því að haka gerði notandi gefa mér nafn, kyn, og dorm. 653 00:29:40,540 --> 00:29:44,130 Og ef svo er, fara fram í tímann og ræst póst. 654 00:29:44,130 --> 00:29:47,020 >> Þú getur hugsað þetta eins og að vera a lína af kóða sem bara úthlutar. 655 00:29:47,020 --> 00:29:48,950 Það er eins og malloc, en það er lítið sexier 656 00:29:48,950 --> 00:29:51,790 í því að þú nefnir ekki bara malloc og sumir almenn númer. 657 00:29:51,790 --> 00:29:55,030 Þú segir gefa mér einn af þessum, gefa mér nýja einn af þessum. 658 00:29:55,030 --> 00:29:57,950 >> Og ef þú hefur forritað í Java eða C ++ eða öðrum tungumálum, 659 00:29:57,950 --> 00:29:59,130 þú gætir hafa séð þetta. 660 00:29:59,130 --> 00:30:01,840 En stutt það, ef ókunnur, þessa línu 661 00:30:01,840 --> 00:30:05,410 setur í dollaramerki pósti sérstakt strúktúr heitir 662 00:30:05,410 --> 00:30:08,731 hlutur sem hefur innbyggður-í Email virkni. 663 00:30:08,731 --> 00:30:10,355 Og í raun, taka eftir og svipað setningafræði. 664 00:30:10,355 --> 00:30:11,900 >> Þetta er ekki a bendi, í sjálfu sér. 665 00:30:11,900 --> 00:30:13,990 PHP notar bara sama setningafræði. 666 00:30:13,990 --> 00:30:17,660 Þessi lína er að segja notkun SMTP-- Simple Mail Transfer 667 00:30:17,660 --> 00:30:20,900 Siðareglur, sem er bara samskiptamáti sem er notaður til að senda póst. 668 00:30:20,900 --> 00:30:24,240 Þetta er að tilgreina notkun SMTP framreiðslumaður Harvard er, sem 669 00:30:24,240 --> 00:30:25,830 er einhvers staðar hér á háskólasvæðinu. 670 00:30:25,830 --> 00:30:28,480 >> Þetta er að segja hvað TCP gáttarnúmer að tala við, 671 00:30:28,480 --> 00:30:31,650 og ég mynstrağur bara út af googling eða með því að spyrja hjálparaborð. 672 00:30:31,650 --> 00:30:34,640 Og þá vegna Harvard notar sum öryggiskerfi á pósti server-- 673 00:30:34,640 --> 00:30:37,060 að minnsta kosti til að dulkóða umferð milli þín og þess, 674 00:30:37,060 --> 00:30:41,380 jafnvel þótt einhver getur sent til it-- Ég ætla að kveikja á TLS siðareglur 675 00:30:41,380 --> 00:30:42,710 fyrir að halda þetta örugg. 676 00:30:42,710 --> 00:30:44,730 >> En þetta er þar sem hlutirnir fá svolítið ógnvekjandi. 677 00:30:44,730 --> 00:30:47,970 Ég get bara geðþótta segja að ég er jharvard, 678 00:30:47,970 --> 00:30:51,930 og ég get bara geðþótta email mig hér. 679 00:30:51,930 --> 00:30:55,650 Og þá get ég tilgreint a háð með þessa línu hér. 680 00:30:55,650 --> 00:30:58,460 >> Og þetta bara lítur ljót, en það er bara fullt af samtenging. 681 00:30:58,460 --> 00:31:04,480 Skrúfjárn út PHP hefur a frábær gagnlegur tákn eins og sumum tungumálum, punktur rekstraraðili, 682 00:31:04,480 --> 00:31:07,340 sem bara bókstaflega concatenates band eftir band eftir band, 683 00:31:07,340 --> 00:31:09,810 og þú þarft ekki að malloc eða mynd út heildar lengd strengsins. 684 00:31:09,810 --> 00:31:10,820 Þú gerir bara það. 685 00:31:10,820 --> 00:31:15,220 Og reyndar, því ég er concatenating í öllum þessum hlutum með þessum punkta, 686 00:31:15,220 --> 00:31:18,330 þess vegna email I send leit eins og það gerði. 687 00:31:18,330 --> 00:31:20,610 >> Og svo loks hér, ég að senda póst. 688 00:31:20,610 --> 00:31:22,580 Þannig að ef þetta er rangt, Ég ætla bara að fara að deyja, 689 00:31:22,580 --> 00:31:25,680 sem er fall sem bara prentar á skjáinn sumir villa skilaboð. 690 00:31:25,680 --> 00:31:29,170 En það er í raun, hringja á senda virka. 691 00:31:29,170 --> 00:31:31,780 Annars, ef allt þetta bregst, það tilvísanir mér aftur hér. 692 00:31:31,780 --> 00:31:34,050 >> Og hvers vegna gerði ég að Ég er skráð í raun? 693 00:31:34,050 --> 00:31:36,110 Jæja, það gerðist hérna. 694 00:31:36,110 --> 00:31:38,170 Svo ég koma þessu upp fyrir a par af ástæða. 695 00:31:38,170 --> 00:31:41,542 >> Einn, þetta er nákvæmlega hvernig ef þú byggir sumir website fyrir lokaverkefni 696 00:31:41,542 --> 00:31:44,000 eða fyrir hinum raunverulega heimi, þetta er hvernig þú sendir email áminningar 697 00:31:44,000 --> 00:31:45,924 til viðskiptavina þinna eða áskrifendur. 698 00:31:45,924 --> 00:31:47,590 This er hvernig þú senda lykilorð áminningar. 699 00:31:47,590 --> 00:31:50,760 This er hvernig þú senda fólk skilaboð að þeir hafa nýtt Facebook 700 00:31:50,760 --> 00:31:52,990 skilaboð í gangi eða eitthvað svoleiðis. 701 00:31:52,990 --> 00:31:55,010 >> En það talar einnig Sú staðreynd að þetta gæti 702 00:31:55,010 --> 00:31:58,160 hafa verið mjög vel frá Davin eða einhver annar. 703 00:31:58,160 --> 00:32:00,567 Og ég segi þetta svona með bros því ég er 704 00:32:00,567 --> 00:32:03,400 alveg viss um hvað er að gerast í gegnum nokkrir af huga þínum á þessum tímapunkti. 705 00:32:03,400 --> 00:32:11,910 En þetta er eitt af þeim gera eins og ég segja, ekki eins og ég konar hluti, 706 00:32:11,910 --> 00:32:14,480 því það er léttvæg til Forge tölvupóst eins og þetta. 707 00:32:14,480 --> 00:32:16,480 En eins og þú gætir hafa séð eða lesa í Crimson, 708 00:32:16,480 --> 00:32:18,271 á síðkastið er það einnig nokkuð léttvæg fyrir fólk 709 00:32:18,271 --> 00:32:20,050 að rekja þau aftur til einhvers uppruna. 710 00:32:20,050 --> 00:32:23,790 Og spyrja mig nokkurn tíma, kannski á CS50 hádeginu, hvernig ég fyrst 711 00:32:23,790 --> 00:32:27,080 kynntist mjög náið nánast á deildina borð mörg ár 712 00:32:27,080 --> 00:32:30,890 síðan þegar ég uppgötvaði hvernig netið virkaði. 713 00:32:30,890 --> 00:32:36,940 Svo í einhverju case-- lítillega eftir útg borð gerði. 714 00:32:36,940 --> 00:32:42,300 >> Svo í öllum tilvikum, það er allt fullt af frábær Víðværur, 715 00:32:42,300 --> 00:32:45,960 eins og þeir eru kallaðir hér, einn sem við saw-- dollaramerki undirstrik færslu. 716 00:32:45,960 --> 00:32:49,530 There er a hliðstæðu kallast fá, sem er þar sem efni frá vefslóð 717 00:32:49,530 --> 00:32:50,690 endar að fara. 718 00:32:50,690 --> 00:32:54,051 Og það er allt fullt af öðrum, too-- fundur og miðlara og kex. 719 00:32:54,051 --> 00:32:55,800 Við munum koma aftur til Cookie einhverjum öðrum tíma, 720 00:32:55,800 --> 00:33:01,340 en fundur er góður af kaldur því rétt now-- allt til now-- 721 00:33:01,340 --> 00:33:06,350 allt sem við höfum gert með a vefur flettitæki er tegund af ríkisfangslaus, svo að segja. 722 00:33:06,350 --> 00:33:10,060 Ég get smellt í kring, aðgangur skrár á þjóninum, eitthvað 723 00:33:10,060 --> 00:33:13,500 gerist á skjánum, en þá lokar tengingu. 724 00:33:13,500 --> 00:33:17,450 The Internet Explorer eða Firefox icon hættir spuna 725 00:33:17,450 --> 00:33:20,340 og þú sérð bara hvað sem vefsíðan inniheldur. 726 00:33:20,340 --> 00:33:23,530 >> Svo HTTP er án ríkisfangs í því þegar það kemur á tengingu, 727 00:33:23,530 --> 00:33:25,050 fær einhver gögn, það er það. 728 00:33:25,050 --> 00:33:29,940 Ekkert meira tengingu ólíkt Skype, ólíkt FaceTime, ólíkt Gchat sem 729 00:33:29,940 --> 00:33:32,180 heldur stöðugu tengingu við miðlarann. 730 00:33:32,180 --> 00:33:34,650 Vefurinn er í grundvallaratriðum ótengdur, þótt við munum 731 00:33:34,650 --> 00:33:36,630 sjá áður langur hvernig getum líkja hluti 732 00:33:36,630 --> 00:33:39,300 eins og Facebook spjall og Gchat, sem viðhalda illusion-- 733 00:33:39,300 --> 00:33:41,680 eða í raun gera viðhalda stöðug tenging með 734 00:33:41,680 --> 00:33:43,270 nútímalegri tækni. 735 00:33:43,270 --> 00:33:49,000 >> En ef ég fer að segja, counter.php, þetta er annað einfalt dæmi, 736 00:33:49,000 --> 00:33:52,700 eins og við munum sjá, að nú telur Ég heimsótti síðuna núll tíma. 737 00:33:52,700 --> 00:33:56,790 En ef ég endurhlaða einfaldlega á síðunni, það veit einhvern veginn var ég hér áður. 738 00:33:56,790 --> 00:33:58,840 Ef ég endurhlaða aftur, það veit ég var hér áður. 739 00:33:58,840 --> 00:34:01,100 Og aftur og aftur og aftur og aftur. 740 00:34:01,100 --> 00:34:03,610 >> Svo er það einhver plús plussing fara á, en tilkynning 741 00:34:03,610 --> 00:34:07,090 litli hlutur spænir alltaf svo stuttlega upp toppinn og þá aftengja, 742 00:34:07,090 --> 00:34:11,179 svo það er ekki eins og ég hef stöðugt tenging við tæki mína. 743 00:34:11,179 --> 00:34:16,929 Jæja, ef ég fer inn í counter.php, taka eftir því hvernig það er einfalt. 744 00:34:16,929 --> 00:34:19,080 Ég kalla fyrst þetta sérstakt aðgerð sem við munum fljótlega 745 00:34:19,080 --> 00:34:21,513 byrja að taka sem sjálfsögðum hlut kallast fundur byrjun. 746 00:34:21,513 --> 00:34:22,179 Hefja fundur. 747 00:34:22,179 --> 00:34:25,095 >> Og fundur héðan er bara fara til vera a fötu, eins og versla 748 00:34:25,095 --> 00:34:28,120 körfu sem þú getur sett gildi og hvers konar traust sem forritari 749 00:34:28,120 --> 00:34:31,590 að þeir eru að fara að vera hér þegar þessi notandi kemur back-- annað 750 00:34:31,590 --> 00:34:35,670 síðar, klukkutíma síðar, jafnvel ári síðar, svo lengi sem hann eða hún er ekki ljóst 751 00:34:35,670 --> 00:34:37,602 kex, eins og við munum að lokum sjá. 752 00:34:37,602 --> 00:34:39,310 Og nú hef ég bara if ástand hér. 753 00:34:39,310 --> 00:34:44,679 Svo ef eftirfarandi lykill, kallast gegn, er sett inni 754 00:34:44,679 --> 00:34:49,210 af þessum ofur global-- þessa kjötkássa borð, ef þú will-- kallast fundur, 755 00:34:49,210 --> 00:34:53,350 þá fara á undan og grípa gildi frá session-- hugsa 756 00:34:53,350 --> 00:34:55,250 um þetta sem versla cart-- og geyma það 757 00:34:55,250 --> 00:34:57,680 í tímabundinni breytu sem heitir gegn. 758 00:34:57,680 --> 00:35:02,240 >> Annars, ef að gildi gegn var ekki sett í svokölluðum innkaupakörfu 759 00:35:02,240 --> 00:35:04,430 bara frumstilla hana 0. 760 00:35:04,430 --> 00:35:09,830 Loksins, hérna, fara og setja aftur í innkaup kerra eða fundi 761 00:35:09,830 --> 00:35:13,000 gildi counter 1. 762 00:35:13,000 --> 00:35:16,730 Svo kemur í ljós að þetta ílát here-- 763 00:35:16,730 --> 00:35:20,355 sem, aftur, er einn af þeim tengjast fylki, fylki sem þú getur vísitölu 764 00:35:20,355 --> 00:35:25,010 í orð í stað Numbers viðvarandi jafnvel eftir að notandinn fer í burtu. 765 00:35:25,010 --> 00:35:26,510 Aftur, ég fer aftur á síðuna núna. 766 00:35:26,510 --> 00:35:28,400 Það hefur verið mínútu eða svo. 767 00:35:28,400 --> 00:35:31,300 En það man að ég hef verið hér 19 sinnum áður. 768 00:35:31,300 --> 00:35:32,740 Þetta er 20. heimsókn mín. 769 00:35:32,740 --> 00:35:36,560 >> Og svo þetta er að fara að vera lykill að framkvæmd hvers konar viðbót sem man 770 00:35:36,560 --> 00:35:40,640 að þú ert skráður inn, að þú setur eitthvað bókstaflegri í körfunni þinni 771 00:35:40,640 --> 00:35:43,902 að kaupa eða að þið hafið einhverjar fjölda skilaboða bið. 772 00:35:43,902 --> 00:35:45,610 Hvenær sem þú vilt muna upplýsingar, 773 00:35:45,610 --> 00:35:48,130 við munum sjá að PHP, eins nokkrir öðrum tungumálum, 774 00:35:48,130 --> 00:35:53,640 veitir okkur þessa tálsýn ríkisins jafnvel þó, eins og þú munt sjá í PSET 6, 775 00:35:53,640 --> 00:35:57,642 eins og þú ert að gera HTTP beiðnir frá viðskiptavininum til miðlara, það er það. 776 00:35:57,642 --> 00:35:59,850 Þegar þú kemur til baka að svar, það er ekkert meira 777 00:35:59,850 --> 00:36:01,790 koma aftur frá the framreiðslumaður sjálfgefið. 778 00:36:01,790 --> 00:36:03,820 En við munum sjá hvernig á að vinna í kringum það. 779 00:36:03,820 --> 00:36:07,430 >> Jæja nú, við skulum reyna að hreinsa þetta upp smá. 780 00:36:07,430 --> 00:36:09,470 Við höfum séð nokkrar mismunandi dæmi þar. 781 00:36:09,470 --> 00:36:12,250 Oh, og eins til hliðar, fyrir þá sem þekkja eða framandi, 782 00:36:12,250 --> 00:36:14,230 ástæða þess að Frosh Spjallboð dæmi fór 783 00:36:14,230 --> 00:36:18,060 frá útlit raunverulega ljót að slightly-- vel, 784 00:36:18,060 --> 00:36:23,160 enn ugly-- til örlítið minna ljót þó enn ljót 785 00:36:23,160 --> 00:36:25,230 er vegna þess að ef við lítum á the uppspretta merkjamál hér, 786 00:36:25,230 --> 00:36:28,240 það kemur í ljós að ég hef þetta á the mjög toppur af the skrá. 787 00:36:28,240 --> 00:36:32,570 >> Kemur í ljós að ræsi er eitt af mörgum fáanleg bókasöfn þarna úti 788 00:36:32,570 --> 00:36:37,140 sem eru ekki til fyrir forritunarmál alltaf, en fyrir CSS eða JavaScript 789 00:36:37,140 --> 00:36:39,190 eða HTML eða fjölda tungumála. 790 00:36:39,190 --> 00:36:42,160 >> Og þessar fólkinu here-- upphaflega kom út 791 00:36:42,160 --> 00:36:44,730 af Twitter-- bara a heild búnt af stíl. 792 00:36:44,730 --> 00:36:47,360 Það er gegnheill skrá hér að einhver skrifaði, 793 00:36:47,360 --> 00:36:51,020 eða einhver skrifaði með tímanum sem tilgreinir liti og snið 794 00:36:51,020 --> 00:36:53,740 og whatnot svo ég geti konar lán setningafræði þeirra 795 00:36:53,740 --> 00:36:56,157 og ekki þarf að reikna út hvernig á að leggja út eyðublaðið mitt. 796 00:36:56,157 --> 00:36:57,990 Þetta er einnig minified þannig að tölvan getur 797 00:36:57,990 --> 00:37:00,560 skilja það en ekki endilega maður. 798 00:37:00,560 --> 00:37:03,050 Svo er það bara hvers vegna stylization þar breytt. 799 00:37:03,050 --> 00:37:05,450 >> En við skulum nú gera betur hvað varðar hönnun, 800 00:37:05,450 --> 00:37:07,490 því ef við dvöl niður þetta vegur of langur, 801 00:37:07,490 --> 00:37:11,290 númer okkar er að fara til fá sóðalegur og Messier. 802 00:37:11,290 --> 00:37:13,040 Svo skulum einbeita sér þessi dæmi hér. 803 00:37:13,040 --> 00:37:15,090 Síðasti í dag. 804 00:37:15,090 --> 00:37:18,720 >> Svo er hér frábær einfalt útgáfa 1.0 af heimasíðu CS50 er. 805 00:37:18,720 --> 00:37:21,250 Það hefur aðeins tengla á fyrirlestrar og kennsluáætlun, 806 00:37:21,250 --> 00:37:25,490 og það er að nota þessi óraðaðan lista tag-- UL tag sem við notuðum síðast. 807 00:37:25,490 --> 00:37:28,800 Og ef í raun, ef ég opna View Page Source, 808 00:37:28,800 --> 00:37:31,710 þú munt sjá að þetta er virkilega, virkilega einfalt HTML. 809 00:37:31,710 --> 00:37:35,460 Og í raun, jafnvel þótt það sé a PHP skrá undir hetta, 810 00:37:35,460 --> 00:37:38,620 það er samt bara spúandi út aðeins HTML fyrir nú. 811 00:37:38,620 --> 00:37:41,312 >> Svo ef ég smelli á fyrirlestrum, Við sjáum þetta gerast. 812 00:37:41,312 --> 00:37:43,020 Og ef ég smelli á viku núll, sjáum við þetta. 813 00:37:43,020 --> 00:37:44,920 Og ef ég smelli á Miðvikudagur, sjáum við þetta. 814 00:37:44,920 --> 00:37:47,900 Og þetta virðist var PDF af Glærur frá þeim degi. 815 00:37:47,900 --> 00:37:52,020 Allt sem ég hef gert er tengil með Akkerið á þessa slóð hér. 816 00:37:52,020 --> 00:37:55,400 >> Þannig að þetta er aðeins til að segja að þetta er nokkuð einföld útgáfa af vefsíðu CS50 er. 817 00:37:55,400 --> 00:37:56,790 Við skulum sjá hvernig það er hrint í framkvæmd. 818 00:37:56,790 --> 00:38:01,240 Ef ég fer inn í mvc0 skrá, við munum sjá nokkrar skrár. 819 00:38:01,240 --> 00:38:03,250 Einn er README, þannig að ef Sumt af þessu er of hratt, 820 00:38:03,250 --> 00:38:05,166 þú getur bara pota í kring meira hægfara síðar. 821 00:38:05,166 --> 00:38:07,930 Og tilkynningu hér er index.php skrá. 822 00:38:07,930 --> 00:38:09,960 Það kemur í ljós að ef þú sjálfur, manna, 823 00:38:09,960 --> 00:38:14,460 tilgreinir ekki endanlegt nafn í a URL, vefþjóninn venjulega 824 00:38:14,460 --> 00:38:17,010 infers sumir sjálfgefið nafn fyrir þig. 825 00:38:17,010 --> 00:38:20,060 An vísitölu punktur eitthvað er yfirleitt sjálfgefið. 826 00:38:20,060 --> 00:38:23,010 >> Svo er að hvers vegna í smá stund síðan þegar ég heimsótti þessa vefslóð hér, 827 00:38:23,010 --> 00:38:26,750 Engin skrá nafn, engin skrá eftirnafn, engin tímabil í vefslóðinni. 828 00:38:26,750 --> 00:38:29,710 Það vissi bara einhvern veginn dularfullur að leita að index.php. 829 00:38:29,710 --> 00:38:30,870 Það er bara samningur. 830 00:38:30,870 --> 00:38:32,360 Mætti nefna neitt. 831 00:38:32,360 --> 00:38:35,110 >> Svo ef ég fer nú í index.php, sérðu 832 00:38:35,110 --> 00:38:37,100 að indeed-- skulum losna við athugasemdum 833 00:38:37,100 --> 00:38:39,500 hér vegna þess að það er í raun ekkert áhugavert að it-- 834 00:38:39,500 --> 00:38:41,579 þetta er bara erfitt dulmáli HTML. 835 00:38:41,579 --> 00:38:43,370 Svo er það í samræmi, þó með kröfu mína 836 00:38:43,370 --> 00:38:45,230 að þú getur commingle HTML og PHP. 837 00:38:45,230 --> 00:38:48,060 Það er enginn raunverulegur forritun rökfræði hér. 838 00:38:48,060 --> 00:38:51,030 >> Og aðrar skrár eru ansi mikið bara eins uninteresting. 839 00:38:51,030 --> 00:38:56,240 Það er bara erfitt dulmáli viku eitt hér að viku eitt m og viku eitt w, 840 00:38:56,240 --> 00:38:57,510 fyrir mánudag og miðvikudag. 841 00:38:57,510 --> 00:39:01,890 Og þá ef ég opna viku núll, eftir það er nánast eins. 842 00:39:01,890 --> 00:39:03,320 >> Og það er góður af a lykill takeaway. 843 00:39:03,320 --> 00:39:06,180 Takið bara hversu óþarfi þetta er. 844 00:39:06,180 --> 00:39:10,710 Þessar skrár varla breytast, og enn ég drógu einn af þessum afrita / líma störf 845 00:39:10,710 --> 00:39:13,420 þar sem ég tók einn file-- væntanlega í viku zero-- afrita hana 846 00:39:13,420 --> 00:39:16,320 þegar viku kom í kring, og klip nokkur gildi. 847 00:39:16,320 --> 00:39:18,590 Við ættum líklega að vera fær að gera betur en þetta. 848 00:39:18,590 --> 00:39:21,800 >> Svo skulum við fara aftur upp til MVC og fara inn í útgáfu eitt. 849 00:39:21,800 --> 00:39:24,810 Og taka eftir að ég hef fengið nokkrum skrám, því það 850 00:39:24,810 --> 00:39:29,870 Algengt var að allar þessar skrár bara stund ago-- ef ég fer aftur til útgáfu 0, 851 00:39:29,870 --> 00:39:32,600 skulum fara aftur í vísitölu, og bara postulate-- 852 00:39:32,600 --> 00:39:36,090 þegar ég losna við comments-- hvaða hluti af þessari síðu 853 00:39:36,090 --> 00:39:40,072 er væntanlega í hvert eitt af skrá minn? 854 00:39:40,072 --> 00:39:40,780 Bara kalla það út. 855 00:39:40,780 --> 00:39:44,620 Hvaða línur eru tvöfalt sennilega yfir öllum þessum síðum? 856 00:39:44,620 --> 00:39:45,120 Já? 857 00:39:45,120 --> 00:39:46,110 >> Nemandi: [inaudible]. 858 00:39:46,110 --> 00:39:47,660 >> DAVID J. MALAN: 1 í gegnum 9. 859 00:39:47,660 --> 00:39:48,720 Já, algerlega. 860 00:39:48,720 --> 00:39:52,080 1 í gegnum 9, nema kannski 8 breytir svolítið vegna CS50 861 00:39:52,080 --> 00:39:54,650 verður fyrirlestrar eða viku núll eða eitthvað. 862 00:39:54,650 --> 00:39:55,970 En næstum eins. 863 00:39:55,970 --> 00:39:58,657 Svo er allt þetta dót bara konar afrita og líma. 864 00:39:58,657 --> 00:40:00,490 Og það er a par aðrar línur sem ég get hugsað 865 00:40:00,490 --> 00:40:05,000 af því eru sennilega eins yfir allar skrár. 866 00:40:05,000 --> 00:40:06,315 >> Nemandi: 12 og 13. 867 00:40:06,315 --> 00:40:07,190 DAVID J. MALAN: Já. 868 00:40:07,190 --> 00:40:11,220 Jú, 12, 13, og 14 líklega, bara vegna þess að áhugavert efni 869 00:40:11,220 --> 00:40:15,460 er að gerast á línum 11 og 10, svo það virðist. 870 00:40:15,460 --> 00:40:18,350 Svo skulum líta á útgáfu 1, sem reynir að bæta á þetta. 871 00:40:18,350 --> 00:40:24,020 Í útgáfu 1 af þessari MVC example-- við munum útskýra hvað MVC hætti í moment-- 872 00:40:24,020 --> 00:40:27,420 ef ég fer inn í vísitölu, það er eins konar lítur svolítið ruglingslegt núna. 873 00:40:27,420 --> 00:40:28,880 Það er ekki alveg eins einfalt og áður. 874 00:40:28,880 --> 00:40:30,906 >> En þegar þú byrjar að lesa það vandlega, það er 875 00:40:30,906 --> 00:40:32,530 nokkuð augljóst hvað það er að gera. 876 00:40:32,530 --> 00:40:34,397 Apparently Lína 1 og lína 8 hafa skipt 877 00:40:34,397 --> 00:40:37,230 allt efni sem þú identified-- bara þó bara fyrir gott mál, 878 00:40:37,230 --> 00:40:41,900 Ég skildi ULs þarna bara í tilfelli sumir dagar ekki hafa lista af hlutum. 879 00:40:41,900 --> 00:40:47,860 Og svo þurfa er góður af eins og pund fela í C. Það eintökum og deig 880 00:40:47,860 --> 00:40:50,470 Innihald raun hérna í skrána. 881 00:40:50,470 --> 00:40:53,650 >> Svo í header.php, eins og þú gæti álykta frá heiti þess, 882 00:40:53,650 --> 00:40:55,330 er að fara til vera the haus síðunnar. 883 00:40:55,330 --> 00:40:57,110 Það er góður af munaðarlaus hér. 884 00:40:57,110 --> 00:41:01,820 Það hefur aðeins efst við það, en það er ekkert meira efni hér. 885 00:41:01,820 --> 00:41:05,070 >> Og ef ég lít á fót á meðan, sem var annar skrá mentioned-- 886 00:41:05,070 --> 00:41:08,830 þetta er jafnvel minna áhugavert, en aftur, það er algengt að allt. 887 00:41:08,830 --> 00:41:10,250 Þannig að þetta er fóturinn. 888 00:41:10,250 --> 00:41:11,300 Þetta er haus. 889 00:41:11,300 --> 00:41:13,950 Þetta er skrá sem er að breytast, svo hvers vegna ekki 890 00:41:13,950 --> 00:41:18,140 reyna að þáttur út commonality með þessum tveimur línum hér? 891 00:41:18,140 --> 00:41:20,090 >> En við getum hreinsa þetta upp aðeins lengra. 892 00:41:20,090 --> 00:41:23,260 Ég ætla að fara á undan og opna útgáfa tveimur þar 893 00:41:23,260 --> 00:41:27,106 við munum sjá að það er ný skrá, helpers.php. 894 00:41:27,106 --> 00:41:28,610 Við munum sjá hvað það er í augnablikinu. 895 00:41:28,610 --> 00:41:30,930 Förum að vísitölu, sem innganga benda eins og áður. 896 00:41:30,930 --> 00:41:35,230 >> Og nú eftir ég er þurfa helpers.php, ekki haus eða fót. 897 00:41:35,230 --> 00:41:41,720 En framreiðslu er góður af eins helpers.c og helpers.h frá PSET 2 898 00:41:41,720 --> 00:41:46,150 eða PSET 3 fyrir löngu þegar þú í raun gerði leit og finna fyrir þeim PSET, 899 00:41:46,150 --> 00:41:50,950 og þú hefðir allt númerið þitt til að flokka og leita í sérstakri skrá. 900 00:41:50,950 --> 00:41:52,510 Það er það sem er að gerast hér. 901 00:41:52,510 --> 00:41:54,390 >> Og nú lína 3 lítur svolítið öðruvísi. 902 00:41:54,390 --> 00:41:55,920 Og það er bara ein lína. 903 00:41:55,920 --> 00:41:57,950 Til að gera þetta enn meira ljóst, ég gat bara 904 00:41:57,950 --> 00:42:01,820 gera þetta að vera stylistically samræmi með allt annað sem við höfum gert. 905 00:42:01,820 --> 00:42:04,130 En það er í raun ekki breyta virkni. 906 00:42:04,130 --> 00:42:05,880 Það er bara ein lína af alvöru kóða. 907 00:42:05,880 --> 00:42:09,010 >> Apparently, það er fall einhversstaðar kallað bakið haus, 908 00:42:09,010 --> 00:42:11,420 og þetta er þar sem hlutirnir fá nokkuð öflugt. 909 00:42:11,420 --> 00:42:17,040 Taka eftir því að inni sviga sínum er það sem aðrar stykki af setningafræði? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 Það er líklega svolítið erfitt að segja, en tilkynningar there's-- Ég set hvíta 912 00:42:23,350 --> 00:42:24,300 pláss. 913 00:42:24,300 --> 00:42:25,530 There er hornklofum. 914 00:42:25,530 --> 00:42:29,700 >> Og hornklofum við sáum svolítið síðan í samhengi við tengin fylki, 915 00:42:29,700 --> 00:42:31,580 sem eru, aftur, eins kjötkássa matskeið. 916 00:42:31,580 --> 00:42:36,230 Og ef þú heldur nú til C, röð rök í aðgerð 917 00:42:36,230 --> 00:42:37,570 þarf alltaf að vera sá sami. 918 00:42:37,570 --> 00:42:41,146 Þú verður að muna hvað á röð is-- X, Y, Z og Z, Y, x-- 919 00:42:41,146 --> 00:42:44,020 og þú þarft alltaf að veita þeim í sömu röð eða líta þær upp 920 00:42:44,020 --> 00:42:45,100 Ef þú hefur gleymt. 921 00:42:45,100 --> 00:42:51,140 >> En þetta virðist vera sniðug leið um brottför handahófi lykilgildi 922 00:42:51,140 --> 00:42:55,840 pör þar titill er nafnið af rifrildi í þessu tilfelli 923 00:42:55,840 --> 00:42:58,334 og CS50 er gildi þess. 924 00:42:58,334 --> 00:43:00,250 Og sú staðreynd að ég hef þessir hornklofum 925 00:43:00,250 --> 00:43:02,560 hér þýðir að ég gat einnig fara í eitthvað 926 00:43:02,560 --> 00:43:07,550 eins og í viku er 1 eða 0 eða 2 eða 3. 927 00:43:07,550 --> 00:43:10,550 Þannig að við höfum parameterized þessi aðgerð á þann hátt 928 00:43:10,550 --> 00:43:15,180 að það getur tekið margar inntak, en nú er bara einn. 929 00:43:15,180 --> 00:43:20,060 >> Ef ég fer nú í helpers.php, taka eftir hvað það er að gera. 930 00:43:20,060 --> 00:43:22,030 Þetta er svolítið af nýja virkni, 931 00:43:22,030 --> 00:43:24,190 en nú bara taka á trú á að þetta er 932 00:43:24,190 --> 00:43:26,570 setningafræði sem þú skilgreina fall í PHP. 933 00:43:26,570 --> 00:43:27,840 Þú segir bókstaflega virka. 934 00:43:27,840 --> 00:43:30,090 Þú tilgreinir ekki aftur slá, og það er í samræmi 935 00:43:30,090 --> 00:43:33,880 með breytilega smáatriði fyrr þar sem þú ert ekki í raun eindregið slá. 936 00:43:33,880 --> 00:43:35,650 >> Þetta skilgreinir bara sem, við vanræksla, þetta 937 00:43:35,650 --> 00:43:37,460 tekur tengnar array sem rök. 938 00:43:37,460 --> 00:43:38,210 Og þú veist hvað? 939 00:43:38,210 --> 00:43:41,450 Ef notandinn hefur ekki framhjá einn í, að gera ráð fyrir sjálfgefið gildi. 940 00:43:41,450 --> 00:43:44,680 >> Þetta er eiginleiki sem C hefur ekki fyrir okkur, sem er gott, því nú 941 00:43:44,680 --> 00:43:46,430 gögn, jafnvel ef þú gef það ekki neitt, 942 00:43:46,430 --> 00:43:49,300 er að fara að vera array en tómt einn. 943 00:43:49,300 --> 00:43:51,860 Og sem innskot, útdrætti bara gerir eitthvað angurvær 944 00:43:51,860 --> 00:43:56,380 þar sem það tekur alla lykla frá þessu tengin array, allt það 945 00:43:56,380 --> 00:43:59,950 þú gætir sett í hornklofum, og skapar breytur út af þeim 946 00:43:59,950 --> 00:44:06,270 svo að við getum að lokum hafa aðgang til þeirra í footet.php og header.php. 947 00:44:06,270 --> 00:44:08,950 Það er a lítill ágrip, svo látið mig benda þetta út. 948 00:44:08,950 --> 00:44:12,990 >> Í index.php, taka eftir að ég er brottför í lykilstöðu gildi par af titli 949 00:44:12,990 --> 00:44:14,850 með gildið CS50. 950 00:44:14,850 --> 00:44:18,660 Ef ég nú líta á helpers.php, taka eftir því RenderHeader 951 00:44:18,660 --> 00:44:23,870 er útdráttur þessi gögn sem ég er liggur í, og þá þurfa header.php. 952 00:44:23,870 --> 00:44:27,970 Það sem ég hef gert er tegund af a fátækur mannsins framkvæmd nú á eftirfarandi. 953 00:44:27,970 --> 00:44:31,720 >> Ef ég opna header.php, Takið eftir að ég hef ekki lengur harður 954 00:44:31,720 --> 00:44:34,890 dulmáli orðið CS50 í þessum haus skrá. 955 00:44:34,890 --> 00:44:39,310 Ég hef sett þetta vissulega atrociously heitir virka, HTML sérstakar stafir, 956 00:44:39,310 --> 00:44:40,170 þar. 957 00:44:40,170 --> 00:44:41,640 En taka það sem ég hef gert. 958 00:44:41,640 --> 00:44:44,240 Ég hef fengið opinn HTML. 959 00:44:44,240 --> 00:44:47,420 Ég hef þá opna höfuð og Open titil. 960 00:44:47,420 --> 00:44:52,380 >> Og svo inni opinn og titill er loka tags, ég hef smá PHP kóða. 961 00:44:52,380 --> 00:44:56,670 Og þetta er ágætur en af ​​setningafræði, sem bara þýðir echo út. 962 00:44:56,670 --> 00:44:59,840 Það þýðir bókstaflega this-- echo following-- 963 00:44:59,840 --> 00:45:01,910 en þetta er sexier að skrifa. 964 00:45:01,910 --> 00:45:05,000 Echo út titilinn sem er verið að liðin í. 965 00:45:05,000 --> 00:45:07,560 >> En hvað finnst þér HTML sérstakt bleikju er allur óður í, 966 00:45:07,560 --> 00:45:10,590 sérstaklega ef þú ert með sumir áður HTML reynslu? 967 00:45:10,590 --> 00:45:14,050 Hvaða stafir gæti verið hættulegt að fara inn á síðu 968 00:45:14,050 --> 00:45:17,980 þar sem þú ert mjög virk mynda vefsíðan með kóða eins og þetta? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Leyfðu mér að fara á þessa skrá, útgáfa tveir, og sjá hvort ég get ekki valdið þessu. 971 00:45:24,650 --> 00:45:26,210 >> Útgáfa tvö er þetta. 972 00:45:26,210 --> 00:45:28,510 Og taka allt er fínn, vinna vel. 973 00:45:28,510 --> 00:45:35,280 En geri ráð fyrir að ég fer inn í index.php og Ég tilgreint að titill á síðu mína 974 00:45:35,280 --> 00:45:36,630 er ekki CS50. 975 00:45:36,630 --> 00:45:44,930 Það er opið krappi handrit viðvörun Halló heimur, nálægt einn quote, 976 00:45:44,930 --> 00:45:49,740 Loka svigi, semíkommu, opinn krappi, slash handriti. 977 00:45:49,740 --> 00:45:51,897 >> Script, sem við munum lokum sjá, er merki 978 00:45:51,897 --> 00:45:54,480 að þú getur notað til að notkun annars kallast forritunarmál 979 00:45:54,480 --> 00:45:56,330 JavaScript inni í vefsíðu. 980 00:45:56,330 --> 00:45:57,960 Og nú taka rökfræði hér. 981 00:45:57,960 --> 00:45:59,840 Hér er lykillinn að kallast titill. 982 00:45:59,840 --> 00:46:02,690 Hér er það brjálaður lengi gildi núna. 983 00:46:02,690 --> 00:46:07,840 >> En ef ég fer til framreiðslu page- eða öllu heldur, Header síðuna 984 00:46:07,840 --> 00:46:11,310 Ég er að hringja þessa aðgerð þann titil fyrst. 985 00:46:11,310 --> 00:46:15,250 Svo ef ég endurhlaða þessari síðu núna, I sjá þetta, sem lítur fáránlega, 986 00:46:15,250 --> 00:46:16,110 en það er óhætt. 987 00:46:16,110 --> 00:46:17,310 Það lítur bara heimskur. 988 00:46:17,310 --> 00:46:20,320 >> En geri ráð fyrir í staðinn Ég hafði gleymt þessu. 989 00:46:20,320 --> 00:46:24,660 Og merkja orð mín, a frábrugðnar núlli tala af þú mun gleyma að gera þetta 990 00:46:24,660 --> 00:46:27,790 og þú munt fá sumir duglegir nemandi eða vinur að koma upp 991 00:46:27,790 --> 00:46:31,540 þig á CS50 sanngjörn eða nafnlaust á kvöldin poking um á vefsíðunni þinni 992 00:46:31,540 --> 00:46:35,300 og í raun sprauta kóða unbeknownst til þín inn á síðuna þína 993 00:46:35,300 --> 00:46:35,800 einhvern veginn. 994 00:46:35,800 --> 00:46:39,000 >> Vegna þess að ef ég skyrpa einfaldlega út titil hér og titill 995 00:46:39,000 --> 00:46:44,330 there-- vel, ef titill bókstaflega lítur út eins og þetta og PHP 996 00:46:44,330 --> 00:46:47,660 sem tungumál sem getur spýta önnur tungumál texta, 997 00:46:47,660 --> 00:46:50,650 þetta er bókstaflega að fara að skipta þessu merki með, 998 00:46:50,650 --> 00:46:53,010 auðvitað, það sem ég setti annars staðar. 999 00:46:53,010 --> 00:46:57,640 >> Svo ef ég fer nú hér og endurhlaða eftir afturkalla þær öryggi fyrirkomulag, 1000 00:46:57,640 --> 00:46:59,982 nú hef ég halló heim hér. 1001 00:46:59,982 --> 00:47:02,690 Nú það er ekki allt sem stór af a takast, en þú gætir gert eitthvað 1002 00:47:02,690 --> 00:47:05,119 a lítill fleiri illgjarn hér, eins og það er 1003 00:47:05,119 --> 00:47:08,410 önnur tags-- eins og við munum sjá þegar við eyða meiri tíma í Javascript-- eins stað 1004 00:47:08,410 --> 00:47:14,910 punktur href fær quote, unquote, HTTP business.com en andstæða að 1005 00:47:14,910 --> 00:47:15,950 frá um daginn. 1006 00:47:15,950 --> 00:47:20,120 Og nú er hægt að valdið á vefnum síðu til raunverulega fara strax 1007 00:47:20,120 --> 00:47:21,190 á þessa vefsíðu hér. 1008 00:47:21,190 --> 00:47:23,000 >> Og í raun, ég vil ekki að jafnvel að fara að business.com 1009 00:47:23,000 --> 00:47:24,749 vegna þess að ég vil ekki að vita hvað það er. 1010 00:47:24,749 --> 00:47:28,710 En þetta, of, mun kalla kóða til að sprauta í þessari síðu. 1011 00:47:28,710 --> 00:47:32,680 Þannig að þetta er aðeins til að segja að jafnvel þó við erum að kynna Super snemma á sumum 1012 00:47:32,680 --> 00:47:36,800 þessara flóknari mannvirki, það er allt í átt að enda að tryggja 1013 00:47:36,800 --> 00:47:39,320 að númerið þitt er ekki virkjanlegur. 1014 00:47:39,320 --> 00:47:40,960 >> Svo nú þriðja útgáfa hér. 1015 00:47:40,960 --> 00:47:42,470 Það er að fá smá áhugamaður. 1016 00:47:42,470 --> 00:47:44,875 Ég gerði í raun ekki like-- endaþarms hlið mér 1017 00:47:44,875 --> 00:47:47,750 var að fá smá gramur við staðreynd að ég hafði fall kallast 1018 00:47:47,750 --> 00:47:51,940 RenderHeader og RenderFooter sem voru nánast eins. 1019 00:47:51,940 --> 00:47:55,400 Svo það kom mér, hvers vegna ekki Ég parameterize þessar aðgerðir 1020 00:47:55,400 --> 00:47:59,180 í bara einn hét bakið, hafa það að taka annað rifrildi 1021 00:47:59,180 --> 00:48:04,420 eins og nafn sniðmátsins, endanleg að render-- annaðhvort haus eða fót? 1022 00:48:04,420 --> 00:48:07,160 Og þá mögulega, ef ég vil að fara í sumum helstu gildi pör 1023 00:48:07,160 --> 00:48:10,580 eins og ég gert fyrir yfirskrift haus en ekki fyrir fót, 1024 00:48:10,580 --> 00:48:11,800 Ég gæti gert það. 1025 00:48:11,800 --> 00:48:16,510 >> Og svo núna ef ég fer inn í helpers.php, það er lítið flóknara. 1026 00:48:16,510 --> 00:48:19,670 Og ég ætla að veifa höndum mínum á upplýsingar, en það er bara ein aðgerð. 1027 00:48:19,670 --> 00:48:21,890 Svo er það skref í átt að betri hönnun. 1028 00:48:21,890 --> 00:48:23,360 >> Við getum tekið þetta einu skrefi lengra. 1029 00:48:23,360 --> 00:48:28,890 Ef ég fer inn í fjórða mínum útgáfa af þessu, taka nú 1030 00:48:28,890 --> 00:48:31,320 að ég er að gera eitthvað jafnvel meira konar dulinn. 1031 00:48:31,320 --> 00:48:33,230 Og ég veit að þetta er mikið að taka í einu, 1032 00:48:33,230 --> 00:48:35,080 en við erum bara svona að þrífa það upp. 1033 00:48:35,080 --> 00:48:38,550 Nú er ég að setja aðstoðarmenn mína skrá í möppu sem heitir 1034 00:48:38,550 --> 00:48:41,190 includes-- bara handahófskennt nafn þar sem ég vil setja efni 1035 00:48:41,190 --> 00:48:44,300 að ég vil include-- og þá restin af þessu er sú sama. 1036 00:48:44,300 --> 00:48:47,140 >> En ef ég lít nú í gedit, Takið eftir að ég hef fengið Losa 1037 00:48:47,140 --> 00:48:51,940 af öllum þeim öðrum skrár og ég hef flutti þá, til dæmis, í hér. 1038 00:48:51,940 --> 00:48:55,110 Og síðan í sniðmát, Ég hef þetta hér líka. 1039 00:48:55,110 --> 00:48:59,292 Og svo er þetta nú allir í átt að stíga um að nota mikið betri hönnun mynstur. 1040 00:48:59,292 --> 00:49:01,000 Og við erum mjög fljótt að fara að flytja í burtu 1041 00:49:01,000 --> 00:49:03,870 úr PHP sjálfgefna virkni, sem við byrjuðum hér með, 1042 00:49:03,870 --> 00:49:07,655 hvar þú commingle bara PHP, og HTML, og CSS þinn, 1043 00:49:07,655 --> 00:49:09,780 og þú spýta bara það út og þú fara um vegi þínum. 1044 00:49:09,780 --> 00:49:11,404 Það er ekki að fara að vera mjög maintainable. 1045 00:49:11,404 --> 00:49:14,481 Rétt eins og í C, við byrjuðum að nota margar skrár og margar aðgerðir 1046 00:49:14,481 --> 00:49:15,730 og Factoring hlutir það út. 1047 00:49:15,730 --> 00:49:16,688 Við munum gera það sama hér. 1048 00:49:16,688 --> 00:49:19,970 Og í raun, í fimmta og síðasta útgáfa hér, ég gerði einn annar hlutur. 1049 00:49:19,970 --> 00:49:23,710 Þú getur jafnvel notað punktur punktur, sem, aftur, er bara foreldri skrá. 1050 00:49:23,710 --> 00:49:28,260 Til að vera enn meira öryggi meðvitund, því ef ég lít á hlustun 1051 00:49:28,260 --> 00:49:32,450 hér fyrir fimmta og síðasta útgáfa, fyrirvara að ég hef eina möppu hér kallað 1052 00:49:32,450 --> 00:49:35,180 opinber, og síðan á sama stigi, ef svo má segja, 1053 00:49:35,180 --> 00:49:38,490 Ég hef fengið nær og sniðmát og þá að textaskrá README. 1054 00:49:38,490 --> 00:49:41,130 >> Og ástæða þess að ég hef byggt upp það eins this-- og svo margir vefur 1055 00:49:41,130 --> 00:49:44,330 vélar, sérstaklega þeim 5 $ á mánuði sjálfur eða $ 10 mánaða sjálfur, 1056 00:49:44,330 --> 00:49:47,170 Ef þú hefur einhvern tíma fengið einn af þessum services-- hvað svo margir af þeim gera 1057 00:49:47,170 --> 00:49:50,690 er þeir búast bara að afrita alla af skrá í eina skrá, 1058 00:49:50,690 --> 00:49:53,640 eins og við gerðum þegar við þetta mjög fyrstur dæmi. 1059 00:49:53,640 --> 00:49:56,740 >> En um leið og þú byrjar að byggja meira háþróuð síður sem bara geyma 1060 00:49:56,740 --> 00:50:00,480 gögn sem þú þykir vænt um og skrár vænt um, reyndar að skipuleggja hlutina 1061 00:50:00,480 --> 00:50:05,060 rétt og með meira öryggi meðvitund í huga getur 1062 00:50:05,060 --> 00:50:07,927 við byrjum að verja á móti öllum vinum 1063 00:50:07,927 --> 00:50:10,135 að þú ert annað hvort í eða utan þessum flokki sem, 1064 00:50:10,135 --> 00:50:12,510 um leið og þú byrjar að gera forrit sjálfur á vefnum, 1065 00:50:12,510 --> 00:50:15,140 eru að fara að byrja að tína á þig og á þeim. 1066 00:50:15,140 --> 00:50:17,420 >> Og svo við munum líta lokum við þessa hönnun. 1067 00:50:17,420 --> 00:50:20,010 Þetta er bara mynd sem lýsir eftirfarandi. 1068 00:50:20,010 --> 00:50:22,897 Við erum að fara að setja allar okkar forritun rökfræði í einu eða fleiri skrár, 1069 00:50:22,897 --> 00:50:25,230 og við erum að fara að bara að byrja kalla þær stýringar. 1070 00:50:25,230 --> 00:50:28,022 Það er þar sem heili vefsíður okkar í raun eru. 1071 00:50:28,022 --> 00:50:29,730 Svo ætlum við að hafa skoðanir, og skoðanir 1072 00:50:29,730 --> 00:50:32,480 eru eins einfalt og bara aðskilin files-- kallast sniðmát, oft. 1073 00:50:32,480 --> 00:50:34,410 Þeir hafa bara fagurfræði síðuna mína, 1074 00:50:34,410 --> 00:50:37,020 það sem ég vil á síðunni til að leita like-- liti og skipulag 1075 00:50:37,020 --> 00:50:38,870 og þannig að staðsetning allar breytur. 1076 00:50:38,870 --> 00:50:41,120 >> Og þá meira áhugavert að við munum loksins fá að 1077 00:50:41,120 --> 00:50:45,420 er líkanið, sem er að fara að vera bara orðið við smellu á öðrum tækni 1078 00:50:45,420 --> 00:50:47,771 að við að koma inn í mynd, eins raunverulegum gagnagrunna, 1079 00:50:47,771 --> 00:50:49,520 þannig að þegar þú vilt að vista upplýsingar, 1080 00:50:49,520 --> 00:50:52,140 þú ert ekki bara að senda tölvupóst til Proctor þitt eða sjálfan þig, 1081 00:50:52,140 --> 00:50:57,350 þú geyma það í raun í gagnagrunni nota annað tungumál kallast SQL. 1082 00:50:57,350 --> 00:51:00,450 Og svo munum við fara hér í dag og taka upp með þetta á miðvikudag 1083 00:51:00,450 --> 00:51:02,990 og kynna gagnagrunna þá. 1084 00:51:02,990 --> 00:51:06,940 >> [Tónlist spila] 1085 00:51:06,940 --> 00:54:24,555