1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Tydzień 8] 2 00:00:02,000 --> 00:00:04,000 [David J Malan] [Harvard University] 3 00:00:04,000 --> 00:00:07,000 [To jest CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Witamy z powrotem. 5 00:00:09,000 --> 00:00:11,000 To CS50, i jest to początek 8 tygodni. 6 00:00:11,000 --> 00:00:14,000 Kilka możliwości w tym tygodniu, 7 00:00:14,000 --> 00:00:17,000 wśród nich ta rozmowa tutaj, w których niektóre jedzenie będzie serwowane. 8 00:00:17,000 --> 00:00:20,000 Po więcej szczegółów zobacz slajdy, które są online. 9 00:00:20,000 --> 00:00:24,000 A także inne wydarzenie w tym tygodniu przez naszą Thomas Carriero. 10 00:00:24,000 --> 00:00:27,000 On jest jednym z byłych stypendystów CS50 nauczania głowy, który jest teraz w Dropbox, 11 00:00:27,000 --> 00:00:29,000 a on jest facetem, który wciągnąła nas z wiesz co, 12 00:00:29,000 --> 00:00:36,000 więc jeśli chcesz więcej tego głowy ich rozmów po południu dla Dropbox i więcej. 13 00:00:36,000 --> 00:00:38,000 CS50 lunch jest w ten piątek. 14 00:00:38,000 --> 00:00:41,000 Czy dołączyć do nas, jeśli jesteś w stanie, 1:15, jak zwykle, w ognia i lodu. 15 00:00:41,000 --> 00:00:45,000 >> A teraz mamy zanurzyć coś zwane seminaria. 16 00:00:45,000 --> 00:00:49,000 Nasze CS50 Seminaria, przypominam, są to zajęcia fakultatywne prowadzone przez stypendystów dydaktycznych 17 00:00:49,000 --> 00:00:51,000 oraz asystenci kursu i przyjaciele oczywiście 18 00:00:51,000 --> 00:00:55,000 ludzie z grupy na terenie kampusu nazwie ABCD, czyli grupa 19 00:00:55,000 --> 00:00:58,000 technofile na kampusie, a także grupa o nazwie HCS, 20 00:00:58,000 --> 00:01:02,000 Harvard Computer Society, Studenci, którzy są podobnie zainteresowani informatyki. 21 00:01:02,000 --> 00:01:08,000 Tegoroczna lista seminariów obejmuje seminaria na temat Androida i iOS i JavaScript 22 00:01:08,000 --> 00:01:13,000 i PHP, Unix, Vim, i więcej, więc sobie sprawę, że te seminaria idą w górę. 23 00:01:13,000 --> 00:01:16,000 Jeśli chcesz, aby potwierdzić udział w którejkolwiek z nich udać się do tego adresu URL tam. 24 00:01:16,000 --> 00:01:20,000 Będziemy wtedy zamieścić na stronie internetowej kursu czasy i miejsca, po ich sporządzeniu. 25 00:01:20,000 --> 00:01:26,000 Ale wiem, że w 5 lat warto uprzednich seminariów dostępne online, 26 00:01:26,000 --> 00:01:29,000 z których wiele jest wciąż bardzo aktualny w zakresie technologii Was może 27 00:01:29,000 --> 00:01:36,000 chcesz grać z dla końcowych projektów, więc udać się tam na niektórych dostępnych filmów ich. 28 00:01:36,000 --> 00:01:39,000 >> CSS, ci z was, którzy są zaznajomieni z CSS już, 29 00:01:39,000 --> 00:01:42,000 co to jest w skrócie? 30 00:01:42,000 --> 00:01:45,000 Co to jest CSS? 31 00:01:45,000 --> 00:01:48,000 To kaskadowych arkuszy stylów, a co to znaczy? 32 00:01:48,000 --> 00:01:53,000 Co to dla nas zrobić, CSS? 33 00:01:53,000 --> 00:01:57,000 Dobra, niech rozgrzać łatwiejszy jeden, HTML HyperText Markup Language. 34 00:01:57,000 --> 00:02:01,000 Co to dla nas zrobić? 35 00:02:01,000 --> 00:02:04,000 Ktoś w ogóle? 36 00:02:04,000 --> 00:02:07,000 Robi się naprawdę niezręcznie zadawać te pytania. 37 00:02:07,000 --> 00:02:11,000 HTML, Hypertext Markup Language. 38 00:02:11,000 --> 00:02:14,000 Tak? No? 39 00:02:14,000 --> 00:02:17,000 [Niesłyszalne odpowiedź uczeń] 40 00:02:17,000 --> 00:02:20,000 Dobra, dobra, to pozwala nam oznaczyć tekst do wyświetlenia w przeglądarce internetowej. 41 00:02:20,000 --> 00:02:22,000 To nie język programowania jest. 42 00:02:22,000 --> 00:02:25,000 To rzeczywiście język znaczników, co oznacza, że ​​instruuje przeglądarkę, jak wyświetlić 43 00:02:25,000 --> 00:02:28,000 informacji, więc najprostszym wcielenie to jak widzieliśmy 44 00:02:28,000 --> 00:02:32,000 jest coś super proste jak boldfacing, open bracket b uchwyt zamknięty mówi 45 00:02:32,000 --> 00:02:36,000 aby ten tekst pogrubiony, i to właściwie tylko jeden z wielu sposobów 46 00:02:36,000 --> 00:02:39,000 w którym możemy to zrobić, i rzeczywiście, te dni lepsze podejście 47 00:02:39,000 --> 00:02:42,000 do stylizowania swoją stronę internetową, dzięki czemu rzeczy pogrubione i kursywa 48 00:02:42,000 --> 00:02:47,000 i na środku i uzasadnione i podobne, nie dokonuje się za pomocą znaczników HTML sama 49 00:02:47,000 --> 00:02:51,000 ale raczej w technice CSS, Cascading Style Sheets. 50 00:02:51,000 --> 00:02:53,000 To jest język do siebie. 51 00:02:53,000 --> 00:02:55,000 To też nie jest językiem programowania, ale-jest 52 00:02:55,000 --> 00:02:58,000 wszyscy, to jest Dan, który trzyma przyłączenie się do nas już dziś. 53 00:02:58,000 --> 00:03:01,000 Pewne trudności techniczne. Nie stanowi problemu. 54 00:03:01,000 --> 00:03:04,000 >> CSS pozwala stylizować stronę 55 00:03:04,000 --> 00:03:07,000 poprzez tak zwane właściwości, więc rzućmy okiem na to 56 00:03:07,000 --> 00:03:09,000 drodze podstawowych przykładów. 57 00:03:09,000 --> 00:03:12,000 Pozwól mi iść do urządzenia już dziś. 58 00:03:12,000 --> 00:03:15,000 Mam źródłowy 8 katalogu poniedziałek tutaj, 59 00:03:15,000 --> 00:03:18,000 i mam zamiar iść do katalogu o nazwie CSS, gdzie mamy całą masę 60 00:03:18,000 --> 00:03:21,000 plików czeka na nas tutaj, 61 00:03:21,000 --> 00:03:27,000 i w tym folderze mamy, na przykład, search0.html od ostatniego razu. 62 00:03:27,000 --> 00:03:31,000 Teraz przypominam sobie z search0 wyszliśmy na tej notatce 63 00:03:31,000 --> 00:03:35,000 przez rodzaj wykonania Google czy naprawdę tylko przód za to tydzień temu, 64 00:03:35,000 --> 00:03:38,000 i zauważ, że mieliśmy kilka nowych znaczników tam. 65 00:03:38,000 --> 00:03:41,000 Mieliśmy h1 na duży, pozycja śmiały 66 00:03:41,000 --> 00:03:45,000 formę, która pozwoliła nam rzeczywiście formularz HTML na polecenie użytkownika. 67 00:03:45,000 --> 00:03:48,000 Akcja, co było znaczenie atrybutu akcji 68 00:03:48,000 --> 00:03:52,000 w tagu HTML formularza? 69 00:03:52,000 --> 00:03:58,000 Jaki był sens tego, działania? 70 00:03:58,000 --> 00:04:00,000 Po prostu zrobię to dzisiaj. 71 00:04:00,000 --> 00:04:03,000 Action jest cel, gdzie forma ma być złożony. 72 00:04:03,000 --> 00:04:07,000 Fakt, że akcja, która mówi = "google.com / search" 73 00:04:07,000 --> 00:04:10,000 Oznacza to, że gdy użytkownik kliknie przycisk Prześlij lub równoważnik 74 00:04:10,000 --> 00:04:14,000 niezależnie od formy ich pola wypełnione będą wysyłane nie do naszego serwera 75 00:04:14,000 --> 00:04:17,000 lub naszego urządzenia, ale raczej do tego konkretnego adresu w Google. 76 00:04:17,000 --> 00:04:19,000 A metoda to będzie używać nazywa dostać, 77 00:04:19,000 --> 00:04:25,000 i inne, na razie, to tylko technika przekazywania informacji wraz z serwerem WWW 78 00:04:25,000 --> 00:04:29,000 drodze URL, więc rzućmy okiem wstecz na jak to działa. 79 00:04:29,000 --> 00:04:31,000 >> Zauważ, że jest wejście, którego nazwa jest q 80 00:04:31,000 --> 00:04:35,000 którego typ jest tekst, a następnie drugie wejście typu przedstawienia 81 00:04:35,000 --> 00:04:39,000 których wartość jest CS50 Search, i rzeczywiście, jeśli otwieramy ten plik tutaj 82 00:04:39,000 --> 00:04:42,000 search0.html, jest super prosty formularz, 83 00:04:42,000 --> 00:04:45,000 i jeśli szukam czegoś informatyki 84 00:04:45,000 --> 00:04:50,000 a następnie wciśnij Enter lub kliknij na CS50 Szukaj 85 00:04:50,000 --> 00:04:53,000 zauważyć, że to, co się dzieje, jest poza coraz to Google 86 00:04:53,000 --> 00:04:56,000 Mam konkretnie skończyło się pod tym adresem URL na górze, 87 00:04:56,000 --> 00:05:01,000 google.com / search? q = + komputer nauka, 88 00:05:01,000 --> 00:05:04,000 i informatyka jest oczywiście to, co wpisane w. 89 00:05:04,000 --> 00:05:06,000 + Po prostu oznacza, że ​​tam była spacja, 90 00:05:06,000 --> 00:05:10,000 i jest to zrobione przez przeglądarkę, żeby upewnić się, że nie ma 91 00:05:10,000 --> 00:05:13,000 zamieszanie i białe miejsca w rzeczywistej URL. 92 00:05:13,000 --> 00:05:15,000 A następnie q, oczywiście, jest nazwa parametru. 93 00:05:15,000 --> 00:05:20,000 Nie widzieliśmy, jak programista, w rzeczywistości może przejść q jeszcze. 94 00:05:20,000 --> 00:05:23,000 Możemy założyć, że Google wie, co zrobić z tym tutaj, 95 00:05:23,000 --> 00:05:25,000 ale my się tam w odpowiednim czasie, dzisiaj. 96 00:05:25,000 --> 00:05:30,000 >> Ale pozwól mi spojrzeć zamiast w search1.html, 97 00:05:30,000 --> 00:05:34,000 który wygląda trochę inaczej, bo uznał, że ta forma tutaj było trochę kulawy. 98 00:05:34,000 --> 00:05:36,000 Mam na myśli, to jest w lewym górnym rogu. 99 00:05:36,000 --> 00:05:40,000 Naprawdę nie ma estetyka do niego, i tak chcę do stylizacji to 100 00:05:40,000 --> 00:05:43,000 nieco bardziej jak Google, którego strona internetowa, przypominam, 101 00:05:43,000 --> 00:05:47,000 nawet jeśli nie może go odwiedzić, że często, wygląda dziś na Halloween. 102 00:05:47,000 --> 00:05:53,000 Gdybyśmy zamiast otworzyć wersję 1 tego pliku, 1.html search, ja koncentruje go. 103 00:05:53,000 --> 00:05:57,000 Nadal bardzo brzydkie, ale przynajmniej teraz zacząłem kontrolować estetykę tej stronie 104 00:05:57,000 --> 00:06:00,000 nie tylko ich zaznaczania. 105 00:06:00,000 --> 00:06:04,000 Rzućmy okiem na wyszukiwanie 1, i jest tam naprawdę tylko jedna różnica tutaj 106 00:06:04,000 --> 00:06:06,000 co może wyskoczyć na ciebie, a może nie, 107 00:06:06,000 --> 00:06:11,000 ale co jeden wiersz lub fragment różnicy? 108 00:06:11,000 --> 00:06:14,000 >> Jest to styl, atrybut, więc okazuje się, że w HTML 109 00:06:14,000 --> 00:06:19,000 większość elementów, większość tagi mogą mieć atrybutu stylu na nich, 110 00:06:19,000 --> 00:06:23,000 i wewnątrz tego atrybutu stylu jest w cudzysłowie, 111 00:06:23,000 --> 00:06:26,000 i że w cudzysłowie jest CSS. 112 00:06:26,000 --> 00:06:29,000 Możesz umieścić arkusz stylów kaskadowych tam 113 00:06:29,000 --> 00:06:32,000 określając je jako nazwy właściwości 114 00:06:32,000 --> 00:06:34,000 dwukropkiem następnie wartości. 115 00:06:34,000 --> 00:06:37,000 Jest to rodzaj nieszczęśliwego decyzji projektowych kilka lat temu 116 00:06:37,000 --> 00:06:40,000 że CSS jest językiem samym w sobie, 117 00:06:40,000 --> 00:06:43,000 ale składniowo jest bardzo różni się od HTML. 118 00:06:43,000 --> 00:06:46,000 W tym przypadku widzimy, że wewnątrz mojej stronie internetowej, która jest napisana w języku HTML 119 00:06:46,000 --> 00:06:51,000 Mam CSS wewnątrz tych cytatów i konwencji dla CSS 120 00:06:51,000 --> 00:06:55,000 jest to, że masz to, co nazywa obiekt następnie, ponownie, okrężnicy, 121 00:06:55,000 --> 00:06:58,000 następnie wartości tej nieruchomości, więc nie ma znaku równości. 122 00:06:58,000 --> 00:07:00,000 Nie ma żadnych dodatkowych cytatów. 123 00:07:00,000 --> 00:07:03,000 To tylko ten dwukropek oddziela parę kluczy wartość, 124 00:07:03,000 --> 00:07:05,000 i linii tekstu robi dokładnie to co mówi. 125 00:07:05,000 --> 00:07:09,000 To wyrównanie tekstu w treści strony, co jest naprawdę odwagi strony, 126 00:07:09,000 --> 00:07:11,000 w centrum. 127 00:07:11,000 --> 00:07:13,000 >> Okay, wynik końcowy, a następnie, aby być jasne, to jest. 128 00:07:13,000 --> 00:07:17,000 Nie wszystko, co bardziej seksowne, ale przynajmniej jest to na środku i trochę bardziej jak prawdziwy Google. 129 00:07:17,000 --> 00:07:21,000 Ale co, jeśli zamiast otworzyć wersję 2 tego 130 00:07:21,000 --> 00:07:25,000 i wskazać tu nowy tag w ogóle? 131 00:07:25,000 --> 00:07:30,000 Teraz w głowie mojej strony, które wcześniej miały jedynie co tag 132 00:07:30,000 --> 00:07:32,000 we wszystkich poprzednich przykładach? 133 00:07:32,000 --> 00:07:34,000 To po prostu było to tytuł. 134 00:07:34,000 --> 00:07:38,000 Chwilę temu tag głowa wyglądała tak. 135 00:07:38,000 --> 00:07:40,000 Teraz zamiast ma styl wnętrza znacznikach niej 136 00:07:40,000 --> 00:07:44,000 i to też przepraszam, składniowo wygląda bardzo różni się od HTML, 137 00:07:44,000 --> 00:07:47,000 ale można się do tego przyzwyczaić, przy czym wewnątrz znacznika stylu 138 00:07:47,000 --> 00:07:50,000 Mogę teraz czynnik poza to, co było przed chwilą 139 00:07:50,000 --> 00:07:54,000 atrybut, atrybut style, i mogę umieścić go na samym szczycie mojej stronie. 140 00:07:54,000 --> 00:07:56,000 >> Dlaczego? 141 00:07:56,000 --> 00:08:00,000 Cóż, jest to krok w kierunku czyszczenia rzeczy, podobnie jak w pisanie kodu C 142 00:08:00,000 --> 00:08:04,000 będziemy czasem pisać funkcje czynnik poza wspólną funkcjonalność. 143 00:08:04,000 --> 00:08:07,000 To tylko trochę czystsze zacząć faktoringu z rzeczy jak estetyka 144 00:08:07,000 --> 00:08:11,000 do jednej, centralnej lokalizacji zamiast wszystko intersperse całym HTML. 145 00:08:11,000 --> 00:08:14,000 To też robi to, co mówi, chociaż jest trochę nowej składni. 146 00:08:14,000 --> 00:08:19,000 To tutaj jest selektor, i ciało po prostu oznacza, wybierz element ciała 147 00:08:19,000 --> 00:08:21,000 i stosuje się to następujące właściwości. 148 00:08:21,000 --> 00:08:23,000 Cóż, nieruchomość jest dokładnie taka sama. 149 00:08:23,000 --> 00:08:25,000 Na dokładkę dodałem średnik na końcu, 150 00:08:25,000 --> 00:08:29,000 który wydaje się być konwencja, a ja cały ten obiekt owinięty 151 00:08:29,000 --> 00:08:33,000 w nawiasach klamrowych, ponieważ mogłem rzeczywiście mają różne rzeczy. 152 00:08:33,000 --> 00:08:39,000 Mogę naprawdę powiedzieć coś jak kolor: niebieski; 153 00:08:39,000 --> 00:08:42,000 >> Teraz też nie będzie krokiem w kierunku czegokolwiek wszystko ładniejsze, 154 00:08:42,000 --> 00:08:47,000 ale jeśli mam teraz wrócić do wersji 2 mam przynajmniej teraz uczynił ciało mojego 155 00:08:47,000 --> 00:08:49,000 page text wszystkie niebieskie. 156 00:08:49,000 --> 00:08:51,000 Przycisk pozostaje taka sama, ponieważ jest to wejście. To nie jest czysty tekst. 157 00:08:51,000 --> 00:08:56,000 Ale wszystko inne, że jest to tekst, jak CS50 wyszukiwanie do góry, jest w kolorze niebieskim fakt. 158 00:08:56,000 --> 00:09:01,000 Ponownie, wszystko zrobiliśmy teraz jest usunąć z znacznika body, zawiadomienia, 159 00:09:01,000 --> 00:09:04,000 atrybut style, a my uwzględniamy go tutaj. 160 00:09:04,000 --> 00:09:08,000 To nie jest ogromny postęp, ale jeśli weźmiemy ten jeden krok dalej 161 00:09:08,000 --> 00:09:10,000 zauważyć, co możemy zrobić w tej trzeciej wersji tutaj. 162 00:09:10,000 --> 00:09:14,000 >> W search3.html Strona jest prawie identyczna 163 00:09:14,000 --> 00:09:17,000 z wyjątkiem tego, co nowy tag teraz? 164 00:09:17,000 --> 00:09:20,000 Link, więc to nie jest bardzo trafnie nazwany 165 00:09:20,000 --> 00:09:24,000 ponieważ nie masz połączenia w sensie klikalne hiperłącza. 166 00:09:24,000 --> 00:09:28,000 Raczej, że jesteś rodzaju robi odpowiednik w C # include 167 00:09:28,000 --> 00:09:31,000 którym Znacznik link z atrybutem href 168 00:09:31,000 --> 00:09:34,000 i atrybut rel mówi śmiało 169 00:09:34,000 --> 00:09:39,000 i kopia wklej zawartość pliku o nazwie search3.css tu zasadniczo. 170 00:09:39,000 --> 00:09:42,000 To nie za bardzo to zrobić, ale to jest duch tego. 171 00:09:42,000 --> 00:09:45,000 Mówi idź otworzyć dany plik, search3.css, 172 00:09:45,000 --> 00:09:49,000 i traktować go tak, jakby użytkownik wpisał go tutaj w głowie strony 173 00:09:49,000 --> 00:09:51,000 tak jak ja w poprzednim przykładzie. 174 00:09:51,000 --> 00:09:54,000 Search3.css tymczasem jest całkiem proste. 175 00:09:54,000 --> 00:09:58,000 To tak naprawdę zawiera dokładnie to, co było przed chwilą 176 00:09:58,000 --> 00:10:03,000 w tagu stylu, ale mam uwzględnić go tutaj do własnego pliku. 177 00:10:03,000 --> 00:10:07,000 >> Mimo, że nie spędził wiele czasu w ogóle programowania HTML lub internetowej 178 00:10:07,000 --> 00:10:11,000 tylko intuicyjnie, co jest motywacją, być może, do faktoringu z 179 00:10:11,000 --> 00:10:14,000 ten mały urywek nawet CSS do własnego pliku 180 00:10:14,000 --> 00:10:19,000 a następnie włączenie go tym tagiem link tutaj? 181 00:10:19,000 --> 00:10:21,000 [Niesłyszalne odpowiedź uczeń] 182 00:10:21,000 --> 00:10:25,000 Okay, to jest łatwiejsze do odczytania w tym sensie, że masz swój CSS w pliku CSS. 183 00:10:25,000 --> 00:10:28,000 Masz HTML w pliku HTML, więc to jest bardziej czytelna w tym sensie. 184 00:10:28,000 --> 00:10:30,000 Co jeszcze może być atrakcyjne? Tak. 185 00:10:30,000 --> 00:10:32,000 [Niesłyszalne odpowiedź uczeń] 186 00:10:32,000 --> 00:10:35,000 Tak, więc można dołączyć go wiele razy, więc teraz robimy to 187 00:10:35,000 --> 00:10:38,000 Prostymi przykładami z pojedynczych plików, ale załóżmy, że jesteś faktycznie dokonywania 188 00:10:38,000 --> 00:10:42,000 prawdziwa strona jak ty będzie na Pset 7 lub ostatecznego projektu, być może, 189 00:10:42,000 --> 00:10:45,000 i chcesz mieć wiele stron internetowych, jak to z pewnością wspólne na 190 00:10:45,000 --> 00:10:48,000 Rzeczywista World Wide Web, a to byłby rodzaj lame 191 00:10:48,000 --> 00:10:52,000 aby skopiować i wkleić ten sam niebieski kolor 192 00:10:52,000 --> 00:10:56,000 i sam tekst wyrównany centrum w każdej z tych stron. 193 00:10:56,000 --> 00:10:59,000 Raczej większy sens czynnik poza, tak jak zrobiliśmy w C 194 00:10:59,000 --> 00:11:02,000 z pliku. h, umieścić go w jednym centralnym miejscu, 195 00:11:02,000 --> 00:11:06,000 w tym przypadku search3.css, a następnie pozostawić dowolny plik 196 00:11:06,000 --> 00:11:11,000 w witrynie, aby faktycznie to ten plik w drodze tego tagu tutaj w linii 16. 197 00:11:11,000 --> 00:11:14,000 Jak to zwykle w przypadku, zaczęliśmy z wersji 0, jaki rodzaj prac 198 00:11:14,000 --> 00:11:18,000 ale niekoniecznie jest najlepsze, a przy każdym kroku, 199 00:11:18,000 --> 00:11:21,000 szukaj 1, szukaj 2, a teraz szukanie 3 podjęliśmy kroki dziecka 200 00:11:21,000 --> 00:11:26,000 wobec projektów, które są trochę czystsze i bardziej przygotowawcze 201 00:11:26,000 --> 00:11:30,000 dla bardziej skomplikowanych stron, które możemy zrobić w dół drogi. 202 00:11:30,000 --> 00:11:33,000 >> Pozwól mi otworzyć ostatni przykład tutaj, aby pokazać 203 00:11:33,000 --> 00:11:36,000 nawet bardziej stylizowany stronę, ale najpierw spójrzmy na HTML. 204 00:11:36,000 --> 00:11:41,000 To search4.html, a zauważysz, że konstrukcyjnie jest to prawie to samo 205 00:11:41,000 --> 00:11:44,000 wyjątkiem wprowadzenia nowego słowa, div. 206 00:11:44,000 --> 00:11:48,000 Div jest tag, który wprowadza podział strony. 207 00:11:48,000 --> 00:11:51,000 Można myśleć o tym, jako niewidzialny prostokąt. 208 00:11:51,000 --> 00:11:54,000 To rodzaj tworzy bruzdę obszaru w internecie 209 00:11:54,000 --> 00:11:56,000 które można stylizować na raz. 210 00:11:56,000 --> 00:11:58,000 Co zrobiłem tutaj jest następujący. 211 00:11:58,000 --> 00:12:01,000 Wewnątrz mojego znacznika body, która była tam przez cały czas, 212 00:12:01,000 --> 00:12:05,000 Mówię stworzyć podział strony tutaj poprzez linie 45 do 47, 213 00:12:05,000 --> 00:12:09,000 i oznacza, że ​​w zasadzie mi niewidzialny prostokąt wzdłuż górnej części strony. 214 00:12:09,000 --> 00:12:14,000 Potem dał mi drugi prostokąt, aczkolwiek niewidzialny, poniżej, że 215 00:12:14,000 --> 00:12:16,000 oraz identyfikuje je w treści nazwy, a następnie na koniec, 216 00:12:16,000 --> 00:12:19,000 daj mi trzeciego podziału strony na dole 217 00:12:19,000 --> 00:12:21,000 zwany ID. 218 00:12:21,000 --> 00:12:23,000 Zobaczymy, dlaczego zrobiłem to na chwilę, 219 00:12:23,000 --> 00:12:26,000 ale koncepcyjnie mam podział nagłówka. 220 00:12:26,000 --> 00:12:30,000 Mam podział treści, i mam stopki podział strony 221 00:12:30,000 --> 00:12:32,000 nawet jeśli są to tylko w adiustacji. 222 00:12:32,000 --> 00:12:35,000 Użytkownik nie będzie patrz 3 prostokąty, 223 00:12:35,000 --> 00:12:37,000 ale jakby strukturalnie tam za kulisami 224 00:12:37,000 --> 00:12:39,000 one faktycznie obecna. 225 00:12:39,000 --> 00:12:41,000 >> Teraz, kogo to obchodzi? Dlaczego właściwie to zrobić? 226 00:12:41,000 --> 00:12:43,000 Wszystko na stronie jest taki sam, jak widzieliśmy wcześniej. 227 00:12:43,000 --> 00:12:47,000 Oto moja forma. Oto mój program, mój wejście, koniec linii i tak dalej. 228 00:12:47,000 --> 00:12:50,000 Oto obraz, chociaż, więc zobaczymy, skąd to pochodzi w chwilę. 229 00:12:50,000 --> 00:12:52,000 Tu jest stopka, która jest nowa, tylko dlatego, że chciał wprowadzić 230 00:12:52,000 --> 00:12:54,000 trochę więcej treści tutaj. 231 00:12:54,000 --> 00:12:58,000 Jeśli zauważysz, że przewijanie w górę ID tego div jest nagłówek. 232 00:12:58,000 --> 00:13:02,000 ID tego div jest treść i ID tego jednego jest stopka. 233 00:13:02,000 --> 00:13:05,000 I jak sama nazwa wskazuje, gdy masz atrybut ID 234 00:13:05,000 --> 00:13:09,000 w formacie HTML, z definicji musi jednoznacznie identyfikować 235 00:13:09,000 --> 00:13:12,000 jeden z elementów, jeden z znaczników strony. 236 00:13:12,000 --> 00:13:16,000 Obciążenie jest całkowicie na Ciebie, aby pamiętać, że masz już identyfikator nagłówka. 237 00:13:16,000 --> 00:13:19,000 Masz stopkę. Masz identyfikator treści już. 238 00:13:19,000 --> 00:13:22,000 Komputer nie będzie się dowiedzieć, co dostępne ID jest dla ciebie, 239 00:13:22,000 --> 00:13:27,000 więc można przypadkowo dać 2 tagi identyfikator nagłówka, 240 00:13:27,000 --> 00:13:29,000 i że po prostu źle. 241 00:13:29,000 --> 00:13:31,000 >> Trzeba pamiętać, co zostało stworzone, 242 00:13:31,000 --> 00:13:34,000 ale kiedy już to zrobisz zawiadomienie co możemy zrobić tutaj. 243 00:13:34,000 --> 00:13:38,000 Mogę teraz określić w moim tagu stylu na szczycie 244 00:13:38,000 --> 00:13:41,000 lub równoważnie w moim pliku CSS, jeśli nadal używać tej wersji, 245 00:13:41,000 --> 00:13:46,000 Mogę powiedzieć, # header, i co to znaczy, że cokolwiek tag 246 00:13:46,000 --> 00:13:49,000 w tej stronie ma identyfikator nagłówka 247 00:13:49,000 --> 00:13:53,000 i #, po prostu ludzkiej konwencji reprezentuje identyfikator. 248 00:13:53,000 --> 00:13:56,000 Ostry znak lub funt znak reprezentuje identyfikator. 249 00:13:56,000 --> 00:13:58,000 Nagłówek jest nazwa, że ​​dałem go. 250 00:13:58,000 --> 00:14:01,000 Oznacza to, że zastosowanie tej właściwości CSS 251 00:14:01,000 --> 00:14:04,000 do tego, co na tej stronie tag nosi identyfikator z nagłówkiem. 252 00:14:04,000 --> 00:14:06,000 Sama umowa tutaj. 253 00:14:06,000 --> 00:14:09,000 Zastosuj tę nieruchomość, która dzieje się samo, do każdego elementu 254 00:14:09,000 --> 00:14:11,000 którego ID jest treść, a następnie na dół 255 00:14:11,000 --> 00:14:14,000 zauważyć Trochę hodowcy z stopce. 256 00:14:14,000 --> 00:14:18,000 Dowolny element, którego ID jest stopka, w której nie może być tylko jedna z definicji 257 00:14:18,000 --> 00:14:21,000 iść dalej i sprawić, aby rozmiar czcionki mniejsze, 258 00:14:21,000 --> 00:14:24,000 jego śmiały waga czcionki, jego marża 20 pikseli. 259 00:14:24,000 --> 00:14:26,000 >> Co to znaczy? 260 00:14:26,000 --> 00:14:28,000 To tylko margines na górze, na dole, a lewa i prawa. 261 00:14:28,000 --> 00:14:31,000 Oznacza to, że dają mi 20-pixel niewidoczny margines wokół niego 262 00:14:31,000 --> 00:14:35,000 wystarczy wcisnąć wszystko inne od niej trochę, jak można zrobić w programie Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word lub stron lub jak. 264 00:14:37,000 --> 00:14:39,000 A potem tekst wyrównać centrum. 265 00:14:39,000 --> 00:14:43,000 Zobaczmy na końcowy wynik, a potem wrócimy do jednej pozostałej urywek CSS tam. 266 00:14:43,000 --> 00:14:48,000 To jest wersja 4, nasza ostatnia dla przykładów wyszukiwania, i to o wiele, wiele bardziej sexy. 267 00:14:48,000 --> 00:14:54,000 Teraz, w uczciwości, tylko Googled "font google generator logo." 268 00:14:54,000 --> 00:14:58,000 A to pozwoliło mi stworzyć GIF, format obrazu, który wygląda tak jak tam. 269 00:14:58,000 --> 00:15:00,000 W rzeczywistości, można to zrobić też. 270 00:15:00,000 --> 00:15:03,000 Mamy "google logo czcionki generator". 271 00:15:03,000 --> 00:15:05,000 >> Zobaczmy, czy uda nam się to zrobić. 272 00:15:05,000 --> 00:15:07,000 Dobra, myślę, że to jest strona użyłem. 273 00:15:07,000 --> 00:15:11,000 Można powiedzieć, WE 10, na przykład, i uczynić je samodzielnie. 274 00:15:11,000 --> 00:15:13,000 Możesz grać z tym cały dzień, a następnie kliknij prawym przyciskiem myszy na nim 275 00:15:13,000 --> 00:15:16,000 a następnie pobrać aktualną GIF, który jest wszystkim, co zrobiłem. 276 00:15:16,000 --> 00:15:19,000 I rzeczywiście, to dlaczego w moim HTML, przypominam, tu 277 00:15:19,000 --> 00:15:22,000 Miałem tag obrazu, co widzieliśmy w zeszłym tygodniu na krótko 278 00:15:22,000 --> 00:15:24,000 którego źródłem jest logo.gif. 279 00:15:24,000 --> 00:15:28,000 I co znowu było motywacją do posiadania tego atrybutu alt, 280 00:15:28,000 --> 00:15:31,000 ta alternatywa atrybut? 281 00:15:31,000 --> 00:15:33,000 Tak. 282 00:15:33,000 --> 00:15:35,000 [Niesłyszalne odpowiedź uczeń] 283 00:15:35,000 --> 00:15:37,000 Dobra, tak naprawdę 2 powody, jeśli przeglądarka nie może ciągnąć się na obraz 284 00:15:37,000 --> 00:15:40,000 bo masz wolne połączenie sieciowe lub obraz jest uszkodzony 285 00:15:40,000 --> 00:15:44,000 lub coś w tym przynajmniej człowiek może zobaczyć "CS50 wyszukiwanie" 286 00:15:44,000 --> 00:15:46,000 a także ze względu na dostępności. 287 00:15:46,000 --> 00:15:48,000 Jeśli użytkownik, który jest niewidomy i korzysta z czytnika ekranu 288 00:15:48,000 --> 00:15:50,000 a więc oczywiście nie można zobaczyć obrazy mogą przynajmniej 289 00:15:50,000 --> 00:15:52,000 usłyszeć tekst, jeśli ich komputer mówi im. 290 00:15:52,000 --> 00:15:56,000 >> W ogóle, to najlepiej jest, gdy chodzi o dostępności stron 291 00:15:56,000 --> 00:16:00,000 tak że nawet użytkownicy w tej sytuacji można usłyszeć lub zobaczyć, że tak powiem, 292 00:16:00,000 --> 00:16:03,000 co to jest to, że znajduje się na stronie. 293 00:16:03,000 --> 00:16:05,000 Jest jeszcze jedna rzecz, że ja tutaj 294 00:16:05,000 --> 00:16:09,000 co jest mało ciekawe, a my zobaczymy, więcej na ten temat problemu ustawić 7 295 00:16:09,000 --> 00:16:12,000 poprzez jeden z szortów czele jednego z kolegów nauczania. 296 00:16:12,000 --> 00:16:15,000 # Zawartość ale odnosi się do zmiennej 297 00:16:15,000 --> 00:16:20,000 którego ID jest zadowolony, ale potem jest spacja, a potem jest wejście słowo. 298 00:16:20,000 --> 00:16:25,000 Cóż, co ciekawe o CSS jest to, że można 299 00:16:25,000 --> 00:16:29,000 odnoszą się do znaczników w rodzaju strony hierarchicznie 300 00:16:29,000 --> 00:16:33,000 i co to urywek pomocą CSS jest znaleźć tag 301 00:16:33,000 --> 00:16:37,000 którego ID jest treść, a następnie zastosować następujące właściwości 302 00:16:37,000 --> 00:16:42,000 do wszystkich tagów wejściowych, które są potomkami treści 303 00:16:42,000 --> 00:16:44,000 , że jest to, że są wcięte w jej wnętrzu. 304 00:16:44,000 --> 00:16:48,000 Wcięcie, ponownie jest niezbędny do komputera, nie człowieka, 305 00:16:48,000 --> 00:16:51,000 ale umownie możemy tiret rzeczy jak idziemy w głąb strony, 306 00:16:51,000 --> 00:16:54,000 więc oznacza to zastosowanie margines 5 pikseli do każdego elementu wejściowego 307 00:16:54,000 --> 00:16:57,000 że gdzieś w środku lub zagnieżdżone wewnątrz 308 00:16:57,000 --> 00:16:59,000  Element, którego ID jest zadowolony. 309 00:16:59,000 --> 00:17:01,000 >> Kto to się odnosi do? 310 00:17:01,000 --> 00:17:03,000 Cóż, jest właściwie tylko te 2 facetów tutaj. 311 00:17:03,000 --> 00:17:05,000 Zauważ, że we wnętrzu postaci tam 2 wejścia, 312 00:17:05,000 --> 00:17:07,000 a nie było dla wszystkich tych przykładów. 313 00:17:07,000 --> 00:17:11,000 Ale zauważ, że te 2 wejścia zdarzyć być zagnieżdżone wewnątrz, 314 00:17:11,000 --> 00:17:13,000 choć trochę głębiej, a warstw kilku wcięć, 315 00:17:13,000 --> 00:17:16,000 wewnątrz znacznika, którego ID jest zadowolony. 316 00:17:16,000 --> 00:17:18,000 Co to znaczy? 317 00:17:18,000 --> 00:17:21,000 Jeśli idziemy do przeglądarki tutaj można zobaczyć nigdy tak lekko- 318 00:17:21,000 --> 00:17:23,000 pozwól mi przybliżyć, że jest trochę wyściółki między przyciskiem 319 00:17:23,000 --> 00:17:25,000 oraz między polem tekstowym. 320 00:17:25,000 --> 00:17:27,000 >> Pozwól, że chwilowo to wyłączyć. 321 00:17:27,000 --> 00:17:30,000 Pozwólcie mi iść do mojego CSS, i pozwól mi iść do przodu i po prostu 322 00:17:30,000 --> 00:17:34,000 zmienić ten margines z 5 pikseli na 0 pikseli. 323 00:17:34,000 --> 00:17:37,000 Pozwólcie mi iść do przodu, a następnie i zapisać plik, przejdź do wyszukiwarki 324 00:17:37,000 --> 00:17:40,000 i ponownie, i oglądać na środku strony. 325 00:17:40,000 --> 00:17:43,000 Wszystko dostałem skompresowane razem, a kiedy pierwszy raz bita ten przykład up 326 00:17:43,000 --> 00:17:46,000 Myślałem, że wyglądał głupio w polu tekstowym, a następnie przycisk bezpośrednio pod nim. 327 00:17:46,000 --> 00:17:50,000 Chciałem pad to trochę, więc wprowadzono marże. 328 00:17:50,000 --> 00:17:55,000 To, czego nie zrobi w wykładzie jest przejść przez kilkadziesiąt 329 00:17:55,000 --> 00:17:58,000 Właściwości CSS, które istnieją, ponieważ, ponownie, są rzeczy takie jak rozmiar czcionki, 330 00:17:58,000 --> 00:18:02,000 waga czcionki, margines, tekst wyrównać, i kilka innych, kilkanaście, 331 00:18:02,000 --> 00:18:06,000 a my odsyłamy w problemu ustawić 7 różnych samouczków internetowych 332 00:18:06,000 --> 00:18:08,000 i odniesienia, które pozwalają na odbiór tych rzeczy. 333 00:18:08,000 --> 00:18:10,000 Ale to, co naprawdę ważne, na koniec dnia, 334 00:18:10,000 --> 00:18:12,000 >> jest zrozumienie, jak te rzeczy są stosowane. 335 00:18:12,000 --> 00:18:15,000 Ponownie, jeśli mamy wewnątrz znacznika style, których 336 00:18:15,000 --> 00:18:19,000 może pójść selektorów, sortowanie identyfikatorów, które określają 337 00:18:19,000 --> 00:18:21,000 , do których chcesz zastosować te właściwości, 338 00:18:21,000 --> 00:18:24,000 a następnie umieścić właściwości jako kluczowy pary wartości 339 00:18:24,000 --> 00:18:28,000 oddzielone dwukropkiem, a następnie zakończył się średnikiem, 340 00:18:28,000 --> 00:18:32,000 czy można zgrać wszystkie tego i umieścić ją w osobnym pliku CSS 341 00:18:32,000 --> 00:18:35,000 samym w sobie. 342 00:18:35,000 --> 00:18:39,000 Wszystko w porządku, wszelkie pytania na temat koncepcji 343 00:18:39,000 --> 00:18:41,000 lub duży obraz z CSS? 344 00:18:41,000 --> 00:18:43,000 Będziesz znów widzieć go więcej w Pset 7, 345 00:18:43,000 --> 00:18:47,000 ale będziemy to zwykle bardzo proste. 346 00:18:47,000 --> 00:18:49,000 No? Dobrze. 347 00:18:49,000 --> 00:18:51,000 To jest czas dla rzeczywistego języka programowania, 348 00:18:51,000 --> 00:18:54,000 i wrócimy do odrobiny CSS w formie przykładu. 349 00:18:54,000 --> 00:18:58,000 PHP jest faktycznie cudownie przystępny język 350 00:18:58,000 --> 00:19:02,000 w tym, że jest prawie równoważne składniowo C. 351 00:19:02,000 --> 00:19:06,000 Innymi słowy, jeśli znasz C, wiesz, w przeważającej części PHP, 352 00:19:06,000 --> 00:19:08,000 przynajmniej składniowo, choć istnieją pewne nowe funkcje 353 00:19:08,000 --> 00:19:10,000 i niektóre nowe koncepcje musimy patrzeć. 354 00:19:10,000 --> 00:19:13,000 >> Jednak dla większości, teraz, że przejście z C do PHP 355 00:19:13,000 --> 00:19:16,000 większość nowych rzeczy jest naprawdę wielki obraz, 356 00:19:16,000 --> 00:19:19,000 jak używać języka do programu w sieci, w przeciwieństwie do 357 00:19:19,000 --> 00:19:23,000 w wierszu polecenia lub w migający znak zachęty jak robiliśmy do tej pory. 358 00:19:23,000 --> 00:19:27,000 Dla porównania, w szczególności z Pset 7 i końcowego nowszym projektu, 359 00:19:27,000 --> 00:19:31,000 nie skorzystać z tego adresu tutaj, jeśli chcesz przeczytać na formalności PHP. 360 00:19:31,000 --> 00:19:34,000 To faktycznie lubię darmowy podręcznik skutecznie, 361 00:19:34,000 --> 00:19:37,000 i znajdują się także, że to co jest naprawdę miłe o PHP 362 00:19:37,000 --> 00:19:41,000 jest to, że nie są setki funkcji się z nią, 363 00:19:41,000 --> 00:19:44,000 natomiast w C, że nie muszą mieć dostęp do 364 00:19:44,000 --> 00:19:47,000 więcej funkcji niż były w bibliotece matematycznej, CS50 biblioteka. 365 00:19:47,000 --> 00:19:51,000 W PHP i wiele współczesnych języków, Python i Ruby wśród nich, 366 00:19:51,000 --> 00:19:54,000 można uzyskać dostęp do wielu innych funkcji, co oznacza, że ​​można dostać się do pisania 367 00:19:54,000 --> 00:19:57,000 dużo mniej kodu, bo można stanąć na barkach innych ludzi 368 00:19:57,000 --> 00:19:59,000 którzy już napisane pewne rzeczy dla Ciebie. 369 00:19:59,000 --> 00:20:03,000 >> Weźmy szybkie zwiedzanie składni PHP i następnie napisać kilka przykładów. 370 00:20:03,000 --> 00:20:06,000 Co jest ładne o PHP przede wszystkim 371 00:20:06,000 --> 00:20:08,000 jest nie ma główną funkcją. 372 00:20:08,000 --> 00:20:10,000 Jeśli chcesz napisać program w PHP, po prostu zacząć pisać kod, 373 00:20:10,000 --> 00:20:12,000 i nie trzeba się martwić o main. 374 00:20:12,000 --> 00:20:14,000 Nie ma int. Nie ma powrotu. 375 00:20:14,000 --> 00:20:17,000 Nie ma argv, argc, co niezbędne podczas pisania programu. 376 00:20:17,000 --> 00:20:20,000 Raczej można po prostu zacząć pisać kod, a jest to po części 377 00:20:20,000 --> 00:20:23,000 ponieważ PHP jest to, co się nazywa językiem interpretowanym. 378 00:20:23,000 --> 00:20:26,000 C został skompilowany i została sporządzona w tym sensie, że rozpoczęcie 379 00:20:26,000 --> 00:20:29,000 z kodem źródłowym, uruchom go poprzez Clang, który jest kompilator, 380 00:20:29,000 --> 00:20:33,000 i ostatecznie po pewnej liczbie kroków otrzymasz kod obiektu, 0s i 1s. 381 00:20:33,000 --> 00:20:36,000 PHP i Python i Ruby i Pearl i inni 382 00:20:36,000 --> 00:20:39,000 Są różne rodzaje języków, w które nie opracowują je. 383 00:20:39,000 --> 00:20:42,000 Nie idź z kodu źródłowego na 0s i 1s. 384 00:20:42,000 --> 00:20:45,000 Wystarczy uruchomić kod źródłowy i uruchomić kod źródłowy 385 00:20:45,000 --> 00:20:49,000 pisząc w zwykłym pliku tekstowym z rozszerzeniem. php w tym przypadku 386 00:20:49,000 --> 00:20:53,000 zamiast. c, i to, co robi program na komputerze 387 00:20:53,000 --> 00:20:57,000 jest to dosłownie interpretuje wiersz kodu przez linia po linii. 388 00:20:57,000 --> 00:21:00,000 >> Innymi słowy, zamiast napisać program i uruchom program 389 00:21:00,000 --> 00:21:04,000 bezpośrednio zamiast tego napisać program z plikiem z rozszerzeniem. php. 390 00:21:04,000 --> 00:21:09,000 Następnie uruchomić program o nazwie php.exe rzeczywistej, jeśli używasz systemu Windows, 391 00:21:09,000 --> 00:21:12,000 lub po prostu PHP, jeśli jesteś na Mac OS lub Linux, 392 00:21:12,000 --> 00:21:17,000 i podać jako wejście do programu PHP własny kod źródłowy, 393 00:21:17,000 --> 00:21:20,000 a jego celem w życiu jest, aby przeczytać szczyt kod do dołu, od lewej do prawej, 394 00:21:20,000 --> 00:21:23,000 i robić, co pan powiedział to zrobić. 395 00:21:23,000 --> 00:21:25,000 >> Zobaczymy, co to będzie oznaczać syntaktycznie. 396 00:21:25,000 --> 00:21:27,000 W PHP mamy warunki. 397 00:21:27,000 --> 00:21:29,000 Ten slajd jest identyczny do tego, co zobaczyliśmy w tydzień 1 398 00:21:29,000 --> 00:21:33,000 bo składniowo warunki, IFS i else IFS i else w PHP 399 00:21:33,000 --> 00:21:35,000 wygląda dokładnie tak. 400 00:21:35,000 --> 00:21:38,000 Jeśli chodzi o obsługę wyrażeń boolowskich, że będziemy wyglądać dokładnie tak. 401 00:21:38,000 --> 00:21:43,000 Jeśli chodzi o Anding rzeczy razem jako zmienne logiczne typu boolean to będzie wyglądać dokładnie tak. 402 00:21:43,000 --> 00:21:46,000 Przełączniki wyglądają tak samo, a otrzymasz dodatkowe korzyści w PHP 403 00:21:46,000 --> 00:21:51,000 że przełączniki w C może tylko włączać char lub int. 404 00:21:51,000 --> 00:21:53,000 Nie można przełączyć na wartość ciągu. 405 00:21:53,000 --> 00:21:55,000 W PHP można rzeczywiście mieć wyrażenie 406 00:21:55,000 --> 00:21:58,000 że jest to zmienna, której zawartość jest string, 407 00:21:58,000 --> 00:22:01,000 i rzeczywiście można zrobić porównania ciągów w rzeczywistym intuicyjny sposób, 408 00:22:01,000 --> 00:22:06,000 nie porównania wskaźnik, w celu podjęcia decyzji, czy należy zrobić sprawę i lub j lub coś innego. 409 00:22:06,000 --> 00:22:09,000 Zobaczymy, że potencjalnie przed długi. 410 00:22:09,000 --> 00:22:11,000 >> Pętle zbyt cudownie są takie same. 411 00:22:11,000 --> 00:22:15,000 Na pętle mają inicjalizacja, warunek i pewną liczbę aktualizacji. 412 00:22:15,000 --> 00:22:18,000 Chociaż istnieją także pętle w PHP. 413 00:22:18,000 --> 00:22:21,000 Zrobić, gdy istnieją także pętle w PHP, 414 00:22:21,000 --> 00:22:26,000 a tablice istnieje w PHP, ale tu, gdzie składnia zaczyna się trochę inaczej, 415 00:22:26,000 --> 00:22:29,000 ale pojęcia są takie same, zaś pojęcia takie same bardzo 416 00:22:29,000 --> 00:22:32,000 jak były w 0 tygodniu z Scratch. 417 00:22:32,000 --> 00:22:34,000 Przede wszystkim jest to znak $. 418 00:22:34,000 --> 00:22:37,000 To był projekt decyzji w PHP przy czym każda zmienna 419 00:22:37,000 --> 00:22:41,000 w PHP przez projekt rozpoczyna się znakiem $. 420 00:22:41,000 --> 00:22:46,000 Nie ma więcej X, Y, Z. To teraz $ x, $ y, $ Z tylko dlatego. 421 00:22:46,000 --> 00:22:49,000 To coś, o których warto pamiętać, a teraz na prawej stronie 422 00:22:49,000 --> 00:22:52,000 to wygląda podobnie do tablicy, 423 00:22:52,000 --> 00:22:54,000 ale jesteśmy w nawiasach kwadratowych, tutaj. 424 00:22:54,000 --> 00:22:57,000 W PHP i JavaScript, a my w końcu zobaczyć, 425 00:22:57,000 --> 00:23:01,000 zadeklarowania tablicy zrobić otwarty nawias kwadratowy i zamknięty nawias kwadratowy, 426 00:23:01,000 --> 00:23:04,000 a potem masz oddzieloną przecinkami listę wartości, czy ints 427 00:23:04,000 --> 00:23:09,000 lub ciągi znaków, lub cokolwiek chcesz, wewnątrz tego wyrażenia tam. 428 00:23:09,000 --> 00:23:11,000 >> Teraz, jak robiliśmy coś takiego w C? 429 00:23:11,000 --> 00:23:16,000 Co było składnia statycznie deklarując tablicę znanych liczb? 430 00:23:16,000 --> 00:23:19,000 Było nawiasy klamrowe, tak niewielka różnica tutaj, ale w obu PHP 431 00:23:19,000 --> 00:23:22,000 i ostatecznie JavaScript po prostu używa nawiasów kwadratowych, tak naprawdę 432 00:23:22,000 --> 00:23:25,000 tylko Ciekawostką tutaj jest znak $ dla nazwy zmiennej 433 00:23:25,000 --> 00:23:28,000 oraz nawiasy kwadratowe, a tam jeden Ciekawostką 434 00:23:28,000 --> 00:23:32,000 , że został pominięty, a z lewej strony znaku =. 435 00:23:32,000 --> 00:23:36,000 Czego brakuje, że już za tydzień wymaga teraz? Tak. 436 00:23:36,000 --> 00:23:38,000 [Niesłyszalne odpowiedź uczeń] 437 00:23:38,000 --> 00:23:41,000 Rozmiar, więc nie ma wzmianki o wielkości tablicy. 438 00:23:41,000 --> 00:23:45,000 Prawdę mówiąc, nie ma żadnej wzmianki o nawiasach po lewej stronie 439 00:23:45,000 --> 00:23:47,000 od znaku =, a co jeszcze brakuje linii? 440 00:23:47,000 --> 00:23:49,000 Tak. >> [Niesłyszalne odpowiedź uczeń] 441 00:23:49,000 --> 00:23:52,000 Typ, więc co jest interesujące w szczególności o PHP 442 00:23:52,000 --> 00:23:56,000 jest to, że nie jest w silnie typami języka C, 443 00:23:56,000 --> 00:23:58,000 i to zdecydowanie wpisane w tym sensie, że trzeba powiedzieć, char, 444 00:23:58,000 --> 00:24:00,000 trzeba powiedzieć, int, musisz powiedzieć pływak. 445 00:24:00,000 --> 00:24:03,000 >> Kiedy tylko chcesz zmienną musisz powiedzieć, co jej Clang typ. 446 00:24:03,000 --> 00:24:05,000 PHP jest trochę leniwy. 447 00:24:05,000 --> 00:24:08,000 Jest luźno wpisane w tym sensie, że 448 00:24:08,000 --> 00:24:11,000 można mieć pływaków i znaków i ciągów 449 00:24:11,000 --> 00:24:14,000 i ints i tak dalej, ale sam język 450 00:24:14,000 --> 00:24:17,000 tak naprawdę nie obchodzi, co można umieścić wewnątrz zmiennej. 451 00:24:17,000 --> 00:24:20,000 Nie musisz informować o tym wcześniej, jakiego rodzaju dane 452 00:24:20,000 --> 00:24:22,000 będzie w zmiennej. 453 00:24:22,000 --> 00:24:24,000 To zależy wyłącznie od Ciebie, więc to jest miły 454 00:24:24,000 --> 00:24:27,000 na tym, że nie musisz się martwić, jak dużo o wpisanie danych 455 00:24:27,000 --> 00:24:29,000 i niepokojące co twoje argumenty są i tak dalej. 456 00:24:29,000 --> 00:24:32,000 Oznacza to również, ewentualnie PHP funkcje będą w stanie powrócić 457 00:24:32,000 --> 00:24:36,000 albo int przez większość czasu, a może raz na jakiś czas 458 00:24:36,000 --> 00:24:40,000 oni zwracają bool, logiczną false, na przykład oznaczać, że coś poszło nie tak. 459 00:24:40,000 --> 00:24:44,000 To daje nam jakieś upsides, ale również będzie nas jakby przez projekt 460 00:24:44,000 --> 00:24:47,000 trochę leniwy, jeśli chodzi o wpisywanie danych. 461 00:24:47,000 --> 00:24:50,000 >> Co jeszcze jest, aby pamiętać, tutaj? 462 00:24:50,000 --> 00:24:54,000 Zmienne wyglądają bardzo to lubi, więc $ s = "hello, world". 463 00:24:54,000 --> 00:24:57,000 To może inferable z poprzedniego przykładu, 464 00:24:57,000 --> 00:24:59,000 i mamy inny rodzaj pętli. 465 00:24:59,000 --> 00:25:02,000 Ten będziemy rzeczywiście zobaczyć raz na jakiś czas, ponieważ jest to bardzo przydatny, 466 00:25:02,000 --> 00:25:04,000 konstrukcji foreach. 467 00:25:04,000 --> 00:25:11,000 W tym przypadku, wykonuje się wewnątrz pętli foreach jego nawiasów 3 słowa zazwyczaj 468 00:25:11,000 --> 00:25:16,000 $ Najpierw coś, co jest, co tablica chcesz iteracyjne nad członkami, 469 00:25:16,000 --> 00:25:19,000 następnie dosłownie słowo kluczowe jako, a następnie w końcu, 470 00:25:19,000 --> 00:25:21,000 inna nazwa zmiennej, że masz do wyboru. 471 00:25:21,000 --> 00:25:23,000 To może być foo, bar, lub element, 472 00:25:23,000 --> 00:25:26,000 i to, co robi ten konstrukt 473 00:25:26,000 --> 00:25:29,000 jest, jeśli $ tablica zawiera 10 elementów 474 00:25:29,000 --> 00:25:34,000 na każdej iteracji tablica ta-przepraszam, na każdej iteracji tej pętli 475 00:25:34,000 --> 00:25:37,000 Zmienna zwany element być aktualizowana 476 00:25:37,000 --> 00:25:40,000 być pierwszy element tablicy, a następnie drugi element w tablicy, 477 00:25:40,000 --> 00:25:44,000 wówczas trzeci element tablicy, tym samym unika się potrzeby 478 00:25:44,000 --> 00:25:46,000 robić lekko irytujący kwadratowy notacji i wspornika 479 00:25:46,000 --> 00:25:49,000 $ I aby wskaźnik do tablicy. 480 00:25:49,000 --> 00:25:53,000 PHP to wszystko tej pracy dla siebie i na każdej iteracji 481 00:25:53,000 --> 00:25:55,000 tylko da ci kolejny element z tablicy 482 00:25:55,000 --> 00:26:01,000 bez konieczności wie lub dba o jej numerycznym indeksem. 483 00:26:01,000 --> 00:26:04,000 >> I wtedy wreszcie, teraz, jest jeszcze jedna cecha PHP 484 00:26:04,000 --> 00:26:08,000 że będzie to niezwykle przydatne, zwłaszcza kiedy rozpocząć programowanie w Internecie, 485 00:26:08,000 --> 00:26:10,000 i że jest znany jako tablicy asocjacyjnej. 486 00:26:10,000 --> 00:26:13,000 Tablice, które znamy do tej pory z 20 sekund temu 487 00:26:13,000 --> 00:26:17,000 i przez ostatnie 8 tygodni indeksowane numerycznie tablice, 488 00:26:17,000 --> 00:26:20,000 rodzaj tradycyjnych tablic gdzie wskaźniki są wskazówki, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, aż do dnia. 490 00:26:23,000 --> 00:26:25,000 Tablice asocjacyjne są dużo bardziej wydajne. 491 00:26:25,000 --> 00:26:28,000 Pozwalają one mieć dowolne klucze, 492 00:26:28,000 --> 00:26:31,000 arbitralne wskaźniki i arbitralne wartości. 493 00:26:31,000 --> 00:26:34,000 Podczas gdy w tradycyjnej tablicy jest 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 w tablicy asocjacyjnej można mieć indeks 495 00:26:37,000 --> 00:26:41,000 lub klucz foo, którego wartość jest bar. 496 00:26:41,000 --> 00:26:46,000 Następnie można mieć inny klucz, którego nazwa jest baz i których wartość jest qux. 497 00:26:46,000 --> 00:26:49,000 >> Znowu głupie informatyka rodzajowe nazwy zmiennych tutaj, 498 00:26:49,000 --> 00:26:55,000 ale chodzi o to, że ta tablica nie ma wspornika 0 lub wsporniku 1. 499 00:26:55,000 --> 00:26:59,000 To zamiast będziemy mieć przerzutki foo i wspornik baz. 500 00:26:59,000 --> 00:27:03,000 To jest dużo bardziej wszechstronny, że będziemy w stanie powiązać 501 00:27:03,000 --> 00:27:07,000 słowa, innymi słowy, klucze z wartościami całkowicie arbitralnie, 502 00:27:07,000 --> 00:27:12,000 a my będziemy w stanie uzyskać te wartości z powrotem w czasie stałym 503 00:27:12,000 --> 00:27:14,000 bo pod maską co asocjacyjna 504 00:27:14,000 --> 00:27:16,000 naprawdę jest to hash table. 505 00:27:16,000 --> 00:27:20,000 Przypomnijmy, że hash table pozwala umieścić w jakimś wejściem 506 00:27:20,000 --> 00:27:25,000 jak umieścić w słowa Dawida, jeśli chcesz wstawić Dawida w jakiś słownik, 507 00:27:25,000 --> 00:27:27,000 a następnie wrócić jakąś wartość zazwyczaj. 508 00:27:27,000 --> 00:27:29,000 W przypadku Speller, prawda czy fałsz. 509 00:27:29,000 --> 00:27:33,000 David lub cokolwiek słowo jest lub nie jest w słowniku. 510 00:27:33,000 --> 00:27:36,000 Asocjacyjna jest naprawdę tylko hash table, 511 00:27:36,000 --> 00:27:38,000 ale jest znacznie bardziej przyjazny dla użytkownika wcielenie niego. 512 00:27:38,000 --> 00:27:41,000 Jak zobaczymy, to będzie, co pozwala nam zrobić kilka rzeczy 513 00:27:41,000 --> 00:27:43,000 bardzo, bardzo łatwo. 514 00:27:43,000 --> 00:27:45,000 >> Rzućmy okiem na kilka podstawowych PHP 515 00:27:45,000 --> 00:27:47,000 przykłady i zobaczyć, co możemy zrobić z tego języka. 516 00:27:47,000 --> 00:27:51,000 Pozwólcie mi iść do przodu i otworzyć się w naszym katalogu źródłowego dziś 517 00:27:51,000 --> 00:27:54,000 Plik o nazwie hello1.php. 518 00:27:54,000 --> 00:27:57,000 Ten plik jest bardziej komentarz niż jest rzeczywisty kod, 519 00:27:57,000 --> 00:28:00,000 więc pozwól mi faktycznie usunąć wszystkie komentarze z pliku 520 00:28:00,000 --> 00:28:05,000 i obecnie do Ciebie chyba najprostszym programem PHP tutaj. 521 00:28:05,000 --> 00:28:07,000 5 linii, a niektóre z nich są białe miejsca, 522 00:28:07,000 --> 00:28:09,000 więc zauważyć kilka kluczowych różnic tutaj. 523 00:28:09,000 --> 00:28:12,000 Plik nazywa hello1.php. 524 00:28:12,000 --> 00:28:16,000 Pierwszy wiersz, choć jest 00:28:18,000 W duchu podobnym do HTML, 526 00:28:18,000 --> 00:28:21,000 że sekwencja znaków powoduje, że komputer 527 00:28:21,000 --> 00:28:25,000 "Hej, komputer, oto program, w którym jesteśmy w PHP". 528 00:28:25,000 --> 00:28:28,000 To sprawia, że ​​na pewno to nie mylić, że to jakiś inny język. 529 00:28:28,000 --> 00:28:30,000 Linia 2 jest ciekawa biała przestrzeń. 530 00:28:30,000 --> 00:28:32,000 Linia 3 to nasz stary przyjaciel printf, 531 00:28:32,000 --> 00:28:34,000 tym razem w kontekście PHP. 532 00:28:34,000 --> 00:28:37,000 PHP ma swoją wersję printf która zachowuje się dokładnie tak samo, 533 00:28:37,000 --> 00:28:39,000 więc jest to po prostu będzie drukować "Hello, World". 534 00:28:39,000 --> 00:28:46,000 A potem ta naprzeciwko tag tutaj>, oznacza, że ​​jest to dla mojego kodu PHP. 535 00:28:46,000 --> 00:28:48,000 >> Przyjrzyjmy się, jak uruchomić to. 536 00:28:48,000 --> 00:28:50,000 Mam zamiar wrócić do mojego okna terminala tutaj. 537 00:28:50,000 --> 00:28:52,000 Mam zamiar iść do mojego PHP katalogu. 538 00:28:52,000 --> 00:28:56,000 Zauważ, że mamy całą masę plików, pierwszy z nich jest hello.php. 539 00:28:56,000 --> 00:29:01,000 Pozwólcie mi iść do przodu i uruchamiania tego, hello1.php, ENTER. 540 00:29:01,000 --> 00:29:03,000 Permission denied. Okay. 541 00:29:03,000 --> 00:29:06,000 W jaki sposób możemy ustalić takie rzeczy w przeszłości? 542 00:29:06,000 --> 00:29:08,000 Co to jest? >> [Niesłyszalne odpowiedź uczeń] 543 00:29:08,000 --> 00:29:11,000 Potrzebujemy do odczytu i zapisu, ale pozwól mi zrobić ls-l. 544 00:29:11,000 --> 00:29:14,000 Zapamiętaj to trochę tajemnicze wyjście podstawie której hello1 545 00:29:14,000 --> 00:29:17,000 wydaje się być do odczytu i zapisu przez mnie 546 00:29:17,000 --> 00:29:19,000 ale odczytane przez każdy inny. 547 00:29:19,000 --> 00:29:22,000 Okazuje się, to rzeczywiście nie jest to krok w dobrym kierunku. 548 00:29:22,000 --> 00:29:25,000 Różnica, ponownie z interpretowanym języku 549 00:29:25,000 --> 00:29:27,000 jest nie uruchomić program bezpośrednio. 550 00:29:27,000 --> 00:29:30,000 Zamiast tego uruchomić tłumacza i oddać go kodu 551 00:29:30,000 --> 00:29:33,000 że napisałeś więc może zinterpretować to linia po linii. 552 00:29:33,000 --> 00:29:36,000 W tym przypadku interpreter lub program faktycznie chcę uruchomić 553 00:29:36,000 --> 00:29:38,000 dosłownie nazywane PHP. 554 00:29:38,000 --> 00:29:41,000 >> Gdzieś na dysku z urządzenia jest program 555 00:29:41,000 --> 00:29:45,000 Ktoś inny napisał o nazwie PHP, lub Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Co mam zamiar zrobić o to będę rzeczywiście uruchomić PHP 557 00:29:48,000 --> 00:29:51,000 ale daj go jako argument wiersza poleceń kod, który napisałem, 558 00:29:51,000 --> 00:29:54,000 i wtedy pomniejszyć i wciskamy Enter. 559 00:29:54,000 --> 00:29:58,000 To działa mój program dla mnie, od góry do dołu, od lewej do prawej. 560 00:29:58,000 --> 00:30:01,000 Pozwólcie mi iść do przodu i otworzyć lekkie odchylenia tego. 561 00:30:01,000 --> 00:30:05,000 W hello2.php ogłoszeniu, że to zbyt 562 00:30:05,000 --> 00:30:08,000 jest w większości komentarzy, więc pozwól mi się pozbyć tych, jako rozrywkę, 563 00:30:08,000 --> 00:30:13,000 i co wyraźnie różni się o tym pliku? 564 00:30:13,000 --> 00:30:15,000 Jest to nowa linia, trochę tajemnicze na szczycie. 565 00:30:15,000 --> 00:30:20,000 W linii 1 to #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin jest konwencja na Linuksie i Mac OS dla plików binarnych, 567 00:30:24,000 --> 00:30:27,000 tak / bin oznacza to folder zawierający kilka plików binarnych 568 00:30:27,000 --> 00:30:29,000 , który jest zaprogramowany, z których jeden jest PHP. 569 00:30:29,000 --> 00:30:32,000 #! nazywany jest shebang, 570 00:30:32,000 --> 00:30:35,000 który jest szybki sposób na powiedzenie, i co to oznacza 571 00:30:35,000 --> 00:30:40,000 jest to, że po uruchomieniu tego programu teraz jest wskazówka na początku pliku 572 00:30:40,000 --> 00:30:44,000 które mówi komputerowi, co do korzystania z tłumacza. 573 00:30:44,000 --> 00:30:47,000 >> Robi się trochę irytujące, jeśli trzeba było poinformować użytkowników i Twoi klienci 574 00:30:47,000 --> 00:30:50,000 "Hej, napisałem ten program o nazwie hello1.php". 575 00:30:50,000 --> 00:30:54,000 Wszystko co musisz zrobić, to zawsze uruchomić PHP, a następnie nazwę tego programu. 576 00:30:54,000 --> 00:30:58,000 Szczerze mówiąc, to po prostu być lepszy do uruchomienia hello1.php, 577 00:30:58,000 --> 00:31:00,000 i rzeczywiście, możemy, jeśli wykonaj następujące czynności. 578 00:31:00,000 --> 00:31:05,000 Pozwólcie mi iść do przodu i robić ls-l, i zauważ, w hello2 to nadal tylko czytać pisać 579 00:31:05,000 --> 00:31:10,000 a potem przeczytaj czytać, więc nie mogę jeszcze zrobić, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Ale to zawsze tak przedstawił krótko ostatni raz, polecenie chmod. 581 00:31:15,000 --> 00:31:20,000 Jeśli zrobić chmod + x, co oznacza wszystkie plusa wykonalności, 582 00:31:20,000 --> 00:31:26,000 a następnie hello2.php a następnie wykonaj ls-l ponownie zauważyć, co zmienić. 583 00:31:26,000 --> 00:31:29,000 One, Linux pokazuje mi nazwę pliku, w zieleni, aby przekazać ideę 584 00:31:29,000 --> 00:31:32,000 twierdzą, że plik wykonywalny, ale co ważniejsze, po stronie lewej 585 00:31:32,000 --> 00:31:36,000 zauważyć, że bit reprezentujący x dla pliku wykonywalnego został ustawiony. 586 00:31:36,000 --> 00:31:42,000 Co to oznacza teraz to mogę uruchomić ./hello2.php jak zwykle, 587 00:31:42,000 --> 00:31:45,000 wcisnąć klawisz enter, a ze względu na shebang na samej górze pliku 588 00:31:45,000 --> 00:31:48,000 To wskazówka, ponownie, do Linuksa, który mówi 589 00:31:48,000 --> 00:31:51,000 używać tłumacza, aby uruchomić ten plik. 590 00:31:51,000 --> 00:31:54,000 Nie martw się o zmuszanie użytkownika do faktycznie wpisywać. 591 00:31:54,000 --> 00:31:57,000 >> A co jest ładne to to rodzaj znaczenia dla moich klientów lub moich znajomych 592 00:31:57,000 --> 00:32:01,000 jaki język Napisałem ten program w, więc mogę iść do przodu z mv 593 00:32:01,000 --> 00:32:04,000 i zmienić tę rzecz do hello2, na przykład. 594 00:32:04,000 --> 00:32:07,000 A teraz, jeśli mam zrobić ./hello2 595 00:32:07,000 --> 00:32:10,000 i pomniejszyć mój program nadal działa. 596 00:32:10,000 --> 00:32:13,000 Te rozszerzenia plików są ludzkie konwencja jest konieczne 597 00:32:13,000 --> 00:32:15,000 na coś takiego i zrobić Clang którzy patrzą na nich. 598 00:32:15,000 --> 00:32:18,000 Ale dla PHP, można nazwać to coś rozszerzenie pliku chcę. 599 00:32:18,000 --> 00:32:22,000 Mógłbym oszukać świat do myślenia, że ​​jestem naprawdę dobry w Ruby, 600 00:32:22,000 --> 00:32:25,000 i mógłbym napisać hello2.rb a następnie uruchomić tego 601 00:32:25,000 --> 00:32:28,000 i voila, teraz mam wersję Ruby, który jest kompletnym kłamstwem. 602 00:32:28,000 --> 00:32:30,000 Ale rozszerzenia plików są bezsensowne 603 00:32:30,000 --> 00:32:35,000 jeśli plik jest wykonywalny i ma tę szczególną wskazówkę na początku pliku. 604 00:32:35,000 --> 00:32:38,000 >> Teraz, jak na bok, pokażę Ci szybko wersję 3, 605 00:32:38,000 --> 00:32:40,000 który jest rodzajem użytecznego sztuczki wiedzieć. 606 00:32:40,000 --> 00:32:45,000 W hello3 zrobiłem coś nieco niewłaściwy 607 00:32:45,000 --> 00:32:47,000 że będę aktualizować w Internecie kodu źródłowego. 608 00:32:47,000 --> 00:32:50,000 W wersji 3 Okazuje się, że na większości komputerów linuksowych 609 00:32:50,000 --> 00:32:53,000 istnieje program o nazwie env dla środowiska, 610 00:32:53,000 --> 00:32:56,000 i co można zrobić, o to, jeśli nie masz pojęcia, gdzie PHP 611 00:32:56,000 --> 00:33:00,000 jest zainstalowany na lokalnym dysku twardym, bo rzeczywiście może to zależy od komputera 612 00:33:00,000 --> 00:33:03,000 że ktoś używa, env prostu mówi env, 613 00:33:03,000 --> 00:33:07,000 który jest na większości systemów, i dowiedzieć się, gdzie PHP jest. 614 00:33:07,000 --> 00:33:11,000 Tylko sztuczka wspólne więc nie musisz się martwić o znalezienie się, gdzie program jest. 615 00:33:11,000 --> 00:33:14,000 Ale jeśli nie uważać, aby dowiedzieć się, gdzie program jest i nie obchodziło dotąd 616 00:33:14,000 --> 00:33:16,000 można użyć, które cieszą. 617 00:33:16,000 --> 00:33:19,000 >> Pozwól, pomniejszyć i typu, które php, 618 00:33:19,000 --> 00:33:23,000 i zauważ, to mówi mi, że to faktycznie w usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 Jest to rodzaj kłamstwa. Jest to także w kosza. 620 00:33:25,000 --> 00:33:27,000 To tylko pokazuje mi pierwsze trafienie. 621 00:33:27,000 --> 00:33:31,000 Jeśli kiedykolwiek zastanawialiście się, gdzie jest Clang, które Clang, to w usr / bin / dzyń, 622 00:33:31,000 --> 00:33:34,000 które sprawiają, usr / bin / zrobić, a co to oznacza to cały czas 623 00:33:34,000 --> 00:33:38,000 Mogłeś być wpisanie usr / bin / dzyń dzyń wprowadzić do uruchomienia, 624 00:33:38,000 --> 00:33:41,000 ale to trochę uciążliwe, aby to zrobić, więc niektóre foldery 625 00:33:41,000 --> 00:33:44,000 jak usr / bin i bin są traktowane jako domyślne 626 00:33:44,000 --> 00:33:50,000 więc komputer wie, szukać w nich dla Ciebie. 627 00:33:50,000 --> 00:33:53,000 Wszelkie pytania dotyczące pisania super, super proste Hello World 628 00:33:53,000 --> 00:33:55,000 w PHP, a następnie uruchomić go? 629 00:33:55,000 --> 00:33:59,000 Bo teraz zaczniemy wprowadzać bardziej przekonujące składni. 630 00:33:59,000 --> 00:34:01,000 Dobra, jedziemy. 631 00:34:01,000 --> 00:34:03,000 Programy te widzieliśmy w rzeczywistości wszystkie z nich wcześniej. 632 00:34:03,000 --> 00:34:07,000 >> Jeśli otworzyć się, na przykład, zróbmy beer1.php, 633 00:34:07,000 --> 00:34:09,000 nie przechodzi przez kilka wersji, ale to, co zrobiłem 634 00:34:09,000 --> 00:34:13,000 została usiadłem i wylał ją lub przekształcone 635 00:34:13,000 --> 00:34:15,000 mój kod C do kodu PHP, tutaj. 636 00:34:15,000 --> 00:34:18,000 Większość z góry pliku jest komentarzy tutaj. 637 00:34:18,000 --> 00:34:20,000 Okazuje się, że jedna nowa funkcja o nazwie readline musimy. 638 00:34:20,000 --> 00:34:23,000 GetString, recall, począwszy od tygodnia 0 był CS50 rzeczą. 639 00:34:23,000 --> 00:34:27,000 PHP posiada własny przyjazny dla użytkownika funkcji o nazwie readline 640 00:34:27,000 --> 00:34:30,000 , który ma 1 argument, który określa polecenia 641 00:34:30,000 --> 00:34:33,000 że chcesz pokazać użytkownikowi, a co robi readline 642 00:34:33,000 --> 00:34:35,000 jest to zwraca co użytkownik wpisze w. 643 00:34:35,000 --> 00:34:39,000 W tym przypadku, jestem deklarując zmienną o nazwie $ n. 644 00:34:39,000 --> 00:34:42,000 Jestem przechowywania w nim wartości zwracanej readline 645 00:34:42,000 --> 00:34:44,000 po proponując użytkownikowi tego łańcucha. 646 00:34:44,000 --> 00:34:47,000 Wystarczy kopii zapasowej, aby faktycznie uruchomić tę rzecz, pozwól mi iść do przodu 647 00:34:47,000 --> 00:34:50,000 i uruchomić beer1.php php. 648 00:34:50,000 --> 00:34:53,000 Ile butelek czy będzie? Zróbmy 2 tym razem. 649 00:34:53,000 --> 00:34:55,000 Enter. To wszystko. 650 00:34:55,000 --> 00:34:59,000 >> Program jest funkcjonalnie identyczne do wersji C z tydzień temu. 651 00:34:59,000 --> 00:35:01,000 Ale składniowo zobaczmy, co się zmieniło. 652 00:35:01,000 --> 00:35:05,000 Po tym, jak dostać int od powiadomienia użytkownika, że ​​robię sprawdzanie błędów, 653 00:35:05,000 --> 00:35:08,000 a jeśli n jest mniejsza niż 1 rzuciłem i wydrukować 654 00:35:08,000 --> 00:35:11,000 Przepraszam wiadomość do użytkownika i wyjeździe z 1. 655 00:35:11,000 --> 00:35:13,000 To też jest trochę inaczej. 656 00:35:13,000 --> 00:35:16,000  W C, co zrobiliśmy? W C wróciliśmy 1. 657 00:35:16,000 --> 00:35:20,000 W PHP można wyjść z 1, który jest szczerze myślę trochę bardziej intuicyjny 658 00:35:20,000 --> 00:35:22,000 bo jesteś dosłownie opuszczania programu. 659 00:35:22,000 --> 00:35:25,000 Wszystko w porządku, a potem tu irytujące piosenki jest identyczny składniowo 660 00:35:25,000 --> 00:35:29,000 wyjątkiem zmiennej, więc tutaj w linii 24 i nowsze 661 00:35:29,000 --> 00:35:31,000 dostrzega moje dla pętli jest prawie taka sama, 662 00:35:31,000 --> 00:35:34,000 ale mam $ przed I i N, 663 00:35:34,000 --> 00:35:37,000 a co brakuje również z linii 26, które mieliśmy w przeszłości 664 00:35:37,000 --> 00:35:39,000 podczas deklarowania zmiennej i? 665 00:35:39,000 --> 00:35:41,000 Nie ma typu. 666 00:35:41,000 --> 00:35:43,000 Błędne jest w PHP powiedzieć int. 667 00:35:43,000 --> 00:35:45,000 Po prostu nie trzeba tego robić. 668 00:35:45,000 --> 00:35:48,000 Komputer, interpreter PHP jest wystarczająco inteligentny, aby zrozumieć 669 00:35:48,000 --> 00:35:51,000 że jeśli umieścić numer w $ I będzie traktować 670 00:35:51,000 --> 00:35:53,000 jak numer dla Ciebie. 671 00:35:53,000 --> 00:35:57,000 A następnie w dół tu wtyczka w $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Wszystko to jest tak samo, a potem tu robimy "Wow, to jest irytujące" printf 673 00:36:00,000 --> 00:36:02,000 i wyjdź (0). 674 00:36:02,000 --> 00:36:05,000 >> Ponownie, jest to, że na wynos choć mamy zamiar spędzić stosunkowo 675 00:36:05,000 --> 00:36:09,000 mało czasu na PHP, na pewno w porównaniu z tego, co zrobiliśmy na C, 676 00:36:09,000 --> 00:36:12,000 to prawie to samo, a więc to, co będziemy robić dziś i następny tydzień 677 00:36:12,000 --> 00:36:14,000 i poza nią jest naprawdę skupić się na niektóre z nowych pomysłów. 678 00:36:14,000 --> 00:36:17,000 Wystarczy zobaczyć, że jedna rzecz nie przekłada się od C, 679 00:36:17,000 --> 00:36:20,000 to był bardzo prosty program, my w tygodniu 1 680 00:36:20,000 --> 00:36:22,000 lub 2, że wartość kostkę. 681 00:36:22,000 --> 00:36:25,000 Ale to, co było interesujące w tym czasie o tym programie jest to, że 682 00:36:25,000 --> 00:36:28,000 wprowadził pojęcie funkcji niestandardowej pisemnej, że my sami napisał. 683 00:36:28,000 --> 00:36:31,000 Składnia PHP jest prawie taka sama. 684 00:36:31,000 --> 00:36:33,000 Oto mój program do góry. 685 00:36:33,000 --> 00:36:35,000 Zauważcie nieobecne jest jakiekolwiek pojęcie main. 686 00:36:35,000 --> 00:36:39,000 Zaczynam pisanie kodu, a to, co się zostanie wykonany przez interpreter. 687 00:36:39,000 --> 00:36:42,000 Mogę wydrukować wynosi teraz 2, prawdopodobnie. 688 00:36:42,000 --> 00:36:44,000 Potem twierdzą cubing ... 689 00:36:44,000 --> 00:36:47,000 Wtedy wywołanie funkcji modułu i przejść w $ x 690 00:36:47,000 --> 00:36:50,000 i przypisać zwróconą wartość do $ x. 691 00:36:50,000 --> 00:36:53,000 Potem twierdzi, że to jest do sześcianu, a potem powiedzieć, że to, co mam nadzieję, że 692 00:36:53,000 --> 00:36:55,000 powie wynosi teraz 8. 693 00:36:55,000 --> 00:36:59,000 Składnia funkcji w PHP jest bardzo nieznacznie inna. 694 00:36:59,000 --> 00:37:01,000 Znowu brakuje to typ zwracany. 695 00:37:01,000 --> 00:37:05,000 Znowu brakuje jest zwracany typ a także brakuje co innego typu? 696 00:37:05,000 --> 00:37:07,000 [Niesłyszalne odpowiedź uczeń] 697 00:37:07,000 --> 00:37:10,000 No dobrze, to dobrze. Wróćmy do tego za sekundę. 698 00:37:10,000 --> 00:37:12,000 >> Nie ma, na przykład, o int. 699 00:37:12,000 --> 00:37:15,000 Nie, na przykład dlatego, że tutaj int znowu w PHP 700 00:37:15,000 --> 00:37:18,000 po prostu nie trzeba i nie należy, że 701 00:37:18,000 --> 00:37:20,000 ale raczej nie ma to nowe hasła nazwie funkcji. 702 00:37:20,000 --> 00:37:23,000 W PHP jest to prawie trochę jaśniejsze, bo kiedy chcesz funkcji 703 00:37:23,000 --> 00:37:26,000 dosłownie znaczy funkcji, nadać mu nazwę, a następnie listę oddzielonych przecinkami 704 00:37:26,000 --> 00:37:28,000 jeśli którekolwiek z jej argumentów. 705 00:37:28,000 --> 00:37:32,000 Nie trzeba mówić nieważne, czy coś takiego, a potem powrót jest taki sam, 706 00:37:32,000 --> 00:37:35,000 $ * $ * $. 707 00:37:35,000 --> 00:37:38,000 Co jest również brakuje? Sammy wskazał to tutaj. 708 00:37:38,000 --> 00:37:43,000 W górnej części w pliku PHP nieobecne prototyp jest również. 709 00:37:43,000 --> 00:37:45,000 To też jest zgodne z projektem. 710 00:37:45,000 --> 00:37:48,000 Języki i tłumacze jak PHP są lepsze niż C kiedykolwiek 711 00:37:48,000 --> 00:37:50,000 w kompilatory jak Clang. 712 00:37:50,000 --> 00:37:53,000 >> Przypomnijmy, że brzęk, jeśli nie powiedzieć, to w ten sześcian istnieje, 713 00:37:53,000 --> 00:37:56,000 jeśli nie powiedzieć to, że printf istnieje jako z prototypem 714 00:37:56,000 --> 00:38:00,000 lub # include, dobrze, że to będzie krzyczeć na ciebie, a nie nawet skompilować kod. 715 00:38:00,000 --> 00:38:03,000 PHP i bardziej nowoczesne języki są dużo lepsze, jeśli chodzi o to. 716 00:38:03,000 --> 00:38:07,000 Wezmą na siebie na przeczytanie wszystkich kodów 717 00:38:07,000 --> 00:38:11,000 i krzyczeć na ciebie tylko wtedy, gdy uzna, nigdzie kostki. 718 00:38:11,000 --> 00:38:15,000 To nie ma znaczenia, czy kostka jest na dole lub na górze, a nawet w jakimś oddzielnym pliku. 719 00:38:15,000 --> 00:38:18,000 PHP i podobne języki są teraz na tyle sprytny, aby spojrzeć w przyszłość 720 00:38:18,000 --> 00:38:26,000 na wszystko przed uznając Cię jako popełnienia błędu. 721 00:38:26,000 --> 00:38:28,000 Gdzie to nas opuścić? 722 00:38:28,000 --> 00:38:32,000 >> Zróbmy jeden ostatni przykład tutaj, w warunkach, 723 00:38:32,000 --> 00:38:35,000 i jeśli mogę otworzyć conditions2.php anons zbyt 724 00:38:35,000 --> 00:38:37,000 syntax jest prawie taka sama. 725 00:38:37,000 --> 00:38:40,000 Używam readline zamiast getString, ale linia jest taka sama jak wcześniej, 726 00:38:40,000 --> 00:38:42,000 "Chciałbym całkowitą proszę." 727 00:38:42,000 --> 00:38:45,000 Mam następnie if warunek else if, a potem jeszcze, 728 00:38:45,000 --> 00:38:48,000 ale funkcjonalnie program ten jest również identyczna, co zrobiliśmy tydzień temu 729 00:38:48,000 --> 00:38:51,000 więc jeśli mogę uruchomić tę rzecz, php, z conditions2 730 00:38:51,000 --> 00:38:54,000 i nadaje jej numer np. 23 - 731 00:38:54,000 --> 00:38:57,000 Wybrałem liczbę dodatnią. Jeśli dam to -1 wybrałem ujemną. 732 00:38:57,000 --> 00:39:00,000 Jeśli dam to 0 I rzeczywiście wybrał 0. 733 00:39:00,000 --> 00:39:02,000 Więc, kto troszczy się o to wszystko? 734 00:39:02,000 --> 00:39:06,000 Cóż, jeden z zabawy w rodzaju ćwiczeń tutaj 735 00:39:06,000 --> 00:39:10,000 przynajmniej dla mnie było, aby wrócić i zobaczyć jak szybko mogłaby wdrożyć Pset 5, 736 00:39:10,000 --> 00:39:12,000 pset ortograficzne. 737 00:39:12,000 --> 00:39:15,000 Przypomnijmy, że był to plik o nazwie speller.c, 738 00:39:15,000 --> 00:39:17,000 i był tam plik o nazwie dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Co zrobiłem było I rodzaju spędził kilka minut i przekształcić kod C 740 00:39:20,000 --> 00:39:23,000 do kodu PHP, a my nie będziemy spędzać dużo czasu na Speller 741 00:39:23,000 --> 00:39:26,000 bo tak jak w zbior 5 tak naprawdę nie trzeba 742 00:39:26,000 --> 00:39:29,000 spędzają dużo czasu na samą Speller ponieważ uwaga była na słowniku. 743 00:39:29,000 --> 00:39:32,000 >> Wystarczy powiedzieć, że jeśli przeczytać Speller, 744 00:39:32,000 --> 00:39:35,000 ten plik tutaj, to dość dużo odpowiednikiem kodu C 745 00:39:35,000 --> 00:39:37,000 daliśmy za Pset 5. 746 00:39:37,000 --> 00:39:39,000 Właśnie dodałem trochę $ w miejscach. 747 00:39:39,000 --> 00:39:43,000 Zmieniłem niektóre nazwy funkcji, jeśli nie istnieje w PHP. 748 00:39:43,000 --> 00:39:45,000 Jest jeszcze jedna dodatkowa rzecz tutaj, preg_match, 749 00:39:45,000 --> 00:39:48,000 który jest trochę bardziej elegancki sposób robienia czegoś, ale wrócimy do tego w końcu. 750 00:39:48,000 --> 00:39:51,000 Ale w skrócie, ortografii jest niemal identyczne, a jeśli spojrzeć na samym dole 751 00:39:51,000 --> 00:39:54,000 co to w końcu wypluwa to jest tutaj, 752 00:39:54,000 --> 00:39:57,000 słowa błędnie, słowa w słowniku, słów w tekście. 753 00:39:57,000 --> 00:40:00,000 Dobra, więc co ciekawe teraz jest następujące. 754 00:40:00,000 --> 00:40:05,000 Na górze mojego pliku jestem wymagająca dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Podobnie jak C jest # include PHP posiada specjalną funkcję o nazwie wymagają 756 00:40:09,000 --> 00:40:14,000 że prawie robi to samo, wymagają plik o nazwie dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Jak można przejść o implementowaniu Pset 5? 758 00:40:18,000 --> 00:40:21,000 Pozwólcie mi iść do przodu i otworzyć plik tutaj. 759 00:40:21,000 --> 00:40:24,000 Pozwól mi zająć trochę odniesienie tutaj. 760 00:40:24,000 --> 00:40:29,000 I pozwól mi utworzyć nowy plik i rozpocząć wywołanie tej dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Powiem to w innym folderze, więc możemy to zrobić na żywo. 762 00:40:31,000 --> 00:40:33,000 A teraz będę powiększyć 763 00:40:33,000 --> 00:40:37,000 Mam zamiar rozpocząć mój plik PHP z otwartym uchwytem php zamknięty uchwyt. 764 00:40:37,000 --> 00:40:40,000 I wtedy tu było kilka funkcji musiałem wdrożyć dla Pset 5, 765 00:40:40,000 --> 00:40:42,000 więc zacznę od realizacji niektórych z nich, 766 00:40:42,000 --> 00:40:47,000 więc kontrola funkcjonowania, która miała podjąć słowo jako argument. 767 00:40:47,000 --> 00:40:49,000 Zrobimy to i wrócić do niej w jednej chwili. 768 00:40:49,000 --> 00:40:53,000 >> Nie było obciążenie funkcja, która miała w czym jako argument? 769 00:40:53,000 --> 00:40:56,000 Słownik, więc plik, że faktycznie chciał załadować. 770 00:40:56,000 --> 00:41:00,000 Było rozmiar funkcja, która nie miała żadnych argumentów 771 00:41:00,000 --> 00:41:04,000 i nie było funkcja-co było inne? 772 00:41:04,000 --> 00:41:06,000 Zwolnij, która nie miała żadnych argumentów, albo. 773 00:41:06,000 --> 00:41:10,000 Są to 4 funkcje, które muszę teraz wdrożyć w PHP, 774 00:41:10,000 --> 00:41:13,000 i co mam zamiar zrobić, to zrób to. 775 00:41:13,000 --> 00:41:16,000 Wielu z was używał tabeli mieszania w Pset 5, 776 00:41:16,000 --> 00:41:21,000 więc pozwól mi iść dalej i utworzyć tabeli mieszania w PHP. 777 00:41:21,000 --> 00:41:23,000 Gotowe. 778 00:41:23,000 --> 00:41:25,000 To daje mi tabeli mieszania. No, dlaczego? 779 00:41:25,000 --> 00:41:30,000 One, zmienna o nazwie $ table, żeby wyczarować pomysł tabeli mieszania. 780 00:41:30,000 --> 00:41:34,000 Nawiasy kwadratowe, choć przypominam, reprezentują co? 781 00:41:34,000 --> 00:41:37,000 Tablicy, ale w tablice PHP nie muszą być indeksowane numerycznie. 782 00:41:37,000 --> 00:41:41,000 Mogą to być również tablice asocjacyjne, 783 00:41:41,000 --> 00:41:44,000 co oznacza, że ​​możesz mieć dowolne klucze i wartości. 784 00:41:44,000 --> 00:41:49,000 >> Podobnie jak w zbior 5, ci z was, którzy nie hash implementacje tabeli 785 00:41:49,000 --> 00:41:53,000 pewnie wstawione słowo, a następnie umieszczono je w łańcuchu połączonych list, 786 00:41:53,000 --> 00:41:56,000 lub przechowywane wartości prawdziwej gdzieś, czy coś w tej sprawie. 787 00:41:56,000 --> 00:41:59,000 Jakoś pamiętać, że słowo było. 788 00:41:59,000 --> 00:42:01,000 Teraz, że to będzie mój hash table, 789 00:42:01,000 --> 00:42:06,000 i tak teraz go o realizacji funkcji wyboru 790 00:42:06,000 --> 00:42:09,000 Po prostu trzeba zajrzeć do tej tabeli mieszania 791 00:42:09,000 --> 00:42:11,000 i sprawdzić, czy słowo ma. 792 00:42:11,000 --> 00:42:15,000 Co mam zamiar zrobić, to mam zamiar powiedzieć, czy- 793 00:42:15,000 --> 00:42:20,000 powiedzmy isset, która jest funkcja PHP, która dosłownie oznacza po prostu jest zestaw kluczy, 794 00:42:20,000 --> 00:42:24,000 tak isset ($ tabela [$ word] 795 00:42:24,000 --> 00:42:29,000 a jeśli tak, zwraca true. 796 00:42:29,000 --> 00:42:32,000 To jest to. To pset 5 w PHP. 797 00:42:32,000 --> 00:42:34,000 Cóż, w uczciwości, w porządku. 798 00:42:34,000 --> 00:42:37,000 Else return false, więc to nie ma. 799 00:42:37,000 --> 00:42:39,000 Co naprawdę się dzieje? 800 00:42:39,000 --> 00:42:42,000 Cóż, jeśli stół lub hash tutaj bardziej ogólnie 801 00:42:42,000 --> 00:42:46,000 jest tablicą asocjacyjną, która oznacza, że ​​można do niego index 802 00:42:46,000 --> 00:42:50,000 słowem, jak "słowo", a trzeba wrócić jakąś wartość. 803 00:42:50,000 --> 00:42:52,000 >> Jesteśmy trochę się o jeden krok przed siebie. 804 00:42:52,000 --> 00:42:56,000 To byłoby miłe, jeśli faktycznie załadowana najpierw plik, 805 00:42:56,000 --> 00:42:58,000 więc obciążenie nie jest tak proste, ale pozwól mi iść do przodu i wzbudzać 806 00:42:58,000 --> 00:43:00,000  naprawdę szybkie wdrożenie obciążenia. 807 00:43:00,000 --> 00:43:07,000 Pozwól mi iść dalej i powiedzieć słowa dostaje słownik pliku. 808 00:43:07,000 --> 00:43:10,000 Funkcja plików w PHP otwiera plik 809 00:43:10,000 --> 00:43:12,000 i wraca do ciebie tablicę wszystkich słów w tym pliku, 810 00:43:12,000 --> 00:43:14,000 tylko podaje je do Ciebie. 811 00:43:14,000 --> 00:43:16,000 To był duży ból też, prawda? 812 00:43:16,000 --> 00:43:21,000 Teraz foreach, to jest nasz nowy konstrukt, foreach ($ wyrazy jak $ słowo). 813 00:43:21,000 --> 00:43:25,000 Ta pętla ruszy iterowanie słowa tablicy 814 00:43:25,000 --> 00:43:30,000 i przypisać do zmiennej $ słowo każde słowo w pliku 815 00:43:30,000 --> 00:43:32,000 z pierwszego do drugiego i trzeciego w czwartej całej drodze 816 00:43:32,000 --> 00:43:35,000 więc nie trzeba robić irytujące [i] zapis i tym podobne. 817 00:43:35,000 --> 00:43:38,000 I co mi po prostu zrobię dla każdego z tych słów 818 00:43:38,000 --> 00:43:43,000 jest przechowywać go w moim stoliku indeksowania do tabeli 819 00:43:43,000 --> 00:43:47,000 a następnie robi prawdziwe, ponieważ pamiętać 820 00:43:47,000 --> 00:43:50,000 że słowo jest w moim słowniku wszystko co naprawdę trzeba zrobić 821 00:43:50,000 --> 00:43:55,000 jest rodzajem przerzucić trochę i powiedzieć, że to słowo w mojej tabeli mieszania jest tam, prawda. 822 00:43:55,000 --> 00:43:58,000 A jeśli go nie ma, to nie trzeba jawnie umieścić fałszywe, 823 00:43:58,000 --> 00:44:01,000 inaczej musiałbym postawić false dla wszystkich możliwych słów w wszechświecie. 824 00:44:01,000 --> 00:44:05,000 >> Wystarczy dla mnie tylko, aby ustawić wartość indeksu 825 00:44:05,000 --> 00:44:09,000 true, jeśli słowo jest rzeczywiście w mojej tabeli mieszania. 826 00:44:09,000 --> 00:44:12,000 Teraz jestem cięcia parę rogów tutaj będę machać rękami na teraz, 827 00:44:12,000 --> 00:44:15,000 ale teraz funkcja obciążenia jest wykonywana. 828 00:44:15,000 --> 00:44:18,000 Załadować wszystkie słowa z pliku do tablicy. 829 00:44:18,000 --> 00:44:21,000 I iteracyjne nad tej tablicy i dla każdego słowa w tablicy 830 00:44:21,000 --> 00:44:24,000 Podłączam go do mojego tabeli mieszania z 1 linii kodu. 831 00:44:24,000 --> 00:44:26,000 To jest zabawa. Wiesz jak możemy realizować rozmiar teraz? 832 00:44:26,000 --> 00:44:28,000 Cóż, rozmiar jest zawsze bardzo proste, w uczciwości. 833 00:44:28,000 --> 00:44:32,000 Tutaj właśnie należy zwracać liczbę tabeli. 834 00:44:32,000 --> 00:44:34,000 To całkiem łatwe, policzyć rzeczy w tabeli. 835 00:44:34,000 --> 00:44:36,000 To właściwie rodzaj nie jest najbardziej efektywny. 836 00:44:36,000 --> 00:44:39,000 Chyba powinienem mieć zmienną wielkość więc możemy to zrobić 837 00:44:39,000 --> 00:44:41,000 w stałym czasie, ale jest to całkiem proste. 838 00:44:41,000 --> 00:44:45,000 Oh, a następnie zwolnić, jeśli naprawdę chcemy być tutaj anal 839 00:44:45,000 --> 00:44:47,000 możemy powiedzieć, że to, w jaki sposób rozładować coś. 840 00:44:47,000 --> 00:44:49,000 Wystarczy ustawić zmienną równą pustej tablicy, 841 00:44:49,000 --> 00:44:51,000 i pozbywa się wszystkiego, co było. 842 00:44:51,000 --> 00:44:53,000 Nie trzeba dzwonić za darmo. 843 00:44:53,000 --> 00:44:56,000 >> Znowu mam wyciąć kilka zakrętów, i przepraszam za zestaw przypisywania problemu 5 844 00:44:56,000 --> 00:45:00,000 chyba w C, ale jeśli teraz idź i uruchomić to, 845 00:45:00,000 --> 00:45:02,000 Zamierzam rzeczywiście uruchomić wersję, że napisałem wcześniej 846 00:45:02,000 --> 00:45:05,000 właśnie tak, że nie popełniłem żadnych błędów składniowych w ogóle. 847 00:45:05,000 --> 00:45:08,000 Pozwólcie mi iść do przodu i uruchamiania Speller. Wykorzystanie jest takie samo. 848 00:45:08,000 --> 00:45:12,000 Tutaj jest plik słownika, który właśnie zawiera słowo foo. 849 00:45:12,000 --> 00:45:15,000 Tutaj jest plik tekstowy, który zawiera tylko foo bar. 850 00:45:15,000 --> 00:45:19,000 Chodźmy sprawdzić pisownię tego, więc Speller, przy użyciu tego pliku słownika na tym pliku tekstowym. 851 00:45:19,000 --> 00:45:21,000 Jest jeden błędnie napisane słowo, bar, i voila. 852 00:45:21,000 --> 00:45:23,000 Sporządzono z Pset 5. 853 00:45:23,000 --> 00:45:30,000 Zróbmy sobie 5-minutową przerwę, tutaj, i wrócimy i nie tylko na PHP. 854 00:45:30,000 --> 00:45:32,000 Dobra, jesteśmy z powrotem. 855 00:45:32,000 --> 00:45:34,000 Zróbmy-Nienawidzisz mnie na chwilę. 856 00:45:34,000 --> 00:45:37,000 Zróbmy teraz faktycznie zobaczyć, czy to nie był pozytywny 857 00:45:37,000 --> 00:45:39,000 faktycznie realizacji tej rzeczy w PHP. 858 00:45:39,000 --> 00:45:43,000 To prawda, zajęło 45 sekund do wykonania. 859 00:45:43,000 --> 00:45:45,000 >> Ale wróćmy teraz do przodu i uruchamiania rzeczy. 860 00:45:45,000 --> 00:45:49,000 Pozwól mi iść dalej i uruchomić wersji C 861 00:45:49,000 --> 00:45:52,000 z Speller, a my uruchomić go na jednym z największych plików, 862 00:45:52,000 --> 00:45:54,000 co jest Biblia Króla Jakuba. 863 00:45:54,000 --> 00:45:57,000 I tak o to w-chodźmy do naszego folderu C, 864 00:45:57,000 --> 00:46:01,000 ortografii na króla Jakuba 5-ga. 865 00:46:01,000 --> 00:46:03,000 Wielu błędnie napisanych wyrazów. 866 00:46:03,000 --> 00:46:06,000 Okay, więc to, że prawdopodobnie masz wyjścia, nawet jeśli czasy są trochę inaczej, 867 00:46:06,000 --> 00:46:09,000 jeśli masz wszystko działa prawidłowo, a więc czas, w sumie, aby sprawdzić pisownię 868 00:46:09,000 --> 00:46:13,000 Biblia Króla Jakuba był 0,38 sekundy, więc dość dobre użyciu tego wdrożenia. 869 00:46:13,000 --> 00:46:16,000 Teraz pozwól mi przejść do wersji PHP, który właśnie napisał. 870 00:46:16,000 --> 00:46:18,000 Pozwólcie mi biegać Speller na króla Jakuba. 871 00:46:18,000 --> 00:46:21,000 Ups, zignorować ten błąd. Jestem w złym katalogu. 872 00:46:21,000 --> 00:46:24,000 Speller na króla Jakuba 5-ga. 873 00:46:46,000 --> 00:46:48,000 Prawie gotowe. 874 00:46:48,000 --> 00:46:51,000 >> Okay, bystry obserwator sobie sprawę, że było więcej niż 3 sekundy tam. 875 00:46:51,000 --> 00:46:54,000 To jest prawda, czas pracy. 876 00:46:54,000 --> 00:46:58,000 Okazuje się, że potrzeba czasu, aby splunąć dużo tekstu z 877 00:46:58,000 --> 00:47:00,000 z powodu buforowania kwestii, ale długie opowiadanie, 878 00:47:00,000 --> 00:47:04,000 to był 3,15 sekundy czasu maszyny, czas procesora, 879 00:47:04,000 --> 00:47:07,000 wobec tego, co było przed chwilą? 880 00:47:07,000 --> 00:47:09,000 Jak 0.3. 881 00:47:09,000 --> 00:47:11,000 Mam na myśli, że to rząd wielkości wolniejsze, więc gdzie to jest 882 00:47:11,000 --> 00:47:14,000 śmieszne spowolnienie pochodzi? 883 00:47:14,000 --> 00:47:17,000 Cóż, tak jak to miało miejsce w przypadku niemal każdej decyzji projektowych zrobiliśmy 884 00:47:17,000 --> 00:47:21,000 w klasie w ciągu ostatnich 9 tygodni nie ma prawie zawsze ten kompromis. 885 00:47:21,000 --> 00:47:24,000 Czasami między tylko przestrzeni, czasami między czasie i przestrzeni, 886 00:47:24,000 --> 00:47:27,000 Przestrzeń, czas i wysiłek na rzecz rozwoju, a nawet tutaj, nawet jeśli 887 00:47:27,000 --> 00:47:31,000 zaoszczędziliśmy mnóstwo czasu, może potencjalnie 20.10.30 godzina 888 00:47:31,000 --> 00:47:34,000 czasu rozwoju wykonawczej do sprawdzania pisowni 889 00:47:34,000 --> 00:47:36,000 przez biczowanie go w zaledwie 45 sekund z tego języka 890 00:47:36,000 --> 00:47:40,000 Cena zwracamy jest to, że aby z wolniejsze w wyniku, 891 00:47:40,000 --> 00:47:43,000 i jest to zazwyczaj w przypadku większości dowolnym języku interpretowane, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl lub inne, zgodnie z którą 893 00:47:46,000 --> 00:47:49,000 jeśli masz zamiar go uruchomić przez tłumacza i go odczytać kod 894 00:47:49,000 --> 00:47:52,000 linia po linii, od góry do dołu, od lewej do prawej, 895 00:47:52,000 --> 00:47:55,000 że pośrednik zajmie trochę czasu, własne, 896 00:47:55,000 --> 00:47:59,000 i co czuli tutaj w 3 sekundy, w przeciwieństwie do 0.3 sekund 897 00:47:59,000 --> 00:48:02,000 jest fakt, że nie jest to pośrednik, który ma dosłownie interpretują nasz kod 898 00:48:02,000 --> 00:48:05,000 linia po linii, a broń Boże, jeśli jesteś wewnątrz pętli 899 00:48:05,000 --> 00:48:08,000 z ogromnym pliku zawierającego setki tysięcy słów. 900 00:48:08,000 --> 00:48:11,000 >> Że narzut będzie dodawać i dodawać i dodawać i dodać. 901 00:48:11,000 --> 00:48:16,000 Narzędzie, jak to prawdopodobnie nie jest najlepszym językiem, aby użyć do implementacji 902 00:48:16,000 --> 00:48:20,000 sprawdzania pisowni czy bezpośredniości jest interesujące dla użytkowników i dla ciebie. 903 00:48:20,000 --> 00:48:23,000 Ale luksus mamy w tej chwili jest, jeśli 904 00:48:23,000 --> 00:48:27,000 używać języka jak PHP lub wiele języków tłumaczeń 905 00:48:27,000 --> 00:48:30,000 w ramach sieci, o to chodzi, masz korzyści 906 00:48:30,000 --> 00:48:34,000 że internet jest dużo wolniejsza niż większości komputerów. 907 00:48:34,000 --> 00:48:38,000 Masz GHz CPU w komputerze, 2 GHz, a może nawet więcej tych dni. 908 00:48:38,000 --> 00:48:41,000 Ale rzeczywistość jest w Internecie istnieje duża ilość opóźnień 909 00:48:41,000 --> 00:48:45,000 przy czym dla przeglądarki, aby porozmawiać na serwerze, chociaż widzieliśmy w zeszłym tygodniu 910 00:48:45,000 --> 00:48:47,000 , że to jest dość szybko, pół milisekundy lub tak, 911 00:48:47,000 --> 00:48:51,000 że zbyt dodaje się, a jeśli ściągniesz rzeczy, jak na obrazku 912 00:48:51,000 --> 00:48:54,000 lub zdjęcia Facebook lub uzyskanie wiadomości na paplaniny Facebook 913 00:48:54,000 --> 00:48:57,000 Gchat lub podobne, wszystkie te czasy podróży 914 00:48:57,000 --> 00:49:00,000 między przeglądarką a początkiem serwera zsumować, 915 00:49:00,000 --> 00:49:03,000 co sprawia, że ​​wybór danego języka, w wielu przypadkach 916 00:49:03,000 --> 00:49:07,000 nie wszystko, co istotne, a więc jesteś w porządku z wykorzystaniem nieco wolniejszy język 917 00:49:07,000 --> 00:49:10,000 jak PHP lub Python i Ruby 918 00:49:10,000 --> 00:49:13,000 ale dla których istnieją ogromne upsides do ty i twoi koledzy 919 00:49:13,000 --> 00:49:17,000 i znajomych, ponieważ można wdrożyć rzeczy tak o wiele szybciej. 920 00:49:17,000 --> 00:49:20,000 A poza tym, masz o wiele mniejsze ryzyko niektórych wad bezpieczeństwa. 921 00:49:20,000 --> 00:49:22,000 Nie ma żadnych wskazówek, w PHP. 922 00:49:22,000 --> 00:49:25,000 Nie ma seg usterek, które można łatwo indukują 923 00:49:25,000 --> 00:49:27,000 w ten sam sposób, w jaki mógłby w C. 924 00:49:27,000 --> 00:49:29,000 Z C, że jesteś bardzo blisko sprzętu. 925 00:49:29,000 --> 00:49:33,000 Z języków PHP i podobna jesteś jakby wyższym poziomie, że tak powiem, 926 00:49:33,000 --> 00:49:37,000 z dużo obrony między tobą, a co faktycznie dzieje 927 00:49:37,000 --> 00:49:39,000 wewnątrz maszyny, i to tylko kompromis. 928 00:49:39,000 --> 00:49:42,000 >> Musimy zdobyć do punktu obecności tych bardziej nowoczesnych, języków wysokiego poziomu 929 00:49:42,000 --> 00:49:47,000 jak PHP, ponieważ z wniosków wyciągniętych w językach takich jak PHP, w C. 930 00:49:47,000 --> 00:49:50,000 Ale jeśli nie rozumieją, co się dzieje pod maską cały czas 931 00:49:50,000 --> 00:49:53,000 na pewno nie można podejmować właściwe decyzje projektowe, 932 00:49:53,000 --> 00:49:56,000 i na pewno, jeśli chodzi o pracę w miejscu, takich jak Facebook czy Google 933 00:49:56,000 --> 00:49:59,000 lub w tych miejscach, które są coraz bardziej gry z zestawów danych dużych 934 00:49:59,000 --> 00:50:01,000 nawet jeśli wrócę i nie premed i pracuje z pewnym MD 935 00:50:01,000 --> 00:50:04,000 na niektórych dużych zestaw danych z udziałem pacjentów i lekarzy 936 00:50:04,000 --> 00:50:08,000 i jak za pomocą odpowiednich narzędzi, jest niezwykle atrakcyjne 937 00:50:08,000 --> 00:50:11,000 bo w przeciwnym wypadku analiza pewnego zbioru danych może trwać sekundy, 938 00:50:11,000 --> 00:50:14,000 lub może to dosłownie wiele godzin. 939 00:50:14,000 --> 00:50:17,000 To tylko jeden przykład, nie naruszyć Ci jak wiele więcej wysiłku 940 00:50:17,000 --> 00:50:21,000 było to w C, ale aby pomóc Ci zrozumieć, że kiedy się zaimplementować coś w C 941 00:50:21,000 --> 00:50:24,000 naprawdę zrozumieć, czy w teorii, naprawdę zrozumieć 942 00:50:24,000 --> 00:50:28,000 jak wszystko jest i powinno działać, i masz prawie pełną kontrolę 943 00:50:28,000 --> 00:50:31,000 nad tym, co się dzieje pod maską, a także z tych języków na poziomie wyższym 944 00:50:31,000 --> 00:50:34,000 musisz zrezygnować z większą kontrolę nad ludźmi, którzy je wymyślili 945 00:50:34,000 --> 00:50:37,000 i podlegają bardziej do ich decyzji projektowych niż twoje. 946 00:50:37,000 --> 00:50:41,000 Ale jeśli przyjąć, że wydajność 947 00:50:41,000 --> 00:50:44,000 nie jest tak ważna w sieci z powodu tych innych sprawach, 948 00:50:44,000 --> 00:50:47,000 zaledwie prędkości sieci są nieco wolniejsze niż prędkość CPU tak, 949 00:50:47,000 --> 00:50:50,000 abyśmy mogli sobie pozwolić na korzystania z nieco wolniejszym język 950 00:50:50,000 --> 00:50:55,000 jeśli upsides to możemy rozwijać rzeczy 10 razy szybciej, a nawet więcej. 951 00:50:55,000 --> 00:50:57,000 >> Zobaczmy, jak możemy zacząć korzystać z tego. 952 00:50:57,000 --> 00:51:00,000 Pozwól mi iść do folderu 953 00:51:00,000 --> 00:51:03,000 wśród dzisiejszych przykładów nazywa frosh.ims, 954 00:51:03,000 --> 00:51:06,000 i to było rzeczywiście osobiście motywowane faktem, że pierwszą rzeczą, 955 00:51:06,000 --> 00:51:10,000 Napisałem dla WWW lata temu po zażyciu CS50 i CS51 956 00:51:10,000 --> 00:51:14,000 była strona programu IM Frosh, Freshman stacjonarne sport, 957 00:51:14,000 --> 00:51:16,000 , które w tym czasie był wystarczająco lat, że w czasie 958 00:51:16,000 --> 00:51:19,000 nie było strona internetowa programu, mimo, że było Web, 959 00:51:19,000 --> 00:51:22,000 i zamiast tego był proctor w Wigglesworth której gdybyś 960 00:51:22,000 --> 00:51:26,000 zarejestrować się w siatkówkę lub piłkę nożną lub cokolwiek chcesz wypełnić kawałek papieru. 961 00:51:26,000 --> 00:51:28,000 Będziesz wtedy przejść przez podwórko. 962 00:51:28,000 --> 00:51:31,000 Wtedy możesz pukać do ich drzwi i zjeżdżalnią w ich drzwi lub rękę do Proctor 963 00:51:31,000 --> 00:51:34,000 kawałek papieru z nazwą na nim, czy nie chcesz być kapitanem zespołu, 964 00:51:34,000 --> 00:51:37,000 Jaki sport chciał zrobić, i co dorm byłeś w. 965 00:51:37,000 --> 00:51:39,000 To było coś w rodzaju starej szkoły sposób robienia rzeczy, i to było głównym 966 00:51:39,000 --> 00:51:41,000 okazja, aby zautomatyzować wiele tego procesu. 967 00:51:41,000 --> 00:51:43,000 Wystarczy wejść na stronę. Wpiszesz coś w. 968 00:51:43,000 --> 00:51:46,000 Otrzymasz e-mail z potwierdzeniem, a boom, jesteś skończony. 969 00:51:46,000 --> 00:51:49,000 >> To była pierwsza rzecz, którą zrobiłem, choć w języku zwanym Pearl, 970 00:51:49,000 --> 00:51:52,000 ale jest to stosunkowo łatwe do wykonania w PHP, i to jest coś w rodzaju przedstawiciela 971 00:51:52,000 --> 00:51:55,000 problemów można rozpocząć rozwiązywanie kiedy można wyrazić siebie 972 00:51:55,000 --> 00:51:58,000 programowo i nie liczyć na takie rzeczy jak stron Google 973 00:51:58,000 --> 00:52:01,000 lub Excel lub narzędzi, które są przekazywane do Ciebie. 974 00:52:01,000 --> 00:52:03,000 Chłopaki mają teraz możliwość, aby robić rzeczy jak to. 975 00:52:03,000 --> 00:52:06,000 To jest bardzo brzydkie wersja postaci 976 00:52:06,000 --> 00:52:09,000 ale niech po prostu użyj go na początku rozmowy, zgodnie z którą jest to 977 00:52:09,000 --> 00:52:12,000 z grubsza to, co postać wyglądała jak rok temu dla nas 978 00:52:12,000 --> 00:52:14,000 aby ludzie w sieci, aby się zarejestrować Frosh IM. 979 00:52:14,000 --> 00:52:18,000 Poprosiliśmy o nazwie, a pole wyboru, czy chcą być kapitanem, 980 00:52:18,000 --> 00:52:21,000 mężczyzna czy kobieta, i co wtedy byli w akademiku, 981 00:52:21,000 --> 00:52:23,000 i wtedy oni wysłać formularz. 982 00:52:23,000 --> 00:52:27,000 Niech najpierw sprawdzić pod maską na HTML, który reprezentuje ten serwis. 983 00:52:27,000 --> 00:52:31,000 Pozwólcie mi iść do froshims0, 984 00:52:31,000 --> 00:52:35,000 i tak na marginesie, dla zbior 7 biorę za pewnik 985 00:52:35,000 --> 00:52:37,000 katalogi i foldery, które Kładę rzeczy w. 986 00:52:37,000 --> 00:52:40,000 Będziemy Cię przez dokładnie, gdzie rzeczy musi pójść w urządzenie, 987 00:52:40,000 --> 00:52:43,000 jakie komendy mod musisz uruchomić, więc nie martw się o wszystkich 988 00:52:43,000 --> 00:52:46,000 głupie szczegóły synchronizacji od get-go tutaj. 989 00:52:46,000 --> 00:52:49,000 >> Dobra, tu jest froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Pozwól, przewiń w dół, a co ciekawe tutaj 991 00:52:52,000 --> 00:52:56,000 jest to plik PHP, ale to co jest w środku niej, wyraźnie? 992 00:52:56,000 --> 00:52:59,000 To jest całe mnóstwo HTML, i rzeczywiście, PHP Początki 993 00:52:59,000 --> 00:53:02,000 naprawdę były za to Web-centric język. 994 00:53:02,000 --> 00:53:04,000 Chwilą użyliśmy go do wdrożenia przykład piwa, 995 00:53:04,000 --> 00:53:07,000 warunki przykład cześć przykład, i to dobrze. 996 00:53:07,000 --> 00:53:11,000 Możesz użyć PHP jako języka skryptowego 997 00:53:11,000 --> 00:53:15,000 gdy skrypt jest naprawdę tylko nazewnictwo podane do programu szybkiego i brudne 998 00:53:15,000 --> 00:53:19,000 lub coś, co można pisać w skryptów lub bardziej ogólnie o języku interpretowane. 999 00:53:19,000 --> 00:53:22,000 PHP jest bardzo przydatna do tego, bo widziałem, jak szybko 1000 00:53:22,000 --> 00:53:24,000 stosunkowo możemy wzbudzać programów w PHP. 1001 00:53:24,000 --> 00:53:27,000 Ale naprawdę przeznaczone do stosowania w sieci, 1002 00:53:27,000 --> 00:53:31,000 , przeznaczonych do sieci w tym sensie, że tu zauważyć na początku pliku 1003 00:53:31,000 --> 00:53:34,000 Mam zacząć 00:53:38,000 Potem mam kilka niepotrzebnych komentarzy, przyznane, ale następnie zamknąć tryb PHP. 1005 00:53:38,000 --> 00:53:41,000 Ale potem wpaść do trybu HTML. 1006 00:53:41,000 --> 00:53:45,000 >> Co ciekawe o PHP to nawet jeśli plik ma rozszerzenie. Php 1007 00:53:45,000 --> 00:53:48,000 Jest to generalnie ma być wymieszane z HTML, 1008 00:53:48,000 --> 00:53:50,000 jakiś kod PHP, niektóre HTML. 1009 00:53:50,000 --> 00:53:53,000 I zobaczymy, w końcu, że możemy zacząć drażnić tych, oprócz 1010 00:53:53,000 --> 00:53:56,000 i utrzymać nasz HTML oddzielony od naszego PHP całkowicie, 1011 00:53:56,000 --> 00:53:59,000 ale początki PHP naprawdę było dać tej elastyczności, 1012 00:53:59,000 --> 00:54:02,000 że jeśli chcesz niektóre HTML wystarczy napisać, i że będzie 1013 00:54:02,000 --> 00:54:04,000 wypluć identycznie w przeglądarce. 1014 00:54:04,000 --> 00:54:07,000 Ale jeśli potrzebujesz trochę techniki programowania, 1015 00:54:07,000 --> 00:54:12,000 niektóre kodu programowania, można także umieścić go w tym samym pliku, dokładnie, jak się wkrótce przekonamy. 1016 00:54:12,000 --> 00:54:14,000 Tu jest mój HTML. 1017 00:54:14,000 --> 00:54:16,000 Mam tytuł to dla Frosh IM. 1018 00:54:16,000 --> 00:54:20,000 Mam znacznika body, który dostał kilka CSS na nim wszystkiego centrum w środku, 1019 00:54:20,000 --> 00:54:23,000 i tu mam formularz, który najwyraźniej ma zamiar złożyć 1020 00:54:23,000 --> 00:54:27,000 do nowego pliku o nazwie register0.php, więc widzimy, że w jednej chwili. 1021 00:54:27,000 --> 00:54:31,000 Jest metodą, która po nazwie wrócimy, jak również. 1022 00:54:31,000 --> 00:54:34,000 Potem mam kilka wejść tworzy, jeden o nazwie name, którego typem jest text, 1023 00:54:34,000 --> 00:54:37,000 ten, którego nazwa jest kapitanem, którego typ jest checkbox, 1024 00:54:37,000 --> 00:54:40,000 a to, że nie widziałem go wcześniej, ale robi dokładnie to co mówi. 1025 00:54:40,000 --> 00:54:42,000 Otrzymasz wyboru zamiast pola tekstowego. 1026 00:54:42,000 --> 00:54:46,000 Tu masz opcję, która jest jedną z tych okrągłych przycisków 1027 00:54:46,000 --> 00:54:48,000 że możesz wybrać ten lub że jedno. 1028 00:54:48,000 --> 00:54:52,000 >> Zauważ, że to celowe, że dałem obu przycisków radiowych nazwę płci. 1029 00:54:52,000 --> 00:54:55,000 W ten sposób można uzyskać wzajemne wykluczanie w którym musisz kliknąć 1030 00:54:55,000 --> 00:54:58,000 albo to, że jeden lub jeden, i inne kliknięcie 1031 00:54:58,000 --> 00:55:01,000 to unchecks inne, więc trzeba dać im tę samą nazwę 1032 00:55:01,000 --> 00:55:03,000 jeśli chcesz, żeby się wzajemnie wykluczać takiego. 1033 00:55:03,000 --> 00:55:07,000 A następnie na akademiku, nie sądzę, że to jeszcze nie widziałem, ale to jest wybór menu, rozwijane menu. 1034 00:55:07,000 --> 00:55:09,000 Tag bo to select. 1035 00:55:09,000 --> 00:55:11,000 Następnie dać menu rozwijanego nazwę, 1036 00:55:11,000 --> 00:55:13,000 i wtedy masz całą masę tych opcji. 1037 00:55:13,000 --> 00:55:16,000 Pierwszy z nich, tylko dla estetyki, jest pusty. 1038 00:55:16,000 --> 00:55:20,000 Chciałem tylko rozwijane być domyślnie puste, 1039 00:55:20,000 --> 00:55:22,000 i potem jest Apley, Canaday, Grays, i tak dalej. 1040 00:55:22,000 --> 00:55:24,000 I zwróć uwagę na dychotomię tutaj. 1041 00:55:24,000 --> 00:55:27,000 Opcja w rozwijanym ma wartość, 1042 00:55:27,000 --> 00:55:30,000 ale ma nazwę przyjazny człowieka, który w tym przykładzie 1043 00:55:30,000 --> 00:55:33,000 jest identyczna, ale jeśli naprawdę chce być anal mogliśmy 1044 00:55:33,000 --> 00:55:36,000 Wartość tej rozwijanej być tylko wersja skrócona, 1045 00:55:36,000 --> 00:55:39,000 Grays, ale możemy naprawdę powiedzieć Grays Hall że ludzki rzeczywiście widzi, 1046 00:55:39,000 --> 00:55:43,000 ale to nie wszystko, co ciekawe, więc po prostu ciągle to proste i uczynił je identyczne. 1047 00:55:43,000 --> 00:55:46,000 Następnie w dół na dole mamy przycisk Submit 1048 00:55:46,000 --> 00:55:49,000 co widzieliśmy wcześniej, ale zauważ, Właśnie dałem mu inny wyraz. 1049 00:55:49,000 --> 00:55:53,000 Zamiast CS50 wyszukiwanie dałem etykietę "Register". 1050 00:55:53,000 --> 00:55:56,000 >> Wynik końcowy jest ta strona tutaj, i jeszcze raz, 1051 00:55:56,000 --> 00:56:00,000 skąd to się przedłożyć? 1052 00:56:00,000 --> 00:56:04,000 To staje się złożone w jakimś pliku, wartość atrybutu akcji, 1053 00:56:04,000 --> 00:56:07,000 który był register0.php. 1054 00:56:07,000 --> 00:56:09,000 Zobaczmy, co faktycznie dzieje się tutaj. 1055 00:56:09,000 --> 00:56:13,000 Pozwól mi iść dalej i wypełnij ten formularz, powiedzieć David, 1056 00:56:13,000 --> 00:56:16,000 mężczyzna, Matthews, a następnie powiem zarejestrować. 1057 00:56:16,000 --> 00:56:18,000 Pozwól oddalić i kliknij zarejestruj. 1058 00:56:18,000 --> 00:56:22,000 Ok, więc niby nic, ale zobaczymy, co się rzeczywiście dzieje. 1059 00:56:22,000 --> 00:56:26,000 Zauważ, że adres URL zmienił się register0.php. 1060 00:56:26,000 --> 00:56:34,000 Co to jest dziwnie nieobecny w adresie URL, ale, mimo że właśnie złożył formularz? 1061 00:56:34,000 --> 00:56:37,000 [Niesłyszalne odpowiedź uczeń] 1062 00:56:37,000 --> 00:56:39,000 Dobrze, że to tylko Chrome jest przyjazny dla użytkownika w tych dniach. 1063 00:56:39,000 --> 00:56:42,000 To faktycznie istnieje. Oni po prostu ukryć, aby zaoszczędzić miejsce. 1064 00:56:42,000 --> 00:56:44,000 Ale dobre myśli, dobre myśli. 1065 00:56:44,000 --> 00:56:46,000 W kierunku do drugiego końca URL, jednak brakuje co? Tak. 1066 00:56:46,000 --> 00:56:48,000 [Student] query string. 1067 00:56:48,000 --> 00:56:51,000 Query string, więc przypominam od naszych prostych przykładów wyszukiwania Google. 1068 00:56:51,000 --> 00:56:54,000 Jak tylko kliknij przycisk Submit URL 1069 00:56:54,000 --> 00:57:00,000 zabrał mnie do Google, ale wtedy nie było? q = ekonomia lub cokolwiek wpisał w. 1070 00:57:00,000 --> 00:57:04,000 To dlatego, że stosowane metody GET na przykładzie wyszukiwania. 1071 00:57:04,000 --> 00:57:06,000 >> Tym razem za pomocą jakiej metody zamiast? 1072 00:57:06,000 --> 00:57:10,000 Pisać, jeden z bezpośrednich wyróżnień 1073 00:57:10,000 --> 00:57:14,000 między GET i POST, że post nie umieścić wprowadzane przez użytkownika w adresie URL. 1074 00:57:14,000 --> 00:57:16,000 Ukrywa go. Nadal wysyła go. 1075 00:57:16,000 --> 00:57:19,000 W rzeczywistości, to co widzimy w przeglądarce, tutaj, jak się ujawnić w chwili 1076 00:57:19,000 --> 00:57:22,000 patrząc na register0 jest Ja tylko zobaczyć zawartość 1077 00:57:22,000 --> 00:57:25,000 z tablicy, które zostały przedłożone z przeglądarki do serwera. 1078 00:57:25,000 --> 00:57:29,000 Ale URL nie posiada?, Nie ma żadnych słów kluczowych 1079 00:57:29,000 --> 00:57:31,000 lub wartości w nim, a to dlaczego? 1080 00:57:31,000 --> 00:57:35,000 Cóż, po pozwala nadal przesyłać dane z formularza do serwera, 1081 00:57:35,000 --> 00:57:38,000 ale nie umieścić go w URL, więc jaki rodzaj informacji jest post 1082 00:57:38,000 --> 00:57:41,000 szczególnie odpowiedni dla być może, gdy jesteś z prośbą o 1083 00:57:41,000 --> 00:57:44,000 wpisz w wejściu do formy? 1084 00:57:44,000 --> 00:57:48,000 Coś jak hasło, coś, co jeszcze? 1085 00:57:48,000 --> 00:57:50,000 Numery kart kredytowych. 1086 00:57:50,000 --> 00:57:53,000 Wszystko, co znajduje się średnio wrażliwe pewnie nie chcesz kończący się w adresie URL 1087 00:57:53,000 --> 00:57:56,000 choćby dlatego, że oznacza to, że twój współlokator lub członek rodziny może po prostu troll przez 1088 00:57:56,000 --> 00:57:59,000 historia Internetu, a następnie dosłownie zobaczyć hasła, 1089 00:57:59,000 --> 00:58:02,000 dosłownie zobaczyć swoje numery kart kredytowych, ponieważ większość przeglądarek 1090 00:58:02,000 --> 00:58:05,000 Pamiętam, jak w historii, co używać byłaś przy, 1091 00:58:05,000 --> 00:58:09,000 więc jeśli tylko dlatego, że byłby to zły pomysł. 1092 00:58:09,000 --> 00:58:11,000 Korzystanie skór post, który szczegółowo od użytkownika. 1093 00:58:11,000 --> 00:58:14,000 >> Ponadto, jak można przesłać zdjęcia do Facebook? 1094 00:58:14,000 --> 00:58:17,000 Cóż, tylko 2 mechanizmy naprawdę można użyć, 1095 00:58:17,000 --> 00:58:21,000 choć jest kilka innych, bardziej tajemnicze nich jest GET i POST. 1096 00:58:21,000 --> 00:58:26,000 Jak można ewentualnie załadować zdjęcie za pośrednictwem URL? 1097 00:58:26,000 --> 00:58:28,000 Rzeczywiście można to zrobić. 1098 00:58:28,000 --> 00:58:30,000 Możesz wziąć JPEG lub bitmapę lub GIF i można ją reprezentować w systemie szesnastkowym 1099 00:58:30,000 --> 00:58:32,000 lub coś, co nazywa baza 64. 1100 00:58:32,000 --> 00:58:35,000 Zamiast bazy 16 użyć 64 bazowej, która w istocie wygląda 1101 00:58:35,000 --> 00:58:38,000 ASCII, i można faktycznie załadować zdjęcie za pośrednictwem adresu URL 1102 00:58:38,000 --> 00:58:41,000 po znaku zapytania, ale są zazwyczaj limity rozmiaru. 1103 00:58:41,000 --> 00:58:44,000 Większość przeglądarek zmusić używać do nie więcej niż 1000 znaków, 1104 00:58:44,000 --> 00:58:47,000 Może 2.000 znaków lub podobne, więc nie można załadować 1105 00:58:47,000 --> 00:58:50,000 10 MB Facebook zdjęcie. 1106 00:58:50,000 --> 00:58:54,000 Na korzystanie stanowiska, tak więc teraz się podnosi parametry w URL, 1107 00:58:54,000 --> 00:58:57,000 co jest miłe i przydatne czasami, ale za nic wrażliwej lub duże 1108 00:58:57,000 --> 00:58:59,000 post jest droga. 1109 00:58:59,000 --> 00:59:02,000 Co to jest register0 faktycznie tu robisz? 1110 00:59:02,000 --> 00:59:05,000 Cóż, gdybym otwarcie register0 informuje, że jest to super proste strony, 1111 00:59:05,000 --> 00:59:09,000 ale to świadczy o tym, że mogę współpracować mieszają, na dobre i na złe, 1112 00:59:09,000 --> 00:59:12,000 HTML z PHP. 1113 00:59:12,000 --> 00:59:15,000 Cały ten plik, z wyjątkiem uwag na górze, to HTML 1114 00:59:15,000 --> 00:59:19,000 oprócz tego faceta tutaj. 1115 00:59:19,000 --> 00:59:22,000 >> Zawiadomienie w środku mojego kodu PHP, 1116 00:59:22,000 --> 00:59:26,000 w środku mojego HTML, mam niejakie tymczasowo 1117 00:59:26,000 --> 00:59:28,000 wszedł do trybu PHP. 1118 00:59:28,000 --> 00:59:31,000 Dzwonię specjalną funkcję o nazwie print r. 1119 00:59:31,000 --> 00:59:34,000 Oznacza to wydrukować recursive, a co to robi to rekursywnie drukuje 1120 00:59:34,000 --> 00:59:38,000 cokolwiek zmienna oddać go, średnik, exit tryb PHP. 1121 00:59:38,000 --> 00:59:40,000 I pre tag daje wstępnie sformatowane, 1122 00:59:40,000 --> 00:59:43,000 text space mono tak, że każda przestrzeń rzeczywiście zobaczyć. 1123 00:59:43,000 --> 00:59:46,000 To nie zniknie. Czym jest post? 1124 00:59:46,000 --> 00:59:48,000 Cóż, co ciekawe i przekonujące o PHP 1125 00:59:48,000 --> 00:59:52,000 jest to, że w dowolnym momencie złożyć formularz używając GET lub POST 1126 00:59:52,000 --> 00:59:56,000 wszystko, co jest przekazywane do ciebie przez przeglądarkę 1127 00:59:56,000 --> 01:00:00,000 PHP sam wymyśli, co te pary wartości są najważniejsze, 1128 01:00:00,000 --> 01:00:02,000 Liczby się, czy jest równe znaki, figury, czy nie ma znaku zapytania. 1129 01:00:02,000 --> 01:00:07,000 To nie wszystkie ciężkiej pracy dla Ciebie, a następnie wręcza ci tablicy asocjacyjnej 1130 01:00:07,000 --> 01:00:10,000 zawierający wszystko, co użytkownik wpisze do formularza. 1131 01:00:10,000 --> 01:00:12,000 Cóż, co pola nie ta forma ma? 1132 01:00:12,000 --> 01:00:14,000 >> Miał 4 pola. 1133 01:00:14,000 --> 01:00:16,000 Jeden był polu tekstowym Nazwa. 1134 01:00:16,000 --> 01:00:18,000 Jeden był checkbox nazywa kapitan. 1135 01:00:18,000 --> 01:00:22,000 Jeden był przycisk radiowy nazywa płeć, 1136 01:00:22,000 --> 01:00:24,000 a jedno było rozwijane menu o nazwie akademiku, 1137 01:00:24,000 --> 01:00:27,000 więc zauważyć podczas drukowania rekurencyjnie 1138 01:00:27,000 --> 01:00:29,000 Zawartość tej zmiennej specjalnej. 1139 01:00:29,000 --> 01:00:34,000 Jest to specjalna zmienna globalna o nazwie dosłownie $ _POST, we wszystkich czapkach. 1140 01:00:34,000 --> 01:00:39,000 Jest to specjalna zmienna globalna, że ​​PHP tylko tworzy dla Ciebie 1141 01:00:39,000 --> 01:00:42,000 i ręce do Ciebie tak, że można uzyskać dostęp do wszystkiego 1142 01:00:42,000 --> 01:00:45,000 , że został przedstawiony za pomocą formy, przez użytkownika. 1143 01:00:45,000 --> 01:00:48,000 Oraz wzywając r drukowania na nim-nie byłoby to zrobić w normalnym stosowaniu. 1144 01:00:48,000 --> 01:00:50,000 Robimy to, aby zobaczyć wnętrze tej zmiennej, 1145 01:00:50,000 --> 01:00:53,000 i co jest w jej środku, dobrze, 4 klucze, 1146 01:00:53,000 --> 01:00:56,000 4 parametry HTTP, by tak rzec, 1147 01:00:56,000 --> 01:00:59,000 nazwa, kapitan, płeć, dorm, a następnie wartości, które użytkownik 1148 01:00:59,000 --> 01:01:01,000 wpisane z jednym wyjątkiem. 1149 01:01:01,000 --> 01:01:03,000 Zrobiłem typ D--V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Sprawdziłem pole, choć dla mężczyzny, który najwyraźniej przedstawione wartości 1151 01:01:05,000 --> 01:01:07,000 po prostu m być zwięzłe. 1152 01:01:07,000 --> 01:01:10,000 >> Kiedy wybrany Matthews to wartość, która mnie wybrana, 1153 01:01:10,000 --> 01:01:12,000 i to jest trochę głupie, ale to konwencja. 1154 01:01:12,000 --> 01:01:17,000 Gdy zaznaczone jest pole wyboru, wartość na ", na", ale wniosek o pole wyboru. 1155 01:01:17,000 --> 01:01:21,000 Gdybym nie sprawdził, brak wartości zostałyby wysłane w ogóle. 1156 01:01:21,000 --> 01:01:26,000 To tylko daje nam wgląd w to, co jest w środku tego specjalnej zmiennej globalnej, 1157 01:01:26,000 --> 01:01:29,000 i to jest tak wyjątkowa, że ​​to się nazywa bardzo zmienną globalną. 1158 01:01:29,000 --> 01:01:33,000 To istnieje wszędzie na Ciebie w kodzie tak, że rzeczywiście można do niego dostęp. 1159 01:01:33,000 --> 01:01:36,000 To nie jest to, że atrakcyjne, więc niech to faktycznie używać super Globalna 1160 01:01:36,000 --> 01:01:38,000 i rzeczywiście spróbować zarejestrować kogoś. 1161 01:01:38,000 --> 01:01:41,000 W froshims1 zamierzam zrobić jedną zmianę. 1162 01:01:41,000 --> 01:01:44,000 Zmieniam skargi za register1.php, 1163 01:01:44,000 --> 01:01:46,000 i robię jedno. 1164 01:01:46,000 --> 01:01:48,000 Byłam trochę zażenowana jakością mojej stronie tam. 1165 01:01:48,000 --> 01:01:52,000 Jest to dość ohydny, szczerze, więc okazuje się, 1166 01:01:52,000 --> 01:01:56,000 że można użyć bardzo łatwo w internecie 1167 01:01:56,000 --> 01:01:59,000 JavaScript innych ludzi kodu, CSS innych ludzi 1168 01:01:59,000 --> 01:02:02,000 że już napisane i open source i udostępniony jako biblioteki, 1169 01:02:02,000 --> 01:02:06,000 że tak powiem, i na przykład, tutaj używam swobodnie dostępne biblioteki, 1170 01:02:06,000 --> 01:02:08,000 masa kodu, że ktoś inny napisał. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter się napisać ten kod, a to się nazywa Biblioteka bootstrap, 1172 01:02:11,000 --> 01:02:15,000 i to tylko kilka arkuszy stylów CSS, pęczek. css 1173 01:02:15,000 --> 01:02:19,000 że ktoś inny napisał i zorientowali się, jak się wszystko ładnie i dość 1174 01:02:19,000 --> 01:02:22,000 tak, że ludzie tacy jak my mogą martwić trochę mniej o estetyce i skupić się bardziej 1175 01:02:22,000 --> 01:02:24,000 na logice i programowania rzeczywistych. 1176 01:02:24,000 --> 01:02:30,000 Łącząc go z tym znacznikiem, który jest taki sam tag Kiedyś pamiętam na styles3.css wcześniej, 1177 01:02:30,000 --> 01:02:34,000 I mają teraz dostęp do pliku o nazwie bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min po prostu oznacza, że ​​już go minified a oni pozbyć wszystkich białej przestrzeni i tak dalej 1179 01:02:37,000 --> 01:02:40,000 by upewnić się, że nie wysyłasz mi więcej bajtów, niż faktycznie potrzebujemy. 1180 01:02:40,000 --> 01:02:45,000 Ale tam jest cała masa CSS, więc jeśli teraz otworzyć wersję 1 Frosh IM 1181 01:02:45,000 --> 01:02:49,000 Zauważ, że mój plik jest zdecydowanie ładniejsza. 1182 01:02:49,000 --> 01:02:54,000 Teraz to jest wciąż tylko czarne i białe, ale zauważ, że tylko przy użyciu ich arkusz stylów 1183 01:02:54,000 --> 01:02:58,000 i korzystania z określonych funkcji to na moim formularzu, że nie jest niesamowite, 1184 01:02:58,000 --> 01:03:01,000 ale to zdecydowanie czystsze niż to było wcześniej, a projektor nie robi sprawiedliwości. 1185 01:03:01,000 --> 01:03:05,000 Jest małe szare linie wokół przycisków i wokół pola tekstowego właśnie tutaj, 1186 01:03:05,000 --> 01:03:07,000 ale to zdecydowanie czystsze niż to było wcześniej. 1187 01:03:07,000 --> 01:03:09,000 >> Teraz, w uczciwości, ja musiałem zmienić mój markup trochę. 1188 01:03:09,000 --> 01:03:12,000 To jest w wersji 1, i zauważ, że użyłem kilka nowych znaczników, 1189 01:03:12,000 --> 01:03:17,000 i szczerze mówiąc, nie miałem pojęcia, jak to zrobić, dopóki nie przeczytałem w dokumentacji 1190 01:03:17,000 --> 01:03:20,000 dla biblioteki bootstrap Twittera, i powiedzieli mi, jeśli chcesz korzystać z naszej biblioteki 1191 01:03:20,000 --> 01:03:23,000 wykorzystać element fieldset wewnątrz formularza, 1192 01:03:23,000 --> 01:03:27,000 umieścić słowo, które chcesz pokazać obok pola wewnątrz znacznika etykiety, 1193 01:03:27,000 --> 01:03:30,000 następnie dać wprowadzić nazwę, podobnie jak poprzednio, 1194 01:03:30,000 --> 01:03:34,000 a następnie do wyboru, nie tylko pan zawinąć go w element etykiety, 1195 01:03:34,000 --> 01:03:36,000 używać czegoś, co nazywa klasa, więc nie widziałem tego wcześniej, 1196 01:03:36,000 --> 01:03:39,000 ale zobaczysz to w jednym z jego szorty Pset 7. 1197 01:03:39,000 --> 01:03:43,000 Klasy w CSS pozwala zrobić coś bardzo podobnego do identyfikatora, 1198 01:03:43,000 --> 01:03:46,000 ale wcześniej, kiedy mieliśmy ID z symbolem # 1199 01:03:46,000 --> 01:03:48,000 to było dla jednego i tylko jednego elementu. 1200 01:03:48,000 --> 01:03:51,000 Co jest ładne o klasie jest to, że wiele elementów może posiadać tę samą klasę 1201 01:03:51,000 --> 01:03:54,000 lub tego samego materiału CSS stosowana. 1202 01:03:54,000 --> 01:03:57,000 >> Ale znowu, nie tylko na te, w skrócie, a reszta to po prostu skopiować i wkleić 1203 01:03:57,000 --> 01:04:00,000 z ich dokumentacją, gdzie dodałem etykietę tu i tam. 1204 01:04:00,000 --> 01:04:03,000 I na koniec, bo Podaję link tag na górze, 1205 01:04:03,000 --> 01:04:06,000 wszystko wygląda ładniej automatycznie 1206 01:04:06,000 --> 01:04:10,000 po prostu po oznaczony moją stronę w sposób, który 1207 01:04:10,000 --> 01:04:12,000 Twitter spodziewać, i nie ma tak wiele różnych sposobów 1208 01:04:12,000 --> 01:04:14,000 w ten sposób, i to jest rzeczywiście bardzo odpowiednie. 1209 01:04:14,000 --> 01:04:17,000 W tym momencie w semestrze, jak zobaczysz w specyfikacji Pset 7 w, 1210 01:04:17,000 --> 01:04:20,000 Googling wokół, czytania na bibliotek, za pomocą CSS cudze 1211 01:04:20,000 --> 01:04:23,000 i JavaScript do rozwiązywania dodatkowych problemów 1212 01:04:23,000 --> 01:04:26,000 do zestawu, sam problem jest z pewnością zachęcać i jest droga 1213 01:04:26,000 --> 01:04:29,000 Sieć zbudowana jest w tych dniach, stojąc na barki innych ludzi 1214 01:04:29,000 --> 01:04:32,000 tak aby można było się skupić na problemach nowe i ciekawe. 1215 01:04:32,000 --> 01:04:34,000 Ale niech się teraz skupić na, ponownie, logiki. 1216 01:04:34,000 --> 01:04:38,000 >> To był szybki objazd na estetykę tylko pokazać kierunek, w którym można przejść. 1217 01:04:38,000 --> 01:04:40,000 Zamierzam powrócić do brzydsze jeden na teraz, tylko dlatego, 1218 01:04:40,000 --> 01:04:44,000 nie ma żadnych rozrywek z rzeczy Twitter, i pozwól mi iść do przodu i otworzyć 1219 01:04:44,000 --> 01:04:51,000 froshims2, które ponownie, różni się tylko w działania, register2.php, 1220 01:04:51,000 --> 01:04:55,000 i rzućmy okiem na to, co efekt jest tutaj. 1221 01:04:55,000 --> 01:04:57,000 Pozwólcie mi iść do przodu i wpisać Dawida. 1222 01:04:57,000 --> 01:04:59,000 I nie będzie kapitan tym razem. 1223 01:04:59,000 --> 01:05:01,000 Powiem mężczyzna, Matthews, zarejestruj się. 1224 01:05:01,000 --> 01:05:05,000 Cholera. Dobra, to śruba się z mojej strony. 1225 01:05:05,000 --> 01:05:07,000 Stand by. 1226 01:05:07,000 --> 01:05:17,000 Rejestr2, line 22, jeśli pusty lub-przepraszam. 1227 01:05:17,000 --> 01:05:19,000 Miejmy przeładować. 1228 01:05:19,000 --> 01:05:22,000 Okay, po złożeniu tego formularza, co się stało? 1229 01:05:22,000 --> 01:05:25,000 Wpisałem w David, sprawdzane mężczyzna, kliknął Matthews, zarejestruj się. 1230 01:05:25,000 --> 01:05:27,000 Jesteś zarejestrowany. (No, nie do końca.) 1231 01:05:27,000 --> 01:05:32,000 Jest to wyraźnie krok poza tylko drukowanie zawartości jakiejś zmiennej, 1232 01:05:32,000 --> 01:05:34,000 Ale co to za plik rzeczywiście robi? 1233 01:05:34,000 --> 01:05:37,000 W register2.php 1234 01:05:37,000 --> 01:05:40,000 zauważyć, że mam jakiś nowy kod. 1235 01:05:40,000 --> 01:05:44,000 Wewnątrz mojego znacznika body mam zasadniczo jeśli jeszcze budowy, 1236 01:05:44,000 --> 01:05:47,000 ale dlatego, że jestem jednocześnie mieszając to z jakiegoś języka HTML 1237 01:05:47,000 --> 01:05:51,000 Muszę wejść i wyjść z trybu PHP iz powrotem, więc zobaczymy, co robię. 1238 01:05:51,000 --> 01:05:55,000 >> W pierwszym wierszu tutaj mówię, jeśli to jest w przypadku 1239 01:05:55,000 --> 01:06:00,000 że post bardzo globalny jest pusty dla klucza nazwy, 1240 01:06:00,000 --> 01:06:04,000 więc, innymi słowy, jeśli użytkownik nie dał mi wartość dla nazwy w formularzu, 1241 01:06:04,000 --> 01:06:07,000 pusta będzie zwracać wartość true, ponieważ wartość jest pusta. 1242 01:06:07,000 --> 01:06:11,000 Or-zauważyć kreski pionowe-jeśli płeć jest pusty 1243 01:06:11,000 --> 01:06:15,000 Wnętrze tego specjalnego Super Globalna, która ponownie stanowi zawartość formy 1244 01:06:15,000 --> 01:06:19,000 lub akademik jest pusty, to mam zamiar iść dalej i krzyczeć na użytkownika. 1245 01:06:19,000 --> 01:06:22,000 W jaki sposób? Cóż, zauważ Zamierzam powiedzieć musisz podać swoje imię i nazwisko, płeć, i akademika. 1246 01:06:22,000 --> 01:06:24,000 Miejmy faktycznie wywołać tego błędu. 1247 01:06:24,000 --> 01:06:27,000 Pozwól mi wrócić do mojej postaci. Pozwól, przeładować, aby je wyczyścić. 1248 01:06:27,000 --> 01:06:30,000 A ja po prostu się im Dawida, a oni nie muszą wiedzieć, gdzie mieszkam. 1249 01:06:30,000 --> 01:06:33,000 Zarejestruj. Widocznie trzeba im powiedzieć, gdzie mieszkam. 1250 01:06:33,000 --> 01:06:35,000 Musisz podać swoje imię i nazwisko, płeć i akademika. Wróć. 1251 01:06:35,000 --> 01:06:39,000 >> I mógłbym kliknij, aby powrócić do tej postaci, ale dlaczego tak jest? 1252 01:06:39,000 --> 01:06:43,000 Cóż, w tej nazwie przypadku nie był pusty, ale płci był, a akademik był, 1253 01:06:43,000 --> 01:06:47,000 więc całe wyrażenie ocenione na true, i mimo, że składnia jest trochę nowego, 1254 01:06:47,000 --> 01:06:51,000 ponownie, tryb PHP, znajomy if, 1255 01:06:51,000 --> 01:06:54,000 ale nowa część o to właśnie w tym jelita grubego, a ja nie przejmował się, pomijając nawias 1256 01:06:54,000 --> 01:06:57,000 przez przypadek, ale zauważ, dwukropek, a to oznacza 1257 01:06:57,000 --> 01:07:00,000 mimo wszystko jesteśmy wyjściu tryb PHP 1258 01:07:00,000 --> 01:07:03,000 który następuje należy wypluć verbatim do przeglądarki 1259 01:07:03,000 --> 01:07:07,000 , aż pojawi się inny blok, jak my tutaj, 1260 01:07:07,000 --> 01:07:10,000 w takim przypadku należy zamiast pluć na to uwagę 1261 01:07:10,000 --> 01:07:13,000 aż zobaczysz endif, więc niektóre lekko nowa składnia 1262 01:07:13,000 --> 01:07:16,000 która pozwala mi przełączyć pomiędzy HTML i PHP. 1263 01:07:16,000 --> 01:07:19,000 Możemy oczyścić ten fakt w końcu, ale teraz, 1264 01:07:19,000 --> 01:07:22,000 to rodzaj niekwestionowany sposób sprawdzania błędów formularz. 1265 01:07:22,000 --> 01:07:25,000 >> Teraz mogę powiedzieć, że nie jesteś naprawdę zarejestrowane bo oczywiście zrobiliśmy nic, ale dane, 1266 01:07:25,000 --> 01:07:28,000 więc niech to faktycznie spróbować zrobić coś fajnego. 1267 01:07:28,000 --> 01:07:33,000 W froshims3 Jedyna różnica to mam zamiar przedstawić register3, 1268 01:07:33,000 --> 01:07:35,000 tak HTML nie jest taki sam. 1269 01:07:35,000 --> 01:07:38,000 W register3 to zauważyć. 1270 01:07:38,000 --> 01:07:40,000 Ten jest trochę sexy. 1271 01:07:40,000 --> 01:07:44,000 Na górze używam require oświadczenie, więc jest to jak # include. 1272 01:07:44,000 --> 01:07:46,000 Tym razem to nie stdio.h czy coś w tym jest. 1273 01:07:46,000 --> 01:07:50,000 Jest to biblioteka PHP, a ten jest nazywany PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Skąd wiem, że do włączenia się dokładnie takiego w cudzysłowie? 1275 01:07:53,000 --> 01:07:56,000 Czytałem w dokumentacji, więc gdy powiedziano założę to na początku pliku 1276 01:07:56,000 --> 01:08:00,000 jeśli chcesz użyć specjalnego biblioteki o nazwie PHPMailer który robi to co mówi. 1277 01:08:00,000 --> 01:08:03,000 To pozwala na wysyłanie wiadomości e-mail za pomocą PHP. 1278 01:08:03,000 --> 01:08:05,000 Teraz przewijać dalej. 1279 01:08:05,000 --> 01:08:08,000 >> Wskazówka zacząć Jestem w trybie PHP to cały czas, 1280 01:08:08,000 --> 01:08:11,000 tak teraz tu zauważyć, że po zaimportowaniu biblioteki 1281 01:08:11,000 --> 01:08:13,000  że tak powiem, robię jakieś testy sprawdzające. 1282 01:08:13,000 --> 01:08:16,000 Jeśli jest tak, że nazwa nie jest pusta 1283 01:08:16,000 --> 01:08:19,000 i płeć nie jest pusty-zauważyć wykrzykniki- 1284 01:08:19,000 --> 01:08:24,000 i akademik nie jest pusta, a następnie użytkownik logicznie wypełnieniu formularza, przynajmniej tyle. 1285 01:08:24,000 --> 01:08:28,000 Nie obchodzi mnie to, czy są, czy nie kapitan. Muszę tylko swoje nazwisko, płeć oraz w akademiku. 1286 01:08:28,000 --> 01:08:31,000 Jeśli te wypełniły się tak, że żaden z tych pól jest pusta 1287 01:08:31,000 --> 01:08:33,000 jest to nieco nowa składnia. 1288 01:08:33,000 --> 01:08:36,000 PHP, jak na bok, to obiektowy język programowania 1289 01:08:36,000 --> 01:08:39,000 co niektórzy z was mogą pamiętać z APC lub podobnych. 1290 01:08:39,000 --> 01:08:42,000 Na razie, jeśli znają, po prostu wiem, że aby korzystać z tej biblioteki 1291 01:08:42,000 --> 01:08:45,000 trzeba napisać wiersz kodu podobnego używając nowego słowa kluczowego, 1292 01:08:45,000 --> 01:08:47,000 dosłownie nowy keyword nazywa nowy. 1293 01:08:47,000 --> 01:08:50,000 Ale poza tym, mamy kilka znanych składni. 1294 01:08:50,000 --> 01:08:54,000 To operator strzałka, która jest podobna do tego, co stosuje elemencie w kontekście wskaźników. 1295 01:08:54,000 --> 01:08:57,000 Na dzień dzisiejszy nie ma PHP wskaźniki, 1296 01:08:57,000 --> 01:09:01,000 ale wiem teraz, że wewnątrz zmiennej poczty 1297 01:09:01,000 --> 01:09:05,000 jest w istocie rodzajem wskaźnika do specjalnej biblioteki 1298 01:09:05,000 --> 01:09:08,000 że ktoś napisał, a jeśli chcesz uzyskać dostęp do określonej funkcji 1299 01:09:08,000 --> 01:09:12,000 wewnątrz tej biblioteki ja, tak jak w C, należy użyć operatora strzałki 1300 01:09:12,000 --> 01:09:14,000 nawet jeśli nie są one faktycznie wskaźnikami. 1301 01:09:14,000 --> 01:09:16,000 To coś w rodzaju własnej wersji PHP nim. 1302 01:09:16,000 --> 01:09:20,000 Oznacza to, idź do biblioteki i wywołać IsSMTP funkcję. 1303 01:09:20,000 --> 01:09:23,000 SMTP, recall, od naszych wojowników Net odnosi się do nadawcy, 1304 01:09:23,000 --> 01:09:28,000 i że po prostu oznacza użycie serwera pocztowego dla tego Frosh IM rejestracji. 1305 01:09:28,000 --> 01:09:30,000 >> Co gospodarz chcę użyć? 1306 01:09:30,000 --> 01:09:34,000 Cóż, Harvard, jeśli Google wokół, posiada serwer pocztowy o nazwie smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Jeśli grasz razem w domu lub mieszkasz na Comcast sieci 1308 01:09:37,000 --> 01:09:40,000 to może być coś jak smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 To całkowicie zależy od tego, gdzie mieszkasz i kto jest Twoim ISP. 1310 01:09:43,000 --> 01:09:47,000 Potem mam zamiar ustawić mój od adresu arbitralnie być jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Jestem wtedy zamiar ustawić zająć się jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 Tylko w ten sposób wiedziałem, że funkcje te nazywane były setFrom i AddAddress 1313 01:09:55,000 --> 01:09:57,000 jest, ponownie, przeczytaj dokumentację. 1314 01:09:57,000 --> 01:09:59,000 To nie jest rodzaj magii znane wszystkim programistów jest. 1315 01:09:59,000 --> 01:10:02,000 Potem ustawić obiekt do "rejestracji". 1316 01:10:02,000 --> 01:10:07,000 A teraz ta linia jest nieco brzydki, bo co to znaczy, operator kropki w PHP? 1317 01:10:07,000 --> 01:10:09,000 Ktoś wie? 1318 01:10:09,000 --> 01:10:11,000 Złączyć. 1319 01:10:11,000 --> 01:10:14,000 W języku C jest to ból w szyi złączyć 2 ciągi razem. 1320 01:10:14,000 --> 01:10:17,000 Masz do czynienia z malloc lub realloc lub wszystkie z tych rzeczy 1321 01:10:17,000 --> 01:10:20,000 tylko w celu wydłużenia łańcucha. 1322 01:10:20,000 --> 01:10:22,000 W PHP w JavaScript i innych języków 1323 01:10:22,000 --> 01:10:24,000 zazwyczaj można to zrobić z jednego znaku. 1324 01:10:24,000 --> 01:10:28,000 W tym przypadku, kropka oznacza wziąć ten ciąg tutaj 1325 01:10:28,000 --> 01:10:30,000 i dołączyć do niego ten ciąg. 1326 01:10:30,000 --> 01:10:32,000 >> Aha, i przy okazji, dołączyć do niego ten ciąg, 1327 01:10:32,000 --> 01:10:34,000 co dzieje się wewnątrz tej zmiennej super-Global. 1328 01:10:34,000 --> 01:10:37,000 Następnie dodać do niej nową linię, więc wszystkie z tych punktów oznacza tylko 1329 01:10:37,000 --> 01:10:39,000 popełniają większy i większy i większy ciąg, 1330 01:10:39,000 --> 01:10:43,000 i nie musisz się martwić w ogóle o malloc lub podobnego w języku takim jak ten, 1331 01:10:43,000 --> 01:10:46,000 i nie ma innych sposobów, aby to zrobić, ale jest to jeden z najszybszych 1332 01:10:46,000 --> 01:10:48,000 sposoby, aby położyć go na zewnątrz. 1333 01:10:48,000 --> 01:10:50,000 Co to robi? 1334 01:10:50,000 --> 01:10:55,000 To tworzenie e ciało, które się dzieje powiedzieć Imię: Kapitan: Płeć: Dorm: 1335 01:10:55,000 --> 01:10:58,000 Wszystkie na oddzielnych linii, a następnie na koniec, 1336 01:10:58,000 --> 01:11:00,000 jedna linia kodu, i mam zamiar zignorować to teraz. 1337 01:11:00,000 --> 01:11:02,000 Jeśli == false oznacza po prostu, jeśli coś poszło nie tak, 1338 01:11:02,000 --> 01:11:04,000 ale magia dzieje się tutaj. 1339 01:11:04,000 --> 01:11:08,000 Mail Wyślij oznacza wysłać tę wiadomość. 1340 01:11:08,000 --> 01:11:10,000 Zobaczmy, co wynik netto jest. 1341 01:11:10,000 --> 01:11:13,000 Na dole pliku, zauważysz to powiedzieć jesteś zarejestrowany naprawdę 1342 01:11:13,000 --> 01:11:15,000 jeśli mam tak daleko. 1343 01:11:15,000 --> 01:11:18,000 Jeśli jednak użytkownik śruby się zauważyć, że zaczęliśmy ten 1344 01:11:18,000 --> 01:11:21,000 jeśli stan się tutaj, jeśli nie jest pusty i nie jest pusty 1345 01:11:21,000 --> 01:11:24,000 i nie opróżnienia wysyłamy maila. 1346 01:11:24,000 --> 01:11:27,000 W przeciwnym razie będziemy wysłać ten wiersz kodu, 1347 01:11:27,000 --> 01:11:30,000 która będzie mieć wpływ, jak zobaczysz w Pset 7, przekierowywać użytkownika 1348 01:11:30,000 --> 01:11:35,000 powrotem skąd przyszli, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Kciuki, inaczej to będzie najbardziej rozczarowujące demo już dziś. 1350 01:11:38,000 --> 01:11:40,000 Jedziemy. 1351 01:11:40,000 --> 01:11:42,000 Pozwól mi otworzyć moje skrzynkę mailową dla jharvard w Gmailu. 1352 01:11:42,000 --> 01:11:44,000 No e teraz. Dobrze. 1353 01:11:44,000 --> 01:11:53,000 Teraz pozwól mi otworzyć froshims3, który jest trzeci i ostatni przykład przyjrzymy się tutaj. 1354 01:11:53,000 --> 01:11:55,000 Dobra, jedziemy. 1355 01:11:55,000 --> 01:12:00,000 Nate, on będzie kapitanem, mężczyzna, od, powiedzmy, Apley. 1356 01:12:00,000 --> 01:12:04,000 Zarejestruj. Dobra, jesteś zarejestrowany naprawdę. 1357 01:12:04,000 --> 01:12:07,000 Teraz jeśli przewijać do mnie e-mail, oh, mój Boże. 1358 01:12:07,000 --> 01:12:09,000 Właśnie dynamicznie wysłany e-mail w sieci Web. 1359 01:12:09,000 --> 01:12:11,000 >> Zostawmy na tej notatce. 1360 01:12:11,000 --> 01:12:16,000 Film jest w przygotowaniu na wykład przeoczyliśmy. Do zobaczenia w przyszłym tygodniu. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]