1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Săptămâna 8] 2 00:00:02,000 --> 00:00:04,000 [David J Malan] [Universitatea Harvard] 3 00:00:04,000 --> 00:00:07,000 [Acest lucru este CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Bine ai venit înapoi. 5 00:00:09,000 --> 00:00:11,000 Acest lucru este CS50, iar acest lucru este începutul de 8 săptămâni. 6 00:00:11,000 --> 00:00:14,000 Un tânăr de oportunități în această săptămână, 7 00:00:14,000 --> 00:00:17,000 printre ele această discuție aici, la unele alimente care vor fi servite. 8 00:00:17,000 --> 00:00:20,000 Pentru mai multe detalii verifica afară de slide-uri, care sunt on-line. 9 00:00:20,000 --> 00:00:24,000 Și, de asemenea un alt eveniment de săptămâna aceasta de către propria noastră Thomas Carriero. 10 00:00:24,000 --> 00:00:27,000 El este unul dintre CS50 lui semenii fostul didactice cap, care este acum la Dropbox, 11 00:00:27,000 --> 00:00:29,000 și el e tipul care ne-a cuplat cu știi ce, 12 00:00:29,000 --> 00:00:36,000 așa că, dacă vrei mai mult de acel cap de Discuție lor această după-amiază pentru Dropbox și mai mult. 13 00:00:36,000 --> 00:00:38,000 CS50 masa de prânz este aceasta vineri. 14 00:00:38,000 --> 00:00:41,000 Face să ni se alăture, dacă sunteți în măsură, 1:15, ca de obicei, la Fire and Ice. 15 00:00:41,000 --> 00:00:45,000 >> Și acum ne arunca cu capul în ceva numit Seminarii. 16 00:00:45,000 --> 00:00:49,000 Seminarii noastre CS50, retragere de pe piață, sunt aceste cursuri opționale conduse de către colegii de predare 17 00:00:49,000 --> 00:00:51,000 și asistenți curs și prieteni ai cursului, 18 00:00:51,000 --> 00:00:55,000 oameni dintr-un grup în campus numit ABCD, care este un grup de 19 00:00:55,000 --> 00:00:58,000 tehnofili în campus, precum și un grup numit HCS, 20 00:00:58,000 --> 00:01:02,000 Harvard Computer Society, studenții care sunt interesați în mod similar în calcul. 21 00:01:02,000 --> 00:01:08,000 Lotul din acest an de seminarii include seminarii pe Android și iOS și JavaScript 22 00:01:08,000 --> 00:01:13,000 și PHP, Unix, Vim, și mai mult, astfel încât să realizeze aceste seminarii se apropie. 23 00:01:13,000 --> 00:01:16,000 Dacă doriți să RSVP pentru ca nici una dintre ele merge la acea adresă URL acolo. 24 00:01:16,000 --> 00:01:20,000 Apoi vom posta pe site-ul cursului de ori și locurile odată ce acestea sunt finalizate. 25 00:01:20,000 --> 00:01:26,000 Dar să știi că merită despre 5 ani de seminarii anterioare disponibile on-line, 26 00:01:26,000 --> 00:01:29,000 dintre care multe sunt încă foarte mult curent, în ceea ce privește tehnologiile s-ar putea 27 00:01:29,000 --> 00:01:36,000 vrei să joci cu ei pentru proiectele dvs. finale, deci nu merge pentru unele videoclipuri disponibile ale acestora. 28 00:01:36,000 --> 00:01:39,000 >> CSS, aceia dintre voi care sunt familiarizați cu CSS deja, 29 00:01:39,000 --> 00:01:42,000 ceea ce este într-o coajă de nucă? 30 00:01:42,000 --> 00:01:45,000 Ce este CSS? 31 00:01:45,000 --> 00:01:48,000 E foi de stil în cascadă, și ce înseamnă asta? 32 00:01:48,000 --> 00:01:53,000 Ce face asta pentru noi, CSS? 33 00:01:53,000 --> 00:01:57,000 În regulă, hai să se încălzească cu una mai ușoară, HTML, Hypertext Markup Language. 34 00:01:57,000 --> 00:02:01,000 Ce face asta pentru noi? 35 00:02:01,000 --> 00:02:04,000 Oricine, la toate? 36 00:02:04,000 --> 00:02:07,000 Devine foarte ciudat cer aceste întrebări. 37 00:02:07,000 --> 00:02:11,000 HTML, Hypertext Markup Language. 38 00:02:11,000 --> 00:02:14,000 Da? Nu? 39 00:02:14,000 --> 00:02:17,000 [Răspuns studentul neauzit] 40 00:02:17,000 --> 00:02:20,000 Bine, bine, ne permite pentru a marca text pentru a afișa într-un browser Web. 41 00:02:20,000 --> 00:02:22,000 Nu este un limbaj de programare. 42 00:02:22,000 --> 00:02:25,000 E într-adevăr un limbaj de marcare, ceea ce inseamna ca browser-ul instruiește cum să afișați 43 00:02:25,000 --> 00:02:28,000 informații, astfel încât cea mai simplă încarnare a acestui după cum am văzut 44 00:02:28,000 --> 00:02:32,000 este ceva de super-simplu ca boldfacing, deschis suport suport b închisă spune 45 00:02:32,000 --> 00:02:36,000 face acest text aldin, și că, de fapt, e doar una dintre mai multe moduri 46 00:02:36,000 --> 00:02:39,000 în care putem face acest lucru, și, într-adevăr, în aceste zile o mai bună abordare 47 00:02:39,000 --> 00:02:42,000 pentru a stilizării pagina dvs. de web, făcând lucruri îndrăznețe și cursive 48 00:02:42,000 --> 00:02:47,000 și centrat și justificate și ca, nu se face prin tag-uri HTML în monoterapie 49 00:02:47,000 --> 00:02:51,000 ci mai degrabă cu o tehnica numita CSS, Cascading Style Sheets. 50 00:02:51,000 --> 00:02:53,000 Acesta este un limbaj în sine. 51 00:02:53,000 --> 00:02:55,000 Acesta nu prea este un limbaj de programare, dar- 52 00:02:55,000 --> 00:02:58,000 toată lumea, aceasta este Dan, care ține alături de noi astăzi. 53 00:02:58,000 --> 00:03:01,000 Unele dificultăți tehnice. Nu este o problemă. 54 00:03:01,000 --> 00:03:04,000 >> CSS ne permite să stiliza o pagină 55 00:03:04,000 --> 00:03:07,000 prin stabilirea de ceea ce se numesc proprietăți, deci haideți să aruncăm o privire la acest 56 00:03:07,000 --> 00:03:09,000 prin intermediul unor exemple de bază. 57 00:03:09,000 --> 00:03:12,000 Lasă-mă să intru în aparatul de astăzi. 58 00:03:12,000 --> 00:03:15,000 Am sursa de 8 luni de la directorul aici, 59 00:03:15,000 --> 00:03:18,000 și am de gând să merg într-un director numit CSS în cazul în care avem o grămadă 60 00:03:18,000 --> 00:03:21,000 de fișiere de așteptare pentru noi aici, 61 00:03:21,000 --> 00:03:27,000 și, în acest folder avem, de exemplu, de la search0.html ultima dată. 62 00:03:27,000 --> 00:03:31,000 Acum, amintesc cu search0 am plecat pe această notă 63 00:03:31,000 --> 00:03:35,000 de un fel de punere în aplicare Google sau de fapt doar front-end pentru o săptămână sau cam asa ceva în urmă, 64 00:03:35,000 --> 00:03:38,000 și observați că am avut unele tag-uri noi acolo. 65 00:03:38,000 --> 00:03:41,000 Am avut H1 pentru o poziție de mare, îndrăzneț, 66 00:03:41,000 --> 00:03:45,000 formă, care ne-a permis să avem de fapt un formular HTML pentru introduse de utilizator. 67 00:03:45,000 --> 00:03:48,000 Acțiune, care a fost sensul unui atribut acțiune 68 00:03:48,000 --> 00:03:52,000 pe eticheta formularul HTML? 69 00:03:52,000 --> 00:03:58,000 Care a fost sensul prezentei acțiuni,? 70 00:03:58,000 --> 00:04:00,000 Vreau doar să fac acest lucru astăzi. 71 00:04:00,000 --> 00:04:03,000 Acțiunea este destinația la care formularul urmează să fie prezentate. 72 00:04:03,000 --> 00:04:07,000 Faptul că această acțiune = spune "google.com / search" 73 00:04:07,000 --> 00:04:10,000 înseamnă că, atunci când utilizatorul face clic pe butonul submit sau echivalent 74 00:04:10,000 --> 00:04:14,000 indiferent de forma domeniile pe care le completat vor fi trimise la serverul nostru nu 75 00:04:14,000 --> 00:04:17,000 sau aparatul nostru, ci mai degrabă de a specifica faptul că URL-ul de la Google. 76 00:04:17,000 --> 00:04:19,000 Și metoda pe care o va folosi este numit obține, 77 00:04:19,000 --> 00:04:25,000 și de a lua, de acum, este doar o tehnica de trecere de-a lungul informații la un server de web 78 00:04:25,000 --> 00:04:29,000 prin intermediul URL-ul, deci haideți să aruncăm o privire rapidă înapoi la cum funcționează. 79 00:04:29,000 --> 00:04:31,000 >> Observați că există o intrare al cărui nume este q 80 00:04:31,000 --> 00:04:35,000 Tipul a cărui este un text și apoi o intrare al doilea tip prezintă 81 00:04:35,000 --> 00:04:39,000 Valoarea cărui este CS50 căutare, și într-adevăr, dacă ne deschidem acest fișier aici, 82 00:04:39,000 --> 00:04:42,000 search0.html, este o forma super-simplu, 83 00:04:42,000 --> 00:04:45,000 și dacă am căutare pentru ceva de genul informatică 84 00:04:45,000 --> 00:04:50,000 și a lovit apoi introduceți sau faceți clic pe Căutare CS50 85 00:04:50,000 --> 00:04:53,000 observați că ceea ce se întâmplă este dincolo de a ajunge la Google 86 00:04:53,000 --> 00:04:56,000 Am ajuns în mod special la această adresă URL în partea de sus, 87 00:04:56,000 --> 00:05:01,000 google.com / search q =? + calculator știință, 88 00:05:01,000 --> 00:05:04,000 și informatică este în mod evident ceea ce am tastat inch 89 00:05:04,000 --> 00:05:06,000 + Înseamnă doar că e în cazul în care un caracter spațiu a fost, 90 00:05:06,000 --> 00:05:10,000 și se face de către browser-ul doar pentru a vă asigura că nu există nici o 91 00:05:10,000 --> 00:05:13,000 confuzie și spațiu alb în URL-ul real. 92 00:05:13,000 --> 00:05:15,000 Și apoi q, desigur, este numele parametrului. 93 00:05:15,000 --> 00:05:20,000 Nu am vazut cum putem, programator, poate accesa de fapt, încă q. 94 00:05:20,000 --> 00:05:23,000 Putem presupune că Google știe ce să facă cu asta aici, 95 00:05:23,000 --> 00:05:25,000 dar vom ajunge acolo în timp util de astăzi. 96 00:05:25,000 --> 00:05:30,000 >> Dar permiteți-mi să aruncăm o privire la locul search1.html, 97 00:05:30,000 --> 00:05:34,000 care arată un pic diferit pentru ca am decis că această formă a fost aici, doar un pic lame. 98 00:05:34,000 --> 00:05:36,000 Adică, e în partea stângă sus. 99 00:05:36,000 --> 00:05:40,000 Nu e chiar nici o estetica la ea, și așa vreau să stiliza această 100 00:05:40,000 --> 00:05:43,000 un pic mai mult ca Google, a cărui pagină de start, rechemare, 101 00:05:43,000 --> 00:05:47,000 chiar dacă nu l-ar putea vizita pe care de multe ori, se pare ca acest lucru astăzi de Halloween. 102 00:05:47,000 --> 00:05:53,000 Dacă deschidem loc la versiunea 1 a acestui fișier, căutare 1.html, l-am centrat. 103 00:05:53,000 --> 00:05:57,000 , Încă destul de urât, dar cel puțin acum am inceput sa controleze estetica această pagină 104 00:05:57,000 --> 00:06:00,000 nu doar marcarea acestora. 105 00:06:00,000 --> 00:06:04,000 Să aruncăm o privire la căutare 1, și nu e doar o diferenta aici, 106 00:06:04,000 --> 00:06:06,000 care ar putea sari la tine, sau poate nu, 107 00:06:06,000 --> 00:06:11,000 dar ceea ce e linia de una sau fragment de diferență? 108 00:06:11,000 --> 00:06:14,000 >> Nu e stilul acestui atribut, deci se pare că, în HTML 109 00:06:14,000 --> 00:06:19,000 cele mai multe elemente, cele mai multe tag-uri pot avea un atribut de stil pe ele, 110 00:06:19,000 --> 00:06:23,000 și în interiorul acestui atribut stil este un șir citat, 111 00:06:23,000 --> 00:06:26,000 și că șirul este citat CSS. 112 00:06:26,000 --> 00:06:29,000 Puteți pune foaie de stil cascada acolo 113 00:06:29,000 --> 00:06:32,000 prin specificarea ca un nume de proprietate 114 00:06:32,000 --> 00:06:34,000 urmată de două puncte, urmată de o valoare. 115 00:06:34,000 --> 00:06:37,000 Aceasta este un fel de decizii de proiectare nefericit cu câțiva ani în urmă 116 00:06:37,000 --> 00:06:40,000 faptul că CSS este un limbaj în sine, 117 00:06:40,000 --> 00:06:43,000 dar punct de vedere sintactic este foarte diferit de HTML. 118 00:06:43,000 --> 00:06:46,000 În acest caz, vom vedea ca in interiorul lui pagina mea de web, care este scrisă în HTML, 119 00:06:46,000 --> 00:06:51,000 Am CSS interiorul acestor citate, și Convenția pentru CSS 120 00:06:51,000 --> 00:06:55,000 este că aveți ceea ce se numește o proprietate, urmat de, din nou, un colon, 121 00:06:55,000 --> 00:06:58,000 urmată de valoarea a bunului, astfel încât nu există nici un semn egal. 122 00:06:58,000 --> 00:07:00,000 Nu e nici citate suplimentare. 123 00:07:00,000 --> 00:07:03,000 E doar această pereche de colon separat valoarea cheii, 124 00:07:03,000 --> 00:07:05,000 și linia de text face exact ceea ce spune. 125 00:07:05,000 --> 00:07:09,000 Aceasta aliniază textul din corpul paginii, care este într-adevăr curajul de pagini, 126 00:07:09,000 --> 00:07:11,000 în centru. 127 00:07:11,000 --> 00:07:13,000 >> Bine, rezultatul final, apoi, să fie clar, este aceasta. 128 00:07:13,000 --> 00:07:17,000 Nu toate că mai sexy, dar cel puțin este centrat și un pic mai mult ca adevarata Google. 129 00:07:17,000 --> 00:07:21,000 Dar ce se întâmplă dacă am deschide loc la versiunea 2 a acestui 130 00:07:21,000 --> 00:07:25,000 și subliniez aici o etichetă cu totul nouă? 131 00:07:25,000 --> 00:07:30,000 Acum, în capul paginii mele, care anterior a avut doar ceea ce tag-ul 132 00:07:30,000 --> 00:07:32,000 în toate exemplele anterioare? 133 00:07:32,000 --> 00:07:34,000 Ea a avut doar acest lucru, titlu. 134 00:07:34,000 --> 00:07:38,000 Un moment în urmă tag-ul capului arăta acest lucru. 135 00:07:38,000 --> 00:07:40,000 Acum, în loc are o etichetă în interiorul stil de ea, 136 00:07:40,000 --> 00:07:44,000 și asta, îmi cer scuze, punct de vedere sintactic arata foarte diferit de HTML, 137 00:07:44,000 --> 00:07:47,000 dar te obișnuiești cu el, prin interiorul tag-stil 138 00:07:47,000 --> 00:07:50,000 Pot factor acum ce a fost un moment în urmă 139 00:07:50,000 --> 00:07:54,000 un atribut, atributul style, si eu pot pune la foarte de sus a paginii. 140 00:07:54,000 --> 00:07:56,000 >> De ce? 141 00:07:56,000 --> 00:08:00,000 Ei bine, acesta este un pas spre curățare lucrurile, la fel ca în scris cod C 142 00:08:00,000 --> 00:08:04,000 ne-ar scrie, uneori, funcțiile de factorul în funcționalitatea comună. 143 00:08:04,000 --> 00:08:07,000 E doar un pic mai curat pentru a începe de factoring lucruri, cum ar fi estetica 144 00:08:07,000 --> 00:08:11,000 la o singură locație centrală, mai degrabă decât având în totul de-a lungul presăra HTML. 145 00:08:11,000 --> 00:08:14,000 Aceasta prea face ceea ce spune, chiar dacă există un pic de noua sintaxă. 146 00:08:14,000 --> 00:08:19,000 Acest lucru aici este un selector, și corpul înseamnă doar selectați elementul organism 147 00:08:19,000 --> 00:08:21,000 și să aplice următoarele proprietăți la aceasta. 148 00:08:21,000 --> 00:08:23,000 Ei bine, proprietatea este exact la fel. 149 00:08:23,000 --> 00:08:25,000 Pentru o bună măsură am adăugat o virgulă la sfârșitul anului, 150 00:08:25,000 --> 00:08:29,000 care tinde să fie convenție, și am înfășurat toată această proprietate 151 00:08:29,000 --> 00:08:33,000 în acolade pentru că am putea avea de fapt lucruri diferite aici. 152 00:08:33,000 --> 00:08:39,000 Am putea spune, de fapt ceva de genul culoare: albastru; 153 00:08:39,000 --> 00:08:42,000 >> Acum, acest prea nu va fi un pas spre ceva tot ce mai frumoasa, 154 00:08:42,000 --> 00:08:47,000 dar daca ma duc acum la versiunea 2 am făcut, cel puțin acum corpul meu 155 00:08:47,000 --> 00:08:49,000 Pagina de text toate albastru. 156 00:08:49,000 --> 00:08:51,000 Butonul rămâne același pentru că e un input. Nu e de text pur. 157 00:08:51,000 --> 00:08:56,000 Dar totul altceva, care este un text, cum ar fi CS50 Căutare până sus, este în albastru fapt. 158 00:08:56,000 --> 00:09:01,000 Din nou, tot ce am făcut acum este scoateți din tag-ul body, Notă, 159 00:09:01,000 --> 00:09:04,000 atributul de stil, și am luat-l aici. 160 00:09:04,000 --> 00:09:08,000 Aceasta nu este o îmbunătățire uriașă, dar dacă vom lua acest pas mai departe 161 00:09:08,000 --> 00:09:10,000 observați ceea ce putem face în această a treia versiune aici. 162 00:09:10,000 --> 00:09:14,000 >> În search3.html pagina web este aproape identică 163 00:09:14,000 --> 00:09:17,000 , cu excepția pentru ceea ce etichetă nouă acum? 164 00:09:17,000 --> 00:09:20,000 Link-ul, astfel încât acesta nu este foarte bună dreptate numit 165 00:09:20,000 --> 00:09:24,000 pentru că nu sunteți de legătură în sensul unui hyperlink se poate face clic. 166 00:09:24,000 --> 00:09:28,000 Mai degrabă, ești un fel de a face echivalentul a # include în C 167 00:09:28,000 --> 00:09:31,000 prin tag-ul link-ul cu un atribut href 168 00:09:31,000 --> 00:09:34,000 și un atribut rel spune merge mai departe 169 00:09:34,000 --> 00:09:39,000 și copie inserați conținutul unui fișier denumit search3.css chiar aici, în esență. 170 00:09:39,000 --> 00:09:42,000 Ea nu face destul de asta, dar asta e spiritul de ea. 171 00:09:42,000 --> 00:09:45,000 Se spune că merge deschis dosar, search3.css, 172 00:09:45,000 --> 00:09:49,000 și trata ca și cum utilizatorul ar fi introdus-o chiar aici, în capul paginii 173 00:09:49,000 --> 00:09:51,000 la fel cum am făcut-o în exemplul anterior. 174 00:09:51,000 --> 00:09:54,000 Search3.css, între timp, este destul de simplu. 175 00:09:54,000 --> 00:09:58,000 Este într-adevăr doar conține exact ceea ce a fost un moment în urmă 176 00:09:58,000 --> 00:10:03,000 în tag-ul stil, dar eu am luat-l aici la dosarul propriu. 177 00:10:03,000 --> 00:10:07,000 >> Chiar dacă nu ne-am petrecut mult timp, la toate în format HTML sau programare web 178 00:10:07,000 --> 00:10:11,000 doar intuitiv ce e motivația, probabil, pentru factoring din 179 00:10:11,000 --> 00:10:14,000 acest fragment de mici, chiar de CSS în propriul fișier 180 00:10:14,000 --> 00:10:19,000 și apoi, inclusiv cu această etichetă de link aici? 181 00:10:19,000 --> 00:10:21,000 [Răspuns studentul neauzit] 182 00:10:21,000 --> 00:10:25,000 Bine, e mai ușor de citit, în sensul că aveți CSS-ul într-un fișier CSS. 183 00:10:25,000 --> 00:10:28,000 Ai HTML în fișierul HTML, asa ca este mult mai ușor de citit în acest sens. 184 00:10:28,000 --> 00:10:30,000 Ce altceva ar putea fi convingătoare? Da,. 185 00:10:30,000 --> 00:10:32,000 [Răspuns studentul neauzit] 186 00:10:32,000 --> 00:10:35,000 Da, astfel încât aveți posibilitatea să includeți-l de mai multe ori, așa că acum facem aceste 187 00:10:35,000 --> 00:10:38,000 exemple de bază cu fișiere individuale, dar să presupunem că sunteți de fapt face 188 00:10:38,000 --> 00:10:42,000 un site adevarat ca tine va pentru PSET 7 sau proiectul final, probabil, 189 00:10:42,000 --> 00:10:45,000 și doriți să aveți mai multe pagini Web, astfel cum este, cu siguranță comună pe 190 00:10:45,000 --> 00:10:48,000 Web lumea actuală Wide, și ar fi un fel de lame 191 00:10:48,000 --> 00:10:52,000 trebui să copiați și să lipiți aceeași culoare albastră 192 00:10:52,000 --> 00:10:56,000 și același text aliniat centru în fiecare dintre aceste pagini. 193 00:10:56,000 --> 00:10:59,000 Mai degrabă face mai mult sens să țină afară, la fel ca am facut in C 194 00:10:59,000 --> 00:11:02,000 cu fișierul. h, pune-l într-un loc central, 195 00:11:02,000 --> 00:11:06,000 în acest caz search3.css, și apoi se lasă orice fișier 196 00:11:06,000 --> 00:11:11,000 în site-ul dvs. pentru a include, de fapt acel fisier prin intermediul acestei etichete aici, în linia 16. 197 00:11:11,000 --> 00:11:14,000 Așa cum este de obicei cazul, am început cu versiunea 0, ce fel de lucrări 198 00:11:14,000 --> 00:11:18,000 dar nu este neapărat cel mai bun, si cu fiecare pas, 199 00:11:18,000 --> 00:11:21,000 căutare 1, căutare 2, 3 și acum caută-am luat acești pași pentru copii 200 00:11:21,000 --> 00:11:26,000 spre modele care sunt un pic mai curat și sunt mai pregătitoare 201 00:11:26,000 --> 00:11:30,000 pentru mai multe pagini complexe cu care ne-ar putea face pe drum. 202 00:11:30,000 --> 00:11:33,000 >> Lasă-mă să deschid un exemplu ultima aici doar pentru a vedea 203 00:11:33,000 --> 00:11:36,000 o pagină și mai stilizate, dar mai întâi să ne uităm la HTML. 204 00:11:36,000 --> 00:11:41,000 Acest lucru este search4.html, și observați că structural este aproape aceeași 205 00:11:41,000 --> 00:11:44,000 , cu excepția pentru introducerea unei etichete noi, div. 206 00:11:44,000 --> 00:11:48,000 Div este o etichetă care introduce o divizie a paginii. 207 00:11:48,000 --> 00:11:51,000 Vă puteți gândi la acest lucru ca un dreptunghi invizibil. 208 00:11:51,000 --> 00:11:54,000 Este un fel de creează o fâșie de suprafață în pagina Web 209 00:11:54,000 --> 00:11:56,000 pe care le puteți stiliza pe toate o dată. 210 00:11:56,000 --> 00:11:58,000 Ceea ce am făcut aici este după cum urmează. 211 00:11:58,000 --> 00:12:01,000 Interiorul tag corpul meu, care a fost acolo tot timpul, 212 00:12:01,000 --> 00:12:05,000 Spun crea o divizie a paginii aici prin intermediul liniilor 45, prin 47, 213 00:12:05,000 --> 00:12:09,000 și asta înseamnă în esență, da-mi un dreptunghi invizibil de-a lungul partea de sus a paginii. 214 00:12:09,000 --> 00:12:14,000 Atunci dă-mi un dreptunghi al doilea, deși invizibil, de mai jos, care, 215 00:12:14,000 --> 00:12:16,000 și-l identifice prin conținutul nume, apoi în cele din urmă, 216 00:12:16,000 --> 00:12:19,000 da-mi o divizie treime din pagină la partea de jos 217 00:12:19,000 --> 00:12:21,000 ID-ul numit. 218 00:12:21,000 --> 00:12:23,000 Vom vedea de ce am făcut acest lucru în doar un moment, 219 00:12:23,000 --> 00:12:26,000 dar conceptual, am o divizie antet. 220 00:12:26,000 --> 00:12:30,000 Am o divizie de conținut, și am o divizie subsol a paginii 221 00:12:30,000 --> 00:12:32,000 chiar dacă acestea sunt doar în marcaj. 222 00:12:32,000 --> 00:12:35,000 Utilizatorul nu este de gând să vadă 3 dreptunghiuri, 223 00:12:35,000 --> 00:12:37,000 dar un fel de structural acolo în spatele scenei 224 00:12:37,000 --> 00:12:39,000 de fapt ele sunt prezente. 225 00:12:39,000 --> 00:12:41,000 >> Acum, cui îi pasă? De ce de fapt acest lucru? 226 00:12:41,000 --> 00:12:43,000 Orice altceva pe pagină este același ca le-am vazut inainte. 227 00:12:43,000 --> 00:12:47,000 Aici e forma mea. Iată de intrare meu, intrarea mea, un sfârșit de linie și așa mai departe. 228 00:12:47,000 --> 00:12:50,000 Iată o imagine, deși, așa că vom vedea în cazul în care aceasta a venit de la intr-un moment. 229 00:12:50,000 --> 00:12:52,000 Aici e un subsol, care este nou, doar pentru că am vrut să introducă 230 00:12:52,000 --> 00:12:54,000 Conținutul ceva mai mult aici. 231 00:12:54,000 --> 00:12:58,000 Dacă am parcurge observați că ID-ul de la acest div este antet. 232 00:12:58,000 --> 00:13:02,000 ID-ul acestui div este conținutul, și ID-ul acesta este subsol. 233 00:13:02,000 --> 00:13:05,000 Și, după cum sugerează și numele, atunci când aveți un atribut ID 234 00:13:05,000 --> 00:13:09,000 în HTML, prin definiție, trebuie să identifice în mod unic 235 00:13:09,000 --> 00:13:12,000 unul dintre elemente, una dintre cele etichetele în pagina ta. 236 00:13:12,000 --> 00:13:16,000 Sarcina este total pe tine să vă amintiți că aveți un ID de antet deja. 237 00:13:16,000 --> 00:13:19,000 Ai un subsol. Aveți deja un ID de conținut. 238 00:13:19,000 --> 00:13:22,000 Computerul nu este de gând să dau seama ce este disponibil un ID pentru tine, 239 00:13:22,000 --> 00:13:27,000 astfel încât ai putea da accidental 2 tag-uri un ID de antet, 240 00:13:27,000 --> 00:13:29,000 și că ar fi greșit. 241 00:13:29,000 --> 00:13:31,000 >> Trebuie să păstrați în minte ceea ce ati creat, 242 00:13:31,000 --> 00:13:34,000 dar odată ce ați făcut asta Notă ce putem face aici. 243 00:13:34,000 --> 00:13:38,000 Eu pot specifica acum în tag-ul stilul meu de la partea de sus 244 00:13:38,000 --> 00:13:41,000 sau echivalent în dosarul meu CSS, dacă am fost încă folosesc acea versiune, 245 00:13:41,000 --> 00:13:46,000 Eu pot să spun # antet, și ceea ce înseamnă că este că, indiferent de tag-ul 246 00:13:46,000 --> 00:13:49,000 în această pagină web are un ID de antet 247 00:13:49,000 --> 00:13:53,000 # și, doar prin convenție umană, reprezintă ID-ul. 248 00:13:53,000 --> 00:13:56,000 Semnul ascuțit sau diez reprezintă ID-ul. 249 00:13:56,000 --> 00:13:58,000 Antet este numele pe care l-am dat. 250 00:13:58,000 --> 00:14:01,000 Acest lucru înseamnă aplică această proprietate CSS 251 00:14:01,000 --> 00:14:04,000 la orice etichetă în această pagină poartă un ID de antet. 252 00:14:04,000 --> 00:14:06,000 Aceeași afacere aici. 253 00:14:06,000 --> 00:14:09,000 Aplicați această proprietate, care se întâmplă să fie la fel, la orice element de 254 00:14:09,000 --> 00:14:11,000 al cărui ID este conținut, și apoi în jos aici 255 00:14:11,000 --> 00:14:14,000 Am observat un pic crescator cu subsol. 256 00:14:14,000 --> 00:14:18,000 Orice element a cărui identitate este subsol, din care nu poate fi doar unul prin definiție, 257 00:14:18,000 --> 00:14:21,000 mergeți mai departe și face ca dimensiunea de font mai mic, 258 00:14:21,000 --> 00:14:24,000 greutatea sa îndrăzneț font, marja sa de 20 de pixeli. 259 00:14:24,000 --> 00:14:26,000 >> Ce înseamnă asta? 260 00:14:26,000 --> 00:14:28,000 E doar o marjă de pe partea de sus, de jos, și stânga și dreapta. 261 00:14:28,000 --> 00:14:31,000 Acest lucru înseamnă să-mi dai o marjă de 20 de pixeli invizibil în jurul valorii de ea 262 00:14:31,000 --> 00:14:35,000 doar pentru a împinge orice altceva de la ea un pic, ca tine s-ar putea face în Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word sau pagini sau similar. 264 00:14:37,000 --> 00:14:39,000 Și apoi alinia textul centru. 265 00:14:39,000 --> 00:14:43,000 Să vedem rezultatul final, iar apoi vom merge înapoi până la fragmentul cea care rămâne de CSS acolo. 266 00:14:43,000 --> 00:14:48,000 Aceasta este versiunea 4, ultima noastră pentru exemplele de căutare, și e mai sexy mult, mult. 267 00:14:48,000 --> 00:14:54,000 Acum, în corectitudine, am cautat pe Google doar "logo-ul Google generator de font." 268 00:14:54,000 --> 00:14:58,000 Și asta mi-a permis să creeze un GIF, un format de imagine, care arată ca asta acolo. 269 00:14:58,000 --> 00:15:00,000 De fapt, puteți face acest lucru prea. 270 00:15:00,000 --> 00:15:03,000 Avem "Google generator de fonturi logo-ul." 271 00:15:03,000 --> 00:15:05,000 >> Să vedem dacă putem face acest lucru. 272 00:15:05,000 --> 00:15:07,000 Bine, cred că acest lucru este site-ul am folosit. 273 00:15:07,000 --> 00:15:11,000 Putem spune CE 10, de exemplu, și să le facă propriile lor. 274 00:15:11,000 --> 00:15:13,000 Puteți juca cu asta toată ziua de lungă și apoi faceți clic dreapta pe el 275 00:15:13,000 --> 00:15:16,000 și apoi descărca GIF real, care este tot ceea ce am făcut. 276 00:15:16,000 --> 00:15:19,000 Și într-adevăr, de aceea in HTML meu, reamintesc, aici 277 00:15:19,000 --> 00:15:22,000 Am avut o etichetă imagine, pe care am văzut săptămâna trecută pe scurt 278 00:15:22,000 --> 00:15:24,000 a căror sursă este logo.gif. 279 00:15:24,000 --> 00:15:28,000 Și ce a fost din nou motivația pentru a avea acest atribut ALT, 280 00:15:28,000 --> 00:15:31,000 această alternativă atribut? 281 00:15:31,000 --> 00:15:33,000 Da,. 282 00:15:33,000 --> 00:15:35,000 [Răspuns studentul neauzit] 283 00:15:35,000 --> 00:15:37,000 Bine, deci 2 motive într-adevăr, în cazul în care browser-ul nu poate trage imaginea 284 00:15:37,000 --> 00:15:40,000 pentru că aveți o conexiune la rețea lentă sau imaginea este corupt 285 00:15:40,000 --> 00:15:44,000 sau ceva de genul asta, cel puțin uman poate vedea "CS50 căutare," 286 00:15:44,000 --> 00:15:46,000 și apoi, de asemenea, din motive de accesibilitate. 287 00:15:46,000 --> 00:15:48,000 Dacă aveți un utilizator care este orb și este folosind un cititor de ecran 288 00:15:48,000 --> 00:15:50,000 și, prin urmare, în mod evident, nu pot vedea imaginile pe care le pot, cel puțin 289 00:15:50,000 --> 00:15:52,000 auzi textul cazul în care computerul lor este de a le vorbește. 290 00:15:52,000 --> 00:15:56,000 >> În general, acest lucru este cel mai bine practică atunci când vine vorba de accesibilitate a paginilor 291 00:15:56,000 --> 00:16:00,000 astfel încât utilizatorii chiar și în această situație pot auzi sau vedea, ca să spunem așa, 292 00:16:00,000 --> 00:16:03,000 ceea ce este că e pe pagina ta. 293 00:16:03,000 --> 00:16:05,000 Nu e un alt lucru pe care am făcut-o aici 294 00:16:05,000 --> 00:16:09,000 care este un pic interesant, și vom vedea mai multe despre acest lucru în problema set 7 295 00:16:09,000 --> 00:16:12,000 prin intermediul uneia dintre cele pantaloni scurți conduse de unul dintre semenii didactice. 296 00:16:12,000 --> 00:16:15,000 Dar # conținut se referă la tag-ul 297 00:16:15,000 --> 00:16:20,000 al cărui conținut este ID-ul, dar apoi există un caracter spațiu, și apoi e de intrare cuvântul. 298 00:16:20,000 --> 00:16:25,000 Ei bine, ce e interesant despre CSS este faptul că puteți 299 00:16:25,000 --> 00:16:29,000 se referă la tag-uri într-un fel de pagină ierarhic, 300 00:16:29,000 --> 00:16:33,000 și ce înseamnă acest fragment de CSS este că tag-ul 301 00:16:33,000 --> 00:16:37,000 al cărui conținut este ID-ul, iar apoi se aplică următoarele proprietăți 302 00:16:37,000 --> 00:16:42,000 la toate etichetele de intrare, care sunt descendenti de conținut, 303 00:16:42,000 --> 00:16:44,000 care este, care sunt indentate în interiorul de ea. 304 00:16:44,000 --> 00:16:48,000 Indentare, din nou, este important doar pentru calculatorul, nu om, 305 00:16:48,000 --> 00:16:51,000 dar, prin convenție, am liniuță lucrurile așa cum vom merge mai adânc într-o pagină, 306 00:16:51,000 --> 00:16:54,000 astfel, aceasta înseamnă aplică o marjă de 5 pixeli la orice element de intrare 307 00:16:54,000 --> 00:16:57,000 asta e undeva in interiorul sau imbricate în interiorul 308 00:16:57,000 --> 00:16:59,000  elementul al cărui conținut este ID-ul. 309 00:16:59,000 --> 00:17:01,000 >> Cine se care se aplică? 310 00:17:01,000 --> 00:17:03,000 Ei bine, nu e de fapt doar aceste 2 tipi aici. 311 00:17:03,000 --> 00:17:05,000 Observați că în interiorul formularului există două intrări, 312 00:17:05,000 --> 00:17:07,000 ca acolo a fost pentru toate aceste exemple. 313 00:17:07,000 --> 00:17:11,000 Dar observați că aceste două intrări se întâmplă să fi imbricate în interiorul, 314 00:17:11,000 --> 00:17:13,000 deși un pic profund, un cuplu de indentare straturi, 315 00:17:13,000 --> 00:17:16,000 interiorul tag-ul al cărui conținut este ID-ul. 316 00:17:16,000 --> 00:17:18,000 Ce înseamnă? 317 00:17:18,000 --> 00:17:21,000 Dacă mergem la browser-ul aici puteti vedea vreodată atât de ușor- 318 00:17:21,000 --> 00:17:23,000 permiteți-mi să mări-că există un pic de umplutură între butonul 319 00:17:23,000 --> 00:17:25,000 și între câmpul de text. 320 00:17:25,000 --> 00:17:27,000 >> Permiteți-mi să dezactivați temporar aia. 321 00:17:27,000 --> 00:17:30,000 Lasă-mă să merg până la CSS mea, și lasă-mă să merg mai departe și doar 322 00:17:30,000 --> 00:17:34,000 schimba această marjă de la 5 la 0 pixeli pixeli. 323 00:17:34,000 --> 00:17:37,000 Lasă-mă să mergeți mai departe și salva fișierul, du-te înapoi la motorul de căutare 324 00:17:37,000 --> 00:17:40,000 și reîncărca, și urmăriți de mijloc a paginii. 325 00:17:40,000 --> 00:17:43,000 Totul a fost comprimat, împreună, și când am biciuit primul acest exemplu 326 00:17:43,000 --> 00:17:46,000 M-am gândit că părea a fi prostesc cu câmpul text și apoi butonul de imediat sub ea. 327 00:17:46,000 --> 00:17:50,000 Am vrut să-pad-l un pic, așa că am introdus margini. 328 00:17:50,000 --> 00:17:55,000 Ceea ce nu vom face în prelegerea se trece prin câteva zeci de 329 00:17:55,000 --> 00:17:58,000 Proprietățile CSS care există deoarece, din nou, există lucruri, cum ar fi dimensiunea fontului, 330 00:17:58,000 --> 00:18:02,000 greutate font, profit, textul alinia, și alte câteva zeci, 331 00:18:02,000 --> 00:18:06,000 si te vom referi la problema setat la 7 la tutoriale diverse on-line 332 00:18:06,000 --> 00:18:08,000 și referințele care vă permit să iau aceste lucruri. 333 00:18:08,000 --> 00:18:10,000 Dar ceea ce este cu adevărat important, la sfârșitul zilei 334 00:18:10,000 --> 00:18:12,000 >> este de a intelege modul in care aceste lucruri sunt aplicate. 335 00:18:12,000 --> 00:18:15,000 Din nou, dacă avem tag-ul interior stilul de care 336 00:18:15,000 --> 00:18:19,000 pot merge pe selectorii, tip de identificare care specifică 337 00:18:19,000 --> 00:18:21,000 la care vrei să se aplice acestor proprietăți, 338 00:18:21,000 --> 00:18:24,000 si apoi ai pus proprietățile ca pereche de valori-cheie 339 00:18:24,000 --> 00:18:28,000 separate de două puncte și apoi sa încheiat cu un punct și virgulă, 340 00:18:28,000 --> 00:18:32,000 sau puteți înregistra toate că afară și pune-l într-un fișier separat CSS 341 00:18:32,000 --> 00:18:35,000 sine. 342 00:18:35,000 --> 00:18:39,000 În regulă, orice probleme referitoare la conceptele 343 00:18:39,000 --> 00:18:41,000 sau imaginea de ansamblu a CSS? 344 00:18:41,000 --> 00:18:43,000 Veți vedea din nou, mai mult de ea în PSET 7, 345 00:18:43,000 --> 00:18:47,000 dar ne vom păstra, în general, destul de simplu. 346 00:18:47,000 --> 00:18:49,000 Nu? Bine. 347 00:18:49,000 --> 00:18:51,000 E timpul pentru un limbaj de programare actuală, 348 00:18:51,000 --> 00:18:54,000 și ne vom întoarce la un pic de CSS în formă de un exemplu. 349 00:18:54,000 --> 00:18:58,000 PHP este de fapt un limbaj accesibil minunat 350 00:18:58,000 --> 00:19:02,000 în sensul că este sintactic aproape echivalent cu C. 351 00:19:02,000 --> 00:19:06,000 Cu alte cuvinte, dacă știi C, știi pentru PHP cea mai mare parte, 352 00:19:06,000 --> 00:19:08,000 cel puțin sintactic, chiar dacă există unele caracteristici noi 353 00:19:08,000 --> 00:19:10,000 și unele concepte noi vom trebui să se uite la. 354 00:19:10,000 --> 00:19:13,000 >> Dar pentru cea mai mare parte, acum că am tranziția de la C la PHP 355 00:19:13,000 --> 00:19:16,000 de cele mai multe lucruri noi este cu adevărat în imaginea de ansamblu, 356 00:19:16,000 --> 00:19:19,000 modul în care utilizați un limbaj pentru programarea pe Web, spre deosebire de 357 00:19:19,000 --> 00:19:23,000 la linia de comandă sau într-un prompt clipește cum am făcut până acum. 358 00:19:23,000 --> 00:19:27,000 Pentru referință, în special cu PSET 7 și mai departe final al proiectului, 359 00:19:27,000 --> 00:19:31,000 nu profita de acest URL aici, dacă doriți să citiți pe formalitățile de PHP. 360 00:19:31,000 --> 00:19:34,000 E ca si cum de fapt un manual online gratuite eficient, 361 00:19:34,000 --> 00:19:37,000 și veți găsi, de asemenea, că ceea ce e cu adevarat frumos despre PHP 362 00:19:37,000 --> 00:19:41,000 este că există sute de functii care vin cu ea, 363 00:19:41,000 --> 00:19:44,000 întrucât, în C nu ai avea neapărat acces la 364 00:19:44,000 --> 00:19:47,000 mai multe funcții decât erau în bibliotecă matematică, biblioteca CS50. 365 00:19:47,000 --> 00:19:51,000 În PHP și o mulțime de limbi moderne, Python și Ruby printre ei, 366 00:19:51,000 --> 00:19:54,000 ai acces la mai multe funcții, astfel, ceea ce înseamnă că veți obține pentru a scrie 367 00:19:54,000 --> 00:19:57,000 mult mai puțin cod, deoarece vă poate sta pe umerii altor oameni 368 00:19:57,000 --> 00:19:59,000 care s-au scris deja anumite lucruri pentru tine. 369 00:19:59,000 --> 00:20:03,000 >> Să luăm un tur rapid de sintaxa PHP și apoi scrie câteva exemple. 370 00:20:03,000 --> 00:20:06,000 Ce e frumos despre PHP, în primul rând 371 00:20:06,000 --> 00:20:08,000 este nu există nici o funcție principală. 372 00:20:08,000 --> 00:20:10,000 Dacă doriți să scrieți un program în PHP începi scrierea de cod, 373 00:20:10,000 --> 00:20:12,000 și nu trebuie să vă faceți griji cu privire la principal. 374 00:20:12,000 --> 00:20:14,000 Nu e nici o int. Nu e nici o întoarcere. 375 00:20:14,000 --> 00:20:17,000 Nu e nici o argv, argc care este necesar, atunci când scrieți programul. 376 00:20:17,000 --> 00:20:20,000 Mai degrabă puteți începe doar scrierea de cod, și acest lucru este în parte 377 00:20:20,000 --> 00:20:23,000 pentru că PHP este ceea ce se numește un limbaj interpretat. 378 00:20:23,000 --> 00:20:26,000 C a fost compilat, și a fost compilat în sensul că începe să 379 00:20:26,000 --> 00:20:29,000 cu codul sursă, acesta trece prin zăngănit, care este un compilator, 380 00:20:29,000 --> 00:20:33,000 și în cele din urmă, după un numar de pasi vei obține codul obiect, 0s și 1s. 381 00:20:33,000 --> 00:20:36,000 PHP și Python și Ruby si Pearl și altele 382 00:20:36,000 --> 00:20:39,000 sunt tipuri diferite de limbile în care nu le compila. 383 00:20:39,000 --> 00:20:42,000 Tu nu te duci de la codul sursă la 0s și 1s. 384 00:20:42,000 --> 00:20:45,000 Tu doar să rulați codul sursă, și aveți o codul sursă 385 00:20:45,000 --> 00:20:49,000 prin scrierea într-un fișier text obișnuit, care se încheie în. php, în acest caz, 386 00:20:49,000 --> 00:20:53,000 în loc de c,. și ceea ce face programul pe computer 387 00:20:53,000 --> 00:20:57,000 se interpretează literal linia de cod de linie cu linie. 388 00:20:57,000 --> 00:21:00,000 >> Cu alte cuvinte, mai degrabă decât a scrie un program și rulați programul 389 00:21:00,000 --> 00:21:04,000 direct în loc să scrii un program cu un fișier care se termină în. php. 390 00:21:04,000 --> 00:21:09,000 Atunci când executați un program real numit php.exe, dacă sunteți pe Windows, 391 00:21:09,000 --> 00:21:12,000 sau doar PHP daca esti pe Mac OS sau Linux, 392 00:21:12,000 --> 00:21:17,000 și va oferi ca intrare pentru programul PHP codul sursa proprie, 393 00:21:17,000 --> 00:21:20,000 și scopul său în viață este de a citi codul de top în jos, de la stânga la dreapta, 394 00:21:20,000 --> 00:21:23,000 și face tot ce-am spus să facă. 395 00:21:23,000 --> 00:21:25,000 >> Să vedem ce se va însemna punct de vedere sintactic. 396 00:21:25,000 --> 00:21:27,000 În PHP avem condiții. 397 00:21:27,000 --> 00:21:29,000 Acest slide este identic cu ceea ce ai văzut în săptămâna 1 398 00:21:29,000 --> 00:21:33,000 deoarece condițiile punct de vedere sintactic, IFS și IFS altă și altă în PHP 399 00:21:33,000 --> 00:21:35,000 arata exact ca asta. 400 00:21:35,000 --> 00:21:38,000 Când vine vorba de expresii booleene au de gând să arate exact ca asta. 401 00:21:38,000 --> 00:21:43,000 Când vine vorba de anding lucrurile împreună, ca booleans se va arata exact ca asta. 402 00:21:43,000 --> 00:21:46,000 Întreruperi arata la fel, și veți obține avantajul suplimentar în PHP 403 00:21:46,000 --> 00:21:51,000 că switch-uri în C ar putea trece doar pe un char sau int-o. 404 00:21:51,000 --> 00:21:53,000 Tu nu ar putea trece pe o valoare șir. 405 00:21:53,000 --> 00:21:55,000 În PHP puteți avea de fapt o expresie 406 00:21:55,000 --> 00:21:58,000 că este o variabilă a cărei conținut este un șir de caractere, 407 00:21:58,000 --> 00:22:01,000 și puteți face de fapt comparație șir în mod intuitiv real, 408 00:22:01,000 --> 00:22:06,000 Nu comparație indicatorul, în scopul de a decide dacă să facă caz ​​i sau j sau altceva. 409 00:22:06,000 --> 00:22:09,000 Vom vedea că potențial înainte de lung. 410 00:22:09,000 --> 00:22:11,000 >> Bucle prea minunat sunt la fel. 411 00:22:11,000 --> 00:22:15,000 Pentru bucle au o initializare, o conditie, si un numar de actualizări. 412 00:22:15,000 --> 00:22:18,000 În timp ce există, de asemenea bucle în PHP. 413 00:22:18,000 --> 00:22:21,000 Face în timp ce există, de asemenea bucle în PHP, 414 00:22:21,000 --> 00:22:26,000 și matrice există în PHP, dar aici e în cazul în care sintaxa începe pentru a obține un pic diferit, 415 00:22:26,000 --> 00:22:29,000 dar conceptele sunt aceleași, iar conceptele sunt într-adevăr aceleași 416 00:22:29,000 --> 00:22:32,000 așa cum au fost în Săptămâna 0 cu Scratch. 417 00:22:32,000 --> 00:22:34,000 În primul rând este semnul $. 418 00:22:34,000 --> 00:22:37,000 Aceasta a fost o decizie de design în PHP, prin care orice variabilă 419 00:22:37,000 --> 00:22:41,000 în PHP de design începe cu semnul $. 420 00:22:41,000 --> 00:22:46,000 Nu e nici mai mult X, Y, Z. Acum e $ X, Y $, $ Z doar pentru că. 421 00:22:46,000 --> 00:22:49,000 E ceva pentru a păstra în minte, iar acum pe partea dreaptă 422 00:22:49,000 --> 00:22:52,000 acest lucru pare similar cu o matrice, 423 00:22:52,000 --> 00:22:54,000 dar suntem folosind paranteze pătrate aici. 424 00:22:54,000 --> 00:22:57,000 În PHP și în JavaScript, așa cum vom vedea în cele din urmă, 425 00:22:57,000 --> 00:23:01,000 a declara o matrice faci suport deschis si inchis pătrat suport pătrat, 426 00:23:01,000 --> 00:23:04,000 și atunci aveți o listă separată prin virgulă de valori, dacă Ints 427 00:23:04,000 --> 00:23:09,000 sau siruri de caractere sau caractere, ce vrei, în interiorul acestei expresie acolo. 428 00:23:09,000 --> 00:23:11,000 >> Acum, cum am face așa ceva în C? 429 00:23:11,000 --> 00:23:16,000 Care a fost sintaxa de declarare static o serie de numere cunoscute? 430 00:23:16,000 --> 00:23:19,000 A fost acolade, diferență atât de minoră aici, dar în ambele PHP 431 00:23:19,000 --> 00:23:22,000 și în cele din urmă JavaScript-l folosește doar între paranteze drepte, astfel încât într-adevăr 432 00:23:22,000 --> 00:23:25,000 detalii numai interesant aici este semnul $ pentru numele variabilei 433 00:23:25,000 --> 00:23:28,000 și, de asemenea, între paranteze drepte, și nu e un lucru curios 434 00:23:28,000 --> 00:23:32,000 care a fost omise, precum și pe partea stângă a semnului =. 435 00:23:32,000 --> 00:23:36,000 Ceea ce lipsește pe care le-am fost necesitând pentru săptămâna acum? Da,. 436 00:23:36,000 --> 00:23:38,000 [Răspuns studentul neauzit] 437 00:23:38,000 --> 00:23:41,000 Dimensiunea, deci nu exista nici o mentiune de dimensiunea tabloului. 438 00:23:41,000 --> 00:23:45,000 Sincer, nu e nici o mențiune de paranteze pătrate pe partea stângă 439 00:23:45,000 --> 00:23:47,000 a semnului =, și ce altceva lipseste din linia? 440 00:23:47,000 --> 00:23:49,000 Da >> [elevului răspunsul neauzit]. 441 00:23:49,000 --> 00:23:52,000 Tipul, astfel încât ceea ce este interesant, în special, despre PHP 442 00:23:52,000 --> 00:23:56,000 este faptul că aceasta nu este un limbaj puternic tipizat ca C este, 443 00:23:56,000 --> 00:23:58,000 și care este puternic tastat în sensul că trebuie să spui char, 444 00:23:58,000 --> 00:24:00,000 trebuie să spun int, trebuie să vă spun float. 445 00:24:00,000 --> 00:24:03,000 >> Oricand vrei o variabilă trebuie să-i spun ce tip zăngănit sa este. 446 00:24:03,000 --> 00:24:05,000 PHP este un pic mai leneși. 447 00:24:05,000 --> 00:24:08,000 Este vag tastat în sensul că 448 00:24:08,000 --> 00:24:11,000 poti avea flotoare și caractere și șiruri 449 00:24:11,000 --> 00:24:14,000 și Ints și așa mai departe, dar limba în sine 450 00:24:14,000 --> 00:24:17,000 nu-i pasă cu adevărat ceea ce ai pus în interiorul unei variabile. 451 00:24:17,000 --> 00:24:20,000 Nu trebuie să-l informeze în prealabil ce tip de date 452 00:24:20,000 --> 00:24:22,000 se întâmplă într-o variabilă. 453 00:24:22,000 --> 00:24:24,000 Este în întregime până la tine, așa că acest lucru este frumos 454 00:24:24,000 --> 00:24:27,000 în care nu trebuie să vă faceți griji la fel de mult despre datele tastarea 455 00:24:27,000 --> 00:24:29,000 și îngrijorătoare ce argumentele tale sunt și așa mai departe. 456 00:24:29,000 --> 00:24:32,000 Acest lucru înseamnă, de asemenea, eventual funcții în PHP sunt de gând să fie în măsură să se întoarcă 457 00:24:32,000 --> 00:24:36,000 fie cea mai mare o int de timp, și poate o dată într-un timp 458 00:24:36,000 --> 00:24:40,000 vor returna o bool, un boolean fals, de exemplu, pentru a semnifica faptul că ceva a mers prost. 459 00:24:40,000 --> 00:24:44,000 Acest lucru ne dă câteva upsides, dar, de asemenea, ne va face de către un fel de proiectare 460 00:24:44,000 --> 00:24:47,000 un pic mai leneș atunci când vine vorba de tastarea datelor. 461 00:24:47,000 --> 00:24:50,000 >> Ce altceva este acolo pentru a păstra în minte aici? 462 00:24:50,000 --> 00:24:54,000 Variabile arata destul de genul asta, deci $ s = "Hello, World". 463 00:24:54,000 --> 00:24:57,000 Asta e, probabil, deduse din exemplul anterior, 464 00:24:57,000 --> 00:24:59,000 și avem un alt tip de buclă. 465 00:24:59,000 --> 00:25:02,000 Aceasta vom vedea de fapt, o dată într-un timp, deoarece este destul de la îndemână, 466 00:25:02,000 --> 00:25:04,000 un foreach construi. 467 00:25:04,000 --> 00:25:11,000 În acest caz, bucla foreach ia în interiorul ei paranteze 3 cuvinte de obicei, 468 00:25:11,000 --> 00:25:16,000 $ Ceva mai întâi, care este ceea ce vrei matrice pentru a itera peste membrii, 469 00:25:16,000 --> 00:25:19,000 apoi literalmente cuvântul cheie ca, și apoi în cele din urmă, 470 00:25:19,000 --> 00:25:21,000 un alt nume variabila că veți obține pentru a alege. 471 00:25:21,000 --> 00:25:23,000 Acesta poate fi foo, bar, sau element, 472 00:25:23,000 --> 00:25:26,000 și ceea ce face acest construct 473 00:25:26,000 --> 00:25:29,000 este dacă array $ conține 10 elemente 474 00:25:29,000 --> 00:25:34,000 pe fiecare iterație a acestei matrice-rău, pe fiecare iterație a buclei acest 475 00:25:34,000 --> 00:25:37,000 elementul variabil chemat urmează să fie actualizată 476 00:25:37,000 --> 00:25:40,000 pentru a fi primul element din matrice, apoi al doilea element din matrice, 477 00:25:40,000 --> 00:25:44,000 apoi al treilea element al matricei, eliminând astfel necesitatea 478 00:25:44,000 --> 00:25:46,000 pentru a face notația ușor enervant suport pătrat și 479 00:25:46,000 --> 00:25:49,000 $ I, în scopul de a indicelui într-o matrice. 480 00:25:49,000 --> 00:25:53,000 PHP face toate care lucreaza pentru tine si la fiecare iterație 481 00:25:53,000 --> 00:25:55,000 doar iti da urmatorul element din matrice 482 00:25:55,000 --> 00:26:01,000 fără a fi nevoie să cunoască sau pasă de locația sa indice numeric. 483 00:26:01,000 --> 00:26:04,000 >> Și apoi în cele din urmă, pentru moment, există un alt element din PHP 484 00:26:04,000 --> 00:26:08,000 care va fi extrem de utilă, mai ales atunci când vom începe de programare pe Web, 485 00:26:08,000 --> 00:26:10,000 și care este cunoscut ca un tablou asociativ. 486 00:26:10,000 --> 00:26:13,000 Tablouri pe care le cunosc, astfel, ceea ce de 20 de secunde în urmă 487 00:26:13,000 --> 00:26:17,000 și pentru ultimii 8 săptămâni sunt indexate numeric tablouri, 488 00:26:17,000 --> 00:26:20,000 un fel de matrice tradiționale în cazul în care indicii sunt Ints, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, tot drumul pe sus. 490 00:26:23,000 --> 00:26:25,000 Tablouri asociative sunt mult mai puternice. 491 00:26:25,000 --> 00:26:28,000 Ele vă permit să aibă chei arbitrare, 492 00:26:28,000 --> 00:26:31,000 Indicii arbitrare și valori arbitrare. 493 00:26:31,000 --> 00:26:34,000 Întrucât într-o matrice tradițională este 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 într-un tablou asociativ puteți avea un index 495 00:26:37,000 --> 00:26:41,000 sau o cheie de foo a căror valoare este de bar. 496 00:26:41,000 --> 00:26:46,000 Puteți avea apoi o altă cheie al cărui nume este Baz și a căror valoare este qux. 497 00:26:46,000 --> 00:26:49,000 >> Din nou, stupide informatică denumirile generice variabile aici, 498 00:26:49,000 --> 00:26:55,000 dar ideea este că această matrice nu are suport 0 sau suport 1. 499 00:26:55,000 --> 00:26:59,000 Este în schimb va avea suport foo și suport Baz. 500 00:26:59,000 --> 00:27:03,000 Acest lucru este mult mai versatil, în care vom fi capabili să se asocieze 501 00:27:03,000 --> 00:27:07,000 cuvinte cu alte cuvinte, chei cu valori complet arbitrar, 502 00:27:07,000 --> 00:27:12,000 și vom fi în măsură pentru a obține aceste valori înapoi în timp constanta 503 00:27:12,000 --> 00:27:14,000 deoarece sub capota ceea ce o matrice asociativă 504 00:27:14,000 --> 00:27:16,000 este într-adevăr este un tabel hash. 505 00:27:16,000 --> 00:27:20,000 Amintiți-vă că un tabel hash vă permite să pună în unele de intrare 506 00:27:20,000 --> 00:27:25,000 Vrei pus în cuvântul lui David, dacă doriți să inserați lui David într-un fel de dicționar, 507 00:27:25,000 --> 00:27:27,000 și apoi te întorci o anumită valoare de obicei. 508 00:27:27,000 --> 00:27:29,000 În caz de abecedar, adevărat sau fals. 509 00:27:29,000 --> 00:27:33,000 David sau orice cuvânt este sau nu este în dicționar. 510 00:27:33,000 --> 00:27:36,000 Un tablou asociativ este de fapt doar un tabel hash, 511 00:27:36,000 --> 00:27:38,000 dar este o întrupare de utilizator mult mai prietenos din ea. 512 00:27:38,000 --> 00:27:41,000 După cum vom vedea, o să ne permită să facem unele lucruri 513 00:27:41,000 --> 00:27:43,000 foarte, foarte usor. 514 00:27:43,000 --> 00:27:45,000 >> Să aruncăm o privire la unele de bază, PHP 515 00:27:45,000 --> 00:27:47,000 exemple și să vedem ce putem face cu acest limbaj. 516 00:27:47,000 --> 00:27:51,000 Lasă-mă să mergeți mai departe și să deschidă în directorul sursă noastră de astăzi 517 00:27:51,000 --> 00:27:54,000 un fișier numit hello1.php. 518 00:27:54,000 --> 00:27:57,000 Acest fișier este în comentariu mai mult decât este codul actual, 519 00:27:57,000 --> 00:28:00,000 asa ca lasa-ma elimina de fapt toate comentariile de la dosar 520 00:28:00,000 --> 00:28:05,000 și pentru a vă prezenta, probabil, cel mai simplu program de PHP chiar aici. 521 00:28:05,000 --> 00:28:07,000 5 linii, iar unele dintre aceștia sunt spații albe, 522 00:28:07,000 --> 00:28:09,000 observați astfel încât unele diferențe cheie aici. 523 00:28:09,000 --> 00:28:12,000 Fișierul este denumit hello1.php. 524 00:28:12,000 --> 00:28:16,000 Linie foarte în primul rând, deși, este 00:28:18,000 Similare în spirit HTML, 526 00:28:18,000 --> 00:28:21,000 că secvența de caractere spune calculatorul 527 00:28:21,000 --> 00:28:25,000 "Hei, calculator, vine aici un program suntem în în PHP." 528 00:28:25,000 --> 00:28:28,000 Aceasta vă asigură că aceasta nu se confunda asta e altă limbă. 529 00:28:28,000 --> 00:28:30,000 Linia 2 este un spatiu interesant alb. 530 00:28:30,000 --> 00:28:32,000 Linia 3 este vechiul nostru prieten printf, 531 00:28:32,000 --> 00:28:34,000 de data aceasta, în contextul PHP. 532 00:28:34,000 --> 00:28:37,000 PHP are propria versiune a printf care se comportă exact la fel, 533 00:28:37,000 --> 00:28:39,000 Deci, aceasta este doar de gând să imprima "Hello, World". 534 00:28:39,000 --> 00:28:46,000 Și apoi această etichetă vizavi de aici,>,? Înseamnă că e pentru codul meu PHP. 535 00:28:46,000 --> 00:28:48,000 >> Să vedem cum să executați acest lucru. 536 00:28:48,000 --> 00:28:50,000 Mă duc să mă întorc la fereastră terminal mea aici. 537 00:28:50,000 --> 00:28:52,000 Am de gând să meargă în directorul meu PHP. 538 00:28:52,000 --> 00:28:56,000 Observați că avem o grămadă de fișiere, prima dintre care este hello.php. 539 00:28:56,000 --> 00:29:01,000 Lasă-mă să mergeți mai departe și a alerga acest hello1.php,, introduceți. 540 00:29:01,000 --> 00:29:03,000 Permisiune refuzată. Bine. 541 00:29:03,000 --> 00:29:06,000 Cum am stabilit lucruri, cum ar fi acest lucru în trecut? 542 00:29:06,000 --> 00:29:08,000 Ce-i asta >> [elevului răspunsul neauzit]? 543 00:29:08,000 --> 00:29:11,000 Avem nevoie de citească și să scrie, dar permiteți-mi să fac ls-l. 544 00:29:11,000 --> 00:29:14,000 Amintiți-vă această ieșire oarecum criptic, prin care hello1 545 00:29:14,000 --> 00:29:17,000 pare a fi citit si scris de mine 546 00:29:17,000 --> 00:29:19,000 dar poate fi citit de oricine altcineva. 547 00:29:19,000 --> 00:29:22,000 Se pare ca aceasta de fapt nu este un pas în direcția cea bună. 548 00:29:22,000 --> 00:29:25,000 Diferența, din nou, cu un limbaj interpretat 549 00:29:25,000 --> 00:29:27,000 este să nu executați programul direct. 550 00:29:27,000 --> 00:29:30,000 Tu conduci în schimb un interpret și predați-l codul 551 00:29:30,000 --> 00:29:33,000 pe care le-ați scris astfel încât să poată interpreta aceasta linie cu linie. 552 00:29:33,000 --> 00:29:36,000 În acest caz, interpretul sau programul eu de fapt vreau să ruleze 553 00:29:36,000 --> 00:29:38,000 este literalmente numit PHP. 554 00:29:38,000 --> 00:29:41,000 >> Undeva pe acest hard-disk de aparat există un program de 555 00:29:41,000 --> 00:29:45,000 altcineva a scris numit PHP, sau pe Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Ce am de gând să fac aici este că am de gând să fugi de fapt, PHP 557 00:29:48,000 --> 00:29:51,000 dar da-l ca un argument de linie de comandă codul pe care l-am scris, 558 00:29:51,000 --> 00:29:54,000 și apoi mă voi depărta și a lovit introduceți. 559 00:29:54,000 --> 00:29:58,000 Se rulează programul meu pentru mine, de sus în jos, de la stânga la dreapta. 560 00:29:58,000 --> 00:30:01,000 Lasă-mă să mergeți mai departe și de a deschide o variație ușoară a acestui. 561 00:30:01,000 --> 00:30:05,000 În anunțul de hello2.php că acest lucru prea 562 00:30:05,000 --> 00:30:08,000 este cea mai mare parte comentariile, asa ca lasa-ma sa scap de cei ca o distragere a atenției, 563 00:30:08,000 --> 00:30:13,000 și ceea ce este în mod clar diferit acum despre acest fișier? 564 00:30:13,000 --> 00:30:15,000 Există această linie nouă, oarecum criptic în partea de sus. 565 00:30:15,000 --> 00:30:20,000 În line 1 e #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin este o convenție pe Linux și Mac OS pentru binare, 567 00:30:24,000 --> 00:30:27,000 deci / bin înseamnă acest lucru este un dosar care conține o grămadă de binare 568 00:30:27,000 --> 00:30:29,000 care este programat, dintre care unul este PHP. 569 00:30:29,000 --> 00:30:32,000 #! este poreclit shebang, 570 00:30:32,000 --> 00:30:35,000 care este calea rapidă de a spune ea, și ce înseamnă 571 00:30:35,000 --> 00:30:40,000 este că, atunci când executați acest program acum nu mai e un indiciu de la partea de sus a fișierului 572 00:30:40,000 --> 00:30:44,000 care spune computerului ce interpret pentru a utiliza. 573 00:30:44,000 --> 00:30:47,000 >> Ea devine un pic enervant, dacă a trebuit să spun utilizatorii dvs. și clienții dvs. 574 00:30:47,000 --> 00:30:50,000 "Hei, am scris acest program numit hello1.php." 575 00:30:50,000 --> 00:30:54,000 Tot ce trebuie să faceți este să rulați PHP pentru totdeauna și apoi numele acestui program. 576 00:30:54,000 --> 00:30:58,000 Sincer, ar fi frumos doar pentru a rula hello1.php, 577 00:30:58,000 --> 00:31:00,000 și, într-adevăr, dacă putem să facem următoarele. 578 00:31:00,000 --> 00:31:05,000 Lasă-mă să mergeți mai departe și de a face ls-l, și aviz în hello2 este încă citit doar scrie 579 00:31:05,000 --> 00:31:10,000 și apoi citește citesc, asa ca nu pot face încă acest lucru, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Dar am introdus această vreodată atât de scurt de timp trecută, comanda chmod. 581 00:31:15,000 --> 00:31:20,000 Dacă aș face un chmod + x, ceea ce înseamnă toate executabil, plus, 582 00:31:20,000 --> 00:31:26,000 și apoi hello2.php și apoi se ls-l observați din nou ce a fost modificat. 583 00:31:26,000 --> 00:31:29,000 Unul, Linux este arătându-mi numele de fișier în verde pentru a transmite ideea 584 00:31:29,000 --> 00:31:32,000 că e executabil, dar, mai important, pe partea stângă 585 00:31:32,000 --> 00:31:36,000 observați că biți reprezentând x pentru executabil a fost acum stabilit. 586 00:31:36,000 --> 00:31:42,000 Ce înseamnă acest lucru acum este ca eu pot rula ./hello2.php ca de obicei, 587 00:31:42,000 --> 00:31:45,000 apăsați enter, și din cauza shebang de la foarte de sus a fișierului 588 00:31:45,000 --> 00:31:48,000 asta e un indiciu, din nou, la Linux care spune 589 00:31:48,000 --> 00:31:51,000 utiliza acest interpret pentru a rula acest fișier. 590 00:31:51,000 --> 00:31:54,000 Nu vă faceți griji cu privire la forțând utilizatorul să tastați de fapt. 591 00:31:54,000 --> 00:31:57,000 >> Și ceea ce este frumos este acum un fel e de irelevante pentru clienții mei sau prietenii mei 592 00:31:57,000 --> 00:32:01,000 ce limba am scris acest program în, așa că am putea merge mai departe cu mv 593 00:32:01,000 --> 00:32:04,000 și redenumi acest lucru pentru a hello2, de exemplu. 594 00:32:04,000 --> 00:32:07,000 Și acum, dacă eu fac ./hello2 595 00:32:07,000 --> 00:32:10,000 și zoom out programul meu continuă să funcționeze. 596 00:32:10,000 --> 00:32:13,000 Aceste extensii de fișiere sunt o convenție umană care este necesar 597 00:32:13,000 --> 00:32:15,000 pentru ceva de genul zăngănit și de a face, care le caute. 598 00:32:15,000 --> 00:32:18,000 Dar pentru PHP, am putea numi acest ceva extensia vreau. 599 00:32:18,000 --> 00:32:22,000 Aș putea pacali lumea să creadă că eu sunt foarte bun la Ruby, 600 00:32:22,000 --> 00:32:25,000 și am putea scrie hello2.rb și apoi rulați acest lucru, 601 00:32:25,000 --> 00:32:28,000 și voila, acum am versiunea Ruby, care este o minciună completă. 602 00:32:28,000 --> 00:32:30,000 Dar extensiile de fișiere sunt lipsite de sens 603 00:32:30,000 --> 00:32:35,000 în cazul în care fișierul este executabil si are acest indiciu special la partea de sus a fișierului. 604 00:32:35,000 --> 00:32:38,000 >> Acum, ca o paranteză, lasă-mă să-ți arăt repede versiunea 3, 605 00:32:38,000 --> 00:32:40,000 care este un fel de truc util să știu. 606 00:32:40,000 --> 00:32:45,000 În hello3 am făcut ceva greșit puțin 607 00:32:45,000 --> 00:32:47,000 pe care o voi actualiza online codul sursă. 608 00:32:47,000 --> 00:32:50,000 În versiunea 3 se dovedește că pe majoritatea calculatoarelor Linux 609 00:32:50,000 --> 00:32:53,000 exista un program numit env pentru mediu, 610 00:32:53,000 --> 00:32:56,000 și ceea ce puteți face aici este dacă nu aveți nici o idee de unde PHP 611 00:32:56,000 --> 00:33:00,000 este instalat pe hard disc, pentru că într-adevăr, s-ar putea varia în funcție de calculator 612 00:33:00,000 --> 00:33:03,000 că cineva se utilizează, ENV spune doar rulați env, 613 00:33:03,000 --> 00:33:07,000 care se află pe cele mai multe sisteme, și dau seama unde este PHP. 614 00:33:07,000 --> 00:33:11,000 Doar un truc comun, astfel încât să nu trebuie să vă faceți griji despre găsirea în cazul în care un program este. 615 00:33:11,000 --> 00:33:14,000 Dar dacă faci grijă pentru a afla în cazul în care un program este și nu ați îngrijit până în prezent 616 00:33:14,000 --> 00:33:16,000 puteți folosi comanda care. 617 00:33:16,000 --> 00:33:19,000 >> Lasă-mă să zoom out și tipul care php, 618 00:33:19,000 --> 00:33:23,000 și observați că acesta mi-a spus că e de fapt in usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 E un fel de minciună. Este, de asemenea, în coșul de gunoi. 620 00:33:25,000 --> 00:33:27,000 E doar aratandu-mi primul hit. 621 00:33:27,000 --> 00:33:31,000 Dacă ați întrebat vreodată de unde este zăngănit, care face să răsune, care este în usr / bin / zăngănit, 622 00:33:31,000 --> 00:33:34,000 ceea ce face, usr / bin / face, și ceea ce înseamnă că este tot acest timp 623 00:33:34,000 --> 00:33:38,000 Ai fi putut fi tastarea usr / bin / zăngănit introduceți pentru a rula zăngănit, 624 00:33:38,000 --> 00:33:41,000 dar e un fel de obositor să faci asta, asa ca unii dosare 625 00:33:41,000 --> 00:33:44,000 cum ar fi usr / bin bin și se presupune a fi implicite 626 00:33:44,000 --> 00:33:50,000 astfel încât computerul știe să caute în ele pentru tine. 627 00:33:50,000 --> 00:33:53,000 Orice întrebări cu privire la scrierea unui super, super-simplu program de Hello World 628 00:33:53,000 --> 00:33:55,000 în PHP și apoi rulează? 629 00:33:55,000 --> 00:33:59,000 Pentru că acum vom începe să introducă sintaxă mai convingătoare. 630 00:33:59,000 --> 00:34:01,000 În regulă, aici vom merge. 631 00:34:01,000 --> 00:34:03,000 Aceste programe ne-am văzut de fapt, toate acestea înainte. 632 00:34:03,000 --> 00:34:07,000 >> Dacă aș deschide, de exemplu, să facem beer1.php, 633 00:34:07,000 --> 00:34:09,000 nu vom trece prin mai multe versiuni ale acestui, dar ceea ce am făcut 634 00:34:09,000 --> 00:34:13,000 am fost așezat și turnat sau convertite 635 00:34:13,000 --> 00:34:15,000 codul meu C la codul PHP aici. 636 00:34:15,000 --> 00:34:18,000 Cele mai multe dintre partea de sus a fișierului este de comentarii aici. 637 00:34:18,000 --> 00:34:20,000 Se pare că nu e o funcție nouă ne trebuie numit readline. 638 00:34:20,000 --> 00:34:23,000 GetString, rechemare, de la Săptămâna 0 ulterior a fost un lucru CS50. 639 00:34:23,000 --> 00:34:27,000 PHP vine cu propriul user-friendly funcție numită readline 640 00:34:27,000 --> 00:34:30,000 care durează 1 argument care specifică prompte 641 00:34:30,000 --> 00:34:33,000 pe care doriți să arate la utilizator, și ceea ce face readline 642 00:34:33,000 --> 00:34:35,000 se returnează, indiferent de utilizator tipuri de inch 643 00:34:35,000 --> 00:34:39,000 În acest caz, am declara o variabilă numită $ n. 644 00:34:39,000 --> 00:34:42,000 Sunt stocarea în ea valoarea de returnare a readline 645 00:34:42,000 --> 00:34:44,000 după fapt care ia determinat utilizatorul cu acest șir. 646 00:34:44,000 --> 00:34:47,000 Doar pentru copii de rezervă, pentru a rula de fapt acest lucru, permiteți-mi să merg mai departe 647 00:34:47,000 --> 00:34:50,000 și a alerga php beer1.php. 648 00:34:50,000 --> 00:34:53,000 Câte sticle vor fi acolo? Hai să facem doar 2 de data asta. 649 00:34:53,000 --> 00:34:55,000 Enter. Asta e tot. 650 00:34:55,000 --> 00:34:59,000 >> Programul este funcțional identic cu versiunea C de la săptămâni în urmă. 651 00:34:59,000 --> 00:35:01,000 Dar hai să vedem ce punct de vedere sintactic e diferit. 652 00:35:01,000 --> 00:35:05,000 După ce am obține o int de la anunțul de utilizator care fac niște verificări eroare, 653 00:35:05,000 --> 00:35:08,000 și dacă n este mai mic de 1 am renunțat și am imprima 654 00:35:08,000 --> 00:35:11,000 un mesaj de scuze pentru utilizator și de ieșire cu 1. 655 00:35:11,000 --> 00:35:13,000 Acest lucru este de asemenea un pic diferit. 656 00:35:13,000 --> 00:35:16,000  În ceea ce C-am făcut? În C ne-am întors 1. 657 00:35:16,000 --> 00:35:20,000 În PHP ieși cu 1, pe care sincer cred că este un pic mai intuitiv 658 00:35:20,000 --> 00:35:22,000 pentru ca esti ieșirea literalmente programului. 659 00:35:22,000 --> 00:35:25,000 Toate dreapta, și apoi în jos aici melodia enervant este identic sintactic 660 00:35:25,000 --> 00:35:29,000 cu excepția variabilei, astfel încât aici, în linia 24 mai departe 661 00:35:29,000 --> 00:35:31,000 observați mea pentru bucla este aproape aceeași, 662 00:35:31,000 --> 00:35:34,000 dar am $ in fata lui i și n, 663 00:35:34,000 --> 00:35:37,000 și ceea ce este, de asemenea, lipsește de la linia 26 pe care le-am avut în trecut 664 00:35:37,000 --> 00:35:39,000 Atunci când declarăm o variabilă i? 665 00:35:39,000 --> 00:35:41,000 Nu e nici un tip. 666 00:35:41,000 --> 00:35:43,000 Este incorect să spun în PHP int. 667 00:35:43,000 --> 00:35:45,000 Tu pur și simplu nu trebuie să faci asta. 668 00:35:45,000 --> 00:35:48,000 Calculator, PHP interpret este suficient de inteligent pentru a realiza 669 00:35:48,000 --> 00:35:51,000 că, dacă ai pus un număr în $ I se va trata 670 00:35:51,000 --> 00:35:53,000 ca un număr pentru tine. 671 00:35:53,000 --> 00:35:57,000 Și apoi aici am conectați $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Toate că este aceeași, și apoi în jos aici vom face un "Wow, asta e enervant" printf 673 00:36:00,000 --> 00:36:02,000 și apoi ieșiți (0). 674 00:36:02,000 --> 00:36:05,000 >> Din nou, aici este livrata acasa, că, chiar dacă am de gând să petreacă relativ 675 00:36:05,000 --> 00:36:09,000 puțin timp în PHP, cu siguranță, față de ceea ce am făcut în C, 676 00:36:09,000 --> 00:36:12,000 e aproape la fel, și așa mai departe ceea ce vom face astăzi și săptămâna viitoare 677 00:36:12,000 --> 00:36:14,000 și dincolo este să se concentreze într-adevăr pe unele din ideile noi. 678 00:36:14,000 --> 00:36:17,000 Doar pentru a vedea că un alt lucru se traduce preluat de la C, 679 00:36:17,000 --> 00:36:20,000 acest lucru a fost un program de super-simplu am făcut în Săptămâna 1 680 00:36:20,000 --> 00:36:22,000 sau 2, care tocati o valoare. 681 00:36:22,000 --> 00:36:25,000 Dar ceea ce a fost interesant la timp despre acest program este faptul că 682 00:36:25,000 --> 00:36:28,000 a introdus noțiunea de funcție particularizată scris că ne-a scris. 683 00:36:28,000 --> 00:36:31,000 Sintaxa în PHP este aproape aceeași. 684 00:36:31,000 --> 00:36:33,000 Iată programul meu până sus. 685 00:36:33,000 --> 00:36:35,000 Observă din nou absent este orice noțiune de principal. 686 00:36:35,000 --> 00:36:39,000 Am început scrierea de cod, și aceasta este ceea ce se întâmplă pentru a obține executat de către interpret. 687 00:36:39,000 --> 00:36:42,000 Am imprima x este acum 2, probabil. 688 00:36:42,000 --> 00:36:44,000 Apoi m-am pretind cubaj ... 689 00:36:44,000 --> 00:36:47,000 Apoi am apela funcția cub și să treacă în $ x 690 00:36:47,000 --> 00:36:50,000 și atribuie valoarea returnata la $ x. 691 00:36:50,000 --> 00:36:53,000 Apoi am pretinde că este tocata, iar apoi spun acest lucru, care, sperăm, 692 00:36:53,000 --> 00:36:55,000 va spun x este acum 8. 693 00:36:55,000 --> 00:36:59,000 Sintaxa pentru funcția în PHP este vreodată atât de ușor diferită. 694 00:36:59,000 --> 00:37:01,000 Din nou, lipsește este tipul de retur. 695 00:37:01,000 --> 00:37:05,000 Din nou, lipsește este tipul de returnare și, de asemenea, lipsește este ceea ce alt tip? 696 00:37:05,000 --> 00:37:07,000 [Răspuns studentul neauzit] 697 00:37:07,000 --> 00:37:10,000 Ei bine, bine, asta e bine. Să revenim la faptul că într-o secundă. 698 00:37:10,000 --> 00:37:12,000 >> Noi nu avem, de exemplu, int aici. 699 00:37:12,000 --> 00:37:15,000 Noi nu, de exemplu, s-au int aici pentru că, din nou, în PHP 700 00:37:15,000 --> 00:37:18,000 pur si simplu nu este nevoie să și nu ar trebui să facă asta, 701 00:37:18,000 --> 00:37:20,000 ci mai degrabă e un cuvânt cheie nou, denumit funcție. 702 00:37:20,000 --> 00:37:23,000 În PHP e aproape un pic mai clar, deoarece atunci când doriți o funcție 703 00:37:23,000 --> 00:37:26,000 ai spus literalmente funcție, vă dau un nume și apoi o listă separată prin virgulă 704 00:37:26,000 --> 00:37:28,000 în cazul în care oricare dintre argumentele sale. 705 00:37:28,000 --> 00:37:32,000 Nu este nevoie să spun nule sau ceva de genul asta, si apoi retur este aceeași, 706 00:37:32,000 --> 00:37:35,000 $ $ A * a * $ o. 707 00:37:35,000 --> 00:37:38,000 Ce este, de asemenea, lipsește? Sammy a subliniat acest lucru aici. 708 00:37:38,000 --> 00:37:43,000 În partea de sus a fișierului complet absente in PHP, de asemenea, este un prototip. 709 00:37:43,000 --> 00:37:45,000 Acest lucru este de asemenea de proiectare. 710 00:37:45,000 --> 00:37:48,000 Limbi și interpreți, cum ar fi PHP sunt mai deștepți decât a fost vreodată C 711 00:37:48,000 --> 00:37:50,000 în compilatoare cum ar fi zăngănit. 712 00:37:50,000 --> 00:37:53,000 >> Amintiți-vă că zăngănit, dacă nu ai spune ca acel cub există, 713 00:37:53,000 --> 00:37:56,000 dacă nu l-ați spus că există ca printf, cu un prototip 714 00:37:56,000 --> 00:38:00,000 sau cu o # include, de asemenea, a fost de gând să țipe la tine și nu compila chiar codul. 715 00:38:00,000 --> 00:38:03,000 PHP și mai multe limbi moderne sunt mult mai deștept când vine vorba de acest lucru. 716 00:38:03,000 --> 00:38:07,000 Ei vor lua asupra lor pentru a citi prin toate codului 717 00:38:07,000 --> 00:38:11,000 și să strige la tine, apoi numai în cazul în care constată nicăieri cub. 718 00:38:11,000 --> 00:38:15,000 Nu contează dacă cub este în partea de jos sau de sus, sau chiar, în unele dosar separat. 719 00:38:15,000 --> 00:38:18,000 Limbi PHP și similare sunt acum destul de inteligent pentru a privi înainte 720 00:38:18,000 --> 00:38:26,000 la tot ceea ce înainte de asimilare tine ca au facut o greseala. 721 00:38:26,000 --> 00:38:28,000 În cazul în care nu ne lasă asta? 722 00:38:28,000 --> 00:38:32,000 >> Să facem un exemplu aici ultima în condiții, 723 00:38:32,000 --> 00:38:35,000 și dacă am deschide Notă conditions2.php prea 724 00:38:35,000 --> 00:38:37,000 Sintaxa aici este aproape aceeași. 725 00:38:37,000 --> 00:38:40,000 Sunt folosind readline loc de getString, dar că linia este la fel ca înainte, 726 00:38:40,000 --> 00:38:42,000 "Aș dori un întreg vă rog." 727 00:38:42,000 --> 00:38:45,000 Am avea atunci o condiție în cazul în care, în cazul în care o parte, și apoi un altul, 728 00:38:45,000 --> 00:38:48,000 dar funcțional acest program este, de asemenea, identic cu ceea ce am făcut săptămâni în urmă, 729 00:38:48,000 --> 00:38:51,000 așa că, dacă am rula acest lucru, php de conditions2, 730 00:38:51,000 --> 00:38:54,000 si eu dau un număr de ca 23 - 731 00:38:54,000 --> 00:38:57,000 Am ales un număr pozitiv. Dacă eu dau -1 am ales un număr negativ. 732 00:38:57,000 --> 00:39:00,000 Dacă eu dau 0 am luat într-adevăr 0. 733 00:39:00,000 --> 00:39:02,000 Deci, cine îi pasă de toate astea? 734 00:39:02,000 --> 00:39:06,000 Ei bine, unul dintre un fel distractiv de exerciții aici 735 00:39:06,000 --> 00:39:10,000 pentru mine cel puțin a fost să se întoarcă și a vedea cât de repede am putut pune în aplicare PSET 5, 736 00:39:10,000 --> 00:39:12,000 greșeli de ortografie PSET. 737 00:39:12,000 --> 00:39:15,000 Reamintească faptul că a existat acest fișier numit speller.c, 738 00:39:15,000 --> 00:39:17,000 și acolo a fost un fișier numit dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Ceea ce am făcut a fost că un fel de petrecut câteva minute și m-am convertit cod C 740 00:39:20,000 --> 00:39:23,000 la codul PHP, iar noi nu va petrece prea mult timp pe abecedar 741 00:39:23,000 --> 00:39:26,000 pentru că la fel ca în PSET 5 nu ai nevoie cu adevărat să 742 00:39:26,000 --> 00:39:29,000 petrec mult timp pe care descifrează în sine, deoarece atenția ta era pe dicționar. 743 00:39:29,000 --> 00:39:32,000 >> Este suficient să spun că, dacă ați citit prin abecedar, 744 00:39:32,000 --> 00:39:35,000 acest fișier aici, e destul de mult echivalent cu codul C 745 00:39:35,000 --> 00:39:37,000 v-am dat pentru PSET 5. 746 00:39:37,000 --> 00:39:39,000 Am adăugat doar câteva $ în locuri. 747 00:39:39,000 --> 00:39:43,000 M-am schimbat anumite nume de funcții în cazul în care nu există în PHP. 748 00:39:43,000 --> 00:39:45,000 Nu e un lucru suplimentar aici, preg_match, 749 00:39:45,000 --> 00:39:48,000 care este modul în care un pic crescator de a face ceva, dar vom reveni la cele din urmă. 750 00:39:48,000 --> 00:39:51,000 Dar, în scurt, descifrează este aproape identic, iar daca te uiti la partea de jos foarte 751 00:39:51,000 --> 00:39:54,000 ceea ce în cele din urmă scuipă e asta aici, 752 00:39:54,000 --> 00:39:57,000 cuvinte scrise greșit, cuvinte în dicționar, cuvinte în text. 753 00:39:57,000 --> 00:40:00,000 În regulă, deci ce e interesant acum este următorul. 754 00:40:00,000 --> 00:40:05,000 La partea de sus a dosarul meu am nevoie dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Așa cum și-a C # include PHP are o funcție specială numită necesita 756 00:40:09,000 --> 00:40:14,000 că destul de mult face acelasi lucru, necesită un fișier numit dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Cum pot merge despre punerea în aplicare a PSET 5? 758 00:40:18,000 --> 00:40:21,000 Lasă-mă să mergeți mai departe și de a deschide un fișier aici. 759 00:40:21,000 --> 00:40:24,000 Lasă-mă să iau un pic de referință aici. 760 00:40:24,000 --> 00:40:29,000 Și lasă-mă să creați un fișier nou și începe de asteptare acest dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Lasă-mă să-l pun într-un alt dosar astfel încât să putem face acest lucru trăi. 762 00:40:31,000 --> 00:40:33,000 Și acum voi mări inch 763 00:40:33,000 --> 00:40:37,000 Am de gând să înceapă dosarul meu PHP cu suport php deschis închis suport. 764 00:40:37,000 --> 00:40:40,000 Și apoi aici, au existat cateva functii care aveam nevoie pentru punerea în aplicare pentru PSET 5, 765 00:40:40,000 --> 00:40:42,000 asa ca lasa-mi să încep de punere în aplicare unele dintre acestea, 766 00:40:42,000 --> 00:40:47,000 Deci, a verifica funcția, care a trebuit să ia un cuvânt într-un argument ca. 767 00:40:47,000 --> 00:40:49,000 Vom face asta și vin înapoi să-l într-o clipă. 768 00:40:49,000 --> 00:40:53,000 >> Nu a fost de încărcare funcție, care a avut în ceea ce ca un argument? 769 00:40:53,000 --> 00:40:56,000 Dicționar, astfel încât fișierul pe care am vrut de fapt să se încarce. 770 00:40:56,000 --> 00:41:00,000 Nu a fost dimensiunea funcție, care nu a luat nici un argument 771 00:41:00,000 --> 00:41:04,000 și acolo a fost funcția de-ceea ce a fost alta? 772 00:41:04,000 --> 00:41:06,000 Unload, care nu a luat nici un argument, fie. 773 00:41:06,000 --> 00:41:10,000 Acestea sunt cele 4 functii pe care mi-ar trebui să pună în aplicare în prezent în PHP, 774 00:41:10,000 --> 00:41:13,000 și ceea ce am de gând să faceți este să mergeți mai departe și de a face acest lucru. 775 00:41:13,000 --> 00:41:16,000 O mulțime de ai folosit un tabel de distribuire în PSET 5, 776 00:41:16,000 --> 00:41:21,000 asa ca lasa-mi merge mai departe și de a crea un tabel hash în PHP. 777 00:41:21,000 --> 00:41:23,000 Adoptată. 778 00:41:23,000 --> 00:41:25,000 Asta îmi dă un tabel hash. Ei bine, de ce? 779 00:41:25,000 --> 00:41:30,000 Unul, variabila se numeste $ tabel, doar pentru a evoca ideea unui tabel hash. 780 00:41:30,000 --> 00:41:34,000 Parantezele pătrate, deși, reamintim, reprezintă ce? 781 00:41:34,000 --> 00:41:37,000 O matrice, dar în matrice PHP nu trebuie să fie numeric indexat. 782 00:41:37,000 --> 00:41:41,000 Ele pot fi, de asemenea, tablouri asociative, 783 00:41:41,000 --> 00:41:44,000 ceea ce înseamnă că puteți avea cheile și valorile arbitrare. 784 00:41:44,000 --> 00:41:49,000 >> La fel ca în PSET 5, aceia dintre voi care au facut implementari hash de masă 785 00:41:49,000 --> 00:41:53,000 ați inserat, probabil, cuvântul și apoi introdus-o într-un lanț de liste legate, 786 00:41:53,000 --> 00:41:56,000 sau ați stocat undeva valoarea adevărată sau ceva în acest sens. 787 00:41:56,000 --> 00:41:59,000 Ți-ai amintit cumva faptul că cuvântul a fost acolo. 788 00:41:59,000 --> 00:42:01,000 Pentru moment, care va fi masa mea hash, 789 00:42:01,000 --> 00:42:06,000 și așa mai departe acum de a merge despre punerea în aplicare funcția de verificare 790 00:42:06,000 --> 00:42:09,000 Trebuie doar să te uiți în interiorul tabelului hash 791 00:42:09,000 --> 00:42:11,000 și a vedea dacă un cuvânt este acolo. 792 00:42:11,000 --> 00:42:15,000 Ceea ce am de gând să faceți este să am de gând să spun, dacă- 793 00:42:15,000 --> 00:42:20,000 să zicem isset, care este o funcție PHP care literalmente înseamnă doar este set-cheie, 794 00:42:20,000 --> 00:42:24,000 astfel isset ($ tabel [$ cuvânt], 795 00:42:24,000 --> 00:42:29,000 și dacă da, return true. 796 00:42:29,000 --> 00:42:32,000 Asta e tot. Asta e PSET 5 in PHP. 797 00:42:32,000 --> 00:42:34,000 Ei bine, în corectitudine, bine. 798 00:42:34,000 --> 00:42:37,000 Altfel întoarce false, așa că nu e acolo. 799 00:42:37,000 --> 00:42:39,000 Ce se întâmplă de fapt aici? 800 00:42:39,000 --> 00:42:42,000 Ei bine, dacă tabelul hash-sau masa aici mai general, 801 00:42:42,000 --> 00:42:46,000 este un tablou asociativ care înseamnă că poate indexa în ea 802 00:42:46,000 --> 00:42:50,000 cu un cuvânt cum ar fi "cuvant", și trebuie să mă întorc o valoare. 803 00:42:50,000 --> 00:42:52,000 >> Suntem un fel de a face cu un pas înaintea noastră. 804 00:42:52,000 --> 00:42:56,000 Acesta ar fi un fel de frumos dacă am incarcat de fapt, primul fișier, 805 00:42:56,000 --> 00:42:58,000 deci sarcina nu este la fel de simplu, dar lasă-mă să merg mai departe și bici 806 00:42:58,000 --> 00:43:00,000  o punere în aplicare foarte repede de încărcare. 807 00:43:00,000 --> 00:43:07,000 Lasă-mă să mergeți mai departe și spun cuvinte devine dicționarul fișier. 808 00:43:07,000 --> 00:43:10,000 Funcția fișier în PHP deschide un fișier 809 00:43:10,000 --> 00:43:12,000 și se întoarce la tine o matrice de toate cuvintele din acest fișier, 810 00:43:12,000 --> 00:43:14,000 doar le inmaneaza pentru tine. 811 00:43:14,000 --> 00:43:16,000 Asta a fost o mare durere prea, nu-i așa? 812 00:43:16,000 --> 00:43:21,000 Acum foreach, aceasta este noua noastră construct, foreach ($ cuvinte precum $ cuvânt). 813 00:43:21,000 --> 00:43:25,000 Această buclă este de gând să înceapă iterarea peste cuvintele matrice 814 00:43:25,000 --> 00:43:30,000 și atribuie variabilei $ cuvânt fiecare cuvânt în fișierul 815 00:43:30,000 --> 00:43:32,000 de la prima la a doua la a treia și a patra tot felul 816 00:43:32,000 --> 00:43:35,000 așa că nu trebuie să fac enervant [i] notația și place. 817 00:43:35,000 --> 00:43:38,000 Și ceea ce am de gând să fac pur și simplu, pentru fiecare din aceste cuvinte 818 00:43:38,000 --> 00:43:43,000 este stoca în masa mea de indexare în tabelul 819 00:43:43,000 --> 00:43:47,000 si apoi faci adevărat, pentru că să-și amintească 820 00:43:47,000 --> 00:43:50,000 faptul că un cuvânt este în dicționar mea tot ce am într-adevăr trebuie să fac 821 00:43:50,000 --> 00:43:55,000 este un fel de flip un pic și să spună acest cuvânt în masa mea hash este acolo, adevărat. 822 00:43:55,000 --> 00:43:58,000 Și dacă nu e acolo, eu nu am să afișezi explicit false, 823 00:43:58,000 --> 00:44:01,000 altfel mi-ar trebui pentru a pune false pentru toate cuvintele posibile în univers. 824 00:44:01,000 --> 00:44:05,000 >> Este suficient pentru mine doar pentru a stabili o valoare a indicelui 825 00:44:05,000 --> 00:44:09,000 pentru adevărat dacă un cuvânt este, de fapt, în masa mea hash. 826 00:44:09,000 --> 00:44:12,000 Acum, am o pereche de tăiere colțuri aici că voi flutur mâinile puțin pentru moment, 827 00:44:12,000 --> 00:44:15,000 dar acum funcția de încărcare se face. 828 00:44:15,000 --> 00:44:18,000 Am încărca toate cuvintele din fișierul într-o matrice. 829 00:44:18,000 --> 00:44:21,000 Am itera peste asta matrice, și pentru fiecare cuvânt în matrice 830 00:44:21,000 --> 00:44:24,000 L-am conectați în tabelul meu de distribuire cu 1 linie de cod. 831 00:44:24,000 --> 00:44:26,000 Acest lucru este distractiv. Știi cum putem implementa dimensiunea acum? 832 00:44:26,000 --> 00:44:28,000 Ei bine, marimea este intotdeauna destul de ușor, în corectitudine. 833 00:44:28,000 --> 00:44:32,000 Aici putem face reveni doar numărul de masă. 834 00:44:32,000 --> 00:44:34,000 Asta e destul de ușor prea, conta numărul de lucruri în tabel. 835 00:44:34,000 --> 00:44:36,000 Asta e de fapt un fel de a nu mai eficient. 836 00:44:36,000 --> 00:44:39,000 Ar trebui să am, probabil, o dimensiune variabilă numită astfel încât să putem face acest lucru 837 00:44:39,000 --> 00:44:41,000 în timp constant, dar asta e destul de ușor. 838 00:44:41,000 --> 00:44:45,000 Oh, și apoi descărcarea, dacă vrem cu adevărat să fie anal aici 839 00:44:45,000 --> 00:44:47,000 putem spune că e modul în care descărcați ceva. 840 00:44:47,000 --> 00:44:49,000 Puteți seta doar variabilă egală cu o matrice goală, 841 00:44:49,000 --> 00:44:51,000 și-l scapa de tot ce a fost acolo. 842 00:44:51,000 --> 00:44:53,000 Nu este nevoie pentru a apela gratuit. 843 00:44:53,000 --> 00:44:56,000 >> Din nou, am tăiat niște colțuri, și îmi cer scuze pentru setul de probleme pentru atribuirea 5 844 00:44:56,000 --> 00:45:00,000 probabil în C, dar dacă mergem acum mai departe și a alerga acest lucru, 845 00:45:00,000 --> 00:45:02,000 Mă duc să curgă de fapt versiunea pe care am scris în avans 846 00:45:02,000 --> 00:45:05,000 doar pentru ca nu am face nici un fel de greșeli sintactice. 847 00:45:05,000 --> 00:45:08,000 Lasă-mă să mergeți mai departe și a alerga abecedar. Utilizare este același. 848 00:45:08,000 --> 00:45:12,000 Aici este un fișier de dicționar care conține doar cuvântul foo. 849 00:45:12,000 --> 00:45:15,000 Aici este un fișier text care conține doar foo bar. 850 00:45:15,000 --> 00:45:19,000 Să vraja verifica acest lucru, asa abecedar, folosind acest fișier dicționar la acest fișier text. 851 00:45:19,000 --> 00:45:21,000 Nu e un cuvânt greșit ortografiat, bar, și voila. 852 00:45:21,000 --> 00:45:23,000 Adoptat cu PSET 5. 853 00:45:23,000 --> 00:45:30,000 Să luăm o pauză de 5 minute aici, și ne vom întoarce și mai mult pe PHP. 854 00:45:30,000 --> 00:45:32,000 În regulă, ne-am întors. 855 00:45:32,000 --> 00:45:34,000 Să-mi fac-urăsc pentru o vreme. 856 00:45:34,000 --> 00:45:37,000 Să vedem acum dacă acest fapt nu a fost un rezultat pozitiv 857 00:45:37,000 --> 00:45:39,000 punere în aplicare a, de fapt acest lucru în PHP. 858 00:45:39,000 --> 00:45:43,000 Desigur, a fost nevoie de 45 secunde pentru a pune în aplicare. 859 00:45:43,000 --> 00:45:45,000 >> Dar să mergem mai departe și a alerga acum lucrurile. 860 00:45:45,000 --> 00:45:49,000 Lasă-mă să merg mai departe și a alerga o versiune C 861 00:45:49,000 --> 00:45:52,000 de pronuntie, iar noi îl vom rula pe unul dintre cele mai mari fișiere, 862 00:45:52,000 --> 00:45:54,000 care este Biblia King James. 863 00:45:54,000 --> 00:45:57,000 Și aici este faptul că, în-să mergem în directorul nostru C, 864 00:45:57,000 --> 00:46:01,000 descifrează pe King James cincea. 865 00:46:01,000 --> 00:46:03,000 O mulțime de cuvinte ortografiate greșit. 866 00:46:03,000 --> 00:46:06,000 Ok, deci asta e, probabil, de ieșire ai luat, chiar dacă vremurile sunt un pic diferite, 867 00:46:06,000 --> 00:46:09,000 daca ai totul funcționează corect, și așa dată în total pentru verificarea ortografiei 868 00:46:09,000 --> 00:46:13,000 King James Bible a fost 0.38 secunde, deci destul de bine cu ajutorul că punerea în aplicare. 869 00:46:13,000 --> 00:46:16,000 Acum, lasă-mă să intru în versiunea PHP, pe care tocmai am scris. 870 00:46:16,000 --> 00:46:18,000 Permiteți-mi să ruleze pe care descifrează King James. 871 00:46:18,000 --> 00:46:21,000 Hopa, ignora această eroare. Sunt în directorul greșit. 872 00:46:21,000 --> 00:46:24,000 Descifrează pe King James cincea. 873 00:46:46,000 --> 00:46:48,000 Aproape am terminat. 874 00:46:48,000 --> 00:46:51,000 >> Bine, observator atent va da seama că a fost mai mult de 3 secunde acolo. 875 00:46:51,000 --> 00:46:54,000 Aceasta este adevărata timpul de funcționare. 876 00:46:54,000 --> 00:46:58,000 Se pare că este nevoie de timp să scuipe o mulțime de text din 877 00:46:58,000 --> 00:47:00,000 din cauza tamponare probleme, dar povestea pe scurt, 878 00:47:00,000 --> 00:47:04,000 care a fost de 3.15 secunde masina a timpului, CPU de timp, 879 00:47:04,000 --> 00:47:07,000 față de ceea ce a fost un moment în urmă? 880 00:47:07,000 --> 00:47:09,000 Ca 0.3. 881 00:47:09,000 --> 00:47:11,000 Adică, e un ordin de mărime mai lent, astfel încât în ​​cazul în care este faptul că 882 00:47:11,000 --> 00:47:14,000 încetinirea ridicol provin din? 883 00:47:14,000 --> 00:47:17,000 Ei bine, cum a fost cazul cu cele mai multe orice decizie de design care le-am făcut 884 00:47:17,000 --> 00:47:21,000 în clasa in ultimele 9 săptămâni există aproape întotdeauna acest compromis. 885 00:47:21,000 --> 00:47:24,000 Uneori, doar între spațiu, uneori între spațiu și timp, 886 00:47:24,000 --> 00:47:27,000 spațiu, timp și efort de dezvoltare, și într-adevăr aici, chiar dacă 887 00:47:27,000 --> 00:47:31,000 am salvat o cantitate mare de timp, poate eventual 10-20-30 oră 888 00:47:31,000 --> 00:47:34,000 de timpul de dezvoltare de punere în aplicare verificatorul ortografic 889 00:47:34,000 --> 00:47:36,000 prin biciuire-l în doar 45 de secunde, cu aceasta limba 890 00:47:36,000 --> 00:47:40,000 prețul pe care îl plătiți este că e un ordin de mărime mai lent, ca rezultat, 891 00:47:40,000 --> 00:47:43,000 și acesta este, în general, cazul cu cele mai multe orice limbaj interpretat, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl sau altele prin care 893 00:47:46,000 --> 00:47:49,000 dacă ai de gând să-l rulați prin intermediul unui interpret și l-au citit codul 894 00:47:49,000 --> 00:47:52,000 linie cu linie, de sus în jos, de la stânga la dreapta, 895 00:47:52,000 --> 00:47:55,000 că intermediar este de gând să ia ceva timp proprie, 896 00:47:55,000 --> 00:47:59,000 și ceea ce te simți aici, în cele 3 secunde, spre deosebire de 0.3 secunde 897 00:47:59,000 --> 00:48:02,000 este faptul că nu există acest intermediar, care trebuie să interpreteze literal codul nostru 898 00:48:02,000 --> 00:48:05,000 linie cu linie, și Doamne ferește, dacă ești în interiorul unei bucle 899 00:48:05,000 --> 00:48:08,000 cu un fișier imens care conține sute de mii de cuvinte. 900 00:48:08,000 --> 00:48:11,000 >> Această aeriene se va adăuga și adăuga până și se adaugă în sus și adăuga până. 901 00:48:11,000 --> 00:48:16,000 Pentru un instrument ca aceasta, nu e probabil cel mai bun de a utiliza limbajul pentru punerea în aplicare a 902 00:48:16,000 --> 00:48:20,000 un corector ortografic, dacă iminența este de interes pentru utilizatorii dvs. și pentru tine. 903 00:48:20,000 --> 00:48:23,000 Dar avem de lux într-o clipă, dacă este 904 00:48:23,000 --> 00:48:27,000 folosesc un limbaj cum ar fi PHP sau o mulțime de limbi interpretate 905 00:48:27,000 --> 00:48:30,000 în contextul Web, pentru care contează, aveți avantajul 906 00:48:30,000 --> 00:48:34,000 faptul că internetul este mult mai lent decât majoritatea calculatoarelor. 907 00:48:34,000 --> 00:48:38,000 Ai un procesor GHz în calculatorul dvs., 2 GHz, poate chiar mai mult in aceste zile. 908 00:48:38,000 --> 00:48:41,000 Dar realitatea este pe internet există o cantitate mare de latență 909 00:48:41,000 --> 00:48:45,000 prin care, pentru un browser pentru a vorbi cu un server, chiar dacă am văzut săptămâna trecută 910 00:48:45,000 --> 00:48:47,000 că e destul de rapid, de o jumătate de milisecunde sau cam asa ceva, 911 00:48:47,000 --> 00:48:51,000 că prea adaugă în sus, și dacă sunteți descărcarea lucruri cum ar fi o imagine 912 00:48:51,000 --> 00:48:54,000 sau o fotografie pe Facebook sau pentru a obține mesaje instant peste palavrageala pe Facebook, 913 00:48:54,000 --> 00:48:57,000 Gchat sau similare, toate aceste ori tur-retur 914 00:48:57,000 --> 00:49:00,000 între browser și serverul de pornire pentru a adăuga în sus, 915 00:49:00,000 --> 00:49:03,000 ceea ce face alegerea dvs. special a limbii, în multe cazuri, 916 00:49:03,000 --> 00:49:07,000 Nu tot ceea ce este relevant, deci esti bine folosind un limbaj ușor mai lent 917 00:49:07,000 --> 00:49:10,000 cum ar fi PHP sau Python sau Ruby 918 00:49:10,000 --> 00:49:13,000 dar pentru care există upsides uriașe pentru dvs. și colegii dvs. 919 00:49:13,000 --> 00:49:17,000 și prietenii tăi pentru că puteți pune în aplicare lucrurile așa, atât de mult mai repede. 920 00:49:17,000 --> 00:49:20,000 Și, în plus, aveți risc mult mai mic de defecte de securitate anumitor. 921 00:49:20,000 --> 00:49:22,000 Nu e nici pointeri în PHP. 922 00:49:22,000 --> 00:49:25,000 Nu e nici defecte pe care le SEG pot induce cu ușurință 923 00:49:25,000 --> 00:49:27,000 în același mod în care ar putea, în C. 924 00:49:27,000 --> 00:49:29,000 Cu C esti super-aproape la hardware-ul. 925 00:49:29,000 --> 00:49:33,000 Cu limbi PHP și similare ești un fel de nivel superior, ca să spunem așa, 926 00:49:33,000 --> 00:49:37,000 cu o mulțime de apărare între tine și ceea ce se întâmplă de fapt pe 927 00:49:37,000 --> 00:49:39,000 în interiorul mașinii, și e doar un compromis. 928 00:49:39,000 --> 00:49:42,000 >> Noi am ajuns la punctul de a avea aceste mai moderne, limbi la nivel înalt 929 00:49:42,000 --> 00:49:47,000 cum ar fi PHP, din cauza lecțiilor învățate în limbi, cum ar fi PHP în C. 930 00:49:47,000 --> 00:49:50,000 Dar dacă nu înțeleg ce se întâmplă sub capotă tot acest timp 931 00:49:50,000 --> 00:49:53,000 cu siguranță nu pot lua deciziile corecte de proiectare, 932 00:49:53,000 --> 00:49:56,000 și cu siguranță atunci când vine vorba de a lucra într-un loc cum ar fi Facebook sau Google 933 00:49:56,000 --> 00:49:59,000 sau oricare dintre aceste locuri, care sunt din ce în ce joaca cu seturi mari de date 934 00:49:59,000 --> 00:50:01,000 chiar dacă te duci înapoi și nu student la medicina și sunt de lucru cu unele MD 935 00:50:01,000 --> 00:50:04,000 pe unele mari de date stabilit implicând pacienți și medici 936 00:50:04,000 --> 00:50:08,000 și cum ar fi utilizarea instrumentelor adecvate este extrem de convingatoare 937 00:50:08,000 --> 00:50:11,000 pentru că altfel analiza de un anumit set de date poate dura câteva secunde, 938 00:50:11,000 --> 00:50:14,000 sau s-ar putea să ia literalmente de ore. 939 00:50:14,000 --> 00:50:17,000 Acesta este doar un exemplu, să nu te frustra, cu un efort cât mai mult 940 00:50:17,000 --> 00:50:21,000 era în C, dar pentru a vă ajuta să apreciem că, atunci când se pune în aplicare ceva în C 941 00:50:21,000 --> 00:50:24,000 te înțelege cu adevărat, sau în teorie, să înțeleagă cu adevărat 942 00:50:24,000 --> 00:50:28,000 cum totul este sau ar trebui să fie de lucru, și aveți un control aproape complet 943 00:50:28,000 --> 00:50:31,000 asupra a ceea ce se întâmplă pe sub capota, si cu aceste limbi de nivel superior 944 00:50:31,000 --> 00:50:34,000 va trebui să renunțe la controlul mai mult la oamenii care le-au inventat 945 00:50:34,000 --> 00:50:37,000 și sunt supuse mai mult pentru a deciziile de design lor decât a ta. 946 00:50:37,000 --> 00:50:41,000 Dar dacă ne ia acordat pentru faptul că performanța 947 00:50:41,000 --> 00:50:44,000 nu este la fel de important pe internet din cauza acestor alte aspecte, 948 00:50:44,000 --> 00:50:47,000 doar viteze de rețea sunt un pic mai lent decât viteza CPU, oricum, 949 00:50:47,000 --> 00:50:50,000 astfel încât să putem rezolva de permite de a utiliza un limbaj ușor mai lent 950 00:50:50,000 --> 00:50:55,000 în cazul în care sunt upsides putem dezvolta lucrurile de 10 ori mai repede sau chiar mai mult. 951 00:50:55,000 --> 00:50:57,000 >> Să vedem cum putem începe să utilizați acest. 952 00:50:57,000 --> 00:51:00,000 Lasă-mă să merg într-un dosar 953 00:51:00,000 --> 00:51:03,000 printre exemplele de azi numit frosh.ims, 954 00:51:03,000 --> 00:51:06,000 și acest lucru a fost de fapt personal motivată de faptul că foarte primul lucru 955 00:51:06,000 --> 00:51:10,000 Am scris pentru Web de ani în urmă după ce a luat CS50 CS51 și 956 00:51:10,000 --> 00:51:14,000 a fost un site pentru programul Frosh AI, sport intramural boboc, 957 00:51:14,000 --> 00:51:16,000 care, la momentul acesta a fost în urmă cu ani suficiente că, la momentul 958 00:51:16,000 --> 00:51:19,000 nu a existat nici site-ul pentru programul, chiar dacă a existat un web, 959 00:51:19,000 --> 00:51:22,000 și în loc a existat o Proctor în Wigglesworth, prin care, dacă ai vrut 960 00:51:22,000 --> 00:51:26,000 să se înregistreze pentru volei sau fotbal sau orice altceva v-ar umple o bucată de hârtie. 961 00:51:26,000 --> 00:51:28,000 Tu ar merge apoi prin curte. 962 00:51:28,000 --> 00:51:31,000 V-ar bate la usa, apoi și diapozitive în ușa lor sau o parte a Proctor 963 00:51:31,000 --> 00:51:34,000 o bucată de hârtie cu numele tău pe ea, sau nu vrei sa fi un căpitan de echipă, 964 00:51:34,000 --> 00:51:37,000 ce sport ai vrut să faci, și ce dormitorul ai fost inch 965 00:51:37,000 --> 00:51:39,000 A fost un fel de mod de școală veche de a face lucrurile, iar acest lucru a fost un prim 966 00:51:39,000 --> 00:51:41,000 posibilitatea de a automatiza o mulțime de acest proces. 967 00:51:41,000 --> 00:51:43,000 Tu du-te la site-ul web. Tastați ceva inch 968 00:51:43,000 --> 00:51:46,000 Veți obține un email de confirmare, iar boom-ul, ați terminat. 969 00:51:46,000 --> 00:51:49,000 >> Acesta a fost primul lucru am făcut, deși într-un limbaj numit Pearl, 970 00:51:49,000 --> 00:51:52,000 dar este relativ ușor de făcut în PHP, iar acest lucru este un fel de reprezentant 971 00:51:52,000 --> 00:51:55,000 dintre problemele pe care le puteți începe rezolvarea atunci când vă puteți exprima 972 00:51:55,000 --> 00:51:58,000 programatic și nu trebuie să se bazeze pe lucruri cum ar fi site-urile Google 973 00:51:58,000 --> 00:52:01,000 sau Excel sau instrumente care sunt predate la tine. 974 00:52:01,000 --> 00:52:03,000 Voi avea acum capacitatea de a face lucruri de genul asta. 975 00:52:03,000 --> 00:52:06,000 Aceasta este o versiune super-urat a unui formular, 976 00:52:06,000 --> 00:52:09,000 dar hai sa folosesc doar pentru începutul conversației prin care acest lucru este 977 00:52:09,000 --> 00:52:12,000 aproximativ ceea ce semăna cu formularul de ani în urmă pentru noi 978 00:52:12,000 --> 00:52:14,000 pentru a permite persoanelor de pe Web pentru a vă înscrie pentru Frosh AI. 979 00:52:14,000 --> 00:52:18,000 Am cerut un nume, o casetă de selectare pentru a vedea dacă sunt sau nu au vrut să fie căpitan, 980 00:52:18,000 --> 00:52:21,000 bărbat sau femeie, și apoi ceea ce au fost în cămin, 981 00:52:21,000 --> 00:52:23,000 și apoi le va prezenta acest formular. 982 00:52:23,000 --> 00:52:27,000 Să ne uităm mai întâi sub capota de la HTML care reprezintă această pagină web. 983 00:52:27,000 --> 00:52:31,000 Lasă-mă să intru în froshims0, 984 00:52:31,000 --> 00:52:35,000 si ca o paranteza, pentru PSET 7 Iau de la sine 985 00:52:35,000 --> 00:52:37,000 directoarele și folderele pe care am pune lucrurile inch 986 00:52:37,000 --> 00:52:40,000 Vă vom plimba prin exact unde lucrurile trebuie să meargă în aparat, 987 00:52:40,000 --> 00:52:43,000 Mod comenzi pe care trebuie sa fugi, așa că nu vă faceți griji despre toate 988 00:52:43,000 --> 00:52:46,000 detalii stupide sincronizarea de la get-du-te aici. 989 00:52:46,000 --> 00:52:49,000 >> În regulă, aici e froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Lasă-mă să defilați în jos, și ceea ce e curios aici, 991 00:52:52,000 --> 00:52:56,000 acesta este un fișier PHP, dar ceea ce este în interiorul ei, în mod clar? 992 00:52:56,000 --> 00:52:59,000 E o mulțime de HTML, PHP și într-adevăr, despre originile 993 00:52:59,000 --> 00:53:02,000 într-adevăr au fost pentru a fi un limbaj Web-centrice. 994 00:53:02,000 --> 00:53:04,000 Un moment în urmă am folosit-o pentru a pune în aplicare exemplul bere, 995 00:53:04,000 --> 00:53:07,000 în condițiile exemplu, exemplu salut, și asta e bine. 996 00:53:07,000 --> 00:53:11,000 Aveți posibilitatea să utilizați PHP ca limbaj de scripting 997 00:53:11,000 --> 00:53:15,000 în cazul în care un script este de fapt doar nomenclatura dat un program rapid și murdar 998 00:53:15,000 --> 00:53:19,000 sau ceva pe care le scrie într-un scenariu sau mai mult, în general, un limbaj interpretat. 999 00:53:19,000 --> 00:53:22,000 PHP este super util pentru că, din cauza ați văzut cât de repede 1000 00:53:22,000 --> 00:53:24,000 relativ putem biciul de programe în PHP. 1001 00:53:24,000 --> 00:53:27,000 Dar a fost într-adevăr conceput pentru a fi utilizat pentru Web, 1002 00:53:27,000 --> 00:53:31,000 și concepute pentru Web în sensul că observați aici, la partea de sus a fișierului 1003 00:53:31,000 --> 00:53:34,000 Eu încep cu 00:53:38,000 Apoi, am o grămadă de comentarii inutile, acordate, dar apoi m-am închide PHP modul. 1005 00:53:38,000 --> 00:53:41,000 Dar apoi m-am picătură în modul HTML. 1006 00:53:41,000 --> 00:53:45,000 >> Ce este interesant despre PHP, chiar dacă este fișierul se termină în. Php 1007 00:53:45,000 --> 00:53:48,000 este, în general, menit să fie co-amestecate cu HTML, 1008 00:53:48,000 --> 00:53:50,000 unele cod PHP, unele HTML. 1009 00:53:50,000 --> 00:53:53,000 Și vom vedea în cele din urmă că putem începe să tachineze pe cei în afară 1010 00:53:53,000 --> 00:53:56,000 și să păstreze separat nostru HTML la PHP noastră cu totul, 1011 00:53:56,000 --> 00:53:59,000 dar originile într-adevăr au fost PHP pentru a vă oferi această flexibilitate, 1012 00:53:59,000 --> 00:54:02,000 că, dacă vrei ceva HTML scrie doar, și că va fi 1013 00:54:02,000 --> 00:54:04,000 scuipă identic cu browser-ul. 1014 00:54:04,000 --> 00:54:07,000 Dar, dacă aveți nevoie de o tehnica de programare, 1015 00:54:07,000 --> 00:54:12,000 un cod de programare, puteți pune, de asemenea, că în exact același fișier, după cum vom vedea în curând. 1016 00:54:12,000 --> 00:54:14,000 Iată HTML mea. 1017 00:54:14,000 --> 00:54:16,000 Am un titlu de asta pentru Frosh AI. 1018 00:54:16,000 --> 00:54:20,000 Am un tag-ul body care a luat unele CSS pe el pentru a tot ceea ce, în centrul de mijloc, 1019 00:54:20,000 --> 00:54:23,000 si apoi aici am un formular care aparent va fi prezentat 1020 00:54:23,000 --> 00:54:27,000 într-un fișier nou numit register0.php, deci vom vedea că într-o clipă. 1021 00:54:27,000 --> 00:54:31,000 Este folosind o metoda numita mesaj, pe care ne vom întoarce la la fel de bine. 1022 00:54:31,000 --> 00:54:34,000 Apoi am niște intrări de formular, un nume numita, al cărui tip este text, 1023 00:54:34,000 --> 00:54:37,000 una a cărei nume este căpitanul, al cărui tip este caseta, 1024 00:54:37,000 --> 00:54:40,000 și acest lucru, nu am mai văzut-o, dar ea face exact ceea ce spune. 1025 00:54:40,000 --> 00:54:42,000 Veți primi o casetă de selectare în loc de o casetă de text. 1026 00:54:42,000 --> 00:54:46,000 Aici aveti un buton radio, care este unul dintre aceste butoane circulare 1027 00:54:46,000 --> 00:54:48,000 pe care le puteți alege fie prezenta una sau că una. 1028 00:54:48,000 --> 00:54:52,000 >> Observă că e deliberată că i-am dat ambele butoane radio numele de gen. 1029 00:54:52,000 --> 00:54:55,000 Acesta este modul în care veți obține de excludere reciprocă, prin care trebuie să faceți clic 1030 00:54:55,000 --> 00:54:58,000 fie prezenta una sau că una, și făcând clic pe de altă parte 1031 00:54:58,000 --> 00:55:01,000 aceasta Debifarea alta, deci va trebui să le dea același nume 1032 00:55:01,000 --> 00:55:03,000 dacă doriți ca acestea să fie reciproc exclusive așa. 1033 00:55:03,000 --> 00:55:07,000 Și apoi pentru cămin, nu cred că am văzut încă acest lucru, dar e un meniu select, un meniu drop-down. 1034 00:55:07,000 --> 00:55:09,000 Tag-ul pentru că este, selectați. 1035 00:55:09,000 --> 00:55:11,000 Ai da apoi meniul drop-down un nume, 1036 00:55:11,000 --> 00:55:13,000 și atunci aveți o grămadă de aceste opțiuni. 1037 00:55:13,000 --> 00:55:16,000 Primul, doar pentru estetica, este un șir gol. 1038 00:55:16,000 --> 00:55:20,000 Am vrut doar meniurile jos pentru a fi martor în mod implicit, 1039 00:55:20,000 --> 00:55:22,000 și apoi acolo e Apley, Canaday, Grays, și așa mai departe. 1040 00:55:22,000 --> 00:55:24,000 Și observați dihotomia aici. 1041 00:55:24,000 --> 00:55:27,000 Opțiune în meniurile care se are o valoare, 1042 00:55:27,000 --> 00:55:30,000 dar atunci aceasta are un nume de om prietenos, care, în acest exemplu 1043 00:55:30,000 --> 00:55:33,000 este identic, dar dacă am vrut să fie anal am putea avea 1044 00:55:33,000 --> 00:55:36,000 valoarea acestui meniurile care se fie doar versiunea scurtă, 1045 00:55:36,000 --> 00:55:39,000 Grays, dar am putea spune într-adevăr că Grays Hall uman efectiv vede, 1046 00:55:39,000 --> 00:55:43,000 dar asta nu e tot ce interesant, așa că am pastrat-o simplu și le-a făcut identice. 1047 00:55:43,000 --> 00:55:46,000 Apoi, in partea de jos, avem un buton submit 1048 00:55:46,000 --> 00:55:49,000 pe care le-am văzut până acum, dar am observat dat un alt cuvânt. 1049 00:55:49,000 --> 00:55:53,000 În loc de CS50 căutare am dat eticheta "Registrul". 1050 00:55:53,000 --> 00:55:56,000 >> Rezultatul final este pagina de web aici, și, din nou, 1051 00:55:56,000 --> 00:56:00,000 în cazul în care nu se prezintă această? 1052 00:56:00,000 --> 00:56:04,000 Ea devine prezentat un fisier, valoarea atributului acțiunii, 1053 00:56:04,000 --> 00:56:07,000 care a fost register0.php. 1054 00:56:07,000 --> 00:56:09,000 Să vedem ce se intampla de fapt aici. 1055 00:56:09,000 --> 00:56:13,000 Lasă-mă să mergeți mai departe și să completeze acest formular, spune David, 1056 00:56:13,000 --> 00:56:16,000 Barbat, Matthews, iar apoi voi spune inregistreaza-te. 1057 00:56:16,000 --> 00:56:18,000 Lasă-mă să zoom out și faceți clic pe registrul. 1058 00:56:18,000 --> 00:56:22,000 Ok, deci un fel de inutil, dar să vedem ce se întâmplă de fapt pe. 1059 00:56:22,000 --> 00:56:26,000 Observați că URL-ul a schimbat pentru a fi register0.php. 1060 00:56:26,000 --> 00:56:34,000 Ceea ce este curios absent din URL-ul, deși, chiar dacă am prezentat doar o forma? 1061 00:56:34,000 --> 00:56:37,000 [Răspuns studentul neauzit] 1062 00:56:37,000 --> 00:56:39,000 Bine, asta e doar utilizatorul Chrome fiind prietenoase în aceste zile. 1063 00:56:39,000 --> 00:56:42,000 Asta e de fapt acolo. Ei se ascund doar pentru a economisi spațiu. 1064 00:56:42,000 --> 00:56:44,000 Dar gândul bun, gand bun. 1065 00:56:44,000 --> 00:56:46,000 Spre celălalt capăt al URL-ul, deși, ce lipsește? Da,. 1066 00:56:46,000 --> 00:56:48,000 [Student] șir de interogare. 1067 00:56:48,000 --> 00:56:51,000 Șir de interogare, amintesc atât de la noastre de exemple simple de căutare Google. 1068 00:56:51,000 --> 00:56:54,000 De îndată ce am faceți clic pe butonul trimite adresa URL 1069 00:56:54,000 --> 00:57:00,000 mi-a luat în Google, dar apoi a fost q =? informatică sau orice am tastat inch 1070 00:57:00,000 --> 00:57:04,000 Asta pentru ca am folosit metoda GET cu exemplul de căutare. 1071 00:57:04,000 --> 00:57:06,000 >> De data aceasta suntem folosind metoda ce loc? 1072 00:57:06,000 --> 00:57:10,000 Postati, și unul dintre distincțiile imediate 1073 00:57:10,000 --> 00:57:14,000 între GET si POST este faptul că postul nu pune de intrare de utilizator în URL-ul. 1074 00:57:14,000 --> 00:57:16,000 Acesta se ascunde. Ea încă îl trimite. 1075 00:57:16,000 --> 00:57:19,000 De fapt, ceea ce vedem în browser-ul aici, după cum vom dezvălui într-o clipă 1076 00:57:19,000 --> 00:57:22,000 uitandu-se la register0, se văd doar conținutul 1077 00:57:22,000 --> 00:57:25,000 din matrice care au fost transmise de la browser-ul la server. 1078 00:57:25,000 --> 00:57:29,000 Dar URL-ul nu are o?, Nu are nici cuvinte cheie 1079 00:57:29,000 --> 00:57:31,000 sau valori în ea, și de ce este asta? 1080 00:57:31,000 --> 00:57:35,000 Ei bine, vă permite să mesaj trimite în continuare date din formular la un server, 1081 00:57:35,000 --> 00:57:38,000 dar nu-l pune în URL-ul, deci ce fel de informații este post 1082 00:57:38,000 --> 00:57:41,000 în special pentru, probabil, atunci când ceri utilizatorului sa 1083 00:57:41,000 --> 00:57:44,000 tastați într-o formă de intrare la? 1084 00:57:44,000 --> 00:57:48,000 Ceva ca o parolă, ceva de genul ce altceva? 1085 00:57:48,000 --> 00:57:50,000 Numere de cărți de credit. 1086 00:57:50,000 --> 00:57:53,000 Orice lucru care e ușor sensibil probabil nu vrei se încheie până în adresa URL 1087 00:57:53,000 --> 00:57:56,000 în cazul în care numai pentru că aceasta înseamnă colegul tău de cameră sau de membru al familiei poate troll doar prin 1088 00:57:56,000 --> 00:57:59,000 istoricul dvs. de internet și apoi să vedem literalmente parolele tale, 1089 00:57:59,000 --> 00:58:02,000 literalmente vedea numerele de card de credit, deoarece majoritatea browser-elor 1090 00:58:02,000 --> 00:58:05,000 amintiți în istoria indiferent de URL-uri care le-ați fost la, 1091 00:58:05,000 --> 00:58:09,000 așa că, dacă numai pentru că ar fi o idee rea. 1092 00:58:09,000 --> 00:58:11,000 Utilizarea ascunde faptul că plasa de detaliu din partea utilizatorului. 1093 00:58:11,000 --> 00:58:14,000 >> De asemenea, cum a face tu a încărca o fotografie pe Facebook? 1094 00:58:14,000 --> 00:58:17,000 Ei bine, doar 2 mecanismele care le puteți folosi într-adevăr, 1095 00:58:17,000 --> 00:58:21,000 chiar dacă există câteva cele mai multe alte arcane, este GET si POST. 1096 00:58:21,000 --> 00:58:26,000 Cum vă încărcați o fotografie, eventual, prin intermediul unui URL? 1097 00:58:26,000 --> 00:58:28,000 Puteți face de fapt. 1098 00:58:28,000 --> 00:58:30,000 Puteți lua un JPEG sau bitmap sau GIF și puteți să-l reprezinte în hexazecimal 1099 00:58:30,000 --> 00:58:32,000 sau ceva numit de bază 64. 1100 00:58:32,000 --> 00:58:35,000 În loc de a utiliza baza 16 64 bază, care, în esență arata ca 1101 00:58:35,000 --> 00:58:38,000 Caractere ASCII, și puteți încărca o fotografie de fapt, prin intermediul unui URL 1102 00:58:38,000 --> 00:58:41,000 după un semn de întrebare, dar există, în general, limitele de mărime. 1103 00:58:41,000 --> 00:58:44,000 Cele mai multe browsere forța URL-uri pentru a fi nu mai mult de 1.000 de caractere, 1104 00:58:44,000 --> 00:58:47,000 Poate că 2.000 caractere sau similare, astfel încât să nu se poate încărca 1105 00:58:47,000 --> 00:58:50,000 o 10 MB pe Facebook fotografii. 1106 00:58:50,000 --> 00:58:54,000 Pentru că utilizați mesaj la fel de bine, astfel încât de acum se pune parametrii în adresa URL, 1107 00:58:54,000 --> 00:58:57,000 ceea ce este frumos și util, uneori, dar pentru nimic sensibile sau mari 1108 00:58:57,000 --> 00:58:59,000 mesaj este calea de a merge. 1109 00:58:59,000 --> 00:59:02,000 Ce este, de fapt register0 face aici? 1110 00:59:02,000 --> 00:59:05,000 Ei bine, daca am deschide register0 observați că aceasta este o pagină de super-simplu, 1111 00:59:05,000 --> 00:59:09,000 dar se demonstreze faptul că pot co-se amestece, pentru o mai bună sau mai rău pentru, 1112 00:59:09,000 --> 00:59:12,000 HTML cu PHP. 1113 00:59:12,000 --> 00:59:15,000 Acest fișier întreg, cu excepția comentariile de la partea de sus, sunt HTML 1114 00:59:15,000 --> 00:59:19,000 cu excepția tipul ăsta aici. 1115 00:59:19,000 --> 00:59:22,000 >> Observați în mijlocul codul meu PHP, 1116 00:59:22,000 --> 00:59:26,000 în mijlocul HTML mea, am un fel de temporar 1117 00:59:26,000 --> 00:59:28,000 a intrat PHP modul. 1118 00:59:28,000 --> 00:59:31,000 Am sunat-o funcție specială numită de imprimare R. 1119 00:59:31,000 --> 00:59:34,000 Aceasta înseamnă imprima recursiv, și ceea ce face este recursiv imprimă 1120 00:59:34,000 --> 00:59:38,000 orice variabilă-l predea, punct și virgulă, de ieșire PHP modul. 1121 00:59:38,000 --> 00:59:40,000 Și tag-ul de pre vă oferă pre-formatat textul, 1122 00:59:40,000 --> 00:59:43,000 mono textul spațiu, astfel încât fiecare spațiu veți vedea de fapt. 1123 00:59:43,000 --> 00:59:46,000 Ea nu dispare. Ce este postul? 1124 00:59:46,000 --> 00:59:48,000 Ei bine, ceea ce este interesant și convingător despre PHP 1125 00:59:48,000 --> 00:59:52,000 este că ori de câte ori trimiteți un formular utilizând GET sau POST 1126 00:59:52,000 --> 00:59:56,000 ceva care este prezentat la tine de un browser 1127 00:59:56,000 --> 01:00:00,000 PHP în sine seama ce acele perechi cheie valoare sunt, 1128 01:00:00,000 --> 01:00:02,000 Cifrele daca exista sau nu semne de șanse, figuri daca e un semn de întrebare. 1129 01:00:02,000 --> 01:00:07,000 Acesta face toate munca grea pentru tine, si apoi iti da un tablou asociativ 1130 01:00:07,000 --> 01:00:10,000 care conține tot ceea ce utilizatorul tastat în formă. 1131 01:00:10,000 --> 01:00:12,000 Ei bine, ce domenii au această formă avea? 1132 01:00:12,000 --> 01:00:14,000 >> Ea a avut 4 câmpuri. 1133 01:00:14,000 --> 01:00:16,000 Unul a fost un câmp de text numit nume. 1134 01:00:16,000 --> 01:00:18,000 Unul a fost numit căpitan o casetă de selectare. 1135 01:00:18,000 --> 01:00:22,000 Unul a fost un buton radio numit de gen, 1136 01:00:22,000 --> 01:00:24,000 și unul a fost un meniu drop-down numit cămin, 1137 01:00:24,000 --> 01:00:27,000 asa observați atunci când am imprima recursiv 1138 01:00:27,000 --> 01:00:29,000 conținutul acestei variabile speciale. 1139 01:00:29,000 --> 01:00:34,000 Aceasta este o variabilă specială la nivel mondial numit literal $ _POST, în toate capacele. 1140 01:00:34,000 --> 01:00:39,000 Aceasta este o variabilă specială la nivel mondial, care creează PHP doar pentru tine 1141 01:00:39,000 --> 01:00:42,000 și mâinile pentru tine, astfel încât să puteți accesa totul 1142 01:00:42,000 --> 01:00:45,000 care a fost prezentat prin intermediul unui formular de către un utilizator. 1143 01:00:45,000 --> 01:00:48,000 Și apelând r de imprimare pe ea, nu ai face asta într-o aplicație normală. 1144 01:00:48,000 --> 01:00:50,000 Facem asta pentru a vedea in interiorul acestei variabile, 1145 01:00:50,000 --> 01:00:53,000 și ceea ce este în interiorul acestuia, ei bine, 4 chei, 1146 01:00:53,000 --> 01:00:56,000 4 parametri http, ca să spunem așa, 1147 01:00:56,000 --> 01:00:59,000 numele, căpitane, sex, dormitorul, iar apoi valorile pe care utilizatorul 1148 01:00:59,000 --> 01:01:01,000 tastat cu o singură excepție. 1149 01:01:01,000 --> 01:01:03,000 Am făcut de tip D-A-V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Am verificat caseta, deși, de sex masculin, care a prezentat o valoare aparent 1151 01:01:05,000 --> 01:01:07,000 de doar m pentru a fi succint. 1152 01:01:07,000 --> 01:01:10,000 >> Când m-am selectat Matthews că e valoarea pe care a fost selectată, 1153 01:01:10,000 --> 01:01:12,000 iar aceasta este un pic stupid, dar e convenție. 1154 01:01:12,000 --> 01:01:17,000 Când am verificat caseta, o valoare de la, "", a fost prezentat pentru caseta. 1155 01:01:17,000 --> 01:01:21,000 Dacă eu nu l-au verificat, nici o valoare ar fi fost trimise nici un fel. 1156 01:01:21,000 --> 01:01:26,000 Aceasta este doar oferindu-ne perspective în ceea ce este în interiorul acestei variabile globale specială, 1157 01:01:26,000 --> 01:01:29,000 și este atât de special încât se numește o variabila super-global. 1158 01:01:29,000 --> 01:01:33,000 Ea există peste tot în codul dvs., astfel încât să puteți accesa de fapt. 1159 01:01:33,000 --> 01:01:36,000 Acest lucru nu este faptul că lasă convingătoare, așa că utilizează efectiv super-global 1160 01:01:36,000 --> 01:01:38,000 și să încerce de fapt să se înregistreze pe cineva. 1161 01:01:38,000 --> 01:01:41,000 În froshims1 am de gând să facă o schimbare. 1162 01:01:41,000 --> 01:01:44,000 Sunt schimbarea de acțiune să fie register1.php, 1163 01:01:44,000 --> 01:01:46,000 și eu fac un lucru. 1164 01:01:46,000 --> 01:01:48,000 Am fost un fel de jenat de calitatea pagina mea acolo. 1165 01:01:48,000 --> 01:01:52,000 E destul de hidos, sincer, asa se pare 1166 01:01:52,000 --> 01:01:56,000 pe care le puteți folosi foarte ușor pe Web 1167 01:01:56,000 --> 01:01:59,000 altor persoane cod JavaScript, CSS altor oameni 1168 01:01:59,000 --> 01:02:02,000 pe care le-am scris și open source și puse la dispoziție ca o bibliotecă, 1169 01:02:02,000 --> 01:02:06,000 ca să spunem așa, și de exemplu, aici, eu sunt, folosind o bibliotecă disponibile în mod liber, 1170 01:02:06,000 --> 01:02:08,000 o grămadă de cod care altcineva a scris. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter sa întâmplat pentru a scrie acest cod, și se numește bibliotecă bootstrap, 1172 01:02:11,000 --> 01:02:15,000 si e doar o grămadă de foi de stil CSS, o grămadă de fișiere. css 1173 01:02:15,000 --> 01:02:19,000 că altcineva a scris si-a dat seama cum să obțineți totul frumos și destul de 1174 01:02:19,000 --> 01:02:22,000 astfel încât oamenii ca noi pot face griji un pic mai puțin despre estetică și să se concentreze mult mai mult 1175 01:02:22,000 --> 01:02:24,000 pe logica de programare și actuale. 1176 01:02:24,000 --> 01:02:30,000 Legându-l cu acea etichetă, care este aceeași etichetă am folosit amintesc de styles3.css mai devreme, 1177 01:02:30,000 --> 01:02:34,000 Acum am acces la un fișier numit bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min înseamnă doar că am minified și le-am scăpat de toate spațiu alb și așa mai departe 1179 01:02:37,000 --> 01:02:40,000 doar pentru a vă asigura că nu sunt trimite-mi bytes mai mult decât de fapt am nevoie. 1180 01:02:40,000 --> 01:02:45,000 Dar acolo este o mulțime de CSS, deci, dacă am de-acum versiunea 1 a Frosh AI 1181 01:02:45,000 --> 01:02:49,000 observă că dosarul meu este cu siguranta mai frumoasa. 1182 01:02:49,000 --> 01:02:54,000 Acum e încă doar în alb și negru, dar observați că, prin utilizarea doar foaia de stilul lor 1183 01:02:54,000 --> 01:02:58,000 și utilizați anumite caracteristici ale acestuia pe forma mea nu e uimitor, 1184 01:02:58,000 --> 01:03:01,000 dar e cu siguranta mai curat decât a fost înainte, și proiectorul nu este de a face dreptate. 1185 01:03:01,000 --> 01:03:05,000 Nu e linii mici gri in jurul butoanelor și în jurul valorii de câmpul de text chiar aici, 1186 01:03:05,000 --> 01:03:07,000 dar e cu siguranta mai curat decât a fost înainte. 1187 01:03:07,000 --> 01:03:09,000 >> Acum, în corectitudine, am am avut de a schimba markup-mi un pic. 1188 01:03:09,000 --> 01:03:12,000 Aceasta este versiunea 1, și observați că am folosit un tag-uri câteva noi, 1189 01:03:12,000 --> 01:03:17,000 si sincer, am avut nici o idee cum se face acest lucru până când am citit documentația 1190 01:03:17,000 --> 01:03:20,000 pentru biblioteca Twitter bootstrap, si mi-au spus că dacă doriți să utilizați biblioteca noastră 1191 01:03:20,000 --> 01:03:23,000 utilizați un element FIELDSET în interiorul formularului, 1192 01:03:23,000 --> 01:03:27,000 pune cuvântul pe care doriți să apară alături de un interior câmp dintr-o etichetă etichetă, 1193 01:03:27,000 --> 01:03:30,000 apoi da intrare un nume, la fel ca înainte, 1194 01:03:30,000 --> 01:03:34,000 și apoi pentru caseta, nu numai că-l înfășurați într-un element de etichetă, 1195 01:03:34,000 --> 01:03:36,000 să utilizați ceva numit-o clasă, așa că nu am văzut acest lucru înainte, 1196 01:03:36,000 --> 01:03:39,000 dar veți vedea acest lucru în una din pantaloni scurți PSET 7 lui. 1197 01:03:39,000 --> 01:03:43,000 O clasă în CSS vă permite să faci ceva foarte similar cu ID-ul, 1198 01:03:43,000 --> 01:03:46,000 dar înainte atunci când am avut o identitate cu simbolul # 1199 01:03:46,000 --> 01:03:48,000 care a fost pentru unul și numai un singur element. 1200 01:03:48,000 --> 01:03:51,000 Ce este frumos despre o clasă este faptul că mai multe elemente pot avea aceeași clasă 1201 01:03:51,000 --> 01:03:54,000 sau același chestii CSS aplicată. 1202 01:03:54,000 --> 01:03:57,000 >> Dar, din nou, mai mult pe cei din scurt, si restul este doar copiați și inserați 1203 01:03:57,000 --> 01:04:00,000 din documentația lor în cazul în care am adăugat o etichetă aici și acolo. 1204 01:04:00,000 --> 01:04:03,000 Iar la final, pentru că am inclus tag-link-ul de sus, 1205 01:04:03,000 --> 01:04:06,000 totul pare mai frumos mod automat 1206 01:04:06,000 --> 01:04:10,000 prin simpla care a marcat pagina mea într-un mod care 1207 01:04:10,000 --> 01:04:12,000 Stare de nervozitate de așteptat, și nu există atât de multe moduri diferite de 1208 01:04:12,000 --> 01:04:14,000 de a face acest lucru, iar acest lucru este într-adevăr foarte potrivit. 1209 01:04:14,000 --> 01:04:17,000 În acest moment, în semestrul, după cum veți vedea în spec. PSET 7 lui, 1210 01:04:17,000 --> 01:04:20,000 Googling în jurul valorii de, citind pe biblioteci, folosind CSS altor oameni 1211 01:04:20,000 --> 01:04:23,000 și JavaScript pentru a rezolva problemele auxiliare 1212 01:04:23,000 --> 01:04:26,000 la setul de problema în sine este, cu siguranță încurajat și este calea 1213 01:04:26,000 --> 01:04:29,000 Web-ul este construit în aceste zile, stând pe umerii altor oameni 1214 01:04:29,000 --> 01:04:32,000 astfel încât să vă puteți concentra cu adevărat asupra problemelor noi și interesante. 1215 01:04:32,000 --> 01:04:34,000 Dar haideți să ne concentrăm acum pe, din nou, logica. 1216 01:04:34,000 --> 01:04:38,000 >> Asta a fost un ocol rapid pe estetica doar pentru a vă arăta direcția în care poți merge. 1217 01:04:38,000 --> 01:04:40,000 Mă duc pentru a reveni la urât unul pentru acum doar pentru că 1218 01:04:40,000 --> 01:04:44,000 nu exista nici o distragere cu chestii Twitter, și lasă-mă să mergeți mai departe și să se deschidă 1219 01:04:44,000 --> 01:04:51,000 froshims2, care, din nou, diferă numai în acțiune, register2.php, 1220 01:04:51,000 --> 01:04:55,000 și haideți să aruncăm o privire la ceea ce efectul este aici. 1221 01:04:55,000 --> 01:04:57,000 Lasă-mă să mergeți mai departe și tastați în David. 1222 01:04:57,000 --> 01:04:59,000 Eu nu va fi căpitanul de data asta. 1223 01:04:59,000 --> 01:05:01,000 Voi spune de sex masculin, Matthews, registru. 1224 01:05:01,000 --> 01:05:05,000 La naiba. Bine, asta e un șurub pe partea mea. 1225 01:05:05,000 --> 01:05:07,000 Stand by. 1226 01:05:07,000 --> 01:05:17,000 Register2, linia 22, în cazul în gol sau rău-. 1227 01:05:17,000 --> 01:05:19,000 Să reîncărca. 1228 01:05:19,000 --> 01:05:22,000 Bine, la trimiterea acestui formular ce sa întâmplat? 1229 01:05:22,000 --> 01:05:25,000 Am scris în David, verificate de sex masculin, click Matthews, registru. 1230 01:05:25,000 --> 01:05:27,000 Sunteți înregistrat. (Ei bine, nu chiar.) 1231 01:05:27,000 --> 01:05:32,000 Acest lucru este în mod clar un pas dincolo de doar imprimarea conținutul unor variabile, 1232 01:05:32,000 --> 01:05:34,000 dar ceea ce este de fapt acest fișier faci? 1233 01:05:34,000 --> 01:05:37,000 În register2.php 1234 01:05:37,000 --> 01:05:40,000 observați că am unele cod nou. 1235 01:05:40,000 --> 01:05:44,000 Interiorul tag-ul body mea am în esență, o, dacă altceva construi, 1236 01:05:44,000 --> 01:05:47,000 ci pentru că eu sunt co-amestec aceasta cu unele HTML 1237 01:05:47,000 --> 01:05:51,000 Trebuie să intre și ieși din modul PHP și înapoi, așa că hai să vedem ce fac. 1238 01:05:51,000 --> 01:05:55,000 >> În primul rând vreau să spun aici, dacă este cazul 1239 01:05:55,000 --> 01:06:00,000 că postul super-global este gol pentru cheia de nume, 1240 01:06:00,000 --> 01:06:04,000 Deci cu alte cuvinte, în cazul în care utilizatorul nu mi-a dat o valoare de nume în formă, 1241 01:06:04,000 --> 01:06:07,000 apoi gol este de gând să se întoarcă adevărat, pentru că valoarea este gol. 1242 01:06:07,000 --> 01:06:11,000 Sau-Observați verticale bare-ar fi dacă de gen este gol 1243 01:06:11,000 --> 01:06:15,000 în interiorul acestei construcții super-global, care, din nou, reprezintă conținutul formularului, 1244 01:06:15,000 --> 01:06:19,000 sau cămin este gol, apoi am de gând să mergeți mai departe și să strige la utilizator. 1245 01:06:19,000 --> 01:06:22,000 Cum? Ei bine, observați am de gând să vă spun că trebuie să furnizați numele, sexul, și dormitorul. 1246 01:06:22,000 --> 01:06:24,000 Să induce de fapt, greșeala asta. 1247 01:06:24,000 --> 01:06:27,000 Lasă-mă să mă întorc la forma mea. Lasă-mă să-l reîncărcați clar. 1248 01:06:27,000 --> 01:06:30,000 Și eu sunt doar de gând să le dea lui David, și ei nu trebuie să știe unde locuiesc. 1249 01:06:30,000 --> 01:06:33,000 Inregistreaza-te. Se pare că am nevoie să le spună unde locuiesc. 1250 01:06:33,000 --> 01:06:35,000 Tu trebuie să furnizeze numele, sexul și dormitorul. Du-te înapoi. 1251 01:06:35,000 --> 01:06:39,000 >> Și am putut clic pentru a reveni la această formă, dar de ce e asta? 1252 01:06:39,000 --> 01:06:43,000 Ei bine, în acest caz, numele nu era gol, dar a fost de gen, și a fost cămin, 1253 01:06:43,000 --> 01:06:47,000 astfel încât toată această expresie evaluată la true, și chiar dacă sintaxa este un pic nou, 1254 01:06:47,000 --> 01:06:51,000 din nou, am intra în modul de PHP, familiar în cazul în care declarația, 1255 01:06:51,000 --> 01:06:54,000 dar noua parte aici este doar acest colon, si am dat-on bară prin omiterea o paranteză 1256 01:06:54,000 --> 01:06:57,000 de accident, dar observați colon, iar acest lucru înseamnă 1257 01:06:57,000 --> 01:07:00,000 chiar daca ne iese totul modul de PHP 1258 01:07:00,000 --> 01:07:03,000 care urmează să fie scuipa Verbatim a browser-ului 1259 01:07:03,000 --> 01:07:07,000 până când veți vedea un bloc de altceva, asa cum facem noi aici, 1260 01:07:07,000 --> 01:07:10,000 caz în care ar trebui să scuipe în schimb acest lucru 1261 01:07:10,000 --> 01:07:13,000 până când veți vedea endif, astfel încât unele sintaxă ușor nou 1262 01:07:13,000 --> 01:07:16,000 care îmi permite să comuta între HTML și PHP. 1263 01:07:16,000 --> 01:07:19,000 Noi putem curăța asta în cele din urmă, dar pentru acum, 1264 01:07:19,000 --> 01:07:22,000 e un fel de-un mod convingător de verificarea erorilor formularul. 1265 01:07:22,000 --> 01:07:25,000 >> Acum, eu spun că nu ești cu adevărat, deoarece, evident, înregistrat-am făcut nimic, dar datele, 1266 01:07:25,000 --> 01:07:28,000 așa că hai să încercăm de fapt să facă ceva cool. 1267 01:07:28,000 --> 01:07:33,000 În froshims3 singura diferenta este ca eu am de gând să prezinte la register3, 1268 01:07:33,000 --> 01:07:35,000 deci HTML nu este aceeași. 1269 01:07:35,000 --> 01:07:38,000 În register3 observa acest lucru. 1270 01:07:38,000 --> 01:07:40,000 Acesta este un fel de sexy. 1271 01:07:40,000 --> 01:07:44,000 La partea de sus Sunt folosind o declarație impun, astfel încât acesta este la fel ca # include. 1272 01:07:44,000 --> 01:07:46,000 De data aceasta nu e stdio.h sau ceva de genul asta. 1273 01:07:46,000 --> 01:07:50,000 E o bibliotecă PHP, și aceasta se numește PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Cum am ști să includă tocmai acest șir citat? 1275 01:07:53,000 --> 01:07:56,000 L-am citit în documentația, astfel încât atunci când mi-au spus acest lucru la pus partea de sus a fișierului 1276 01:07:56,000 --> 01:08:00,000 dacă doriți să utilizați o bibliotecă specială numită PHPMailer care face ceea ce spune. 1277 01:08:00,000 --> 01:08:03,000 Acesta vă permite să trimiteți e-mail prin PHP. 1278 01:08:03,000 --> 01:08:05,000 Acum, haideți să defilați în jos în continuare. 1279 01:08:05,000 --> 01:08:08,000 >> Aviz să înceapă Sunt în modul PHP tot acest timp, 1280 01:08:08,000 --> 01:08:11,000 astfel observa acum aici, după importul acea bibliotecă, 1281 01:08:11,000 --> 01:08:13,000  ca să spunem așa, fac niște verificări Sanity. 1282 01:08:13,000 --> 01:08:16,000 Dacă e adevărat că numele nu este gol 1283 01:08:16,000 --> 01:08:19,000 și de gen nu este gol-observa punctele de exclamare- 1284 01:08:19,000 --> 01:08:24,000 și cămin nu este gol, atunci utilizatorul a completat în mod logic formularul, cel puțin suficient. 1285 01:08:24,000 --> 01:08:28,000 Nu-mi pasă dacă sunt sau nu căpitan. Am nevoie doar de numele lor, de gen, și dormitorul. 1286 01:08:28,000 --> 01:08:31,000 În cazul în care s-au umplut cele în așa fel încât nici unul din aceste domenii sunt goale 1287 01:08:31,000 --> 01:08:33,000 Această cifră este ușor noua sintaxă. 1288 01:08:33,000 --> 01:08:36,000 PHP, ca o parte, este un limbaj de programare orientat obiect 1289 01:08:36,000 --> 01:08:39,000 pe care unii dintre voi poate aminti de APCS sau similare. 1290 01:08:39,000 --> 01:08:42,000 Pentru moment, în cazul în care nefamiliar, știu doar că, pentru a folosi această bibliotecă 1291 01:08:42,000 --> 01:08:45,000 aveți pentru a scrie o linie de cod ca acest lucru, folosind un cuvânt cheie nou, 1292 01:08:45,000 --> 01:08:47,000 literalmente un cuvânt cheie nou, denumit nouă. 1293 01:08:47,000 --> 01:08:50,000 Dar dincolo de asta, avem o sintaxă familiare. 1294 01:08:50,000 --> 01:08:54,000 Este un operator de săgeată, care este similar cu ceea ce am folosit pentru struct în contextul de pointeri. 1295 01:08:54,000 --> 01:08:57,000 Pentru astazi PHP nu are pointeri, 1296 01:08:57,000 --> 01:09:01,000 dar să știi că de acum în interiorul variabilei e-mail 1297 01:09:01,000 --> 01:09:05,000 este în esență un fel de un pointer la o bibliotecă specială 1298 01:09:05,000 --> 01:09:08,000 că altcineva a scris, și dacă vreau pentru a accesa funcționalitățile specifice 1299 01:09:08,000 --> 01:09:12,000 interiorul bibliotecii pe care eu nu, la fel ca în C, utilizați operatorul de săgeată, 1300 01:09:12,000 --> 01:09:14,000 chiar dacă acestea nu sunt de fapt pointeri. 1301 01:09:14,000 --> 01:09:16,000 E un fel de versiunea proprie PHP cu privire la aceasta. 1302 01:09:16,000 --> 01:09:20,000 Acest lucru înseamnă intra în bibliotecă și apela funcția IsSMTP. 1303 01:09:20,000 --> 01:09:23,000 SMTP, rechemare, de la Warriors noastre de net se referă la e-mail, 1304 01:09:23,000 --> 01:09:28,000 și că înseamnă doar utilizează un server de e-mail pentru acest AI Frosh înregistrare. 1305 01:09:28,000 --> 01:09:30,000 >> Ce gazdă vreau să folosesc? 1306 01:09:30,000 --> 01:09:34,000 Ei bine, la Harvard, dacă Google în jurul valorii de, are un server de e-mail numit smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Daca te joci de-a lungul la domiciliu sau locuiți într-o rețea Comcast 1308 01:09:37,000 --> 01:09:40,000 s-ar putea sa fie ceva de genul smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 Este cu totul depinde de locul în care locuiți și de furnizorul de servicii Internet, care este. 1310 01:09:43,000 --> 01:09:47,000 După aceea am de gând să-mi seta de la adresa de arbitrar pentru a fi jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Mă duc apoi pentru a seta pentru a aborda de a fi jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 Singura cale am știut că aceste funcții au fost chemați SetFrom și AddAddress 1313 01:09:55,000 --> 01:09:57,000 este, din nou, am citit documentația. 1314 01:09:57,000 --> 01:09:59,000 Acest lucru nu este un fel de magie cunoscute de toți programatori. 1315 01:09:59,000 --> 01:10:02,000 Apoi am setat un subiect la "înregistrare". 1316 01:10:02,000 --> 01:10:07,000 Și acum această linie este un pic urât, deoarece ceea ce nu înseamnă operatorul punct în PHP? 1317 01:10:07,000 --> 01:10:09,000 Oricine știe? 1318 01:10:09,000 --> 01:10:11,000 Înlănțui. 1319 01:10:11,000 --> 01:10:14,000 În C este o durere în gât pentru a concatena 2 siruri de caractere împreună. 1320 01:10:14,000 --> 01:10:17,000 Ai de a face cu malloc sau realloc sau toate chestiile astea 1321 01:10:17,000 --> 01:10:20,000 doar pentru a prelungi durata a unui șir. 1322 01:10:20,000 --> 01:10:22,000 În PHP, JavaScript și în alte limbi 1323 01:10:22,000 --> 01:10:24,000 puteți face, de obicei, acest lucru cu un singur caracter. 1324 01:10:24,000 --> 01:10:28,000 În acest caz, punct înseamnă să ia acest șir aici 1325 01:10:28,000 --> 01:10:30,000 și adăugați-l la acest șir. 1326 01:10:30,000 --> 01:10:32,000 >> Oh, și apropo, să-l adăugați acest șir, 1327 01:10:32,000 --> 01:10:34,000 care se întâmplă să fie o variabilă în interiorul acestei super-la nivel mondial. 1328 01:10:34,000 --> 01:10:37,000 Apoi, adăugați-l la o nouă linie, astfel încât toate aceste puncte doar înseamnă 1329 01:10:37,000 --> 01:10:39,000 continua să facă un șir mai mare și mai mare și mai mare, 1330 01:10:39,000 --> 01:10:43,000 și nu trebuie să aibă grijă la toate despre malloc sau ca într-o limbă de acest fel, 1331 01:10:43,000 --> 01:10:46,000 și nu există alte moduri de a face acest lucru, dar aceasta este una dintre cel mai rapid 1332 01:10:46,000 --> 01:10:48,000 modalități de a-l puna. 1333 01:10:48,000 --> 01:10:50,000 Ce este aceasta face? 1334 01:10:50,000 --> 01:10:55,000 E crearea unui organism de e-mail care va spune Nume: Căpitan: Sex: Dorm: 1335 01:10:55,000 --> 01:10:58,000 toate pe linii separate, apoi în cele din urmă, 1336 01:10:58,000 --> 01:11:00,000 o linie de cod, și am de gând să ignore acest lucru pentru acum. 1337 01:11:00,000 --> 01:11:02,000 Dacă fals == înseamnă doar în cazul în care ceva nu a mers bine, 1338 01:11:02,000 --> 01:11:04,000 dar magia se întâmplă aici. 1339 01:11:04,000 --> 01:11:08,000 Mail Trimite înseamnă trimite acest e-mail. 1340 01:11:08,000 --> 01:11:10,000 Să vedem ce rezultatul net este. 1341 01:11:10,000 --> 01:11:13,000 La partea de jos a fișierului, observați că acesta va spune că sunt înregistrate într-adevăr 1342 01:11:13,000 --> 01:11:15,000 dacă aș ajunge atât de departe. 1343 01:11:15,000 --> 01:11:18,000 Dacă, însă, utilizatorul greșește, observați că am început această 1344 01:11:18,000 --> 01:11:21,000 în cazul în care condiția aici, dacă nu e gol și nu gol 1345 01:11:21,000 --> 01:11:24,000 și nu este gol vom trimite e-mail. 1346 01:11:24,000 --> 01:11:27,000 În caz contrar, vom trimite această linie de cod, 1347 01:11:27,000 --> 01:11:30,000 care va avea ca efect, după cum veți vedea în PSET 7, din redirectionarea utilizatorului 1348 01:11:30,000 --> 01:11:35,000 înapoi de unde au venit, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Degetele încrucișate, în caz contrar aceasta va fi cea mai dezamagitoare demo astăzi. 1350 01:11:38,000 --> 01:11:40,000 Aici vom merge. 1351 01:11:40,000 --> 01:11:42,000 Lasă-mă să deschid inbox-ul de e-mail pentru jharvard în Gmail. 1352 01:11:42,000 --> 01:11:44,000 Nu e-mail chiar acum. Bine. 1353 01:11:44,000 --> 01:11:53,000 Acum, lasă-mă să deschid froshims3, care este al treilea exemplu și ultima ne vom uita la aici. 1354 01:11:53,000 --> 01:11:55,000 Ok, aici vom merge. 1355 01:11:55,000 --> 01:12:00,000 Nate, el va fi căpitan, de sex masculin, de la, să zicem, Apley. 1356 01:12:00,000 --> 01:12:04,000 Inregistreaza-te. Bine, sunteți înregistrat într-adevăr. 1357 01:12:04,000 --> 01:12:07,000 Acum, dacă am defila pe la e-mail meu, oh, Doamne. 1358 01:12:07,000 --> 01:12:09,000 Tocmai am trimis un e-mail dinamic pe Web. 1359 01:12:09,000 --> 01:12:11,000 >> Să lăsăm pe această notă. 1360 01:12:11,000 --> 01:12:16,000 Un videoclip este pentru viitoarea prelegere am ratat. Ne vedem săptămâna viitoare. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]