[Zenelejátszási] 1. Előadó: Ez CS50 és Ez a hét végéig hét. Ma talán ahol Tényleg tanítás nyelvén. Bemutattuk az elmúlt pár héttel HTML és CSS, sem az, ami a programozási nyelvek. És valóban, bár mi nem nézd meg szinte az összes tag hogy a HTML jön, és szinte minden A tulajdonságok, CSS jön, ez a fajta, hogy a HTML és CSS. Majd csak általánosságban kezdeni feltételezve, hogy megérteni az általános elképzelések A címkék és attribútumok, és elküldendő oldal az ügyfél és a szerver. Mert ma elkezdi nézni egy másik programozási nyelv, a PHP. Fogunk csinálni ezt a szuper gyors. Nem fogunk tanítani, PHP önmagában, akárcsak mi nem remélheti, hogy megtanít C, per se, hanem inkább programozás. És valóban, az egyik a célokat a tanfolyam nem tanítani, C, vagy a HTML vagy CSS, PHP, vagy, vagy tetszőleges számú egyéb buzz szavak vagy rövidítések, hanem a számítógép-tudomány és hogyan kell programozni alapjaiban. És valóban, ma kezdjük, hogy azoknak képzés kerekek le az összes tovább repülő egy nyelv nevű PHP, az alábbiak szerint. Itt van, amit ezen a nyelven néz ki. Kiderült, hogy nincs szükség a fő funkciója a megírt program egy nyelv úgynevezett PHP. Szóval ez már hangzik egy kicsit egyszerűbb mint a C, amellyel vagyunk tisztában. Kiderül, hogy ha szeretnénk, hogy egy változót, csinálod szinte azonos C. De ott egyértelműen egy különbség van ha kijelentem egy string, vagy talán két különbség. Mi másképp néz ki? Közönség: A dollár jel. 1. Előadó: Igen, van dollár aláírni, amit még sosem látott. És mi hiányzik? Igen? Közönség: [hallható] 1. Előadó: Igen, nincs adat típusát. Így kiderül, hogy a PHP az, amit hívja gyengén típusos nyelv, ahol C erősen típusos. Gyengén típusos csak azt jelenti, hogy vannak különböző adattípusok, vannak olyan szövegek, és ints, és úszik. De a számítógép számok, hogy ki. Ti, az emberek programozó Nem kell kitalálni. Szóval csak annyit kell tennie, arra, hogy egy változó dollár jel, a nevét, a változót, majd, például, idézet idézet vége, hello world. Hát ez az, amit a állapotban néz ki, mint a PHP. Bármely különbség? Nem. Így kiderül, ezek megegyeznek. És lehet, hogy kevesebb fióktelepek vagy több fióktelepe, de a szintaxis fordulat ki pontosan ugyanaz. Logikai kifejezések is együtt rendelhető. Logikai kifejezések lehet NOR együtt. Még mindig van kapcsolókat. Akkor is, ha nem használják Ezen típusú léteznek C és ők funkcionálisan egyenértékű PHP. És valóban, a PHP ők egy kicsit erősebb. A C-ben, akkor csak összehasonlítani az egyes adattípusok, mint ints és karakter, mivel a PHP akkor valóban összehasonlítani teljes felszereltségű húrok nélkül aggódni mutatók és hasonlók. Tehát itt egy for ciklus. Ez csak pszeudokódja kódot, ha úgy tetszik. De szerkezetileg ez azonos a C. Itt egy while ciklus, pszeudokódja therefore-- azonos C. Itt egy do míg loop-- azonosak. És így van egyfajta ez a minta van, amellyel van néhány más szintaktikai jellemzői mi valóban látni fognak. Sőt, itt egy szép módja a PHP, amellyel, Ha azt szeretnénk, hogy ismételget több mint egy tömb, és akkor Nem akarom, hogy ugorj át a mentális és szintaktikai karika annak, int i értéke 0, i kevesebb mint n, I Plus plus-- amely csak a sok bosszantó szintaxis. Azt lehet mondani, egy kicsit fluidly egyes szám mint a szám, ahol ebben az esetben dollár jel számok, felteszem, olyan, mint egy tömb hívott számokat. És akkor felteszem száma, egyes szám, lesz egy változó. És mi a PHP fog tenni nekem, mint én ismételget mint ez a hurok, minden iterációban ez lesz frissíteni a változó számot az i-edik eleme szám, többes számban. Tehát csak kezeli az összes, hogy a számomra. Nem szögletes zárójelben, nincs dollár jel, nincs félig kettőspont. Ez csak egy kicsit egyszerűbb. Nos, ha azt szeretné, tömb, kiderül, hogy tehet valamit nagyon hasonlít C. A szintaxis egy kicsit más. De itt van egy tömbben hívják dollár aláírt számokat. És tudom használni, PHP, szögletes konzolok, kiderül. És fogunk látni ezeket újra A JavaScript-- még egy másik nyelvre. Én csak használ szögletes zárójel jelölést hogy egy vesszővel elválasztva egész számok, ebben az esetben. De ez ad nekem egy tömbben. De még erősebb PHP- mi is az általában nevű asszociatív tömbök. És sok nyelven ezeket is. A dolog C tömbök az, hogy az indexek A tömb, a dolog, hogy Használja szögletes zárójelben, amelyen keresztül Hozzáférést elemek, legyen mit? Közönség: [hallható] 1. Előadó: Ezeket nem számok vagy egészek, konkrétan nulla akár. Nos, PHP, és kiderül ki, más nyelveken, meg lehet kezdeni, hogy indexek, amelyek nem numerikus. De ők valóban szó, vagy kifejezések, úgy, hogy ahelyett, Próbálok visszaemlékezni, amikor valami van, vagy egy változóban tároljuk i, ténylegesen használni egy szót, és azt mondják, hogy-- akkor egy szót, mint ez. Tehát dollár jel idézet a változó neve itt. Ez némileg funky szintaxis ez tömörítő két legfontosabb érték párokat a változó számára. Pontosabban, ez ad nekem tömb, amely a hossza 2. De az indexek nem 0 és 1. Az indexek idézet idézet vége szimbólum és idézet idézet vége áron. És az értékeket az ezen indexek, illetve az FB a Facebook és 79,53 $, mikor utoljára ellenőrizni árat erre. Az mit jelent? Nos, ez azt jelenti, hogy ahelyett, hogy írásban kódot mint ez, ahol én valamit tenni mint a dollár sign-- vagy inkább a C Én nem is kell dollár jellel. Én tenne valamit mint idézetek majd Én megtenném tartó i, hogy valamikor önkényesen numerikusan indexelt értéket. Mától PHP, ha szeretnénk, hogy egy bizonyos értéket, Ezt egy kissé több szemantikai kifejezőerő. Csak egy divatos szóval tudjuk csak hívja a dolgok, amit ők. És ha azt akarjuk, hogy valami jelkép, most szó nem idézve idézet vége szimbólum A szögletes zárójelben helyett egy egyszerű szám. Szóval ez egy szép kényelmét. És ez a fajta ez most. Van csokor Más funkciók PHP. És valóban, PHP jön A közmondásos konyhai mosogató. Több tucat, több száz funkciók jönnek PHP-- sok több mint jött C. És ez nem az a célja, hogy elborít hanem segíteni rájössz, hogy mi nem már nem kell kódot írni ez a fajta idelent koncepcionálisan. Most már csak elkezd kihasználva A sokkal fejlettebb funkciók hogy a nyelvek, mint a PHP van. Tehát nem kell aggódni mozgó dolgok körül a memóriában. Nem kell aggódnia malloc és az összes ilyen alacsonyabb szintű, erőteljes részleteket, hogy lesz birkózni a, ha nem küzdenek, pset5, de kezdhetjük Hamarosan vesznek. Tény, hogy írjunk egy szuper egyszerű program a PHP, az alábbiak szerint. Én megyek be a fejét CS50 IDE itt, és mit fogok csinálni az új fájlt hoz létre, amely nagyon egyszerűen fog hívni Hello dot PHP. Tehát ahelyett, hogy pont c, ez lesz a címe dot PHP. És akkor ebben a fájlban, Azt is elkezd gépelni. De kiderül, hogy a Egy dolgot kell tudni az, hogy minden PHP fájlt általában szüksége kezdeni néhány speciális szintaxist. Hasonló szellemben a HTML, de a lényeg, PHP programozási nyelv, nem egy leíró nyelv. Tehát minden fájl, és ez a fajta A hülye látszó beismerem. Nyitó zárójel, kérdőjel PHP. És ez még csak a nyelv módja mondván, hé, számítógép itt jön valami kód nyelven írt nevű PHP. Majd a legvégén a fájlt, te milyen fajta az ellenkezője. Nem írsz PHP újra, csak do kérdőjel, hegyes zárójel. És akkor benne levő E két tag, hogy úgy mondjam, lesz, vagy kellene, PHP kódot. Tehát lássuk valami szuper egyszerű. Én megyek előre, és nem print def, hello world, backslash n, mentse. És most az én azonnali, megyek nem, hogy hello-- nem, én fogom csinálni, dot perjel helló. Nem, pont perjel, hm. Tehát valami más. És valóban, ez egy fontos különbség között PHP és nyelvek, mint a C-C volt egy úgynevezett összeállított nyelvet. Mit jelent ez a C kell összeállítani? Mi volt a hatása? Igen. Közönség: írta gépi kódra így lehet futtatni a számítógépen. 1. Előadó: Pontosan. Meg kell először alakítani úgynevezett gépi kódot, nullák, mielőtt valóban lesz futtatható és meg kell értenie a számítógéphez. Az Intel által belsejében. CPU által a számítógép belsejébe. PHP, ezzel szemben az, hogy az úgynevezett interpretált nyelv, amely azt jelenti, hogy nem fordíthatod a nullák, gépi kód, Ön helyett hagyja, mint a forráskódot. És ahelyett, adja át a bemeneti egy programot, tolmács hogy valaki más írta évvel ezelőtt, hogy érti sorról sorra, karaktert karakter. Tehát más szavakkal, emberek odakint írt egy programot, hogy fog kinézni az Ön kódot sorról sorra, kitalálni, milyen A számítógép kell tennie, átalakítás nélkül közvetlenül nullák. Tehát, ha meglát egy for ciklus, ez az úgynevezett értelmező lesz, mint, rendben, azt kell tenni valamit újra és újra és újra. Mit kellene tennem? Hadd nézzem meg a következő sorban. Hadd nézzem meg a következő sorban. És valóban úgy értelmezi, hogy soronként. Tehát azt végrehajtani, nem használom make. Én nem használom dot per jel ebben az esetben. Én helyett do PHP, amely A program nevét, más néven Egy tolmács, ez előre telepített CS50 IDE, és most meg kell felelnie egy parancssori argumentum, amely egészen egyszerűen a neve a fájlhoz, amit akarok értelmezni. Vagy még véletlenül, hogy szeretnék futtatni. És ha én nyomd meg az Entert, ott van ez. Helló Világ. Most kiderül, hogy én Használt nyomtatási def szándékosan áthidalni minket C PHP. A legtöbb PHP programozó, mint látni fogod, nem is zavarja a print def. Ők csak használni a funkciót nevű print, amely a C nem volt. És így ha ismételni, hogy most, hogy valójában viselkedik funkcionálisan azonos. Nem tudom használni a százalékos s és a százalékos i és így tovább, de vannak más módon PHP az csinálja. De ez csak a azt mondják, hogy nyelvtanilag, más, mint néhány fura dolgokat tetejére, és néhány furcsa karakterek le alján, a fogalmak már a programozási ebben más nyelvi lesznek pontosan ugyanaz. Tény, csináljuk egy másik példát. Így fogok menni előre és az ügy lezárása. Hadd hozzon létre egy másikat, hogy Hívom feltételek 1. pont PHP. Tehát nem nulla, mert amit tettem volt, néztem vissza néhány héttel ezelőtt, volt egy fájlt úgynevezett feltételeknek 1 pont C. És mi Én alakították meg az én fejét, és itt a papír, és hamarosan a kurzus honlapján, sorról sorra a PHP. Így a C változat, csináltunk valamit mint a húr s lesz kap húr. Szóval ez egy kicsit más tenni, hogy a PHP. Ehelyett én csak fog csinálni, vagy inkább azt tehette int n lesz kap int, ebben a példában korábban. Tehát ahelyett, hogy azt fogom tenni n sem olvassák el sorban, szeretném egy egész szám, Kérlek. Szóval ez csak az én gyors. És így kiderül, és Én csak tudom, ez attól, vagy olvasott a funkciót előtt olvassa vonalak funkció a PHP vesz egy érv, hogy egy azonnali az emberi, és célja az életben az, hogy olvasni egy sor szöveget hogy ő típus. És akkor tárolja, hogy szöveget a változó n. És most érdemes csinálni valamit mint én héttel ezelőtt, mint a héten az egyik osztályban. Ha n értéke nagyobb, mint a nulla, akkor megyek kölcsönkérni, hogy szintaktikai láttunk, nyomtatási def, akkor felvette pozitív szám, backslash n. Else if n értéke nullával egyenlő, én vagyok fog menni előre, és azt mondják, print def, akkor felvette nulla backslash n. Else, a helyzet itt kell Természetesen, print def, akkor felvette negatív szám. És természetesen végre A logika ezt a dolgot egy csomó különböző módon, de a lényeg itt az, hogy nyelvtanilag, alig valami új. Ez csak a dollár jel és Új funkció és olvasott sort. De alapvetően, mi az újdonság most én értelmezve. Én halad a bemeneti a programok között. Így ha meg akarom futtatni ezt, ha Én nem hibázni, Megyek a PHP, a feltételeknek 1 pont PHP, Enter, Megyek írja be a számot 50, és tegyük fel most, hogy működik. Mert a logika Ugyanazokat a dolgokat, mint heti egy. Rendben, szóval ez elég underwhelming, ugye? Ezt megtehetjük bármely nyelvek száma. Tegyünk így erősebb. Fejezzük problémát meg öt. Így fogok menni előre, és erre. Megyek, hogy hozzon létre egy fájlt nevű szótárban dot PHP, és ferdén, ahogy lehet hogy zavarják meg sok-sok jegyzetek, A megjegyzések csak abban segít ha te szabad végrehajtására megállapított problémákat öt PHP. De majd meglátjuk, milyen gyorsan most amelyek bevezetésével ugyanezt a problémát sor. Tehát szótára dot PHP, megyek feltételezhető, hogy már van egy fájlt a világot nevű helyesírás. És valóban, én ezt előre, és nem fogjuk járni ezen a vonalon keresztül a vonal, de ha Kíváncsi később, és nagyon szeretnék hogy lezárja az elméd körül közötti különbségek c és a PHP, Szó összehasonlítani ezt a fájlt, helyesírás, a mai forráskód hogy feltesszük később Ma elleni p szett Öt helyesírás dot c, hogy adunk neked, és ez szinte azonos sorban. Van néhány dollár jeleket. Egy pár funkciók egy kicsit más. De ez egy jó módja A fajta látva, hogy lefordítani egyik nyelvről a másikra. És ez szinte azonos sorról sorra. De én azt feltételezni, hogy létezik, és mit fogok csinálni itt ez megpróbálja felrobbantani a bánta meg reimplementing A teljes egészében a problémát meg öt módja gyorsabb, mint te csináltál eddig. Így például, megyek először Kijelentem, egy globális változó nevű méret, és állítsa nullára. Most, hogy nem sok megtakarítást. Valószínűleg te végre mérete nagyjából ugyanaz, vagy hint hint, majd ma este vagy holnap, Csak egy globális változó nevű méret, és a beállítás, a nullával egyenlő. Ez nem egy különösen elképesztő spoiler. Akkor hát mi volt az adatstruktúrák választás, azoknak, akik lebukott a és olvassa a specifikációt, milyen adatszerkezeteket már a legtöbben már használ? A hash tábla, vagy próbálja, talán Egyes variánsai. Tehát végrehajtási hash tábla legalább, egyfajta sok sornyi kódot, ugye? És nem mindegyik lehet funkcionális ezen a ponton a héten, de ez rendben van. Mivel a PHP, ha Szeretnék egy hash tábla, kész. Jobb? Annak érdekében, hogy a változó, hogy én már Csak kijelentette nyilvánvalóan nevű dollár jel asztal, per bevezetése előtt. De tényleg csak akar, a a nap végén, egy tömbben. De nem numerikusan indexelt tömb, mert ez olyan, mint heti két cucc, amikor beszélgettünk tömböket. Szeretnék egy hash tábla. De egy hash tábla valóban Csak egy konkrét módja mondván, Ön is szeretne egy asszociatív tömb. Azt akarod, hogy képes legyen társult kulcsok értékeit. Kulcsok értékeit. Mi a szótárban, tényleg? Hát ez egy teljesen kulcscsomót. Olyan szavak, mint az alma, körte, banán, és az összes ilyen English szavak hogy a kezedbe. És az értékeket, amelyeket te hatékonyan helyezi őket a szótárban amelyek vagy igaz, vagy hiánya, hamis. Más szóval beteszi egy csomó kulcs érték párok, alma, igaz, körte, igaz, banán, igaz. Tehát, hogy ha letölteni vagy nézni fel, hogy az adatokat a hash tábla Ön ellenőrzés funkció, te vagy kapok vissza a választ, Igen, megtaláltam az én bonyolult hash tábla, vagy nem, ez nem létezik, így return false. Így kell csinálni, hogy minden, amire szükségem van az adatok szerkezete, mint azt javasoltam előtt. Csak kell, hogy képes társítani szavak mint, idézet idézet vége, szimbólum, amelynek értéke tetszik, igaz. Szóval ott van az én hash tábla. Nézzük ténylegesen használni. Szóval van néhány funkció Meg kell végrehajtani. Megyek előre, és harap menni off függvényét méretét. Nem veszi érveket. Nem kell bajlódni a szó, üres, PHP nyelven. Én egyszerűen csak fog visszatérni méretét. És mint félretéve, a PHP-nek ez minorly bosszantó részletet, ahol ha valami globális, meg kell mondd el a működését, amelynek Ön használ ez, hé, ez egy globális változót. Szóval, kisebb butaság, de meg kell csinálni mégis. Szóval mi a teher? Megyek végre olyan függvény terhelés vevő nevére egy szótár, csakúgy, mint a probléma meg öt. És mielőtt belekezdenék, észre, hogy már nem már gépelés teljesen ugyanaz a dolgokat. Mi nyilván más a PHP mintegy hogyan, hogy függvényeket versus C? Igen. Közönség: [hallható] 1. Előadó: Nincs visszatérési típus. És valóban, ez a helyzet, PHP amennyiben ez gyengén típusos, Az is egy kicsit hanyag ebben az értelemben. Nem adja meg a programozó mi a függvény. Meg kellett volna ténylegesen meg A kódot kitalálni. Vagy olvassa el a megjegyzést vagy a dokumentáció. Tehát pluszok és árnyoldala az ilyen jellegű döntéseket. De azt kell mondanom, A kulcsszó, funkciója. És amikor megtudjuk, JavaScript egy pár hétig fogjuk látni ugyanazt a dolgot újra, de ez ugyanaz az ötlet. A függvény neve, érvelése vagy érveket, vagy annak hiánya, és most itt van a végrehajtás. Így fogok vágni néhány sarkok csak hogy drámai csak egy pillanatra. De én megyek előre, és ezt mondani. Ez hogyan lehet betölteni Egy fájlt tömbbe. Van egy funkció a PHP nevű fájlt. Ha viszont ez az egy fájl nevét. Ez lapokkal vissza egy tömbben, belül amelynek minden sora a fájlt. Tól nulla, egy, a felfelé és N mínusz 1 vonalak. Ennyi, nem igaz? Nincs f olvasni. Nincs f get s. Nincs százalékkal s. Nincs fejfájást. Nincs feof. Minden ilyesmi, amelyekkel ha már birkózás talán, p beállított négy-öt, elmúlik. Szóval én csak olvasni ezeket a sorokat a fájlt, akkor tudod mit? Ha azt szeretnénk, hogy végighaladni ezeket a szavakat, Meg tudom csinálni, minden vonalakat sor. Ne feledje, hogy ez a fajta egy ügyes módja iterálás tömb indexe az index, és az egyes iterációs hívó Az aktuális sor, dollár jel vonalon. És itt fogok menni, és mondjuk asztalra, polcra sor, lesz igaz. Más szavakkal, ez hogyan insert into my hasítótáblára PHP. Azt mondom dollár jel a táblázat, amely az én asszociatív tömb, ami volt, Üres a per a kódsort fölé. Aztán index bele nem, egy szám, de szó használatával kulcsszó, hogy érdekel. Talán azért, almával vagy körtével vagy banán vagy bármi, de konkrétan én indexelés benne, mint azt korábban javasolt. Veszem a neve az én asszociatív tömb, és akkor én Használja idézet idézet vége a szögletes zárójelben egy húr, hanem egy tényleges száma. És így ennyi. A terhelés függvényében történik. Miután ez ciklus végigmegy, amit tesz Mindent a hash tábla. Most a kis jognyilatkozat, van egy Pár dolog, amit szükséges rögzíteni. És a változat írok Online lesz az összes árnyalatokat, de ez leginkább csak lesz némi hibaellenôrzô és néhány kisebb csíp. De ez valóban a lényege. Ha most szeretnék megvalósítani A nevezett funkció ellenőrizze, mely reményeink szerint szó, mint azt az érvét, hogyan lehet azt járni csinálja? Nos, én egyszerűen azt fogja mondani, ha belsejében az asztalomhoz, a helyszínen szó, ha be van állítva. Tehát ha van is-- valóban, tudod mit? Megyek csinálni egy kis pszeudokódja. De az ötlet ugyanaz. Ha ez megegyezik igaz, vissza igaz. Minden rendben. Else-- akkor milyen látni, ahol ez going-- vissza hamis. Kész. Ellenőrzés mellett történik. Nagyon szép, ugye? És így mi is ez valójában kilyukadni? És ezt is, vágtam néhány sarkok. Nézd meg a verzió online minden a enyhe árnyalatokat. De ez a lényege. Index be a asszociatív tömb, más néven Hash tábla, hátha van érték ott, ha ez igaz, akkor és ha igen, return true. Így már olvadt minden a komplexitás. Tehát egyfajta észbontó, ugye? Én nem zavarja befejező azt kirak, mert fact-- ó, tudod mit? Ja, fejezzük be azt kirak. Kirak egy hash tábla nézhet mint a funkció kirak, visszatér. OK, így ez kirak. Mert nincs semmi kirak, ugye? Nincs malloc. Én nem kifejezetten kérni a operációs rendszer semmit. Én csak most kezdődött el változókat. És így ez is egy megnyilvánulása jellemzői a magasabb szintű nyelven. Tehát ismét, a legtöbb ezt a kifejezést mi már évek óta foglalkozik idelenn C. Rendkívül alacsony szinten. Láthatjuk a számítógép memóriájában. Akkor nyúlj semmihez, akkor szeretné a számítógép memóriájából, jobb vagy rosszabb. Akár itt, megyünk hogy feladja, hogy a hatalom. De istenem, nézd, milyen sokkal kevesebb kódot írtam. Sőt, ha nem beszél és beszélt az én gépelési, lettünk volna végezni Ebben a példában öt perce. Szóval, mi az ára fordítva? Hát vessünk egy pillantást. Lássuk. Megyek, hogy menjen előre és fuss CS50. Először is hadd menjen be mai példát, ahol Nekem van a szövegek könyvtár, mint korábban. Megyek futni a megoldás, hogy ez benne van a probléma meg öt úgynevezett helyesírás, ami CS50 számlájára. És fogok futtatni valamit nagy, mint a King James Biblia, csak azért, hogy valóban fel a személyzet megoldások a teszt. Most néha az interneten egy kicsit lassabban, kicsit gyorsabb, eltarthat egy ideig, hogy lépjünk. De volt egy összesen 0,56 másodperc a helyesírás-ellenőrzés a King James Biblia segítségével a személyzet megoldás. Szóval nagyon jó. Tisztelettel lehet sokkal lassabb, és ez teljesen rendben van. De az helyes itt. Szóval ez a személyzet megoldás. Ha megyek és tisztítsák meg a PHP verzió. És fogok csinálni egy kis mint a sütés mutatják dolog. Megyünk, hogy a kódot írtam korábban, így tökéletesen megfelel a valóságnak. Mivel a kódot írtam nem megy hogy tökéletesen helyes, csak most. De ha futok a PHP verzió, Mit kell feladni ma? Elvitt öt perc alatt végrehajtása p meg öt, azt állítják. Milyen árat is fizettem? Igen. Közönség: Speed. 1. Előadó: Speed. Mire gondolsz? Közönség: Ez lesz hosszabb időt vesz igénybe. 1. Előadó: Rendben. Lássuk. Ez tovább fog tartani, Nem írni, de a futtatáshoz. Igen. Így próbáljuk meg. Tehát itt fogok menni előre, és nem PHP a helyesírás, és mivel a fájl nevű helyesírás. Szóval nem fut a szótár, emlékszem, Én fut a program neve helyesírás. Megyek át ugyanabban fájlt, Jakab király az ötödik. Ez repülés. Ez lehet, hogy csak az internet sebessége, így nem túl nagy jelentőséget tulajdonítani, hogy. De nem érzem többé, az biztos. 1,26 másodperc. Most, hogy még mindig elég rohadt gyors, nem igaz? És az egyetlen oka annak, hogy úgy éreztem, több mint három, vagy négy, vagy öt másodperc, hogy csak azért, mert Az internet volt, hogy lassú. A számítógép töltött idő volt, 1,26 másodperc, szemben azt hiszem 0.56. Tehát több mint kétszer olyan lassú. Most, hogy még mindig átkozottul gyors, de ez egy megnyilvánulása Az, sőt, hogy a pontos árat. Mert mi értelmezése A kódot sorról sorra, és hogy a program PHP olvassa a kód fentről lefelé, balról jobbra, hogy köze van több gondolkodást. Azt, hogy milyen átalakítására belsejébe a maga a megfelelő gép kód menet közben, hogy úgy mondjam, bár a mechanika egy kicsit más. Ahelyett, hogy csak etetés a Intel CPU nyers nullák hogy megérti natívan. Tehát egyáltalán, kezét, már megfizettem az árát. És kódot nyelven írt mint a PHP általában lassabb. De istenem. Tehát most, amikor a helyesírást olvasd fájlt, töltök egy extra 0,7 vagy úgy másodperc vs 20 óra végrehajtani gyorsabb helyesírás-ellenőrző, igaz? Ez egyfajta kompromisszum. És ha csak most kezdődik p meg öt, lehet, hogy nem 20 óra. Lehet, hogy sokkal kevesebb annál. De ez egy kompromisszum, az igazi. És ha futsz kódot igazán nagy adatsorok, vagy még régebbi hardver, az ilyen jellegű különbségek természetesen összeadódnak. Bármilyen kérdése eddig? Igen. Közönség: [hallható] 1. Előadó: Sajnálom, azt mondja, hogy még egyszer? Közönség: [hallható] 1. Előadó: Te adja fel időben. Nos, így igen. Ön időt takarít meg nem kell fordítani, ha ez az, amit kérsz. És valóban, a CS50, a legtöbb program, annak ellenére, hogy eltart egy ideig, írni, ők viszonylag rövid. Néhány tucat, néhány száz sornyi kódot, és így állítanak össze elég gyorsan. De ha elkezd írásban nagyobb programokat, mint ha a Microsoft vagy te A Google és az írás igazán nagy programok C, vagy C ++, vagy hasonlóan összeállított nyelvek, eltarthat hány másodpercig, vagy akár perc vagy hosszabb ideig összeállításához millió sornyi kódot. És ott is, hogy különbséget fog összeadni. És valóban, ha egyszer ma az áttérést, ugyanazon a napon Ma, a web programozás PHP, te fogja megtalálni csak annyi sokkal élvezetesebb kódot írni ha nem kell csinálni ezeket a hülye lépések, mint a változás, hogy a terminál ablakban adjuk ki a make hello, újra futtatni, töltse be újra az ablakot. Csak annyi hülye mechanikai lépés, hogy Csak útban csinál Az érdekes, szórakoztató munka. És valóban dobjuk, hogy távol a PHP. És tudunk interakcióba lépni vele gyorsabban. Igen. Közönség: [hallható] 1. Előadó: Persze. Tudom tisztázni, mit azt jelenti, hogy kell értelmezni? Amikor összeállít egy nyelvet mint a C, megy le mint mondtuk, hogy a gép kódot, nullák. És az Intel úgy döntött évvel ezelőtt, hogy Egyes minták nullák képviseli kívül, vagy a kivonás, vagy nyomtatott, vagy más alapvető műveleteket. A világ egy értelmezett nyelv mint a PHP vagy JavaScript vagy Python, vagy Ruby, vagy csokor mások helyett valaki írt egy interpreter-- ebben az esetben, ez is hívják a PHP, azonos a Nevét az language--, hogy lényegében van egy nagy hurok benne, hogy végigmegy át az összes vonalak a kódot hogy táplálja a bemenet, mint a Hello dot PHP, vagy szótár dot PHP. És akkor gondolj a nagy hurok, mint amelyek egy csomó körülmények között. És ezek a feltételek azt mondják, ha a emberi írt a kulcsszót, kezdeni ezzel ő kód újra és újra. Vagy ha a humán írta a kódsort, ha csak végre kell hajtaniuk következő sor feltételesen. Szóval ez tényleg így értelmezte azt egy emberi értelemben, vonal sorra, és hogy csak időt vesz igénybe. Tart a feje fölött. És ez az a price-- jó question-- fizetünk. Tehát lássuk a másik demo ez egy kicsit drámaibb. Van, azt mondanám, egy stadion ennek a 90% a valószínűsége, hogy nem rettenetesen, de meg fog lepődni 10% -os valószínűséggel. Így minden évben igyekszünk Ehhez is, ahol Megpróbálok írni egy programot, amely átmegy probléma állítsa nullára, amelyre akkor már benyújtott a telefonszámok és a Sok egyéb demográfiai adatok, és mi programból küldhet szöveges üzenetet. És akkor mindenki telefon sípoló hangjelzést vagy vibrációs, és ez egyszerűen elképesztő, mert Nos, nézzük meg, mi számítógépek tehet. Ez ritkán működik rendesen úgy tűnik, nagyrészt mert én általában kap feketelistára a Gmail vagy egyéb szolgáltatást A próbálunk erre skálán. De vicces is, hiszen Nem kell mindenkinek itt ma, vicces tény az utolsó alkalom, hogy próbáltam ezt két évvel ezelőtt, Azt hiszem, írtam egy programot ült a hurok iterációjával át a diákok az osztályban, és mindegyik egy szöveges üzenetet, és valami olyasmit mondott, miért nem vagy az előadás? Szerelem, CS50 bot. Fogalmad sincs, hogy hány bocsánatkérő és valami fájdalmas maileket Már kapott választ a n mínusz 100 ember, akik nem voltak itt azon a napon. És még viccesebb, több szégyenteljes story-- Tudja, mondjuk ez odakint. Ez már a videó egy pár évvel ezelőtt. Szóval hamarosan látni engem levelet a hurok, amely szerint ez nagyon könnyű írni egy hiba, hogy a hurok, oly módon, hogy az első alkalommal A ciklus akkor küldjön egy szöveges üzenetet. A második alkalommal a hurkon I kellett volna küldenem még egy szöveges üzenetet, majd még egy szöveges üzenetet, és még egy. De kiderül, ha egy elírás programozása közben, néha írhat programokat, hogy küldjön egy szöveges üzenetet, majd két szöveges üzeneteket, majd három szöveges üzenetek mindenkinek aki már kapott egy szöveges üzenetet. És mint tudjuk, csinál valamit, plusz valamit, plusz valami, plusz valamit, nagy O sok A szöveges üzenetek, vagy n faragva, vagy 0,10 $ egy szöveges üzenetet, $ 20,000. Szerencsére elütöttem a Control-C előtt történt, de én tartozom legalább egy Ön elődei $ 20 a 200 néhány furcsa üzeneteket, melyek, nem csak elment a telefont, de is olyan volt, mint egy régebbi flip telefon így tetszik tolta ki a memória minden egyéb személyes szöveget Üzenet ő valóban ütött. Tehát van egy cél ma, hogy ne tegyem. Talán bekapcsolja a repülőgép üzemmódot. Minden rendben. Szóval menjünk át program itt callled-- hogy fogom hívni szöveget dot PHP. És előre, kaptam két fájl van. Csináltam egy fájlt, csak a személyzet, hogy van Mind a személyzet info, az összes nevet A tanfolyam honlapján. És akkor most én csak fel néhány hamis számok 555-1212. Tehát ezek valójában nem megy sehova. De észre a belsejében ez a CSV fájlba, amely beszélgettünk röviden, mielőtt összefüggésben a fájl IO. Mi az a CSV fájlba? Vesszővel elválasztva változók. És ez olyan, mint egy nagyon könnyű adatbázis, ha úgy tetszik. Van egyfajta fajta négy oszlop ezt a fájlt, és ott csipkézett, de a vesszők lényegében képviseli oszlopok a fájlt. Az első oszlop a TF vagy CA nevét. Második oszlop az utolsó név. Harmadik oszlop a telefonszámot. És negyedik oszlop látszólag is-- negyedik oszlop látszólag mi? OK, így ez a fuvarozó. Tehát Verizon, Sprint, vagy mit nem. És ha én misspoke korábban, CSV. Vesszővel elválasztott értékek CSV itt. Szóval mit tehetek ezzel? Hát ez csak egy nagy szöveges fájl, és ez a fajta hosszú, igaz? Tetszik ez lesz lennie a fajta idegesítő. És kiderül azonban, hogy ha én szeretnénk küldeni egy szöveges üzenetet, hadd mondjuk Alex itt. Hadd menjen be a böngészőm és lépjen ki a teljes képernyős módban Csak így tudok váltani oda-vissza. Kiderül, lássuk, ha bemegyek Itt, és jelentkezzen be a Gmail, minden rendben. Ne nézd meg ezt a részt. Csak kapok látni. Természetesen a Fogadok lehet Még mindig látni, mit csinálok. Minden rendben. Tehát itt csak a Gmailt John Harvard számlájára. Tehát, ha azt akarom, hogy küldjön egy szöveges üzenetet Alex, Én természetesen írhat üzenetet. És kiderül, és én már teszteltük, hogy a Alex előtt van, így hozzáfűzni egy bizonyos domain- Íme az emberek telefonszámokat, mert létezik a világon dolgokat az úgynevezett SMS e-mail átjárók. Amely divatos szóval minden Mi, akik rendelkeznek mobiltelefonnal, hogy a telefonszám, természetesen, ott valószínűleg a fuvarozó, egy bizonyos utótag, mint a Vtext.com Verizon szöveges üzenet dot com, hogy lehet hozzáfűzni, hogy a Saját személyes telefonszámot, majd Te vagy barátok, vagy a szülők szövegre, abban az adott címre. És a Verizon van egy szerver, egy e-mailt szerver, hogy amikor megkapta az e-mailt, ránéz a numerikus részt, majd használ, ami különleges ipari magic úgy van, hogy valóban küldje ki, mint az állomásokat, az adott cellában telefon. Most ez jó, mert én nem igazán tudom, hogy egy szöveges üzenetet, vagy kódot írni, mégis A mobilomon, és lehet, hogy pontosan ezt a a végleges projekt, de most minden Nekem van az én laptop itt. Szóval azt akarom végighaladni, hogy CSV fájlt, vonal, a vonal, a vonal, a vonal, megragad minden a személyzet telefonszámokat, és azok szállító és programozottan, összefűzni, hogy van, csatlakoztassa a telefont szám a megfelelő domain név majd küldjön egy e-mailt. Szóval ez egy csomó lépést. És sok szerencsét csinál, hogy a C. Ez egy rémálom a helyzet megnyitni egy fájlt, hogy elolvassa vonal, vonal, vonal, mint te látnak, vagy hamarosan látni A probléma meg öt, ha nem probléma meghatározott négy, majd dinamikusan összefűzni két húr együtt, mert C, hogy két húr, és összekapcsolják őket, Mit minimálisan kell tennie a legvalószínűbb? Be kell, hogy állapítsa meg több memóriát, ugye? És kérdezd meg, malloc, tudok több memória? Így tudok tenni felében itt, fele ennek itt. Ez annyira sok lépést. És ezen a ponton már elvesztette érdeklődés a hülye kis demo Itt adhatja meg mindenki telefon hangjelzést ad. Csináljuk ezt a fajta PHP stílus, ahol mi csak kezdi el használni több, hogy konyhai mosogató. És az ötletek alapvetően ugyanaz, de nem kell aggódni túl sokat, hogy alacsonyabb szinten. Nézzük, hogyan lehet, hogy kezdjen csinálja ezt. És csak azért, hogy én nem ismételjük múlt hibáiból, Írtam néhány megjegyzés magam itt. És lássuk, ha tudok járni velünk keresztül néhány alapvető lépéseket, majd az idők emlékére fogunk Talán vágott néhány sarkok a végén. Én megyek előre, és nem nyílt konzol PHP kezdeni ezt a fájlt. És én megyek előre, és erre. Fájlkezelő, ahogy lesz Hamarosan látni, valójában meghív egy függvényt nevű f nyitva. És ne feledd ez megnyitja a fájlt. És az idézet, idézet vége, r azt jelenti, hogy mi, újra? Csak nyissa meg az olvasási. Most p készlet, hogy ezt tetted. És kezelni lehet bármi, fu, bár, BAS, minden változó neve. De általában egy számítógépes tudós nevezném nyitott fájlt, így egy fájlkezelő, valami kapaszkodó hogy úgy mondjam. Én csak csinálni Egyes hibák ellenőrzése. Tehát, ha a fogantyú hamis, csak szeretném C, fogok ilyesmit csinálni, fájl nem nyitható meg, backslash n. És akkor én csak fog hogy menjen előre, és kilép. És kiderül, PHP, Nem vagyok egy függvényen belül. Nincs fő funkciója van. Szóval nem tér vissza, önmagában. Én kilépéshez. Ami lényegében ugyanaz. És én kilép egy y talán. Az egyik éppen olyan hiba néhány sort. Ez nem nulla, tehát ez egy hiba. Rendben, tehát ha itt vagyok most az én rendezvény keretében nyitotta meg a fájlt. Megyek előre, és kijelentik menni nevű tömbben címek, és a C szerettem volna tudni, hogy a a tömb méretét előre, ugye? Vagy azt kell ezt bejelenteni egy mutató, majd a malloc. És akkor minden alkalommal, amikor olvastam egy másik sort a fájl, Megyek kell malloc több memóriát, malloc több memóriát. Ez a fájdalom a nyak. És szerencsére, PHP, Ruby és a Python, JavaScript, akkor növekedni fog a tömbök automatikusan. Nincs több malloc. Nincs több memória kezelése. A számítógép gondoskodik erről. De az ár, amit fizetni. Ez egy kicsit lassabb. És egy ilyen programban nem fogunk észrevenni. Fogunk elküldeni 100 szöveges üzeneteket. Például nem fog érezni. Valóban csak kezd mindegy választott nyelvre ha az adatok vagy a programok nagyon, nagyon méretes, mint lesz a helyzet annál is inkább, A web-alapú cucc. De most csak haladjanak előre. Míg kiderül, van egy funkciót C nevű f kap CSV. Fájl kap CSV, hogy vesz egy fájlkezelőt érvként, és így folytatja majd, sor, a sorban, soronként, hogy olvassa el a sorban. Tehát csak beolvas egy sort A szöveget a fájl. De mi kedvesek ezt a funkciót, ez nem csak adj egy sort. Úgy néz ki azok számára, vessző, és értelmezi a vonalon. És értelmezni a sorban azt jelenti, hogy szét ez bizonyos értékek ebben az összefüggésben. Más szavakkal, dollár jel sorban olyan változó, amely az fog adni nekem egy csomó indexek. Ez lesz a első oszlop a CSV. Ez lesz a második oszlop, ez lesz a harmadik, és ez lesz a negyedik. Mert emlékszem, és az Excel a nem együttműködnek az utolsó alkalom, hogy ezt tette, de ha tudom letölteni személyzet dot CSV. Hoppá, nem nevezhető át. Ha tudom letölteni a személyzet dot CSV, és próbálja megnyitni, Már registered-- ó nem frissíti az Excel mivel az elmúlt időben. Látni fogod, hogy a személyzet dot CSV, van négy oszlopot. Szóval, amikor olvastam a első sor Abby itt, dollárjellel sorban 0 Abby, dollárjellel sorban az egyik Lyons, dollárjellel sorban kettő a számát, aztán a telefon fuvarozó. Szóval ennyi. És ez a szép, mert én Nem kell most kitalálni ahol az összes ilyen vesszők valójában. Így fogok menni előre, és Ehhez adott a meghatározástól, Azt fogom mondani, hogy az ő neve sorban konzol nulla, mint ígérte. És fogok grab-- és valóban, tudod mit? Nem fogok aggódni nevét, ebben az esetben. Én fogom tartani, hogy egyszerűbb. Megyek, hogy nem ő a szám sorban konzol két, azt hiszem. És a fuvarozó volt hol? Sor három, egymás fölött. Szóval semmi új nincs. Ez csak nulla indexelés egy tömbbe. És most, fogok csinálni a következő. Ha a fuvarozó felel megegyezik az AT & T-- Én csak megy, hogy egy loop-- Szeretnék létrehozni egy e-mailt címet, hogy így néz ki. Ez lesz 617-555-1212 A, miről van szó, text.ATT.net, az, amit csinálni akarok. Szóval hogyan tudom ezt megtenni? Megyek tegye a következőket. Címe lesz a számát, és most hadd menjen előre, és erre. Ez néhány funky szintaxis. Tehettem százalékos trükkje, de én tényleg csak ezt. Tehát ez egy PHP dolog, de nézzük meg, hogy mit csinálok. Dollárt aláírja címet A bal, csak egy változó. Adj egy változó. Nem kell adnia, hogy milyen. PHP kitalálni. A jobb oldali, mi az adat típusát Az, hogy az egész dolog a a jobb oldali? Úgy néz ki, mint egy húr, mert ott van a kettős idézi a bal szélen, és a jobb szélen. Most van néhány funky új szintaxis itt. Ott van a kapcsos zárójelek és a dollár számát. De hogy egy kitalálni, hogy mi az, hogy szintaxis Valószínűleg Hogyan lehet a PHP értem? Igen. Csak helyezze be az értéket is. Tehát nem százalékkal s. Mi jönne nyomtatási f, vagy s print f vagy valami hasonló, de a PHP és a sok magasabb szintű nyelvek, fogsz látni, hogy meg nem ugyanaz a dolog funkcionálisan, talán hat különböző módon. És ez így kezd válni kérdése tervezés és stílus. Tehát ez csak egy rejtélyes módon keresi mondván, hogy nekem egy e-mail címet, de plug-in a számot ezek között a zárójelek segítségével. És a kapcsos zárójelek nem fog végül a végső címet. Most lehet kihagyni néhány ezeken a vonalakon idők emlékére. Tehát ha egy fuvarozó egyenlő egyenlő verHorizon-- Hoppá, Verizon-- akarok csinálni valamit nagyon hasonló, ahol a cím jelentkeznek, idézet, idézet vége, számot text.ATT.net. És akkor én is ugyanezt a fajta dolog a többi fuvarozók. De én csak nem pont, pont, pont most. És most tegyük fel, hogy Szeretném felvenni tömb, nyomja. Szeretném felvenni a tömb, úgynevezett címeket. Ez a cím, ez hogyan adj valamit, hogy a tömb PHP. Önnek nem kell tennie malloc. Nem kell átméretezni a tömb. Csak azt mondom tömb, push. Mit akar push-- mi tömb akarsz nyomni valamit rá? Címeket. Mi azt szeretnénk, hogy álljon rá címeket? Cím. És valóban, ha igazán akar okos lenni, Néhány szintaktikai cukor Ennek, hogy úgy mondjam, mely mindössze annyit jelent, hogy hogyan teheti ezt a A szebb utat, lenne erre. Ez is az a hatása, növekvő A címek tömb mérete az egyik, majd puff, hogy további E-mail cím bele. Igen. Közönség: [hallható] 1. Előadó: egy elírás a mást if-- ó, fuvarozó. Rendben. Szintén nem tetszik a elmulasztása végrehajtja az idei program részeként később. De köszönöm a fogása. Még egy hiba. Köszönöm. Szeretnénk, hogy ez Vtext.com. Igen. Minden rendben. Szóval, ha ez hagy minket? Már írt a kódot a fájl megnyitásához. Van egy hurok segítségével navigálhat mint a sorok a fájl. Van kód, amely hozzáteszi, hogy én tömb, egy olyan időpontban, a helyesen formázott e-mail címet. Tehát minden, ami igazán marad az, hogy küldjön E-mail minden egyes ilyen emberek. Szóval mentem előre, és readied magam az alábbiak szerint. Mit fogok csinálni itt is-- és nézzük megy előre, és hagyja, hogy néhány aktuális kódot, ami úgy néz ki, mint ez. Tehát itt van az elősütött változata írtam korábban. És észre befejeztem végrehajtási Sprint. Befejeztem végrehajtási T-Mobile. Befejeztem végrehajtási Virgin Mobile. És én kérek előre. Van egy pár fuvarozók Egyes diákok az osztályban van hogy én nem zavarta felsorakoztatásával a sérült állapota itt. Tehát nem az összes szöveg kialszik. De lássuk, mi mást kell csinálni. Becsukom a fájlt, csak mint P beállított négy. És ez az új szintaxist. És majd meglátjuk, egy kicsit kis ez idővel, különösen p beállítani hét és nyolc. De ez szintaxis létrehozása Egy speciális típusú szerkezetét. Kiderül, van egy könyvtár, amely jön a PHP, az úgynevezett PHP Mailer. Ennek célja az életben, hogy programból küldjön e-mailt. Ez kódot valaki más írta, hogy könnyebbé teszi számunkra, hogy küldjön e-mailt, így nem kell tartani oda-vissza a Gmail, és beillesztés emberek e-mail címeit. Van egy csomó vonalak itt őszintén, én csak ilyen másolt pásztáz- a dokumentációt. És valóban, ha Kíváncsi, hagytam Az URL-ek a dokumentáció hogy a kód feltesszük később. És észre, hogy többek között A dolgok csinálok van, mondom ezt a könyvtárat, A Gmail szerver, ugye? SMTP beszélgettünk röviden, amikor voltak a Yale szól, hogy egyszerű mail átviteli protokoll. Ez a protokoll, szerverek használt e-mailt küldeni, és that's-- Gmail egyik ilyen. A port, ez a TCP port száma. Ez rendben is van, Nem láttam 587 előtt. Tudnotok kell, hogy a dokumentációt. Itt a felhasználóneveddel. Én fogom használni a CF50 bot. És egy pillanat alatt, én csak megy írja a bot tényleges jelszót. És akkor itt lent, vegyük észre, mi marad. Tudom a küldő címét kell bot a CS50.net. Azt hiszem, nem fogja megbánni küld SMS küldése az 800 fő, hogy mondja, hiányzol, szerelmes CS50 bot, talán azoknak, akik nem tudták, hogy ez a mai. És akkor a sorban 76, mit tegyek? Ez a fajta néz ki, mint C. Tehát i értéke 0, n equals-- most számolja új. Kiderül, hogy ha azt akarjuk, hogy a néhány dolog egy tömbben, Önnek nem kell emlékezni többé. Tudod csak kérni egy nevű függvény száma, és megmondja, hogy hány címek vannak a tömbben. És akkor fogok hozzá a címet, hogy az e-mail. És tudom, hogy ez honnan A dokumentáció. Van egy add address. És most észre, egy darabja szintaxis. Láttuk ezt megelőzően C. Hasonló szellemben. Akkor gondolj dollár jel mail, mint egy változó, amely az. De ez egy struct belsejében amelyek nem csak tulajdonságok, változók, ha úgy tetszik. De kiderült, hogy a PHP, egy objektumorientált programozás nyelvet, mint a Java, ha volt APCS. Dollárjel mail, ha azt szeretné az alábbiakra: ez is funkciók belsejében is, vagy módszerek. Tehát ez azt jelenti, hogy Különleges PHP Mailer könyvtár, ha van egy változó cikkére, ha akarom hívni egy függvényt, amely jön, hogy a könyvtár, a mai célra, Csak azt tudom, hogy használja a nyíl jelöléssel. Nincs pont jelöléssel. Ez csak a nyíl. De ez nem egy mutatót. Ez csak kölcsönzött C szintaxisa. Így hívja Cím belsejét ez a könyvtár objektum vagy változó. Minden rendben. Ez a mágikus vonalat. Így küldök egy e-mailt. Ez a szám megegyezik a nyitás Gmail, írja ki, és üti küldeni. De ez meg fog helyett Levél e-mail erre a címre, ezzel a testtel, A CS50 bot. És most a vonal. Ez a vonal nem volt jelen, mint 2011 amikor azt hiszem, az utolsó próbáltam ki. Ez a vonal ott, persze, törli a címeket. Tehát logikus, ha Nem egyértelmű a címet minden iteráció után, az első e-mail vagy szöveges üzenet megy Alice, A második megy Alice és Bob, a harmadik megy Alice és Bob és Charlie, így a nagyon drága tévedés Csináltam abban az évben. Tehát lássuk. Vannak-e olyan kérdések mielőtt elküldjük az összes szöveges Üzenet 10 százalék a valószínűsége? Bármi kérdés? Minden rendben. Nézzük menjek be itt és a változás a jelszót, hogy mit kell dolgozni, valószínűleg kap feketelistára Gmail. Szóval lehet, hogy nem minden megy ki, hiszen ők valószínűleg nem szeretnek minket küldését 800 e-maileket egy for ciklus egyszerre. Mivel ez nem különösen az emberi viselkedést. Ó, én meg fog változni egy másik dolog. Akár a tetején, megyek sent-- változtassa meg a fájl a diákok dot CSV. És nem nyitom meg ezt, de ez egy azonos CSV fájlba nem 100 dolgozót, de 800 diák, csak a Harvard, a Yale, mert van október mélyedés ezen a héten. És úgy tűnik, mintha egyfajta bunkó dolog hogy nem a szöveg mindegyik, hogy miért ők nem az osztályban nyaralni. Rendben. Csak Harvard hallgatói ma belsejében a fájlt. És most menjünk vissza az én terminál ablakot. Én vagyok ilyen ideges. OK, így most fogok belemenni a könyvtár, és a PHP szöveges dot PHP. Mit szólnál egy bátor önkéntes? Szóval én nem akarom, hogy ez nekem. OK, gyere fel. Mi a neved? MAYA: Maya. 1. Előadó: Maya. Jöjjön fel, Maya. Minden rendben. Lássuk, ha ez működik. Tettem a saját e-mail címét a file-- saját telefonszámát a fájlt, így remélhetőleg fogok kap egy is. Örvendek. MAYA: Hasonlóképpen. 1. Előadó: Szóval csak annyit kell tennie, hogy Enter küldeni 800 szöveges üzeneteket, ha nem csavart ki. Szép. Eltarthat egy ideig, statisztikailag, amíg eljutunk egy e-mailt address-- egy szöveges üzenetet, ami A szobában most. Nézzük habozik, és meglátjuk. Közönség: [fütyörészve] 1. Előadó: Ó, igen. Közönség: Ó, megvagy. 1. Előadó: A hurkok are-- ezt nem lassú, mert a PHP. Ez lassú, mert a Gmail A fojtás minket, és nem tudatja velünk küldjön több mint mint egy e-mail másodpercenként. Bármit? Ez nehéz dolog számomra, hogy teszteljék a otthon csak én és egy telefont, így. Az, hogy remélhetőleg a bot? Igen? Nem? Mondj igent. Nem? Ez egy baráttól? Kínos. OKÉ. Benne, hogy ez működik mégis. UH Oh. Ők black-- ó, várj egy percet. Ó, tudod mit? Egy kis türelmet. Csak Maya és én-- Mia volt, ugye? MAYA: Maya. 1. Előadó: Maya, fog tudom, mit csináltam rosszul van. Ó, várj egy percet. Azt hiszem, csak küldött 100 szöveges üzeneteket 555-1212. Készenlét. Nem tudok nyerni minden évben. OKÉ. Maya? Fix, hogy utómunkálatok. A francba! Következő feladó cím. OK, állni. Bocsánat. Ez fájdalmas, minden évben. OK, az egyik pillanatban. Ez jó. Én inkább fogja ezt. Nyomtatás címet. OK, állni. Nyomtatás címeket, konzol i. Igen, ezt szeretem. Dollár sign-- OK leírom, mire vagyok csinál egy pillanat, miután már futtatni ezt. Minden évben. OK, itt vagyunk. Én csak-- és nem akarom, megmutatni mindenkinek telefonszámát, de Maya megerősíthetem a bólint a fej, hogy látja mindenki telefonszámot az osztályban hogy fogok másolni a program neve Gmail. És ha a Gmail, mit akarunk mondani? Hiányzol. Love-- ez nem tőlem. Én még nem is hit küld még. Szóval menjünk előre, és nem ez, ha tudok nagyítani. OKÉ. Tehát én vagyok a program neve Gmail most. Ha Maya, azt szeretné, hogy kattintson a Küldés gombra, fogjuk szimulálni, hogy mi kódot kellett volna. Bármit? [SÍPJELZÉSEK] Közönség: Igen. 1. Előadó: Igen? Az üdvösség? Közönség: Igen. 1. Előadó: Hiányzol. És fogok küldeni a többit. Küldtem felét, mert én nem hiszem, Gmail hagynám azokat megy keresztül. Tehát csak ne feledjük, a mai nap hogy megtudta, hogy tudom használni a Gmail. Ez volt rémisztő. Egy nagy taps a Maya. Köszönöm. Rendben, szóval. mi [SÍPJELZÉSEK] Van egy pár sípol, igen? Minden rendben. Most fogok kapni 700 valóban boldogtalan e-mailek vissza osztálytársaival. Így legalább majd meglátjuk ha ez megérte. Tehát mi volt a baj? Majd mi ment rossz után az a tény, de csak nézd, milyen egyszerű ez volt a teendő, hogy a PHP. Szóval, mit tehetünk valójában nem most, hogy itt van ez a kifejező PHP. Hogy was--, hogy borzasztó volt. Minden rendben. Szóval ez volt az, amit kellett volna ki. Ezt nekem tesztelés ma reggel én telefon, tényleges screenshot a telefonom. De most nézzük meg, miért vagyunk valójában bevezetése Az összes ezt a cuccot az első helyen. Tehát a cél nem az, hogy összerakható programok vannak írva a parancssorban, ugye? Ezért írtam egy egyszerű Hello programot írtam egy kis program, amely nem feltételes, és használt olvasási vonal és így tovább. És elméletileg írtam olyan program, amely kiküldött 800 szöveges üzenetek, plusz-mínusz 800. És ez a program volt még mindig fut a parancssorban. És ez természetesen Nem a weben, igaz? A cél most az, hogy elkezd használ amit igény egy olyan könnyebben használható nyelven, Lefogadom egy hatékony nyelv szempontjából jellemzője, hogy a jöjjön vele, hogy elkezd kódot írni, hogy generál weboldalakat. Így utoljára, és a múlt héten, beszélgettünk HTTP és HTML. És mi a szép a HTML az, hogy ez csak a tiszta szöveget. És a szöveg minden bizonnyal valami, amit lehet nyomtatni szó hívja a nyomtatási f függvényt, vagy a nyomtatási funkció. És valóban, ez az, amit a PHP Most megy, hogy a tőlünk. Tehát példák között vagyunk Van a mai forráskód, Amellett, hogy néhány, a kód hogy tettem ott egy perce mi programok, mint ez például. Froshims, vagy Gólya Intramuralis Sport, valójában az egyik első extracurriculars Kaptam részt évvel ezelőtt. És a szobatársam és én, a Egyes többi gyerek az egyetemen, működtetéséhez használt froshims programot. Kezdek én szöveges üzenetek most. Most így, vissza a nap, így ez a volt, 1996, vagy úgy, nem volt internet, de nem volt process-- ott nem volt honlap froshims. És így ha akartam, hogy iratkozzon fel foci, röplabda, vagy bármi, akkor töltse ki ezt a dolgot nevezett egy darab papírra, és akkor átsétálna Harvard udvar, és akkor csúsztassa a levélnyílás a Proctor, aki volt Wigglesworth, az egyik alvás. És ez volt regisztrált. És ő aztán E-mail írása Önnek manuálisan, ugyanúgy, mint én csináltam itt Maya, és akkor lenne megállapítható, például, hogy bejelentkezett. Szóval ez olyan volt, mint az alacsony lógó gyümölcs, hogy úgy mondjam. Ez kedves volt hülye, hogy voltunk papírt használ erre. Azt akartam, hogy képes hogy csak menjen a honlapon, vagy a gólya menni egy honlapján, regisztráljon sport, és csak automatizálja egy csomó ez a cucc azáltal, hogy nevüket és e-maileket és így tovább egy adatbázisba. És valóban, a nagyon első változata A weboldal segítségével szuper csúnya HTML, nézhetett valami ilyesmi. Ez valójában, ironikusan, több kínos néz ki, mint ezt vissza akkor. De én egy programozási nyelv. Nem PHP, hanem úgynevezett Perl, amely egy régebbi nyelv, de nagyon hasonló szellemben. És én csak teljesen tanított meg magamnak. És elvitt egy darabig, hogy kitaláljuk, kérdezõsködik barátok. De az ötletek vannak pontosan ugyanazok voltak. Mert ami PHP-ben valóban tervezték A nem a parancssorból cucc mi csak játszottunk, de a webes programozás. Ez tényleg kötve a funkció beállítva, hogy a web, az alábbiak szerint. Ez froshims. És ha akartam regisztrálj ebben a formában, ez elég csúnya, természetesen, de hadd menjen előre és egy kevésbé kényelmes diák, és bármi sport Matthews, kattintson Register. Amit én szeretnék tudni kell tennie, hogy benyújtja információkat olyan formában, Nem a Google szerver, mint mi múltkor, teljesen csaló segítségével a backend, én kívánja megvalósítani a saját backend kód. Ami azt jelenti, írási PHP kód, amely él egy URL a formában adatokat lehet benyújtani. És akkor a kódot, PHP-ben íródott a szerveren, Ezután válaszolni, hogy felhasználói. Mint a nevét, vagy komfortfokozata, vagy kollégiumi, majd vele valamit. Ebben az esetben, csak ostobán kinyomtatta a szöveg, ami nem is olyan szép. De akkor minden bizonnyal elképzelni, ha tudod, HTML, és akkor hamarosan tudni, hogyan kell generálni HTML nyomtatási f, és a nyomtatási, és hasonló funkciók, akkor biztosan létrehoz egy szebb weboldal, amely azt mondja, hé David, már regisztrálva. Te egy kevésbé kényelmes hallgató Matthews, ugye? Akkor csak használ egy csomó% ses, vagy a kapcsos zárójelek és a dollár jel jelölést használtam egy perccel ezelőtt, hogy generál szöveges ez inkább felhasználóbarát mint ezt. Szóval vessünk egy pillantást ezt a fájlt. Froshim nulla ponttal PHP néz ki. Amikor reload CS50 IDE, froshim nulla néz ki. Ez froshim nulla pont PHP. És mit veszünk észre ezt a fájlt? Közönség: [hallható] 1. Előadó: Bocs, egy kicsit hangosabban? Közönség: [hallható] Minden a HTML. És valóban, ez, mert Az az érdekes a PHP az, hogy ez volt a célja hogy legyen, mert jobb vagy rosszabb, összekeveredve HTML kódot. És valóban, bár ez a fájlt, froshim nulla pont PHP, van egy PHP comment tetején belőle, ez az egész csak HTML. De ezzel szemben, ha én nyit, hadd mondjuk, regisztrálj nulla pont PHP, Csak van egy nagy megjegyzést a tetején. Ez is úgy néz ki, szinte teljes egészében mint a HTML, kivéve hogy mit? Vonal, mi, 21 úgy néz ki, egy kicsit furcsa. De észre én belépő PHP módot A nyitó zárójel kérdőjel PHP. Aztán kaptam néhány dolgot. És akkor a végén, hogy a vonal Szinte már, kérdőjel PHP. És ez mit értek keveredik. Írhat HTML, amit csak akarjuk, hogy a szerver kiköp. De ha azt akarjuk, hogy tegyen valamit Dinamikus partway Az oldalon, mint helyezze a nevem, vagy kollégiumi vagy komfortfokozata, Én függvényt lehet használni mint nyomtatási R, amely a print rekurzív, ami csak annyit jelent, nyomtassa ki ezt a változót, a formázással ahogy akarod. Ez tényleg nem az humán célokra, ez csak hibakeresés céljából vagy diagnosztikai célokra. Szóval így csináltam. Ha én inkább megy froshims két pontot PHP, észre, hogy az intézkedés ebben a formában nem regisztrált nulla pontot PHP, mint a old-- az előző valójában volt. De ez nyilvántartásba két pontot PHP. Tehát nézzük meg, hogy ez az egyik viselkedik egy kicsit másképp. Ha bemegyek változata kettő. Ha itt, ha regisztrálni, mint David, kevésbé Kényelmes, kollégiumi az Mathews, regisztrálj. Szóval ez most azt mondta, akkor bejegyzett, nem igazán. Lássuk, mit csináltam itt. Ha megnézzük nyilvántartás két pont PHP, ennek valamivel több PHP kódot. Ez egy kicsit tisztább, bár még pakolások egy kicsit hosszú ezen a vonalon. Figyeljük meg itt. Azt ki kell nyomtatni az én HTML tag, a fejem tag, címemet tag, a fej, a test. És akkor elkezdem mondani dolgok, mint írja PHP módot. És így, hogy a tag, nyitó zárójel PHP-- kérdőjel PHP mondja, hé, szerver, execute-- értelmezni A következő dolog, mint a PHP amíg meg nem jelenik a végén tag. És bár lehet, hogy nem ismer Más PHP, mint amit eddig látott, akkor milyen olvasni ez elég intuitív. Ha név üres, vagy komfort üres, vagy kollégiumi üres, mit tegyek? Mit mondjak, hogy a felhasználó? Meg kell adnia a nevét, kényelem, és a kollégiumi, és így tovább. Más, én mondom, hogy regisztrált, Hát nem igazán. És azt mondom, nem igazán mert nincs az adatbázisban. Nem csinálok semmit az adatokat. Én csak dobott el demonstrációs célokra. Most valahogy spóroltak több mint 22 vonal. Van több szintaktikai ott, de a dollár jel aláhúzzák az üzenet elég érdekes. És ez az, ami szép a PHP. A PHP-ban van az úgynevezett Néhány szuper globális változók. Ők egyfajta még fontosabb, mint a globális változók. És ezek mind az aktivált mint ilyen, jön a PHP. Tehát ha van egy szerver, egy web szerver telepítve, mint az Apache, és telepíti a nyelvi támogatja a PHP, hirtelen Önnek kezdi el használni ezeket a szuper A globális változók a kódban. És mi a szép a PHP hogy ha csak levelet fájlt, hogy véget ér dot PHP, tedd egy webszerver, majd elküld egy űrlapot is keresztül, hogy a cselekvési tag egy form tag, hogy action attribútum a form tag, a PHP és a web Teljesen kitalálja, hogyan szerezze minden olyan alapvető érték párokat arra, Az URL-t kérdés A q értéke macskák, akkor kitaláljuk, hogyan lehet q és macskák. Ha be egy fotót, vagy egy felhasználónevet, vagy jelszóval, mint a Facebook, PHP kitalálni az Ön számára ahol minden, hogy az adatok. És akkor csak kézzel Ön egy asszociatív tömbben nevű dollár jel aláhúzás üzenetre vagy dollár jel aláhúzás kap, attól függően, hogy te segítségével get vagy post beadványát. És ez csak a kezedbe egy szuper globális változó, így ha azt akarjuk, hogy a nevét hogy a felhasználó keresztül benyújtott hogy a web formában, akkor szó szerint csak mondani a nevét A szuper globális változó, idézet, idézet vége, nevet. És idézet, idézet vége kényelem, és idézet, idézet vége kollégiumi. És mi lesz képes megtenni ez és még sok minden más a PHP. És bár ez volt a forgószél pillantást vetni rá, fogunk merülni sokkal jövő héten. Majd be egy adatbázis úgy, hogy igazából fog kezdeni végrehajtási saját e-kereskedelem based-- mint a honlap csak egy hét múlva. Szóval találkozunk legközelebb, és Remélem van a szöveges üzenetek. Bye. [Zenelejátszási] [AJTÓNYITÁS] Hangszóró 2: Hé. Hangszóró 3: Mi a helyzet? Hangszóró 2: Mit csinálsz? Hangszóró 3: Dolgozik a problémát sor. Hangszóró 2: Szép. Pacsi. [PACSI] Milyen are-- uh, mit csinálsz itt? Hangszóró 3: Csak lógott ki. Most kaptam vissza az edzőterembe. Nem tudtam segíteni, de észre, amikor nagy fived, hogy van elég durva kezek. Ne menj az edzőterembe? Hangszóró 2: No. Nem. Hangszóró 3: Haver, meg elég nagy. Ami rossz, mert mindenki tudja, 8-labda a nagy ember. Pacsi. Hangszóró 2: Á, nem. Nem, azt hiszem, jó vagyok. Azt hiszem, jó vagyok.