1 00:00:00,000 --> 00:00:03,920 >> [CHWARAE CERDDORIAETH] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> DAVID J. Malan: pob hawl. 4 00:00:13,800 --> 00:00:15,640 Mae hyn yn CS50. 5 00:00:15,640 --> 00:00:17,620 Mae hyn yn dechrau'r wythnos wyth. 6 00:00:17,620 --> 00:00:22,440 Ac efallai y byddwch yn cofio i ni adael off tro diwethaf yn edrych ar iaith newydd 7 00:00:22,440 --> 00:00:23,240 yn gyfan gwbl. 8 00:00:23,240 --> 00:00:25,905 Yn wir, un sy'n deg ysgafn ac nid yw'n hyd yn oed yn 9 00:00:25,905 --> 00:00:26,940 iaith raglennu. 10 00:00:26,940 --> 00:00:31,100 Mae'n iaith markup sy'n ein gadael mewn gwirionedd yn strwythuro a gwneud tudalennau gwe. 11 00:00:31,100 --> 00:00:33,350 A phan rhywbeth arall i chi ar y cyd â this-- 12 00:00:33,350 --> 00:00:35,670 neu chi cyn bo hir a fydd, os Nid ydych wedi gwneud hynny eisoes. 13 00:00:35,670 --> 00:00:38,530 Rydym yn mynd i ddefnyddio Rhaeadru Taflenni Arddull, neu CSS, a oedd yn 14 00:00:38,530 --> 00:00:40,971 yn fath arall o iaith gydag eiddo a gwerthoedd 15 00:00:40,971 --> 00:00:43,220 mae hynny'n mynd i adael i ni wneud pethau yn hoffi newid lliw 16 00:00:43,220 --> 00:00:46,010 a newid y sefyllfa a mathau hyn o tweaks. 17 00:00:46,010 --> 00:00:49,940 Ond heddiw ac ymlaen, rydym yn dechrau i canolbwyntio ar ieithoedd yn fwy pwerus, 18 00:00:49,940 --> 00:00:52,810 ieithoedd rhaglennu gwirioneddol fel PHP. 19 00:00:52,810 --> 00:00:54,880 >> Felly PHP wedi bod o gwmpas ers peth amser. 20 00:00:54,880 --> 00:00:56,810 Ac fel y gwelwch, mae'n ei gynllunio yn bennaf 21 00:00:56,810 --> 00:01:00,280 yn gynnar ar gyfer go iawn defnyddio yn datblygu ar y we 22 00:01:00,280 --> 00:01:02,360 ac mewn gwirionedd yn cynhyrchu tudalennau gwe. 23 00:01:02,360 --> 00:01:04,849 Felly, pa fath o nodweddion yn gwneud iaith 24 00:01:04,849 --> 00:01:10,040 angen er mwyn gwneud y we tudalennau yn ddeinamig ag ef? 25 00:01:10,040 --> 00:01:14,760 >> Mewn geiriau eraill, os ydych am i gynhyrchu Cynnwys dynamically-- fel Facebook yn 26 00:01:14,760 --> 00:01:19,480 Newsfeed, sy'n newid yn gyson, neu negeseuon gwib sy'n pop i fyny o bryd 27 00:01:19,480 --> 00:01:21,872 i adeg-- fel beth yw'r darn allweddol o functionality 28 00:01:21,872 --> 00:01:24,580 ei angen arnoch mewn iaith raglennu a fyddai'n gadael i chi ddynamig 29 00:01:24,580 --> 00:01:28,070 argraffu gwybodaeth newydd i'r sgrin? 30 00:01:28,070 --> 00:01:28,685 >> MYFYRIWR: Cod. 31 00:01:28,685 --> 00:01:29,560 DAVID J. Malan: Cod. 32 00:01:29,560 --> 00:01:30,440 OK. 33 00:01:30,440 --> 00:01:31,995 Byddwn yn cymryd hynny. 34 00:01:31,995 --> 00:01:35,310 Ychydig yn fwy manwl gywir. 35 00:01:35,310 --> 00:01:37,639 Yr wyf yn golygu, gallem wneud hyn gyda C, a dweud y gwir. 36 00:01:37,639 --> 00:01:38,930 Byddai'n fod yn boen yn y gwddf. 37 00:01:38,930 --> 00:01:41,045 But-- yw ymrwymiad hwn? 38 00:01:41,045 --> 00:01:41,895 >> MYFYRIWR: Yeah. 39 00:01:41,895 --> 00:01:42,677 Newidynnau, efallai? 40 00:01:42,677 --> 00:01:43,760 DAVID J. Malan: Newidynnau. 41 00:01:43,760 --> 00:01:44,160 OK, yn sicr. 42 00:01:44,160 --> 00:01:45,740 Gall Newidynnau sicr yn ein helpu allan. 43 00:01:45,740 --> 00:01:47,020 A hyd yn oed rhywbeth symlach. 44 00:01:47,020 --> 00:01:50,640 Rydym yn ei ddefnyddio yn y cyntaf un rhaglen o'r diwrnod cyntaf un 45 00:01:50,640 --> 00:01:55,686 pan ddywedodd mewn gwirionedd "helo byd." 46 00:01:55,686 --> 00:01:56,570 >> MYFYRIWR: Print. 47 00:01:56,570 --> 00:01:57,778 >> DAVID J. Malan: Print, dde? 48 00:01:57,778 --> 00:02:01,050 Print, neu printf yn y fyd C. Felly yr holl amser hwn, 49 00:02:01,050 --> 00:02:03,362 rydym wedi cael yn ein gwaredu a language-- C, 50 00:02:03,362 --> 00:02:05,570 mewn particular-- a hyd yn oed Scratch ar gyfer y mater hwnnw 51 00:02:05,570 --> 00:02:07,400 Gall cynhyrchu llinynnau o destun. 52 00:02:07,400 --> 00:02:11,090 >> Wel, os HTML, fel y gwelsom yr wythnos diwethaf, yn dim ond criw cyfan o linynnau o destun 53 00:02:11,090 --> 00:02:14,692 er gyda cromfachau agored a chaeedig cromfachau a rhyw fath o odl 54 00:02:14,692 --> 00:02:16,650 a rheswm y tu ôl iddo, dda yna gallem wir 55 00:02:16,650 --> 00:02:20,440 ddechrau cynhyrchu tudalennau gwe naill ai â llaw drwy deipio nhw allan yn gedit 56 00:02:20,440 --> 00:02:23,870 neu yn Microsoft Word, o ran hynny matter-- rydym jyst angen golygydd testun. 57 00:02:23,870 --> 00:02:26,830 >> Neu gallem ysgrifennu cod, at eich awgrym 58 00:02:26,830 --> 00:02:30,435 yn gynharach, byddai hynny'n gadael i ni ddeinamig cynhyrchu HTML, 59 00:02:30,435 --> 00:02:32,560 a dyna beth rydym yn mynd i ddechrau yn ei wneud gyda PHP 60 00:02:32,560 --> 00:02:34,900 ac yn y pen draw, hyd yn oed gyda iaith o'r enw JavaScript, 61 00:02:34,900 --> 00:02:37,910 yn defnyddio un iaith i gynhyrchu un arall. 62 00:02:37,910 --> 00:02:40,720 Ac yn wir, dyma beth Facebook a llawer, llawer o safleoedd eraill 63 00:02:40,720 --> 00:02:44,530 ei wneud i mewn gwirionedd yn ddeinamig arddangos gwybodaeth newydd i chi. 64 00:02:44,530 --> 00:02:47,117 >> Felly gadewch i ni ddechrau gyda this-- a lein yn edrych cryptig, ond mae un 65 00:02:47,117 --> 00:02:48,450 dyna mewn gwirionedd yn eithaf pwerus. 66 00:02:48,450 --> 00:02:51,210 Hyd yma, rydym wedi bod yn defnyddio C, sy'n iaith luniwyd. 67 00:02:51,210 --> 00:02:55,050 A dim ond yn recap-- cyflym a luniwyd Mae iaith pa nodweddiadol? 68 00:02:55,050 --> 00:02:59,050 Mae'n amlwg bod angen i chi i lunio iddo, ond beth mae hynny'n ei olygu? 69 00:02:59,050 --> 00:03:00,505 Yeah? 70 00:03:00,505 --> 00:03:02,940 >> MYFYRIWR: Mae angen iddo fod cydosod i mewn i cod beiriant. 71 00:03:02,940 --> 00:03:03,060 >> DAVID J. Malan: OK. 72 00:03:03,060 --> 00:03:04,530 Mae angen iddo fod yn ymgynnull i mewn i cod peiriant. 73 00:03:04,530 --> 00:03:07,340 Felly, byddwch yn cymryd eich cod ffynhonnell, sydd yn fath o Saesneg-debyg. 74 00:03:07,340 --> 00:03:09,270 Rydych drosi hynny i rhywbeth lefel is, 75 00:03:09,270 --> 00:03:11,590 a elwir yn y pen draw gwrthrych code-- 0 ac 1 yn. 76 00:03:11,590 --> 00:03:14,830 Ac mae'n y rhai 0 a 1 yn y CPU, fel y rhai a wnaed gan Intel, 77 00:03:14,830 --> 00:03:16,110 mewn gwirionedd yn deall. 78 00:03:16,110 --> 00:03:19,690 >> Yn awr, PHP a Python a Ruby a JavaScript a sypiau o eraill 79 00:03:19,690 --> 00:03:23,190 Nid yw ieithoedd yn cael eu llunio iaith ond dehongli ieithoedd, 80 00:03:23,190 --> 00:03:26,630 sy'n golygu eich bod yn unig yn eu teipio ac yna na fyddwch yn eu troi i mewn i 0 ac 1 yn. 81 00:03:26,630 --> 00:03:30,790 Chi yn hytrach na dim ond darparu yna fel mewnbwn i raglen rhywun arall, 82 00:03:30,790 --> 00:03:32,080 Gelwir cyfieithydd. 83 00:03:32,080 --> 00:03:34,460 A bod y person hwnnw rhaglen wedi ei chynllunio 84 00:03:34,460 --> 00:03:38,280 i ddeall beth mae pob a pob symbol yn Python neu PHP 85 00:03:38,280 --> 00:03:42,650 neu Ruby neu unrhyw nifer o ieithoedd eraill yn ei olygu. 86 00:03:42,650 --> 00:03:44,760 >> Ac felly i gyd sydd ei angen yw rhywbeth fel hyn. 87 00:03:44,760 --> 00:03:46,350 Felly, mewn gwirionedd, yr wyf i'n mynd i ewch draw at y peiriant 88 00:03:46,350 --> 00:03:48,100 yma, dim ond i unrhyw hen ffenestri, ac rydym yn 89 00:03:48,100 --> 00:03:52,580 mynd i fynd yn ei flaen ac yn agored ffeil o'r enw, yn dweud, helo. 90 00:03:52,580 --> 00:03:55,780 Yn awr yn flaenorol, efallai y byddwn wedi ei arbed mae hyn hyd yn oed gyda estyniad ffeil, 91 00:03:55,780 --> 00:03:57,910 ond rwy'n mynd i wneud rhywbeth hyd yn oed yn symlach yma. 92 00:03:57,910 --> 00:04:02,450 Rydw i'n mynd i fynd yn ei flaen ac yn dechrau ffeil yma gyda hyn chystrawen cryptig. 93 00:04:02,450 --> 00:04:06,310 Felly "defnyddiwr, bin, ENV, ar gyfer yr amgylchedd, php. " 94 00:04:06,310 --> 00:04:10,670 >> Mae hyn yn syml, un llinell o god sy'n yn mynd i ddweud wrth fy system weithredu, 95 00:04:10,670 --> 00:04:13,730 mynd yn dod o hyd yn eich leol amgylchedd beth bynnag hynny yw, 96 00:04:13,730 --> 00:04:18,149 lle bynnag PHP yw-- y interpreter-- ac yn mynd yn ei flaen ac yn defnyddio y cyfieithydd 97 00:04:18,149 --> 00:04:20,589 i ddehongli'r cod ganlynol. 98 00:04:20,589 --> 00:04:22,760 Yn awr, mae hyn yn fath o nodwedd hyll o PHP. 99 00:04:22,760 --> 00:04:24,980 Ond yn yr iaith hon, unrhyw tro y byddwch yn ysgrifennu cod PHP, 100 00:04:24,980 --> 00:04:29,200 angen i chi gael un o'r rhain yn hyll Tagiau PHP demarcating y dechrau 101 00:04:29,200 --> 00:04:32,220 o'ch code-- 00:04:37,430 >> Ond yn is yma, gallaf yn awr wneud rhywbeth eithaf syml, fel printf atalnod helo 103 00:04:37,430 --> 00:04:40,922 byd slaes n agos quote, parenthesis cau. 104 00:04:40,922 --> 00:04:42,630 Ac yna yn unig ar gyfer da mesur, dw i'n mynd 105 00:04:42,630 --> 00:04:45,380 i fynd yn ei flaen ac yn agos fy tag php dros yma 106 00:04:45,380 --> 00:04:47,390 fel eu bod yn edrych popeth 'n glws' n bert hargraffu. 107 00:04:47,390 --> 00:04:50,780 >> A chyn gynted ag yr wyf cliciwch Save, gedit yn ddigon smart mewn gwirionedd 108 00:04:50,780 --> 00:04:54,620 i edrych ar y llinell gyntaf iawn ac sylweddoli, oh, rydych yn ysgrifennu cod PHP. 109 00:04:54,620 --> 00:04:56,710 Gadewch i mi Uchafbwynt cystrawen 'i ag y lliwiau 110 00:04:56,710 --> 00:04:58,690 yma fel y mae'n sefyll allan ychydig yn fwy. 111 00:04:58,690 --> 00:05:01,300 Ond yn awr yr wyf i'n mynd i fynd i lawr at fy ffenestr terfynell. 112 00:05:01,300 --> 00:05:02,340 'N annhymerus' chwyddo mewn. 113 00:05:02,340 --> 00:05:06,860 >> Mae'r rhaglen hon yn ei alw "helo," felly dw i'n mynd i wneud dot slaes helo, 114 00:05:06,860 --> 00:05:07,990 ond caniatâd gwadu. 115 00:05:07,990 --> 00:05:08,490 A bash. 116 00:05:08,490 --> 00:05:10,610 Rydym mewn gwirionedd yn clywed am hynny wythnosau beth cwpl yn ôl 117 00:05:10,610 --> 00:05:13,140 yng nghyd-destun Shellshock, un o'r rhai bugs. 118 00:05:13,140 --> 00:05:16,240 >> Ond mae caniatâd gwadu rydym wedi gweld o'r blaen, efallai mewn cyd-destun gwahanol. 119 00:05:16,240 --> 00:05:19,060 A oes unrhyw un yn cofio sut efallai y byddwch atgyweiria rhywbeth 120 00:05:19,060 --> 00:05:22,100 pan fo caniatâd yn cael ei wrthod fel hyn? 121 00:05:22,100 --> 00:05:23,490 Beth yw'r gorchymyn, o leiaf? 122 00:05:23,490 --> 00:05:24,159 >> MYFYRIWR: chmod. 123 00:05:24,159 --> 00:05:26,700 DAVID J. Malan: Yeah, chmod, ar gyfer newid y dull o ffeil. 124 00:05:26,700 --> 00:05:30,171 A byddwch yn cael yr holl mwy a ddefnyddir i yr wythnos nesaf gyda phroblem dilynol 125 00:05:30,171 --> 00:05:30,670 a osodwyd. 126 00:05:30,670 --> 00:05:33,211 Ond am nawr, dw i'n mynd i newid y modd i beidio â bod yn ddarllenadwy, 127 00:05:33,211 --> 00:05:36,650 ond i roi executeability bawb breintiau, y gallu 128 00:05:36,650 --> 00:05:37,710 i redeg y ffeil. 129 00:05:37,710 --> 00:05:40,360 Ac yr wyf i'n mynd i aseinio hynny at y ffeil helo. 130 00:05:40,360 --> 00:05:45,150 >> Os wyf yn awr yn gwneud dot slaes helo fynd i mewn, byddwch yn gweld, mewn gwirionedd, fy rhaglen, helo byd. 131 00:05:45,150 --> 00:05:48,760 A beth cam a wnaeth i mi sgip yn glir yn gyfan gwbl? 132 00:05:48,760 --> 00:05:49,520 Llunio. 133 00:05:49,520 --> 00:05:51,680 Felly, Fi jyst yn rhedeg y rhaglen hon yn syml. 134 00:05:51,680 --> 00:05:55,690 >> Ac mae'n troi allan gallwch wneud hyn gyda llawer o gystrawen sy'n atgoffa rhywun o C. 135 00:05:55,690 --> 00:06:03,400 Gadewch i mi fynd i mewn i cod heddiw, yr wyf yn rhoi yn fy cyfeiriadur vhost 136 00:06:03,400 --> 00:06:05,250 yma, am resymau go iawn byddwn yn dod yn ôl i. 137 00:06:05,250 --> 00:06:09,350 Ac yr wyf i'n mynd i fynd i mewn, gadewch i ni ddweud, amodau 1. 138 00:06:09,350 --> 00:06:12,450 >> A byddwch yn gweld yma, yn gyntaf a mwyaf blaenllaw, criw cyfan o sylwadau. 139 00:06:12,450 --> 00:06:15,240 Ond mae hyn yn mewn gwirionedd ail-greu yn PHP 140 00:06:15,240 --> 00:06:18,960 o raglen a wnaethom mewn wythnos un o'r enw Amodau 1.c 141 00:06:18,960 --> 00:06:20,690 os yw'r diben yn oes y rhaglen hon 142 00:06:20,690 --> 00:06:22,950 yn ôl pob golwg i ofyn y defnyddiwr ar gyfer cyfanrif 143 00:06:22,950 --> 00:06:25,270 ac yna gwneud rhai blewog dadansoddiad arno lle 144 00:06:25,270 --> 00:06:29,510 ydych yn ei ddweud os yw'n gadarnhaol neu negyddol neu'n hafal i sero. 145 00:06:29,510 --> 00:06:34,220 Ac yr wyf yn dod â hyn i fyny yn unig oherwydd, ac eithrio efallai un manylyn bach, 146 00:06:34,220 --> 00:06:37,150 mae'n indistinguishable mor bell o C. 147 00:06:37,150 --> 00:06:39,930 >> Beth yw'r un nodwedd yma nad efallai yn neidio allan 148 00:06:39,930 --> 00:06:41,410 ar chi fel ychydig yn wahanol? 149 00:06:41,410 --> 00:06:42,160 Efallai dau beth. 150 00:06:42,160 --> 00:06:42,660 Yeah? 151 00:06:42,660 --> 00:06:44,070 >> MYFYRIWR: Doler Arwydd n? 152 00:06:44,070 --> 00:06:44,944 >> DAVID J. Malan: Yeah. 153 00:06:44,944 --> 00:06:46,210 Felly arwydd doler n yn bresennol. 154 00:06:46,210 --> 00:06:48,120 A doler arwyddion, fel byddwn yn gweld, yn mynd 155 00:06:48,120 --> 00:06:51,460 i fod yn ateb i'r dechrau o unrhyw newidyn yn PHP. 156 00:06:51,460 --> 00:06:54,250 Mae'n rhai da da ac yn bad-- mewn ei fod yn fath o amlwg beth sydd 157 00:06:54,250 --> 00:06:56,797 newidyn, drwg yn ei fod yn ond peth arall i deipio. 158 00:06:56,797 --> 00:06:58,630 Ac mae un arall beth nad ydym wedi eithaf 159 00:06:58,630 --> 00:07:00,876 gweld, o leiaf trwy sillafu hwn. yeah? 160 00:07:00,876 --> 00:07:01,630 >> MYFYRIWR: Readline. 161 00:07:01,630 --> 00:07:02,671 >> DAVID J. Malan: Readline. 162 00:07:02,671 --> 00:07:06,550 Readline ni welsom, fel y cyfryw, yn C, er bod rhywbeth yn bodoli 163 00:07:06,550 --> 00:07:09,530 yn debyg, ond rydym wedi defnyddio getstring, ac mae hyn yn ei gymar. 164 00:07:09,530 --> 00:07:12,950 Felly, os byddaf yn mynd i mewn i hyn cyfeiriadur, sy'n digwydd bod, 165 00:07:12,950 --> 00:07:18,030 fel y byddaf yn esbonio mewn ychydig yn fy vhost cyfeiriadur ac mae fy ffynhonnell A cyfeiriadur, 166 00:07:18,030 --> 00:07:22,730 ac yr wyf yn mynd yn ei flaen ac yn gwneud dot slaes conditions-- whoops-- dot slaes 167 00:07:22,730 --> 00:07:26,710 amodau 1, byddwch yn gweld, unwaith eto, yr un caniatâd issue-- gwadu. 168 00:07:26,710 --> 00:07:33,610 >> Felly, gadewch i mi chwyddo i mewn a gwneud chmod yn fantais x ar amodau, amodau slaes dot. 169 00:07:33,610 --> 00:07:35,222 Hoffwn yn gyfanrif, os gwelwch yn dda, 50. 170 00:07:35,222 --> 00:07:36,930 A gallem chwarae y gêm drwy'r dydd hir. 171 00:07:36,930 --> 00:07:39,140 Mae'n mynd i ymddwyn yn union fel y gwnaeth yn wythnos un. 172 00:07:39,140 --> 00:07:42,860 >> Iawn felly nid yw bob un sy'n wahanol, ac eithrio nid dim ond bod ychydig bach o cystrawen, 173 00:07:42,860 --> 00:07:45,490 ond ar y brig, yr wyf unwaith eto Roedd gan y llinell hon sydd 174 00:07:45,490 --> 00:07:49,760 a ganiateir i mi i greu rhywbeth sy'n edrych yn debyg i raglen o'r enw C helo, 175 00:07:49,760 --> 00:07:51,150 Gelwir amodau 1. 176 00:07:51,150 --> 00:07:54,520 Ond nid yw 0 a rhai Im 'yn gweithredu yn uniongyrchol. 177 00:07:54,520 --> 00:07:57,620 Yn hytrach ei fod yn rhedeg hyn cyfieithydd y mae ei enw 178 00:07:57,620 --> 00:07:59,440 digwydd bod yn union yr un fath i'r iaith. 179 00:07:59,440 --> 00:08:04,970 Enw'r rhaglen yw PHP, ac mae fy cod islaw'r llinell un yn cael ei basio i mewn iddo. 180 00:08:04,970 --> 00:08:07,740 >> Gallwn wneud un arall yn weddol syml Enghraifft atgoffa rhywun o rywbeth 181 00:08:07,740 --> 00:08:09,240 gwnaethom wythnosau yn ôl. 182 00:08:09,240 --> 00:08:12,020 Unwaith eto, mae hyn yn rhyw fath o darn fympwyol o god 183 00:08:12,020 --> 00:08:14,000 hynny yn ôl pob golwg yn ei wneud beth pan fyddwch yn rhedeg ei? 184 00:08:14,000 --> 00:08:15,625 Beth sy'n hyn yn mynd i'r wasg, yn ôl pob tebyg? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Felly, i ddechrau ar linell 16, 'i' mynd i ddweud yn awr x 2, yn ôl pob tebyg. 187 00:08:28,250 --> 00:08:30,920 % D yr un fath ag $ ff am printf. 188 00:08:30,920 --> 00:08:33,460 Felly, yna mae'n cubing, dot, dot, dot, yn unol 17. 189 00:08:33,460 --> 00:08:36,299 Ac yna linell 18 yn ymddangos i alw swyddogaeth torri'n giwbiau. 190 00:08:36,299 --> 00:08:37,600 A lle mae torri'n giwbiau diffinio? 191 00:08:37,600 --> 00:08:40,319 >> Wel, mae'n edrych fel yn llinell 25, felly nid dyna'r cyfan bod gwahanol. 192 00:08:40,319 --> 00:08:42,610 Rwyf wedi cael rhai sylwadau uchod iddo, ond ar y cyfan, 193 00:08:42,610 --> 00:08:45,370 ei fod yn weddol syml drosi neu drosi 194 00:08:45,370 --> 00:08:48,470 o'r rhaglen C i'r fersiwn PHP. 195 00:08:48,470 --> 00:08:52,670 Ond erbyn hyn mae un neu ddau o gwahaniaethau y efallai dylai neidio allan. 196 00:08:52,670 --> 00:08:56,100 Beth arall sy'n wahanol am y ffordd yr ydych Gallai ysgrifennu hyn un rhaglen yn C? 197 00:08:56,100 --> 00:08:57,900 >> MYFYRIWR: [Anghlywadwy]. 198 00:08:57,900 --> 00:09:00,070 >> DAVID J. Malan: Mae dim prototeip i fyny top. 199 00:09:00,070 --> 00:09:03,210 Felly PHP-- a dweud y gwir, a llawer o languages-- modern 200 00:09:03,210 --> 00:09:06,920 llawer craffach a mwy defnyddiol nag C crynoadyddion mewn bod chi 201 00:09:06,920 --> 00:09:09,740 Gall rhoi'r swyddogaeth i fyny yma, gallwch roi swyddogaeth i lawr yma, 202 00:09:09,740 --> 00:09:12,740 ac mae'r cyfieithydd yn mynd i wneud i chi y blaid o ddarllen 203 00:09:12,740 --> 00:09:16,010 y ffeil cyfan cyn iddo benderfynu nad yw rhai swyddogaeth yn bodoli. 204 00:09:16,010 --> 00:09:17,970 Felly gwelliannau 'n glws o flynyddoedd yn ddiweddarach. 205 00:09:17,970 --> 00:09:22,126 Ond mae hefyd yn rhywbeth arall sy'n wahanol neu'n absennol yma. 206 00:09:22,126 --> 00:09:22,626 Yeah? 207 00:09:22,626 --> 00:09:25,084 >> MYFYRIWR: [Anghlywadwy]. 208 00:09:25,084 --> 00:09:27,750 DAVID J. Malan: nid oes rhaid i ni datgan y mathau o newidynnau, 209 00:09:27,750 --> 00:09:31,780 felly byddwn yn gweld cyn bo hir fod mae gwahanol fathau yn PHP, 210 00:09:31,780 --> 00:09:34,970 ond nid oes angen i chi eu nodi nhw, sydd hefyd yn da a drwg. 211 00:09:34,970 --> 00:09:36,623 Ac mae un peth arall ar goll. 212 00:09:36,623 --> 00:09:37,430 >> MYFYRIWR: Does dim llyfrgelloedd. 213 00:09:37,430 --> 00:09:38,630 >> DAVID J. Malan: Nid oes unrhyw lyfrgelloedd. 214 00:09:38,630 --> 00:09:39,350 Iawn, felly dyna neis. 215 00:09:39,350 --> 00:09:40,540 Rydym yn cael llawer mwy allan o'r bocs. 216 00:09:40,540 --> 00:09:43,373 Felly mae mewn gwirionedd llawer mwy pethau nag yr oeddwn yn meddwl yn wahanol. 217 00:09:43,373 --> 00:09:44,350 Beth am ffordd yn ôl? 218 00:09:44,350 --> 00:09:46,032 Beth sy'n bod? 219 00:09:46,032 --> 00:09:46,740 Yn dweud ei fod unwaith eto? 220 00:09:46,740 --> 00:09:47,960 >> MYFYRIWR: Pointer. 221 00:09:47,960 --> 00:09:49,270 >> DAVID J. Malan: Dim awgrymiadau. 222 00:09:49,270 --> 00:09:51,280 OK, o leiaf yn yr enghraifft hon, dim. 223 00:09:51,280 --> 00:09:52,070 Mae hynny'n deg. 224 00:09:52,070 --> 00:09:55,090 Felly nid oes awgrymiadau yn PHP mewn gwirionedd yn gyffredinol. 225 00:09:55,090 --> 00:09:58,730 Ceir cyfeiriadau rhywbeth o'r enw, ond ni fyddwn yn treulio gormod o amser yno. 226 00:09:58,730 --> 00:09:59,520 A beth arall? 227 00:09:59,520 --> 00:10:00,185 >> MYFYRIWR: Main. 228 00:10:00,185 --> 00:10:01,060 DAVID J. Malan: Main. 229 00:10:01,060 --> 00:10:02,768 Felly, dyma oedd y biggie Roeddwn yn meddwl am. 230 00:10:02,768 --> 00:10:04,660 Hysbysiad does dim prif bwynt mynediad. 231 00:10:04,660 --> 00:10:06,525 Rydych yn syml, yn dechrau ysgrifennu eich cod. 232 00:10:06,525 --> 00:10:08,400 Ac mae hyn yn mewn gwirionedd mynd i fod yn fanteisiol 233 00:10:08,400 --> 00:10:10,560 pan fyddwn yn pontio am ennyd i mewn gwirionedd gan ddefnyddio 234 00:10:10,560 --> 00:10:13,980 yr un iaith ar gyfer y we sy'n seiliedig ar- rhaglennu, yr ydym 235 00:10:13,980 --> 00:10:16,580 nad ydych am i gael dim ond un pwynt mynediad. 236 00:10:16,580 --> 00:10:19,980 Efallai y byddwn am gael criw o URLs, bagad o wahanol ffeiliau 237 00:10:19,980 --> 00:10:22,930 gyd yn cymryd yn y mewnbwn defnyddwyr a chynhyrchu allbwn. 238 00:10:22,930 --> 00:10:27,130 >> Ond dyma yw'r digalon iawn enghraifft bod addewais tro diwethaf, 239 00:10:27,130 --> 00:10:30,130 sef yn y ffolder hwn yma, camsillafiadau. 240 00:10:30,130 --> 00:10:33,680 Felly, yn y ffeil hon sillafu, yr ydym Ni fydd yn treulio gormod o amser ar, mae yna 241 00:10:33,680 --> 00:10:37,870 hanfod yn porting-- P-O-R-T. Dim ond y gair a roddwyd pryd, dyweder, 242 00:10:37,870 --> 00:10:40,800 byddwch yn newid o un iaith i un arall â llaw fel arfer. 243 00:10:40,800 --> 00:10:45,680 >> Mae hwn yn drosi o PC Fersiwn o sillafu o PSET 5. 244 00:10:45,680 --> 00:10:48,856 Ac yr wyf yn y bôn ceisio drosi mae'n fesul llinell mor agos ag y gallaf. 245 00:10:48,856 --> 00:10:51,730 Felly, os ydych yn hoffi y math hwn o beth, mae mewn gwirionedd yn werth ar ryw adeg 246 00:10:51,730 --> 00:10:54,229 eu tynnu i fyny y ddau ochr yn ochr a gweld beth sydd yr un fath 247 00:10:54,229 --> 00:10:55,230 a beth sy'n wahanol. 248 00:10:55,230 --> 00:10:57,510 Ond maent yn eithaf darn tebyg. 249 00:10:57,510 --> 00:11:00,110 Os ydych yn cofio beth sillafu hyd yn oed yn edrych fel, 250 00:11:00,110 --> 00:11:02,110 hyd yn oed os na wnaethoch rhaid i ni newid y ffeil, 251 00:11:02,110 --> 00:11:04,860 mae'n eithaf tebyg strwythurol gyda dim ond cwpl 252 00:11:04,860 --> 00:11:06,200 newidiadau yma ac acw. 253 00:11:06,200 --> 00:11:10,140 >> Felly mae hyn yn unig i ddweud ei fod yn 'n bert syml i drosi sillafu 254 00:11:10,140 --> 00:11:12,000 o C i PHP. 255 00:11:12,000 --> 00:11:15,390 Ond mewn geiriadur, mae rhywbeth hyd yn oed yn fwy cymhellol. 256 00:11:15,390 --> 00:11:19,270 Gadewch i mi fynd yn ei flaen ac yn creu fy ffeil dictionary.php hun. 257 00:11:19,270 --> 00:11:24,010 Felly, ychydig yn wahanol yn hynny o byddwn yn ei alw'n .php yn lle .c. 258 00:11:24,010 --> 00:11:26,980 Gan fod hon yn ffeil PHP, yr wyf yn do-- ychydig annoyingly-- gael 259 00:11:26,980 --> 00:11:30,132 i gychwyn y ffeil gyda tag php fel 'na. 260 00:11:30,132 --> 00:11:32,340 Ac yr wyf i'n mynd i fynd yn ei flaen ac yn diffinio rhai swyddogaethau. 261 00:11:32,340 --> 00:11:35,770 Swyddogaeth a elwir yn siec, sef mynd i gymryd mewn gair fel o'r blaen. 262 00:11:35,770 --> 00:11:37,520 Ond mae dadl hwn mynd i gael doler 263 00:11:37,520 --> 00:11:39,840 llofnodi oherwydd ein bod, unwaith eto, gan ddefnyddio PHP. 264 00:11:39,840 --> 00:11:42,350 Swyddogaeth arall o Roedd dictionary.c llwyth 265 00:11:42,350 --> 00:11:47,120 ac mae'n cymryd yn enw'r geiriadur, felly byddaf yn cael y swyddogaeth yn barod i fynd. 266 00:11:47,120 --> 00:11:50,920 >> Un arall yn dictionary.c oedd beth? 267 00:11:50,920 --> 00:11:54,580 Maint yn un o'r rhai garedicaf, yn lleiaf os ydych yn cadw rhywfaint o amrywiol o gwmpas. 268 00:11:54,580 --> 00:11:57,830 felly dim ond mae maint i ddychwelyd newidyn. 269 00:11:57,830 --> 00:11:59,090 Ac yna yr oedd dadlwytho. 270 00:11:59,090 --> 00:12:02,830 >> Felly roedd pedwar rhain swyddogaethau yn y broblem a osodwyd 5 271 00:12:02,830 --> 00:12:06,770 bod angen i chi ei rhoi ar waith gyda rhywfaint o strwythur data neu strwythurau. 272 00:12:06,770 --> 00:12:10,170 Felly yr wyf yn addo bod yn PHP, gallwn ddatgan 273 00:12:10,170 --> 00:12:14,490 tabl hash, er enghraifft, bob un sy'n haws. 274 00:12:14,490 --> 00:12:17,377 Yn wir, os wyf am tabl hash, Im 'jyst yn mynd i fynd fel' na 275 00:12:17,377 --> 00:12:18,460 ac mae fy mwrdd hash. 276 00:12:18,460 --> 00:12:21,555 A dyna y nodyn, ddigalon, ein bod yn chwith oddi ar y tro diwethaf. 277 00:12:21,555 --> 00:12:23,930 A ydych yn gwybod beth, os oeddwn i eisiau newidyn ar gyfer maint, yn dda, 278 00:12:23,930 --> 00:12:25,867 Nid yw hyn yn un i gyd sy'n wahanol i C, 279 00:12:25,867 --> 00:12:27,450 ond yr wyf i'n mynd i fynd yn ei flaen ac yn gwneud hynny. 280 00:12:27,450 --> 00:12:28,630 Ac yn sylwi ar unrhyw fath o ddata. 281 00:12:28,630 --> 00:12:31,180 A byddaf yn mynd yn ôl yn nes ymlaen ac mewn gwirionedd yn ychwanegu rhai sylwadau yma. 282 00:12:31,180 --> 00:12:32,480 Ond beth am y llwyth? 283 00:12:32,480 --> 00:12:35,780 >> Os geiriadur arwydd doler yw enw fy ffeil 284 00:12:35,780 --> 00:12:39,600 a Fi 'n weithredol yn awyddus i lwytho geiriau yn y tabl hwn yn awr, 285 00:12:39,600 --> 00:12:42,360 Gallaf ei wneud mewn gwirionedd rhywbeth eithaf syml. 286 00:12:42,360 --> 00:12:44,880 One-- ac mae hyn yn minorly annoying-- yn PHP, 287 00:12:44,880 --> 00:12:47,710 rhaid i chi nodi y tu mewn o swyddogaeth os ydych 288 00:12:47,710 --> 00:12:51,060 awyddus i gael gafael ar rai byd-eang newidyn sy'n cael ei diffinio'n tu allan. 289 00:12:51,060 --> 00:12:53,530 >> Ond nid yw hynny'n arbennig diddorol ar hyn o bryd. 290 00:12:53,530 --> 00:12:57,920 Beth sydd yn fwy diddorol yw hwn ar gyfer pob un adeiladu y soniais amdanynt tro diwethaf. 291 00:12:57,920 --> 00:13:01,880 Ac mae'n ymddangos fod PHP swyddogaeth Gelwir ffeil y mae ei bwrpas mewn bywyd 292 00:13:01,880 --> 00:13:05,550 yw i agor ffeil ac yn darllen ar y pob un o'i linellau i mewn arae 293 00:13:05,550 --> 00:13:06,840 ac yn llaw yn ôl i. 294 00:13:06,840 --> 00:13:12,170 >> Pa un yw dweud fy mod yn gallu gwneud geiriadur hynny sydd bellach yn effeithiol pan alwaf ffeil, 295 00:13:12,170 --> 00:13:15,472 mae hyn yn mynd i law mi yn ôl amrywiaeth o eiriau o'r ffeil. 296 00:13:15,472 --> 00:13:16,430 Nid yw popeth yn dda hwnnw. 297 00:13:16,430 --> 00:13:20,130 Mae hi dal yn mynd i fod yn llinell o eiriau, rhywbeth llinol. 298 00:13:20,130 --> 00:13:23,880 Ond gallaf fynd yn ei flaen ac yn ailadrodd dros bob un o'r geiriau hyn gan ddefnyddio 299 00:13:23,880 --> 00:13:25,710 bod cystrawen gwelsom tro fyr diwethaf. 300 00:13:25,710 --> 00:13:27,940 A byddwch yn gweld yn fwy yn y PSET sydd i ddod. 301 00:13:27,940 --> 00:13:32,070 >> Ond yn awr mae gen i ailadrodd dolen dros bob gair yn y geiriadur. 302 00:13:32,070 --> 00:13:36,100 Ac ar bob iteriad, yn cofio fy mod galw y gair cyfredol "gair." 303 00:13:36,100 --> 00:13:39,790 A'r holl mae'n mynd i gymryd i rhoi gair yn y geiriadur yn 304 00:13:39,790 --> 00:13:43,530 mynd i fod yn dyfalu gair "yn wir." 305 00:13:43,530 --> 00:13:44,740 Dyna fy insert swyddogaeth. 306 00:13:44,740 --> 00:13:46,661 Dyna fy swyddogaeth llwyth am fy ngeiriadur. 307 00:13:46,661 --> 00:13:49,410 Nawr mae'n dipyn o twyllo oherwydd, eich bod yn gwybod beth, mae mewn gwirionedd 308 00:13:49,410 --> 00:13:52,920 slaes n ar ddiwedd y geiriau y mae'n debyg y dylwn gael gwared, 309 00:13:52,920 --> 00:13:56,380 ond nid yw hynny'n broblem oherwydd PHP wedi swyddogaeth o'r enw chop sy'n llythrennol 310 00:13:56,380 --> 00:13:58,480 golwythion oddi ar un cymeriad ar y diwedd un. 311 00:13:58,480 --> 00:13:59,400 Felly nid oes problem yno. 312 00:13:59,400 --> 00:14:02,199 Rydym wedi mynd yn ei flaen ac mewn gwirionedd fyrhau bod i ddim ond hyn. 313 00:14:02,199 --> 00:14:05,240 Ac yn awr mae'n debyg y dylwn gadw trac o faint, felly gadewch i ni o leiaf yn gwneud this-- 314 00:14:05,240 --> 00:14:05,835 maint ++. 315 00:14:05,835 --> 00:14:07,339 Rwy'n gallu gwneud hynny fel o'r blaen. 316 00:14:07,339 --> 00:14:10,380 Ac yna mae hyn yn fwy na thebyg yn mynd i yn gweithio jyst ddirwya, fel bod yn dychwelyd yn wir. 317 00:14:10,380 --> 00:14:10,930 Done. 318 00:14:10,930 --> 00:14:11,797 PSET 5. 319 00:14:11,797 --> 00:14:13,545 >> [Chwerthin] 320 00:14:13,545 --> 00:14:14,420 >> DAVID J. Malan: OK. 321 00:14:14,420 --> 00:14:16,628 Rydym yn mynd i wneud hynny eto gyda'r PSET nesaf, hefyd. 322 00:14:16,628 --> 00:14:18,730 Felly beth am faint? 323 00:14:18,730 --> 00:14:22,080 Wel, mae hyn yn un, gobeithio, yn ymwneud â fel y byddech yn disgwyl y tro diwethaf, 324 00:14:22,080 --> 00:14:24,460 er bod rhaid i mi wneud y peth fyd-eang dwp. 325 00:14:24,460 --> 00:14:26,610 'I' jyst yn arteffact o dyluniad yr iaith. 326 00:14:26,610 --> 00:14:28,450 >> Ond mae siec yn ychydig yn fwy diddorol. 327 00:14:28,450 --> 00:14:31,420 Felly, os wyf yn pasio yn doler llofnodi gair, yr wyf yn gyntaf 328 00:14:31,420 --> 00:14:34,060 awyddus i gael mynediad i y tabl newidyn byd-eang. 329 00:14:34,060 --> 00:14:36,700 Ac yn awr os wyf eisiau gadarnhau a oes gair yno, 330 00:14:36,700 --> 00:14:44,350 Gallaf ddweud yn syml os yw'n wir bod y canlynol yn cael ei osod yn y tabl, 331 00:14:44,350 --> 00:14:49,957 Yna mynd yn ei flaen ac yn dychwelyd yn wir; arall, yn dychwelyd ffug. 332 00:14:49,957 --> 00:14:51,180 Done. 333 00:14:51,180 --> 00:14:52,440 Mae hanner arall y PSET 5. 334 00:14:52,440 --> 00:14:54,540 >> Mae pob hawl, felly unwaith eto, rwy'n torri rhai corneli. 335 00:14:54,540 --> 00:14:56,831 Bod yn deg, yr wyf dylai yn ôl pob tebyg yn treulio ychydig mwy o eiliadau 336 00:14:56,831 --> 00:14:58,300 ar weithredu hyn. 337 00:14:58,300 --> 00:15:01,860 Ac yr wyf yn ôl pob tebyg ni ddylai ffug holl oriau rydych yn ei roi ar y PSET cymaint. 338 00:15:01,860 --> 00:15:04,045 Felly strtolower yn swyddogaeth. 339 00:15:04,045 --> 00:15:06,670 Rhywbeth dirfodol tebyg yn C, o leiaf ar gyfer cymeriadau, 340 00:15:06,670 --> 00:15:08,560 ond mae PHP yn got a fersiwn llinyn cyfan. 341 00:15:08,560 --> 00:15:11,226 >> Mae hynny'n mynd i orfodi popeth i lythrennau bach, y mae rhai ohonoch 342 00:15:11,226 --> 00:15:14,944 allai fod wedi ei wneud i canonicalize beth baech chi'n gosod yn eich geiriadur. 343 00:15:14,944 --> 00:15:16,360 Ac yn awr y gallwch chi wneud hyn yn C, hefyd. 344 00:15:16,360 --> 00:15:17,780 Mae hyn wedi ddim i'w wneud â PHP. 345 00:15:17,780 --> 00:15:20,260 >> Ond unrhyw tro y byddwch yn cael cyflwr Boole, 346 00:15:20,260 --> 00:15:22,680 fel rhywbeth ar lein 10 yno, sydd ond 347 00:15:22,680 --> 00:15:27,145 mynd i werthuso i gwir neu ffug, ac yn eich os arall glir 348 00:15:27,145 --> 00:15:33,620 yn dychwelyd gwir neu gau, y gallwn yn syml 'n sylweddol yn gwneud sexier hwn 349 00:15:33,620 --> 00:15:38,360 a dim ond yn gwneud rhywbeth fel hyn. 350 00:15:38,360 --> 00:15:40,500 Fel y mae fy swyddogaeth gwirio. 351 00:15:40,500 --> 00:15:42,560 Iawn, os yw'r Boole yn dychwelyd wir neu'n anwir, 352 00:15:42,560 --> 00:15:44,630 gadewch i ni dim ond dychwelyd ar unwaith. 353 00:15:44,630 --> 00:15:47,340 >> Ac mae rhai tweaks eraill Gallwn wneud yma ac acw. 354 00:15:47,340 --> 00:15:51,380 Dadlwytho Load--, gyda llaw, sy'n cael ei wneud. 355 00:15:51,380 --> 00:15:52,850 Dim byd i'w wneud yno. 356 00:15:52,850 --> 00:15:55,840 Gan fod pob un o'r cof yn PHP a llawer o ieithoedd eraill 357 00:15:55,840 --> 00:15:57,570 yn cael ei reoli mewn gwirionedd ar eich cyfer chi. 358 00:15:57,570 --> 00:16:00,330 Felly, tra yn C, fel y rydych wedi dysgu poenus, 359 00:16:00,330 --> 00:16:04,700 unrhyw beth rydych malloc neu calloc neu realloc, mae'n rhaid i chi i ryddhau eich hun. 360 00:16:04,700 --> 00:16:08,770 Unrhyw beth rydych fopen, rhaid i chi fclose, fel bod adnoddau yn cael eu rhyddhau yn y pen draw 361 00:16:08,770 --> 00:16:11,690 ac nid yw offer fel Valgrind yn ei wneud sylwi ac nid ydynt yn cwyno, 362 00:16:11,690 --> 00:16:13,570 sy'n beth da i redeg ar eu cyfer. 363 00:16:13,570 --> 00:16:16,190 >> Ond yn sicr, mae'n rhaid i yno fod rhywfaint o dal, dde? 364 00:16:16,190 --> 00:16:19,400 Fel arall, rydym yn fath o wastraffu criw cyfan o wythnosau. 365 00:16:19,400 --> 00:16:23,270 Felly mae unrhyw nifer o resymau pam yr ydym yn fath o gymryd llwybr hwn, 366 00:16:23,270 --> 00:16:24,440 ond mae masnach-off. 367 00:16:24,440 --> 00:16:25,820 I'r dde, mae hyn wedi bod yn thematig. 368 00:16:25,820 --> 00:16:29,690 >> Felly beth allai cyfaddawd yma yn symud, o C i PHP? 369 00:16:29,690 --> 00:16:33,250 Teimlo fel i gyd yn ennill hyd yn hyn ar wahân ychydig o hylltra yma ac acw. 370 00:16:33,250 --> 00:16:34,040 Yeah. 371 00:16:34,040 --> 00:16:34,700 Beth sy'n bod? 372 00:16:34,700 --> 00:16:36,064 >> MYFYRIWR: [Anghlywadwy] cof. 373 00:16:36,064 --> 00:16:36,980 DAVID J. Malan: Cyflymder. 374 00:16:36,980 --> 00:16:37,479 OK. 375 00:16:37,479 --> 00:16:40,720 Wel, fy cyflymder yn eithaf cyflym. 376 00:16:40,720 --> 00:16:42,020 Hawl? 377 00:16:42,020 --> 00:16:44,320 Ond mae cyflymder y gweithredu i roi'r rhaglen? 378 00:16:44,320 --> 00:16:45,580 Iawn, felly mae hynny'n bwynt teg. 379 00:16:45,580 --> 00:16:50,930 >> Felly, fel y byddai'n digwydd, yr wyf o flaen llaw Giwio i fyny y ddau fy ateb cais, mae'r un 380 00:16:50,930 --> 00:16:53,510 Roedd gen i ar y bwrdd mawr yn ateb sy'n seiliedig arni-, 381 00:16:53,510 --> 00:16:55,510 ac yr wyf wedi bod yn y cyfeiriadur hwn yn fan hyn. 382 00:16:55,510 --> 00:16:58,510 Felly yr wyf yn mewn munud, gallaf fynd yn ei flaen ac rhedeg hyn ar y Brenin Iago Beibl, 383 00:16:58,510 --> 00:16:59,657 taro Enter. 384 00:16:59,657 --> 00:17:01,990 Ac mae hyn yn gobeithio gywir gweithredu ar y diwedd, 385 00:17:01,990 --> 00:17:05,109 yn rhoi amser i mi i gyd o 0.38 eiliad ar gyfer hynny 386 00:17:05,109 --> 00:17:07,270 un enghraifft braidd yn fympwyol. 387 00:17:07,270 --> 00:17:09,270 >> Ac os wyf yn awr yn mynd i mewn i hyn ail ffenestr terfynell 388 00:17:09,270 --> 00:17:14,569 dyma lle agorais gedit yn gyntaf, gadewch i i mi fynd i mewn i code-- heddiw sydd, unwaith eto, 389 00:17:14,569 --> 00:17:19,650 yw yn y cyfeiriadur hwn Yma-- ac gadewch i mi fynd yn ei flaen ac yn rhedeg sillafu. 390 00:17:19,650 --> 00:17:23,470 Felly, dim ond i fod yn glir, dyma'r fersiwn PHP. 391 00:17:23,470 --> 00:17:25,170 Im 'jyst yn dangos ben hynny yma. 392 00:17:25,170 --> 00:17:32,020 >> Felly, os wyf yn gwneud sillafu o CS50 tild PSET 5 testunau, y Brenin Iago, fynd i mewn. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 Mae'n dal i fod yn gyflymach na ysgrifennu yn C, ond cyfanswm yr amser 395 00:17:43,050 --> 00:17:47,650 yw, rhybudd, 0.93, tra bod fy Gweithredu seiliedig-C yn 0.38. 396 00:17:47,650 --> 00:17:49,110 Felly mae'n wahaniaeth heb fod yn ddibwys. 397 00:17:49,110 --> 00:17:51,100 >> Ac mae hyn yn unig ar un ffeil. 398 00:17:51,100 --> 00:17:53,480 Pe baech yn rhedeg y ddau rhaglenni yn erbyn y bwrdd mawr 399 00:17:53,480 --> 00:17:56,510 a chael criw cyfan o fewnbynnau profi, byddai hyn yn sicr yn ychwanegu i fyny. 400 00:17:56,510 --> 00:18:00,310 Ac os oedd gennym setiau data hyd yn oed mwy o faint, hyn, hefyd, yn ychwanegu i fyny yn oed yn fwy. 401 00:18:00,310 --> 00:18:04,820 Felly ie, talu rhywfaint pris o cyflymder yn wir yn wir. 402 00:18:04,820 --> 00:18:05,470 Beth arall? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Yeah? 405 00:18:08,860 --> 00:18:10,340 >> MYFYRIWR: Swm y defnydd RAM. 406 00:18:10,340 --> 00:18:11,756 >> DAVID J. Malan: Swm y defnydd RAM. 407 00:18:11,756 --> 00:18:15,380 Felly doeddwn i ddim yn rhoi un eiliad meddwl wrth ysgrifennu PHP hwn 408 00:18:15,380 --> 00:18:17,300 Fersiwn ynghylch faint cof Roeddwn yn defnyddio. 409 00:18:17,300 --> 00:18:22,080 Rydw i'n llwyr gohirio hynny i PHP ei hun a phwy bynnag ysgrifennodd y rhaglen honno. 410 00:18:22,080 --> 00:18:24,500 A allai fod yn iawn, ond os Fi 'n weithredol' n sylweddol 411 00:18:24,500 --> 00:18:28,420 poeni am gwasgu cymaint o berfformiad allan o fy rhaglen neu allan o fy gwefan 412 00:18:28,420 --> 00:18:31,150 neu allan o ba bynnag offeryn Im 'yn adeiladu, efallai 413 00:18:31,150 --> 00:18:33,310 PHP, yn wir, nid yw'r iaith gywir. 414 00:18:33,310 --> 00:18:36,330 >> Ac yn wir, dyna pam, er enghraifft, mae llawer o servers-- we 415 00:18:36,330 --> 00:18:38,980 y rhaglenni gwirioneddol sy'n gweini content-- we 416 00:18:38,980 --> 00:18:41,810 yn cael eu hysgrifennu mewn PHP neu yn Python neu Ruby. 417 00:18:41,810 --> 00:18:44,630 Maent yn cael eu hysgrifennu, fel byddwch yn awr yn ei wneud gyda PSEt 6, 418 00:18:44,630 --> 00:18:48,120 yn C fel y gallwch wasgu pob darn o berfformiad allan ohono 419 00:18:48,120 --> 00:18:50,780 ac yn wir yn ymarfer rheoli mân-grawn dros beth sy'n 420 00:18:50,780 --> 00:18:52,980 mynd ymlaen o dan y cwfl ac nid dim ond mynd ag ef 421 00:18:52,980 --> 00:18:54,890 yn ganiataol rhai uwch strwythur data lefel. 422 00:18:54,890 --> 00:18:58,071 >> Ystyriwch, wedi'r cyfan, pwy bynnag mewn PHP ar waith 423 00:18:58,071 --> 00:19:00,070 y syniad o hash table-- ei fod mewn gwirionedd yn fwy 424 00:19:00,070 --> 00:19:04,260 a elwir yn briodol yn array-- cysylltiadol mae ef neu hi yn cael unrhyw syniad pa fath 425 00:19:04,260 --> 00:19:07,090 o fewnbynnau yr ydych yn mynd i fod rhoi i mewn i'r strwythur? 426 00:19:07,090 --> 00:19:08,260 Felly, yn amlwg nid, dde? 427 00:19:08,260 --> 00:19:10,340 Mae'n arf generig yn y pecyn cymorth sydd ar 428 00:19:10,340 --> 00:19:13,430 a ddarperir i unrhyw un sydd am i'w ddefnyddio, ac yn y blaen yn sicr iddo 429 00:19:13,430 --> 00:19:17,680 Ni ellir ei optimized yn y pen draw am yr union beth rydych am ei wneud. 430 00:19:17,680 --> 00:19:21,180 >> Felly, gallai amser datblygu masnach-offs-- yn wahanol, efallai y perfformiad yn wahanol, 431 00:19:21,180 --> 00:19:23,120 Gallai cymhlethdod neu chof chynefod yn wahanol. 432 00:19:23,120 --> 00:19:24,820 Ac felly yr hyn y byddwch yn dod o hyd yn gynyddol yw bod yna 433 00:19:24,820 --> 00:19:26,570 yn mynd i fod yn wahanol offer ar gyfer y fasnach. 434 00:19:26,570 --> 00:19:31,160 Ac yn wir am fwyafrif super o prosiectau terfynol pobl yn y dosbarth hwn, 435 00:19:31,160 --> 00:19:34,360 credwch neu beidio, nid yw C yn mynd i fod yn yr iaith gywir i'w defnyddio. 436 00:19:34,360 --> 00:19:37,880 >> Ac yn wir, un o'r siopau cludfwyd yn y pen draw ar gyfer unrhyw ddosbarth fel hyn 437 00:19:37,880 --> 00:19:40,510 yw i wneud i chi feddwl am, yn dda, beth ddylech chi ei dynnu i ffwrdd 438 00:19:40,510 --> 00:19:42,710 y silff pan fyddwch eisiau i ddatrys rhyw broblem. 439 00:19:42,710 --> 00:19:46,720 Ac yn wir, byddwn yn croesi'r bont hon hyd yn oed mwy wrth i ni edrych ar fwy o ieithoedd 440 00:19:46,720 --> 00:19:47,920 hyd yn oed y tu hwnt heddiw. 441 00:19:47,920 --> 00:19:50,530 >> Felly gadewch i ni pontio nawr i efallai cyd-destun mwy cyfarwydd 442 00:19:50,530 --> 00:19:52,480 am ddefnyddio iaith fel PHP. 443 00:19:52,480 --> 00:19:56,720 Mae'n braidd yn gyffredin i'w defnyddio yn y llinell orchymyn, ysgrifennu sgriptiau 444 00:19:56,720 --> 00:19:59,050 fel y gwnes i, ond mae'n llawer, llawer mwy cyffredin. 445 00:19:59,050 --> 00:20:02,350 A'r bwriad oedd i gael ei ddefnyddio mewn ar ffurf ffeiliau sydd fel arfer yn dod i ben 446 00:20:02,350 --> 00:20:05,060 yn .php-- ond mae hynny'n nid yw prerequisite-- 447 00:20:05,060 --> 00:20:07,990 bod eu hunain yn cynhyrchu cynnwys ar y we. 448 00:20:07,990 --> 00:20:11,310 >> Felly, gadewch i mi fynd yn ei flaen ac yn agor ychydig enghreifftiau I baratoi ymlaen llaw. 449 00:20:11,310 --> 00:20:15,100 A dyma mewn gwirionedd yn fath o wir straeon yn yr un o'r pethau cyntaf 450 00:20:15,100 --> 00:20:18,200 Wyf byth yn gwneud fy hun ar ôl gorffen CS50 ac efallai, yr wyf yn meddwl, 451 00:20:18,200 --> 00:20:21,350 Flynyddoedd CS51 yn ôl yw fy roommate ac yr wyf yn helpu 452 00:20:21,350 --> 00:20:24,320 i redeg y rhyngfurol freshman rhaglen chwaraeon, a oedd, ar y pryd, 453 00:20:24,320 --> 00:20:28,610 Roedd freshman cofrestru ar gyfer gwahanol chwaraeon trwy lenwi darn o bapur, 454 00:20:28,610 --> 00:20:31,800 fel y gelwid, cerdded ar draws yr iard i Wigglesworth, 455 00:20:31,800 --> 00:20:34,030 ac yn gollwng ei mewn rhai galw heibio drws Proctor yn. 456 00:20:34,030 --> 00:20:37,210 Ac yna byddai ef neu hi yn mynd trwy nhw ac yna mewn gwirionedd yn llaw e-bostiwch ni 457 00:20:37,210 --> 00:20:39,140 ein bod yn cofrestru ar gyfer rhai chwaraeon. 458 00:20:39,140 --> 00:20:41,166 >> Felly, yn amlwg, yn gyfle ar gyfer gwella. 459 00:20:41,166 --> 00:20:44,040 Y dyddiau hyn, efallai y byddwch yn troi at jyst Ffurflenni Google, ond yn ôl yn y dydd, 460 00:20:44,040 --> 00:20:46,914 roedd rhaid i ni gyrraedd mewn gwirionedd for-- hyn Nid oedd hyd yn oed yn hynny o amser ago-- cyrraedd 461 00:20:46,914 --> 00:20:49,410 ar gyfer rhaglennu iaith nad oedd yn PHP. 462 00:20:49,410 --> 00:20:51,200 Ar y pryd, yr oedd yn rhywbeth o'r enw Perl, 463 00:20:51,200 --> 00:20:52,890 sydd wedi mynd allan o ffasiwn ers hynny. 464 00:20:52,890 --> 00:20:54,160 Ond mae'r syniad yr un fath. 465 00:20:54,160 --> 00:20:58,940 >> Ac yr wyf yn y bôn yn eistedd i lawr i roi cynnig i borthladd yn mynd fersiynau Perl i PHP, 466 00:20:58,940 --> 00:21:03,710 ond mewn ymwadiad llawn, nid oedd yn rhoi unrhyw Credir bod y estheteg eto. 467 00:21:03,710 --> 00:21:04,960 Felly dyma yn dudalen we. 468 00:21:04,960 --> 00:21:05,670 Mae hyn yn ffeil. 469 00:21:05,670 --> 00:21:09,470 Os byddaf yn chwyddo i mewn, ei debyg Gelwir froshim0.php 470 00:21:09,470 --> 00:21:12,060 dim ond oherwydd ei fod yn ein cyntaf Enghraifft yn y gyfres hon. 471 00:21:12,060 --> 00:21:15,970 Ac yn sylwi ei fod wedi yr hyn sy'n ymddangos i fod yn ffurf HTML hyll iawn, 472 00:21:15,970 --> 00:21:18,680 ond mae ffurflen yn ddiddorol oherwydd ei fod yn caniatáu 473 00:21:18,680 --> 00:21:21,910 mi i roi mewnbwn defnyddiwr i'r porwr. 474 00:21:21,910 --> 00:21:27,730 >> Nawr tro diwethaf pan oedd gennym ffurflen, i pwy wnaeth rydym yn cyflwyno ein paramedr ymholiad, 475 00:21:27,730 --> 00:21:30,450 y paramedr ciw fel y gelwid? 476 00:21:30,450 --> 00:21:31,330 Felly i Google, dde? 477 00:21:31,330 --> 00:21:34,090 Rydym punted llwyr ar y syniad o gwneud unrhyw beth gyda mewnbwn hwnnw. 478 00:21:34,090 --> 00:21:36,160 >> Ond heddiw, rydym yn dechrau cynhyrchu allbwn. 479 00:21:36,160 --> 00:21:39,420 Ac ymddygiad yr wyf i'n mynd i weld yma yn y lle cyntaf yn eithaf dibwys. 480 00:21:39,420 --> 00:21:42,980 David, 'n annhymerus' gwirio off rhyw yma, yn dweud Matthews yma. 481 00:21:42,980 --> 00:21:43,800 Ni fyddaf yn gapten. 482 00:21:43,800 --> 00:21:45,410 Rydw i'n mynd i glicio Gofrestr. 483 00:21:45,410 --> 00:21:50,720 Ac yn sylwi bod yr URL wedi newid i gofrestru-0.php, 484 00:21:50,720 --> 00:21:52,310 ac yna mae hyn yn destun hyll yma. 485 00:21:52,310 --> 00:21:54,460 Rhoddais unrhyw meddwl i y fformatio hyn. 486 00:21:54,460 --> 00:21:59,900 >> Ond yr hyn sy'n ddiddorol yw bod tri yn ôl pob golwg gwerthoedd eu pasio yn. 487 00:21:59,900 --> 00:22:02,960 Mae hwn yn fath o PHP cyfateb i printf-- 488 00:22:02,960 --> 00:22:06,330 gawn ni weld beth y mae'n ei alw 'n sylweddol mewn bit-- mai dim ond yn argraffu allan 489 00:22:06,330 --> 00:22:08,300 hyn yr ydych yn pasio i mewn iddo. 490 00:22:08,300 --> 00:22:11,414 Felly mae hyn yn awgrymu bod y ffurflen honno Roedd gan o leiaf tri chae iddo, 491 00:22:11,414 --> 00:22:12,580 a welsoch fi yn eu teipio i mewn. 492 00:22:12,580 --> 00:22:15,739 Roedd un yn fy enw i, roedd un yn rhyw, roedd un yn noswylio. 493 00:22:15,739 --> 00:22:18,780 Ac nid capten oedd hyd yn oed yn cael eu hanfon at y gweinydd oherwydd doeddwn i ddim yn ei wirio. 494 00:22:18,780 --> 00:22:22,150 >> Felly, mae hyn yn ei ddweud yn ôl pob golwg, pan fyddwch yn cyflwyno pethau ar y we, 495 00:22:22,150 --> 00:22:26,830 nid yn unig y mae'r URL weithiau change-- weithiau nid yw'n gwneud hynny. 496 00:22:26,830 --> 00:22:30,330 Yn wir, newidiodd yr enw ffeil, ond yr hyn sy'n absennol o'r URL 497 00:22:30,330 --> 00:22:32,861 ein bod wedi gwneud yn gweld y tro diwethaf gyda Google. 498 00:22:32,861 --> 00:22:33,360 Yeah? 499 00:22:33,360 --> 00:22:34,380 >> MYFYRIWR: Dim llinyn ymholiad 500 00:22:34,380 --> 00:22:35,220 >> DAVID J. Malan: Does dim llinyn ymholiad. 501 00:22:35,220 --> 00:22:37,270 Does dim cwestiwn farc rhywbeth. 502 00:22:37,270 --> 00:22:40,050 Does dim cwestiwn farc q hafal cathod, fel y gwnaethom y tro diwethaf. 503 00:22:40,050 --> 00:22:42,170 A does dim yn sicr Enw'r marc cwestiwn yn dychwelyd 504 00:22:42,170 --> 00:22:46,310 David neu dorm hafal Matthews, felly lle mae bod i gyd yn mynd? 505 00:22:46,310 --> 00:22:51,290 >> Wel, gadewch i mi fynd yn ôl i gedit yma ac yn agor y cyntaf o ffeiliau rhai 506 00:22:51,290 --> 00:22:57,020 yn fy vhost, llu lleol, y cyhoedd cyfeiriadur yma ac yn mynd i mewn i froshim0. 507 00:22:57,020 --> 00:23:02,060 Felly, mae'n troi allan bod bron i gyd y dudalen hon yn unig yw HTML. 508 00:23:02,060 --> 00:23:05,410 A gallai hyn fod yn anghyfarwydd i chi, ond yn fuan bydd yn fwy felly gyda PSET 6 509 00:23:05,410 --> 00:23:07,370 a PSET 7 a PSET 8. 510 00:23:07,370 --> 00:23:09,160 Ond dim ond un dudalen HTML yw hon. 511 00:23:09,160 --> 00:23:12,400 >> A'r pethau diddorol ymddangos i fod dros yma. 512 00:23:12,400 --> 00:23:16,290 Mae ffurflen tag y mae eu camau priodoledd Mae gwerth o gofrestr 0. 513 00:23:16,290 --> 00:23:18,890 Dyna pam pan fyddaf yn cyflwyno hyn, mae'n mynd at y ffeil. 514 00:23:18,890 --> 00:23:20,620 Ond mae dull yn wahanol ar ôl today--. 515 00:23:20,620 --> 00:23:23,120 Felly, mae'n troi allan mae 'o leiaf ddau ddull ar y we a ddefnyddir 516 00:23:23,120 --> 00:23:24,911 i anfon gwybodaeth o borwr i gweinydd. 517 00:23:24,911 --> 00:23:25,980 Get yn ei roi yn yr URL. 518 00:23:25,980 --> 00:23:27,950 Post rhoi yn rhywle arall. 519 00:23:27,950 --> 00:23:30,570 A phryd a pham y gallai chi mewn gwirionedd am gael gwefan 520 00:23:30,570 --> 00:23:34,110 i ddefnyddio post yna yn lle o gael, dim ond yn reddfol? 521 00:23:34,110 --> 00:23:37,080 Unrhyw wefan. 522 00:23:37,080 --> 00:23:42,010 Pa fath o ddata y dylid eu pasio yn unig drwy awgrym yn awr drwy'r post yn hytrach na 523 00:23:42,010 --> 00:23:45,184 i gael, os ydym wedi gweld y ddau gwahaniaethau? 524 00:23:45,184 --> 00:23:46,350 MYFYRIWR: [Anghlywadwy] ddiogel. 525 00:23:46,350 --> 00:23:47,790 DAVID J. Malan: Os ydych am rhywbeth i fod yn ddiogel. 526 00:23:47,790 --> 00:23:50,360 Felly, efallai y byddwch yn teipio cyfrinair i mewn i gwefan, cerdyn credyd 527 00:23:50,360 --> 00:23:53,030 i mewn i gwefan byddai fath o rhain suboptimal 528 00:23:53,030 --> 00:23:56,220 os bydd y porwr rhoi hynny Gwerth tu mewn i'r URL. 529 00:23:56,220 --> 00:23:57,680 Pam? 530 00:23:57,680 --> 00:24:00,059 Byddwch yn gweld ei fod, nad yw'n yn ymddangos i fod yn beth mawr o'r fath, 531 00:24:00,059 --> 00:24:03,350 ond groes yn eithaf chi gerdded yn aml ffwrdd oddi wrth eich cyfrifiadur cyfrifiadur neu ddefnyddio 532 00:24:03,350 --> 00:24:05,310 labordai, ac yn y blaen rhywun arall neu hyd yn oed roommate 533 00:24:05,310 --> 00:24:08,220 Gellid yn hawdd cerdded i fyny ac yn gweld bod gwybodaeth breifat. 534 00:24:08,220 --> 00:24:10,220 Pan fyddwch yn anfon e-bost ar y we, mae'n debyg 535 00:24:10,220 --> 00:24:12,350 ddim eisiau bod yn dod i ben data i fyny yn yr URL yn ogystal. 536 00:24:12,350 --> 00:24:15,266 Ac felly mae unrhyw nifer o resymau pam y gallai rydym am ei roi yma. 537 00:24:15,266 --> 00:24:18,610 A hawl photos--, ni allaf hyd yn oed yn eithaf dychmygwch sut y byddech yn cymryd graffig, 538 00:24:18,610 --> 00:24:21,480 fel JPEG, a'i roi i mewn URL. 539 00:24:21,480 --> 00:24:22,330 Gallech wneud hynny. 540 00:24:22,330 --> 00:24:25,840 Mae ffyrdd o amgodio iddo, ond mae'n dim ond nid yn syml fel 'na. 541 00:24:25,840 --> 00:24:29,030 >> Felly gofrestru 0 mewn gwirionedd underwhelming iawn. 542 00:24:29,030 --> 00:24:31,610 Mae'r holl mae'n ei ddweud yn llythrennol yw hyn. 543 00:24:31,610 --> 00:24:35,910 Mae'n yn argraffu allan tu mewn rhai HTML tagiau y canlynol. 544 00:24:35,910 --> 00:24:38,640 Mae gen i tag PHP yma nythu tu mewn cyn tag. 545 00:24:38,640 --> 00:24:42,300 "Cyn" dim ond yn golygu testun cyn-fformatio, mono gofod, fel teipiadur. 546 00:24:42,300 --> 00:24:44,836 >> Printr yn swyddogaeth recursive print. 547 00:24:44,836 --> 00:24:46,710 Ac yna mae hyn yn peth diddorol yma. 548 00:24:46,710 --> 00:24:48,835 A byddwn yn dod yn ôl at hyn oherwydd mae pobl eraill, 549 00:24:48,835 --> 00:24:51,140 ond tanlinellu arwydd doler y swydd yn ymddangos yn 550 00:24:51,140 --> 00:24:56,110 newidyn yn PHP yn lle unrhyw beth chi anfon o porwr i gweinydd 551 00:24:56,110 --> 00:24:58,040 yn cael ei storio ar eich cyfer. 552 00:24:58,040 --> 00:25:00,930 A chawn weld sut i gael o y wybodaeth cyn bo hir. 553 00:25:00,930 --> 00:25:04,000 >> Ond yn gyntaf, gadewch i ni fynd yn ôl i enghraifft ychydig yn wahanol. 554 00:25:04,000 --> 00:25:09,050 Mynd i mewn i register-- neu yn hytrach, froshims1.php, 555 00:25:09,050 --> 00:25:10,470 sy'n edrych ychydig yn wahanol. 556 00:25:10,470 --> 00:25:12,670 Cymerais ychydig yn fwy ymdrech gyda fformatio, 557 00:25:12,670 --> 00:25:14,370 hyd yn oed er ei fod yn dal i fod yn eithaf hyll. 558 00:25:14,370 --> 00:25:16,990 Ond dw i'n mynd i fynd yn ei flaen a deipio i mewn "David" nawr. 559 00:25:16,990 --> 00:25:17,850 Gwryw. 560 00:25:17,850 --> 00:25:19,360 Byddwn yn gwirio "capten" y tro hwn. 561 00:25:19,360 --> 00:25:20,660 Fe wnawn Matthews. 562 00:25:20,660 --> 00:25:22,430 A chofrestru. 563 00:25:22,430 --> 00:25:24,110 >> A'r tro hwn y mae'n ei ddweud, EM, nid mewn gwirionedd. 564 00:25:24,110 --> 00:25:26,180 Mae pob hawl, felly beth gofrestr 1? 565 00:25:26,180 --> 00:25:30,509 Gadewch i mi fynd i mewn i gofrestr agored 1 EM ac--. 566 00:25:30,509 --> 00:25:32,300 Mae pob hawl, felly mae hyn yn ddiddorol, ac mae hyn yn 567 00:25:32,300 --> 00:25:34,880 yn gam tuag yn awr tuag at rhaglenni mwy diddorol. 568 00:25:34,880 --> 00:25:38,970 >> Sylwch ar y top y ffeil mae gan Tag PHP yn ogystal â rhai sylwadau. 569 00:25:38,970 --> 00:25:42,590 Ac mae'r rhain yn, am y tro, yn tynnu sylw felly gadewch i ni dim ond cael gwared ar y sylwadau hynny 570 00:25:42,590 --> 00:25:47,070 yn union fel eu bod yn C. Ac yr wyf yn hawlio gyda darn yma o god gyda sylw 571 00:25:47,070 --> 00:25:49,280 bod y cod hwn yw dilysu'r cyflwyniad. 572 00:25:49,280 --> 00:25:51,690 >> Wel, mae'n ymddangos fod newidynnau fel arwydd doler 573 00:25:51,690 --> 00:25:53,739 tanlinellu post yn Gelwir newidynnau super. 574 00:25:53,739 --> 00:25:55,530 Maen nhw fel y rhain newidynnau byd-eang arbennig 575 00:25:55,530 --> 00:25:58,840 sydd yr un Omni-ar hyn o bryd sydd ar gael o fewn eich rhaglen. 576 00:25:58,840 --> 00:26:03,870 A gallwch ddefnyddio nodiant braced sgwâr i mynegai i mewn iddynt beidio â defnyddio rhifau 577 00:26:03,870 --> 00:26:07,460 fel 0, 1, 2, 3, ond geiriau eu hunain. 578 00:26:07,460 --> 00:26:12,100 >> Felly, gallwch chi feddwl am arwydd doler tanlinellu swydd fel math o tabl hash 579 00:26:12,100 --> 00:26:15,920 y gallech ei drosglwyddo allwedd i mewn i, am-edrych gair mewn-rhwng y bachau petryal, 580 00:26:15,920 --> 00:26:19,370 ac mae'n mynd i roi rhywbeth yn ôl i'r chi gwerth y mae'r defnyddiwr a ddarperir mewn gwirionedd. 581 00:26:19,370 --> 00:26:21,210 PHP swyddogaeth Gelwir wag mai dim ond 582 00:26:21,210 --> 00:26:23,720 yn dweud ie neu ddim, mae hyn yn newidyn yn wag ai peidio. 583 00:26:23,720 --> 00:26:27,250 Mae gennym bariau dwbl hyn, a dim ond yn golygu, neu, fel yn C. 584 00:26:27,250 --> 00:26:31,740 >> Felly, i bob pwrpas, y llinell 4 yn unig dweud os nad yw'r defnyddiwr yn rhoi enw 585 00:26:31,740 --> 00:26:36,540 neu ddim yn rhoi rhyw neu nid oedd rhoi dorm, mynd yn ei flaen ac ailgyfeirio iddo 586 00:26:36,540 --> 00:26:38,184 neu hi drwy'r llinell hon fan hyn. 587 00:26:38,184 --> 00:26:40,600 Felly mae hwn yn ychydig yn cryptic, ond mae hyn yn unig yn golygu yn llythrennol 588 00:26:40,600 --> 00:26:43,330 mynd yn ôl i'r lleoliad hwn, felly mae'n Punts defnyddiwr 589 00:26:43,330 --> 00:26:45,420 yn ôl i ble bynnag y daeth ef neu hi rhag. 590 00:26:45,420 --> 00:26:47,880 Ond mae'n ychydig yn inelegant yn fy mod godio yn anodd. 591 00:26:47,880 --> 00:26:52,150 >> Ond beth os yw hyn os yw cyflwr nid yw'n gwerthuso i gwir? 592 00:26:52,150 --> 00:26:55,790 Beth os bydd y defnyddiwr yn rhoi i mi ei neu ei henw a dorm a rhyw? 593 00:26:55,790 --> 00:26:58,540 Os nad yw cyflwr yn mynd i werthuso i gwir, 594 00:26:58,540 --> 00:27:00,650 felly dwi ddim yn taro yr allanfa yn llinell 7. 595 00:27:00,650 --> 00:27:01,680 Felly, beth sy'n digwydd? 596 00:27:01,680 --> 00:27:03,880 Ac mae hyn yn beth sy'n diddorol am PHP. 597 00:27:03,880 --> 00:27:07,470 >> Gallwch alw i mewn ac allan y dull PHP, fel petai. 598 00:27:07,470 --> 00:27:10,985 Os ydych am gael rhywfaint o cod i weithredu, gallwch agor a chau'r tag PHP 599 00:27:10,985 --> 00:27:13,010 ac yn rhoi cod yno fel yr wyf wedi ei wneud yma. 600 00:27:13,010 --> 00:27:16,810 Cyn gynted ag y byddwch yn cau y tag PHP, mae'r gweinydd 601 00:27:16,810 --> 00:27:19,407 yn unig yn mynd i boeri allan beth bynnag yr ydych yn ei roi yno. 602 00:27:19,407 --> 00:27:21,740 Ac yn wir, mae hyn yn rhan o y cynllun gwreiddiol o PHP, 603 00:27:21,740 --> 00:27:25,280 er gwell, er gwaeth, roedd hyn commingling o god a markup 604 00:27:25,280 --> 00:27:25,920 iaith. 605 00:27:25,920 --> 00:27:28,670 A byddwn yn gweld bod hyn yn iawn yn gyflym yn datganoli i mewn i llanast. 606 00:27:28,670 --> 00:27:31,280 Ac felly byddwn yn gwneud yn well na mae hyn yn y pen draw, ond dim ond 607 00:27:31,280 --> 00:27:35,620 yn sylwi pa mor hawdd rwy'n â hwy mewn gwirionedd yn gallu cyflawni rhywfaint o resymeg. 608 00:27:35,620 --> 00:27:37,440 >> Ond yn dal i fod ychydig yn anfoddhaol. 609 00:27:37,440 --> 00:27:41,210 Gadewch i agor fersiwn dau o IMS Frosh, a oedd 610 00:27:41,210 --> 00:27:44,270 yn ôl pob golwg yn cyflwyno i register2.php. 611 00:27:44,270 --> 00:27:47,600 Felly y ffeil hon yn mynd mewn gwirionedd i edrych bron yr un fath. 612 00:27:47,600 --> 00:27:50,780 Rydw i'n mynd i fynd i Frosh IMS 2. 613 00:27:50,780 --> 00:27:53,050 Ond yn Frosh IMS 2, gadewch i ni weld beth sy'n digwydd. 614 00:27:53,050 --> 00:27:58,110 >> David, cliciwch y botwm radio, fel y fe'i gelwir; Matthews, dim capten. 615 00:27:58,110 --> 00:27:59,230 Cofrestru. 616 00:27:59,230 --> 00:28:00,130 Ydych wedi cofrestru. 617 00:28:00,130 --> 00:28:00,700 Ddim mewn gwirionedd. 618 00:28:00,700 --> 00:28:02,574 O aros, rydym yn unig yn gwneud yr enghraifft honno, nid wnaethom ni? 619 00:28:02,574 --> 00:28:04,520 Mae pob hawl, yn sefyll yn ôl. 620 00:28:04,520 --> 00:28:06,602 Byddwn yn gwneud y tri. 621 00:28:06,602 --> 00:28:08,560 Mae'n amlwg bod rhywbeth yn ymwneud â i ddigwydd gyda Gmail. 622 00:28:08,560 --> 00:28:09,600 Byddwn yn cyrraedd yno. 623 00:28:09,600 --> 00:28:11,900 >> Felly Frosh IMS 3 yn edrych fel hyn. 624 00:28:11,900 --> 00:28:13,050 Ddim gwahanol. 625 00:28:13,050 --> 00:28:19,850 Ond pan fyddaf yn gwneud David, gwryw, Matthews, a cofrestru, y trydydd a'r olaf version 626 00:28:19,850 --> 00:28:22,230 hawliadau, yn syml, i chi yn cael eu cofrestru mewn gwirionedd. 627 00:28:22,230 --> 00:28:23,560 Dyna fath o amherthnasol. 628 00:28:23,560 --> 00:28:25,600 Ond yr wyf yn gwneud cais gyda hyn trydydd a therfynol version 629 00:28:25,600 --> 00:28:30,610 Yr wyf yn awr wedi ail-greu yn union beth mae fy roommate ac yr wyf adeiladwyd ar gyfer y IMS Frosh 630 00:28:30,610 --> 00:28:31,731 flynyddoedd y rhaglen yn ôl. 631 00:28:31,731 --> 00:28:32,480 Ac yr oedd yn syml. 632 00:28:32,480 --> 00:28:34,330 Nid oedd unrhyw gronfa ddata, dim taenlen Excel. 633 00:28:34,330 --> 00:28:36,450 Ond yn bwysicach, nid oedd unrhyw bapur mwy 634 00:28:36,450 --> 00:28:42,520 gan fod yr hyn a wnaethom gyda rhaglen hon oedd mewn gwirionedd yn e-bostio'r proctor, a oedd 635 00:28:42,520 --> 00:28:44,530 Roedd yn derbyn y gorffennol pethau hyn trwy ffurflenni. 636 00:28:44,530 --> 00:28:48,890 >> Ac i bob golwg rydym wedi rhaglennu hyn yn fath fodd fel bod pan fydd rhywun yn cofrestru, 637 00:28:48,890 --> 00:28:52,470 Negeseuon e-bost cyfrif John Harvard yn y proctor-- neu ef ei hun yn yr achos hwn, 638 00:28:52,470 --> 00:28:55,960 John Harvard-- gyda'r canlynol text-- "Mae'r person cofrestredig yn unig." 639 00:28:55,960 --> 00:29:00,560 Enw i yw David, capten yn wag; rhyw, gwryw; a dorm, Matthews. 640 00:29:00,560 --> 00:29:01,560 >> Felly beth ddigwyddodd yno? 641 00:29:01,560 --> 00:29:05,360 Wel, y ffeil dan sylw fan hyn yn ôl pob golwg register3.php. 642 00:29:05,360 --> 00:29:09,080 Ac os wyf yn agor hyn, byddwch yn gweld ddau grym cod fel hyn 643 00:29:09,080 --> 00:29:12,380 a hefyd, a dweud y gwir, mae'r ansicrwydd o system fel e-bost. 644 00:29:12,380 --> 00:29:16,290 Rwyf wedi esgus jyst yn effeithiol i fod John Harvard yn y ffordd ganlynol. 645 00:29:16,290 --> 00:29:20,920 >> Mae gen i'r tag php agored i fyny top, a oedd jyst yn dweud yma hon ychydig cod PHP. 646 00:29:20,920 --> 00:29:23,155 Lawr yma, yn troi allan yno mae llyfrgelloedd yn PHP. 647 00:29:23,155 --> 00:29:26,410 'Ch jyst nad oes angen i cynnwys ffeiliau header cymaint. 648 00:29:26,410 --> 00:29:28,900 Byddwch yn cael mwy gyda'r sinc y gegin, fel petai. 649 00:29:28,900 --> 00:29:31,820 >> Ond y tro hwn yn llinell 4, yr wyf yn ei wneud eisiau lyfrgell arbennig o'r enw 650 00:29:31,820 --> 00:29:36,087 PHP Mailer, sy'n rhywbeth yr ydych Gall gosod am ddim mewn llawer o systemau. 651 00:29:36,087 --> 00:29:37,920 Lawr fan hyn i ddim yn dilysu y cyflwyniad yn unig 652 00:29:37,920 --> 00:29:40,540 drwy wirio oedd y defnyddiwr yn rhoi mi gael enw, a rhyw, a dorm. 653 00:29:40,540 --> 00:29:44,130 Ac os felly, mynd yn ei flaen ac enghreifftio Mailer. 654 00:29:44,130 --> 00:29:47,020 >> Gallwch feddwl am hyn fel bod yn llinell o god sydd yn unig yn dyrannu. 655 00:29:47,020 --> 00:29:48,950 Mae fel malloc, ond 'i' ychydig yn sexier 656 00:29:48,950 --> 00:29:51,790 yn yr ystyr nad ydych yn sôn yn unig malloc a rhywfaint rhif generig. 657 00:29:51,790 --> 00:29:55,030 Yr ydych yn dweud yn rhoi un o'r rhain i mi, roi i mi un newydd o'r rhain. 658 00:29:55,030 --> 00:29:57,950 >> Ac os ydych chi wedi rhaglennu yn Java neu C ++ neu ieithoedd eraill, 659 00:29:57,950 --> 00:29:59,130 Efallai eich bod wedi gweld hyn. 660 00:29:59,130 --> 00:30:01,840 Ond y tymor byr ohono, os anghyfarwydd, y llinell hon 661 00:30:01,840 --> 00:30:05,410 rhoi i mewn i bost arwydd doler a struct arbennig o'r enw 662 00:30:05,410 --> 00:30:08,731 gwrthrych sydd wedi adeiladu i mewn ymarferoldeb e-bost. 663 00:30:08,731 --> 00:30:10,355 Ac yn wir, yn sylwi a chystrawen tebyg. 664 00:30:10,355 --> 00:30:11,900 >> Nid yw hyn yn pwyntydd, fel y cyfryw. 665 00:30:11,900 --> 00:30:13,990 PHP jyst yn defnyddio'r un gystrawen. 666 00:30:13,990 --> 00:30:17,660 Mae'r llinell hon yn ei ddweud defnydd Trosglwyddo Mail Syml SMTP-- 667 00:30:17,660 --> 00:30:20,900 Protocol, sydd ychydig y protocol a ddefnyddir i anfon post. 668 00:30:20,900 --> 00:30:24,240 Mae hyn yn pennu'r defnydd Gweinydd SMTP Harvard, sy'n 669 00:30:24,240 --> 00:30:25,830 yn rhywle yma ar y campws. 670 00:30:25,830 --> 00:30:28,480 >> Mae hyn yn ei ddweud pa TCP porthladd rhif i siarad â nhw, 671 00:30:28,480 --> 00:30:31,650 a Fi jyst cyfrifedig allan gan googling neu drwy ofyn i'r ddesg gymorth. 672 00:30:31,650 --> 00:30:34,640 Ac yna gan fod Harvard yn defnyddio rhai diogelwch system ar y server-- bost 673 00:30:34,640 --> 00:30:37,060 o leiaf i amgryptio traffig rhyngoch chi ac ef, 674 00:30:37,060 --> 00:30:41,380 er y gall unrhyw un anfon iddo- Rydw i'n mynd i droi ar y protocol TLS 675 00:30:41,380 --> 00:30:42,710 am gadw hyn yn ddiogel. 676 00:30:42,710 --> 00:30:44,730 >> Ond mae hyn yn lle pethau cael ychydig yn frawychus. 677 00:30:44,730 --> 00:30:47,970 Gallaf jyst fympwyol dweud fy mod jharvard, 678 00:30:47,970 --> 00:30:51,930 a gallaf jyst fympwyol anfon e-bost fy hun yma. 679 00:30:51,930 --> 00:30:55,650 Ac yna gallaf bennu pwnc gyda'r llinell hon fan hyn. 680 00:30:55,650 --> 00:30:58,460 >> Ac mae hyn yn unig yn edrych yn hyll, ond mae'n dim ond bagad o concatenation. 681 00:30:58,460 --> 00:31:04,480 Troi allan PHP Mae symbol super ddefnyddiol, fel rhai ieithoedd, mae'r gweithredwr dot, 682 00:31:04,480 --> 00:31:07,340 a dim ond yn llythrennol concatenates llinyn ar ôl llinyn ar ôl llinyn, 683 00:31:07,340 --> 00:31:09,810 ac nid oes rhaid i malloc neu ffigur i chi allan cyfanswm hyd y llinyn. 684 00:31:09,810 --> 00:31:10,820 Rydych yn unig yn ei wneud. 685 00:31:10,820 --> 00:31:15,220 Ac yn wir, oherwydd fy mod i'n gydgadwyno'r ym mhob un o'r pethau hyn gyda dotiau hyn, 686 00:31:15,220 --> 00:31:18,330 dyna pam yr e-bost i mi anfonwyd yn edrych fel y gwnaeth. 687 00:31:18,330 --> 00:31:20,610 >> Ac yna yn olaf yma, dw i'n anfon post. 688 00:31:20,610 --> 00:31:22,580 Felly, os yw hyn yn ffug, Im 'jyst yn mynd i farw, 689 00:31:22,580 --> 00:31:25,680 sydd yn swyddogaeth sydd yn unig printiau i'r sgrin rhyw neges gwall. 690 00:31:25,680 --> 00:31:29,170 Ond y mae, mewn gwirionedd, ffonio'r swyddogaeth anfon. 691 00:31:29,170 --> 00:31:31,780 Fel arall, os yw pob un yw hyn yn methu, mae'n ail-gyfeiriadau i mi yn ôl yma. 692 00:31:31,780 --> 00:31:34,050 >> A pham wnaeth Gwelaf fod Rydw i'n cofrestru mewn gwirionedd? 693 00:31:34,050 --> 00:31:36,110 Wel, digwyddodd iawn yma. 694 00:31:36,110 --> 00:31:38,170 Felly, yr wyf yn dod â hyn i fyny am un neu ddau o resymau. 695 00:31:38,170 --> 00:31:41,542 >> Un, mae hyn yn union sut os ydych yn adeiladu rhywfaint o wefan ar gyfer prosiect terfynol 696 00:31:41,542 --> 00:31:44,000 neu ar gyfer y byd go iawn, mae hyn yn sut yr ydych yn anfon e-bost atgoffa 697 00:31:44,000 --> 00:31:45,924 at eich cwsmeriaid neu eich tanysgrifwyr. 698 00:31:45,924 --> 00:31:47,590 Mae hyn yn sut yr ydych yn anfon nodiadau atgoffa cyfrinair. 699 00:31:47,590 --> 00:31:50,760 Mae hyn yn sut yr ydych yn anfon negeseuon i bobl bod ganddynt Facebook newydd 700 00:31:50,760 --> 00:31:52,990 neges yn yr arfaeth neu rywbeth fel 'na. 701 00:31:52,990 --> 00:31:55,010 >> Ond mae hefyd yn siarad â y ffaith y gallai hyn 702 00:31:55,010 --> 00:31:58,160 wedi bod yn dda iawn o Davin neu unrhyw un arall. 703 00:31:58,160 --> 00:32:00,567 Ac yr wyf yn dweud y math hwn o gyda gwên oherwydd fy mod yn 704 00:32:00,567 --> 00:32:03,400 hollol siŵr beth sy'n mynd trwy amryw o'ch meddyliau yn y fan hon. 705 00:32:03,400 --> 00:32:11,910 Ond mae hyn yn un o'r rhai yn ei wneud gan fy mod yn dweud, nid fel yr wyf yn gwneud y math o bethau, 706 00:32:11,910 --> 00:32:14,480 oherwydd ei fod yn ddibwys i greu negeseuon e-bost fel hyn. 707 00:32:14,480 --> 00:32:16,480 Ond fel efallai eich bod wedi gweld neu ddarllen yn y Crimson, 708 00:32:16,480 --> 00:32:18,271 yn ddiweddar mae hefyd yn bert ddibwys i bobl 709 00:32:18,271 --> 00:32:20,050 i olrhain yn ôl i ryw tarddiad. 710 00:32:20,050 --> 00:32:23,790 Ac yn gofyn i mi beth amser, efallai amser cinio CS50, sut yr wyf yn gyntaf 711 00:32:23,790 --> 00:32:27,080 got gyfarwydd agos iawn bron i'r bwrdd ed flynyddoedd lawer 712 00:32:27,080 --> 00:32:30,890 yn ôl pan wnes i ddarganfod sut mae'r rhyngrwyd yn gweithio. 713 00:32:30,890 --> 00:32:36,940 Felly, mewn unrhyw achos-- ychydig ar ôl y bwrdd ed wnaeth. 714 00:32:36,940 --> 00:32:42,300 >> Felly, mewn unrhyw achos, mae criw cyfan o newidynnau super, 715 00:32:42,300 --> 00:32:45,960 gan eu bod yn gelwir yma, un ohonynt rydym saw-- post arwydd doler tanlinellu. 716 00:32:45,960 --> 00:32:49,530 Mae 'na cyfatebol o'r enw get, a dyna lle mae pethau o URL 717 00:32:49,530 --> 00:32:50,690 yn dod i ben i fyny yn mynd. 718 00:32:50,690 --> 00:32:54,051 Ac mae criw cyfan o bobl eraill, Sesiwn too-- a gweinydd a cookie. 719 00:32:54,051 --> 00:32:55,800 Byddwn yn dod yn ôl i cwci ryw adeg arall, 720 00:32:55,800 --> 00:33:01,340 ond mae sesiwn yn fath o oer oherwydd i'r dde now-- hyd nes now-- 721 00:33:01,340 --> 00:33:06,350 popeth yr ydym wedi ei wneud gyda porwr gwe yn fath o heb wladwriaeth, fel petai. 722 00:33:06,350 --> 00:33:10,060 Gallaf glicio o gwmpas, mynediad ffeiliau ar y gweinydd, rhywbeth 723 00:33:10,060 --> 00:33:13,500 yn digwydd ar y sgrin, ond yna bydd y cysylltiad yn cau. 724 00:33:13,500 --> 00:33:17,450 Mae Internet Explorer neu'r Firefox icon arosfannau nyddu 725 00:33:17,450 --> 00:33:20,340 a 'ch jyst yn gweld beth y dudalen hon yn cynnwys. 726 00:33:20,340 --> 00:33:23,530 >> Felly HTTP yn heb wladwriaeth yn hynny unwaith y bydd yn gwneud cysylltiad, 727 00:33:23,530 --> 00:33:25,050 cael rhywfaint o ddata, dyna ni. 728 00:33:25,050 --> 00:33:29,940 Dim mwy o gysylltiad, yn wahanol Skype, yn wahanol i FaceTime, GChat yn wahanol, a oedd yn 729 00:33:29,940 --> 00:33:32,180 yn cadw gyson cysylltu â'r gweinydd. 730 00:33:32,180 --> 00:33:34,650 Mae'r we yn sylfaenol ddatgysylltu, er ein fe 731 00:33:34,650 --> 00:33:36,630 gweld cyn bo hir sut gallwn ni efelychu pethau 732 00:33:36,630 --> 00:33:39,300 fel Facebook sgwrs a GChat, sy'n cynnal y illusion-- 733 00:33:39,300 --> 00:33:41,680 neu ei wneud mewn gwirionedd gynnal cysylltiad cyson gan ddefnyddio 734 00:33:41,680 --> 00:33:43,270 mwy o dechnoleg fodern. 735 00:33:43,270 --> 00:33:49,000 >> Ond os wyf yn mynd i, yn dweud, counter.php, mae hwn yn enghraifft syml arall, 736 00:33:49,000 --> 00:33:52,700 fel y byddwn yn gweld, sy'n meddwl ar hyn o bryd Ymwelais â'r safle sero amser. 737 00:33:52,700 --> 00:33:56,790 Ond os wyf yn syml ail-lwytho y dudalen, ei fod rywsut yn gwybod oeddwn yma o'r blaen. 738 00:33:56,790 --> 00:33:58,840 Os byddaf yn ail-lwytho eto, mae'n gwybod oeddwn yma o'r blaen. 739 00:33:58,840 --> 00:34:01,100 Ac eto ac eto ac eto ac eto. 740 00:34:01,100 --> 00:34:03,610 >> Felly, mae rhywfaint o plus-plussing digwydd, ond rhybudd 741 00:34:03,610 --> 00:34:07,090 y peth bach yn troi erioed felly yn fyr i fyny top ac yna datgysylltu, 742 00:34:07,090 --> 00:34:11,179 felly nid yw'n debyg gen i gyson cysylltiad i fy offer. 743 00:34:11,179 --> 00:34:16,929 Wel, os byddaf yn mynd i mewn i counter.php, yn sylwi pa mor hawdd yw hi. 744 00:34:16,929 --> 00:34:19,080 Cyntaf i mi galw hyn yn arbennig swyddogaeth yr ydym annhymerus fuan 745 00:34:19,080 --> 00:34:21,513 dechrau cymryd yn ganiataol Gelwir sesiwn cychwyn. 746 00:34:21,513 --> 00:34:22,179 Dechrau sesiwn. 747 00:34:22,179 --> 00:34:25,095 >> A sesiwn o hyn ymlaen yn unig mynd i fod yn bwced, fel siopa 748 00:34:25,095 --> 00:34:28,120 cart lle y gallwch roi gwerthoedd ac yn fath o ymddiried fel rhaglennydd 749 00:34:28,120 --> 00:34:31,590 eu bod yn mynd i fod yma pan y defnyddiwr yn dod back-- ail 750 00:34:31,590 --> 00:34:35,670 yn ddiweddarach, awr yn ddiweddarach, hyd yn oed flwyddyn yn ddiweddarach, cyhyd ag y bydd yn ei wneud Nid yw yn glir 751 00:34:35,670 --> 00:34:37,602 eu cwcis, fel y byddwn yn y pen draw yn gweld. 752 00:34:37,602 --> 00:34:39,310 Ac yn awr yr wyf yn unig wedi gael os bydd cyflwr yma. 753 00:34:39,310 --> 00:34:44,679 Felly, os bydd y allweddol canlynol, Gelwir cownter, yn cael ei osod y tu mewn 754 00:34:44,679 --> 00:34:49,210 o super hwn global-- hash hwn bwrdd, os ydych will-- elwir sesiwn, 755 00:34:49,210 --> 00:34:53,350 Yna mynd yn ei flaen ac yn mynnu y werth o'r meddwl session-- 756 00:34:53,350 --> 00:34:55,250 o hyn fel siopa cart-- ac yn ei storio 757 00:34:55,250 --> 00:34:57,680 mewn newidyn dros dro o'r enw cownter. 758 00:34:57,680 --> 00:35:02,240 >> Fel arall, os yw'r gwerth cownter oedd heb ei osod yn y basged siopa fel y'i gelwir, 759 00:35:02,240 --> 00:35:04,430 jyst ymgychwyn i 0. 760 00:35:04,430 --> 00:35:09,830 Yn olaf, i lawr yma, yn mynd a rhoi yn ôl i mewn i'r certiau siopa neu y sesiwn 761 00:35:09,830 --> 00:35:13,000 gwerth y cownter +1. 762 00:35:13,000 --> 00:35:16,730 Felly, mae'n troi allan bod hyn Yma-- cynhwysydd arbennig 763 00:35:16,730 --> 00:35:20,355 sydd, unwaith eto, yn un o'r cysylltiedig rhain , amrywiaeth y gallwch arrays mynegai 764 00:35:20,355 --> 00:35:25,010 mewn geiriau yn hytrach na numbers-- parhau hyd yn oed ar ôl y defnyddiwr yn mynd i ffwrdd. 765 00:35:25,010 --> 00:35:26,510 Unwaith eto, byddaf yn mynd yn ôl at y dudalen yn awr. 766 00:35:26,510 --> 00:35:28,400 Mae wedi bod yn funud neu ddau. 767 00:35:28,400 --> 00:35:31,300 Ond mae'n cofio fy mod i wedi bod yma 19 o weithiau o'r blaen. 768 00:35:31,300 --> 00:35:32,740 Mae hyn yn fy 20 ymweliad. 769 00:35:32,740 --> 00:35:36,560 >> Ac felly mae hyn yn mynd i fod yn allweddol i gweithredu unrhyw wefan sy'n cofio 770 00:35:36,560 --> 00:35:40,640 eich bod yn logio i mewn, eich bod yn rhoi rhywbeth llythrennol yn eich trol siopa 771 00:35:40,640 --> 00:35:43,902 i brynu neu eich bod yn cael rhywfaint o nifer o negeseuon yr arfaeth. 772 00:35:43,902 --> 00:35:45,610 Anytime ydych am cofio gwybodaeth, 773 00:35:45,610 --> 00:35:48,130 byddwn yn gweld bod PHP, fel nifer o ieithoedd eraill, 774 00:35:48,130 --> 00:35:53,640 yn rhoi i ni gyda rhith hwn o wladwriaeth hyd yn oed er, fel y byddwch yn gweld yn PSET 6, 775 00:35:53,640 --> 00:35:57,642 fel eich bod yn gwneud ceisiadau HTTP o cleient i'r gweinyddwr, dyna ni. 776 00:35:57,642 --> 00:35:59,850 Unwaith y byddwch yn mynd yn ôl y ymateb, does dim byd mwy 777 00:35:59,850 --> 00:36:01,790 dod yn ôl oddi wrth y gweinyddwr yn ddiofyn. 778 00:36:01,790 --> 00:36:03,820 Ond byddwn yn gweld sut i weithio o gwmpas hynny. 779 00:36:03,820 --> 00:36:07,430 >> Wel yn awr, gadewch i ni geisio glanhau hyn i fyny ychydig bach. 780 00:36:07,430 --> 00:36:09,470 Rydym wedi gweld ychydig enghreifftiau gwahanol yno. 781 00:36:09,470 --> 00:36:12,250 O, ac wrth fynd heibio, am rhai sy'n gyfarwydd neu'n anghyfarwydd, 782 00:36:12,250 --> 00:36:14,230 y rheswm bod y Aeth Enghraifft Frosh IMS 783 00:36:14,230 --> 00:36:18,060 o edrych 'n sylweddol hyll i slightly-- yn dda, 784 00:36:18,060 --> 00:36:23,160 dal ugly-- i ychydig llai hyll er bod dal i fod yn hyll 785 00:36:23,160 --> 00:36:25,230 oherwydd os edrychwn yn y cod ffynhonnell yma, 786 00:36:25,230 --> 00:36:28,240 mae'n troi allan fy mod wedi hyn ar frig y ffeil. 787 00:36:28,240 --> 00:36:32,570 >> Ymddangos bod y cychwyn yn un o nifer llyfrgelloedd ar gael am ddim i maes 'na 788 00:36:32,570 --> 00:36:37,140 nad sy'n bodoli ar gyfer ieithoedd rhaglennu bob amser, ond ar gyfer CSS neu ar gyfer JavaScript 789 00:36:37,140 --> 00:36:39,190 neu HTML neu unrhyw nifer o ieithoedd. 790 00:36:39,190 --> 00:36:42,160 >> A Folks hyn Yma-- Daeth allan yn wreiddiol 791 00:36:42,160 --> 00:36:44,730 o Twitter-- unig wedi criw cyfan o arddulliau. 792 00:36:44,730 --> 00:36:47,360 Mae'n ffeil enfawr yma bod rhywun ysgrifennodd, 793 00:36:47,360 --> 00:36:51,020 neu rywun yn ysgrifennu, dros gyfnod o amser sy'n yn nodi lliwiau a fformatio 794 00:36:51,020 --> 00:36:53,740 a whatnot fel y gallaf fath o fenthyg eu cystrawen 795 00:36:53,740 --> 00:36:56,157 a oes rhaid i chyfrif i maes sut i osod allan fy ffurflen. 796 00:36:56,157 --> 00:36:57,990 Mae hyn hefyd yn cael ei minified fel y gall cyfrifiadur 797 00:36:57,990 --> 00:37:00,560 ei deall ond nid reidrwydd yn ddynol. 798 00:37:00,560 --> 00:37:03,050 Felly dyna pam y stylization wedi newid yno. 799 00:37:03,050 --> 00:37:05,450 >> Ond gadewch i ni yn awr yn gwneud yn well o ran dyluniad, 800 00:37:05,450 --> 00:37:07,490 oherwydd os ydym yn aros i lawr y ffordd yn rhy hir, 801 00:37:07,490 --> 00:37:11,290 ein cod yn mynd i cael flêr ac Messier. 802 00:37:11,290 --> 00:37:13,040 Felly gadewch i ni ganolbwyntio ar yr enghreifftiau hyn yma. 803 00:37:13,040 --> 00:37:15,090 Mae'r olaf ar gyfer heddiw. 804 00:37:15,090 --> 00:37:18,720 >> Felly dyma yn super syml fersiwn 1.0 o wefan CS50 yn. 805 00:37:18,720 --> 00:37:21,250 Mae ganddi gysylltiadau â unig darlithoedd a maes llafur, 806 00:37:21,250 --> 00:37:25,490 ac mae'n defnyddio'r rhestr di-drefn tag-- y tag UL a ddefnyddiwyd gennym y tro diwethaf. 807 00:37:25,490 --> 00:37:28,800 Ac os yn wir, os byddaf agor View Tudalen Source, 808 00:37:28,800 --> 00:37:31,710 byddwch yn gweld bod hyn yn 'n sylweddol,' n sylweddol syml HTML. 809 00:37:31,710 --> 00:37:35,460 Ac yn wir, er bod hyn yn ffeil PHP dan y cwfl, 810 00:37:35,460 --> 00:37:38,620 mae'n dal i fod yn unig poeri allan yn unig HTML am y tro. 811 00:37:38,620 --> 00:37:41,312 >> Felly, os wyf yn clicio ar Darlithoedd, rydym yn gweld hyn yn digwydd. 812 00:37:41,312 --> 00:37:43,020 Ac os wyf yn clicio ar yr wythnos sero, rydym yn gweld hyn. 813 00:37:43,020 --> 00:37:44,920 Ac os byddaf yn cliciwch ar Dydd Mercher, rydym yn gweld hyn. 814 00:37:44,920 --> 00:37:47,900 Ac mae hyn yn ôl pob golwg oedd yr PDF o'r sleidiau o'r diwrnod hwnnw. 815 00:37:47,900 --> 00:37:52,020 Y cyfan yr wyf wedi ei wneud yw cysylltu gyda tag angor i'r URL hwn yma. 816 00:37:52,020 --> 00:37:55,400 >> Felly mae hyn yn unig i ddweud hyn yn 'n bert Fersiwn syml o wefan CS50 yn. 817 00:37:55,400 --> 00:37:56,790 Gadewch i ni weld sut y mae'n cael ei rhoi ar waith. 818 00:37:56,790 --> 00:38:01,240 Os byddaf yn mynd i mewn i'r cyfeiriadur mvc0, byddwn yn gweld ychydig o ffeiliau. 819 00:38:01,240 --> 00:38:03,250 Mae un yn README, felly os rhywfaint o hyn yn rhy gyflym, 820 00:38:03,250 --> 00:38:05,166 gallwch jyst brocio o gwmpas mwy hamddenol yn nes ymlaen. 821 00:38:05,166 --> 00:38:07,930 A rhybudd i mewn yma hon ar ffurf ffeil index.php. 822 00:38:07,930 --> 00:38:09,960 Mae'n ymddangos bod os chi eich hun, y dynol, 823 00:38:09,960 --> 00:38:14,460 peidiwch â nodi enw terfynol mewn URL, mae'r gweinydd gwe fel arfer 824 00:38:14,460 --> 00:38:17,010 infers rhywfaint o enw diofyn ar eich cyfer. 825 00:38:17,010 --> 00:38:20,060 Mynegai dot rhywbeth yn gyffredinol 'r ball. 826 00:38:20,060 --> 00:38:23,010 >> Felly dyna pam y funud yn ôl pan ymwelais â URL hyn yma, 827 00:38:23,010 --> 00:38:26,750 dim enw ffeil, dim ffeil estyniad, dim cyfnod yn yr URL. 828 00:38:26,750 --> 00:38:29,710 'I jyst yn gwybod rywsut magically i chwilio am index.php. 829 00:38:29,710 --> 00:38:30,870 Mai dim ond confensiwn. 830 00:38:30,870 --> 00:38:32,360 Gellid ei alw'n unrhyw beth. 831 00:38:32,360 --> 00:38:35,110 >> Felly os wyf yn awr yn mynd i mewn i index.php, byddwch yn gweld 832 00:38:35,110 --> 00:38:37,100 hynny, indeed-- gadewch i ni cael gwared ar y sylwadau 833 00:38:37,100 --> 00:38:39,500 yma oherwydd mae 'n sylweddol dim byd diddorol iddo- 834 00:38:39,500 --> 00:38:41,579 mae hyn yn unig yw godio HTML galed. 835 00:38:41,579 --> 00:38:43,370 Felly dyna gyson, fodd bynnag, gyda fy hawliad 836 00:38:43,370 --> 00:38:45,230 y gallwch commingle HTML a PHP. 837 00:38:45,230 --> 00:38:48,060 Does dim gwir rhaglennu rhesymeg yn fan hyn. 838 00:38:48,060 --> 00:38:51,030 >> Ac mae'r ffeiliau eraill yn eithaf llawer un mor anniddorol. 839 00:38:51,030 --> 00:38:56,240 'I' jyst caled-godio wythnos un yma i wythnos ac un wythnos m un w, 840 00:38:56,240 --> 00:38:57,510 ar gyfer dydd Llun a dydd Mercher. 841 00:38:57,510 --> 00:39:01,890 Ac yna os byddaf yn agor yr wythnos sero, yn sylwi ei fod yn bron yn union yr un fath. 842 00:39:01,890 --> 00:39:03,320 >> A dyna fath o siop tecawê allweddol. 843 00:39:03,320 --> 00:39:06,180 Sylwch pa mor segur mae hyn yn. 844 00:39:06,180 --> 00:39:10,710 Mae'r ffeiliau hyn prin yn newid, ac eto yr wyf yn tynnu un o'r swyddi hyn copi / past 845 00:39:10,710 --> 00:39:13,420 lle rwy'n cymryd un file-- yn ôl pob tebyg mewn wythnos zero-- gopïo ei 846 00:39:13,420 --> 00:39:16,320 pan ddaeth un wythnos o gwmpas, a tweaked ychydig o werthoedd. 847 00:39:16,320 --> 00:39:18,590 Dylem yn ôl pob tebyg fod yn gallu i wneud yn well na hyn. 848 00:39:18,590 --> 00:39:21,800 >> Felly, gadewch i ni fynd yn ôl i fyny at MVC ac yn mynd i mewn i fersiwn un. 849 00:39:21,800 --> 00:39:24,810 Ac yn sylwi gen i ychydig o ffeiliau, gan fod yr hyn 850 00:39:24,810 --> 00:39:29,870 yn gyffredin i bob un o'r ffeiliau rhai dim ond bryd ago-- os byddaf yn mynd yn ôl i'r fersiwn 0, 851 00:39:29,870 --> 00:39:32,600 gadewch i ni fynd yn ôl i mynegai, a dim ond postulate-- 852 00:39:32,600 --> 00:39:36,090 ar ôl i mi gael gwared ar y comments-- pa ran o'r dudalen hon 853 00:39:36,090 --> 00:39:40,072 yn ôl pob tebyg ym mhob un o fy ffeiliau? 854 00:39:40,072 --> 00:39:40,780 Dim ond yn ei alw allan. 855 00:39:40,780 --> 00:39:44,620 Pa linellau yn cael eu dyblygu ar draws pob un o'r tudalennau hyn yn ôl pob tebyg? 856 00:39:44,620 --> 00:39:45,120 Yeah? 857 00:39:45,120 --> 00:39:46,110 >> MYFYRIWR: [Anghlywadwy]. 858 00:39:46,110 --> 00:39:47,660 >> DAVID J. Malan: 1 drwy 9. 859 00:39:47,660 --> 00:39:48,720 Yeah, gwbl. 860 00:39:48,720 --> 00:39:52,080 1 drwy 9, ac eithrio efallai 8 yn newid ychydig gan fod CS50 861 00:39:52,080 --> 00:39:54,650 yn dod yn darlithoedd neu wythnos sero neu rywbeth. 862 00:39:54,650 --> 00:39:55,970 Ond bron yn union. 863 00:39:55,970 --> 00:39:58,657 Felly yr holl bethau hyn yn unig fath o gopïo a gludo. 864 00:39:58,657 --> 00:40:00,490 Ac mae cwpl llinellau eraill allaf feddwl 865 00:40:00,490 --> 00:40:05,000 o sydd yn union yr un fath yn ôl pob tebyg ar draws yr holl ffeiliau. 866 00:40:05,000 --> 00:40:06,315 >> MYFYRIWR: 12 a 13. 867 00:40:06,315 --> 00:40:07,190 DAVID J. Malan: Yeah. 868 00:40:07,190 --> 00:40:11,220 Cadarn, 12, 13, a 14 yn ôl pob tebyg, dim ond am fod y pethau diddorol 869 00:40:11,220 --> 00:40:15,460 sy'n digwydd ar linellau 11 a 10, felly byddai'n ymddangos. 870 00:40:15,460 --> 00:40:18,350 Felly gadewch i ni edrych ar fersiwn 1, sy'n ceisio gwella ar hyn. 871 00:40:18,350 --> 00:40:24,020 Mewn fersiwn 1 o'r hwn example-- MVC rydym chi helpu esbonio pa fodd MVC mewn moment-- 872 00:40:24,020 --> 00:40:27,420 os byddaf yn mynd i mewn i fynegai, mae'n fath o yn edrych ychydig yn ddryslyd nawr. 873 00:40:27,420 --> 00:40:28,880 Dyw hi ddim mor syml ag o'r blaen. 874 00:40:28,880 --> 00:40:30,906 >> Ond ar ôl i chi ddechrau ddarllen yn ofalus, 'i' 875 00:40:30,906 --> 00:40:32,530 eithaf syml yr hyn y mae'n ei wneud. 876 00:40:32,530 --> 00:40:34,397 Mae'n debyg llinell 1 a llinell 8 wedi cymryd lle 877 00:40:34,397 --> 00:40:37,230 pob un o'r stwff 'ch jyst identified-- ond dim ond ar gyfer mesur da, 878 00:40:37,230 --> 00:40:41,900 Gadewais y ULS yno rhag ofn rhyw Nid oedd gan dyddiau restr o bethau. 879 00:40:41,900 --> 00:40:47,860 Ac felly ei gwneud yn ofynnol yn fath o fel bunt cynnwys mewn copïau C. It a pastau 880 00:40:47,860 --> 00:40:50,470 y cynnwys yn effeithiol dde yma i mewn i'r ffeil. 881 00:40:50,470 --> 00:40:53,650 >> Felly, yn header.php, wrth i chi Gallai casglu oddi wrth ei enw, 882 00:40:53,650 --> 00:40:55,330 yn mynd i fod y pennawd ar y dudalen. 883 00:40:55,330 --> 00:40:57,110 Mae'n fath o ei amddifad yma. 884 00:40:57,110 --> 00:41:01,820 Dim ond mae gan y top iddo, ond does dim mwy o gynnwys isod. 885 00:41:01,820 --> 00:41:05,070 >> Ac os wyf yn edrych ar troedyn yn y cyfamser, sef y ffeil arall mentioned-- 886 00:41:05,070 --> 00:41:08,830 yr un yma hyd yn oed yn llai diddorol, ond unwaith eto, mae'n gyffredin i bopeth. 887 00:41:08,830 --> 00:41:10,250 Felly mae hwn yn y troedyn. 888 00:41:10,250 --> 00:41:11,300 Mae hyn yn y pennawd. 889 00:41:11,300 --> 00:41:13,950 Mae hyn yn y ffeil sydd ar newid, felly pam ddim 890 00:41:13,950 --> 00:41:18,140 ceisiwch ffactor allan i'r cyffredin gyda'r ddwy linell yma? 891 00:41:18,140 --> 00:41:20,090 >> Ond gallwn lanhau hyn i fyny ychydig ymhellach. 892 00:41:20,090 --> 00:41:23,260 Rydw i'n mynd i fynd yn ei flaen ac agor fersiwn dau lle 893 00:41:23,260 --> 00:41:27,106 byddwn yn gweld bod yna ffeil newydd, helpers.php. 894 00:41:27,106 --> 00:41:28,610 Gawn ni weld beth yw hwnnw mewn munud. 895 00:41:28,610 --> 00:41:30,930 Gadewch i ni fynd i'r mynegai, gan fod y pwynt mynediad fel o'r blaen. 896 00:41:30,930 --> 00:41:35,230 >> Ac yn awr yn sylwi fy mod yn ei gwneud yn ofynnol helpers.php, nid pennawd neu droedyn. 897 00:41:35,230 --> 00:41:41,720 Ond mae cynorthwywyr yn fath o hoffi helpers.c a helpers.h o PSET 2 898 00:41:41,720 --> 00:41:46,150 neu PSET 3 maith yn ôl pan fyddwch mewn gwirionedd ddim yn chwilio a dod o hyd am hynny PSET, 899 00:41:46,150 --> 00:41:50,950 ac yr ydych wedi cael eich holl cod ar gyfer didoli a chwilio mewn ffeil ar wahân. 900 00:41:50,950 --> 00:41:52,510 Dyna beth sy'n digwydd yma. 901 00:41:52,510 --> 00:41:54,390 >> Ac yn awr llinell 3 yn edrych ychydig yn wahanol. 902 00:41:54,390 --> 00:41:55,920 Ac mae'n un llinell yn unig. 903 00:41:55,920 --> 00:41:57,950 Er mwyn gwneud hyn hyd yn oed yn fwy yn glir, y gallwn jyst 904 00:41:57,950 --> 00:42:01,820 peidiwch bod hyn yn arddull gyson gyda phopeth arall rydym wedi ei wneud. 905 00:42:01,820 --> 00:42:04,130 Ond nid yw hynny'n wir yn newid y functionality. 906 00:42:04,130 --> 00:42:05,880 Dim ond un llinell o god go iawn. 907 00:42:05,880 --> 00:42:09,010 >> Mae'n debyg, mae swyddogaeth Gelwir rhywle rendro pennawd, 908 00:42:09,010 --> 00:42:11,420 a dyma lle mae pethau yn cael 'n bert pwerus. 909 00:42:11,420 --> 00:42:17,040 Hysbysiad bod tu mewn ei cromfachau yw pa ddarn arall o gystrawen? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 Mae'n debyg ychydig yn anodd dweud, ond sylwi there's-- 'N annhymerus' yn rhoi rhywfaint o wyn 912 00:42:23,350 --> 00:42:24,300 gofod. 913 00:42:24,300 --> 00:42:25,530 Mae cromfachau sgwâr. 914 00:42:25,530 --> 00:42:29,700 >> A bachau petryal gwelsom ychydig yn ôl yng nghyd-destun araeau cysylltiadol, 915 00:42:29,700 --> 00:42:31,580 sydd, unwaith eto, fel tablau hash. 916 00:42:31,580 --> 00:42:36,230 Ac os ydych yn meddwl nawr i C, y trefn y dadleuon i mewn i swyddogaeth 917 00:42:36,230 --> 00:42:37,570 wedi i fod yr un fath bob amser. 918 00:42:37,570 --> 00:42:41,146 Rhaid i chi gofio beth mae'r archebu yw-- x, y, z neu z, y, x-- 919 00:42:41,146 --> 00:42:44,020 ac mae'n rhaid i chi eu darparu bob amser yn yr un drefn, neu edrych i fyny 920 00:42:44,020 --> 00:42:45,100 os ydych wedi anghofio'ch. 921 00:42:45,100 --> 00:42:51,140 >> Ond mae hyn yn ymddangos i fod yn ffordd glyfar o basio gwerth allweddol mympwyol 922 00:42:51,140 --> 00:42:55,840 parau lle enw yw enw o ddadl yn yr achos hwn 923 00:42:55,840 --> 00:42:58,334 a CS50 yw ei werth. 924 00:42:58,334 --> 00:43:00,250 Ac mae'r ffaith bod gen i bachau petryal yma 925 00:43:00,250 --> 00:43:02,560 yma yn golygu y gallwn hefyd yn pasio mewn rhywbeth 926 00:43:02,560 --> 00:43:07,550 fel yr wythnos yn 1 neu 0 neu 2 neu 3. 927 00:43:07,550 --> 00:43:10,550 Felly rydym wedi parameterized swyddogaeth hon yn y fath fodd 928 00:43:10,550 --> 00:43:15,180 y gall gymryd lluosog mewnbynnau, ond am y tro mai dim ond yr un. 929 00:43:15,180 --> 00:43:20,060 >> Os wyf yn awr yn mynd i mewn i helpers.php, sylwi ar yr hyn y mae'n ei wneud. 930 00:43:20,060 --> 00:43:22,030 Mae hwn ychydig o functionality newydd, 931 00:43:22,030 --> 00:43:24,190 ond am awr yn unig yn cymryd ar y ffydd bod hyn yn 932 00:43:24,190 --> 00:43:26,570 y gystrawen gyda yr ydych ddiffinio swyddogaeth yn PHP. 933 00:43:26,570 --> 00:43:27,840 Yr ydych yn llythrennol yn dweud swyddogaeth. 934 00:43:27,840 --> 00:43:30,090 Nid ydych yn pennu dychwelyd teipio, ac mae hynny'n gyson 935 00:43:30,090 --> 00:43:33,880 gyda'r manylion amrywiol yn gynharach lle nad ydych yn wir yn teipio gryf. 936 00:43:33,880 --> 00:43:35,650 >> Mae hyn yn unig yn pennu hynny, yn ddiofyn, mae hyn 937 00:43:35,650 --> 00:43:37,460 yn cymryd cysylltiadol array fel dadl. 938 00:43:37,460 --> 00:43:38,210 A ydych yn gwybod beth? 939 00:43:38,210 --> 00:43:41,450 Os nad yw'r defnyddiwr yn pasio un mewn, cymryd yn ganiataol gwerth diofyn. 940 00:43:41,450 --> 00:43:44,680 >> Mae hwn yn nodwedd nad yw C oes gan i ni, sydd yn braf, oherwydd erbyn hyn 941 00:43:44,680 --> 00:43:46,430 data, hyd yn oed os ydych yn peidiwch â rhoi unrhyw beth, 942 00:43:46,430 --> 00:43:49,300 yn mynd i fod yn arae ond un wag. 943 00:43:49,300 --> 00:43:51,860 Ac wrth fynd heibio, dyfyniad jyst yn gwneud rhywbeth ffynci 944 00:43:51,860 --> 00:43:56,380 lle y mae'n cymryd yr holl allweddi o hyn arae cysylltiadol, pob o'r pethau 945 00:43:56,380 --> 00:43:59,950 Gallai eich rhoi mewn cromfachau sgwâr, ac yn creu newidynnau allan ohonynt 946 00:43:59,950 --> 00:44:06,270 fel y gallwn yn y pen draw yn cael mynediad iddynt yn footet.php a header.php. 947 00:44:06,270 --> 00:44:08,950 Dyna ychydig o haniaethol, felly gadewch i mi dynnu sylw at hyn. 948 00:44:08,950 --> 00:44:12,990 >> Yn index.php, yn sylwi fy mod i'n pasio mewn pâr gwerth allweddol o deitl 949 00:44:12,990 --> 00:44:14,850 gyda gwerth o CS50. 950 00:44:14,850 --> 00:44:18,660 Os wyf yn awr yn edrych ar helpers.php, sylwi bod RenderHeader 951 00:44:18,660 --> 00:44:23,870 yn echdynnu data hwnnw fy mod yn pasio mewn, ac yna'n gwneud yn ofynnol header.php. 952 00:44:23,870 --> 00:44:27,970 Yr hyn yr wyf wedi ei wneud yn fath o ddyn tlawd a yn gweithredu nawr o'r canlynol. 953 00:44:27,970 --> 00:44:31,720 >> Os byddaf yn agor header.php, hysbysu fy mod i wedi mwyach galed 954 00:44:31,720 --> 00:44:34,890 codio y gair CS50 yn y ffeil hon header. 955 00:44:34,890 --> 00:44:39,310 Rwyf wedi rhoi hyn cyfaddef atrociously swyddogaeth a enwir, chars arbennig HTML, 956 00:44:39,310 --> 00:44:40,170 i mewn 'na. 957 00:44:40,170 --> 00:44:41,640 Ond sylwi ar yr hyn yr wyf wedi ei wneud. 958 00:44:41,640 --> 00:44:44,240 Mae gen i HTML agored. 959 00:44:44,240 --> 00:44:47,420 Rwyf wedyn yn cael pen agored a theitl agored. 960 00:44:47,420 --> 00:44:52,380 >> Ac yna tu mewn y teitl yn agored ac tagiau agos, mae gennyf ychydig o god PHP. 961 00:44:52,380 --> 00:44:56,670 Ac mae hwn yn 'n glws, ond o cystrawen, a dim ond yn golygu adleisio allan. 962 00:44:56,670 --> 00:44:59,840 Mae'n llythrennol yn golygu this-- adleisio o'r canlynol-- 963 00:44:59,840 --> 00:45:01,910 ond mae hyn yn sexier i ysgrifennu. 964 00:45:01,910 --> 00:45:05,000 Adleisio allan y teitl sydd wedi cael ei basio i mewn. 965 00:45:05,000 --> 00:45:07,560 >> Ond beth yn eich barn chi HTML torgoch arbennig yn gyfle i chi, 966 00:45:07,560 --> 00:45:10,590 yn enwedig os oes gennych rhywfaint o HTML brofiad blaenorol? 967 00:45:10,590 --> 00:45:14,050 Pa gymeriadau allai fod beryglus i basio mewn i dudalen 968 00:45:14,050 --> 00:45:17,980 lle rydych chi'n cynhyrchu ddynamig y dudalen we gyda cod fel hyn? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Gadewch i mi fynd at y ffeil, fersiwn dau, a gweld os nad wyf yn gallu achosi hyn. 971 00:45:24,650 --> 00:45:26,210 >> Fersiwn ddau yw hyn. 972 00:45:26,210 --> 00:45:28,510 Ac yn sylwi ar bopeth yn iawn, yn gweithio'n dda. 973 00:45:28,510 --> 00:45:35,280 Ond mae'n debyg fy mod yn mynd i mewn i index.php a Rwy'n nodi bod y teitl fy dudalen 974 00:45:35,280 --> 00:45:36,630 Nid yw CS50. 975 00:45:36,630 --> 00:45:44,930 Mae'n effro sgript braced agored helo byd, dyfyniad sengl yn agos, 976 00:45:44,930 --> 00:45:49,740 parenthesis cau, hanner colon, braced agored, sgript slaes. 977 00:45:49,740 --> 00:45:51,897 >> Sgript, wrth i ni annhymerus yn y pen draw yn gweld, yn tag 978 00:45:51,897 --> 00:45:54,480 y gallwch ei ddefnyddio i ddefnyddio un arall iaith raglennu a elwir 979 00:45:54,480 --> 00:45:56,330 JavaScript tu mewn i dudalen ar y we. 980 00:45:56,330 --> 00:45:57,960 Ac yn awr yn sylwi ar y rhesymeg yma. 981 00:45:57,960 --> 00:45:59,840 Dyma allwedd o'r enw teitl. 982 00:45:59,840 --> 00:46:02,690 Dyma ei fod yn werth hir crazy nawr. 983 00:46:02,690 --> 00:46:07,840 >> Ond os wyf yn mynd i'r cynorthwywyr page- neu yn hytrach, y dudalen pennawd, 984 00:46:07,840 --> 00:46:11,310 Im 'yn galw swyddogaeth hon ar y teitl hwnnw yn gyntaf. 985 00:46:11,310 --> 00:46:15,250 Felly, os wyf yn awr yn ail-lwytho y dudalen hon, yr wyf yn gweld hyn, sy'n edrych yn wirion, 986 00:46:15,250 --> 00:46:16,110 ond ei fod yn ddiogel. 987 00:46:16,110 --> 00:46:17,310 'I jyst yn edrych yn dwp. 988 00:46:17,310 --> 00:46:20,320 >> Ond yn lle hynny mae'n debyg Roeddwn wedi anghofio hyn. 989 00:46:20,320 --> 00:46:24,660 A nodwch fy ngeiriau, mae nifer nonzero y byddwch yn anghofio i wneud hyn 990 00:46:24,660 --> 00:46:27,790 a byddwch yn cael rhywfaint o ddiwyd myfyriwr neu ffrind yn dod i fyny 991 00:46:27,790 --> 00:46:31,540 i chi yn y ffair CS50 neu'n ddienw yn y nos procio o gwmpas ar eich gwefan 992 00:46:31,540 --> 00:46:35,300 ac yn ei hanfod chwistrellu cod unbeknownst i chi i mewn i'ch safle 993 00:46:35,300 --> 00:46:35,800 rhywsut. 994 00:46:35,800 --> 00:46:39,000 >> Oherwydd os wyf yn poeri yn syml allan teitl yma a theitl 995 00:46:39,000 --> 00:46:44,330 there-- yn dda, os oes teitl llythrennol yn edrych fel hyn a PHP 996 00:46:44,330 --> 00:46:47,660 fel iaith sy'n gallu poeri allan eraill yn destun ieithoedd, 997 00:46:47,660 --> 00:46:50,650 hyn yn mynd yn llythrennol i gymryd lle tag hwn gyda, 998 00:46:50,650 --> 00:46:53,010 wrth gwrs, yr hyn yr wyf yn ei roi mewn mannau eraill. 999 00:46:53,010 --> 00:46:57,640 >> Felly os wyf yn awr yn mynd yma ac ail-lwytho ar ôl dadwneud mecanweithiau diogelwch hynny, 1000 00:46:57,640 --> 00:46:59,982 yn awr yr wyf wedi helo byd yma. 1001 00:46:59,982 --> 00:47:02,690 Nawr nid dyna'r cyfan hynny fawr o delio, ond gallech wneud rhywbeth 1002 00:47:02,690 --> 00:47:05,119 ychydig yn fwy maleisus fan hyn, fel y mae 1003 00:47:05,119 --> 00:47:08,410 tags-- arall fel y byddwn yn gweld ar ôl i ni ei wario mwy o amser yn JavaScript-- fel lleoliad 1004 00:47:08,410 --> 00:47:14,910 dot href cael, dyfynnwch, unquote, HTTP business.com, ond y gwrthwyneb i hynny 1005 00:47:14,910 --> 00:47:15,950 oddi wrth y diwrnod o'r blaen. 1006 00:47:15,950 --> 00:47:20,120 Ac yn awr, gallwch gymell we dudalen i fynd mewn gwirionedd yn syth 1007 00:47:20,120 --> 00:47:21,190 at y dudalen gwefan yma. 1008 00:47:21,190 --> 00:47:23,000 >> Ac mewn gwirionedd, nid oes arnaf eisiau i hyd yn oed fynd i business.com 1009 00:47:23,000 --> 00:47:24,749 gan nad wyf am i wybod beth yw hynny. 1010 00:47:24,749 --> 00:47:28,710 Ond mae hyn, hefyd, yn sbarduno cod i gael eu chwistrellu i mewn y dudalen hon. 1011 00:47:28,710 --> 00:47:32,680 Felly mae hyn yn unig i ddweud bod hyd yn oed er rydym yn cyflwyno super gynnar ar rai 1012 00:47:32,680 --> 00:47:36,800 o'r rhain strwythurau mwy cymhleth, 'i' i gyd tuag at ben o wneud yn siwr 1013 00:47:36,800 --> 00:47:39,320 nad yw eich cod yn manteisio arnynt. 1014 00:47:39,320 --> 00:47:40,960 >> Felly nawr trydydd fersiwn yma. 1015 00:47:40,960 --> 00:47:42,470 Mae'n mynd yn ychydig o ffansi. 1016 00:47:42,470 --> 00:47:44,875 Doeddwn i ddim wir yn like-- ochr rhefrol i mi 1017 00:47:44,875 --> 00:47:47,750 oedd cael ychydig yn flin gan y ffaith fy mod wedi swyddogaeth o'r enw 1018 00:47:47,750 --> 00:47:51,940 RenderHeader a RenderFooter a oedd bron yn union yr un fath. 1019 00:47:51,940 --> 00:47:55,400 Felly, mae'n digwydd i mi, pam na gwneud Rwy'n parameterize swyddogaethau hyn 1020 00:47:55,400 --> 00:47:59,180 i mewn dim ond un o'r enw rendr, wedi ei gymryd ail ddadl 1021 00:47:59,180 --> 00:48:04,420 fel enw'r templed, y rownd derfynol i render-- naill pennawd neu troedyn? 1022 00:48:04,420 --> 00:48:07,160 Ac yna yn ddewisol, os ydw i eisiau i basio mewn rhai parau gwerth allweddol 1023 00:48:07,160 --> 00:48:10,580 fel yr wyf yn ei wneud ar gyfer y teitl ar gyfer y header ond nid ar gyfer y troedyn, 1024 00:48:10,580 --> 00:48:11,800 Gallwn i wneud hynny. 1025 00:48:11,800 --> 00:48:16,510 >> Ac felly yn awr os byddaf yn mynd i mewn i helpers.php, ei fod yn ychydig yn fwy cymhleth. 1026 00:48:16,510 --> 00:48:19,670 A byddaf yn chwifio fy nwylo yn y fanylion, ond mae'n un swyddogaeth yn unig. 1027 00:48:19,670 --> 00:48:21,890 Felly dyna gam tuag at ddyluniad gwell. 1028 00:48:21,890 --> 00:48:23,360 >> Gallwn fynd â hyn un cam ymhellach. 1029 00:48:23,360 --> 00:48:28,890 Os byddaf yn mynd i mewn i fy pedwerydd Fersiwn o hyn, sylwi nawr 1030 00:48:28,890 --> 00:48:31,320 fy mod yn gwneud rhywbeth hyd yn oed mwy o cryptig fath. 1031 00:48:31,320 --> 00:48:33,230 Ac yr wyf yn gwybod hyn yn lot i amsugno ar unwaith, 1032 00:48:33,230 --> 00:48:35,080 ond rydym yn unig fath o lanhau pethau i fyny. 1033 00:48:35,080 --> 00:48:38,550 Nawr rwy'n rhoi fy cynorthwywyr ffeil mewn ffolder o'r enw 1034 00:48:38,550 --> 00:48:41,190 includes-- unig mympwyol enwi ble rydw i am roi stwff 1035 00:48:41,190 --> 00:48:44,300 fy mod am include-- ac yna gweddill hyn yr un fath. 1036 00:48:44,300 --> 00:48:47,140 >> Ond os wyf yn edrych yn awr mewn gedit, hysbysu fy mod i wedi gotten gwared 1037 00:48:47,140 --> 00:48:51,940 yr holl ffeiliau eraill hynny ac rwyf wedi Symudodd hwy, er enghraifft, i mewn i fan hyn. 1038 00:48:51,940 --> 00:48:55,110 Ac yna yn y templedi, Mae gen i hyn yma, hefyd. 1039 00:48:55,110 --> 00:48:59,292 Ac felly mae hyn i gyd yn awr tuag at cam o ddefnyddio patrwm dylunio llawer gwell. 1040 00:48:59,292 --> 00:49:01,000 Ac rydym yn gyflym iawn mynd i symud i ffwrdd 1041 00:49:01,000 --> 00:49:03,870 o ymarferoldeb PHP diofyn yn, a ddechreuodd yr ydym yma gyda, 1042 00:49:03,870 --> 00:49:07,655 lle rydych jyst commingle PHP, a'ch HTML, a'ch CSS, 1043 00:49:07,655 --> 00:49:09,780 ac ch jyst boeri allan a'ch bod yn mynd am eich ffordd. 1044 00:49:09,780 --> 00:49:11,404 Dyw hi ddim yn mynd i fod a gynhelir iawn. 1045 00:49:11,404 --> 00:49:14,481 Yn union fel yn C, rydym yn dechrau defnyddio ffeiliau lluosog a swyddogaethau lluosog 1046 00:49:14,481 --> 00:49:15,730 a ffactoreiddio pethau sydd allan. 1047 00:49:15,730 --> 00:49:16,688 Byddwn yn gwneud yr un peth yma. 1048 00:49:16,688 --> 00:49:19,970 Ac yn wir, yn y pumed a'r olaf fersiwn yma, fe wnes un peth arall. 1049 00:49:19,970 --> 00:49:23,710 Gallwch hyd yn oed ddefnyddio dot dot, a oedd, unwaith eto, dim ond y rhiant cyfeiriadur. 1050 00:49:23,710 --> 00:49:28,260 I fod yn hyd yn oed yn fwy ymwybodol o ddiogelwch, oherwydd os wyf yn edrych ar y gwrando 1051 00:49:28,260 --> 00:49:32,450 yma am pumed a'r fersiwn terfynol, rhybudd bod gen i un cyfeiriadur o'r enw yma 1052 00:49:32,450 --> 00:49:35,180 cyhoeddus, ac yna ar y un lefel, fel petai, 1053 00:49:35,180 --> 00:49:38,490 Mae gen i gynnwys a thempledi ac yna y readme ffeil testun. 1054 00:49:38,490 --> 00:49:41,130 >> A'r rheswm yr wyf wedi strwythuro mae'n hoffi this-- ac yn gymaint o we 1055 00:49:41,130 --> 00:49:44,330 lluoedd, yn enwedig y rhai $ 5 rhai fis neu rai $ 10 y mis, 1056 00:49:44,330 --> 00:49:47,170 os ydych chi erioed wedi cael un o'r rhain services-- pa mor llawer ohonynt yn ei wneud 1057 00:49:47,170 --> 00:49:50,690 yw eu bod yn unig yn disgwyl i chi i adael i gyd o'ch ffeiliau i mewn i un chyfeiriadur, 1058 00:49:50,690 --> 00:49:53,640 fel y gwnaethom eisoes gyda yr enghraifft gyntaf. 1059 00:49:53,640 --> 00:49:56,740 >> Ond cyn gynted ag y byddwch yn dechrau adeiladu mwy safleoedd soffistigedig mai dim ond storio 1060 00:49:56,740 --> 00:50:00,480 data yr ydych yn gofalu am a ffeiliau rydych yn gofalu am, mewn gwirionedd yn trefnu pethau 1061 00:50:00,480 --> 00:50:05,060 yn gywir a gyda mwy o sicrwydd ymwybyddiaeth mewn cof y gall 1062 00:50:05,060 --> 00:50:07,927 rydym yn dechrau i amddiffyn yn erbyn pob un o'r ffrindiau 1063 00:50:07,927 --> 00:50:10,135 bod gennych naill ai yn, neu y tu allan i'r dosbarth hwn sydd, 1064 00:50:10,135 --> 00:50:12,510 cyn gynted ag y byddwch yn dechrau gwneud rhaglenni eich hun ar y we, 1065 00:50:12,510 --> 00:50:15,140 yn mynd i ddechrau codi arnoch chi ac arnynt. 1066 00:50:15,140 --> 00:50:17,420 >> Ac felly byddwn yn edrych yn y pen draw yn y cynllun hwn. 1067 00:50:17,420 --> 00:50:20,010 Mae hyn yn unig yw llun sy'n darlunio y canlynol. 1068 00:50:20,010 --> 00:50:22,897 Rydym yn mynd i roi ein holl rhaglennu rhesymeg mewn un neu fwy o ffeiliau, 1069 00:50:22,897 --> 00:50:25,230 ac rydym yn mynd i dim ond dechrau galw rheolwyr hynny. 1070 00:50:25,230 --> 00:50:28,022 Mae'n lle mae'r ymennydd ein gwefannau mewn gwirionedd. 1071 00:50:28,022 --> 00:50:29,730 Yna rydym yn mynd i olygfeydd, a golygfeydd 1072 00:50:29,730 --> 00:50:32,480 mor syml â dim ond ar wahân files-- Gelwir templedi, yn aml. 1073 00:50:32,480 --> 00:50:34,410 Maent ond yn cael y estheteg o fy dudalen, 1074 00:50:34,410 --> 00:50:37,020 yr hyn yr wyf am i'r dudalen i edrych like-- y lliwiau a'r gosodiad 1075 00:50:37,020 --> 00:50:38,870 ac mae'r swyddi pob un o'r newidynnau. 1076 00:50:38,870 --> 00:50:41,120 >> Ac yna yn fwy diddorol y byddwn yn y pen draw yn dod i 1077 00:50:41,120 --> 00:50:45,420 yw'r model, sydd yn mynd i fod yr un y gair yr ydym yn slap ar dechnolegau eraill 1078 00:50:45,420 --> 00:50:47,771 ein bod yn dod i mewn i'r llun, fel cronfeydd data gwirioneddol, 1079 00:50:47,771 --> 00:50:49,520 er mwyn i pan fyddwch eisiau i arbed gwybodaeth, 1080 00:50:49,520 --> 00:50:52,140 nad ydych yn unig anfon e-bost at eich proctor neu i chi eich hun, 1081 00:50:52,140 --> 00:50:57,350 chi mewn gwirionedd yn ei storio mewn cronfa ddata gan ddefnyddio iaith arall a elwir yn SQL. 1082 00:50:57,350 --> 00:51:00,450 Ac felly byddwn yn gadael yma heddiw a codi gyda hyn ar ddydd Mercher 1083 00:51:00,450 --> 00:51:02,990 a chyflwyno cronfeydd data hynny. 1084 00:51:02,990 --> 00:51:06,940 >> [CHWARAE CERDDORIAETH] 1085 00:51:06,940 --> 00:54:24,555