1 00:00:00,000 --> 00:00:03,920 >> [Музички] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> Дејвид Џ MALAN: Во ред. 4 00:00:13,800 --> 00:00:15,640 Ова е CS50. 5 00:00:15,640 --> 00:00:17,620 Ова е почеток на осум недела. 6 00:00:17,620 --> 00:00:22,440 И може да се потсетиме дека ние застанавте последен пат во потрага на нов јазик 7 00:00:22,440 --> 00:00:23,240 заедно. 8 00:00:23,240 --> 00:00:25,905 Всушност, еден кој е прилично лесен и тоа не е дури 9 00:00:25,905 --> 00:00:26,940 програмски јазик. 10 00:00:26,940 --> 00:00:31,100 Тоа е Селектирај јазик, кој ни овозможува всушност структура и да се направи веб-страници. 11 00:00:31,100 --> 00:00:33,350 И вие, кога нешто друго во врска со this-- 12 00:00:33,350 --> 00:00:35,670 или наскоро ќе, ако веќе не сте. 13 00:00:35,670 --> 00:00:38,530 Ние сме случува да се користи Каскадни Стилски листови, или CSS, која 14 00:00:38,530 --> 00:00:40,971 е уште еден тип на јазик со својства и вредности 15 00:00:40,971 --> 00:00:43,220 што се случува да ги споделите со нас работи како промена на бојата 16 00:00:43,220 --> 00:00:46,010 и промена на позицијата и овие видови на измени. 17 00:00:46,010 --> 00:00:49,940 Но, денес и натаму, ние почнуваме да се фокусира на повеќе моќни јазици, 18 00:00:49,940 --> 00:00:52,810 вистински програмски јазици како PHP. 19 00:00:52,810 --> 00:00:54,880 >> Па PHP е околу за некое време. 20 00:00:54,880 --> 00:00:56,810 И како што ќе видите, тоа е наменета пред се 21 00:00:56,810 --> 00:01:00,280 рано за вистински користат во веб развој 22 00:01:00,280 --> 00:01:02,360 и всушност генерирање на веб страници. 23 00:01:02,360 --> 00:01:04,849 Значи она што видови на карактеристики го прави јазик 24 00:01:04,849 --> 00:01:10,040 треба со цел да се направи веб страници динамички со неа? 25 00:01:10,040 --> 00:01:14,760 >> Со други зборови, ако сакате да се генерираат содржина dynamically-- како Фејсбук 26 00:01:14,760 --> 00:01:19,480 Newsfeed, која постојано се менува, или инстант пораки кои се појавуваат од време 27 00:01:19,480 --> 00:01:21,872 да time-- како што е клучна фигура на функционалност 28 00:01:21,872 --> 00:01:24,580 ви треба во програмски јазик што ќе ви ги споделите со динамички 29 00:01:24,580 --> 00:01:28,070 печати нови информации на екранот? 30 00:01:28,070 --> 00:01:28,685 >> СТУДЕНТСКИ: законик. 31 00:01:28,685 --> 00:01:29,560 Дејвид Џ MALAN: законик. 32 00:01:29,560 --> 00:01:30,440 ОК. 33 00:01:30,440 --> 00:01:31,995 Ние ќе се земе дека. 34 00:01:31,995 --> 00:01:35,310 А малку попрецизен. 35 00:01:35,310 --> 00:01:37,639 Мислам, ние може да го направи ова со C, искрено. 36 00:01:37,639 --> 00:01:38,930 Тоа ќе биде болка во вратот. 37 00:01:38,930 --> 00:01:41,045 But-- е оваа обврска? 38 00:01:41,045 --> 00:01:41,895 >> СТУДЕНТСКИ: Да. 39 00:01:41,895 --> 00:01:42,677 Променливи, можеби? 40 00:01:42,677 --> 00:01:43,760 Дејвид Џ MALAN: варијабли. 41 00:01:43,760 --> 00:01:44,160 Добро, сигурно. 42 00:01:44,160 --> 00:01:45,740 Променливи сигурно може да ни помогне. 43 00:01:45,740 --> 00:01:47,020 Па дури и нешто поедноставно. 44 00:01:47,020 --> 00:01:50,640 Ние тоа го користат во првиот програма на првиот ден 45 00:01:50,640 --> 00:01:55,686 кога ние всушност рече: "Здраво светот." 46 00:01:55,686 --> 00:01:56,570 >> СТУДЕНТСКИ: Печати. 47 00:01:56,570 --> 00:01:57,778 >> Дејвид Џ MALAN: Печати, нели? 48 00:01:57,778 --> 00:02:01,050 Печатење, или printf во светот на C. Значи сето ова време, 49 00:02:01,050 --> 00:02:03,362 имавме во нашата располагање language-- Ц, 50 00:02:03,362 --> 00:02:05,570 во particular--, па дури и Нула, за тоа прашање што 51 00:02:05,570 --> 00:02:07,400 може да се генерира низи на текст. 52 00:02:07,400 --> 00:02:11,090 >> Па, ако HTML, како што видовме минатата недела, е само еден куп на низи на текст 53 00:02:11,090 --> 00:02:14,692 иако со отворен загради и затворени загради и некој вид на рима 54 00:02:14,692 --> 00:02:16,650 и причината зад неа, и тогаш ние би можеле навистина 55 00:02:16,650 --> 00:02:20,440 започне генерирање веб страници или рачно ќе ги внесете во gedit 56 00:02:20,440 --> 00:02:23,870 или во Microsoft Word, за тоа matter-- ние само треба уредувач на текст. 57 00:02:23,870 --> 00:02:26,830 >> Или би можеле да се напише код, вашиот предлог 58 00:02:26,830 --> 00:02:30,435 порано, кој ќе ги споделите со нас динамички генерира HTML, 59 00:02:30,435 --> 00:02:32,560 и тоа е она што ние ќе за да почнете да го правите со PHP 60 00:02:32,560 --> 00:02:34,900 и на крајот дури и со јазик наречен JavaScript, 61 00:02:34,900 --> 00:02:37,910 е да се користи еден јазик да се генерираат друг. 62 00:02:37,910 --> 00:02:40,720 И навистина, ова е она што на Фејсбук и многу, многу други сајтови 63 00:02:40,720 --> 00:02:44,530 направите за да всушност динамички прикажување на нови информации за вас. 64 00:02:44,530 --> 00:02:47,117 >> Значи, да почнеме со тоа this-- на криптичната потрага линија, но еден 65 00:02:47,117 --> 00:02:48,450 тоа е всушност прилично моќна. 66 00:02:48,450 --> 00:02:51,210 Досега, ние сме биле користење C, која е составена јазик. 67 00:02:51,210 --> 00:02:55,050 И само еден брз recap-- Составувач јазик го има она што карактеристика? 68 00:02:55,050 --> 00:02:59,050 Ти очигледно треба да се компајлира тоа, но она што значи тоа? 69 00:02:59,050 --> 00:03:00,505 Да? 70 00:03:00,505 --> 00:03:02,940 >> СТУДЕНТСКИ: Тоа треба да биде состави во машински код. 71 00:03:02,940 --> 00:03:03,060 >> Дејвид Џ MALAN: Добро. 72 00:03:03,060 --> 00:03:04,530 Тоа треба да се состави во машински код. 73 00:03:04,530 --> 00:03:07,340 Така ќе се земе вашата изворниот код, кој е вид на англиски-како. 74 00:03:07,340 --> 00:03:09,270 Вие конвертирате дека нешто пониско ниво, 75 00:03:09,270 --> 00:03:11,590 кој е во крајна линија се нарекува објект code-- 0 и 1 е. 76 00:03:11,590 --> 00:03:14,830 И тоа е оние 0 и 1 е дека процесорот, како и оние кои се направени од страна на Интел, 77 00:03:14,830 --> 00:03:16,110 всушност се разбере. 78 00:03:16,110 --> 00:03:19,690 >> Сега, PHP и Python и Ruby и JavaScript и гроздовете на други 79 00:03:19,690 --> 00:03:23,190 јазици не се составени јазици, но се толкува јазици, 80 00:03:23,190 --> 00:03:26,630 што значи дека можете само да ги напишеш и потоа не ги претвори во 0 и 1 е. 81 00:03:26,630 --> 00:03:30,790 Ти наместо само да обезбеди, а не како влез на програмата на некој друг, 82 00:03:30,790 --> 00:03:32,080 наречен преведувач. 83 00:03:32,080 --> 00:03:34,460 И тоа лице Програмата е дизајнирана 84 00:03:34,460 --> 00:03:38,280 да се разбере она што секој и секој симбол во Python или PHP 85 00:03:38,280 --> 00:03:42,650 или Руби или било кој број на други јазици значи. 86 00:03:42,650 --> 00:03:44,760 >> И така сите ние треба е нешто како ова. 87 00:03:44,760 --> 00:03:46,350 Така, всушност, јас ќе одам да преминеш во апаратот 88 00:03:46,350 --> 00:03:48,100 тука, само во било кој стариот прозорец, и ние сме 89 00:03:48,100 --> 00:03:52,580 ќе се оди напред и отворен датотека со име, да речеме, здраво. 90 00:03:52,580 --> 00:03:55,780 Сега претходно, би можел да се спаси ова дури и со наставката на датотеката, 91 00:03:55,780 --> 00:03:57,910 но јас ќе одам да се направи нешто уште поедноставно тука. 92 00:03:57,910 --> 00:04:02,450 Одам да се оди напред и да почне оваа датотека со овој криптичната синтакса. 93 00:04:02,450 --> 00:04:06,310 Па "корисник, бин, env, за животна средина, PHP. " 94 00:04:06,310 --> 00:04:10,670 >> Ова е едноставно една линија од код кој е ќе кажам мојот оперативен систем, 95 00:04:10,670 --> 00:04:13,730 одат најдете во вашата локална животната средина што и да е, 96 00:04:13,730 --> 00:04:18,149 каде и PHP is-- на interpreter-- и да оди напред и ја користат таа преведувач 97 00:04:18,149 --> 00:04:20,589 да го протолкува на следниов код. 98 00:04:20,589 --> 00:04:22,760 Сега, ова е вид на грда карактеристика на PHP. 99 00:04:22,760 --> 00:04:24,980 Но, во овој јазик, било пат кога ќе се напише PHP код, 100 00:04:24,980 --> 00:04:29,200 треба да имате една од овие грди PHP тагови одбележувањето на почетокот 101 00:04:29,200 --> 00:04:32,220 на вашиот code-- 00:04:37,430 >> Но под тука, јас сега може да се направи нешто прилично едноставна, како printf здраво запирка 103 00:04:37,430 --> 00:04:40,922 светот обратна коса црта n блиску понуда, блиску заграда. 104 00:04:40,922 --> 00:04:42,630 А потоа само за добро мерка, јас одам 105 00:04:42,630 --> 00:04:45,380 да се оди напред и блиски мојата PHP таг овде 106 00:04:45,380 --> 00:04:47,390 така што сè изглед убаво убаво испечатени. 107 00:04:47,390 --> 00:04:50,780 >> И штом ќе кликнете на Зачувај, gedit е доволно, всушност паметни 108 00:04:50,780 --> 00:04:54,620 да се погледне во тоа што многу првата линија и се реализира, ох, сте пишување PHP код. 109 00:04:54,620 --> 00:04:56,710 Дозволете ми да синтаксичко со боите 110 00:04:56,710 --> 00:04:58,690 тука, така што таа се залага само малку повеќе. 111 00:04:58,690 --> 00:05:01,300 Но сега јас ќе одам да се оди одредување на мојот терминален прозорец. 112 00:05:01,300 --> 00:05:02,340 Јас ќе зумирате. 113 00:05:02,340 --> 00:05:06,860 >> Оваа програма беше наречен "Здраво" па јас ќе одам да направите точка коса црта здраво, 114 00:05:06,860 --> 00:05:07,990 но дозвола негираше. 115 00:05:07,990 --> 00:05:08,490 И баш. 116 00:05:08,490 --> 00:05:10,610 Ние всушност слушнале дека Пред нешто неколку недели 117 00:05:10,610 --> 00:05:13,140 во контекст на Shellshock, еден од оние грешки. 118 00:05:13,140 --> 00:05:16,240 >> Но забранет пристап видовме пред, можеби во различен контекст. 119 00:05:16,240 --> 00:05:19,060 Дали некој се сети како може да поправи нешто 120 00:05:19,060 --> 00:05:22,100 каде дозвола е одбиен како тоа? 121 00:05:22,100 --> 00:05:23,490 Што е команда, најмалку? 122 00:05:23,490 --> 00:05:24,159 >> СТУДЕНТСКИ: chmod. 123 00:05:24,159 --> 00:05:26,700 Дејвид Џ MALAN: Да, chmod, за промена на начинот на датотека. 124 00:05:26,700 --> 00:05:30,171 И ќе добиете сè повеќе и повеќе се користи за да овој следната недела со подоцнежно проблем 125 00:05:30,171 --> 00:05:30,670 во собата. 126 00:05:30,670 --> 00:05:33,211 Но, за сега, јас ќе одам да се промени на владата да не може да се чита, 127 00:05:33,211 --> 00:05:36,650 туку да им даде на сите executeability привилегии, способноста 128 00:05:36,650 --> 00:05:37,710 да ја извршите оваа датотека. 129 00:05:37,710 --> 00:05:40,360 И јас одам да се додели дека во датотеката здраво. 130 00:05:40,360 --> 00:05:45,150 >> Ако јас сега го прават точка коса црта здраво влезат, ќе види, всушност, мојата програма, здраво свет. 131 00:05:45,150 --> 00:05:48,760 И она што чекор не јас јасно прескокнете заедно? 132 00:05:48,760 --> 00:05:49,520 Составувањето. 133 00:05:49,520 --> 00:05:51,680 Па јас само истрча оваа програма многу едноставно. 134 00:05:51,680 --> 00:05:55,690 >> И излегува можете да го направите ова со многу синтакса потсетува на Ц. 135 00:05:55,690 --> 00:06:03,400 Дозволете ми да одат во денешниот код, што го ставам во мојот vhost директориум 136 00:06:03,400 --> 00:06:05,250 тука, за вистински причини ние ќе се врати на. 137 00:06:05,250 --> 00:06:09,350 И јас одам да одат во, да речеме, условите 1. 138 00:06:09,350 --> 00:06:12,450 >> И ќе видите тука, прво и основно, целиот куп на коментари. 139 00:06:12,450 --> 00:06:15,240 Но, ова е, всушност, ре-креација во PHP 140 00:06:15,240 --> 00:06:18,960 на програма што го правевме во недела еден вика услови 1.в 141 00:06:18,960 --> 00:06:20,690 каде што целта во животот на оваа програма 142 00:06:20,690 --> 00:06:22,950 очигледно е да се побара на корисникот за цел број 143 00:06:22,950 --> 00:06:25,270 а потоа направи некои меки анализа на тоа што 144 00:06:25,270 --> 00:06:29,510 ви каже дали тоа е позитивно или негативен или еднаква на нула. 145 00:06:29,510 --> 00:06:34,220 И го обелоденам ова само затоа што, освен можеби еден мал детал, 146 00:06:34,220 --> 00:06:37,150 тоа е не се разликува толку далеку од В. 147 00:06:37,150 --> 00:06:39,930 >> Која е една карактеристика тука дека можеби скокнува 148 00:06:39,930 --> 00:06:41,410 во тебе како малку различен? 149 00:06:41,410 --> 00:06:42,160 Можеби две работи. 150 00:06:42,160 --> 00:06:42,660 Да? 151 00:06:42,660 --> 00:06:44,070 >> СТУДЕНТСКИ: долар знак n? 152 00:06:44,070 --> 00:06:44,944 >> Дејвид Џ MALAN: Да. 153 00:06:44,944 --> 00:06:46,210 Така знакот за долар n е присутен. 154 00:06:46,210 --> 00:06:48,120 И доларот знаци, како Ќе видиме, се случува 155 00:06:48,120 --> 00:06:51,460 да биде лек на почетокот на која било променлива во PHP. 156 00:06:51,460 --> 00:06:54,250 Тоа е и добро и bad-- добро во дека тоа е вид на очигледни што е 157 00:06:54,250 --> 00:06:56,797 променлива, лошо во тоа што е уште една работа што треба да напишеш. 158 00:06:56,797 --> 00:06:58,630 И има една друга нешто што не се сосема 159 00:06:58,630 --> 00:07:00,876 види, барем со овој правопис. Да? 160 00:07:00,876 --> 00:07:01,630 >> СТУДЕНТСКИ: Readline. 161 00:07:01,630 --> 00:07:02,671 >> Дејвид Џ MALAN: Readline. 162 00:07:02,671 --> 00:07:06,550 Readline ние не го види, само по себе, во Ц, иако постои нешто 163 00:07:06,550 --> 00:07:09,530 слични, но ние сме се користи getstring, и ова е неговиот колега. 164 00:07:09,530 --> 00:07:12,950 Значи, ако јас одам во овој директориумот, која се случува да биде, 165 00:07:12,950 --> 00:07:18,030 како што јас ќе објаснам малку во мојата vhost директориумот и мојот извор директориумот, 166 00:07:18,030 --> 00:07:22,730 и јас одиме напред и да го направи точка коса црта conditions-- whoops-- точка коса црта 167 00:07:22,730 --> 00:07:26,710 услови 1, ќе видите, повторно, исто issue-- дозвола негираше. 168 00:07:26,710 --> 00:07:33,610 >> Значи, дозволете ми да зумирате и не chmod плус x на услови, точка коса црта услови. 169 00:07:33,610 --> 00:07:35,222 Би сакал цел број, ве молам, 50. 170 00:07:35,222 --> 00:07:36,930 И ние може да се игра оваа игра на целиот ден. 171 00:07:36,930 --> 00:07:39,140 Тоа се случува да се однесуваат токму како што направи во една недела. 172 00:07:39,140 --> 00:07:42,860 >> OK, па не сите што се разликува, освен не само што мал малку на синтакса, 173 00:07:42,860 --> 00:07:45,490 но на врвот, јас повторно имаа оваа линија која 174 00:07:45,490 --> 00:07:49,760 ми дозволи да се создаде нешто што изгледа како C програма наречена здраво, 175 00:07:49,760 --> 00:07:51,150 наречен услови 1. 176 00:07:51,150 --> 00:07:54,520 Но тоа не е 0 и оние Јас сум извршување директно. 177 00:07:54,520 --> 00:07:57,620 Тоа е, наместо да работи ова преведувач чие име 178 00:07:57,620 --> 00:07:59,440 се случува да биде идентична со јазик. 179 00:07:59,440 --> 00:08:04,970 На програмата се нарекува PHP и мојот код под линијата од нив се донесени во него. 180 00:08:04,970 --> 00:08:07,740 >> Можеме да направиме уште еден прилично едноставен пример потсетува на нешто 181 00:08:07,740 --> 00:08:09,240 ние го сторивме пред неколку недели. 182 00:08:09,240 --> 00:08:12,020 Повторно, ова е еден вид на произволни парче од код 183 00:08:12,020 --> 00:08:14,000 дека очигледно не што кога ќе го стартувате? 184 00:08:14,000 --> 00:08:15,625 Што е ова се случува да се печати, веројатно? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Значи на почетокот на линијата 16, тоа е случува да се каже x е сега 2, веројатно. 187 00:08:28,250 --> 00:08:30,920 % D е иста како $ i за printf. 188 00:08:30,920 --> 00:08:33,460 Па тогаш тоа е местење Рубикова коцка, дот, точка, точка, во согласност 17. 189 00:08:33,460 --> 00:08:36,299 А потоа 18 се појавува линија да се јавите на функција на коцки. 190 00:08:36,299 --> 00:08:37,600 И каде што е дефиниран коцки? 191 00:08:37,600 --> 00:08:40,319 >> Па, тоа изгледа во линија 25, па тоа не е сите што се разликува. 192 00:08:40,319 --> 00:08:42,610 Јас имам некои коментари погоре тоа, но во најголем дел, 193 00:08:42,610 --> 00:08:45,370 тоа е прилично јасна пренесување или конверзија 194 00:08:45,370 --> 00:08:48,470 од програмата C до верзија на PHP. 195 00:08:48,470 --> 00:08:52,670 Но, сега постојат неколку разлики кои можеби треба да скокаат. 196 00:08:52,670 --> 00:08:56,100 Што друго е различно за тоа како можете би можеле да ја напишам оваа иста програма во C? 197 00:08:56,100 --> 00:08:57,900 >> СТУДЕНТСКИ: [нечујни]. 198 00:08:57,900 --> 00:09:00,070 >> Дејвид Џ MALAN: Има постои прототип до врвот. 199 00:09:00,070 --> 00:09:03,210 Па PHP-- и искрено, многу модерни languages-- 200 00:09:03,210 --> 00:09:06,920 се многу попаметни и повеќе корисни од C компајлери во која можете 201 00:09:06,920 --> 00:09:09,740 може да се стави во функција до тука, може да се стави во функција овде, 202 00:09:09,740 --> 00:09:12,740 и преведувачот се случува да го направите корист на читање 203 00:09:12,740 --> 00:09:16,010 целата датотека пред да одлучи дека некоја функција не постои. 204 00:09:16,010 --> 00:09:17,970 Толку убаво подобрувања години подоцна. 205 00:09:17,970 --> 00:09:22,126 Но, таму е исто така нешто друго различно или отсутен тука. 206 00:09:22,126 --> 00:09:22,626 Да? 207 00:09:22,626 --> 00:09:25,084 >> СТУДЕНТСКИ: [нечујни]. 208 00:09:25,084 --> 00:09:27,750 Дејвид Џ MALAN: Ние не треба да се прогласи типови на променливи, 209 00:09:27,750 --> 00:09:31,780 па ќе видиме пред долго време дека постојат различни видови во PHP, 210 00:09:31,780 --> 00:09:34,970 но вие не треба да ги определи, кој исто така е и добро и лошо. 211 00:09:34,970 --> 00:09:36,623 И има една друга работа што недостасува. 212 00:09:36,623 --> 00:09:37,430 >> СТУДЕНТСКИ: Нема библиотеки. 213 00:09:37,430 --> 00:09:38,630 >> Дејвид Џ MALAN: Нема библиотеки. 214 00:09:38,630 --> 00:09:39,350 Добро, па тоа е убаво. 215 00:09:39,350 --> 00:09:40,540 Да добиеме многу повеќе надвор од кутијата. 216 00:09:40,540 --> 00:09:43,373 Па таму е всушност многу повеќе работи отколку што мислев се различни. 217 00:09:43,373 --> 00:09:44,350 Како за начинот на грбот? 218 00:09:44,350 --> 00:09:46,032 Што е тоа? 219 00:09:46,032 --> 00:09:46,740 Велат дека тоа уште еднаш? 220 00:09:46,740 --> 00:09:47,960 >> СТУДЕНТСКИ: Покажувач. 221 00:09:47,960 --> 00:09:49,270 >> Дејвид Џ MALAN: Не совети. 222 00:09:49,270 --> 00:09:51,280 Добро, барем во овој пример, бр. 223 00:09:51,280 --> 00:09:52,070 Тоа е фер. 224 00:09:52,070 --> 00:09:55,090 Па не постојат совети во PHP, всушност, воопшто. 225 00:09:55,090 --> 00:09:58,730 Постојат нешто што се нарекува референци, но ние нема да потрошите многу време таму. 226 00:09:58,730 --> 00:09:59,520 И што друго? 227 00:09:59,520 --> 00:10:00,185 >> СТУДЕНТСКИ: Главни. 228 00:10:00,185 --> 00:10:01,060 Дејвид Џ MALAN: Главни. 229 00:10:01,060 --> 00:10:02,768 Значи ова беше biggie Јас мислев на. 230 00:10:02,768 --> 00:10:04,660 Забележете нема главна влезна точка. 231 00:10:04,660 --> 00:10:06,525 Вие едноставно почнете да пишувате вашиот код. 232 00:10:06,525 --> 00:10:08,400 И ова е, всушност, ќе биде поволна 233 00:10:08,400 --> 00:10:10,560 кога транзиција моментално да всушност користење 234 00:10:10,560 --> 00:10:13,980 овој ист јазик за веб-базирани програмирање, за кои ние 235 00:10:13,980 --> 00:10:16,580 не сакаат да имаат само една влезна точка. 236 00:10:16,580 --> 00:10:19,980 Ние би сакале да имаат еден куп на Адреси, еден куп на различни датотеки 237 00:10:19,980 --> 00:10:22,930 сите се во корисник влез и производство на излез. 238 00:10:22,930 --> 00:10:27,130 >> Но, тука е многу ужасен на теренот пример што ветив последен пат, 239 00:10:27,130 --> 00:10:30,130 имено, во оваа папка тука, грешките во правописот. 240 00:10:30,130 --> 00:10:33,680 Значи во оваа датотека правопис, кој ние не ќе потроши премногу време на, постои 241 00:10:33,680 --> 00:10:37,870 во суштина porting-- P-O-R-T. Тоа е само зборот даден кога, да речеме, 242 00:10:37,870 --> 00:10:40,800 ќе се конвертира од еден јазик на друг рачно обично. 243 00:10:40,800 --> 00:10:45,680 >> Ова е пренесување на PC верзија на правопис од PSET 5. 244 00:10:45,680 --> 00:10:48,856 И јас во суштина се обиде да го конвертирате го линија по линија колку што можам. 245 00:10:48,856 --> 00:10:51,730 Значи, ако ви се допаѓа овој вид на работа, тоа всушност е во вредност од некој момент 246 00:10:51,730 --> 00:10:54,229 извлекувајќи ги двете до рамо до страна и види што е истиот 247 00:10:54,229 --> 00:10:55,230 и она што е различно. 248 00:10:55,230 --> 00:10:57,510 Но тие се прилично ебам слично. 249 00:10:57,510 --> 00:11:00,110 Ако се сеќавате што правопис дури изгледаше како, 250 00:11:00,110 --> 00:11:02,110 иако не сте мора да се промени оваа датотека, 251 00:11:02,110 --> 00:11:04,860 тоа е прилично слични структурно со само неколку 252 00:11:04,860 --> 00:11:06,200 на промени тука и таму. 253 00:11:06,200 --> 00:11:10,140 >> Така што ова е само да се каже дека тоа е прилично лесно да ги конвертирате правопис 254 00:11:10,140 --> 00:11:12,000 од C во PHP. 255 00:11:12,000 --> 00:11:15,390 Но, речник, има нешто уште повеќе привлечни. 256 00:11:15,390 --> 00:11:19,270 Дозволете ми да оди напред и да се создаде моето dictionary.php датотека. 257 00:11:19,270 --> 00:11:24,010 Па малку различни во тој ние ќе го наречеме .php наместо .c. 258 00:11:24,010 --> 00:11:26,980 Бидејќи ова е PHP фајл, јас do-- малку annoyingly-- имаат 259 00:11:26,980 --> 00:11:30,132 да започнете на датотеката со на PHP таг како што. 260 00:11:30,132 --> 00:11:32,340 И јас одам да се оди напред и да ги дефинира неколку функции. 261 00:11:32,340 --> 00:11:35,770 Функција наречена чек, што е случува да се земе со еден збор како порано. 262 00:11:35,770 --> 00:11:37,520 Но, овој аргумент е случува да имаат еден долар 263 00:11:37,520 --> 00:11:39,840 потпише, бидејќи ние, повторно, со користење на PHP. 264 00:11:39,840 --> 00:11:42,350 Друга функција од dictionary.c беше оптоварување 265 00:11:42,350 --> 00:11:47,120 и го зеде во името на речник, па јас ќе добие таа функција подготвени да одите. 266 00:11:47,120 --> 00:11:50,920 >> Уште еден во dictionary.c беше она? 267 00:11:50,920 --> 00:11:54,580 Големина беше еден од најубавиот оние, во барем ако се чуваат некои променлива наоколу. 268 00:11:54,580 --> 00:11:57,830 па големината едноставно мора да се врати на променлива. 269 00:11:57,830 --> 00:11:59,090 И потоа се случи бриши. 270 00:11:59,090 --> 00:12:02,830 >> Па имаше овие четири функции во проблемот поставени 5 271 00:12:02,830 --> 00:12:06,770 дека е потребно да се спроведе со некои податоци структура или структури. 272 00:12:06,770 --> 00:12:10,170 Па јас вети дека во PHP, можеме да се изјасни 273 00:12:10,170 --> 00:12:14,490 хаш табелата, на пример, сето тоа полесно. 274 00:12:14,490 --> 00:12:17,377 Всушност, ако сакам хаш табелата, Јас сум само ќе се оди како што 275 00:12:17,377 --> 00:12:18,460 и таму е мојата хаш табелата. 276 00:12:18,460 --> 00:12:21,555 И тоа е забелешка, ужасен на теренот, дека ние застанавте на минатиот пат. 277 00:12:21,555 --> 00:12:23,930 И знаете што, ако сакав варијабла за големина, добро, 278 00:12:23,930 --> 00:12:25,867 ова не е сè што се разликува од C, 279 00:12:25,867 --> 00:12:27,450 но јас ќе одам да се оди напред и да го направите тоа. 280 00:12:27,450 --> 00:12:28,630 И ќе забележите без тип на податоци. 281 00:12:28,630 --> 00:12:31,180 И јас ќе се вратиш подоцна и всушност додадете некои коментари тука. 282 00:12:31,180 --> 00:12:32,480 Но, она што за товар? 283 00:12:32,480 --> 00:12:35,780 >> Ако знакот за долар речник е името на мојата датотека 284 00:12:35,780 --> 00:12:39,600 и јас всушност сакате да се вчита зборовите во оваа табела сега, 285 00:12:39,600 --> 00:12:42,360 Јас всушност може да го стори нешто прилично едноставна. 286 00:12:42,360 --> 00:12:44,880 One-- и ова е minorly annoying-- во PHP, 287 00:12:44,880 --> 00:12:47,710 што треба да се определи во на функција, ако 288 00:12:47,710 --> 00:12:51,060 сакате да пристапите некои глобални променлива која е дефинирана надвор. 289 00:12:51,060 --> 00:12:53,530 >> Но тоа не е особено Интересно, токму сега. 290 00:12:53,530 --> 00:12:57,920 Што е поинтересно е тоа за секој изградба што ги спомнав минатиот пат. 291 00:12:57,920 --> 00:13:01,880 И излегува дека PHP има функција наречен датотека, чија цел во животот 292 00:13:01,880 --> 00:13:05,550 е да отворите датотека и да прочитате во сите нејзини линии во низа 293 00:13:05,550 --> 00:13:06,840 и ги предаде назад кон. 294 00:13:06,840 --> 00:13:12,170 >> Кој е да се каже што можам да направам речникот што сега ефективно кога ќе се јавам датотека, 295 00:13:12,170 --> 00:13:15,472 тоа се случува да ме предаде назад низа на зборови од датотека. 296 00:13:15,472 --> 00:13:16,430 Тоа не е на сите дека добрите. 297 00:13:16,430 --> 00:13:20,130 Тоа е се уште ќе биде во линија на зборови, нешто линеарна. 298 00:13:20,130 --> 00:13:23,880 Но, можам да оди напред и да iterate над секоја од овие зборови користење 299 00:13:23,880 --> 00:13:25,710 дека синтакса видовме накусо последен пат. 300 00:13:25,710 --> 00:13:27,940 И ќе го видам повеќе во наредниот PSET. 301 00:13:27,940 --> 00:13:32,070 >> Но сега имам еден циклус процесирањето над секој збор во речникот. 302 00:13:32,070 --> 00:13:36,100 И на секој повторување, да се потсетиме Јас сум повикување на тековниот збор "збор". 303 00:13:36,100 --> 00:13:39,790 И сето тоа се случува да се земе да се стави зборот во речникот е 304 00:13:39,790 --> 00:13:43,530 ќе биде зборот погоди "вистина". 305 00:13:43,530 --> 00:13:44,740 Тоа е мојот вметнете функција. 306 00:13:44,740 --> 00:13:46,661 Тоа е мојот оптоварување функција за мојот речник. 307 00:13:46,661 --> 00:13:49,410 Сега е малку измамник, бидејќи, знаеш што, таму е всушност 308 00:13:49,410 --> 00:13:52,920 обратна коса црта n на крајот на зборови дека јас веројатно ќе треба да се ослободи од, 309 00:13:52,920 --> 00:13:56,380 но тоа не е проблем затоа што PHP има функција наречена сека кои буквално 310 00:13:56,380 --> 00:13:58,480 рифови исклучи еден карактер на самиот крај. 311 00:13:58,480 --> 00:13:59,400 Па нема проблем таму. 312 00:13:59,400 --> 00:14:02,199 Ние нема напред и, всушност, скратена дека само ова. 313 00:14:02,199 --> 00:14:05,240 И сега јас веројатно ќе треба да ги пратите на големината, па ајде барем не this-- 314 00:14:05,240 --> 00:14:05,835 големина ++. 315 00:14:05,835 --> 00:14:07,339 Можам да го направите тоа како порано. 316 00:14:07,339 --> 00:14:10,380 И тогаш ова е веројатно нема да работат само парична казна, така што се вратиме вистина. 317 00:14:10,380 --> 00:14:10,930 Направи. 318 00:14:10,930 --> 00:14:11,797 PSET 5. 319 00:14:11,797 --> 00:14:13,545 >> [Смеа] 320 00:14:13,545 --> 00:14:14,420 >> Дејвид Џ MALAN: Добро. 321 00:14:14,420 --> 00:14:16,628 Ние ќе го направи тоа повторно со следниот PSET, исто така. 322 00:14:16,628 --> 00:14:18,730 Значи она што за големината? 323 00:14:18,730 --> 00:14:22,080 Па, ова се надевам дека е околу како што би очекувале последен пат, 324 00:14:22,080 --> 00:14:24,460 иако јас треба да направите овој глупав глобалната работа. 325 00:14:24,460 --> 00:14:26,610 Тоа е само еден артефакт од дизајн на јазикот. 326 00:14:26,610 --> 00:14:28,450 >> Но проверете е малку поинтересна. 327 00:14:28,450 --> 00:14:31,420 Значи, ако јас помина во долар потпише збор, јас прв пат 328 00:14:31,420 --> 00:14:34,060 сакате да имаат пристап до дека глобалната променлива маса. 329 00:14:34,060 --> 00:14:36,700 И сега ако сакам да провери ако зборот е таму, 330 00:14:36,700 --> 00:14:44,350 Јас едноставно може да се каже дали е вистина дека Следниве е поставена во табелата, 331 00:14:44,350 --> 00:14:49,957 па ќе одиме напред и да се врати вистина; друго, return false. 332 00:14:49,957 --> 00:14:51,180 Направи. 333 00:14:51,180 --> 00:14:52,440 Другата половина од PSET 5. 334 00:14:52,440 --> 00:14:54,540 >> Сите права, па уште еднаш, јас сум сечење неколку агли. 335 00:14:54,540 --> 00:14:56,831 Во праведноста, јас треба веројатно поминат уште неколку секунди 336 00:14:56,831 --> 00:14:58,300 на оваа имплементација. 337 00:14:58,300 --> 00:15:01,860 И јас веројатно не треба да се потсмеваат на сите часа ќе се стави на PSET толку многу. 338 00:15:01,860 --> 00:15:04,045 Па strtolower е во функција. 339 00:15:04,045 --> 00:15:06,670 Нешто слично егзистенцијалист во C, барем за карактери, 340 00:15:06,670 --> 00:15:08,560 но PHP доби цела низа верзија. 341 00:15:08,560 --> 00:15:11,226 >> Тоа ќе го присили што во мали букви, а некои од вас 342 00:15:11,226 --> 00:15:14,944 би можело да се направи за да canonicalize што сте биле ставање во вашиот речник. 343 00:15:14,944 --> 00:15:16,360 И сега можете да го направите ова во C, исто така. 344 00:15:16,360 --> 00:15:17,780 Ова нема никаква врска со PHP. 345 00:15:17,780 --> 00:15:20,260 >> Но, секој пат кога ќе треба Булова состојба, 346 00:15:20,260 --> 00:15:22,680 како нешто на линија 10 таму, што е само 347 00:15:22,680 --> 00:15:27,145 ќе се оцени да е точно или лажни, и вашата ако друго јасно 348 00:15:27,145 --> 00:15:33,620 се враќа точно или неточно, можев едноставно навистина го прават овој посекси 349 00:15:33,620 --> 00:15:38,360 и само се направи нешто како ова. 350 00:15:38,360 --> 00:15:40,500 Така што не ми е проверка функција. 351 00:15:40,500 --> 00:15:42,560 Право, ако Булова враќа точно или неточно, 352 00:15:42,560 --> 00:15:44,630 ајде да го врати веднаш. 353 00:15:44,630 --> 00:15:47,340 >> И има неколку други измени Јас може да се направи тука и таму. 354 00:15:47,340 --> 00:15:51,380 Load-- бриши, патем, тоа е направено. 355 00:15:51,380 --> 00:15:52,850 Ништо да се направи таму. 356 00:15:52,850 --> 00:15:55,840 Од сите на меморија во PHP и многу други јазици 357 00:15:55,840 --> 00:15:57,570 е, всушност, успеа за вас. 358 00:15:57,570 --> 00:16:00,330 Значи додека во Ц, како што сте научиле болно, 359 00:16:00,330 --> 00:16:04,700 нешто што Примерок или calloc или realloc, ќе мора да се ослободи. 360 00:16:04,700 --> 00:16:08,770 Нешто што fopen, ќе мора да запишам, така што средствата се конечно ослободен 361 00:16:08,770 --> 00:16:11,690 и алатки како Valgrind не забележи и не се жалат, 362 00:16:11,690 --> 00:16:13,570 која е добра работа да се кандидира на нив. 363 00:16:13,570 --> 00:16:16,190 >> Но сигурно, мора да има некои фати, нели? 364 00:16:16,190 --> 00:16:19,400 Инаку, ние вид на залудно потрошени целиот куп на недели. 365 00:16:19,400 --> 00:16:23,270 Така што било кој број на причини Затоа ние вид на искористам оваа траекторија, 366 00:16:23,270 --> 00:16:24,440 но постои трампа. 367 00:16:24,440 --> 00:16:25,820 Право, ова е тематски. 368 00:16:25,820 --> 00:16:29,690 >> Па што би можеле трампа тука се движи од Ц во PHP? 369 00:16:29,690 --> 00:16:33,250 Се чувствува како сите победи досега, освен малку грдоста тука или таму. 370 00:16:33,250 --> 00:16:34,040 Да. 371 00:16:34,040 --> 00:16:34,700 Што е тоа? 372 00:16:34,700 --> 00:16:36,064 >> СТУДЕНТСКИ: [нечујни] меморија. 373 00:16:36,064 --> 00:16:36,980 Дејвид Џ MALAN: брзина. 374 00:16:36,980 --> 00:16:37,479 ОК. 375 00:16:37,479 --> 00:16:40,720 Па, мојата брзина беше прилично брзо. 376 00:16:40,720 --> 00:16:42,020 Нели? 377 00:16:42,020 --> 00:16:44,320 Но брзината на извршување на програмата? 378 00:16:44,320 --> 00:16:45,580 Добро, така што е фер точка. 379 00:16:45,580 --> 00:16:50,930 >> Па како тоа ќе се случи, јас однапред наместени до двете ми обид решение, еден 380 00:16:50,930 --> 00:16:53,510 Имав на големиот одбор беше да се проба-базирани решенија, 381 00:16:53,510 --> 00:16:55,510 и имам дека во овој директориум тука. 382 00:16:55,510 --> 00:16:58,510 Па јас во еден момент, можам да одам напред и ја извршите оваа на Кралот Џејмс Библијата, 383 00:16:58,510 --> 00:16:59,657 притискање на Enter. 384 00:16:59,657 --> 00:17:01,990 И тоа е се надевам дека правилно спроведувањето на крајот, 385 00:17:01,990 --> 00:17:05,109 ми дава време во вкупно на 0,38 секунди за тоа 386 00:17:05,109 --> 00:17:07,270 еден донекаде произволна пример. 387 00:17:07,270 --> 00:17:09,270 >> И ако јас сега одат во овој Вториот терминален прозорец 388 00:17:09,270 --> 00:17:14,569 тука каде што првпат беше отворен gedit, да ми се оди во денешниот code-- кои, повторно, 389 00:17:14,569 --> 00:17:19,650 е во овој директориум here-- и дозволете ми да оди напред и да ја стартувате правопис. 390 00:17:19,650 --> 00:17:23,470 Па само да бидат јасни, ова е верзија на PHP. 391 00:17:23,470 --> 00:17:25,170 Јас сум само покажува на врвот на тоа тука. 392 00:17:25,170 --> 00:17:32,020 >> Значи, ако јас се направи правопис на тилда CS50 PSET 5 текстови, кралот Џејмс, влезе. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 Тоа е уште побрзо отколку пишување тоа во C, но вкупното време 395 00:17:43,050 --> 00:17:47,650 е, известување, 0,93, додека мојата Ц-базирана имплементација беше 0,38. 396 00:17:47,650 --> 00:17:49,110 Така, тоа е не-тривијални разлика. 397 00:17:49,110 --> 00:17:51,100 >> И ова е само на една датотека. 398 00:17:51,100 --> 00:17:53,480 Ако сте биле да се кандидира на две програми наспроти големите одбор 399 00:17:53,480 --> 00:17:56,510 и имаат целиот куп на влезови тестирани, ова сигурно ќе се додаде. 400 00:17:56,510 --> 00:18:00,310 И дали сме се дури и поголеми сетови на податоци, ова, исто така, ќе додаде уште повеќе. 401 00:18:00,310 --> 00:18:04,820 Така да, да плаќаат некои цена на брзина е навистина така. 402 00:18:04,820 --> 00:18:05,470 Што друго? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Да? 405 00:18:08,860 --> 00:18:10,340 >> СТУДЕНТСКИ: Износ на RAM меморија употреба. 406 00:18:10,340 --> 00:18:11,756 >> Дејвид Џ MALAN: Износ на RAM меморија употреба. 407 00:18:11,756 --> 00:18:15,380 Па јас не даде една секунда мисла кога го пишувам овој PHP 408 00:18:15,380 --> 00:18:17,300 верзија за тоа како многу меморија бев користите. 409 00:18:17,300 --> 00:18:22,080 Јас сум целосно одложување дека во PHP себе и кој напиша дека програмата. 410 00:18:22,080 --> 00:18:24,500 И дека може да биде во ред, но ако јас всушност навистина 411 00:18:24,500 --> 00:18:28,420 се грижат за стегајќи колку перформанси од мојата програма или надвор од мојот веб-сајт 412 00:18:28,420 --> 00:18:31,150 или надвор од она што алатка Градам, можеби 413 00:18:31,150 --> 00:18:33,310 PHP, навистина, не е вистинскиот јазик. 414 00:18:33,310 --> 00:18:36,330 >> И всушност, тоа е причината зошто, за На пример, многу веб servers-- 415 00:18:36,330 --> 00:18:38,980 вистински програми кои сервираат веб content-- 416 00:18:38,980 --> 00:18:41,810 не се напишани во PHP или во Пајтон или Руби. 417 00:18:41,810 --> 00:18:44,630 Тие се напишани, како сега ќе се прави со PSEt 6, 418 00:18:44,630 --> 00:18:48,120 во C, така што ќе може да се притисне секој малку на перформанси од него 419 00:18:48,120 --> 00:18:50,780 и навистина се вежба фино зрно контрола над она што е 420 00:18:50,780 --> 00:18:52,980 случува под хауба и не само да го земе 421 00:18:52,980 --> 00:18:54,890 здраво за готово некои повисоки податоци на ниво на структура. 422 00:18:54,890 --> 00:18:58,071 >> Сметаат дека, по сите, кој во PHP спроведува 423 00:18:58,071 --> 00:19:00,070 дека идејата за хаш table-- тоа е, всушност, повеќе 424 00:19:00,070 --> 00:19:04,260 правилно се нарекува асоцијативна array-- Дали тој или таа имаат било каква идеја каков вид 425 00:19:04,260 --> 00:19:07,090 на влезови ви се случува да биде пуштање во структурата? 426 00:19:07,090 --> 00:19:08,260 Значи очигледно не е, нели? 427 00:19:08,260 --> 00:19:10,340 Тоа е генерички алатка во раководство што е 428 00:19:10,340 --> 00:19:13,430 предвидени за секој кој сака да го користат, и така сигурно тоа 429 00:19:13,430 --> 00:19:17,680 не може да биде оптимизирана на крајот за што точно сакате да направите. 430 00:19:17,680 --> 00:19:21,180 >> Па трговски offs-- развој време можеби се разликуваат, перформанси може да се разликуваат, 431 00:19:21,180 --> 00:19:23,120 сложеноста или употребата на меморијата може да се разликуваат. 432 00:19:23,120 --> 00:19:24,820 И така што ќе најдете повеќе е дека има 433 00:19:24,820 --> 00:19:26,570 случува да се биде различен алатки за трговија. 434 00:19:26,570 --> 00:19:31,160 А всушност за супер мнозинство на конечна проекти на луѓето во оваа класа, 435 00:19:31,160 --> 00:19:34,360 верувале или не, Ц не се случува да биде вистинскиот јазик да го користите. 436 00:19:34,360 --> 00:19:37,880 >> И всушност, еден од takeaways на крајот за која било класа вака 437 00:19:37,880 --> 00:19:40,510 е да се мислиш за, добро, она што треба да отсвират 438 00:19:40,510 --> 00:19:42,710 полицата кога сакате за решавање на некој проблем. 439 00:19:42,710 --> 00:19:46,720 И навистина, ние ќе премине овој мост дури и повеќе како што изгледаат на повеќе јазици 440 00:19:46,720 --> 00:19:47,920 дури и надвор денес. 441 00:19:47,920 --> 00:19:50,530 >> Па ајде транзиција сега да можеби повеќе запознаени контекст 442 00:19:50,530 --> 00:19:52,480 за користење на јазик како PHP. 443 00:19:52,480 --> 00:19:56,720 Тоа е малку заеднички да се користи во на командната линија, пишување скрипти 444 00:19:56,720 --> 00:19:59,050 како што го направив, но тоа е многу, многу повеќе заеднички. 445 00:19:59,050 --> 00:20:02,350 И тоа беше наменета да се користи во форма на датотеки кои обично завршуваат 446 00:20:02,350 --> 00:20:05,060 во .php-- но тоа е не prerequisite-- 447 00:20:05,060 --> 00:20:07,990 кои се генерираат веб содржина. 448 00:20:07,990 --> 00:20:11,310 >> Значи, дозволете ми да оди напред и да се отвори неколку примери јас подготвени однапред. 449 00:20:11,310 --> 00:20:15,100 И тие се всушност вид на вистинско приказни во кои една од првите работи 450 00:20:15,100 --> 00:20:18,200 Јас некогаш си направи по завршувањето на CS50, а можеби и, мислам, 451 00:20:18,200 --> 00:20:21,350 Пред CS51 години е мојот цимер и јас се помага 452 00:20:21,350 --> 00:20:24,320 да се кандидира на Новак интрамурална спортски програма, која, во тоа време, 453 00:20:24,320 --> 00:20:28,610 го Новак регистрирате за различни спортски со пополнување на парче хартија, 454 00:20:28,610 --> 00:20:31,800 како што беше наречена, одење низ дворот на Wigglesworth, 455 00:20:31,800 --> 00:20:34,030 и паѓајќи во некои капка врата Проктор е. 456 00:20:34,030 --> 00:20:37,210 И тогаш тој или таа ќе оди преку нив, а потоа всушност ни е-мејл рачно 457 00:20:37,210 --> 00:20:39,140 дека се регистрирани за некои спорт. 458 00:20:39,140 --> 00:20:41,166 >> Па јасно, можност за подобрување. 459 00:20:41,166 --> 00:20:44,040 Овие денови, може да се сврти кон само Гугл форми, но во тоа време, 460 00:20:44,040 --> 00:20:46,914 моравме да всушност достигне for-- ова не беше дури и дека долго ago-- достигне 461 00:20:46,914 --> 00:20:49,410 за програмирање јазик кој не е PHP. 462 00:20:49,410 --> 00:20:51,200 Во тоа време, тоа беше нешто што се нарекува perl, 463 00:20:51,200 --> 00:20:52,890 кој излезе од мода, бидејќи. 464 00:20:52,890 --> 00:20:54,160 Но, идејата е иста. 465 00:20:54,160 --> 00:20:58,940 >> И јас во суштина седна да се обиде во пристаништето оди Perl верзии на PHP, 466 00:20:58,940 --> 00:21:03,710 но во целосна одрекување, не даде каква било помисла на естетика само уште. 467 00:21:03,710 --> 00:21:04,960 Па овде е веб-страница. 468 00:21:04,960 --> 00:21:05,670 Ова е податотека. 469 00:21:05,670 --> 00:21:09,470 Ако јас зумирате, нејзините очигледно наречен froshim0.php 470 00:21:09,470 --> 00:21:12,060 само затоа што е нашата прва пример во оваа серија. 471 00:21:12,060 --> 00:21:15,970 И ќе забележите дека има она што се појавува да се биде многу грда HTML форма, 472 00:21:15,970 --> 00:21:18,680 но формата е интересно бидејќи тоа им овозможува 473 00:21:18,680 --> 00:21:21,910 мене да се обезбеди корисник влез на прелистувачот. 474 00:21:21,910 --> 00:21:27,730 >> Сега последен пат кога имавме форма, за да се Кому ја поднесуваме нашата параметар, 475 00:21:27,730 --> 00:21:30,450 редот параметар како што беше наречена? 476 00:21:30,450 --> 00:21:31,330 Па на Google, нели? 477 00:21:31,330 --> 00:21:34,090 Ние целосно punted на идејата за прави ништо со што влез. 478 00:21:34,090 --> 00:21:36,160 >> Но, денес, ние почнуваме производство на излез. 479 00:21:36,160 --> 00:21:39,420 И однесувањето Одам да се види тука на почетокот е прилично тривијална. 480 00:21:39,420 --> 00:21:42,980 Дејвид, јас ќе се провери надвор родова тука, велат Метјуз тука. 481 00:21:42,980 --> 00:21:43,800 Јас нема да биде капитен. 482 00:21:43,800 --> 00:21:45,410 Одам да кликнете на Register. 483 00:21:45,410 --> 00:21:50,720 И ќе забележите дека URL има промени да се регистрирате-0.php, 484 00:21:50,720 --> 00:21:52,310 А потоа, тука е оваа грда текст тука. 485 00:21:52,310 --> 00:21:54,460 Дадов не помислуваат форматирање на ова. 486 00:21:54,460 --> 00:21:59,900 >> Но, она што е интересно е дека три вредности беа очигледно помина во. 487 00:21:59,900 --> 00:22:02,960 Ова е PHP е вид на еквивалентно на printf-- 488 00:22:02,960 --> 00:22:06,330 ќе видиме што тоа е навистина наречен во bit-- дека само отпечатоци од 489 00:22:06,330 --> 00:22:08,300 она што го помина во неа. 490 00:22:08,300 --> 00:22:11,414 Значи ова укажува на тоа дека таа форма имаше најмалку три полиња на него, 491 00:22:11,414 --> 00:22:12,580 а ти ме виде пишувате во. 492 00:22:12,580 --> 00:22:15,739 Една од нив беше моето име, еден беше пол, еден беше дом. 493 00:22:15,739 --> 00:22:18,780 И капитенот дури и не се испрати на на серверот, бидејќи јас не го провериш. 494 00:22:18,780 --> 00:22:22,150 >> Значи ова е да се каже, очигледно, кога ќе ја поднесете работи на интернет, 495 00:22:22,150 --> 00:22:26,830 не само што ја URL адресата понекогаш change-- понекогаш тоа не го прави. 496 00:22:26,830 --> 00:22:30,330 Всушност, името на датотеката се промени, но она што е отсутен од URL-то 497 00:22:30,330 --> 00:22:32,861 дека ние сме виделе последен пат со Google. 498 00:22:32,861 --> 00:22:33,360 Да? 499 00:22:33,360 --> 00:22:34,380 >> СТУДЕНТСКИ: Не барањето 500 00:22:34,380 --> 00:22:35,220 >> Дејвид Џ MALAN: Нема барањето. 501 00:22:35,220 --> 00:22:37,270 Нема прашалник нешто. 502 00:22:37,270 --> 00:22:40,050 Нема прашалник н е еднаква на мачки, како што направивме последен пат. 503 00:22:40,050 --> 00:22:42,170 И таму е, секако, нема прашалник име е еднаква на 504 00:22:42,170 --> 00:22:46,310 Дејвид или dorm еднаква Метјуз, па каде е тоа што сите се случува? 505 00:22:46,310 --> 00:22:51,290 >> Па, дозволете ми да се врати во gedit тука и ќе отвори прв од оние датотеки 506 00:22:51,290 --> 00:22:57,020 во мојот vhost, локалниот компјутер, јавни Директориум тука и да одат во froshim0. 507 00:22:57,020 --> 00:23:02,060 Значи излегува дека речиси сите на оваа страница е само HTML. 508 00:23:02,060 --> 00:23:05,410 И ова може да биде непознато за вас, но тоа наскоро ќе биде повеќе, па со PSET 6 509 00:23:05,410 --> 00:23:07,370 и PSET 7 и PSET 8. 510 00:23:07,370 --> 00:23:09,160 Но, ова е само една HTML страница. 511 00:23:09,160 --> 00:23:12,400 >> И интересни нешта се чини дека е овде. 512 00:23:12,400 --> 00:23:16,290 Една форма таг чија акција атрибут има вредност од регистарот 0. 513 00:23:16,290 --> 00:23:18,890 Тоа е причината зошто, кога ќе го поднесе ова, таа оди на таа датотека. 514 00:23:18,890 --> 00:23:20,620 Но методот е различен today-- пост. 515 00:23:20,620 --> 00:23:23,120 Значи излегува дека е најмалку два методи на веб се користи 516 00:23:23,120 --> 00:23:24,911 да се испрати информации од прелистувачот на серверот. 517 00:23:24,911 --> 00:23:25,980 Земете го става во URL-то. 518 00:23:25,980 --> 00:23:27,950 Пост го става на друго место. 519 00:23:27,950 --> 00:23:30,570 И кога и зошто може да ви всушност сакаат веб-сајт 520 00:23:30,570 --> 00:23:34,110 да ги користат пост тогаш наместо на се, само интуитивно? 521 00:23:34,110 --> 00:23:37,080 Било која веб страница. 522 00:23:37,080 --> 00:23:42,010 Каков вид на податоци треба да се донесе само од страна на инференција сега преку пост што е спротивно 523 00:23:42,010 --> 00:23:45,184 да се добие, ако ние сме виделе двете разлики? 524 00:23:45,184 --> 00:23:46,350 СТУДЕНТСКИ: [нечујни] обезбеди. 525 00:23:46,350 --> 00:23:47,790 Дејвид Џ MALAN: Ако сакате нешто да се биде безбеден. 526 00:23:47,790 --> 00:23:50,360 Па можеби ќе напишете лозинка во веб-сајт, кредитна картичка 527 00:23:50,360 --> 00:23:53,030 во веб-сајт ќе вид на овие неоптимална 528 00:23:53,030 --> 00:23:56,220 ако на прелистувачот стави тоа вредност внатрешноста на URL-то. 529 00:23:56,220 --> 00:23:57,680 Зошто? 530 00:23:57,680 --> 00:24:00,059 Можете да ги види, што не се чини дека се толку голем договор, 531 00:24:00,059 --> 00:24:03,350 но шансите се прилично често одам далеку од вашиот компјутер или употреба компјутер 532 00:24:03,350 --> 00:24:05,310 лаборатории, и така некој друго, па дури и цимер 533 00:24:05,310 --> 00:24:08,220 може лесно да одиме и да видиме дека приватните информации. 534 00:24:08,220 --> 00:24:10,220 Кога ќе испрати е-маил преку интернет, веројатно 535 00:24:10,220 --> 00:24:12,350 не сакаат дека податоците крај во URL-то, како и. 536 00:24:12,350 --> 00:24:15,266 И така има било кој број на причини Затоа ние можеби ќе сакате да го стави тука. 537 00:24:15,266 --> 00:24:18,610 Дури и photos-- право, не можам сосема замислите како ќе се земе графички, 538 00:24:18,610 --> 00:24:21,480 како JPEG, и го стави во URL-то. 539 00:24:21,480 --> 00:24:22,330 Вие би можеле да го направи тоа. 540 00:24:22,330 --> 00:24:25,840 Има начини на кодирање тоа, но тоа е само не е лесно како што. 541 00:24:25,840 --> 00:24:29,030 >> Значи се регистрирате 0 е всушност многу underwhelming. 542 00:24:29,030 --> 00:24:31,610 Вели дека сето тоа буквално е ова. 543 00:24:31,610 --> 00:24:35,910 Тоа отпечатоци од внатрешноста на некои HTML тагови следново. 544 00:24:35,910 --> 00:24:38,640 Јас имам PHP таг тука вгнездени во внатрешноста на пред таг. 545 00:24:38,640 --> 00:24:42,300 "Пред" само значи пред-форматиран текст, моно-интервал, како на машина за пишување. 546 00:24:42,300 --> 00:24:44,836 >> Printr е печати рекурзивен функција. 547 00:24:44,836 --> 00:24:46,710 А потоа, тука е ова интересна работа тука. 548 00:24:46,710 --> 00:24:48,835 А ние ќе се вратам на оваа затоа што има други, 549 00:24:48,835 --> 00:24:51,140 но знакот за долар црта пост се чини дека е 550 00:24:51,140 --> 00:24:56,110 променлива во PHP во која ништо ви испрати од прелистувачот на серверот 551 00:24:56,110 --> 00:24:58,040 добива чуваат за вас. 552 00:24:58,040 --> 00:25:00,930 И ќе видиме како да се добие на тие информации пред долго. 553 00:25:00,930 --> 00:25:04,000 >> Но прво, да се вратиме на малку поинаков пример. 554 00:25:04,000 --> 00:25:09,050 Одење во register-- или а, froshims1.php, 555 00:25:09,050 --> 00:25:10,470 кој изгледа малку различен. 556 00:25:10,470 --> 00:25:12,670 Зедов малку повеќе напор со форматирање, 557 00:25:12,670 --> 00:25:14,370 иако тоа е сè уште прилично грда. 558 00:25:14,370 --> 00:25:16,990 Но јас ќе одам да се оди напред и внесете "Давид" сега. 559 00:25:16,990 --> 00:25:17,850 Машки. 560 00:25:17,850 --> 00:25:19,360 Ние ќе се провери "капетан" тоа време. 561 00:25:19,360 --> 00:25:20,660 Ние ќе се Метјуз. 562 00:25:20,660 --> 00:25:22,430 И да се регистрирате. 563 00:25:22,430 --> 00:25:24,110 >> И овој пат го кажува, хм, навистина не. 564 00:25:24,110 --> 00:25:26,180 Добро, па што е регистрираат 1? 565 00:25:26,180 --> 00:25:30,509 Дозволете ми да одат во отворен Регистрирај 1 and-- хм. 566 00:25:30,509 --> 00:25:32,300 Добро, така што ова е интересно, а тоа 567 00:25:32,300 --> 00:25:34,880 е отскочна штица сега кон повеќе интересни програми. 568 00:25:34,880 --> 00:25:38,970 >> Обрнете внимание на врвот од оваа датотека има PHP таг како и некои коментари. 569 00:25:38,970 --> 00:25:42,590 И овие се, сега за сега, одвраќање па да се ослободи од оние коментари 570 00:25:42,590 --> 00:25:47,070 исто како и тие се во C. И тврдам со ова парче од код со коментар 571 00:25:47,070 --> 00:25:49,280 дека овој код е оценување на поднесување. 572 00:25:49,280 --> 00:25:51,690 >> Па, излегува дека варијабли како знакот за долар 573 00:25:51,690 --> 00:25:53,739 подвлечено пост се наречен супер глобални. 574 00:25:53,739 --> 00:25:55,530 Тие се како овие специјални глобални променливи 575 00:25:55,530 --> 00:25:58,840 дека се само omni-во моментов на располагање во рамките на својата програма. 576 00:25:58,840 --> 00:26:03,870 И можете да го користите квадратни загради нотација да индексира во не ги користи броеви 577 00:26:03,870 --> 00:26:07,460 како 0, 1, 2, 3, но вистинските зборови. 578 00:26:07,460 --> 00:26:12,100 >> Па можете да мислам на знакот за долар подвлечено пост како еден вид на хаш табелата 579 00:26:12,100 --> 00:26:15,920 дека може да помине на клучот во, на пребарување збор во-помеѓу загради, 580 00:26:15,920 --> 00:26:19,370 и тоа се случува да ви даде вратам на вредност, која на корисникот всушност се предвидени. 581 00:26:19,370 --> 00:26:21,210 PHP има функција наречен празен дека само 582 00:26:21,210 --> 00:26:23,720 вели да или не, ова променлива е празна или не. 583 00:26:23,720 --> 00:26:27,250 Имаме овие двојно барови, што само значи или, како во В. 584 00:26:27,250 --> 00:26:31,740 >> Така што во сила, оваа линија 4 е само велејќи дека ако корисникот не даде име 585 00:26:31,740 --> 00:26:36,540 или не даде пол или не даде дом, оди напред и да се пренасочи него 586 00:26:36,540 --> 00:26:38,184 или неа преку оваа линија тука. 587 00:26:38,184 --> 00:26:40,600 Значи ова е малку криптичната, но тоа само значи буквално 588 00:26:40,600 --> 00:26:43,330 се врати на оваа локација, па тоа punts на корисникот 589 00:26:43,330 --> 00:26:45,420 назад кон каде тој или таа дојде од. 590 00:26:45,420 --> 00:26:47,880 Но, тоа е малку без вкус во што е тешко кодирана. 591 00:26:47,880 --> 00:26:52,150 >> Но, што ако ова ако состојба не се оцени да е вистина? 592 00:26:52,150 --> 00:26:55,790 Што ако корисникот не ми даде својот или нејзиното име и студентски дом и пол? 593 00:26:55,790 --> 00:26:58,540 Дека ако состојбата не е ќе се оцени на true, 594 00:26:58,540 --> 00:27:00,650 па јас не се погоди излез од алинеја 7. 595 00:27:00,650 --> 00:27:01,680 Значи она што се случува? 596 00:27:01,680 --> 00:27:03,880 И тоа е она што е интересни за PHP. 597 00:27:03,880 --> 00:27:07,470 >> Можете да капка во и надвор на PHP на владата, така да се каже. 598 00:27:07,470 --> 00:27:10,985 Ако сакате некои код да се изврши, можете да отворите и затворите PHP таг 599 00:27:10,985 --> 00:27:13,010 и го стави код таму како што го направив тука. 600 00:27:13,010 --> 00:27:16,810 Веднаш штом ќе се затвори на PHP таг, серверот 601 00:27:16,810 --> 00:27:19,407 е само ќе плукаат она што ќе го стави таму. 602 00:27:19,407 --> 00:27:21,740 И навистина, ова беше дел од на оригиналниот дизајн на PHP, 603 00:27:21,740 --> 00:27:25,280 за подобро за полошо, беше ова commingling на кодот и за Селектирај 604 00:27:25,280 --> 00:27:25,920 јазик. 605 00:27:25,920 --> 00:27:28,670 И ние ќе видите дека ова многу брзо devolves во хаос. 606 00:27:28,670 --> 00:27:31,280 И така ние ќе го направи подобро од ова во крајна линија, туку само 607 00:27:31,280 --> 00:27:35,620 забележи од леснотијата со која јас сум во можност да се изврши некоја логика. 608 00:27:35,620 --> 00:27:37,440 >> Но сепак малку underwhelming. 609 00:27:37,440 --> 00:27:41,210 Ајде да се отвори верзија две од Frosh ИСП, кои 610 00:27:41,210 --> 00:27:44,270 очигледно доставува до register2.php. 611 00:27:44,270 --> 00:27:47,600 Значи оваа датотека е всушност се случува да се погледне скоро исти. 612 00:27:47,600 --> 00:27:50,780 Одам да се оди на Frosh инстант пораки 2. 613 00:27:50,780 --> 00:27:53,050 Но, во Frosh инстант пораки 2, ајде да видиме што се случува. 614 00:27:53,050 --> 00:27:58,110 >> Давид, кликнете на копчето за радио, како се вика; Метјуз, без капетан. 615 00:27:58,110 --> 00:27:59,230 Регистрирај се. 616 00:27:59,230 --> 00:28:00,130 Сте се регистрирале. 617 00:28:00,130 --> 00:28:00,700 Не, навистина. 618 00:28:00,700 --> 00:28:02,574 О чека, ние само го направи дека пример, не ние? 619 00:28:02,574 --> 00:28:04,520 Сите права, стојат од страна. 620 00:28:04,520 --> 00:28:06,602 Ние ќе направиме три. 621 00:28:06,602 --> 00:28:08,560 Јасно нешто е за да се случи со Gmail. 622 00:28:08,560 --> 00:28:09,600 Ќе одам таму. 623 00:28:09,600 --> 00:28:11,900 >> Па Frosh инстант пораки 3 изгледа вака. 624 00:28:11,900 --> 00:28:13,050 Не се разликува. 625 00:28:13,050 --> 00:28:19,850 Но, кога ќе го направите Дејвид, машки, Метјуз и регистрираат, оваа трета и последна верзија 626 00:28:19,850 --> 00:28:22,230 тврдења, доста едноставно, се регистрирани навистина. 627 00:28:22,230 --> 00:28:23,560 Тоа е вид на нематеријална. 628 00:28:23,560 --> 00:28:25,600 Но тврдам со овој третата и последна верзија 629 00:28:25,600 --> 00:28:30,610 Имам сега пресоздава точно она што ми цимер и јас го изградивме за Frosh инстант пораки 630 00:28:30,610 --> 00:28:31,731 Пред програмата години. 631 00:28:31,731 --> 00:28:32,480 И тоа беше едноставно. 632 00:28:32,480 --> 00:28:34,330 Немаше база на податоци, нема Excel табела. 633 00:28:34,330 --> 00:28:36,450 Но, уште поважно, нема повеќе на хартија 634 00:28:36,450 --> 00:28:42,520 бидејќи она што го правевме со оваа програма беше да се, всушност, е-маил на Проктор, кои 635 00:28:42,520 --> 00:28:44,530 претходно беше добивањето овие работи преку форми. 636 00:28:44,530 --> 00:28:48,890 >> И очигледно ние сме програмирани ова на таков начин што кога некој регистрира, 637 00:28:48,890 --> 00:28:52,470 Сметка пораки Џон Харвард на proctor-- или себе, во овој случај, 638 00:28:52,470 --> 00:28:55,960 Џон Harvard-- со следниве text-- "Овој човек само регистрирани." 639 00:28:55,960 --> 00:29:00,560 Име е Давид, капетанот не е празно; пол, машки; и студентски дом, Метјуз. 640 00:29:00,560 --> 00:29:01,560 >> Значи она што се случило таму? 641 00:29:01,560 --> 00:29:05,360 Па, на датотеката во прашање очигледно е register3.php. 642 00:29:05,360 --> 00:29:09,080 И ако ја отворите оваа, ќе видите и моќта на кодот како овој 643 00:29:09,080 --> 00:29:12,380 и, исто така, искрено, несигурноста на системот како е-мејл. 644 00:29:12,380 --> 00:29:16,290 Имам само ефикасно се преправал дека ги биде Џон Харвард во следниот начин. 645 00:29:16,290 --> 00:29:20,920 >> Имам отворен PHP таг до врвот, кои само вели тука доаѓа некои PHP код. 646 00:29:20,920 --> 00:29:23,155 Овде долу, се врти таму се библиотеки во PHP. 647 00:29:23,155 --> 00:29:26,410 Вие само не треба да се вклучуваат заглавието додадени фајлови колку. 648 00:29:26,410 --> 00:29:28,900 Можете да добиете повеќе со кујна со мијалник, така да се каже. 649 00:29:28,900 --> 00:29:31,820 >> Но овој пат во алинеја 4, јас не сакате да посебна библиотека наречена 650 00:29:31,820 --> 00:29:36,087 PHP писмото, кое е нешто што може да се инсталира бесплатно во многу системи. 651 00:29:36,087 --> 00:29:37,920 Овде сум оценување поднесување само 652 00:29:37,920 --> 00:29:40,540 со проверка се даде на корисник ми име, пол, и студентски дом. 653 00:29:40,540 --> 00:29:44,130 И ако е така, повелете и показ за писмото. 654 00:29:44,130 --> 00:29:47,020 >> Можете да мислам на тоа како да се биде линија на кодот кој само доделува. 655 00:29:47,020 --> 00:29:48,950 Тоа е како Примерок, но тоа е малку посекси 656 00:29:48,950 --> 00:29:51,790 со тоа што не се спомене само Примерок а некои генерички број. 657 00:29:51,790 --> 00:29:55,030 Велиш да ми дадеш еден од овие, дај ми еден нов еден од нив. 658 00:29:55,030 --> 00:29:57,950 >> И ако сте програмиран во Java или C ++ или други јазици, 659 00:29:57,950 --> 00:29:59,130 што може да се види тоа. 660 00:29:59,130 --> 00:30:01,840 Но помалку од тоа, ако непознат, оваа линија 661 00:30:01,840 --> 00:30:05,410 става во знакот за долар пошта посебна struct наречен 662 00:30:05,410 --> 00:30:08,731 објект кој има вградено во е-мејл функционалност. 663 00:30:08,731 --> 00:30:10,355 И всушност, информации и слични синтакса. 664 00:30:10,355 --> 00:30:11,900 >> Ова не е покажувач, сама по себе. 665 00:30:11,900 --> 00:30:13,990 PHP само ја користи истата синтакса. 666 00:30:13,990 --> 00:30:17,660 Оваа линија е велејќи употреба SMTP-- Едноставна пошта трансфер 667 00:30:17,660 --> 00:30:20,900 Протоколот, кој е само на протокол се користи за испраќање пошта. 668 00:30:20,900 --> 00:30:24,240 Ова е специфицирање на употреба Харвард SMTP сервер, која 669 00:30:24,240 --> 00:30:25,830 е некаде тука на кампусот. 670 00:30:25,830 --> 00:30:28,480 >> Ова е велејќи дека она што TCP бројот на портата за да се разговара, 671 00:30:28,480 --> 00:30:31,650 и јас само сфатиле дека од страна на Googling или со поставување на помош на бирото. 672 00:30:31,650 --> 00:30:34,640 А потоа, бидејќи Харвард користи некои системот за безбедност на пошта server-- 673 00:30:34,640 --> 00:30:37,060 барем да го криптирате сообраќајот меѓу вас и тоа, 674 00:30:37,060 --> 00:30:41,380 иако секој може да се испрати на it-- Одам да го вклучите на TLS 675 00:30:41,380 --> 00:30:42,710 за одржување на оваа безбедна. 676 00:30:42,710 --> 00:30:44,730 >> Но, ова е местото каде што работи добие малку страшно. 677 00:30:44,730 --> 00:30:47,970 Можам само произволно кажам дека сум jharvard, 678 00:30:47,970 --> 00:30:51,930 и можам само произволно е-мејл мене тука. 679 00:30:51,930 --> 00:30:55,650 А потоа можам да се определи предмет со оваа линија тука. 680 00:30:55,650 --> 00:30:58,460 >> И тоа само изгледа грдо, но тоа е само еден куп на конкатенација. 681 00:30:58,460 --> 00:31:04,480 Излегува PHP има супер корисни симбол, како некои јазици, операторот точка, 682 00:31:04,480 --> 00:31:07,340 кои само буквално concatenates низа по низа по низа, 683 00:31:07,340 --> 00:31:09,810 а вие не мора да Примерок или личност од вкупната должина на стрингот. 684 00:31:09,810 --> 00:31:10,820 Вие само го направи тоа. 685 00:31:10,820 --> 00:31:15,220 И навистина, бидејќи јас сум concatenating во сите овие работи со овие точки, 686 00:31:15,220 --> 00:31:18,330 тоа е зошто го внесувачот на Е јас испрати изгледаше како го направив тоа. 687 00:31:18,330 --> 00:31:20,610 >> А потоа на крај тука, јас сум праќање на електронска пошта. 688 00:31:20,610 --> 00:31:22,580 Затоа, ако тоа е неточно, Јас сум само ќе умре, 689 00:31:22,580 --> 00:31:25,680 која е функција која само отпечатоци на екранот некои порака за грешка. 690 00:31:25,680 --> 00:31:29,170 Но, тоа е, всушност, повик за испраќање функција. 691 00:31:29,170 --> 00:31:31,780 Инаку, ако сето ова не успее, тоа ме пренасочува назад тука. 692 00:31:31,780 --> 00:31:34,050 >> И зошто гледам дека Јас сум регистриран навистина? 693 00:31:34,050 --> 00:31:36,110 Па, што се случи овде. 694 00:31:36,110 --> 00:31:38,170 Па јас донесе оваа за неколку причини. 695 00:31:38,170 --> 00:31:41,542 >> Еден, ова е токму онака како ако се изгради некои веб-сајт за завршен проект 696 00:31:41,542 --> 00:31:44,000 или за реалниот свет, ова е како ви испрати е-мејл потсетници 697 00:31:44,000 --> 00:31:45,924 до вашите клиенти или вашите претплатници. 698 00:31:45,924 --> 00:31:47,590 Ова е како ќе испрати лозинката потсетници. 699 00:31:47,590 --> 00:31:50,760 Ова е како да испрати луѓе пораки дека тие имаат нова Фејсбук 700 00:31:50,760 --> 00:31:52,990 порака во тек или нешто слично. 701 00:31:52,990 --> 00:31:55,010 >> Но, тоа, исто така, зборува за фактот дека тоа може да 702 00:31:55,010 --> 00:31:58,160 биле многу добро од Davin или некој друг. 703 00:31:58,160 --> 00:32:00,567 И јас се каже овој вид на со насмевка, бидејќи јас сум 704 00:32:00,567 --> 00:32:03,400 сосема сигурни што се случува преку неколку од вашите мисли во овој момент. 705 00:32:03,400 --> 00:32:11,910 Но, ова е една од оние направи како што велат, не како јас вид на работи, 706 00:32:11,910 --> 00:32:14,480 бидејќи лесно е да се фалсификува пораки како оваа. 707 00:32:14,480 --> 00:32:16,480 Но, како што може да се види или да прочитате во Кримсон, 708 00:32:16,480 --> 00:32:18,271 на крајот тоа е, исто така, прилично тривијални за луѓето 709 00:32:18,271 --> 00:32:20,050 да ги трага назад кон некои потекло. 710 00:32:20,050 --> 00:32:23,790 И ме прашуваат некое време, можеби на CS50 ручек, како јас прв 711 00:32:23,790 --> 00:32:27,080 се запознаа многу тесно речиси до ед одборот многу години 712 00:32:27,080 --> 00:32:30,890 Пред кога дознав како интернет работел. 713 00:32:30,890 --> 00:32:36,940 Така што во секој case-- малку по ед одбор не. 714 00:32:36,940 --> 00:32:42,300 >> Значи во секој случај, постои куп супер глобални, 715 00:32:42,300 --> 00:32:45,960 како што тие се нарекува тука, од кои една ние saw-- знакот за долар црта слики. 716 00:32:45,960 --> 00:32:49,530 Има еден колега наречен ГЕТ, која е местото каде работи од URL-то 717 00:32:49,530 --> 00:32:50,690 завршува оди. 718 00:32:50,690 --> 00:32:54,051 И има еден куп на другите, too-- седница и сервер и куки. 719 00:32:54,051 --> 00:32:55,800 Ние ќе се вратам во колаче некое друго време, 720 00:32:55,800 --> 00:33:01,340 но седницата е вид на кул бидејќи во now-- до now-- 721 00:33:01,340 --> 00:33:06,350 сè што го направив со веб прелистувачот е вид на лице без државјанство, така да се каже. 722 00:33:06,350 --> 00:33:10,060 Можам да кликнете наоколу, пристап додадени фајлови на серверот, нешто 723 00:33:10,060 --> 00:33:13,500 се случува на екранот, но тогаш врската затвора. 724 00:33:13,500 --> 00:33:17,450 На Internet Explorer или Firefox икона запира врти 725 00:33:17,450 --> 00:33:20,340 а ти само да видиме што што содржи web страницата. 726 00:33:20,340 --> 00:33:23,530 >> Па HTTP е без државјанство во таа еднаш тоа го прави смисла, 727 00:33:23,530 --> 00:33:25,050 добива некои податоци, тоа е тоа. 728 00:33:25,050 --> 00:33:29,940 Нема повеќе конекција, за разлика од Skype, за разлика од FaceTime, за разлика од Gchat, која 729 00:33:29,940 --> 00:33:32,180 одржува константна конекција до серверот. 730 00:33:32,180 --> 00:33:34,650 На веб е фундаментално исклучени, иако ние ќе 731 00:33:34,650 --> 00:33:36,630 види пред долго колку ние може да се симулира работи 732 00:33:36,630 --> 00:33:39,300 како што се Фејсбук разговор и Gchat, кои се одржи на illusion-- 733 00:33:39,300 --> 00:33:41,680 или, всушност, го прават одржување на постојана врска со користење на 734 00:33:41,680 --> 00:33:43,270 повеќе модерната технологија. 735 00:33:43,270 --> 00:33:49,000 >> Но, ако одам со, да речеме, counter.php, ова е уште еден едноставен пример, 736 00:33:49,000 --> 00:33:52,700 како што ќе видиме, дека во моментов мисли Јас го посети местото нула време. 737 00:33:52,700 --> 00:33:56,790 Но, ако јас едноставно вчитување на страната, некако знае бев овде. 738 00:33:56,790 --> 00:33:58,840 Ако јас ја превчитате повторно, знае бев овде. 739 00:33:58,840 --> 00:34:01,100 И повторно и повторно и повторно и повторно. 740 00:34:01,100 --> 00:34:03,610 >> Значи има некои плус plussing случува, но најава 741 00:34:03,610 --> 00:34:07,090 малку нешто се врти некогаш толку накратко до врвот и потоа прекинува, 742 00:34:07,090 --> 00:34:11,179 па тоа не е како јас имаат постојана врска со мојот апарат. 743 00:34:11,179 --> 00:34:16,929 Па, ако одам во counter.php, забележите како едноставна е. 744 00:34:16,929 --> 00:34:19,080 Јас прв пат се јавите оваа специјална функција која ние наскоро ќе 745 00:34:19,080 --> 00:34:21,513 започнете преземањето здраво за готово наречен сесија почеток. 746 00:34:21,513 --> 00:34:22,179 Започне сесија. 747 00:34:22,179 --> 00:34:25,095 >> И на седница отсега е само ќе биде кофата, како шопинг 748 00:34:25,095 --> 00:34:28,120 количка во која може да се стави вредности и вид на доверба како програмер 749 00:34:28,120 --> 00:34:31,590 дека тие се случува да се биде тука кога што корисникот доаѓа back-- втор 750 00:34:31,590 --> 00:34:35,670 подоцна, еден час подоцна, па дури и една година подоцна, се додека тој или таа го прави не е јасно 751 00:34:35,670 --> 00:34:37,602 нивните cookies, како што на крајот ќе видиме. 752 00:34:37,602 --> 00:34:39,310 И сега јас само треба АКО состојба тука. 753 00:34:39,310 --> 00:34:44,679 Па ако на следните клучни, наречен контра, се поставува внатре 754 00:34:44,679 --> 00:34:49,210 на овој супер global-- овој хаш маса, ако will-- наречен сесија, 755 00:34:49,210 --> 00:34:53,350 па ќе одиме напред и го имате на вредност од session-- тинк 756 00:34:53,350 --> 00:34:55,250 на ова како шопинг cart-- и чувајте го 757 00:34:55,250 --> 00:34:57,680 во привремена променлива наречена шанкот. 758 00:34:57,680 --> 00:35:02,240 >> Инаку, ако таа вредност контра беше не е поставена во т.н. количката, 759 00:35:02,240 --> 00:35:04,430 само да го иницијализира на 0. 760 00:35:04,430 --> 00:35:09,830 И на крај, овде долу, одат и да го врати во шопинг коли или на сесија 761 00:35:09,830 --> 00:35:13,000 вредноста на шалтер 1. 762 00:35:13,000 --> 00:35:16,730 Значи излегува дека овој специјален сад here-- 763 00:35:16,730 --> 00:35:20,355 која, пак, е еден од овие поврзани низи, низа што ќе може да индексира 764 00:35:20,355 --> 00:35:25,010 во зборови наместо numbers-- продолжи дури и по корисникот оди. 765 00:35:25,010 --> 00:35:26,510 Повторно, јас ќе се вратиш на страницата сега. 766 00:35:26,510 --> 00:35:28,400 Тоа е една минута или така. 767 00:35:28,400 --> 00:35:31,300 Но се сеќава дека јас сум тука 19 пати пред тоа. 768 00:35:31,300 --> 00:35:32,740 Ова е мојот 20. посета. 769 00:35:32,740 --> 00:35:36,560 >> И така ова ќе биде клучен за извршување на било кој веб-сајт кој се сеќава 770 00:35:36,560 --> 00:35:40,640 дека сте најавени, што ќе се стави нешто буквално во вашата шопинг кошничка 771 00:35:40,640 --> 00:35:43,902 да се купи или дека имате некои број на пораки во тек. 772 00:35:43,902 --> 00:35:45,610 Во секое време сакате да се се сетам на информации, 773 00:35:45,610 --> 00:35:48,130 ќе видиме дека PHP, како неколку други јазици, 774 00:35:48,130 --> 00:35:53,640 ни обезбедува со оваа илузија на државните иако, како што ќе видите во PSET 6, 775 00:35:53,640 --> 00:35:57,642 како сте правење на HTTP барања од клиентот до серверот, тоа е тоа. 776 00:35:57,642 --> 00:35:59,850 Откако ќе го добиете назад дека одговор, нема ништо повеќе 777 00:35:59,850 --> 00:36:01,790 се враќаат од серверот стандардно. 778 00:36:01,790 --> 00:36:03,820 Но ќе видиме како да се работи околу тоа. 779 00:36:03,820 --> 00:36:07,430 >> Па сега, ајде да се обидеме да чистење ова до малку. 780 00:36:07,430 --> 00:36:09,470 Видовме неколку различни примери таму. 781 00:36:09,470 --> 00:36:12,250 О, и како настрана, за оние кои се запознаени или непознати, 782 00:36:12,250 --> 00:36:14,230 од причина што Frosh инстант пораки пример отиде 783 00:36:14,230 --> 00:36:18,060 од гледање навистина грдо да slightly-- добро, 784 00:36:18,060 --> 00:36:23,160 уште ugly-- благо помалку грди иако сеуште грди 785 00:36:23,160 --> 00:36:25,230 е затоа што ако се погледне на изворниот код овде 786 00:36:25,230 --> 00:36:28,240 излегува дека имам оваа во самиот врв на датотеката. 787 00:36:28,240 --> 00:36:32,570 >> Излегува дека bootstrap е еден од многуте слободно достапни библиотеки таму 788 00:36:32,570 --> 00:36:37,140 дека не постојат за програмски јазици секогаш, но за CSS или го вклучите Javascript- 789 00:36:37,140 --> 00:36:39,190 или HTML или било кој број на јазици. 790 00:36:39,190 --> 00:36:42,160 >> И овие луѓе here-- првично излезе 791 00:36:42,160 --> 00:36:44,730 на Twitter-- само треба целиот куп на стилови. 792 00:36:44,730 --> 00:36:47,360 Тоа е масовен датотека тука дека некој напишал, 793 00:36:47,360 --> 00:36:51,020 или некој напишал, со текот на времето дека одредува бои и форматирање 794 00:36:51,020 --> 00:36:53,740 и какво ли не, така што можам вид позајмуваат своите синтакса 795 00:36:53,740 --> 00:36:56,157 и не мора да дознаам како да се постават мојата форма. 796 00:36:56,157 --> 00:36:57,990 Ова е, исто така, minified така што компјутерот може да 797 00:36:57,990 --> 00:37:00,560 разбираат тоа, но не нужно човек. 798 00:37:00,560 --> 00:37:03,050 Па тоа е само зошто стилизација има промени. 799 00:37:03,050 --> 00:37:05,450 >> Но, ајде сега да го направи подобро во смисла на дизајн, 800 00:37:05,450 --> 00:37:07,490 бидејќи ако остане долу овој пат премногу долго, 801 00:37:07,490 --> 00:37:11,290 нашиот код се случува да добие неуредна и messier. 802 00:37:11,290 --> 00:37:13,040 Значи, да се фокусира на овие примери овде. 803 00:37:13,040 --> 00:37:15,090 Последен за денес. 804 00:37:15,090 --> 00:37:18,720 >> Па овде е супер едноставен 1.0 верзија на веб-сајтот CS50 е. 805 00:37:18,720 --> 00:37:21,250 Тој има само линкови до предавања и наставната програма, 806 00:37:21,250 --> 00:37:25,490 и тоа е со користење дека неподреден список tag-- на UL таг кои што се користат последен пат. 807 00:37:25,490 --> 00:37:28,800 И ако во Всушност, ако јас отвори Аватарот на страница код, 808 00:37:28,800 --> 00:37:31,710 ќе видите дека ова е навистина, навистина едноставни HTML. 809 00:37:31,710 --> 00:37:35,460 И всушност, иако ова е на PHP фајл под капакот на моторот, 810 00:37:35,460 --> 00:37:38,620 тоа е сепак само плукање надвор само HTML за сега. 811 00:37:38,620 --> 00:37:41,312 >> Значи, ако јас кликнете на предавања, ние гледаме тоа да се случи. 812 00:37:41,312 --> 00:37:43,020 И ако јас кликнете на неделата нула, ние гледаме тоа. 813 00:37:43,020 --> 00:37:44,920 И ако јас кликнете на Среда, гледаме ова. 814 00:37:44,920 --> 00:37:47,900 И ова очигледно беше во PDF на слајдови од тој ден. 815 00:37:47,900 --> 00:37:52,020 Сите што го направив е врската со сидро таг за да овој URL тука. 816 00:37:52,020 --> 00:37:55,400 >> Така што ова е само да се каже ова е прилично едноставна верзија на веб CS50 е. 817 00:37:55,400 --> 00:37:56,790 Ајде да видиме како е имплементиран. 818 00:37:56,790 --> 00:38:01,240 Ако одам во mvc0 директориум, ќе видиме неколку датотеки. 819 00:38:01,240 --> 00:38:03,250 Една од нив е README, па ако некои од ова е премногу брзо, 820 00:38:03,250 --> 00:38:05,166 можете само да ѕиркаат наоколу повеќе лежерно подоцна. 821 00:38:05,166 --> 00:38:07,930 И информации тука е index.php датотеката. 822 00:38:07,930 --> 00:38:09,960 Излегува дека ако ти самиот, човекот, 823 00:38:09,960 --> 00:38:14,460 не определи конечниот име во URL-то, на веб серверот обично 824 00:38:14,460 --> 00:38:17,010 infers некои стандардното име за вас. 825 00:38:17,010 --> 00:38:20,060 Индекс точка нешто генерално е стандардно. 826 00:38:20,060 --> 00:38:23,010 >> Па тоа е причината зошто пред еден миг кога го посетив овој URL тука, 827 00:38:23,010 --> 00:38:26,750 без името на датотеката, нема датотеки продолжување, нема период во URL-то. 828 00:38:26,750 --> 00:38:29,710 Тоа само знаеше некако магично да се погледне за index.php. 829 00:38:29,710 --> 00:38:30,870 Тоа е само конвенција. 830 00:38:30,870 --> 00:38:32,360 Може да се нарече ништо. 831 00:38:32,360 --> 00:38:35,110 >> Значи, ако јас сега одат во index.php, ќе видите 832 00:38:35,110 --> 00:38:37,100 дека, indeed-- ајде се ослободи од коментари 833 00:38:37,100 --> 00:38:39,500 тука, бидејќи има навистина ништо интересно да се it-- 834 00:38:39,500 --> 00:38:41,579 ова е само хард кодирани HTML. 835 00:38:41,579 --> 00:38:43,370 Па тоа е во согласност, сепак, со моето тврдење 836 00:38:43,370 --> 00:38:45,230 дека можете да смесвам HTML и PHP. 837 00:38:45,230 --> 00:38:48,060 Нема вистински програмирање логика тука. 838 00:38:48,060 --> 00:38:51,030 >> И други датотеки се прилично многу исто како неинтересни. 839 00:38:51,030 --> 00:38:56,240 Тоа е само хард-кодирани една недела тука до недела еден м и недела еден W, 840 00:38:56,240 --> 00:38:57,510 за понеделник и среда. 841 00:38:57,510 --> 00:39:01,890 И тогаш да се отвори недела нула, забележам дека е речиси идентични. 842 00:39:01,890 --> 00:39:03,320 >> И тоа е еден вид на клучни готова брза. 843 00:39:03,320 --> 00:39:06,180 Забележите колку непотребни оваа. 844 00:39:06,180 --> 00:39:10,710 Овие датотеки едвај се промени, а сепак јас влечат еден од овие copy / paste работни места 845 00:39:10,710 --> 00:39:13,420 каде Зедов една file-- веројатно во недела zero-- го копирале 846 00:39:13,420 --> 00:39:16,320 кога недела еден дојдоа околу, и tweaked неколку вредности. 847 00:39:16,320 --> 00:39:18,590 Ние веројатно ќе треба да биде во можност да го направите подобро од ова. 848 00:39:18,590 --> 00:39:21,800 >> Значи, да се вратиме до MVC и да си одат во верзија еден. 849 00:39:21,800 --> 00:39:24,810 И ќе забележите имам неколку датотеки, затоа што она што 850 00:39:24,810 --> 00:39:29,870 беше заеднички за сите оние датотеки само момент ago-- ако одам назад кон верзија 0, 851 00:39:29,870 --> 00:39:32,600 да се вратиме во индекс, и само postulate-- 852 00:39:32,600 --> 00:39:36,090 еднаш бев се ослободи од comments-- она што дел од оваа страница 853 00:39:36,090 --> 00:39:40,072 е веројатно во секој еден од моите датотеки? 854 00:39:40,072 --> 00:39:40,780 Само да го довикувам. 855 00:39:40,780 --> 00:39:44,620 Која линии се удвои веројатно во сите од овие страници? 856 00:39:44,620 --> 00:39:45,120 Да? 857 00:39:45,120 --> 00:39:46,110 >> СТУДЕНТСКИ: [нечујни]. 858 00:39:46,110 --> 00:39:47,660 >> Дејвид Џ MALAN: 1 до 9. 859 00:39:47,660 --> 00:39:48,720 Да, апсолутно. 860 00:39:48,720 --> 00:39:52,080 Од 1 до 9, со исклучок можеби 8 менува малку, бидејќи CS50 861 00:39:52,080 --> 00:39:54,650 станува предавања или недела нула или нешто. 862 00:39:54,650 --> 00:39:55,970 Но речиси идентични. 863 00:39:55,970 --> 00:39:58,657 Значи сите овие работи е само вид на копирани и атипичен. 864 00:39:58,657 --> 00:40:00,490 И има неколку други линии можам да мислам 865 00:40:00,490 --> 00:40:05,000 на кои се најверојатно идентични низ сите датотеки. 866 00:40:05,000 --> 00:40:06,315 >> СТУДЕНТСКИ: 12 и 13. 867 00:40:06,315 --> 00:40:07,190 Дејвид Џ MALAN: Да. 868 00:40:07,190 --> 00:40:11,220 Секако, 12, 13, и 14, најверојатно, само затоа што на интересни нешта 869 00:40:11,220 --> 00:40:15,460 се случува на линии 11 и 10, па тоа ќе изгледа. 870 00:40:15,460 --> 00:40:18,350 Значи, да се погледне во верзија 1, која се обидува да се подобри на ова. 871 00:40:18,350 --> 00:40:24,020 Во верзија 1 на овој MVC example-- ние ќе објасни што MVC средства во moment-- 872 00:40:24,020 --> 00:40:27,420 ако одам во индекс, тој вид на изгледа малку збунувачки сега. 873 00:40:27,420 --> 00:40:28,880 Тоа не е толку едноставно како порано. 874 00:40:28,880 --> 00:40:30,906 >> Но, штом еднаш ќе почнете да Прочитајте го внимателно, тоа е 875 00:40:30,906 --> 00:40:32,530 прилично јасна она што таа го прави. 876 00:40:32,530 --> 00:40:34,397 Очигледно алинеја 1 и алинеја 8 се заменува 877 00:40:34,397 --> 00:40:37,230 сите работи само identified-- иако само за добра мерка, 878 00:40:37,230 --> 00:40:41,900 Јас заминав на ЕЛС постојат само во случај некои дена не имаат листа на работи. 879 00:40:41,900 --> 00:40:47,860 И така треба е вид на како фунта се вклучат во В. копии и пасти 880 00:40:47,860 --> 00:40:50,470 содржината ефикасно токму овде во оваа датотека. 881 00:40:50,470 --> 00:40:53,650 >> Значи во header.php, како што би можеле да заклучиме од своето име, 882 00:40:53,650 --> 00:40:55,330 ќе биде насловот на страницата. 883 00:40:55,330 --> 00:40:57,110 Тоа е вид на сираче тука. 884 00:40:57,110 --> 00:41:01,820 Таа има само на врвот на тоа, но нема повеќе содржина подолу. 885 00:41:01,820 --> 00:41:05,070 >> И ако јас се погледне во подножјето меѓувреме, кој беше друга датотека mentioned-- 886 00:41:05,070 --> 00:41:08,830 ова ми е дури и помалку интересни, но повторно, тоа е заеднички да се. 887 00:41:08,830 --> 00:41:10,250 Значи ова е подножјето. 888 00:41:10,250 --> 00:41:11,300 Ова е насловот. 889 00:41:11,300 --> 00:41:13,950 Ова е датотека која е се менува, па зошто да не 890 00:41:13,950 --> 00:41:18,140 обидете се да се фактор надвор од заеднички со овие две линии тука? 891 00:41:18,140 --> 00:41:20,090 >> Но, ние може да се исчисти овој до малку понатаму. 892 00:41:20,090 --> 00:41:23,260 Одам да се оди напред и да отвори верзија двајца каде 893 00:41:23,260 --> 00:41:27,106 ќе видиме дека има нова датотека, helpers.php. 894 00:41:27,106 --> 00:41:28,610 Ќе видиме што е тоа во еден момент. 895 00:41:28,610 --> 00:41:30,930 Ајде да одиме во индекс, како влезна точка како порано. 896 00:41:30,930 --> 00:41:35,230 >> И сега забележите сум се бара helpers.php, не заглавието или подножјето. 897 00:41:35,230 --> 00:41:41,720 Но помагачи е вид на како helpers.c и helpers.h од PSET 2 898 00:41:41,720 --> 00:41:46,150 или PSET 3 одамна кога ќе всушност се бара и најде за таа PSET, 899 00:41:46,150 --> 00:41:50,950 и сте имале сите ваши код за сортирање и пребарување во посебен фајл. 900 00:41:50,950 --> 00:41:52,510 Тоа е она што се случува овде. 901 00:41:52,510 --> 00:41:54,390 >> И сега алинеја 3 изгледа малку поинаква. 902 00:41:54,390 --> 00:41:55,920 И тоа е само една линија. 903 00:41:55,920 --> 00:41:57,950 Да се ​​направи ова, дури и повеќе јасен, можев само 904 00:41:57,950 --> 00:42:01,820 не ова да биде стилски доследно и со сè друго што го направиле. 905 00:42:01,820 --> 00:42:04,130 Но, тоа не е навистина промена на функционалноста. 906 00:42:04,130 --> 00:42:05,880 Тоа е само една линија на недвижен код. 907 00:42:05,880 --> 00:42:09,010 >> Очигледно, има функција некаде наречен даде насловот, 908 00:42:09,010 --> 00:42:11,420 и ова е местото каде што работи се добие прилично моќна. 909 00:42:11,420 --> 00:42:17,040 Забележи дека во внатрешноста на нејзината загради е она што другите парче синтакса? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 Тоа е веројатно малку тешко да се каже, но забележите there's-- јас ќе се стави некои бел 912 00:42:23,350 --> 00:42:24,300 простор. 913 00:42:24,300 --> 00:42:25,530 Има квадратни загради. 914 00:42:25,530 --> 00:42:29,700 >> И квадратни загради видовме пред малку во контекст на асоцијативни низи, 915 00:42:29,700 --> 00:42:31,580 кои се, повторно, како хаш маси. 916 00:42:31,580 --> 00:42:36,230 И ако мислите дека сега Ц, цел на аргументи во функција 917 00:42:36,230 --> 00:42:37,570 има секогаш да биде ист. 918 00:42:37,570 --> 00:42:41,146 Мора да се запамети она што нареди is-- x, y, z или z, y, x-- 919 00:42:41,146 --> 00:42:44,020 и треба да секогаш им се обезбеди во истиот редослед или да барате за нив 920 00:42:44,020 --> 00:42:45,100 ако си заборавил. 921 00:42:45,100 --> 00:42:51,140 >> Но, ова се чини дека е паметен начин на полагање на произволен клучните вредност 922 00:42:51,140 --> 00:42:55,840 парови со што титулата е името на аргумент во овој случај 923 00:42:55,840 --> 00:42:58,334 и CS50 е неговата вредност. 924 00:42:58,334 --> 00:43:00,250 И фактот дека имам овие квадратни загради 925 00:43:00,250 --> 00:43:02,560 тука значи дека можев исто така, поминуваат во нешто 926 00:43:02,560 --> 00:43:07,550 како една недела е 1 или 0 или 2 или 3. 927 00:43:07,550 --> 00:43:10,550 Значи ние сме параметрира оваа функција на таков начин 928 00:43:10,550 --> 00:43:15,180 дека тоа може да потрае повеќе влезови, но сега за сега тоа е само еден. 929 00:43:15,180 --> 00:43:20,060 >> Ако јас сега одат во helpers.php, се забележи она што таа го прави. 930 00:43:20,060 --> 00:43:22,030 Ова е малку на нова функционалност, 931 00:43:22,030 --> 00:43:24,190 но сега за сега само се на верба дека ова е 932 00:43:24,190 --> 00:43:26,570 синтаксата со која можете дефинираме функција во PHP. 933 00:43:26,570 --> 00:43:27,840 Вие буквално велат функција. 934 00:43:27,840 --> 00:43:30,090 Не одредите враќање тип, и тоа е во согласност 935 00:43:30,090 --> 00:43:33,880 со променлива детали порано каде што не навистина силно пишувате. 936 00:43:33,880 --> 00:43:35,650 >> Ова само одредува дека, по дифолт, ова 937 00:43:35,650 --> 00:43:37,460 зема асоцијативна низа како аргумент. 938 00:43:37,460 --> 00:43:38,210 И знаете што? 939 00:43:38,210 --> 00:43:41,450 Ако корисникот не поминува еден во, се претпостави стандардна вредност. 940 00:43:41,450 --> 00:43:44,680 >> Ова е карактеристика која Ц не мора за нас, што е убаво, бидејќи сега 941 00:43:44,680 --> 00:43:46,430 податоци, дури и ако не се дава ништо, 942 00:43:46,430 --> 00:43:49,300 се случува да биде низа, но празен еден. 943 00:43:49,300 --> 00:43:51,860 И како настрана, екстракт само не нешто фанки 944 00:43:51,860 --> 00:43:56,380 каде што е потребно сите клучеви од овој асоцијативна низа, сите од работите 945 00:43:56,380 --> 00:43:59,950 може да се стави во квадратни загради, и создава променливи од нив 946 00:43:59,950 --> 00:44:06,270 така што можеме на крајот да имаат пристап на нив во footet.php и header.php. 947 00:44:06,270 --> 00:44:08,950 Тоа е малку апстрактен, па да ми укаже ова. 948 00:44:08,950 --> 00:44:12,990 >> Во index.php, забележуваат дека сум поминува во клучна вредност пар на титулата 949 00:44:12,990 --> 00:44:14,850 со вредност од CS50. 950 00:44:14,850 --> 00:44:18,660 Ако јас сега гледам helpers.php, забележите дека RenderHeader 951 00:44:18,660 --> 00:44:23,870 е извлекување на податоците дека јас сум поминува во, а потоа се бара header.php. 952 00:44:23,870 --> 00:44:27,970 Она што го направив е вид на лош имплементација сега од следниве. 953 00:44:27,970 --> 00:44:31,720 >> Ако јас се отвори header.php, известување дека јас сум повеќе не е тешко 954 00:44:31,720 --> 00:44:34,890 кодирани зборот CS50 во оваа хедер датотека. 955 00:44:34,890 --> 00:44:39,310 Сум се стави ова значително atrociously именувана функција, HTML специјални знаци, 956 00:44:39,310 --> 00:44:40,170 во таму. 957 00:44:40,170 --> 00:44:41,640 Но, забележи она што го направив. 958 00:44:41,640 --> 00:44:44,240 Имам отворен HTML. 959 00:44:44,240 --> 00:44:47,420 Јас тогаш има отворени главата и отворен титула. 960 00:44:47,420 --> 00:44:52,380 >> А потоа во внатрешноста на титулата е отворен и блиску тагови, имам малку PHP код. 961 00:44:52,380 --> 00:44:56,670 И ова е убаво, но на синтакса, што само значи ехо надвор. 962 00:44:56,670 --> 00:44:59,840 Тоа буквално значи this-- ехо на following-- 963 00:44:59,840 --> 00:45:01,910 но ова е посекси да пишувам. 964 00:45:01,910 --> 00:45:05,000 Ехо надвор титулата тоа е се помина во. 965 00:45:05,000 --> 00:45:07,560 >> Но, што мислите HTML специјален знак е за сите, 966 00:45:07,560 --> 00:45:10,590 особено ако имате некои претходно HTML искуство? 967 00:45:10,590 --> 00:45:14,050 Што карактери може да биде опасно да се помине во на страница 968 00:45:14,050 --> 00:45:17,980 каде сте динамички генерира веб-страница со код, како тоа? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Дозволете ми да одат на оваа датотека, верзија две, и види дали јас не може да предизвика ова. 971 00:45:24,650 --> 00:45:26,210 >> Верзија двете е тоа. 972 00:45:26,210 --> 00:45:28,510 И ќе забележите што е е во ред, работи добро. 973 00:45:28,510 --> 00:45:35,280 Но, претпоставувам дека оди во index.php и Јас утврдени дека насловот на мојата страница 974 00:45:35,280 --> 00:45:36,630 не е CS50. 975 00:45:36,630 --> 00:45:44,930 Таа е отворена заграда скрипта алармирање Здраво светот, во близина една понуда, 976 00:45:44,930 --> 00:45:49,740 блиску заграда, запирка, отворена заграда, коса црта скрипта. 977 00:45:49,740 --> 00:45:51,897 >> Сценариото, како што ќе на крајот да се види, е таг 978 00:45:51,897 --> 00:45:54,480 дека можете да го користите да се користи на друг програмски јазик наречен 979 00:45:54,480 --> 00:45:56,330 Го вклучите Javascript внатрешноста на веб-страница. 980 00:45:56,330 --> 00:45:57,960 И сега забележите логиката тука. 981 00:45:57,960 --> 00:45:59,840 Тука е клучот вика насловот. 982 00:45:59,840 --> 00:46:02,690 Тука е тоа е лудо долг вредност сега. 983 00:46:02,690 --> 00:46:07,840 >> Но, ако јас одам на помагачи page- или, поточно, насловот страница, 984 00:46:07,840 --> 00:46:11,310 Апелирам оваа функција на таа титула во прв план. 985 00:46:11,310 --> 00:46:15,250 Значи, ако јас сега вчитајте ја оваа страница, јас види овој, кој изгледа смешно, 986 00:46:15,250 --> 00:46:16,110 но тоа е безбедно. 987 00:46:16,110 --> 00:46:17,310 Тоа само изгледа глупаво. 988 00:46:17,310 --> 00:46:20,320 >> Но, да претпоставиме, наместо Јас го заборавил ова. 989 00:46:20,320 --> 00:46:24,660 И ознака на моите зборови, nonzero број од вас ќе заборават да го направите тоа 990 00:46:24,660 --> 00:46:27,790 и ќе добиете некои прилежен студент или пријател доаѓа 991 00:46:27,790 --> 00:46:31,540 за вас во фер CS50 или анонимно ноќе ѕиркаа наоколу на вашиот сајт 992 00:46:31,540 --> 00:46:35,300 и во суштина инјектирање код непознат за вас во вашиот сајт 993 00:46:35,300 --> 00:46:35,800 некако. 994 00:46:35,800 --> 00:46:39,000 >> Затоа што ако јас едноставно плукаат од насловот тука и насловот 995 00:46:39,000 --> 00:46:44,330 there-- добро, ако насловот буквално изгледа вака и PHP 996 00:46:44,330 --> 00:46:47,660 како јазик што може да плукаат други јазици текст, 997 00:46:47,660 --> 00:46:50,650 ова е буквално ќе да го замени овој таг со, 998 00:46:50,650 --> 00:46:53,010 Се разбира, она што јас го стави на друго место. 999 00:46:53,010 --> 00:46:57,640 >> Значи, ако јас сега оди тука и повторно по расипувајќи оние безбедносни механизми, 1000 00:46:57,640 --> 00:46:59,982 сега имам здраво свет тука. 1001 00:46:59,982 --> 00:47:02,690 Сега тоа не е сè е толку голема за се занимаваат, но може да се направи нешто 1002 00:47:02,690 --> 00:47:05,119 малку повеќе малициозен овде, како таму е 1003 00:47:05,119 --> 00:47:08,410 други tags-- како што ќе видиме откако ќе поминат повеќе време во JavaScript-- како локација 1004 00:47:08,410 --> 00:47:14,910 точка href добива, понуда, unquote, HTTP business.com, но и спротивно на тоа 1005 00:47:14,910 --> 00:47:15,950 од другиот ден. 1006 00:47:15,950 --> 00:47:20,120 И сега може да предизвикаат веб- страница да се, всушност, оди веднаш 1007 00:47:20,120 --> 00:47:21,190 на оваа веб страница овде. 1008 00:47:21,190 --> 00:47:23,000 >> А всушност, не сакам дури и да одат на business.com 1009 00:47:23,000 --> 00:47:24,749 бидејќи јас не сакам да се знае што е тоа. 1010 00:47:24,749 --> 00:47:28,710 Но, тоа, исто така, ќе предизвика код да се инјектира во оваа страница. 1011 00:47:28,710 --> 00:47:32,680 Така што ова е само да се каже дека иако ние сме за воведување супер почетокот на некои 1012 00:47:32,680 --> 00:47:36,800 од овие повеќе комплексни структури, сето тоа е кон крај на што си сигурен 1013 00:47:36,800 --> 00:47:39,320 дека вашиот код не е експлоатирачки. 1014 00:47:39,320 --> 00:47:40,960 >> Па сега трета верзија тука. 1015 00:47:40,960 --> 00:47:42,470 Станува малку познавач. 1016 00:47:42,470 --> 00:47:44,875 Јас навистина не like-- аналниот страна од мене 1017 00:47:44,875 --> 00:47:47,750 беше добивање малку караше со фактот дека имав функција наречена 1018 00:47:47,750 --> 00:47:51,940 RenderHeader и RenderFooter кои беа речиси идентични. 1019 00:47:51,940 --> 00:47:55,400 Па тоа се случи со мене, зошто да не го направите Јас parameterize овие функции 1020 00:47:55,400 --> 00:47:59,180 во само еден вика направат, го донесе вториот аргумент 1021 00:47:59,180 --> 00:48:04,420 како името на образецот, конечниот да render-- или заглавие или подножје? 1022 00:48:04,420 --> 00:48:07,160 А потоа може, ако сакам да помине во некои клучни вредност парови 1023 00:48:07,160 --> 00:48:10,580 како да направам за титулата за глава, но не и за подножјето, 1024 00:48:10,580 --> 00:48:11,800 Јас би можеле да го направите тоа. 1025 00:48:11,800 --> 00:48:16,510 >> Па сега ако одам во helpers.php, тоа е малку посложена. 1026 00:48:16,510 --> 00:48:19,670 И јас ќе се бранува моите раце на детали, но тоа е само една функција. 1027 00:48:19,670 --> 00:48:21,890 Значи тоа е чекор кон подобар дизајн. 1028 00:48:21,890 --> 00:48:23,360 >> Можеме да ја искористам оваа еден чекор понатаму. 1029 00:48:23,360 --> 00:48:28,890 Ако одам во мојата четврта верзија на ова, информации сега 1030 00:48:28,890 --> 00:48:31,320 дека јас сум прави нешто дури и повеќе вид на криптичната. 1031 00:48:31,320 --> 00:48:33,230 И знам дека ова е многу да се апсорбира одеднаш, 1032 00:48:33,230 --> 00:48:35,080 но ние сме само вид за чистење на работите. 1033 00:48:35,080 --> 00:48:38,550 Сега јас сум ставање мојата помагачи датотека во папка наречена 1034 00:48:38,550 --> 00:48:41,190 includes-- само произволна именува каде што сакате да се стави нешта 1035 00:48:41,190 --> 00:48:44,300 дека сакам да include-- и потоа го остатокот од овој е иста. 1036 00:48:44,300 --> 00:48:47,140 >> Но, ако гледам сега во gedit, известување дека сум добил ослободи 1037 00:48:47,140 --> 00:48:51,940 на сите оние други датотеки и јас сум се пресели нив, на пример, во тука. 1038 00:48:51,940 --> 00:48:55,110 А потоа во шаблони, Имам тука, исто така. 1039 00:48:55,110 --> 00:48:59,292 И така ова е за сите сега кон чекор на користење на многу подобро дизајн шема. 1040 00:48:59,292 --> 00:49:01,000 И ние сме многу брзо случува да се движат подалеку 1041 00:49:01,000 --> 00:49:03,870 од PHP е стандардно функционалност, што почнавме тука со, 1042 00:49:03,870 --> 00:49:07,655 каде што само смесвам PHP, и вашите HTML, и вашиот CSS, 1043 00:49:07,655 --> 00:49:09,780 а ти само да го плукаат и одите за вашиот начин. 1044 00:49:09,780 --> 00:49:11,404 Тоа не се случува да биде многу одржување. 1045 00:49:11,404 --> 00:49:14,481 Исто како и во C, почнавме користење повеќе датотеки и повеќе функции 1046 00:49:14,481 --> 00:49:15,730 и факторинг работи тоа. 1047 00:49:15,730 --> 00:49:16,688 Ние ќе го стори истото овде. 1048 00:49:16,688 --> 00:49:19,970 И всушност, во петтата и последна верзија тука, јас не една друга работа. 1049 00:49:19,970 --> 00:49:23,710 Можете дури да го користите точка точка, кои, повторно, е само главниот директориум. 1050 00:49:23,710 --> 00:49:28,260 Да биде дури и повеќе безбедност свесни, затоа што ако јас се погледне на слушање 1051 00:49:28,260 --> 00:49:32,450 тука за петтата и последна верзија, известување дека имам еден директориум тука се нарекува 1052 00:49:32,450 --> 00:49:35,180 јавноста, а потоа на исто ниво, така да се каже, 1053 00:49:35,180 --> 00:49:38,490 Јас имам вклучува и шаблони и тогаш тоа текстуална датотека Прочитај ме. 1054 00:49:38,490 --> 00:49:41,130 >> А причината што сум структурирани се допаѓа this-- и толку многу веб- 1055 00:49:41,130 --> 00:49:44,330 домаќини, особено на оние 5 $ месец оние или $ 10 месечно оние, 1056 00:49:44,330 --> 00:49:47,170 ако некогаш сте имале еден од овие services-- што толку многу од нив го прават 1057 00:49:47,170 --> 00:49:50,690 е дека тие очекуваат да шутнат сите на вашите датотеки во еден директориум, 1058 00:49:50,690 --> 00:49:53,640 како што правевме веќе со овој прв пример. 1059 00:49:53,640 --> 00:49:56,740 >> Но, веднаш штом ќе започне изградба на повеќе софистицирани веб-сајтови кои само се сместат 1060 00:49:56,740 --> 00:50:00,480 податоци што се грижат за и датотеки се грижат за, всушност, организирање на работите 1061 00:50:00,480 --> 00:50:05,060 правилно и со повеќе безбедност свест во умот може да 1062 00:50:05,060 --> 00:50:07,927 ние почнуваме да се брани против сите на пријатели 1063 00:50:07,927 --> 00:50:10,135 дека имате или во или надвор од оваа класа, кои, 1064 00:50:10,135 --> 00:50:12,510 веднаш штом ќе почнат да прават програми се на интернет, 1065 00:50:12,510 --> 00:50:15,140 се случува да започне подигање за вас и за нив. 1066 00:50:15,140 --> 00:50:17,420 >> И така ние ќе се погледне на крајот на овој дизајн. 1067 00:50:17,420 --> 00:50:20,010 Ова е само слика што го опишува следниве. 1068 00:50:20,010 --> 00:50:22,897 Ние сме случува да се стави сите наши програмирање логика во една или повеќе датотеки, 1069 00:50:22,897 --> 00:50:25,230 и ние ќе се само почеток повикувајќи оние контролери. 1070 00:50:25,230 --> 00:50:28,022 Тоа е каде што мозокот на нашата веб-сајтови навистина се. 1071 00:50:28,022 --> 00:50:29,730 Тогаш ние ќе треба да имаат ставови и погледи 1072 00:50:29,730 --> 00:50:32,480 се толку едноставно како што само одделни files-- наречен шаблони, често. 1073 00:50:32,480 --> 00:50:34,410 Тие само имаат естетиката на мојата страница, 1074 00:50:34,410 --> 00:50:37,020 она што сакам страницата да се погледне like-- боите и изгледот 1075 00:50:37,020 --> 00:50:38,870 и ставовите на сите променливи. 1076 00:50:38,870 --> 00:50:41,120 >> А потоа поинтересна дека ние на крајот ќе дојдеме до 1077 00:50:41,120 --> 00:50:45,420 е модел, кој се случува да биде само зборот ние шамар на други технологии 1078 00:50:45,420 --> 00:50:47,771 дека ние донесе во слика, како вистински бази на податоци, 1079 00:50:47,771 --> 00:50:49,520 така што кога ќе сакате за да ја зачувате информации, 1080 00:50:49,520 --> 00:50:52,140 не само да испрати е-маил на вашиот Проктор или за себе, 1081 00:50:52,140 --> 00:50:57,350 што всушност се чува во база на податоци користење на друг јазик познат како SQL. 1082 00:50:57,350 --> 00:51:00,450 И така ќе им го оставиме тука денес и собереш со оваа во средата 1083 00:51:00,450 --> 00:51:02,990 и да се воведе бази на податоци тогаш. 1084 00:51:02,990 --> 00:51:06,940 >> [Музички] 1085 00:51:06,940 --> 00:54:24,555