1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Седмица 8] 2 00:00:02,000 --> 00:00:04,000 [Дейвид J Малан] [Харвардския университет] 3 00:00:04,000 --> 00:00:07,000 [Това е CS50. [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Добре дошъл. 5 00:00:09,000 --> 00:00:11,000 Това е CS50, и това е началото на седмица 8. 6 00:00:11,000 --> 00:00:14,000 Няколко възможности тази седмица, 7 00:00:14,000 --> 00:00:17,000 сред тях този разговор тук, при което някои храни ще бъде обслужен. 8 00:00:17,000 --> 00:00:20,000 За повече подробности се провери на слайдове, които са онлайн. 9 00:00:20,000 --> 00:00:24,000 А също и друго събитие тази седмица от нашата собствена Томас Carriero. 10 00:00:24,000 --> 00:00:27,000 Той е един от бивши сътрудници CS50 глава на преподаване, който в момента е в Dropbox, 11 00:00:27,000 --> 00:00:29,000 и той е човек, който ни уредила с знаеш ли какво, 12 00:00:29,000 --> 00:00:36,000 така че ако искате повече, че главата им разговор този следобед за Dropbox и повече. 13 00:00:36,000 --> 00:00:38,000 CS50 обяд е този петък. 14 00:00:38,000 --> 00:00:41,000 Да се ​​присъедините към нас, ако имате възможност, 01:15 часа, както обикновено, Огън и лед. 15 00:00:41,000 --> 00:00:45,000 >> И сега ние се потопите в нещо, наречено Семинари. 16 00:00:45,000 --> 00:00:49,000 Нашите CS50 Семинари, за изтегляне от пазара, са тези незадължителни класове, водени от учението сътрудници 17 00:00:49,000 --> 00:00:51,000 и курс помощници и приятели на курса, 18 00:00:51,000 --> 00:00:55,000 хора от една група на територията на колежа, наречена ABCD, който е група от 19 00:00:55,000 --> 00:00:58,000 technophiles на територията на колежа, както и група, наречена HCS, 20 00:00:58,000 --> 00:01:02,000 Харвард Computer Society, студенти, които имат близки интерес в областта на компютрите. 21 00:01:02,000 --> 00:01:08,000 Тази година списък на семинари включва семинари за Android и IOS и JavaScript 22 00:01:08,000 --> 00:01:13,000 и PHP, Unix, Vim, и повече, за да осъзнаят, че тези семинари идват. 23 00:01:13,000 --> 00:01:16,000 Ако искате да потвърдят за всеки един от тях се отправят към този адрес там. 24 00:01:16,000 --> 00:01:20,000 Тогава ние ще се публикува на интернет страницата на курса времена и места, след като те са финализирани. 25 00:01:20,000 --> 00:01:26,000 Но знай, на стойност 5 година на предишни семинари на разположение онлайн, 26 00:01:26,000 --> 00:01:29,000 много от които все още са много ток по отношение на технологиите може да се 27 00:01:29,000 --> 00:01:36,000 искам да играя за последните проекти, така че главата за някои наличните видеоклипове от тях. 28 00:01:36,000 --> 00:01:39,000 >> CSS, тези от вас, които са запознати с CSS вече, 29 00:01:39,000 --> 00:01:42,000 това, което е по-накратко? 30 00:01:42,000 --> 00:01:45,000 Какво е CSS? 31 00:01:45,000 --> 00:01:48,000 Това е Cascading Style Sheets, и какво означава това? 32 00:01:48,000 --> 00:01:53,000 Какво значи това направи за нас, CSS? 33 00:01:53,000 --> 00:01:57,000 Добре, нека да се затопли с по-лесен, HTML, Hypertext Markup Language. 34 00:01:57,000 --> 00:02:01,000 Какво значи това за нас? 35 00:02:01,000 --> 00:02:04,000 Всеки, който изобщо? 36 00:02:04,000 --> 00:02:07,000 Става наистина неловко задават тези въпроси. 37 00:02:07,000 --> 00:02:11,000 HTML, Hypertext Markup Language. 38 00:02:11,000 --> 00:02:14,000 Да? Не? 39 00:02:14,000 --> 00:02:17,000 [Чува студент отговор] 40 00:02:17,000 --> 00:02:20,000 Добре, добре, това ни позволява да маркирате текст, който да се показва в уеб браузър. 41 00:02:20,000 --> 00:02:22,000 Това не е език за програмиране. 42 00:02:22,000 --> 00:02:25,000 Това е език за маркиране, което означава, че инструктира браузъра как да се покаже 43 00:02:25,000 --> 00:02:28,000 информация, така че най-простият въплъщение на тази, тъй като ние съм виждал 44 00:02:28,000 --> 00:02:32,000 е нещо супер просто като boldfacing, отворена скоба б затворена скоба казва 45 00:02:32,000 --> 00:02:36,000 този текст смели, и това всъщност е само един от многото начини 46 00:02:36,000 --> 00:02:39,000 в който можем да направим това, и наистина, тези дни по-добър подход 47 00:02:39,000 --> 00:02:42,000 да stylizing вашата уеб страница, което прави неща, получер и курсив 48 00:02:42,000 --> 00:02:47,000 и центрира и обосновано и като не се извършва само чрез HTML тагове 49 00:02:47,000 --> 00:02:51,000 , а по-скоро с техника, наречена CSS, Cascading Style Sheets. 50 00:02:51,000 --> 00:02:53,000 Това е език, само по себе си. 51 00:02:53,000 --> 00:02:55,000 Тя също не е език за програмиране, но 52 00:02:55,000 --> 00:02:58,000 всички, това е Дан, който продължава да се присъедини към нас днес. 53 00:02:58,000 --> 00:03:01,000 Някои технически трудности. Не е проблем. 54 00:03:01,000 --> 00:03:04,000 >> CSS ни позволява да Stylize страница 55 00:03:04,000 --> 00:03:07,000 чрез създаване, което се нарича свойства, така че нека да погледнем на това 56 00:03:07,000 --> 00:03:09,000 на някои основни примери. 57 00:03:09,000 --> 00:03:12,000 Нека отидем в уреда днес. 58 00:03:12,000 --> 00:03:15,000 Източник 8 понеделник директория тук, 59 00:03:15,000 --> 00:03:18,000 и аз ще отида в директория, наречена CSS, където имаме цял куп 60 00:03:18,000 --> 00:03:21,000 на файловете, които ни чакат тук, 61 00:03:21,000 --> 00:03:27,000 и в тази папка, например, search0.html от последния път. 62 00:03:27,000 --> 00:03:31,000 Сега, спомнете си с search0 ние напуснахме тази бележка 63 00:03:31,000 --> 00:03:35,000 от вид на изпълнителните Google или наистина просто предния край за една седмица или така преди, 64 00:03:35,000 --> 00:03:38,000 и забележите, че имахме някои нови етикети. 65 00:03:38,000 --> 00:03:41,000 Имахме h1 за голям, смел заглавие 66 00:03:41,000 --> 00:03:45,000 форма, което ни позволи да имаме всъщност HTML форма за въвеждане на потребителя. 67 00:03:45,000 --> 00:03:48,000 Екшън, какъв е смисъла на действие атрибут 68 00:03:48,000 --> 00:03:52,000 на HTML тагове форма? 69 00:03:52,000 --> 00:03:58,000 Какъв е смисъла на това действие? 70 00:03:58,000 --> 00:04:00,000 Аз просто ще направи това днес. 71 00:04:00,000 --> 00:04:03,000 Действие е дестинация, където формата ще бъдат представени. 72 00:04:03,000 --> 00:04:07,000 Фактът, че това казва действие = "търсене на google.com /" 73 00:04:07,000 --> 00:04:10,000 означава, че когато потребителят кликне върху бутона "изпрати" или равностойността 74 00:04:10,000 --> 00:04:14,000 каквато и да е форма полета са попълнени ще трябва да бъдат изпратени не в нашия сървър 75 00:04:14,000 --> 00:04:17,000 или оборудване, а за този конкретен URL на Google. 76 00:04:17,000 --> 00:04:19,000 И метод, който ще използва, се нарича получи, 77 00:04:19,000 --> 00:04:25,000 и ще получите, за сега, е просто техника за предаване на информация, заедно с уеб сървър 78 00:04:25,000 --> 00:04:29,000 от начин на URL, така че нека хвърлим един бърз поглед назад към това как работи. 79 00:04:29,000 --> 00:04:31,000 >> Забележете, че има вход, чието име е р 80 00:04:31,000 --> 00:04:35,000 , чийто тип е текст и след това втори вход на типа представят 81 00:04:35,000 --> 00:04:39,000 чиято стойност е CS50 търсене и наистина, ако си отвори този файл тук, 82 00:04:39,000 --> 00:04:42,000 search0.html, това е супер проста форма, 83 00:04:42,000 --> 00:04:45,000 и ако търся нещо като компютърни науки 84 00:04:45,000 --> 00:04:50,000 и след това натиснете въведете или щракнете върху CS50 Търсене 85 00:04:50,000 --> 00:04:53,000 забележите, че това, което се случва, е, освен да Google 86 00:04:53,000 --> 00:04:56,000 Съм специално в крайна сметка на този адрес в горната част, 87 00:04:56,000 --> 00:05:01,000 google.com / търсене? = компютър + науката, 88 00:05:01,000 --> 00:05:04,000 и компютърни науки е очевидно това, което написах инча 89 00:05:04,000 --> 00:05:06,000 + Просто означава, че където беше знак за интервал, 90 00:05:06,000 --> 00:05:10,000 и това е направено от браузъра, за да сте сигурни, че няма 91 00:05:10,000 --> 00:05:13,000 объркване и празно пространство в действителната URL. 92 00:05:13,000 --> 00:05:15,000 И тогава Q, разбира се, е името на параметъра. 93 00:05:15,000 --> 00:05:20,000 Не сме виждали как ние, програмист, всъщност може да достъп р още. 94 00:05:20,000 --> 00:05:23,000 Можем да предположим, че Google знае какво да прави с това тук, 95 00:05:23,000 --> 00:05:25,000 но ние ще стигнем до там своевременно днес. 96 00:05:25,000 --> 00:05:30,000 >> Но нека да разгледаме вместо в search1.html, 97 00:05:30,000 --> 00:05:34,000 което изглежда малко по-различно, защото реших, че тази форма тук е само малко куца. 98 00:05:34,000 --> 00:05:36,000 Искам да кажа, че е в горния ляв ъгъл. 99 00:05:36,000 --> 00:05:40,000 Има наистина няма естетика към него, и така искам да Stylize 100 00:05:40,000 --> 00:05:43,000 малко повече като Google, чиято заглавна страница, изземване, 101 00:05:43,000 --> 00:05:47,000 макар и да не могат да го посещават често, днес прилича на Хелоуин. 102 00:05:47,000 --> 00:05:53,000 Ако вместо това отвори версия 1 на този файл, търсене 1.html, аз съм го центрирани. 103 00:05:53,000 --> 00:05:57,000 Все още е доста грозно, но поне сега съм започнал да контролира естетиката на тази страница, 104 00:05:57,000 --> 00:06:00,000 не само маркиране на него. 105 00:06:00,000 --> 00:06:04,000 Нека да погледнем в търсене 1, и там е наистина само една разлика, 106 00:06:04,000 --> 00:06:06,000 , които биха могли да скочи към вас, или може би не, 107 00:06:06,000 --> 00:06:11,000 но това, което е на една линия или фрагмент от разликата? 108 00:06:11,000 --> 00:06:14,000 >> Този стил атрибут, така че се оказва, че в HTML 109 00:06:14,000 --> 00:06:19,000 повечето елементи, повечето етикети могат да имат атрибут стил върху тях, 110 00:06:19,000 --> 00:06:23,000 и в рамките на този стил атрибут е цитиран низ, 111 00:06:23,000 --> 00:06:26,000 и че цитиран низ е CSS. 112 00:06:26,000 --> 00:06:29,000 Каскаден лист със стилове Можете да поставите там 113 00:06:29,000 --> 00:06:32,000 като го посочва като име на свойство 114 00:06:32,000 --> 00:06:34,000 следвани от двоеточие, следвано от стойност. 115 00:06:34,000 --> 00:06:37,000 Това е вид жалко дизайнерско решение преди няколко години 116 00:06:37,000 --> 00:06:40,000 че CSS е език, само по себе си, 117 00:06:40,000 --> 00:06:43,000 но синтактично това е много по-различен от HTML. 118 00:06:43,000 --> 00:06:46,000 В този случай, ние виждаме, че вътре в моята уеб страница, която е написана в HTML, 119 00:06:46,000 --> 00:06:51,000 Имам CSS вътре в тези цитати, и Конвенцията за CSS 120 00:06:51,000 --> 00:06:55,000 е, че имате това, което се нарича имот, следван от, отново, дебелото черво, 121 00:06:55,000 --> 00:06:58,000 , последвано от стойността на този имот, така че няма знак за равенство. 122 00:06:58,000 --> 00:07:00,000 Няма допълнителни кавички. 123 00:07:00,000 --> 00:07:03,000 Това е само този на дебелото черво, разделени двойка ключове стойност, 124 00:07:03,000 --> 00:07:05,000 и текст на линия прави точно това, което казва. 125 00:07:05,000 --> 00:07:09,000 Подравнява текста в тялото на страницата, което е наистина смелостта на страницата 126 00:07:09,000 --> 00:07:11,000 в центъра. 127 00:07:11,000 --> 00:07:13,000 >> Добре, крайният резултат, да е ясно, е това. 128 00:07:13,000 --> 00:07:17,000 Не всичко, което по-секси, но поне беше насочен и малко повече като истински Google. 129 00:07:17,000 --> 00:07:21,000 Но какво, ако вместо отвори версия 2 на този 130 00:07:21,000 --> 00:07:25,000 и изтъкват, тук съвсем нов етикет? 131 00:07:25,000 --> 00:07:30,000 Сега в главата на страницата си, която преди това имаше само етикет 132 00:07:30,000 --> 00:07:32,000 във всички предишни примери? 133 00:07:32,000 --> 00:07:34,000 Той просто имаше тази, заглавието. 134 00:07:34,000 --> 00:07:38,000 Преди малко главата маркер изглеждаше така. 135 00:07:38,000 --> 00:07:40,000 Сега, вместо да го има стил отвътре етикет на 136 00:07:40,000 --> 00:07:44,000 и това също, извинявам се, синтактично изглежда много по-различно от HTML, 137 00:07:44,000 --> 00:07:47,000 но можете да свикна с това, с което в рамките на стила маркер 138 00:07:47,000 --> 00:07:50,000 Сега мога да фактор, това, което беше преди малко 139 00:07:50,000 --> 00:07:54,000 атрибут, атрибут стил, и мога да го сложи най-отгоре на страницата си. 140 00:07:54,000 --> 00:07:56,000 >> Защо? 141 00:07:56,000 --> 00:08:00,000 Е, това е стъпка към почистване нещата, който много прилича писмено C код 142 00:08:00,000 --> 00:08:04,000 бихме понякога пиша функции за фактор обща функционалност. 143 00:08:04,000 --> 00:08:07,000 Това е само малко по-чист започнем да отчитаме, неща като естетиката 144 00:08:07,000 --> 00:08:11,000 на едно централно място, отколкото да го имащи всички разнообразявам през целия си HTML. 145 00:08:11,000 --> 00:08:14,000 Това също прави това, което казва той, въпреки че има малко на нов синтаксис. 146 00:08:14,000 --> 00:08:19,000 Това тук е селектора, и тялото просто означава, изберете елемент на тялото 147 00:08:19,000 --> 00:08:21,000 и се прилагат следните свойства към него. 148 00:08:21,000 --> 00:08:23,000 Е, имотът е точно същото. 149 00:08:23,000 --> 00:08:25,000 Добра мярка съм добавил точка и запетая в края, 150 00:08:25,000 --> 00:08:29,000 което може да бъде конвенция, и аз съм увит целия този имот 151 00:08:29,000 --> 00:08:33,000 във фигурни скоби, защото аз в действителност може да има различни неща тук. 152 00:08:33,000 --> 00:08:39,000 Всъщност мога да кажа нещо като цвят: син; 153 00:08:39,000 --> 00:08:42,000 >> Сега това също няма да бъде стъпка към нещо, че по-хубава, 154 00:08:42,000 --> 00:08:47,000 но ако сега се върна до версия 2 съм поне сега тялото на моя 155 00:08:47,000 --> 00:08:49,000 страница текст синьо. 156 00:08:49,000 --> 00:08:51,000 Бутонът остава същата, защото това е вход. Това не е чист текст. 157 00:08:51,000 --> 00:08:56,000 Но всичко останало, което е текст, като CS50 Търсене отгоре, е всъщност син. 158 00:08:56,000 --> 00:09:01,000 Отново, всичко сме направили, сега се отстрани от тялото маркер, забележете, 159 00:09:01,000 --> 00:09:04,000 стил атрибут, и ние сме фактор тук. 160 00:09:04,000 --> 00:09:08,000 Това не е едно огромно подобрение, но ако вземем това още една стъпка напред 161 00:09:08,000 --> 00:09:10,000 забележите това, което можем да направим в тази трета версия. 162 00:09:10,000 --> 00:09:14,000 >> В search3.html страницата е почти идентичен 163 00:09:14,000 --> 00:09:17,000 с изключение на нов маркер за това, което сега? 164 00:09:17,000 --> 00:09:20,000 Link, така че това не е много уместно наречена 165 00:09:20,000 --> 00:09:24,000 защото не сте свързване в смисъл на кликване хипервръзка. 166 00:09:24,000 --> 00:09:28,000 Скоро, вие сте нещо за правене на равностойността на # включват в C 167 00:09:28,000 --> 00:09:31,000 чрез връзката етикет с HREF атрибут 168 00:09:31,000 --> 00:09:34,000 и REL атрибут казва давай 169 00:09:34,000 --> 00:09:39,000 и копие поставите съдържанието на даден файл, наречен search3.css точно тук, по същество. 170 00:09:39,000 --> 00:09:42,000 Не го направя, но това е духа на това. 171 00:09:42,000 --> 00:09:45,000 Той казва, отвори този файл, search3.css, 172 00:09:45,000 --> 00:09:49,000 и лечение, като че ли потребителят го бяха написали точно тук, в главата на страницата 173 00:09:49,000 --> 00:09:51,000 точно както направих аз в предишния пример. 174 00:09:51,000 --> 00:09:54,000 Search3.css, междувременно, е доста проста. 175 00:09:54,000 --> 00:09:58,000 Това наистина просто съдържа точно това, което беше преди малко 176 00:09:58,000 --> 00:10:03,000 в стила маркер, но аз съм фактор го тук, за да своя файл. 177 00:10:03,000 --> 00:10:07,000 >> Въпреки че не са прекарали много време на всички в HTML или уеб програмиране 178 00:10:07,000 --> 00:10:11,000 просто интуитивно какво е мотивацията, може би, за факторинг от 179 00:10:11,000 --> 00:10:14,000 този малък фрагмент дори на CSS в своя файл 180 00:10:14,000 --> 00:10:19,000 и след това, включително с тази връзка маркер тук? 181 00:10:19,000 --> 00:10:21,000 [Чува студент отговор] 182 00:10:21,000 --> 00:10:25,000 Добре, това е по-лесно да се тълкуват в смисъл, че имате CSS във файл CSS. 183 00:10:25,000 --> 00:10:28,000 Вие имате HTML в HTML файл, така че е по-разбираеми в този смисъл. 184 00:10:28,000 --> 00:10:30,000 Какво друго може да бъде убедителна? Да. 185 00:10:30,000 --> 00:10:32,000 [Чува студент отговор] 186 00:10:32,000 --> 00:10:35,000 Да, така че можете да го включите много пъти, така че в момента ние правим тези 187 00:10:35,000 --> 00:10:38,000 основни примери с отделни файлове, но предполагам, че всъщност 188 00:10:38,000 --> 00:10:42,000 истински сайт като вас воля за pset 7 или окончателен проект може би, 189 00:10:42,000 --> 00:10:45,000 и искате да имате няколко уеб страници, както със сигурност е обща 190 00:10:45,000 --> 00:10:48,000 действителната World Wide Web, и би било вид куц 191 00:10:48,000 --> 00:10:52,000 трябва да копирате и поставите същия син цвят 192 00:10:52,000 --> 00:10:56,000 и същия текст е подравнен център във всеки един от тези страници. 193 00:10:56,000 --> 00:10:59,000 Вместо това има повече смисъл да фактор, който много прилича ние сме направили в C 194 00:10:59,000 --> 00:11:02,000 с файл ч, сложи го в едно централно място, 195 00:11:02,000 --> 00:11:06,000 в този случай search3.css, а след това позволи на всеки файл 196 00:11:06,000 --> 00:11:11,000 във вашия уебсайт, за да включите този файл на този маркер в ред 16. 197 00:11:11,000 --> 00:11:14,000 Както обикновено е случаят, ние започнахме с версия 0, какъв вид на произведения 198 00:11:14,000 --> 00:11:18,000 , но не е задължително най-добрите, и с всяка стъпка, 199 00:11:18,000 --> 00:11:21,000 1 търсене, търсене 2, и сега търсене 3 сме взели тези бебешки стъпки 200 00:11:21,000 --> 00:11:26,000 към проекти, които са малко по-чиста и по-подготвителна 201 00:11:26,000 --> 00:11:30,000 за по-сложни страници, които бихме могли да направим по пътя. 202 00:11:30,000 --> 00:11:33,000 >> Нека се отвори един последен пример тук само за да покаже 203 00:11:33,000 --> 00:11:36,000 още по-стилизирана страница, но нека първо да погледнем в HTML. 204 00:11:36,000 --> 00:11:41,000 Това е search4.html и забележите, че структурно това е почти същото 205 00:11:41,000 --> 00:11:44,000 с изключение на въвеждането на нов етикет DIV. 206 00:11:44,000 --> 00:11:48,000 Div е маркер, който се въвежда разделение на страницата. 207 00:11:48,000 --> 00:11:51,000 Можете да мислите за това като невидим правоъгълник. 208 00:11:51,000 --> 00:11:54,000 Това нещо създава откос на площите в уеб страницата 209 00:11:54,000 --> 00:11:56,000 , които можете да Stylize всичко наведнъж. 210 00:11:56,000 --> 00:11:58,000 Това, което съм направил тук е, както следва. 211 00:11:58,000 --> 00:12:01,000 Вътре в тялото ми маркер, който е бил там през цялото време, 212 00:12:01,000 --> 00:12:05,000 Казвам се създаде подразделение на страницата чрез линии 45 до 47, 213 00:12:05,000 --> 00:12:09,000 и това означава, че по същество ми даде невидим правоъгълник в горния край на страницата. 214 00:12:09,000 --> 00:12:14,000 Тогава ми даде втори правоъгълник, макар и невидима, по-долу, че 215 00:12:14,000 --> 00:12:16,000 и се идентифицират с името съдържание, и след това на последно място, 216 00:12:16,000 --> 00:12:19,000 дайте ми трета дивизия на страницата в долната 217 00:12:19,000 --> 00:12:21,000 нарича ID. 218 00:12:21,000 --> 00:12:23,000 Ще видите защо съм направил това само за миг, 219 00:12:23,000 --> 00:12:26,000 но концептуално имам горен дивизия. 220 00:12:26,000 --> 00:12:30,000 Имам съдържание на разделение, и имам долен колонтитул разделение на страницата 221 00:12:30,000 --> 00:12:32,000 въпреки че те са само маркиране. 222 00:12:32,000 --> 00:12:35,000 Потребителят не е да видите три правоъгълници, 223 00:12:35,000 --> 00:12:37,000 но вид на структурно там зад кулисите 224 00:12:37,000 --> 00:12:39,000 те са реално налични. 225 00:12:39,000 --> 00:12:41,000 >> Сега, на кого му пука? Защо се прави това? 226 00:12:41,000 --> 00:12:43,000 Всичко останало на страницата е същата, както сме виждали преди. 227 00:12:43,000 --> 00:12:47,000 Ето моята форма. Ето моят принос, моят принос, нов ред и така нататък. 228 00:12:47,000 --> 00:12:50,000 Ето един образ, обаче, така че ние ще видим, когато това дойде от само за миг. 229 00:12:50,000 --> 00:12:52,000 Ето долен колонтитул, който е нов, просто защото исках да се въведе 230 00:12:52,000 --> 00:12:54,000 повече съдържание. 231 00:12:54,000 --> 00:12:58,000 Ако ние се придвижите нагоре забележите, че ID на тази дивизия е заглавието. 232 00:12:58,000 --> 00:13:02,000 ID на тази дивизия е съдържание, както и ID на това е букмейкър. 233 00:13:02,000 --> 00:13:05,000 И както подсказва и името, когато имате ID атрибут 234 00:13:05,000 --> 00:13:09,000 в HTML, по дефиниция трябва да идентифицира 235 00:13:09,000 --> 00:13:12,000 един от елементите, един от таговете в страницата си. 236 00:13:12,000 --> 00:13:16,000 Тежест е напълно да запомните, че имате горен идентификатор вече. 237 00:13:16,000 --> 00:13:19,000 Имате долен колонтитул. Имате съдържание идентификатор вече. 238 00:13:19,000 --> 00:13:22,000 Компютърът няма да разбера какво е наличен ID е за вас, 239 00:13:22,000 --> 00:13:27,000 така по случайност може да даде два тагове ID на заглавната 240 00:13:27,000 --> 00:13:29,000 и това просто би било погрешно. 241 00:13:29,000 --> 00:13:31,000 >> Трябва да се има предвид това, което сте създали, 242 00:13:31,000 --> 00:13:34,000 но след като веднъж сте направили това обявление какво можем да направим тук. 243 00:13:34,000 --> 00:13:38,000 Сега мога да се уточни в моя стил маркер на върха 244 00:13:38,000 --> 00:13:41,000 или еквивалентно в моето досие CSS, ако бях все още използват тази версия 245 00:13:41,000 --> 00:13:46,000 Мога да кажа # хедър, и какво означава това е, че каквото и етикет 246 00:13:46,000 --> 00:13:49,000 в тази страница има ID на заглавната 247 00:13:49,000 --> 00:13:53,000 и #, просто от човешка конвенция, представлява документ за самоличност. 248 00:13:53,000 --> 00:13:56,000 Рязкото знак или лира представлява ID. 249 00:13:56,000 --> 00:13:58,000 Заглавието е името, което аз го дадох. 250 00:13:58,000 --> 00:14:01,000 Това означава, прилагат този имот CSS 251 00:14:01,000 --> 00:14:04,000 какъвто и да е маркер в тази страница носи ID на заглавната. 252 00:14:04,000 --> 00:14:06,000 Една и съща сделка. 253 00:14:06,000 --> 00:14:09,000 Този имот, който се случва да бъде същото, към всеки елемент 254 00:14:09,000 --> 00:14:11,000 чието ID е съдържанието, и след това тук 255 00:14:11,000 --> 00:14:14,000 забележите, аз имам малко по-сложен с долен колонтитул. 256 00:14:14,000 --> 00:14:18,000 Всеки елемент, чието ID е долен колонтитул, от които може да има само един по дефиниция, 257 00:14:18,000 --> 00:14:21,000 Давай напред и да шрифта му размер, по-малък, 258 00:14:21,000 --> 00:14:24,000 удебелен шрифт тегло, границата му на 20 пиксела. 259 00:14:24,000 --> 00:14:26,000 >> Какво означава това? 260 00:14:26,000 --> 00:14:28,000 Това е просто един марж на отгоре, отдолу, и на ляво и надясно. 261 00:14:28,000 --> 00:14:31,000 Това означава, дайте ми 20-пиксел невидима граница около него 262 00:14:31,000 --> 00:14:35,000 само за да прокара всичко останало далеч от него малко, като може да се направи в Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word или страници или нещо подобно. 264 00:14:37,000 --> 00:14:39,000 И тогава текст приведе в съответствие център. 265 00:14:39,000 --> 00:14:43,000 Нека да видим крайния резултат, а след това ще се върнем до оставащия един фрагмент от CSS. 266 00:14:43,000 --> 00:14:48,000 Това е версия 4, нашият последен за търсене примери, и това е много, много секси. 267 00:14:48,000 --> 00:14:54,000 Сега, честно, аз просто Гугъл "генератор на шрифта логото на Google. 268 00:14:54,000 --> 00:14:58,000 И това ми позволи да се създаде GIF, формат на изображението, което изглежда, че има. 269 00:14:58,000 --> 00:15:00,000 Всъщност, можете да направите това. 270 00:15:00,000 --> 00:15:03,000 Ние имаме "Google лого генератор шрифтове". 271 00:15:03,000 --> 00:15:05,000 >> Нека видим дали можем да направим това. 272 00:15:05,000 --> 00:15:07,000 Добре, аз мисля, че това е сайт, който използвах. 273 00:15:07,000 --> 00:15:11,000 Можем да кажем, Ec 10, например, и да ги направят свои собствени. 274 00:15:11,000 --> 00:15:13,000 Можете да играете с това цял ден дълго и след това кликнете с десния бутон на мишката върху него 275 00:15:13,000 --> 00:15:16,000 и след това да изтеглите действителната GIF, която е всичко, което съм направил. 276 00:15:16,000 --> 00:15:19,000 И наистина, ето защо в моя HTML, спомняте, тук 277 00:15:19,000 --> 00:15:22,000 Имах изображение маркер, който видяхме за кратко миналата седмица 278 00:15:22,000 --> 00:15:24,000 чийто източник е logo.gif. 279 00:15:24,000 --> 00:15:28,000 И това, което отново е мотивация за този ALT атрибут, 280 00:15:28,000 --> 00:15:31,000 тази алтернатива атрибут? 281 00:15:31,000 --> 00:15:33,000 Да. 282 00:15:33,000 --> 00:15:35,000 [Чува студент отговор] 283 00:15:35,000 --> 00:15:37,000 Добре, така че две причини наистина, ако браузърът не може да тегли картинката 284 00:15:37,000 --> 00:15:40,000 защото имате бавна връзка към мрежа или изображението да е повреден 285 00:15:40,000 --> 00:15:44,000 или нещо подобно, поне човек може да види "CS50 търсене" 286 00:15:44,000 --> 00:15:46,000 а след това и от съображения за достъпност. 287 00:15:46,000 --> 00:15:48,000 Ако имате потребител, който е сляп и използвате екранен четец 288 00:15:48,000 --> 00:15:50,000 и следователно очевидно не могат да виждат образи Може и да е най-малко 289 00:15:50,000 --> 00:15:52,000 чуете текст, ако компютъра си говори с тях. 290 00:15:52,000 --> 00:15:56,000 >> Като цяло, това е най-добрата практика, когато става въпрос за достъпността на страници 291 00:15:56,000 --> 00:16:00,000 така че дори потребителите в тази ситуация могат да чуят или видят, така да се каже, 292 00:16:00,000 --> 00:16:03,000 това, което е, че е на вашата страница. 293 00:16:03,000 --> 00:16:05,000 Има едно друго нещо, което направих тук 294 00:16:05,000 --> 00:16:09,000 , която е малко по-интересно, и ще видим повече за това в проблем, 7 295 00:16:09,000 --> 00:16:12,000 чрез един от шорти, водени от един от преподаване събратя. 296 00:16:12,000 --> 00:16:15,000 Но # съдържание се отнася за етикет 297 00:16:15,000 --> 00:16:20,000 чието ID е съдържанието, но след това е знак за интервал, и тогава там е думата вход. 298 00:16:20,000 --> 00:16:25,000 Е, това, което е интересно за CSS е, че можете да 299 00:16:25,000 --> 00:16:29,000 тагове в страница вид на йерархично, 300 00:16:29,000 --> 00:16:33,000 и този фрагмент на средства CSS е да се намери етикет 301 00:16:33,000 --> 00:16:37,000 чието ID е съдържание, както и след това се прилагат следните свойства 302 00:16:37,000 --> 00:16:42,000 към всички входни етикети, които са потомци на съдържанието, 303 00:16:42,000 --> 00:16:44,000 това е, че са вмъкнати вътре в него. 304 00:16:44,000 --> 00:16:48,000 Отстъп, отново, е важно само към компютъра, а не на човек, 305 00:16:48,000 --> 00:16:51,000 но по силата на споразумение, ние тире неща, като отидем по-дълбоко в една страница, 306 00:16:51,000 --> 00:16:54,000 така че това означава, прилагат марж от 5 пиксела всеки вход елемент 307 00:16:54,000 --> 00:16:57,000 това е някъде вътре или вплетена в 308 00:16:57,000 --> 00:16:59,000  елемент, чието ID е съдържанието. 309 00:16:59,000 --> 00:17:01,000 >> Кой които се прилагат? 310 00:17:01,000 --> 00:17:03,000 Е, има всъщност само тези две момчета тук. 311 00:17:03,000 --> 00:17:05,000 Забележете, че вътрешността на формата има 2 входа, 312 00:17:05,000 --> 00:17:07,000 като е имало за всички тези примери. 313 00:17:07,000 --> 00:17:11,000 Но забележете, че се случи да бъде вплетена в тези два входа, 314 00:17:11,000 --> 00:17:13,000 макар и малко дълбоко, няколко слоя на вдлъбнатина, 315 00:17:13,000 --> 00:17:16,000 вътрешността на етикет, чието ID е доволен. 316 00:17:16,000 --> 00:17:18,000 Какво означава това? 317 00:17:18,000 --> 00:17:21,000 Ако се върнем към браузъра тук можете да видите все така леко- 318 00:17:21,000 --> 00:17:23,000 нека я увеличите, че там е малко на уплътнението между бутона 319 00:17:23,000 --> 00:17:25,000 и между текстовото поле. 320 00:17:25,000 --> 00:17:27,000 >> Нека временно Изключи го. 321 00:17:27,000 --> 00:17:30,000 Позволете ми да отида да ми CSS, и ме пусна напред и просто 322 00:17:30,000 --> 00:17:34,000 промяна на тази граница от 5 до 0 пиксела пиксела. 323 00:17:34,000 --> 00:17:37,000 Нека ми давай тогава и запишете файла, да се върнете към търсачката 324 00:17:37,000 --> 00:17:40,000 и презареди, и да гледате на средата на страницата. 325 00:17:40,000 --> 00:17:43,000 Всичко се компресира заедно, и когато за първи път бита този пример 326 00:17:43,000 --> 00:17:46,000 Мислех, че изглеждаше глупаво с текстово поле и след това на бутона непосредствено под него. 327 00:17:46,000 --> 00:17:50,000 Исках да се запълни малко, така че аз въведох маржове. 328 00:17:50,000 --> 00:17:55,000 Това, което няма да направи в лекцията е да отидете през няколко десетки 329 00:17:55,000 --> 00:17:58,000 CSS свойства, които съществуват, защото, отново, има неща, като големината на шрифта, 330 00:17:58,000 --> 00:18:02,000 шрифта тегло, марж, подравняване на текст, както и няколко дузина други, 331 00:18:02,000 --> 00:18:06,000 и ние ще ви насочи в проблем, 7 различни уроци онлайн 332 00:18:06,000 --> 00:18:08,000 и препратки, които ви позволяват да вземете тези неща. 333 00:18:08,000 --> 00:18:10,000 Но това, което е наистина важно в края на деня 334 00:18:10,000 --> 00:18:12,000 >> е да се разбере как се прилагат тези неща. 335 00:18:12,000 --> 00:18:15,000 Отново, ако имаме стил отвътре етикет на 336 00:18:15,000 --> 00:18:19,000 да отидете селектори, такива идентификатори, които определят 337 00:18:19,000 --> 00:18:21,000 на кого искате да приложите тези свойства, 338 00:18:21,000 --> 00:18:24,000 и след това сферата на недвижимите имоти като ключова ценност двойка 339 00:18:24,000 --> 00:18:28,000 разделени от двоеточие и след това завърши с точка и запетая, 340 00:18:28,000 --> 00:18:32,000 или можете да се откъснете всички, че от и го сложи в отделен файл CSS 341 00:18:32,000 --> 00:18:35,000 себе си. 342 00:18:35,000 --> 00:18:39,000 Добре, всички въпроси, относно концепциите 343 00:18:39,000 --> 00:18:41,000 или голямата картина на CSS? 344 00:18:41,000 --> 00:18:43,000 Отново ще видите повече от него в pset 7 345 00:18:43,000 --> 00:18:47,000 но ние ще го държи доста проста. 346 00:18:47,000 --> 00:18:49,000 Не? Добре. 347 00:18:49,000 --> 00:18:51,000 Това е време за реални език за програмиране, 348 00:18:51,000 --> 00:18:54,000 и ние ще се върнем малко CSS под формата на пример. 349 00:18:54,000 --> 00:18:58,000 PHP всъщност е чудесно достъпен език 350 00:18:58,000 --> 00:19:02,000 с това, че е синтактично почти равна на C. 351 00:19:02,000 --> 00:19:06,000 С други думи, ако знаете, C, вие знаете по-голямата част PHP 352 00:19:06,000 --> 00:19:08,000 синтактично най-малко, въпреки че има някои нови функции 353 00:19:08,000 --> 00:19:10,000 и някои нови концепции, които ще трябва да погледна. 354 00:19:10,000 --> 00:19:13,000 >> Но за по-голямата си част, сега, че ние прехода от С до PHP 355 00:19:13,000 --> 00:19:16,000 повечето от новите неща е наистина в голямата картина, 356 00:19:16,000 --> 00:19:19,000 как да използвате езика за програмиране в Интернет, за разлика от 357 00:19:19,000 --> 00:19:23,000 в командния ред или в мига бързо, колкото сме правили до този момент. 358 00:19:23,000 --> 00:19:27,000 За справка, особено с pset 7 и последна на проекта, 359 00:19:27,000 --> 00:19:31,000 се вземат предимство на този адрес тук, ако искате да прочетете на формалностите на PHP. 360 00:19:31,000 --> 00:19:34,000 Всъщност като безплатен онлайн учебник ефективно, 361 00:19:34,000 --> 00:19:37,000 и вие ще разберете, че това, което е наистина хубаво за PHP 362 00:19:37,000 --> 00:19:41,000 е, че има стотици функции, които идват с нея, 363 00:19:41,000 --> 00:19:44,000 като има предвид, че в C не е задължително да имат достъп до 364 00:19:44,000 --> 00:19:47,000 повече функции, отколкото са били в библиотеката по математика, CS50 библиотека. 365 00:19:47,000 --> 00:19:51,000 В PHP и много съвременни езици, Python и Ruby сред тях, 366 00:19:51,000 --> 00:19:54,000 можете да получите достъп до толкова много повече функции, което означава, че можете да напишете 367 00:19:54,000 --> 00:19:57,000 много по-малко код, защото може да стои на раменете на другите хора 368 00:19:57,000 --> 00:19:59,000 , които вече са написали някои неща за вас. 369 00:19:59,000 --> 00:20:03,000 >> Нека да бърза обиколка на синтаксиса на PHP и след това напишете няколко примера. 370 00:20:03,000 --> 00:20:06,000 Какво е хубаво за PHP първата и най-важна 371 00:20:06,000 --> 00:20:08,000 е, че няма основна функция. 372 00:20:08,000 --> 00:20:10,000 Ако искате да се напише програма в PHP просто започнете да пишете код, 373 00:20:10,000 --> 00:20:12,000 и не е нужно да се притеснявате за основната. 374 00:20:12,000 --> 00:20:14,000 Не е вътр. Има няма връщане назад. 375 00:20:14,000 --> 00:20:17,000 Не е argv, argc, което е необходимо, когато пишете на програмата. 376 00:20:17,000 --> 00:20:20,000 -Скоро можете да започнете да пишете код и това е част 377 00:20:20,000 --> 00:20:23,000 защото PHP е това, което се нарича интерпретиран език. 378 00:20:23,000 --> 00:20:26,000 C е съставен и е съставен в смисъл, че да започнете 379 00:20:26,000 --> 00:20:29,000 с изходния код, да го стартирате чрез звъня, което е компилатор, 380 00:20:29,000 --> 00:20:33,000 и в крайна сметка след известен брой стъпки, които можете да получите обектен код, 0s и 1s. 381 00:20:33,000 --> 00:20:36,000 PHP и Python и Ruby и Пърл и други 382 00:20:36,000 --> 00:20:39,000 различни видове езици по това, че не ги компилирате. 383 00:20:39,000 --> 00:20:42,000 Вие не трябва да излизат от изходния код на 0s и 1s. 384 00:20:42,000 --> 00:20:45,000 Ти просто се движат на изходния код, и ще те изходния код 385 00:20:45,000 --> 00:20:49,000 , пише в обикновен текстов файл, завършвайки инча PHP в този случай 386 00:20:49,000 --> 00:20:53,000 вместо в., както и програмата на вашия компютър 387 00:20:53,000 --> 00:20:57,000 е буквално тълкува кода ред по ред по ред. 388 00:20:57,000 --> 00:21:00,000 >> С други думи, вместо да се напише програма и стартирайте програмата 389 00:21:00,000 --> 00:21:04,000 директно с вас, вместо да се напише програма с файл, завършващ инча PHP. 390 00:21:04,000 --> 00:21:09,000 След това пуснете реалната програма наречен php.exe, ако сте на Windows, 391 00:21:09,000 --> 00:21:12,000 или просто PHP, ако сте на Mac OS или Linux, 392 00:21:12,000 --> 00:21:17,000 и ще ви даде като принос към програмата PHP своя изходен код, 393 00:21:17,000 --> 00:21:20,000 и своята цел в живота е да четете код горе до долу, от ляво на дясно, 394 00:21:20,000 --> 00:21:23,000 и каквото и да съм го казал да се направи. 395 00:21:23,000 --> 00:21:25,000 >> Нека видим какво това ще означава, синтактично. 396 00:21:25,000 --> 00:21:27,000 В PHP имаме условия. 397 00:21:27,000 --> 00:21:29,000 Този слайд е идентично с това, което видях седмици 1 398 00:21:29,000 --> 00:21:33,000 защото синтактично условия, IFS и другаде IFS и другаде в PHP 399 00:21:33,000 --> 00:21:35,000 изглежда точно като този. 400 00:21:35,000 --> 00:21:38,000 Когато става въпрос за булевите изрази те ще изглеждат точно по този начин. 401 00:21:38,000 --> 00:21:43,000 Когато става въпрос за anding неща заедно Булев, че ще изглежда точно така. 402 00:21:43,000 --> 00:21:46,000 Ключове изглежда по същия начин, и ще получите допълнителна полза в PHP 403 00:21:46,000 --> 00:21:51,000 , който превключва в C може само да включите Чар или вътр. 404 00:21:51,000 --> 00:21:53,000 Вие не може да превключите на низовата стойност. 405 00:21:53,000 --> 00:21:55,000 В PHP можете да всъщност са израз 406 00:21:55,000 --> 00:21:58,000 , която е променлива, чието съдържание са низ, 407 00:21:58,000 --> 00:22:01,000 и всъщност можете да направите сравнение низ в реалния интуитивен начин, 408 00:22:01,000 --> 00:22:06,000 не показалеца сравнение, за да се реши дали да се направи случай или J или нещо друго. 409 00:22:06,000 --> 00:22:09,000 Ще видите, че потенциално е пред дълго. 410 00:22:09,000 --> 00:22:11,000 >> Loops твърде чудесно са едни и същи. 411 00:22:11,000 --> 00:22:15,000 За вериги имат инициализация, състояние, както и известен брой актуализации. 412 00:22:15,000 --> 00:22:18,000 Докато цикли съществуват в PHP. 413 00:22:18,000 --> 00:22:21,000 Правя, докато вериги съществува в PHP, 414 00:22:21,000 --> 00:22:26,000 и масиви в PHP съществуват, но тук е мястото, където синтаксисът започва да става малко по-различно, 415 00:22:26,000 --> 00:22:29,000 но концепции са едни и същи, и понятията наистина са едни и същи 416 00:22:29,000 --> 00:22:32,000 , тъй като те са в седмица 0, със Scratch. 417 00:22:32,000 --> 00:22:34,000 На първо място е знакът $. 418 00:22:34,000 --> 00:22:37,000 Това е дизайнерско решение в PHP, при която всяка променлива 419 00:22:37,000 --> 00:22:41,000 в PHP по проект започва с $ знак. 420 00:22:41,000 --> 00:22:46,000 Няма повече X, Y, Z. Това е $ X, Y, Z, само защото. 421 00:22:46,000 --> 00:22:49,000 Това е нещо, което трябва да имате предвид, а сега и на дясната страна 422 00:22:49,000 --> 00:22:52,000 това прилича масив, 423 00:22:52,000 --> 00:22:54,000 но ние използваме квадратни скоби. 424 00:22:54,000 --> 00:22:57,000 В PHP и JavaScript, както и ние в крайна сметка ще видите, 425 00:22:57,000 --> 00:23:01,000 да декларира масив се отварят квадратна скоба и затвори квадратна скоба, 426 00:23:01,000 --> 00:23:04,000 и тогава ще трябва разделени със запетая списък от стойности, независимо дали са цели числа 427 00:23:04,000 --> 00:23:09,000 или низове или символа, каквото искате, в рамките на този израз има. 428 00:23:09,000 --> 00:23:11,000 >> Сега, как правим нещо подобно на С? 429 00:23:11,000 --> 00:23:16,000 Какво е синтаксиса за статично обявяване масив на познатите числа? 430 00:23:16,000 --> 00:23:19,000 Това беше фигурни скоби, толкова малка разлика, но и в двете PHP 431 00:23:19,000 --> 00:23:22,000 и в крайна сметка JavaScript просто използва квадратни скоби, така че наистина 432 00:23:22,000 --> 00:23:25,000 само интересна подробност тук е $ знак за името на променливата 433 00:23:25,000 --> 00:23:28,000 , а също и квадратните скоби, а има и един любопитен нещо 434 00:23:28,000 --> 00:23:32,000 , който е бил пропуснат, както и на лявата страна на знака =. 435 00:23:32,000 --> 00:23:36,000 Това, което липсва, че ние сме били изисква за седмица? Да. 436 00:23:36,000 --> 00:23:38,000 [Чува студент отговор] 437 00:23:38,000 --> 00:23:41,000 Размер, така че не се споменава от големината на масива. 438 00:23:41,000 --> 00:23:45,000 Честно казано, няма споменаване на квадратни скоби от лявата страна 439 00:23:45,000 --> 00:23:47,000 на знака =, и какво липсва от линията? 440 00:23:47,000 --> 00:23:49,000 Да. >> Чува студент отговор] 441 00:23:49,000 --> 00:23:52,000 Тип, така че това, което е интересно, по-специално за PHP 442 00:23:52,000 --> 00:23:56,000 е, че тя не е силно типизирани език като C, 443 00:23:56,000 --> 00:23:58,000 и че е силно въвели в смисъл, че трябва да се каже, Чар, 444 00:23:58,000 --> 00:24:00,000 трябва да се каже, ПНА, трябва да се каже, плувка. 445 00:24:00,000 --> 00:24:03,000 >> Всеки път, когато искате променлива, трябва да кажеш звъня какво си вид е. 446 00:24:03,000 --> 00:24:05,000 PHP е малко по-мързеливите. 447 00:24:05,000 --> 00:24:08,000 Свободно написали в смисъл, че 448 00:24:08,000 --> 00:24:11,000 можете да имате поплавъци и символа и струнни 449 00:24:11,000 --> 00:24:14,000 и цели числа и т.н., но самият език 450 00:24:14,000 --> 00:24:17,000 не ми пука какво ще ви постави в рамките на дадена променлива. 451 00:24:17,000 --> 00:24:20,000 Вие не трябва да го информира предварително какъв тип данни 452 00:24:20,000 --> 00:24:22,000 се случва в променлива. 453 00:24:22,000 --> 00:24:24,000 Това е изцяло от вас, така че това е хубаво 454 00:24:24,000 --> 00:24:27,000 по това, че не трябва да се тревожи толкова много за данни пишете 455 00:24:27,000 --> 00:24:29,000 и се притеснявате какви са вашите аргументи и така нататък. 456 00:24:29,000 --> 00:24:32,000 Това също означава, че в крайна сметка функции в PHP ще бъде в състояние да се върне 457 00:24:32,000 --> 00:24:36,000 или едно цяло число голямата част от времето, а може би веднъж в последно време 458 00:24:36,000 --> 00:24:40,000 те ще връща булев, булев фалшиви, например, за да покаже, че нещо се е объркало. 459 00:24:40,000 --> 00:24:44,000 Това ни дава някои квит, но също така ще ни направи нещо по проект 460 00:24:44,000 --> 00:24:47,000 малко по-мързеливите, когато става въпрос да въвеждате данни. 461 00:24:47,000 --> 00:24:50,000 >> Какво още има да се има предвид тук? 462 00:24:50,000 --> 00:24:54,000 Променливи изглеждат доста харесва това, така че $ S = "Здравей, свят". 463 00:24:54,000 --> 00:24:57,000 Това е може би произтичат от предишния пример, 464 00:24:57,000 --> 00:24:59,000 и ние имаме друг тип цикъл. 465 00:24:59,000 --> 00:25:02,000 Това действително ще видите след като в последно време, тъй като тя е доста по-удобен, 466 00:25:02,000 --> 00:25:04,000 foreach изграждане. 467 00:25:04,000 --> 00:25:11,000 В този случай, цикълът foreach взема в рамките на скоби три думи обикновено 468 00:25:11,000 --> 00:25:16,000 $ Нещо първият, който е това, което масив искаш за обхождане на членовете на 469 00:25:16,000 --> 00:25:19,000 тогава буквално дума, тъй като и след това на последно място, 470 00:25:19,000 --> 00:25:21,000 друго име на променлива, че можете да избирате. 471 00:25:21,000 --> 00:25:23,000 Тя може да бъде Foo, бар, или елемент, 472 00:25:23,000 --> 00:25:26,000 и какво прави тази конструкция 473 00:25:26,000 --> 00:25:29,000 е, ако $ масив съдържа 10 елемента 474 00:25:29,000 --> 00:25:34,000 на всяка итерация на този масив съжалявам, на всяко повторение на този цикъл 475 00:25:34,000 --> 00:25:37,000 променлива, наречена елемент ще бъде актуализиран 476 00:25:37,000 --> 00:25:40,000 да бъде първият елемент в масива, то вторият елемент в масива, 477 00:25:40,000 --> 00:25:44,000 след това на третия елемент на масива, като по този начин отпада необходимостта от 478 00:25:44,000 --> 00:25:46,000 да се направи леко досадно кв. нотация скоба и 479 00:25:46,000 --> 00:25:49,000 Долара, за да се индекс в масив. 480 00:25:49,000 --> 00:25:53,000 PHP прави цялата тази работа за вас и на всяка итерация 481 00:25:53,000 --> 00:25:55,000 просто ви подава следващия елемент от масива 482 00:25:55,000 --> 00:26:01,000 без да ви се налага да знаят или се грижи за цифрова своя индекс място. 483 00:26:01,000 --> 00:26:04,000 >> И тогава на последно място, за сега, има една друга особеност на PHP 484 00:26:04,000 --> 00:26:08,000 че ще бъде изключително полезно, особено когато започнем програмиране на уеб, 485 00:26:08,000 --> 00:26:10,000 и това е известно като асоциативен масив. 486 00:26:10,000 --> 00:26:13,000 Масиви, за които знаем досега, като 20 секунди преди 487 00:26:13,000 --> 00:26:17,000 и за последните 8 седмици, са цифрово-индексиран масиви, 488 00:26:17,000 --> 00:26:20,000 вид на традиционните масиви, където индексите са цели числа, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, всички нагоре. 490 00:26:23,000 --> 00:26:25,000 Асоциативни масиви са много по-мощен. 491 00:26:25,000 --> 00:26:28,000 Те ви позволяват да имат произволни клавиши, 492 00:26:28,000 --> 00:26:31,000 произволни индекси и произволни стойности. 493 00:26:31,000 --> 00:26:34,000 Като има предвид, че в традиционен масив 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 в асоциативен масив, можете да имат индекс 495 00:26:37,000 --> 00:26:41,000 или ключ на Foo, чиято стойност се намира бар. 496 00:26:41,000 --> 00:26:46,000 След това може да има друг ключ, чието име е Баз и чиято стойност е qux. 497 00:26:46,000 --> 00:26:49,000 >> Отново глупави компютърни науки генерични имената на променливите, 498 00:26:49,000 --> 00:26:55,000 но въпросът е, че този масив не скоба 0 или скоба 1. 499 00:26:55,000 --> 00:26:59,000 Вместо това ще трябва скоба дрън и скоба Баз. 500 00:26:59,000 --> 00:27:03,000 Това е много по-гъвкав в това, че ние ще да бъде в състояние да се сдружават 501 00:27:03,000 --> 00:27:07,000 думи с други думи, ключове със стойности напълно произволно, 502 00:27:07,000 --> 00:27:12,000 и започваш да бъде в състояние да получи тези стойности за константно време 503 00:27:12,000 --> 00:27:14,000 защото под капака асоциативен масив 504 00:27:14,000 --> 00:27:16,000 наистина е хеш-таблица. 505 00:27:16,000 --> 00:27:20,000 Спомнете си, че хеш таблица ви позволява да поставите в някои вход 506 00:27:20,000 --> 00:27:25,000 поставят в думата Дейвид, ако искате да вмъкнете Дейвид в някакъв речник, 507 00:27:25,000 --> 00:27:27,000 и след това да се върнеш някаква стойност обикновено. 508 00:27:27,000 --> 00:27:29,000 В случай на правопис, вярно или невярно. 509 00:27:29,000 --> 00:27:33,000 Давид или каквато дума е или не е в речника. 510 00:27:33,000 --> 00:27:36,000 Асоциативен масив е наистина само хеш таблица, 511 00:27:36,000 --> 00:27:38,000 но това е много по-лесен въплъщение на. 512 00:27:38,000 --> 00:27:41,000 Както ще видим, че това ще ни позволи да се направят някои неща 513 00:27:41,000 --> 00:27:43,000 много, много лесно. 514 00:27:43,000 --> 00:27:45,000 >> Нека да разгледаме някои основни PHP 515 00:27:45,000 --> 00:27:47,000 примери и да видим какво можем да направим с този език. 516 00:27:47,000 --> 00:27:51,000 Нека вървим напред и да се отворят в нашия източник директория днес 517 00:27:51,000 --> 00:27:54,000 файл, наречен hello1.php. 518 00:27:54,000 --> 00:27:57,000 Този файл е повече коментар, отколкото е действителният код, 519 00:27:57,000 --> 00:28:00,000 така че нека действително премахване на всички коментари от файла 520 00:28:00,000 --> 00:28:05,000 и настоящето за може би най-простият PHP програма тук. 521 00:28:05,000 --> 00:28:07,000 5 линии, и някои от тях са бяло пространство, 522 00:28:07,000 --> 00:28:09,000 забележите някои ключови различия. 523 00:28:09,000 --> 00:28:12,000 Файлът се нарича hello1.php. 524 00:28:12,000 --> 00:28:16,000 Първа линия, обаче, е 00:28:18,000 Подобни по дух HTML 526 00:28:18,000 --> 00:28:21,000 че поредица от символи, казва на компютъра 527 00:28:21,000 --> 00:28:25,000 "Хей, компютър, тук идва програма, ние сме в PHP. 528 00:28:25,000 --> 00:28:28,000 Това прави сигурни, че не е объркан, че това е някакъв друг език. 529 00:28:28,000 --> 00:28:30,000 Линия 2 е интересна празно пространство. 530 00:28:30,000 --> 00:28:32,000 Линия 3 е нашият стар приятел ФОРМАТ 531 00:28:32,000 --> 00:28:34,000 този път в контекста на PHP. 532 00:28:34,000 --> 00:28:37,000 PHP има своя собствена версия на ФОРМАТ, който се държи точно по същия, 533 00:28:37,000 --> 00:28:39,000 така че това е просто ще отпечатва "Здравей, свят". 534 00:28:39,000 --> 00:28:46,000 И тогава това обратното етикет,>, означава, че е за PHP код. 535 00:28:46,000 --> 00:28:48,000 >> Нека видим как се стартира този. 536 00:28:48,000 --> 00:28:50,000 Аз ще се върна тук ми терминален прозорец. 537 00:28:50,000 --> 00:28:52,000 Отивам да отидат в PHP моята директория. 538 00:28:52,000 --> 00:28:56,000 Забележете, че имаме цял куп файлове, първата от които е hello.php. 539 00:28:56,000 --> 00:29:01,000 Позволете ми да отида напред и да се стартира този hello1.php, въведете. 540 00:29:01,000 --> 00:29:03,000 Разрешението е отказано. Добре. 541 00:29:03,000 --> 00:29:06,000 Как сме определени неща, като това в миналото? 542 00:29:06,000 --> 00:29:08,000 Какво е това? >> Чува студент отговор] 543 00:29:08,000 --> 00:29:11,000 Имаме нужда да четат и пишат, но позволете ми да направя LS-л. 544 00:29:11,000 --> 00:29:14,000 Не забравяйте, това до известна степен загадъчен изход, при който hello1 545 00:29:14,000 --> 00:29:17,000 изглежда четене и писане от мен 546 00:29:17,000 --> 00:29:19,000 но чете от всички останали. 547 00:29:19,000 --> 00:29:22,000 Оказва се, че това всъщност не е стъпка в правилната посока. 548 00:29:22,000 --> 00:29:25,000 Разлика, отново с интерпретиран език 549 00:29:25,000 --> 00:29:27,000 е, че не стартирате програмата директно. 550 00:29:27,000 --> 00:29:30,000 Можете вместо преводач и предаде кода 551 00:29:30,000 --> 00:29:33,000 , които сте написали, така че да могат да интерпретират ред по ред. 552 00:29:33,000 --> 00:29:36,000 В този случай, преводач или програма, всъщност искате да стартирате 553 00:29:36,000 --> 00:29:38,000 е буквално нарича PHP. 554 00:29:38,000 --> 00:29:41,000 >> Някъде на този твърд диск на уреда има програма 555 00:29:41,000 --> 00:29:45,000 някой друг е написал PHP, или на Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Това, което аз ще направя тук, е, че отивам да стартирате PHP 557 00:29:48,000 --> 00:29:51,000 но го даде като аргумент на командния ред, че съм написал код, 558 00:29:51,000 --> 00:29:54,000 и тогава аз ще намалите и натиснете въведете. 559 00:29:54,000 --> 00:29:58,000 Тя работи програмата ми за мен, горе до долу, от ляво на дясно. 560 00:29:58,000 --> 00:30:01,000 Нека вървим напред и да се отворят леко вариацията на това. 561 00:30:01,000 --> 00:30:05,000 В hello2.php известие, че това също 562 00:30:05,000 --> 00:30:08,000 е най-вече коментари, така че нека се отървем от тези за отвличане на вниманието, 563 00:30:08,000 --> 00:30:13,000 и това, което е видимо различен за този файл? 564 00:30:13,000 --> 00:30:15,000 Налице е тази нова линия, малко по-загадъчен в горната част. 565 00:30:15,000 --> 00:30:20,000 В съответствие 1 #! / Бин / PHP. 566 00:30:20,000 --> 00:30:24,000 Бин е конвенция на Linux и Mac OS за бинарни файлове, 567 00:30:24,000 --> 00:30:27,000 / контейнер означава, че това е папка, съдържаща един куп от двоични файлове 568 00:30:27,000 --> 00:30:29,000 , който е програмиран, една от които е PHP. 569 00:30:29,000 --> 00:30:32,000 В #! е наречен жилище, 570 00:30:32,000 --> 00:30:35,000 който е бърз начин да го казвам и какво означава това 571 00:30:35,000 --> 00:30:40,000 е, че когато стартирате тази програма има намек в началото на файла 572 00:30:40,000 --> 00:30:44,000 , който казва на компютъра какво интерпретатор, който да се използва. 573 00:30:44,000 --> 00:30:47,000 >> Той получава малко досадно, ако трябваше да кажа на вашите потребители и клиенти 574 00:30:47,000 --> 00:30:50,000 "Хей, ние написахме тази програма, наречена hello1.php". 575 00:30:50,000 --> 00:30:54,000 Всичко, което трябва да направите, е завинаги тече PHP и след това името на тази програма. 576 00:30:54,000 --> 00:30:58,000 Честно казано, това просто ще бъде по-хубав да тече hello1.php, 577 00:30:58,000 --> 00:31:00,000 и наистина, може, ако правим следното. 578 00:31:00,000 --> 00:31:05,000 Позволете ми да отида напред и LS-л, и известие в hello2 това е все още само четат пишат 579 00:31:05,000 --> 00:31:10,000 и след това прочетете четат, така че не може все още да направите това, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Но ние въведохме все така накратко последния път, командата коригира. 581 00:31:15,000 --> 00:31:20,000 Ако се случи да коригира A + X, което означава всички плюс изпълнимостта, 582 00:31:20,000 --> 00:31:26,000 и след това hello2.php и тогава отново LS-л забележите, какво се е променило. 583 00:31:26,000 --> 00:31:29,000 , Linux ми показва името на файла в зелено, за да предадат идеята 584 00:31:29,000 --> 00:31:32,000 , че това е изпълним, но по-важното е, че на лявата страна 585 00:31:32,000 --> 00:31:36,000 забележите, че малко представляващи х за изпълним вече е установено. 586 00:31:36,000 --> 00:31:42,000 Това означава, е, че може да работи ./hello2.php както обикновено, 587 00:31:42,000 --> 00:31:45,000 удари влиза, и защото на жилище в началото на файла 588 00:31:45,000 --> 00:31:48,000 това е намек, отново, за Linux, която казва 589 00:31:48,000 --> 00:31:51,000 използвате този преводач, за да стартирате този файл. 590 00:31:51,000 --> 00:31:54,000 Не се притеснявайте за принуждава потребителя да го въведете. 591 00:31:54,000 --> 00:31:57,000 >> И това, което е хубаво, сега е един вид това е без значение за моите клиенти или моите приятели 592 00:31:57,000 --> 00:32:01,000 на какъв език съм написал тази програма, така че да вървим напред с МПС 593 00:32:01,000 --> 00:32:04,000 и преименуване това нещо да hello2, например. 594 00:32:04,000 --> 00:32:07,000 И сега, ако го направя ./hello2 595 00:32:07,000 --> 00:32:10,000 и отдалечаване моята програма продължава да работи. 596 00:32:10,000 --> 00:32:13,000 Тези файлови разширения са човешки Конвенцията, че е необходимо 597 00:32:13,000 --> 00:32:15,000 нещо като звъня и грим, които търсят за тях. 598 00:32:15,000 --> 00:32:18,000 Но за PHP, мога да се обадя тази файлово разширение нещо, което искам. 599 00:32:18,000 --> 00:32:22,000 Да излъже света да мислят, че аз съм наистина добър в Ruby, 600 00:32:22,000 --> 00:32:25,000 и аз да напиша hello2.rb и след това стартира този 601 00:32:25,000 --> 00:32:28,000 и готово, сега аз имам версия Ruby, което е пълна лъжа. 602 00:32:28,000 --> 00:32:30,000 Но файлови разширения са безсмислени 603 00:32:30,000 --> 00:32:35,000 ако файлът е изпълним и този специален намек в началото на файла. 604 00:32:35,000 --> 00:32:38,000 >> Сега, като освен, позволете ми да ви покажа бързо версия 3, 605 00:32:38,000 --> 00:32:40,000 , което е вид полезен трик, за да се знае. 606 00:32:40,000 --> 00:32:45,000 В hello3 аз направих нещо леко грешен 607 00:32:45,000 --> 00:32:47,000 , че ще актуализираме онлайн изходния код. 608 00:32:47,000 --> 00:32:50,000 Във версия 3 се оказва, че на повечето Linux компютри 609 00:32:50,000 --> 00:32:53,000 има една програма, наречена "Околна среда" за околната среда, 610 00:32:53,000 --> 00:32:56,000 и какво можете да направите тук е, ако вие нямате представа къде PHP 611 00:32:56,000 --> 00:33:00,000 е инсталирана на локалния твърд диск, защото наистина може да варира в зависимост от компютъра 612 00:33:00,000 --> 00:33:03,000 че някой използва, "Околна среда" просто казва работи Околна среда, 613 00:33:03,000 --> 00:33:07,000 който е на повечето системи, и да разбера къде PHP е. 614 00:33:07,000 --> 00:33:11,000 Само обща трик, така че не е нужно да се притеснявате за намиране, когато програмата е. 615 00:33:11,000 --> 00:33:14,000 Но ако ти пука, за да разберете къде програмата е и не сте се грижи този момент 616 00:33:14,000 --> 00:33:16,000 можете да използвате коя команда. 617 00:33:16,000 --> 00:33:19,000 >> Позволете ми да намалите и тип, които PHP, 618 00:33:19,000 --> 00:33:23,000 и да забележите, че ми казва, че всъщност в ЮЕсАр бин / / PHP. 619 00:33:23,000 --> 00:33:25,000 Това е вид лъжа. То също е в кофа за боклук. 620 00:33:25,000 --> 00:33:27,000 Това е просто ми показа първия хит. 621 00:33:27,000 --> 00:33:31,000 Ако сте се чудили някога където звъня, звъня, която е в ЮЕсАр / хамбар / ехтя, 622 00:33:31,000 --> 00:33:34,000 които правят ЮЕсАр / хамбар / направи, и това означава, че през цялото това време 623 00:33:34,000 --> 00:33:38,000 бихте могли да въведете ЮЕсАр / хамбар / ехтя влиза да тече звъня, 624 00:33:38,000 --> 00:33:41,000 но това е вид на досаден да направите това, така че някои папки 625 00:33:41,000 --> 00:33:44,000 като ЮЕсАр / хамбар и Бин да се допуснат по подразбиране 626 00:33:44,000 --> 00:33:50,000 така че компютърът знае да погледне в тях за вас. 627 00:33:50,000 --> 00:33:53,000 Всички въпроси, за да супер, супер проста Здравейте програмата на Световната 628 00:33:53,000 --> 00:33:55,000 PHP и след това да я пуснете? 629 00:33:55,000 --> 00:33:59,000 Защото сега ние ще започнем да се въведе по-убедителен синтаксис. 630 00:33:59,000 --> 00:34:01,000 Добре, да го направим. 631 00:34:01,000 --> 00:34:03,000 Тези програми, които сме виждали всъщност всички от тях, преди. 632 00:34:03,000 --> 00:34:07,000 >> Ако се отвори, например, нека да направим beer1.php, 633 00:34:07,000 --> 00:34:09,000 ние няма да мине през няколко версии за това, но това, което направих 634 00:34:09,000 --> 00:34:13,000 бях седна и я изсипа или конвертирани 635 00:34:13,000 --> 00:34:15,000 ми C код на PHP код. 636 00:34:15,000 --> 00:34:18,000 Повечето от началото на файла е коментари тук. 637 00:34:18,000 --> 00:34:20,000 Оказва се, че е една нова функция, ние трябва наричат ​​Readline. 638 00:34:20,000 --> 00:34:23,000 GetString, изземване, от седмица 0 нататък беше CS50 нещо. 639 00:34:23,000 --> 00:34:27,000 PHP идва със своя лесен за употреба функция, наречена Readline 640 00:34:27,000 --> 00:34:30,000 който взема един аргумент, който определя ред 641 00:34:30,000 --> 00:34:33,000 че искате да покажете на потребителя, и какво Readline 642 00:34:33,000 --> 00:34:35,000 се връща, независимо от потребителски видове инча 643 00:34:35,000 --> 00:34:39,000 В този случай, аз съм за обявяване на променлива с име $ N. 644 00:34:39,000 --> 00:34:42,000 Аз съхраняване на връщаната стойност от Readline 645 00:34:42,000 --> 00:34:44,000 след подканване на потребителя с този низ. 646 00:34:44,000 --> 00:34:47,000 Само за да направите резервно копие, всъщност работи това нещо, нека вървим напред 647 00:34:47,000 --> 00:34:50,000 и стартирате PHP beer1.php. 648 00:34:50,000 --> 00:34:53,000 Колко бутилки ще има? Нека направим две този път. 649 00:34:53,000 --> 00:34:55,000 Enter. Това е всичко. 650 00:34:55,000 --> 00:34:59,000 >> Програмата е функционално идентичен с версията C от седмици. 651 00:34:59,000 --> 00:35:01,000 Но синтактично нека да видим какво е различното. 652 00:35:01,000 --> 00:35:05,000 След като получите вътр обявление от страна на потребителя, че Правя проверка за грешки, 653 00:35:05,000 --> 00:35:08,000 и ако N е по-малко от 1 откажа от цигарите и отпечатате 654 00:35:08,000 --> 00:35:11,000 Съжалявам съобщение на потребителя и на изхода с 1. 655 00:35:11,000 --> 00:35:13,000 Това също е малко по-различна. 656 00:35:13,000 --> 00:35:16,000  В С какво ще правим? В C се върнахме 1. 657 00:35:16,000 --> 00:35:20,000 В PHP излезете с 1, което честно казано е мисля, че малко по-интуитивно 658 00:35:20,000 --> 00:35:22,000 защото сте буквално изход от програмата. 659 00:35:22,000 --> 00:35:25,000 Добре, а след това тук досадно песен е идентичен синтактично 660 00:35:25,000 --> 00:35:29,000 с изключение на променливата, така че тук, в съответствие 24-нататъшното 661 00:35:29,000 --> 00:35:31,000 забележите ми линия е почти същото, 662 00:35:31,000 --> 00:35:34,000 но аз имам $ в предната част и н 663 00:35:34,000 --> 00:35:37,000 и това, което също липсва от линия 26, които сме имали в миналото 664 00:35:37,000 --> 00:35:39,000 при обявяване на променлива I? 665 00:35:39,000 --> 00:35:41,000 Не е тип. 666 00:35:41,000 --> 00:35:43,000 В PHP е неправилно да се каже, вътр. 667 00:35:43,000 --> 00:35:45,000 Вие просто не трябва да го направя. 668 00:35:45,000 --> 00:35:48,000 Компютър, преводач PHP е достатъчно умен, за да се реализира 669 00:35:48,000 --> 00:35:51,000 че ако сложиш номер в $ аз ще го третира 670 00:35:51,000 --> 00:35:53,000 като номер за вас. 671 00:35:53,000 --> 00:35:57,000 И тогава тук ние включете $ I, I, I - 1. 672 00:35:57,000 --> 00:36:00,000 Всичко това е една и съща, и после да правим тук "Уау, това е досадно" ФОРМАТ 673 00:36:00,000 --> 00:36:02,000 и след това излезте (0). 674 00:36:02,000 --> 00:36:05,000 >> Отново, храна за вкъщи тук е, че въпреки че започваш да се харчат относително 675 00:36:05,000 --> 00:36:09,000 малко време за PHP, със сигурност в сравнение с това, което направихме на C, 676 00:36:09,000 --> 00:36:12,000 това е почти същото, и така какво ще направим днес и следващата седмица 677 00:36:12,000 --> 00:36:14,000 и след това е съсредоточи наистина на някои от новите идеи. 678 00:36:14,000 --> 00:36:17,000 Само за да се види, че нещо друго се превежда от C, 679 00:36:17,000 --> 00:36:20,000 това е супер проста програма, което направихме в Седмица 1 680 00:36:20,000 --> 00:36:22,000 или 2 кубчета стойност. 681 00:36:22,000 --> 00:36:25,000 Но това, което е интересно в момента за тази програма е, че тя 682 00:36:25,000 --> 00:36:28,000 въвежда понятието потребителски писмено функция, че ние се пише. 683 00:36:28,000 --> 00:36:31,000 Синтаксисът в PHP е почти същото. 684 00:36:31,000 --> 00:36:33,000 Ето програмата ми до върха. 685 00:36:33,000 --> 00:36:35,000 Забележете отново отсъства всяка представа за основната. 686 00:36:35,000 --> 00:36:39,000 Започнете да пишете код и това е, което ще се изпълни от преводача. 687 00:36:39,000 --> 00:36:42,000 Печатам х сега е 2, най-вероятно. 688 00:36:42,000 --> 00:36:44,000 Тогава аз твърдя cubing ... 689 00:36:44,000 --> 00:36:47,000 След това аз наричам функция куб и да премине в $ X 690 00:36:47,000 --> 00:36:50,000 и възлага на връщаната стойност до $ х. 691 00:36:50,000 --> 00:36:53,000 Тогава аз твърдя, че това е нарязана на кубчета, и след това аз казвам това, което се надяваме 692 00:36:53,000 --> 00:36:55,000 ще кажа х сега е осем. 693 00:36:55,000 --> 00:36:59,000 Синтаксисът на функцията в PHP е все така малко по-различен. 694 00:36:59,000 --> 00:37:01,000 Отново липсва, е типът на връщане. 695 00:37:01,000 --> 00:37:05,000 Отново липсва е типът на връщане и също липсва е това, което друг тип? 696 00:37:05,000 --> 00:37:07,000 [Чува студент отговор] 697 00:37:07,000 --> 00:37:10,000 Е, добре, това е добре. Нека се върнем в секунда. 698 00:37:10,000 --> 00:37:12,000 >> Ние не трябва, например, Int тук. 699 00:37:12,000 --> 00:37:15,000 Ние не, например, са INT тук, тъй като отново в PHP 700 00:37:15,000 --> 00:37:18,000 просто не е нужно и не трябва да правиш това, 701 00:37:18,000 --> 00:37:20,000 , а по-скоро има тази нова ключова дума, наречена функция. 702 00:37:20,000 --> 00:37:23,000 В PHP е почти малко по-ясно, защото, когато искате функция 703 00:37:23,000 --> 00:37:26,000 буквално казват функция, можете да го дадете име и след това разделени със запетая 704 00:37:26,000 --> 00:37:28,000 ако някой от своите аргументи. 705 00:37:28,000 --> 00:37:32,000 Не е необходимо да се каже, невалидни или нещо подобно, а след това връщане е един и същ, 706 00:37:32,000 --> 00:37:35,000 $ * $ * $. 707 00:37:35,000 --> 00:37:38,000 Какво е също липсва? Сами изтъкна това тук. 708 00:37:38,000 --> 00:37:43,000 В горната част на файла, напълно отсъства в PHP е прототип. 709 00:37:43,000 --> 00:37:45,000 Това също е по проект. 710 00:37:45,000 --> 00:37:48,000 Езици и преводачи като PHP са по-умни от C някога е бил 711 00:37:48,000 --> 00:37:50,000 в компилатори като звъня. 712 00:37:50,000 --> 00:37:53,000 >> Спомнете си, че звъня, ако не сте го кажа, че куб съществува, 713 00:37:53,000 --> 00:37:56,000 ако не сте го кажа, че ФОРМАТ съществува като с прототип 714 00:37:56,000 --> 00:38:00,000 или с # включват, добре, ще да крещи на вас и дори не съставя кода си. 715 00:38:00,000 --> 00:38:03,000 PHP и по-съвременни езици са много по-умни, когато става дума за това. 716 00:38:03,000 --> 00:38:07,000 Те ще го вземе при себе си, за да прочетете цялата кода си 717 00:38:07,000 --> 00:38:11,000 и после ти крещя, само ако установи, куб никъде. 718 00:38:11,000 --> 00:38:15,000 Това няма значение, ако куб е в долната или в горната или дори в някои отделен файл. 719 00:38:15,000 --> 00:38:18,000 PHP и други подобни езици вече са достатъчно умен, за да гледаме напред 720 00:38:18,000 --> 00:38:26,000 всичко, преди да обявят, че е направил грешка. 721 00:38:26,000 --> 00:38:28,000 Къде ни остава? 722 00:38:28,000 --> 00:38:32,000 >> Нека да направим един последен пример тук, в условия, 723 00:38:32,000 --> 00:38:35,000 и ако отворя conditions2.php предизвестие 724 00:38:35,000 --> 00:38:37,000 синтаксис тук е почти същото. 725 00:38:37,000 --> 00:38:40,000 Аз съм с Readline вместо GetString, но тази линия е същата, както и преди, 726 00:38:40,000 --> 00:38:42,000 "Бих искал цяло число, моля." 727 00:38:42,000 --> 00:38:45,000 След това, ако състоянието, друго, ако и след това друго, 728 00:38:45,000 --> 00:38:48,000 , но функционално тази програма също е идентично с това, което направихме преди няколко седмици, 729 00:38:48,000 --> 00:38:51,000 така че ако аз тичам това нещо, PHP на conditions2, 730 00:38:51,000 --> 00:38:54,000 и аз я давам редица като 23 - 731 00:38:54,000 --> 00:38:57,000 Взех положително число. Ако дам -1 взех отрицателно число. 732 00:38:57,000 --> 00:39:00,000 Ако давам 0 Аз качват 0. 733 00:39:00,000 --> 00:39:02,000 Така че, който се грижи за всичко това? 734 00:39:02,000 --> 00:39:06,000 Е, един от забавен вид упражнения тук 735 00:39:06,000 --> 00:39:10,000 поне за мен е да се върнем и да видим колко бързо мога да прилагане на pset 5, 736 00:39:10,000 --> 00:39:12,000 pset правописни грешки. 737 00:39:12,000 --> 00:39:15,000 Спомнете си, че имаше този файл, наречен speller.c, 738 00:39:15,000 --> 00:39:17,000 и имаше файл, наречен dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Това, което аз съм вид прекара няколко минути и аз преобразува кода на C 740 00:39:20,000 --> 00:39:23,000 код PHP, и ние няма да прекарват много време на правопис 741 00:39:23,000 --> 00:39:26,000 ,, защото просто, като в pset 5 не е наистина необходимо да 742 00:39:26,000 --> 00:39:29,000 прекарват много време на правопис себе си, защото си внимание беше съсредоточено върху речника. 743 00:39:29,000 --> 00:39:32,000 >> Достатъчно е да се каже, че ако четете чрез правопис, 744 00:39:32,000 --> 00:39:35,000 този файл тук, това е почти еквивалентна на кода C 745 00:39:35,000 --> 00:39:37,000 ви дадохме за pset 5. 746 00:39:37,000 --> 00:39:39,000 Аз току-що се добавят около $ на места. 747 00:39:39,000 --> 00:39:43,000 Съм се променил някои имена на функции, ако те не съществуват в PHP. 748 00:39:43,000 --> 00:39:45,000 Има една допълнителна нещо тук, preg_match, 749 00:39:45,000 --> 00:39:48,000 , което е малко по-сложен начин за правене на нещо, но ние ще се върнем, че в крайна сметка. 750 00:39:48,000 --> 00:39:51,000 Но в краткосрочен, правопис е почти идентичен, а ако се вгледате в самото дъно 751 00:39:51,000 --> 00:39:54,000 това, което в крайна сметка се изплюе е това тук, 752 00:39:54,000 --> 00:39:57,000 думи сгрешена, думи в речник, думи в текста. 753 00:39:57,000 --> 00:40:00,000 Добре, така че това, което е интересно сега е следното. 754 00:40:00,000 --> 00:40:05,000 В горната част на файла ми аз съм изисква dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Точно както C # включват PHP има специална функция наречена изисква 756 00:40:09,000 --> 00:40:14,000 че почти едно и също нещо, изисква файл, наречен dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Как мога да отида за прилагане pset 5? 758 00:40:18,000 --> 00:40:21,000 Нека вървим напред и отворете файла тук. 759 00:40:21,000 --> 00:40:24,000 Позволете ми да използвам малко внимание тук. 760 00:40:24,000 --> 00:40:29,000 И позволете ми да създадете нов файл и да започне да се обадите на този dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Нека го кажа в друга папка, така че можем да направим това живеят. 762 00:40:31,000 --> 00:40:33,000 А сега ще увеличите. 763 00:40:33,000 --> 00:40:37,000 Отивам да започна PHP файл с отворена скоба, PHP затворена скоба. 764 00:40:37,000 --> 00:40:40,000 И тогава тук имаше няколко функции, необходими за прилагане на pset 5, 765 00:40:40,000 --> 00:40:42,000 така че нека да започне изпълнението на някои от тези, 766 00:40:42,000 --> 00:40:47,000 така функция проверка, която трябваше да вземе думата като аргумент. 767 00:40:47,000 --> 00:40:49,000 Ние ще направим това и се върна към него в момента. 768 00:40:49,000 --> 00:40:53,000 >> Имаше функция натоварване, което се състоя в това, което като аргумент? 769 00:40:53,000 --> 00:40:56,000 Речник, така че файлът, че аз всъщност исках да се зареди. 770 00:40:56,000 --> 00:41:00,000 Имаше функция размер, които не са взели никакви аргументи 771 00:41:00,000 --> 00:41:04,000 и не е функция, какво беше другото? 772 00:41:04,000 --> 00:41:06,000 Разтоварване, които не са взели никакви аргументи. 773 00:41:06,000 --> 00:41:10,000 Това са четири функции, които ще трябва да се приложи в PHP, 774 00:41:10,000 --> 00:41:13,000 и това, което ще направя, е да отидете напред и да направим това. 775 00:41:13,000 --> 00:41:16,000 Много от вас са използвали хашиш таблицата в pset 5, 776 00:41:16,000 --> 00:41:21,000 така че нека да вървим напред и да се създаде хеш таблицата в PHP. 777 00:41:21,000 --> 00:41:23,000 Готово. 778 00:41:23,000 --> 00:41:25,000 Това ми дава хеш таблица. Е, защо? 779 00:41:25,000 --> 00:41:30,000 Едно, променливата се нарича $ таблицата, само за да апелирам към идеята на хеш таблица. 780 00:41:30,000 --> 00:41:34,000 Квадратни скоби, обаче, припомни, представляват какво? 781 00:41:34,000 --> 00:41:37,000 Масив, но в масиви на PHP не е нужно да бъде числено индексира. 782 00:41:37,000 --> 00:41:41,000 Те могат да бъдат асоциативни масиви, 783 00:41:41,000 --> 00:41:44,000 което означава, че може да има произволни ключове и стойности. 784 00:41:44,000 --> 00:41:49,000 >> Много харесва в pset 5, тези от вас, които хеш реализации маса 785 00:41:49,000 --> 00:41:53,000 най-вероятно добавя думата и след това я поставили в една верига от свързани списъци, 786 00:41:53,000 --> 00:41:56,000 или сте запазили стойността на истинската някъде или нещо в този смисъл. 787 00:41:56,000 --> 00:41:59,000 Вие някак си спомни факта, че думата е там. 788 00:41:59,000 --> 00:42:01,000 За сега, че ще ми бъде хеш таблица, 789 00:42:01,000 --> 00:42:06,000 И така, сега да отида за извършване на проверката функция 790 00:42:06,000 --> 00:42:09,000 Аз просто трябва да погледнем вътре на тази хеш таблица 791 00:42:09,000 --> 00:42:11,000 и да видим, ако думата е там. 792 00:42:11,000 --> 00:42:15,000 Това, което ще направя, е аз ще кажа, ако 793 00:42:15,000 --> 00:42:20,000 нека кажем isset, който е PHP функция, която означава буквално е ключов набор, 794 00:42:20,000 --> 00:42:24,000 така isset ($ таблица [дума], 795 00:42:24,000 --> 00:42:29,000 и ако е така връщане вярно. 796 00:42:29,000 --> 00:42:32,000 Това е всичко. Това е pset 5 в PHP. 797 00:42:32,000 --> 00:42:34,000 Е, честно, добре. 798 00:42:34,000 --> 00:42:37,000 Else връщане фалшиви, така че не е там. 799 00:42:37,000 --> 00:42:39,000 Какво всъщност се случва тук? 800 00:42:39,000 --> 00:42:42,000 Е, ако на маса или хеш таблица тук по-общо 801 00:42:42,000 --> 00:42:46,000 е асоциативен масив, това означава, че можете да индексирате в нея 802 00:42:46,000 --> 00:42:50,000 с една дума като "дума", и вие трябва да получите някаква стойност. 803 00:42:50,000 --> 00:42:52,000 >> Ние сме вид за получаване на една крачка напред от себе си. 804 00:42:52,000 --> 00:42:56,000 Тя ще бъде нещо хубаво, ако действително е било натоварено файла първо, 805 00:42:56,000 --> 00:42:58,000 така че натоварване не е толкова проста, но нека вървим напред и камшик 806 00:42:58,000 --> 00:43:00,000  наистина бързо изпълнение на товара. 807 00:43:00,000 --> 00:43:07,000 Позволете ми да отида напред и да каже, че думите получава файла на речника. 808 00:43:07,000 --> 00:43:10,000 Функция в PHP файл отваря файл 809 00:43:10,000 --> 00:43:12,000 и се връща към набор от всички думи в този файл, 810 00:43:12,000 --> 00:43:14,000 просто ги връчва за вас. 811 00:43:14,000 --> 00:43:16,000 Това беше една голяма болка, не е ли? 812 00:43:16,000 --> 00:43:21,000 Сега foreach, това е нашата нова конструкция, foreach ($ думи като $ дума). 813 00:43:21,000 --> 00:43:25,000 Тази линия ще започне итерации през масив думи 814 00:43:25,000 --> 00:43:30,000 и да поставят на думата променлива всяка дума във файла 815 00:43:30,000 --> 00:43:32,000 от първия до втория към третия до четвърта по целия път 816 00:43:32,000 --> 00:43:35,000 така че не е нужно да правите досадни [I] нотация и др. 817 00:43:35,000 --> 00:43:38,000 И това, което съм просто смяташ да правиш за всяка една от тези думи 818 00:43:38,000 --> 00:43:43,000 се съхранява в моята маса от индексирането в таблицата 819 00:43:43,000 --> 00:43:47,000 и след това да е вярно, защото да се помни, 820 00:43:47,000 --> 00:43:50,000 , че думата е в речника ми, всичко, което наистина трябва да направите 821 00:43:50,000 --> 00:43:55,000 е вид обърнете малко и да кажа тази дума в хеш масата ми е там, вярно. 822 00:43:55,000 --> 00:43:58,000 И ако не е там, аз не трябва изрично да постави фалшива, 823 00:43:58,000 --> 00:44:01,000 в противен случай аз ще трябва да постави фалшива за всички възможни думи във Вселената. 824 00:44:01,000 --> 00:44:05,000 >> Достатъчно е за мен, само за да зададете стойност на индекса 825 00:44:05,000 --> 00:44:09,000 да е истина, ако думата е всъщност в хеш моята маса. 826 00:44:09,000 --> 00:44:12,000 Сега, аз съм рязане на няколко от ъглите тук, че ще размахва ръцете ми за сега, 827 00:44:12,000 --> 00:44:15,000 но сега натоварването функция е направено. 828 00:44:15,000 --> 00:44:18,000 Зареждане на всички думи от файла в масив. 829 00:44:18,000 --> 00:44:21,000 Обхождане на този масив, както и за всяка дума в масива 830 00:44:21,000 --> 00:44:24,000 Го включете в хеш моята маса с 1 ред код. 831 00:44:24,000 --> 00:44:26,000 Това е забавно. Знаеш ли как можем да прилагат размер сега? 832 00:44:26,000 --> 00:44:28,000 Е, размер винаги е доста лесно, справедливост. 833 00:44:28,000 --> 00:44:32,000 Тук можем само да се върнат Брой на масата. 834 00:44:32,000 --> 00:44:34,000 Това е доста лесно, да преброим броя на нещата в таблицата. 835 00:44:34,000 --> 00:44:36,000 Това е всъщност вид не е най-ефективен. 836 00:44:36,000 --> 00:44:39,000 Може би трябва да има променлива наречена размер, така че можем да го направим 837 00:44:39,000 --> 00:44:41,000 за константно време, но това е доста лесно. 838 00:44:41,000 --> 00:44:45,000 О, и след това разтоварване, ако наистина искаме да бъде анален тук 839 00:44:45,000 --> 00:44:47,000 можем да кажем, че това е начина, по който се разтоварят нещо. 840 00:44:47,000 --> 00:44:49,000 Трябва само да зададете променлива, равна на празен масив, 841 00:44:49,000 --> 00:44:51,000 и той се отървава от всичко, което беше там. 842 00:44:51,000 --> 00:44:53,000 Няма нужда да се обаждате безплатно. 843 00:44:53,000 --> 00:44:56,000 >> Отново съм намалят някои ъгли, и аз се извинявам за възлагане проблем набор 5 844 00:44:56,000 --> 00:45:00,000 може би в C, но ако сега отидете напред и да стартирате тази, 845 00:45:00,000 --> 00:45:02,000 Отивам да стартирате версията, която аз написах по-рано 846 00:45:02,000 --> 00:45:05,000 просто така, че не било синтактични грешки. 847 00:45:05,000 --> 00:45:08,000 Нека вървим напред и стартирайте правопис. Използването е същото. 848 00:45:08,000 --> 00:45:12,000 Тук е речник файл, който съдържа само думата Foo. 849 00:45:12,000 --> 00:45:15,000 Тук е текстов файл, който съдържа само брън. 850 00:45:15,000 --> 00:45:19,000 Да проверка на правописа това, така че правопис, като се използва този речник файл на този текстов файл. 851 00:45:19,000 --> 00:45:21,000 Има една сгрешена дума, бар, и готово. 852 00:45:21,000 --> 00:45:23,000 Съставено с pset 5. 853 00:45:23,000 --> 00:45:30,000 Нека вземем 5-минутна почивка тук, и ние ще се върнем и повече на PHP. 854 00:45:30,000 --> 00:45:32,000 Добре, ние сме назад. 855 00:45:32,000 --> 00:45:34,000 Нека ми се мразя за известно време. 856 00:45:34,000 --> 00:45:37,000 Нека сега видим дали това не е положителен 857 00:45:37,000 --> 00:45:39,000 действително прилагане на това нещо в PHP. 858 00:45:39,000 --> 00:45:43,000 Признавам, че 45 секунди за изпълнение. 859 00:45:43,000 --> 00:45:45,000 >> Но нека да вървим напред и да ръководи нещата. 860 00:45:45,000 --> 00:45:49,000 Нека вървим напред и стартирайте версия C 861 00:45:49,000 --> 00:45:52,000 на правописа, и ние ще го изпълним на един от най-големите файлове, 862 00:45:52,000 --> 00:45:54,000 което е Библията на крал Джеймс. 863 00:45:54,000 --> 00:45:57,000 А това тук е да вървим в нашата папка C, 864 00:45:57,000 --> 00:46:01,000 правопис на крал Джеймс на 5-ти. 865 00:46:01,000 --> 00:46:03,000 Много от сгрешените думи. 866 00:46:03,000 --> 00:46:06,000 Добре, така че това е изход, който вероятно има, дори и ако времената са малко по-различно, 867 00:46:06,000 --> 00:46:09,000 ако имаш всичко работи правилно, и така и времето на обща проверка на правописа 868 00:46:09,000 --> 00:46:13,000 Библията на крал Джеймс е .38 секунди, така че доста добре, че прилагането. 869 00:46:13,000 --> 00:46:16,000 Сега ме пусна във версията на PHP, който току-що е написал. 870 00:46:16,000 --> 00:46:18,000 Нека работи правопис на крал Джеймс. 871 00:46:18,000 --> 00:46:21,000 Опа, игнорира тази грешка. Аз съм в грешна директория. 872 00:46:21,000 --> 00:46:24,000 Правопис на крал Джеймс на 5-ти. 873 00:46:46,000 --> 00:46:48,000 Почти е готово. 874 00:46:48,000 --> 00:46:51,000 >> Добре, проницателен наблюдател ще осъзнаят, че е повече от 3 секунди там. 875 00:46:51,000 --> 00:46:54,000 Това е истинското време на работа. 876 00:46:54,000 --> 00:46:58,000 Оказва се, че това отнема време да плюе много текст от 877 00:46:58,000 --> 00:47:00,000 защото на буфериране въпроси, но дълга история кратко, 878 00:47:00,000 --> 00:47:04,000 е 3,15 секунди на машина на времето, CPU време, 879 00:47:04,000 --> 00:47:07,000 в сравнение с това, което беше преди малко? 880 00:47:07,000 --> 00:47:09,000 Подобно на 0,3. 881 00:47:09,000 --> 00:47:11,000 Искам да кажа, че е един порядък по-бавно, така че къде е, че 882 00:47:11,000 --> 00:47:14,000 нелепо забавяне идва? 883 00:47:14,000 --> 00:47:17,000 Е, както е случаят с почти всички дизайнерско решение сме направили 884 00:47:17,000 --> 00:47:21,000 в класа през последните 9 седмици има почти винаги този компромис. 885 00:47:21,000 --> 00:47:24,000 Понякога между пространство, понякога между пространството и времето, 886 00:47:24,000 --> 00:47:27,000 пространство, време и усилия за развитие, а всъщност и тук, въпреки че 887 00:47:27,000 --> 00:47:31,000 спасихме огромен период от време, може би потенциално 10-20-30 часа 888 00:47:31,000 --> 00:47:34,000 на време за разработка, изпълнение на проверката на правописа 889 00:47:34,000 --> 00:47:36,000 чрез разбиване на само за 45 секунди с този език 890 00:47:36,000 --> 00:47:40,000 цената, която плащаме, е, че това е един порядък по-бавно, в резултат, 891 00:47:40,000 --> 00:47:43,000 и това е по принцип случаят с почти всички интерпретиран език, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl или други, по силата на който 893 00:47:46,000 --> 00:47:49,000 ако ти започваш да го стартирате чрез преводач и да го прочетете кода си 894 00:47:49,000 --> 00:47:52,000 ред по ред, отгоре надолу, отляво надясно, 895 00:47:52,000 --> 00:47:55,000 че посредникът ще отнеме известно време на себе си, 896 00:47:55,000 --> 00:47:59,000 и това, че се чувстваш тук в рамките на 3 секунди, за разлика от .3 секунди 897 00:47:59,000 --> 00:48:02,000 е фактът, че това е посредник, който има буквално тълкуване на нашия код 898 00:48:02,000 --> 00:48:05,000 ред по ред, и дай боже, ако сте вътре в една линия 899 00:48:05,000 --> 00:48:08,000 с огромен файл, съдържащ стотици хиляди думи. 900 00:48:08,000 --> 00:48:11,000 >> Това усилие е да добавите и добавете и се добавят и добавете. 901 00:48:11,000 --> 00:48:16,000 За инструмент като това вероятно не е най-добрия език да се използва за прилагане на 902 00:48:16,000 --> 00:48:20,000 проверка на правописа, ако непосредственост е от интерес за потребителите си и да ви. 903 00:48:20,000 --> 00:48:23,000 Но лукс, който в момента е, ако 904 00:48:23,000 --> 00:48:27,000 използват език като PHP или много тълкува езици 905 00:48:27,000 --> 00:48:30,000 в контекста на уеб, за този въпрос, имате полза 906 00:48:30,000 --> 00:48:34,000 че интернет е много по-бавно, отколкото повечето компютри. 907 00:48:34,000 --> 00:48:38,000 Имате GHz CPU в компютъра ви, 2 GHz, може би дори повече тези дни. 908 00:48:38,000 --> 00:48:41,000 Но реалността е, в интернет има високо количество на латентност 909 00:48:41,000 --> 00:48:45,000 като за браузър, за да говори със сървър, въпреки че видяхме миналата седмица 910 00:48:45,000 --> 00:48:47,000 , че това е доста бързо, половин милисекунда, или така, 911 00:48:47,000 --> 00:48:51,000 че твърде добавя, и ако сте изтегляне на неща като изображение 912 00:48:51,000 --> 00:48:54,000 или снимка на Facebook или получаване на незабавни съобщения чрез Facebook бърборене, 913 00:48:54,000 --> 00:48:57,000 Gchat или нещо подобно, всички тези двупосочен пъти 914 00:48:57,000 --> 00:49:00,000 между браузъра и началото на сървъра, за да добавите, 915 00:49:00,000 --> 00:49:03,000 , което го прави особен избор на език в много случаи 916 00:49:03,000 --> 00:49:07,000 не всичко, което е приложимо, така че сте добре с малко по-бавен език 917 00:49:07,000 --> 00:49:10,000 като PHP, Python или Ruby 918 00:49:10,000 --> 00:49:13,000 , но за които има огромни квит за вас и вашите колеги 919 00:49:13,000 --> 00:49:17,000 и приятелите си, защото можете да се изпълнят нещата, така, така много по-бързо. 920 00:49:17,000 --> 00:49:20,000 И освен това, имате много по-малък риск от някои дупки в сигурността. 921 00:49:20,000 --> 00:49:22,000 Няма никакви указатели в PHP. 922 00:49:22,000 --> 00:49:25,000 Няма по Seg грешки, които лесно можете да индуцират 923 00:49:25,000 --> 00:49:27,000 по същия начин, бихте могли C. 924 00:49:27,000 --> 00:49:29,000 С C сте супер близо до хардуера. 925 00:49:29,000 --> 00:49:33,000 С PHP и други подобни езици сте нещо на по-високо ниво, така да се каже, 926 00:49:33,000 --> 00:49:37,000 с много отбрана между вас и какво всъщност се случва 927 00:49:37,000 --> 00:49:39,000 вътрешността на машината, и това е просто компромис. 928 00:49:39,000 --> 00:49:42,000 >> Ние сме стигнали до точката, като тези по-съвременни, високо ниво езици 929 00:49:42,000 --> 00:49:47,000 като PHP, защото от уроците, научени в езици като PHP C. 930 00:49:47,000 --> 00:49:50,000 Но ако вие не разбирате какво става под капака цялото това време 931 00:49:50,000 --> 00:49:53,000 вие със сигурност не могат да вземат правилните решения, 932 00:49:53,000 --> 00:49:56,000 и разбира се, когато става въпрос за работа на едно място, като Facebook или Google 933 00:49:56,000 --> 00:49:59,000 или някое от тези места, които все повече се играе с големи данни определя 934 00:49:59,000 --> 00:50:01,000 дори ако се върнем и да premed и работят с някои MD 935 00:50:01,000 --> 00:50:04,000 на някои големи данни, с участието на пациенти и лекари 936 00:50:04,000 --> 00:50:08,000 и като използвате правилните инструменти е изключително завладяваща 937 00:50:08,000 --> 00:50:11,000 анализ на някои данни, защото в противен случай може да отнеме секунди, 938 00:50:11,000 --> 00:50:14,000 или може буквално да отнеме часове. 939 00:50:14,000 --> 00:50:17,000 Това е само един пример, а не да ви попречи с колко повече усилия 940 00:50:17,000 --> 00:50:21,000 това е в C, но да ви помогнат да оцените, че когато се изпълни нещо в C 941 00:50:21,000 --> 00:50:24,000 наистина разбирате, или на теория, наистина разбират 942 00:50:24,000 --> 00:50:28,000 как всичко е или трябва да се работи, а вие имате почти пълен контрол 943 00:50:28,000 --> 00:50:31,000 над това, което се случва под капака, както и с тези по-високи езици ниво 944 00:50:31,000 --> 00:50:34,000 ще трябва да се откаже от по-голям контрол на хората, които са ги измислили 945 00:50:34,000 --> 00:50:37,000 и подлежат на техните дизайнерски решения от твоя. 946 00:50:37,000 --> 00:50:41,000 Но ако ние приемаме за даденост, че изпълнението 947 00:50:41,000 --> 00:50:44,000 не е чак толкова важно в мрежата, защото на тези и други въпроси, 948 00:50:44,000 --> 00:50:47,000 само скорости на мрежата са малко по-бавно от CPU скорост, така или иначе, 949 00:50:47,000 --> 00:50:50,000 за да можем да някак си позволят да използват малко по-бавен език 950 00:50:50,000 --> 00:50:55,000 ако квит, можем да развием нещата 10 пъти по-бързо или дори повече. 951 00:50:55,000 --> 00:50:57,000 >> Нека да видим как можем да започнете да използвате това. 952 00:50:57,000 --> 00:51:00,000 Нека отида в папка 953 00:51:00,000 --> 00:51:03,000 сред примери днес, наречен frosh.ims, 954 00:51:03,000 --> 00:51:06,000 и това е всъщност лично мотивирани от факта, че първото нещо, което 955 00:51:06,000 --> 00:51:10,000 Писах за уеб преди години, след като CS50 и CS51 956 00:51:10,000 --> 00:51:14,000 е уебсайт за Frosh УИ програма, първокурсници интрамурални спорт, 957 00:51:14,000 --> 00:51:16,000 които в онова време това беше достатъчно години, че по време 958 00:51:16,000 --> 00:51:19,000 не е имало сайт за програмата, въпреки че е имало уеб 959 00:51:19,000 --> 00:51:22,000 и вместо това имаше Проктър Уигълзуърт, чрез който ако искаш 960 00:51:22,000 --> 00:51:26,000 да се регистрирате за волейбол футбол или каквото и да попълните парче хартия. 961 00:51:26,000 --> 00:51:28,000 Може би след това пеша през двора. 962 00:51:28,000 --> 00:51:31,000 Може би след това почука на вратата им и пързалка в тяхната врата или ръката на Проктър 963 00:51:31,000 --> 00:51:34,000 лист хартия с вашето име върху него, независимо дали са или не искаш да бъдеш капитан на отбор, 964 00:51:34,000 --> 00:51:37,000 какво спорта, който исках да направя, и какво общежитието. 965 00:51:37,000 --> 00:51:39,000 Това е вид училище стария начин на правене на нещата, и това е основен 966 00:51:39,000 --> 00:51:41,000 възможност за автоматизиране на много от този процес. 967 00:51:41,000 --> 00:51:43,000 Просто отидете на сайта. Напишете нещо инча 968 00:51:43,000 --> 00:51:46,000 Можете да получите потвърждение по електронната поща, и бум, сте готови. 969 00:51:46,000 --> 00:51:49,000 >> Това беше най-първото нещо, което направих, макар и в един език, наречен Pearl 970 00:51:49,000 --> 00:51:52,000 , но това е сравнително лесно да се направи в PHP, и това е нещо като представител 971 00:51:52,000 --> 00:51:55,000 от проблемите можете да започнете решаване, когато можете да изразите себе си 972 00:51:55,000 --> 00:51:58,000 програмно и не трябва да се разчита на неща като Google Сайтове 973 00:51:58,000 --> 00:52:01,000 или Excel или инструменти, които се раздават за вас. 974 00:52:01,000 --> 00:52:03,000 Вие сега имате възможност да правите неща като това. 975 00:52:03,000 --> 00:52:06,000 Това е супер грозна версия на формуляр, 976 00:52:06,000 --> 00:52:09,000 но нека просто да го използвате за началото на разговора, при която това е 977 00:52:09,000 --> 00:52:12,000 грубо казано форма приличаше преди години за нас 978 00:52:12,000 --> 00:52:14,000 да се даде възможност на хората в Мрежата, за да се регистрирате за Frosh УИ. 979 00:52:14,000 --> 00:52:18,000 Потърсихме за име, кутийката, или не искат да бъде капитан, 980 00:52:18,000 --> 00:52:21,000 мъж или жена, а след това какво общежитието са били в 981 00:52:21,000 --> 00:52:23,000 и след това те ще представят тази форма. 982 00:52:23,000 --> 00:52:27,000 Нека първо да погледнем под капака на HTML, която представлява тази страница. 983 00:52:27,000 --> 00:52:31,000 Нека отида в froshims0, 984 00:52:31,000 --> 00:52:35,000 и като настрана, за pset 7 съм приема за даденост 985 00:52:35,000 --> 00:52:37,000 директории и папки, които Слагам нещата инча 986 00:52:37,000 --> 00:52:40,000 Ние ще ви преведе през къде точно неща трябва да отиде в уреда, 987 00:52:40,000 --> 00:52:43,000 момичета команди трябва да работи, така че не се тревожи за всички 988 00:52:43,000 --> 00:52:46,000 глупави подробности синхронизиране от самото начало тук. 989 00:52:46,000 --> 00:52:49,000 >> Добре, ето froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Нека превъртете надолу и това, което тук е любопитно, 991 00:52:52,000 --> 00:52:56,000 това е PHP файл, но това, което е вътре в него, ясно? 992 00:52:56,000 --> 00:52:59,000 Това е много на HTML, а всъщност, PHP произход 993 00:52:59,000 --> 00:53:02,000 наистина са за това, че уеб-ориентиран език. 994 00:53:02,000 --> 00:53:04,000 Миг преди да го използва за изпълнение на бира например, 995 00:53:04,000 --> 00:53:07,000 условията, например, здравей например, и това е добре. 996 00:53:07,000 --> 00:53:11,000 Можете да използвате PHP като скриптов език 997 00:53:11,000 --> 00:53:15,000 където скрипт е наистина само номенклатурата бърз и мръсен програма 998 00:53:15,000 --> 00:53:19,000 или нещо, което ти пиша в сценарист или по-общо интерпретиран език. 999 00:53:19,000 --> 00:53:22,000 PHP е супер полезно за това, защото съм виждал колко бързо 1000 00:53:22,000 --> 00:53:24,000 относително можем да привличам програми в PHP. 1001 00:53:24,000 --> 00:53:27,000 Но това е наистина предназначен да се използва за уеб, 1002 00:53:27,000 --> 00:53:31,000 и са предназначени за уеб в смисъл, че забележите тук в началото на файла 1003 00:53:31,000 --> 00:53:34,000 Аз се започва с 00:53:38,000 Тогава имам куп безполезни коментари, отпуснати, но след това затворите PHP режим. 1005 00:53:38,000 --> 00:53:41,000 Но след това пуснете в HTML режим. 1006 00:53:41,000 --> 00:53:45,000 >> Това, което е интересно за PHP, въпреки че файлът завършва инча PHP 1007 00:53:45,000 --> 00:53:48,000 цел да бъдат смесени с HTML, 1008 00:53:48,000 --> 00:53:50,000 някакъв код на PHP, някои HTML. 1009 00:53:50,000 --> 00:53:53,000 И ние рано или късно ще видите, че можем да започнем да дразни тези, които освен 1010 00:53:53,000 --> 00:53:56,000 и да ни HTML отделен изцяло от нашата PHP 1011 00:53:56,000 --> 00:53:59,000 но произхода на PHP наистина да ви дам тази гъвкавост, 1012 00:53:59,000 --> 00:54:02,000 че, ако искате някои HTML просто го пиша, и това ще бъде 1013 00:54:02,000 --> 00:54:04,000 плюе по същия начин към браузъра. 1014 00:54:04,000 --> 00:54:07,000 Но ако имате нужда от програмиране техника, 1015 00:54:07,000 --> 00:54:12,000 някои програмен код, можете да го в абсолютно същата файл, тъй като ние скоро ще видите. 1016 00:54:12,000 --> 00:54:14,000 Тук е моят HTML. 1017 00:54:14,000 --> 00:54:16,000 Имам заглавие на това Frosh УИ. 1018 00:54:16,000 --> 00:54:20,000 Имам тялото маркер, който има някакъв CSS върху него до центъра на всичко, което е в средата, 1019 00:54:20,000 --> 00:54:23,000 и след това тук имам форма, която очевидно ще бъде представен 1020 00:54:23,000 --> 00:54:27,000 нов файл, наречен register0.php, така че ние ще се види, че в един момент. 1021 00:54:27,000 --> 00:54:31,000 Той използва метод, наречен пост, който ние ще се върнем, както 1022 00:54:31,000 --> 00:54:34,000 Тогава имам някаква форма входа, един наименува, чийто тип е текст, 1023 00:54:34,000 --> 00:54:37,000 човек, чието име е капитан, чийто тип е кутийката, 1024 00:54:37,000 --> 00:54:40,000 и това, ние не са го виждали и преди, но тя прави точно това, което казва. 1025 00:54:40,000 --> 00:54:42,000 Вие ще получите квадратчето вместо текстово поле. 1026 00:54:42,000 --> 00:54:46,000 Тук имате радио бутон, който е един от тези кръгли бутони 1027 00:54:46,000 --> 00:54:48,000 че можете да изберете този или онзи. 1028 00:54:48,000 --> 00:54:52,000 >> Забележете, това е умишлено, която дадох на двете радиобутони името на равенството. 1029 00:54:52,000 --> 00:54:55,000 Ето как можете да получите взаимно изключване, при която трябва да кликнете 1030 00:54:55,000 --> 00:54:58,000 или този или онзи, и като щракнете върху друга 1031 00:54:58,000 --> 00:55:01,000 тя unchecks друга, така че трябва да им се даде едно и също име 1032 00:55:01,000 --> 00:55:03,000 ако искате те да бъдат взаимно изключващи се, като че. 1033 00:55:03,000 --> 00:55:07,000 И тогава за общежитието, не мисля, че съм виждал това все още, но това е изберете меню, падащото меню. 1034 00:55:07,000 --> 00:55:09,000 Маркер за това е, изберете. 1035 00:55:09,000 --> 00:55:11,000 След това дайте на падащото меню име, 1036 00:55:11,000 --> 00:55:13,000 и след това имате цял куп от тези опции. 1037 00:55:13,000 --> 00:55:16,000 Първият от тях, само за естетика, е празен низ. 1038 00:55:16,000 --> 00:55:20,000 Аз просто исках падащото да бъде празно по подразбиране, 1039 00:55:20,000 --> 00:55:22,000 и тогава там е Apley, Canaday, Грейс, и така нататък. 1040 00:55:22,000 --> 00:55:24,000 И забележи, че тук с дихотомията. 1041 00:55:24,000 --> 00:55:27,000 Опция в падащото има стойност, 1042 00:55:27,000 --> 00:55:30,000 , но след това има човека приятелското име, което в този пример 1043 00:55:30,000 --> 00:55:33,000 е идентичен, но ако наистина е искал да бъде анален бихме могли да имаме 1044 00:55:33,000 --> 00:55:36,000 стойността на този спад да бъде само по-кратка версия, 1045 00:55:36,000 --> 00:55:39,000 Сиви, но ние наистина може да се каже, Грейс Хол, че човек вижда действително, 1046 00:55:39,000 --> 00:55:43,000 но това не е толкова интересен, така че аз продължих да го прости и ги прави идентични. 1047 00:55:43,000 --> 00:55:46,000 После надолу към дъното имаме бутона Submit 1048 00:55:46,000 --> 00:55:49,000 , което сме виждали преди, но забележите, аз току-що го е дал различна дума. 1049 00:55:49,000 --> 00:55:53,000 Вместо CS50 търсене дадох етикета "Регистър". 1050 00:55:53,000 --> 00:55:56,000 >> Крайният резултат е тази страница тук, и отново, 1051 00:55:56,000 --> 00:56:00,000 къде се подава? 1052 00:56:00,000 --> 00:56:04,000 То се представя някой файл, стойността на действие атрибут, 1053 00:56:04,000 --> 00:56:07,000 което е register0.php. 1054 00:56:07,000 --> 00:56:09,000 Нека да видим какво всъщност се случва тук. 1055 00:56:09,000 --> 00:56:13,000 Нека вървим напред и да попълните тази форма, да речем Давид, 1056 00:56:13,000 --> 00:56:16,000 мъжки, Матюс, а след това аз ще кажа регистрирай. 1057 00:56:16,000 --> 00:56:18,000 Нека ме отдалечаване и кликнете регистрирайте. 1058 00:56:18,000 --> 00:56:22,000 Добре, така че вид безполезна, но нека видим какво всъщност се случва. 1059 00:56:22,000 --> 00:56:26,000 Обърнете внимание, че URL е променена, за да register0.php. 1060 00:56:26,000 --> 00:56:34,000 Какво е любопитно отсъства от URL, макар че, въпреки че сме изпратили форма? 1061 00:56:34,000 --> 00:56:37,000 [Чува студент отговор] 1062 00:56:37,000 --> 00:56:39,000 Добре, това е само Chrome е лесен тези дни. 1063 00:56:39,000 --> 00:56:42,000 Това всъщност е там. Те просто го скрие, за да спестите място. 1064 00:56:42,000 --> 00:56:44,000 Но добра мисъл, добра мисъл. 1065 00:56:44,000 --> 00:56:46,000 Към другия край на URL, все пак, това, което липсва? Да. 1066 00:56:46,000 --> 00:56:48,000 [Student] заявка низ. 1067 00:56:48,000 --> 00:56:51,000 Заявка низ, припомнят от нашите прости примери за търсене на Google. 1068 00:56:51,000 --> 00:56:54,000 Веднага след като щракнете върху бутона URL 1069 00:56:54,000 --> 00:57:00,000 ме заведе в Google, но тогава имаше? = компютърни науки или каквото и да бяха написали инча 1070 00:57:00,000 --> 00:57:04,000 Това е така, защото ние използвахме метод GET с търсене например. 1071 00:57:04,000 --> 00:57:06,000 >> Този път ние използваме какъв метод вместо? 1072 00:57:06,000 --> 00:57:10,000 Пост, и един от непосредствените различия 1073 00:57:10,000 --> 00:57:14,000 между получите и след този пост не поставя въвеждане на потребителя в URL. 1074 00:57:14,000 --> 00:57:16,000 Тя го крие. Той все още я изпраща. 1075 00:57:16,000 --> 00:57:19,000 В действителност, това, което ние виждаме в браузъра тук, тъй като ние ще се разкрие в момента 1076 00:57:19,000 --> 00:57:22,000 от гледа register0, аз просто виждам съдържанието 1077 00:57:22,000 --> 00:57:25,000 на масива, които бяха представени от браузъра към сървъра. 1078 00:57:25,000 --> 00:57:29,000 Но URL не?, Не всички ключови думи 1079 00:57:29,000 --> 00:57:31,000 или стойностите в него и защо е това? 1080 00:57:31,000 --> 00:57:35,000 Е, по пощата ви позволява да се предостави данни от формата към сървъра, 1081 00:57:35,000 --> 00:57:38,000 но това не я поставя в URL, така че какъв вид информация е след 1082 00:57:38,000 --> 00:57:41,000 особено подходяща за може би когато си иска от потребителя да 1083 00:57:41,000 --> 00:57:44,000 тип на входа форма? 1084 00:57:44,000 --> 00:57:48,000 Нещо като парола, нещо като какво друго? 1085 00:57:48,000 --> 00:57:50,000 Номера на кредитни карти. 1086 00:57:50,000 --> 00:57:53,000 Всичко, което е леко чувствителна вероятно не искате завършва в URL 1087 00:57:53,000 --> 00:57:56,000 дори и само заради това означава, съквартирантката си или член на семейството може просто трол чрез 1088 00:57:56,000 --> 00:57:59,000 историята на интернет и след това буквално видите вашите пароли, 1089 00:57:59,000 --> 00:58:02,000 буквално видите номера на кредитни карти, тъй като повечето браузъри 1090 00:58:02,000 --> 00:58:05,000 помни в историята, каквото URL адреси сте били в 1091 00:58:05,000 --> 00:58:09,000 ако е така само защото това би било лоша идея. 1092 00:58:09,000 --> 00:58:11,000 Използване на публикувайте своите крие тази подробност от потребителя. 1093 00:58:11,000 --> 00:58:14,000 >> Също така, как да качите снимка на Facebook? 1094 00:58:14,000 --> 00:58:17,000 Е, само две механизми, които наистина може да се използват, 1095 00:58:17,000 --> 00:58:21,000 въпреки че има няколко други по-тайнствена, е да се получи и публикувайте. 1096 00:58:21,000 --> 00:58:26,000 Как е възможно да качите снимка чрез URL? 1097 00:58:26,000 --> 00:58:28,000 Всъщност можете да го направя. 1098 00:58:28,000 --> 00:58:30,000 Можете да вземете JPEG или растерна графика или GIF и можете да го представлява в шестнадесетичен 1099 00:58:30,000 --> 00:58:32,000 или нещо, което се нарича база 64. 1100 00:58:32,000 --> 00:58:35,000 Вместо това на база 16 използвате база 64, който по същество прилича 1101 00:58:35,000 --> 00:58:38,000 ASCII символи, и всъщност можете да качите снимка чрез URL 1102 00:58:38,000 --> 00:58:41,000 след въпросителния знак, но като цяло има ограничения на размера. 1103 00:58:41,000 --> 00:58:44,000 Повечето браузъри принуди URL адреси, за да бъде не повече от 1000 знака, 1104 00:58:44,000 --> 00:58:47,000 може би 2000 символи или други подобни, така че не може да качите 1105 00:58:47,000 --> 00:58:50,000 10 MB Facebook снимка. 1106 00:58:50,000 --> 00:58:54,000 , Че използвате мнение, както и, така че за сега се поставя на параметрите в URL 1107 00:58:54,000 --> 00:58:57,000 , което е хубаво и полезно понякога, но за нищо чувствителна или големи 1108 00:58:57,000 --> 00:58:59,000 пост е начин да отида. 1109 00:58:59,000 --> 00:59:02,000 Какво е register0 всъщност правиш тук? 1110 00:59:02,000 --> 00:59:05,000 Е, ако отворя register0 Забележете, че това е супер проста страница, 1111 00:59:05,000 --> 00:59:09,000 но това е доказателство за факта, че мога да си сътрудничат смесват, за добро или за лошо, 1112 00:59:09,000 --> 00:59:12,000 HTML с PHP. 1113 00:59:12,000 --> 00:59:15,000 Целият този файл, с изключение за коментари на върха, HTML 1114 00:59:15,000 --> 00:59:19,000 с изключение на този човек тук. 1115 00:59:19,000 --> 00:59:22,000 >> Забележете, в средата на моя PHP код, 1116 00:59:22,000 --> 00:59:26,000 в средата на моя HTML, имам нещо временно 1117 00:59:26,000 --> 00:59:28,000 вписва PHP режим. 1118 00:59:28,000 --> 00:59:31,000 Обаждам специална функция наречена печат R. 1119 00:59:31,000 --> 00:59:34,000 Това означава, отпечатате рекурсивен, и това, което той прави, е рекурсивно отпечатва 1120 00:59:34,000 --> 00:59:38,000 променлива, която го предаде, точка и запетая, напускането PHP режим. 1121 00:59:38,000 --> 00:59:40,000 И предварително таг ви дава предварително форматиран текст, 1122 00:59:40,000 --> 00:59:43,000 моно място за текст, така че всяко пространство, което всъщност го види. 1123 00:59:43,000 --> 00:59:46,000 Няма да изчезне. Какво е пост? 1124 00:59:46,000 --> 00:59:48,000 Е, това, което е интересно и завладяващо за PHP 1125 00:59:48,000 --> 00:59:52,000 е, че всеки път, когато подадат формуляр използвате получите или да публикувате 1126 00:59:52,000 --> 00:59:56,000 всичко, което е представено от браузъра 1127 00:59:56,000 --> 01:00:00,000 PHP се разбира какви са тези ключови двойки стойност, 1128 01:00:00,000 --> 01:00:02,000 цифри, ако има еднакви знаци, цифри, ако има въпросителен знак. 1129 01:00:02,000 --> 01:00:07,000 Той прави всичко на упорита работа за вас, и след това ще Ви ръцете асоциативен масив 1130 01:00:07,000 --> 01:00:10,000 съдържащ всичко, което потребителят написали във формата. 1131 01:00:10,000 --> 01:00:12,000 Е, кои области е тази форма? 1132 01:00:12,000 --> 01:00:14,000 >> Тя има четири полета. 1133 01:00:14,000 --> 01:00:16,000 Едно текстово поле наименува. 1134 01:00:16,000 --> 01:00:18,000 Един от тях е кутийката, наречена капитан. 1135 01:00:18,000 --> 01:00:22,000 Една от тях беше радио бутон, наречен пол, 1136 01:00:22,000 --> 01:00:24,000 и една беше падащото меню, наречено общежитието, 1137 01:00:24,000 --> 01:00:27,000 така да забележите, когато печатам рекурсивно 1138 01:00:27,000 --> 01:00:29,000 съдържанието на тази специална променлива. 1139 01:00:29,000 --> 01:00:34,000 Това е специална глобална променлива, наречена буквално $ _POST, във всички капачки. 1140 01:00:34,000 --> 01:00:39,000 Това е специална глобална променлива, че PHP просто създава за Вас 1141 01:00:39,000 --> 01:00:42,000 и ръцете на вас, така че можете да получите достъп до всичко 1142 01:00:42,000 --> 01:00:45,000 че е подадено чрез форма от потребителя. 1143 01:00:45,000 --> 01:00:48,000 И като се обадите на печат R върху него не би направил това в нормалното прилагане. 1144 01:00:48,000 --> 01:00:50,000 Правим това, за да се види вътрешността на тази променлива, 1145 01:00:50,000 --> 01:00:53,000 и това, което е вътре в него, добре, 4 ключа, 1146 01:00:53,000 --> 01:00:56,000 4 HTTP параметри, така да се каже, 1147 01:00:56,000 --> 01:00:59,000 име, капитан, пол, общежитието, и тогава стойностите на потребителя 1148 01:00:59,000 --> 01:01:01,000 написали с едно изключение. 1149 01:01:01,000 --> 01:01:03,000 Тип D-A-V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Отметка в квадратчето, въпреки че, за мъж, който очевидно представи стойност 1151 01:01:05,000 --> 01:01:07,000 просто m да бъде кратък. 1152 01:01:07,000 --> 01:01:10,000 >> Когато съм избрал Матюс, това е стойността, която има избран, 1153 01:01:10,000 --> 01:01:12,000 и това е малко глупаво, но това е конвенция. 1154 01:01:12,000 --> 01:01:17,000 Когато отметка в квадратчето, стойността на на "на", се представят за отметка. 1155 01:01:17,000 --> 01:01:21,000 Ако не бях го проверява, няма никаква стойност би била изпратена каквато. 1156 01:01:21,000 --> 01:01:26,000 Това е просто ни дава поглед в това, което е вътре в тази специална глобална променлива, 1157 01:01:26,000 --> 01:01:29,000 и това е толкова специален, че това се нарича супер глобална променлива. 1158 01:01:29,000 --> 01:01:33,000 Той съществува навсякъде в кода си, така че всъщност можете да получите достъп до него. 1159 01:01:33,000 --> 01:01:36,000 Това не е толкова завладяващ, така че нека действително да използват супер глобален 1160 01:01:36,000 --> 01:01:38,000 и действително се опитват да се регистрирате на някой. 1161 01:01:38,000 --> 01:01:41,000 В froshims1 Отивам да се направи една промяна. 1162 01:01:41,000 --> 01:01:44,000 Аз промяна на действие да register1.php, 1163 01:01:44,000 --> 01:01:46,000 и аз правя нещо друго. 1164 01:01:46,000 --> 01:01:48,000 Бях малко смутен от качеството на уеб страницата си там. 1165 01:01:48,000 --> 01:01:52,000 Това е доста отвратително, честно казано, така че се оказва 1166 01:01:52,000 --> 01:01:56,000 , които можете да използвате много лесно в мрежата 1167 01:01:56,000 --> 01:01:59,000 други хора JavaScript код, други хора CSS 1168 01:01:59,000 --> 01:02:02,000 че съм писал и отворени източници и се предоставят като библиотека, 1169 01:02:02,000 --> 01:02:06,000 така да се каже, например, тук аз съм с помощта на свободно достъпна библиотека, 1170 01:02:06,000 --> 01:02:08,000 куп код, че някой друг е написал. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter се случи да пиша този код, и тя се нарича Bootstrap библиотека, 1172 01:02:11,000 --> 01:02:15,000 и това е просто един куп стилове CSS, куп CSS файлове 1173 01:02:15,000 --> 01:02:19,000 , че някой друг е написал и измисли как да получи всичко хубаво и красиво 1174 01:02:19,000 --> 01:02:22,000 така, че хора като нас могат да се тревожат по-малко за естетика и да се фокусира много повече 1175 01:02:22,000 --> 01:02:24,000 на логиката и реалното програмиране. 1176 01:02:24,000 --> 01:02:30,000 Като го свързва с този маркер, който е същия маркер използва помнете за styles3.css-рано, 1177 01:02:30,000 --> 01:02:34,000 Аз сега имам достъп до файл, наречен bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Мин просто означава, че те го minified и те се отърва от цялото празно пространство и т.н. 1179 01:02:37,000 --> 01:02:40,000 само за да се уверете, че те не са ме изпраща повече байтове, отколкото всъщност трябва. 1180 01:02:40,000 --> 01:02:45,000 Но там е цял куп CSS, така че ако сега се отвори версия 1 на Frosh УИ 1181 01:02:45,000 --> 01:02:49,000 забележите, че досието ми определено е по-хубава. 1182 01:02:49,000 --> 01:02:54,000 Сега е все още само черно и бяло, но забележите, че само с помощта на стила си лист 1183 01:02:54,000 --> 01:02:58,000 и използването на определени функции от него върху формата ми не е невероятно, 1184 01:02:58,000 --> 01:03:01,000 но това определено е чист, отколкото е било преди, и проекторът не го прави справедливост. 1185 01:03:01,000 --> 01:03:05,000 Има малки сиви линии около бутоните и около текстовото поле точно тук, 1186 01:03:05,000 --> 01:03:07,000 но това определено е по-чист, отколкото е било преди. 1187 01:03:07,000 --> 01:03:09,000 >> Сега, честно, аз се наложи да си сменя маркиране малко. 1188 01:03:09,000 --> 01:03:12,000 Това е версия 1, и да забележи, че съм използвал няколко нови етикети, 1189 01:03:12,000 --> 01:03:17,000 и честно казано, нямах никаква представа как да направите това, докато не прочетох документацията 1190 01:03:17,000 --> 01:03:20,000 Twitter Bootstrap библиотека, и те ми казаха, ако искате да използвате нашата библиотека 1191 01:03:20,000 --> 01:03:23,000 използвайте fieldset елемент във вашата форма, 1192 01:03:23,000 --> 01:03:27,000 постави думата, която искате да покажете до вътрешността на областта етикет маркер, 1193 01:03:27,000 --> 01:03:30,000 след това даде своя принос име, точно както преди, 1194 01:03:30,000 --> 01:03:34,000 и след това за кутийката, не само го увийте в етикета елемент, 1195 01:03:34,000 --> 01:03:36,000 използвате нещо, наречено клас, така че не сме виждали това и преди, 1196 01:03:36,000 --> 01:03:39,000 но вие ще видите това в един от шорти pset 7. 1197 01:03:39,000 --> 01:03:43,000 Клас в CSS ви позволява да направите нещо много подобно на ID, 1198 01:03:43,000 --> 01:03:46,000 но преди, когато имахме ID със символа # 1199 01:03:46,000 --> 01:03:48,000 това беше за един и само един елемент. 1200 01:03:48,000 --> 01:03:51,000 Това, което е хубаво за един клас е, че множество елементи могат да имат същия клас 1201 01:03:51,000 --> 01:03:54,000 или едно и също нещо CSS приложени към него. 1202 01:03:54,000 --> 01:03:57,000 >> Но отново, повече на тези в краткосрочен, и останалата част на този просто копирайте и поставете 1203 01:03:57,000 --> 01:04:00,000 от тяхната документация, в която сте добавили етикет тук и там. 1204 01:04:00,000 --> 01:04:03,000 И в крайна сметка, защото аз бях включен връзката маркер в горната част, 1205 01:04:03,000 --> 01:04:06,000 всичко изглежда хубава автоматично 1206 01:04:06,000 --> 01:04:10,000 , като просто маркират страницата ми по начин, който 1207 01:04:10,000 --> 01:04:12,000 Twitter се очаква, и има толкова много различни начини 1208 01:04:12,000 --> 01:04:14,000 прави това, и това наистина е много подходящо. 1209 01:04:14,000 --> 01:04:17,000 В този момент от семестъра, както ще видите в спец. pset 7, 1210 01:04:17,000 --> 01:04:20,000 Googling, четене на библиотеките, като се използват други хора CSS 1211 01:04:20,000 --> 01:04:23,000 и JavaScript за решаване на допълнителни проблеми 1212 01:04:23,000 --> 01:04:26,000 към проблема себе си със сигурност насърчават и начина, по който 1213 01:04:26,000 --> 01:04:29,000 Мрежата е изградена тези дни, като стои на раменете на другите хора 1214 01:04:29,000 --> 01:04:32,000 така че наистина може да се съсредоточи върху нови и интересни проблеми. 1215 01:04:32,000 --> 01:04:34,000 Но нека сега се съсредоточи върху, отново, логиката. 1216 01:04:34,000 --> 01:04:38,000 >> Това е един бърз обход на естетиката, само за да ви покаже посоката, в която можете да отидете. 1217 01:04:38,000 --> 01:04:40,000 Отивам да се върне към най-грозните един за сега, само защото 1218 01:04:40,000 --> 01:04:44,000 не е отвличане на вниманието с неща, Twitter, и нека вървим напред и да се отворят 1219 01:04:44,000 --> 01:04:51,000 на froshims2, което, отново, се различава само в действие, register2.php 1220 01:04:51,000 --> 01:04:55,000 и нека да погледнем какъв е ефектът е тук. 1221 01:04:55,000 --> 01:04:57,000 Нека вървим напред и въведете в лицето на Дейвид. 1222 01:04:57,000 --> 01:04:59,000 Няма да съм капитан и този път. 1223 01:04:59,000 --> 01:05:01,000 Ще кажа, че мъж, Матюс, регистър. 1224 01:05:01,000 --> 01:05:05,000 Дявол да го вземе. Добре, това е винт от моя страна. 1225 01:05:05,000 --> 01:05:07,000 Stand. 1226 01:05:07,000 --> 01:05:17,000 Register2, ред 22, ако е празно или съжалявам. 1227 01:05:17,000 --> 01:05:19,000 Да се ​​презареди. 1228 01:05:19,000 --> 01:05:22,000 Добре, при изпращането на този формуляр, какво точно се е случило? 1229 01:05:22,000 --> 01:05:25,000 Аз напечатани в лицето на Дейвид, провери мъж, кликнали Матюс, регистър. 1230 01:05:25,000 --> 01:05:27,000 Са регистрирани. (Е, не съвсем.) 1231 01:05:27,000 --> 01:05:32,000 Това очевидно е една стъпка отвъд просто отпечатване на съдържанието на някои променлива, 1232 01:05:32,000 --> 01:05:34,000 Но какъв е този файл всъщност прави? 1233 01:05:34,000 --> 01:05:37,000 В register2.php 1234 01:05:37,000 --> 01:05:40,000 забележите, че имам някакъв нов код. 1235 01:05:40,000 --> 01:05:44,000 Вътре в тялото ми маркер имам по същество, ако друг изграждане, 1236 01:05:44,000 --> 01:05:47,000 но, защото аз съм едновременно смесването с някои HTML 1237 01:05:47,000 --> 01:05:51,000 Имам да влизат и излизат PHP режим назад и напред, така че нека да видим какво правя. 1238 01:05:51,000 --> 01:05:55,000 >> В първия ред тук искам да кажа, ако случаят е такъв, 1239 01:05:55,000 --> 01:06:00,000 , че след супер глобалното е празна за ключ на името, 1240 01:06:00,000 --> 01:06:04,000 с други думи, ако потребителят не ми даде стойност за името под формата 1241 01:06:04,000 --> 01:06:07,000 изпразнете ще се върне вярно, защото стойността е празна. 1242 01:06:07,000 --> 01:06:11,000 Или забележите, че вертикалните линии, ако полът е празна 1243 01:06:11,000 --> 01:06:15,000 в рамките на тази специална супер световно, което, отново, представлява съдържанието на формуляра, 1244 01:06:15,000 --> 01:06:19,000 или общежитието е празен, тогава аз ще да вървим напред и да крещи към потребителя. 1245 01:06:19,000 --> 01:06:22,000 Как? Е, забележете, аз ще кажа, че трябва да предоставим вашето име, пол и общежитието. 1246 01:06:22,000 --> 01:06:24,000 Нека да индуцират тази грешка. 1247 01:06:24,000 --> 01:06:27,000 Нека се върнем към формата ми. Позволете ми да презареди, за да го изчисти. 1248 01:06:27,000 --> 01:06:30,000 И аз просто ще им даде Дейвид, и те не трябва да знаят къде живея. 1249 01:06:30,000 --> 01:06:33,000 Регистрирайте. Явно аз трябва да им кажа къде живея. 1250 01:06:33,000 --> 01:06:35,000 Трябва да предоставите вашето име, пол и общежитието. Върни се назад. 1251 01:06:35,000 --> 01:06:39,000 >> И аз може да кликнете, за да се върнете към тази форма, но защо е така? 1252 01:06:39,000 --> 01:06:43,000 Е, в този случай име не беше празна, но пола е и общежитието е, 1253 01:06:43,000 --> 01:06:47,000 така че това целият израз оценени, за да е истина, и въпреки че е малко по-нов синтаксис, 1254 01:06:47,000 --> 01:06:51,000 отново, ние влизаме PHP режим, познат, ако изявление, 1255 01:06:51,000 --> 01:06:54,000 но новата част тук е само този на дебелото черво, и аз бяхме прецакани от пропуска нито скоби 1256 01:06:54,000 --> 01:06:57,000 случайно, но забележите на дебелото черво, а това означава, 1257 01:06:57,000 --> 01:07:00,000 въпреки че ние сме излизане PHP режим всичко 1258 01:07:00,000 --> 01:07:03,000 , която следва, трябва да се изплюе дословно в браузъра 1259 01:07:03,000 --> 01:07:07,000 докато не видите друг блок, както правим ние тук, 1260 01:07:07,000 --> 01:07:10,000 в който случай трябва, вместо да плюе това 1261 01:07:10,000 --> 01:07:13,000 докато не видите endif, така че някои леко нов синтаксис 1262 01:07:13,000 --> 01:07:16,000 , която ми позволява да превключвате между HTML и PHP. 1263 01:07:16,000 --> 01:07:19,000 Ние можем да почистите нещата в крайна сметка, но за сега, 1264 01:07:19,000 --> 01:07:22,000 това е вид на един завладяващ начин на проверка за грешки формата. 1265 01:07:22,000 --> 01:07:25,000 >> Сега казвам, че наистина не сте регистрирани, защото очевидно сме направили нищо, но данните, 1266 01:07:25,000 --> 01:07:28,000 така че нека се опитаме да направим нещо готино. 1267 01:07:28,000 --> 01:07:33,000 В froshims3 Единствената разлика е, аз ще представя register3 1268 01:07:33,000 --> 01:07:35,000 така че HTML е същото. 1269 01:07:35,000 --> 01:07:38,000 През register3 забележите това. 1270 01:07:38,000 --> 01:07:40,000 Това е един вид на секси. 1271 01:07:40,000 --> 01:07:44,000 На върха аз съм с изискването изявление, така че това е като # включват. 1272 01:07:44,000 --> 01:07:46,000 Този път това не е на stdio.h или нещо подобно. 1273 01:07:46,000 --> 01:07:50,000 Това е PHP библиотека, и това се нарича PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Как да знам да се включат именно тази цитиран низ? 1275 01:07:53,000 --> 01:07:56,000 Прочетох го в документацията, така че, когато ми каза това в началото на файла 1276 01:07:56,000 --> 01:08:00,000 ако искате да използвате специална библиотека, наречена PHPMailer, че прави това, което казва. 1277 01:08:00,000 --> 01:08:03,000 Тя ви позволява да изпращате електронната поща чрез PHP. 1278 01:08:03,000 --> 01:08:05,000 Сега нека да превъртите надолу допълнително. 1279 01:08:05,000 --> 01:08:08,000 >> Забележете, да започне през цялото това време съм в режим на PHP, 1280 01:08:08,000 --> 01:08:11,000 така че сега забележите тук след вноса на тази библиотека, 1281 01:08:11,000 --> 01:08:13,000  така да се каже, аз правя някои здравия разум проверки. 1282 01:08:13,000 --> 01:08:16,000 Ако случаят е такъв, че името не е празна 1283 01:08:16,000 --> 01:08:19,000 и пол не е празна забележите удивителни знаци 1284 01:08:19,000 --> 01:08:24,000 и общежитието не е празна, тогава потребителят е логично попълва формуляра, най-малко достатъчно. 1285 01:08:24,000 --> 01:08:28,000 Не ми пука, ако си капитан или не. Просто имам нужда от тяхно име, пол и общежитието. 1286 01:08:28,000 --> 01:08:31,000 Ако са изпълнени тези извън, така, че нито едно от тези полета са празни 1287 01:08:31,000 --> 01:08:33,000 това е малко по-новия синтаксис. 1288 01:08:33,000 --> 01:08:36,000 PHP, както настрана, е обектно-ориентиран език за програмиране 1289 01:08:36,000 --> 01:08:39,000 които някои от вас може би си спомняте от бронетранспортьори или други подобни. 1290 01:08:39,000 --> 01:08:42,000 За сега, ако непознати, просто знам, че за да използвате тази библиотека 1291 01:08:42,000 --> 01:08:45,000 Вие трябва да напишете ред на кода по този начин, с помощта на нова ключова дума, 1292 01:08:45,000 --> 01:08:47,000 буквално нова ключова дума, наречен ново. 1293 01:08:47,000 --> 01:08:50,000 Но освен това, ние имаме някои познати синтаксис. 1294 01:08:50,000 --> 01:08:54,000 Това е стрелката оператор, който е подобен на което сме свикнали за structs в контекста на указатели. 1295 01:08:54,000 --> 01:08:57,000 За днес PHP не указатели, 1296 01:08:57,000 --> 01:09:01,000 , но знаете, че вътре в пощата променлива 1297 01:09:01,000 --> 01:09:05,000 е по същество вид на показалеца на специална библиотека 1298 01:09:05,000 --> 01:09:08,000 , че някой друг пише, и ако искам за достъп за специфична функционалност 1299 01:09:08,000 --> 01:09:12,000 вътре в тази библиотека правя, като в C, използвайте стрелката на оператора, 1300 01:09:12,000 --> 01:09:14,000 въпреки че те всъщност не са указатели. 1301 01:09:14,000 --> 01:09:16,000 Това е нещо на собствена версия на PHP него. 1302 01:09:16,000 --> 01:09:20,000 Това означава, отидете в библиотеката и се обадете на IsSMTP функция. 1303 01:09:20,000 --> 01:09:23,000 SMTP, изземване, от нашите Войни на Net се отнася към електронна поща, 1304 01:09:23,000 --> 01:09:28,000 и това просто означава, използвайте имейл сървър за тази Frosh УИ регистрация. 1305 01:09:28,000 --> 01:09:30,000 >> Какво домакин Искам да използвам? 1306 01:09:30,000 --> 01:09:34,000 Е, Харвард,, ако Google наоколо, има имейл сървър, наречен smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Ако играете заедно у дома или живеете в мрежата на Comcast 1308 01:09:37,000 --> 01:09:40,000 тя може да бъде нещо подобно smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 Това изцяло зависи от това къде живеете и кой е вашият интернет доставчик е. 1310 01:09:43,000 --> 01:09:47,000 След това аз ще се насоча от адреса да бъде произволно jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 След това аз ще да се обърне към jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 Единственият начин знаех, че тези функции са били наричани SetFrom и AddAddress 1313 01:09:55,000 --> 01:09:57,000 , отново, прочетете документацията. 1314 01:09:57,000 --> 01:09:59,000 Това не е нещо като магически известно, че всички програмисти. 1315 01:09:59,000 --> 01:10:02,000 Тогава обект на "регистрация". 1316 01:10:02,000 --> 01:10:07,000 И сега тази линия е малко грозна, защото това, което се точка оператор в PHP? 1317 01:10:07,000 --> 01:10:09,000 Някой знае ли? 1318 01:10:09,000 --> 01:10:11,000 CONCATENATE. 1319 01:10:11,000 --> 01:10:14,000 В C е болка в областта на шията, за да се слеят две струни заедно. 1320 01:10:14,000 --> 01:10:17,000 Трябва да се справят с изчистване или презаделяне или всички тези неща 1321 01:10:17,000 --> 01:10:20,000 само за да удължи продължителността на низ. 1322 01:10:20,000 --> 01:10:22,000 В PHP, JavaScript и други езици 1323 01:10:22,000 --> 01:10:24,000 обикновено можете да направите това с един знак. 1324 01:10:24,000 --> 01:10:28,000 В този случай, точка означава, че този низ тук 1325 01:10:28,000 --> 01:10:30,000 и да приложи към този низ. 1326 01:10:30,000 --> 01:10:32,000 >> О, и между другото, да приложи към него този низ, 1327 01:10:32,000 --> 01:10:34,000 което се случва да бъде променлива вътрешността на тази супер глобален. 1328 01:10:34,000 --> 01:10:37,000 След това да приложи към него на нов ред, така че всички тези точки просто означава 1329 01:10:37,000 --> 01:10:39,000 продължат да правят по-големи и по-големи и по-големи низ, 1330 01:10:39,000 --> 01:10:43,000 и не трябва да се грижат за изчистване или подобни на език, като този, 1331 01:10:43,000 --> 01:10:46,000 и има други начини да направите това, но това е един от най-бързите 1332 01:10:46,000 --> 01:10:48,000 начини да го положи. 1333 01:10:48,000 --> 01:10:50,000 Какво е това? 1334 01:10:50,000 --> 01:10:55,000 Те създават имейл орган, който ще каже Име: Капитан: Пол: Dorm: 1335 01:10:55,000 --> 01:10:58,000 на отделни редове, и след това накрая, 1336 01:10:58,000 --> 01:11:00,000 един ред код, и аз отивам да се игнорира това за сега. 1337 01:11:00,000 --> 01:11:02,000 Ако == фалшиви просто означава, че ако нещо се обърка, 1338 01:11:02,000 --> 01:11:04,000 но магията се случва тук. 1339 01:11:04,000 --> 01:11:08,000 Писмо Изпрати означава, че изпращането на този имейл. 1340 01:11:08,000 --> 01:11:10,000 Нека видим какво е нетният резултат. 1341 01:11:10,000 --> 01:11:13,000 В долната част на файла, забележите, че става да кажеш, че са регистрирани наистина 1342 01:11:13,000 --> 01:11:15,000 ако стигне до там. 1343 01:11:15,000 --> 01:11:18,000 Ако, обаче, на потребителя винтове, забележете, че ние започнахме тази 1344 01:11:18,000 --> 01:11:21,000 ако състоянието тук, ако не е празна и не е празна 1345 01:11:21,000 --> 01:11:24,000 и не се изпуска ние изпращаме пощата. 1346 01:11:24,000 --> 01:11:27,000 В противен случай ние ще изпратим този ред на код, 1347 01:11:27,000 --> 01:11:30,000 която ще има ефект, както ще видите в pset 7, за пренасочване на потребителя 1348 01:11:30,000 --> 01:11:35,000 обратно, откъдето са дошли, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Стискаме палци, в противен случай това ще бъде най-разочароващите демото днес. 1350 01:11:38,000 --> 01:11:40,000 Ето ни. 1351 01:11:40,000 --> 01:11:42,000 Позволете ми да отвори моя имейл пощенска кутия за jharvard в Gmail. 1352 01:11:42,000 --> 01:11:44,000 Не имейл. Добре. 1353 01:11:44,000 --> 01:11:53,000 Сега нека ме отвори froshims3, който е трети и последен пример, ние ще разгледаме тук. 1354 01:11:53,000 --> 01:11:55,000 Добре, да го направим. 1355 01:11:55,000 --> 01:12:00,000 Нейт, той ще бъде капитан, мъжки, от, да речем, Apley. 1356 01:12:00,000 --> 01:12:04,000 Регистрирайте. Добре, вие сте наистина. 1357 01:12:04,000 --> 01:12:07,000 Сега, ако превъртите на моя имейл, о, Боже мой. 1358 01:12:07,000 --> 01:12:09,000 Току-що динамично изпрати имейл в мрежата. 1359 01:12:09,000 --> 01:12:11,000 >> Нека оставим тази бележка. 1360 01:12:11,000 --> 01:12:16,000 А видеото е предстоящото за лекцията сме пропуснали. Ще се видим следващата седмица. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]