[Predvaja glasba] SPEAKER 1: To je CS50 in to je konec sedem teden. Danes je morda kje smo Res vam poučevanje jezikov. Uvedli smo v zadnjih nekaj tednov HTML in CSS, od katerih nobena se programskih jezikov. In res, čeprav nismo pogled na skoraj vseh oznak da HTML prihaja z in skoraj vse lastnosti, ki CSS prihaja z, to je nekako to za HTML in CSS. Bomo samo splošno začetek ob predpostavki, da vas razumeti splošne ideje oznak in atributov, in strani, ki se pošiljajo od odjemalca do strežnika. Ker danes začnemo gledati drug programski jezik, PHP. Bomo storili to super hitro. Ne bomo naučil PHP per se, podobno kot nismo prizadevamo, da te nauči C, samo po sebi, temveč programiranje. In res, eden izmed cilji tega predmeta se ne da naučiti C, ali HTML ali CSS, ali PHP, ali poljubno število drugih buzz besede ali kratice, temveč je računalništva in kako temeljito programiranje. In res, danes smo začeli, da sprejmejo ti kolesa usposabljanja off vse nadalje jih plujejo skozi jezik imenuje PHP, kot sledi. Tukaj je tisto, kar ta jezik izgleda. Izkazalo se je, da ni potrebe za glavna funkcija v programu napisano v jeziku, ki se imenuje PHP. Tako, da že sliši malo enostavnejše od C, s katerimi smo seznanjeni. Izkazalo se je, da če vas želeli opredeliti spremenljivke, vam je skoraj enako C. Toda tam je očitno ena razlika tukaj ko Izjavljam niz, ali morda dve razliki. Kaj videti drugačen? OBČINSTVO: Dolar znak. SPEAKER 1: Da, tam je dolar podpis, ki smo ga še nikoli videl. In kaj manjka? Ja? OBČINSTVO: [neslišno] SPEAKER 1: Ja, ni podatkovni tip. Tako se izkaže, da je PHP, kaj smo pokličite ohlapno natipkan jezik, v katerem C je močno tipkal. Ohlapno natipkan samo pomeni, da obstajajo različne vrste podatkov, obstajajo nizi in Ints in plava. Ampak številke računalnika, ki ven. Si človeško programer ne bi bilo treba to pogruntal. Torej, vse kar morate storiti, da razglasi spremenljivka je znak za dolar, je ime vašega spremenljivka, in nato, na primer, quote citata, zdravo svet. No to je tisto, kar pogoj izgleda v PHP. Kakršne koli razlike? No. Tako se izkaže, ti so enaki. In morda imajo manj podružnic ali več podružnic, ampak skladenjski zavoji ven popolnoma enaka. Logični izrazi lahko naloži skupaj. Logični izrazi lahko anded skupaj. Imate še stikal. Tudi če se ne uporablja ti, ti ne obstajajo v C in oni so funkcionalno ekvivalent v PHP. In v resnici, v PHP oni malo močnejši. V C, lahko primerjajo samo nekatere vrste podatkov, kot so ints in znakov, ker so v PHP lahko dejansko primerjati polni Odhraniti pijače godala, ne da skrbeti kazalci in podobno. Torej, tukaj je za zanko. To je samo psevdokoda koda, če hočete. Vendar strukturno je identičen C. Tukaj je nekaj časa zanke, psevdokoda therefore-- identičen C. Tukaj je storila, medtem ko loop-- enaki. In tako se je nekako ta vzorec tu, pri čemer tam je nekaj drugega skladenjska lastnosti smo dejansko videli. Dejstvo je, tu je lepo Tako v PHP, s katerim, Če želite Ponovil čez array, in si Ne želim, da skoči skozi duševne in skladenjske obroče, ki imajo int i enak 0, i manj kot n, i plus plus-- ki je samo veliko siten sintakse. Lahko rečem malo bolj fluidno za vsako številk kot število, kjer je v tem primeru dolar številke znak, da sem ob predpostavki, je kot matrika se imenuje številk. In potem sem ob predpostavki, število, ednini, se bo spremenljivka. In kaj PHP bo naredil za mene, kot sem Ponovil nad to zanko je na vsaki ponovitvi to se dogaja posodobiti spremenljivo številko bo i-ti element v številkah, plural. Torej je le ročaji vse to za mene. Ni oglati oklepaji, ne znak za dolar, ni podpičji. To je samo malo enostavnejše. No, če želite, da se matrika, se izkaže, da si Lahko narediš nekaj zelo podobnega C. Sintaksa je malo drugačna. Ampak tukaj je matrika se imenuje Dolar je bil podpisan številke. In uporabljam, v PHP, kvadratni nosilci, se je izkazalo. In bomo spet videli to še v JavaScript-- drug jezik. Pravkar sem se uporabljajo oglati oklepaj zapis da imajo vejicami ločen seznam celih, v tem primeru. Ampak to mi daje niz. Ampak še močnejši v PHP, imamo tudi tisto, kar so na splošno imenuje asociativne nize. In veliko jezikov imajo ti tudi. Stvar nizi C je, da se indeksi za niz, stvar, ki vas uporabite v oglatih oklepajih, preko katerega imate dostop do elementov, mora biti kaj? OBČINSTVO: [neslišno] SPEAKER 1: Morajo biti številke ali cela, posebej iz nič gor. No, v PHP, in se je izkazalo ven, v drugih jezikih, lahko začnete, da imajo indeksi, ki niso številski. Ampak oni so pravzaprav besede ali stavki, tako da namesto poskusite, da se spomnimo, kjer nekaj je, ali shranjen v spremenljivko i, lahko uporabljaš besedo in rekel: that-- lahko rečeš besedo, kot je ta. Torej znak za dolar quote je ime spremenljivke tukaj. To je nekoliko funky sintaksa da je združevanje dveh ključnih vrednosti parov za to spremenljivko. Natančneje, to mi daje matrika, ki je dolžine 2. Toda indeksi niso 0 in 1. Indeksi so quote citata simbol in quote citata cena. In vrednosti teh indeksov, oziroma, je FB za Facebook in 79,53 $, ko sem nazadnje preveri ceno za to. Kaj to pomeni? No, to pomeni, da namesto pisanje kode kot je ta, kjer sem počel nekaj kot dolar sign-- ali bolje, v C Jaz ne bi imel niti znak za dolar. Jaz bi naredil nekaj kot narekovajev in nato Jaz bi naredil nosilec i, da bi dobili na nekatere samovoljno številčno indeksirane vrednosti. Danes začenja v PHP, če vas želijo, da bi dobili na neki vrednosti, smo nekako imeti več semantični izraznost. Samo fancy način rekel, da lahko samo pokliči stvari, kar so. In če želite, da bi dobili na simbol nečesa, Zdaj ste dobesedno storiti citiram konec citata simbol v oglatih oklepajih namesto zgolj številko. Torej, to je lepo priročno. In to je nekako to za zdaj. Tam je grozde druge funkcije v PHP. In res, PHP prihaja z pregovorno pomivalno korito. Desetine, stotine funkcij prihajajo z PHP-- tako veliko več, kot je prišel s C. In to ni namenjeno preplavijo ampak pomaga se zavedaš, da ne bomo imajo več časa za pisanje kode to je nekako tukaj konceptualno. Zdaj bomo lahko šele začeli izkoriščati z veliko bolj napredne funkcije da imajo jeziki, kot so PHP. Tako da nam ni treba skrbeti za premika stvari okrog v spomin. Mi ne bo treba skrbeti knjižnične funkcije malloc in vsi od teh nižjem nivoju, močne podrobnosti, ki jih boste rokoborbi s, če se ne borijo z, pset5, vendar lahko začnete Kmalu po sebi umevno. V bistvu, kaj je napisal super preprost program v PHP, kot sledi. Jaz bom šel z glavo v CS50 IDE tu, in kaj bom naredil je ustvariti novo datoteko, ki je zelo preprosto se dogaja, da se imenuje zdravo pika PHP. Torej, namesto pike c, to je dogaja se imenuje dot PHP. In potem v tej datoteki, Lahko začnete tipkati. Vendar se izkaže, da je ena stvar, moram vedeti je, da vsak PHP datoteka v splošnem je treba začeti z neko posebno sintakso. Podobno kot v duhu HTML, ampak spet, PHP je programski jezik, ne jezik označevalni. Torej vsak spis, in to je nekako neumno videti bom priznam. Odpri nosilec, vprašaj, PHP. In to je samo Jezik je način rekel, hej, računalnik prihaja nekaj kode napisana v jeziku, ki se imenuje PHP. In potem na samem koncu svojega spisa, naredite nekakšen nekakšno nasprotje. Spet ne boste napišete PHP, ki vam samo storiti vprašaj, kotnik. In potem kaj si dal notri teh dveh oznak, tako rekoč bo, ali bi moralo biti, PHP kodo. Torej, kaj je narediti nekaj super enostavno. Grem, da gredo naprej in narediti print def, Hello world, poševnica nazaj n, shranite. In zdaj na mojem pozivu, da bom storiti, da hello-- ne, bom naredil, dot poševnica zdravo. Ne, dot poševnica, hm. Torej, nekaj je drugače. In res, to je ključna razlika med PHP in jezike, kot so C. C je tako imenovani zbrati jezik. Kaj to pomeni, da je treba zbrati C? Kaj je posledice? Ja. OBČINSTVO: ga je napisal v strojno kodo da bi se jih vodijo računalnik. SPEAKER 1: Točno tako. Moramo najprej pretvoriti v tako imenovano strojno kodo, ničle in tisti, preden bo to dejansko izvedljivo in razume računalnik. Z Intel Inside. CPU znotraj računalnika. PHP, nasprotno, je tisto, kar se imenuje razlaga jezik, ki pomeni, da ga ne pripravijo v ničel in enic, strojni kodi, ste namesto pustite kot izvorne kode. In ti, namesto da ga prenese kot vhod na program, tolmač da je nekdo drug napisal pred leti, ki ga razume vrstico za vrstico, znak za znakom. Torej z drugimi besedami, ljudje tam napisal program, ki bo videti na vašo kodo linijo linije, in ugotoviti, kaj računalnik je treba storiti, ne da bi jo pretvori neposredno ničel in enic. Torej, če se ji to zdi za zanke, Ta tako imenovani tolmač se bo podobno, vse v redu, sem morala nekaj narediti znova in znova in znova. Kaj naj naredim? Naj poglej v naslednji vrstici. Naj poglej v naslednji vrstici. In res ga interpretira po vrsticah. Tako, da jo izvrši, jaz ne uporabljate make. Ne uporabljajte dot poševnica v tem primeru. Jaz namesto narediti PHP, ki je ime programa, alias Tolmač, ki je vnaprej nameščen v CS50 IDE, in zdaj moram prestati argument linije ukaz, ki je preprosto ime izmed datoteko, da želim razložiti. Ali bolj mimogrede, da želim teči. In če sem udaril Enter, da jo imamo. Pozdravljen, svet. Zdaj se je izkazalo, da sem Rabljeni print def namerno da nas premostiti od C do PHP. Večina PHP programerji, kot boste videli, niti ne trudim s pomočjo tiskanja def. Samo uporabite funkcijo imenovano tiskanja, ki C ni bilo. In zato, če sem ga ponovi zdaj, je pravzaprav obnaša funkcionalno enaka. Ne morem uporabljati odstotkov s in odstotek i in tako naprej, vendar obstajajo tudi drugi načini v PHP o tem. Toda to je samo pravijo, da skladenjsko, razen nekaterih čudnih stvari top, in nekatere čudne znake dol na dnu, koncepti zdaj od programiranje v tem drugem jeziku se bodo popolnoma enaka. V resnici, kaj je naredil en drug primer. Tako da sem šel naprej in zaprite datoteko. Dovolite mi, da ustvarite še eno, da Poklical bom pogoje, 1 pika PHP. Torej ni nič, ker tisto, kar sem storil Bil sem pogledal nazaj, pred nekaj tedni, smo imeli datoteko z imenom Pogoji 1 pika C. In kaj Sem si ga pretvori v mojem glava in sem na papirju, in kmalu na tečaj je Spletna stran, vrstico za vrstico v PHP. Torej, v različici C, smo naredili nekaj kot niz je dobil dobil niz. Torej, to je malo drugačna za to, da v PHP. Namesto, da sem šele tekoč storiti, ali bolje, sem morda naredil int n dobi dobili int, v tem primeru prej. Torej, namesto, da grem narediti n gets prebrati črto, bi rad celo število, prosim. Torej, to je samo moj poziv. In tako se je izkazalo, in Rad bi vedel, samo to od prebrali ali videli funkcijo Prej, preberite linije funkcije v PHP je argument, da je takojšnja za človeka, in njen namen v življenju je, da se glasi vrstico besedila da je on ali ona vrste v. In potem je trgovin, ki besedilo v spremenljivo n. In zdaj bom morda želeli storiti nekaj kot sem storil tedni kot tednu eden od razreda. Če je n večji kot nič, potem bom izposoditi to sintakso smo pravkar videli, print def, ste izbrali pozitivno število, poševnica nazaj n. Else if n enaka enaka nič, sem dogaja, da gredo naprej in rekli, print def, ste pobrali nič poševnica nazaj n. Else, tukaj bi morala v primeru Seveda bo, print def, ste pobrali negativno število. In bomo lahko zagotovo izvajati logika to stvar v kup razlikuje načinov, vendar je točka tukaj je, da je skladenjsko, Komaj kaj je novega. To je samo znak za dolar in nova funkcija in brati črta. Ampak v bistvu, kaj je novega zdaj sem tolmačenje tega. Jaz sem ga mimo kot vhod v drug program. Torej, če želim teči to, če Nisem naredil nobene napake, Jaz grem teči PHP, od Pogoji 1 pika PHP, Enter Grem, da tip v številko 50, in kaj je domnevati, za zdaj deluje. Ker je logika je Enako stvari kot en teden. Vse je v redu, tako da je precej underwhelming, kajne? Mi lahko to storite v katerem koli število jezikov. Naredimo nekaj veliko bolj močna. Končajmo problem nastaviti pet. Tako da sem šel naprej in to storite. Bom ustvariti datoteko imenuje angleški dot PHP, in nagnjena, kot si lahko Izokrenuti dol veliko zapiskov, pojasnila bo pomagal samo ste, če ste dovoljeno izvajati težave nastaviti pet v PHP. Ampak bomo videli, kako se zdaj hitro smo lahko izvaja ta isti problem niz. Torej v slovarju dot PHP, bom domneva, da je že datoteka v svetu imenuje Speller. In res, sem to storil vnaprej, in ne bomo hodili po tej liniji po liniji, vendar če ste radoveden kasneje in res želim zaviti vaš um okoli Razlike med C in PHP, dobesedno primerjati te datoteke, Speller, od današnjega izvorne kode da bomo objavili kasneje danes, proti p niz pet Speller dot c, da vam dajo, in to je skoraj enako po vrsticah. Tukaj je nekaj več dolarskih znakov. Nekaj ​​funkcij so malo drugačna. Ampak to je lep način od nekako vidim, kako prevajate enega jezika v drugega. In to je skoraj identična vrstica za vrstico. Ampak jaz bom za domnevo, da je ta obstaja, in kaj bom naredil tukaj se poskusite razstrelili vaš moti ga reimplementing celota problema določi pet pot hitreje, kot ste delali doslej. Tako, na primer, bom najprej razglasi globalno spremenljivko imenovano velikost, in jo nastavite na nič. Zdaj pa, da to ni veliko prihrankov. Kvota ste izvajali Velikost precej enako, ali namig namig, bo nocoj ali jutri, samo z globalno spremenljivko, imenovano velikost in jo nastavitev enaka nič. To ni posebej neverjetno spojler. Torej, kaj so vaši podatki strukture izbira, tiste, ki so se potapljali v in preberite spec, kaj podatkovne strukture večina od vas so bili z uporabo? Zgoščene tabele ali poskusiti, morda nekatere njegove variante. Torej izvajanje hash tabelo vsaj, je nekako veliko vrstic kode, prav? In niso vsi od njih je lahko funkcionalen na tej točki v tednu, ampak to je v redu. Ker v PHP, če sem želijo razpršene tabele, storjeno. Prav? Torej te spremenljivke, ki sem jih Pravkar razglašena očitno imenuje znak za dolar miza, po vnosu poprej. Ampak res samo želim, na Konec dneva, niz. Vendar ni številčno indeksirajo matrika, ker je to kot dva tedna stvari, ko smo govorili o nizi. Hočem razpršene tabele. Toda hash tabela je res le konkreten način rekel, želite, asociativno paleto. Hočeš, da bi lahko sodelavec ključe z vrednostmi. Tipke z vrednostmi. Kaj je slovar, res? No, to je cel kup tipk. Besede, kot so jabolka, hruške in banane, in vse te angleških besed da vam roko. In vrednote, ki si učinkovito vstavite v vašem slovarju so bodisi res, ali odsotnost, napačen. Z drugimi besedami, ki jih vstavljate cel kup parov vrednosti ključev, jabolko, res, hruške, res, banana, res. Tako, da ko si pridobite ali pogled do teh podatkov v vašem hash tabele s svojo check funkcijo, ste bodisi dobili nazaj odgovor, ja, sem ga našel v mojem kompleks hash tabelo ali ne, to ni tam, tako da se vrnete false. Torej za to, vse kar rabim je podatki struktura, kot sem predlagal prej. Moram biti sposobni povezati besede kot, citiram konec citata, simbol, z vrednostjo, kot je, pravi. Torej je moj hash tabele. Naj jo dejansko uporabljate. Torej je nekaj funkcij Moram izvajati. Grem, da gredo naprej in grizejo off funkcijo imenovano velikosti. To traja nobenih argumentov. Nimam ukvarjati s beseda, nična v PHP. Jaz sem preprosto dogaja, da se vrnete velikosti. In kot prahi, PHP ima to minorly siten podrobnost, kjer je, če je nekaj po vsem svetu, boste morali povej funkcijo, v katerem jo uporabljate je, hej, to je globalna spremenljivka. Torej, manjše neumnosti, vendar vam morali to storiti vseeno. Torej, kaj je obremenitev? Jaz grem za izvajanje funkcija imenuje obremenitev ki je v imenu slovarju, tako kot v problem nastaviti pet. In preden sem nadaljevati, opazili, da nimam bil tipkanje povsem enake stvari. Kaj je očitno drugačna v PHP o kako se razglasi funkcijo primerjavi C? Ja. OBČINSTVO: [neslišno] SPEAKER 1: Ni tip donos. In res, da je temu tako, PHP kolikor je to ohlapno tipkal, je tudi malo površni v tem smislu. Vi ne določajo kot programer kaj ta funkcija vrne. Ti bi morali dejansko videti na kodo, da ugotovimo, da je ven. Ali brati komentarje ali dokumentacijo. Tako pluse in minuse za te vrste odločitev. Ampak jaz moram reči Ključna beseda, funkcija. In ko smo se naučili JavaScript v nekaj tednih bomo videli isto stvar še enkrat, vendar je ista ideja. Ime funkcije, njena trditev ali trditve ali pomanjkanje le-teh in zdaj Tukaj je izvajanje. Tako da bom za zmanjšanje nekaterih koncih samo biti dramatičen samo za trenutek. Ampak jaz grem, da gredo naprej in to povem. To je, kako sem lahko naložite datoteka v array. Obstaja funkcija v PHP pozval datoteke. Vam je ime datoteke roko. To vam roke nazaj niz, v notranjosti od katerih je vsaka vrstica iz spisa. Od nič, ena, gor do n minus 1 linij. To je to, kajne? Ni f branje. Ni f zaslužiti s. Ni odstotkov ov. Tukaj ni glavobolov. Ni feof. Vse te stvari, s katerimi ste bili rokoborba morda, s p nastavite štiri in pet, izgine. Torej sem prebral te vrstice v Moodle datoteko, in potem veš kaj? Če želim Ponovil nad temi besedami, Ne morem storiti, za vsako linije kot linije. Ne pozabite, da je bil to nekakšen pameten način ponavljanjem preko diod, indeks z indeksom, in na vsaki ponovitveni kliče trenutna vrstica, znak za dolar linijo. In prav tukaj bom šel in pravijo, miza, nosilec, linija, postane res. Z drugimi besedami, to je, kako sem vstavite v mojem hash tabelo v PHP. Pravim znak za dolar tabelo, ki je moj asociativno paleto, ki je bil prazni na vrstico kode up zgoraj. Nato sem indeks vanjo ne uporabljajo več, ampak dobesedno uporabo ključna beseda, ki mi je mar. Mogoče je jabolko ali hruška ali banana ali karkoli, toda posebej sem indeksiranje vanjo rad sem predlagal prej. Vzamem ime moje asociativni niz, potem pa sem quote citata uporabite v oglati oklepaji z vrvico, namesto dejanskega števila. In tako, da je to. Funkcija obremenitev je naredil. Ko se to zanka se ponovi, sem dal vse, kar je v hash tabelo. Zdaj majhen disclaimer, tam je Nekaj ​​stvari, ki mi jih je popraviti. In različico bom objavili na spletu bodo imeli vse nianse, vendar je večinoma le, da bo treba nekatere preverjanje napak in nekaj manjših poteg. Ampak to je res bistvo tega. Če sem zdaj želijo izvajati funkcija imenuje ček, ki pričakuje, da bo Beseda kot svoj argument, kako bi jaz šel o tem? No, jaz sem samo reči, če znotraj moji mizi, na lokaciji besedo, če je nastavljen. Torej, če obstaja is-- pravzaprav, veste kaj? Bom, da to storite v malo psevdokoda. Ampak ideja je ista. Če je to enak true, vrne true. V redu. Else-- lahko nekako videli, kje to je going-- vrne false. Končano. Preverjanje se opravi. Zelo lepo, kajne? In kaj je to res dobili ob? In tudi to, sem zmanjšal nekatere kotičke. Poglej različici spletu Za vse manjšimi razlikami. Ampak to je bistvo tega. Indeks v vaš asociativno paleto, alias Hash tabela, vidim, če je vrednost tam, če je to nastavljeno na true, in če je tako, return true. Torej smo whittled navzdol vse kompleksnosti. Tako nekako mislih piha, kajne? Sem se trudil, ne bo ga na koncu pa raztovoriti, ker v fact-- oh, veš kaj? Ja, dajmo končati s raztovoriti. Izkrcali v hash tabele morda videti kot funkcijo praznjenju, vrniti. OK, tako da je praznenja. Ker ni nič za raztovarjanje, kajne? Ni malloc. Nisem izrecno vprašajte operacijski sistem za karkoli. Pravkar sem začel uporabljati spremenljivk. In tako je tudi to manifestacija značilnosti višjih jezikih ravni. Torej še enkrat, večina tega izraza smo se ukvarjajo tukaj s C. Super nizki ravni. Si lahko ogledate pomnilnika računalnika. Lahko dotikajte se ničesar vam želite v računalniku RAM, za boljše ali slabše. Tu gor, gremo odreči to moč. Ampak moj bog, poglej, kako veliko manj kode sem napisal. V bistvu, če bi bil jaz ne govorim in govoril čez moje tipkanje, smo bili, bi naredil z ta primer pred petimi minutami. Torej, kaj je cena, ki se plača? No, pa si poglej. Oglejmo pogled. Grem, da gredo naprej in zagon CS50. Naj najprej iti v današnji primeri, ko Imam imenik tekste kot prej. Jaz grem teči rešitev, ki gre s težavo nastavite pet imenuje Speller, ki je v računu CS50 je. In bom, da ga vodijo na nekaj velik kot Svetega pisma kralja Jakoba, samo zato, da smo res dal kadrovske rešitve na preizkušnji. Zdaj včasih internet je malo počasneje, malo hitreje, Morda bo trajalo nekaj časa, da se premaknete. A je bilo skupno .56 sekundah za preverjanje črkovanja King James Sveto pismo z rešitvijo osebja. Torej, zelo dobro. Lep lahko veliko počasnejši, in to je popolnoma v redu. Ampak to je pravilna tukaj. Tako da je rešitev osebje. Če grem v in pospraviti PHP različico. In bom naredil malo kot pecilni kažejo stvar. Bomo vzeli kodo sem napisal prej, tako da je popolnoma pravilna. Ker je koda sem napisal, ne bo biti popolnoma pravilna šele zdaj. Ampak, če sem teči PHP verzije, kaj moram odreči danes? Je zame pet minut, da izvajati p nastavite pet, Trdim. Kakšno ceno sem plačal? Ja. OBČINSTVO: Speed. SPEAKER 1: Speed. Kaj misliš s tem? OBČINSTVO: To bo trajalo dlje. SPEAKER 1: V redu. Pa poglejmo. To bo trajalo dlje, ne pisati, ampak da bi sistem deloval. Ja. Torej, poskusimo to. Torej, tukaj bom, da gredo naprej in narediti PHP Speller, in ker je datoteka je imenuje Speller. Torej, jaz ne teče slovar, odpoklic, Tečem program, imenovan Speller. Grem, da prenese v isti Datoteka, King James peti. To je letijo. To lahko samo hitrost interneta, tako ne bere preveč v to. Ampak to ne čutijo več, zagotovo. 1.26 sekund. Zdaj pa, da je še vedno precej presneto hitro, kajne? In edini razlog, da je počutil kot več kot tremi ali štirimi ali petimi sekund, da je samo zato, ker internet je pa počasen. Čas računalnik preživel bil 1,26 sekund, versus mislim 0,56. Torej, več kot dvakrat počasi. Zdaj pa, da je še vedno precej darn hitro, vendar je manifestacija o, res, da natančne cene. Ker smo tolmačenje v kodo linijo linije, in da je program PHP bere moj koda zgoraj navzdol, od leve proti desni, mora storiti več razmišljanja. To je vrsta pretvorbo je v sebi z ustreznim strojem koda na letenje, tako rekoč, čeprav mehaniki so malce drugačni. Namesto samo hranjenje do Intel CPU surovin ničel in enic da razume izvorno. Torej absolutno, roke dol, smo plačali ceno. In koda napisana v jeziku kot so PHP kaže, da je počasnejši. Ampak moj bog. Torej, zdaj, ko sem črkovati ček moj Datoteka, sem preživela dodatno 0,7 ali tako sekundami vs 20 ur za izvajanje hitrejši črkovalnik, kajne? To je nekakšen kompromis. In če ste šele začenjajo p nastavite pet, morda ne bo 20 ur. Bi bilo veliko manj od tega. Ampak to je kompromis, zares. In če ste tekmovanje v teku kodo na res velik zbirk podatkov, ali celo starejše strojne opreme, tiste vrste razlik lahko vsekakor sešteti. Vsa vprašanja doslej? Ja. OBČINSTVO: [neslišno] SPEAKER 1: Žal mi je, lahko rečeš še enkrat? OBČINSTVO: [neslišno] SPEAKER 1: boš obupal čas. No, tako ja. Ste prihranek časa, ki ga ne da bi jo pripravijo, če je to tisto, kar si vprašal. In res, v CS50, večina programov, čeprav bi lahko trajalo nekaj časa pisati, oni so relativno kratke. Nekaj ​​deset, nekaj sto vrstic kode, in tako zbere precej hitro. Toda, ko začnete pisanje večje programe, kot če ste Microsoft ali ste Google in pisanje res veliki programi v C ali C ++, ali podobno zbirajo jeziki, lahko traja več sekund, ali celo minut ali dlje zbere milijone vrstic kode. In tudi tam, da Razlika se bo sešteti. In v resnici, ko smo Prehod danes, isti dan danes, da spletno programiranje uporabo PHP, ste tekoč, da ga samo toliko najti bolj prijetno za pisanje kode ko ne boste imeli, da se ti neumen koraki, kot so spremembe na vašem terminalu okno, tip make zdravo, re teči, osvežite okno. Samo toliko neumen mehanske koraki, ki samo priti v način delovanja zanimivo, zabavno delo. In res vržemo proč, s PHP. In bomo lahko interakcijo z njim hitreje. Ja. OBČINSTVO: [neslišno] SPEAKER 1: Seveda. Morem pojasniti, kaj je pomeni, ki jih je treba razlagati? Ko se zbere jezik kot C, gre navzdol kot smo rekli, da stroj Koda, ničel in enic. In Intel se odločili že pred leti, da nekateri vzorci ničel in enic predstavljajo seštevanje ali odštevanje, ali tiskanje ali druge osnovne operacije. V svetu interpretiranem jeziku kot so PHP, ali JavaScript ali Python, ali Ruby, ali grozde drugi, namesto da bi nekdo je napisal interpreter-- v tem primeru, to se imenuje tudi PHP, ki je enak ime za language--, ki v bistvu Ima veliko zanko na to, da se ponovi nad vse vrstic kode da sem ga hraniti kot vložek, kot je zdravo dot PHP ali angleški dot PHP. In potem si lahko zamislite njihova velika zanke, da ima veliko pogojev. In ti pogoji pravijo, če človek je napisal ključno besedo za, začeti početje njegov ali njen Koda znova in znova. Ali če ima človek napisal vrstico kode, če je le izvajanje svojih Naslednja vrstica pogojno. Torej, to je resnično všeč tolmačenje je v človeškem smislu, linijo s črto, in da je samo čas. To traja režijske stroške. In da je price-- dobra question-- bomo plačali. Torej, kaj je naredil še en demo da je malo bolj dramatična. Tam je, bi rekel, A Športni teren to na 90% verjetnost, da ni grozno, vendar boste presenečeni z 10% verjetnostjo. Torej, vsako leto se trudimo za to, pri čemer smo poskusite napisati program, ki gre skozi Problem nastavite nič, za katero ste predložile svoje telefonske številke ter Veliko drugih demografskih podatkov, in smo programsko vam poslali sporočilo. In potem telefon vsakogar začne piskati ali vibriranja, in to je neverjetno, saj dobro, poglej kaj računalniki lahko storite. To redko deluje pravilno zdi se, v veliki meri ker sem se ponavadi črni listi Gmail ali kakšno drugo storitev za dejansko poskuša, da to storijo na lestvici. Ampak smešna stvar je preveč, saj smo nimajo vsi danes tukaj, zabavno dejstvo, zadnjič, ko smo poskusili to pred dvema letoma, Mislim, da sem napisal program ki je sedel v zanko ponavljanjem nad vsemi učenci v razredu, in vsak od njih besedilna sporočila, in je rekel nekaj podobnega, zakaj nisi na predavanju? Ljubezen, CS50 bot. Nimaš pojma, koliko opravičeval in nekako boleče emails Sem prejel odgovor od n minus 100 ljudi, ki niso bili tukaj tisti dan. In še bolj smešen, bolj sramotno story-- Veš, kaj je dal tam. To je že na videu nekaj let nazaj. Torej boste kmalu me vidiš pisati za zanke, pri čemer to je zelo enostavno napisati napako v tem, da zanko, tako da prvič skozi zanko, si pošljete eno sporočilo. Drugič skozi zanko I bi moral poslal še eno sporočilo, in nato še eno besedilo sporočilo, in še ena. Vendar se izkaže, če naredite tipkarsko pri načrtovanju, včasih Lahko napišete programe, ki pošiljajo enega besedilno sporočilo, nato pa dva besedilna sporočila, nato tri besedilna sporočila vsakogar ki je že prejel sporočilo. In kot veste, delaš nekaj, plus nekaj, plus nekaj, plus nekaj, je velik O lota besedilnih sporočil ali n kvadrat, ali na 0,10 $ besedilno sporočilo, 20.000 $. K sreči sem udaril Control + C, pred tem se je zgodilo, vendar nisem dolžan vsaj eno vaših predhodnikov 20 $ za 200 nekaj čudno besedilna sporočila, ni šlo le za njegovo telefonom, vendar Prav tako je bilo všeč starejši flip telefon zato je želel izrinjena njegov spomin vsak drugi osebni besedilo sporočilo ga je dejansko prišel. Torej imamo en cilj danes, ne za to. Mogoče vklopite letalski način. V redu. Torej, kaj je šel v Program tukaj callled-- da bom poklical besedila pika PHP. In vnaprej, imam dve datoteki tukaj. Naredil sem datoteko za samo osebje, ki je dobil vse info na zaposlenega, vsa imena na spletni strani predmeta je. In potem za zdaj sem dal nekateri ponarejene številke 555-1212. Torej ti ne bi dejansko šel nikamor. Ampak obvestilo notranjost te datoteke CSV katero smo se pogovarjali o tem na kratko, preden v okviru datoteke IO. Kaj je datoteka CSV? Ločene z vejico spremenljivk. In to je nekako kot zelo lahek baze podatkov, če hočete. Tam je nekako nekako štiri stolpce v tej datoteki, in tam nazobčane, ampak vejice bistvu predstavljajo stolpce v spisu. V prvem stolpcu je TF ali ime CA. Drugi stolpec je njihov priimek. Tretji steber je njihova telefonska številka. In četrti stolpec očitno is-- Četrti stolpec je očitno, kaj? OK, tako da je njihov nosilec. Torej, Verizon, ali Sprint, ali kaj ne. In če sem misspoke prej, CSV. Vejico ločene vrednosti je CSV tukaj. Torej, kaj lahko naredim s tem? No to je samo velik besedilna datoteka, in to je vrsta dolga, kajne? Tako kot se to dogaja, da biti nekako nadležno. In se je izkazalo, čeprav je, da če sem želite poslati besedilno sporočilo, dajmo pravijo, Alex tukaj. Naj gredo v mojem brskalniku in izhod iz celozaslonskega načina samo zato, da sem lahko preklapljate naprej in nazaj. Izkazalo se je, da vidimo, če grem v tukaj in se prijavite v Gmail, vse pravice. Ne poglej tem delu. Pravkar sem dobil videti. seveda livestream lahko Še vedno vidim kaj delam. V redu. Torej, tukaj je samo Gmail z Račun John Harvard. Torej, če želim poslati besedilna sporočila, da Alex, Lahko seveda sestavite sporočilo. In se je izkazalo, in sem preizkušen z Alexom prej tukaj, tako da lahko dodate neko domeno ime za telefonske številke ljudi, ker obstaja v svetu Stvari imenovana SMS email prehode. Ki je fancy način rekel vse od nas, ki imajo mobilne telefone, imajo telefonske številke, seveda, Verjetno je za svojega operaterja, neka pripona, kot na Vtext.com za Verizon besedilnega sporočila dot com, da lahko dodate na vaš osebno telefonsko številko, in nato vi ali prijatelji, ali pa tvoji starši lahko vas besedilo na tistem naslovu. In Verizon ima strežnik, e-mail: Strežnik, da po prejemu tega sporočila, gleda na številski del in nato uporablja ne glede na posebno industrije čarovnijo so ga dejansko poslali čez Airwaves na vaš določeno celico telefon. Zdaj je to lepo, ker jaz ne Res veste, kako poslati besedilno sporočilo ali napisati kodo, še za moj mobilni telefon, in morda naredil točno to, za končni projekt, ampak za zdaj vse Imam je moj laptop tukaj. Torej, želim ponoviti nad to CSV Datoteka, linije, ki jih skladno s črto, po liniji, zgrabi vsako od telefonskih številk osebja, je, in njihov nosilec in programatically, združevanje, torej povezati telefon Številka z ustreznim imenom domene nato pa pošljite email. Tako, da je veliko korakov. In srečno početje, ki v C. To je nočna mora za razmere Če želite odpreti datoteko, da ga preberete linija, ki jo skladno z linijo, kot vas so videli, ali lahko kmalu videli s problemom nastavite pet, če ne Problem je določeno štiri, in nato dinamično združevanje dve strune skupaj, ker v C, vzeti dveh nizov in jih združiti, kaj ti je naredil minimalno morate storiti najverjetneje? Morate razglasi več pomnilnika, kajne? In vprašati, malloc, lahko imam več pomnilnika? Tako sem lahko dal polovico od tega tod polovica tega tukaj. To je tako veliko korakov. In v tej točki ste izgubili Zanimanje za neumno malo demo kjer si bo vsakogar telefon piska. Naredimo to vrsto PHP slog, s katerim smo se pravkar začeti uporabljati bolj te pomivalno korito. In ideje so v osnovi enaka, vendar mi ne bo treba skrbeti preveč toliko o tej nižji ravni. Torej, poglejmo, kako se bom morda iti o tem. In samo zato, da mi ni ponoviti preteklih napak, Napisal sem nekaj zapiskov za sebe tukaj. In kaj vidimo, če nam lahko hodim skozi nekaj osnovnih korakov, in nato zavoljo časov bomo morda zmanjšati nekatere kotičke na koncu. Grem, da gredo naprej in narediti odprto nosilec PHP za začetek te datoteke. In bom, da gredo naprej in to storite. Datoteka ročaj, kot boste kmalu videli, dejansko poziva funkcijo imenovano f odprta. In ne pozabite, to odpre datoteko. In citiram, konec citata, r pomeni kaj, še enkrat? Samo odpreti za branje. Zdaj v p niz za, si to naredil. In ročaj je lahko karkoli, fu, bar, bas, katerokoli ime spremenljivke. Vendar na splošno računalnik znanstvenik bi rekel odprto datoteko, vam daje ročko datoteke, nekaj, da imajo na tako rekoč. Jaz sem le, da bo naredil nekateri preverjanje napak. Torej, če je ročaj false, samo rad v C, bom naredil nekaj podobnega, ni mogel odpreti datoteke, poševnica nazaj n. In potem sem šele tekoč da gredo naprej in izhod. In se je izkazalo, PHP, Nisem znotraj funkcije. Ni glavna funkcija tukaj. Torej, jaz ne vrnejo, per se. I izhod. Ki je v bistvu ista stvar. In jaz sem izhodu z eno y verjetno. Eno samo pomeni napako neke vrste. To ni nič, tako da je prišlo do napake. Vse je v redu, tako da, če sem tukaj zdaj V mojem programu sem odprl datoteko. Grem, da gredo naprej in razglaša matrika se imenuje naslovi, in C bi jaz moral vedeti velikost matrike vnaprej, kajne? Ali bi morali to prijaviti je kazalec, in nato uporabite malloc. In potem vsakič, ko sem prebral skozi drugo vrstico v datoteki, Bom morali malloc več pomnilnika, malloc več pomnilnika. Da je bolečina v vratu. In na srečo, PHP in Ruby, in Python in JavaScript, ki jih se bo povečalo vaše nize za vas samodejno. Nič več malloc. Nič več upravljanje pomnilnika. Računalnik skrbi za to. Toda cena, ki jo plačate. To je malo počasneje. In za program, kot je ta ne bomo opazili. Bomo poslali 100 besedilnih sporočil. Na primer ne bo čutiti. IT zares začne šele na važno vašem jeziku izbire če vaši podatki ali vaši programi zares, zares precejšen, saj bo tako bolj z našo spletno stvari. Ampak za zdaj, kaj je korak naprej. Medtem ko se je izkazalo, da je funkcija v C se imenuje f dobili CSV. Datoteka dobili CSV, ki traja datoteko ročaj kot svoj argument, in nadaljuje potem, vrstico, ki jo vrstica z vrstico, ki se glasi v vrstico. Tako da samo bere črto besedila iz datoteke. Toda kaj je lepo o tej funkciji, ne samo podaj mi vrstico besedila. Videti je za tiste vejicami, in razčleni linijo. In razčleniti črto pomeni, da se razdeli je na določenih vrednotah v tem kontekstu. Z drugimi besedami, znak za dolar vrstica je spremenljivka, ki je dogaja, da mi kup indeksov. To se dogaja, da je Prvi stolpec v mojem CSV. To se dogaja, da je druga stolpec, to se bo tretji, in to se bo četrta. Ker odpoklica in Excel ne sodelujejo zadnjič, ko smo to naredili, ampak če sem prenesete osebje dot CSV. Ops, ne preimenovati. Če bi prenos piko osebja CSV, in poskusite odpiranje, Sem že registered-- oh I ni posodobiti Excel od zadnjega obiska. Videli boste, da je v piko osebja CSV, imam štiri stolpce. Torej, ko sem prebral v Prva vrstica za Abby tukaj, znak za dolar row 0 je Abby, znak za dolar vrstica je ena Lyons, znak za dolar vrstica dva je njena številka, in nato nosilec svojega telefona. Torej, to je vse. In to je lepo, ker sem ne bi bilo treba zdaj ugotoviti, kje dejansko so vse te vejicami. Tako da sem šel naprej in To storite tako, glede na to, da je definicija, Jaz bom rekel, da je njeno ime v vrstici nosilec nič, kot je obljubil. In bom grab-- in pravzaprav, veste kaj? Ne bom skrbeti njeno ime, v tem primeru. Grem, da je preprostejša. Bom naredil njena številka v vrstici nosilec dveh, mislim. In njen nosilec je bil kje? Vrstica tri, ena več. Torej, nič novega ni. To je samo nič indeksiranje v array. In zdaj, bom storiti naslednje. Če prevoznik enaka enaka AT & T-- Jaz sem samo dogaja, da imajo loop-- Želim ustvariti e-poštno sporočilo naslov, ki izgleda takole. To se dogaja, da je 617-555-1212 na, kaj je to, text.ATT.net, je tisto, kar želim storiti. Torej, kako naj to storim? Bom naredil naslednje. Njen naslov se bo njena številka, in zdaj, naj gredo naprej in to storite. To je nekaj funky sintaksa. Jaz bi naredil odstotkov e trik, vendar sem lahko dejansko samo to. Torej je to PHP stvar, vendar kaj menijo, kaj delam. Dolarjev podpisal naslov na levo, samo spremenljivka. Daj mi spremenljivko. Nimam določiti vrsto. PHP bo pogruntal. Na desni strani, kaj je podatkovni tip te vso stvar na desna stran pa? Izgleda niz, zato, ker je dvojna navaja na skrajni levi in ​​skrajni desni. Zdaj obstaja nekaj funky novo sintakso tukaj. Tam so zaviti oklepaji, in število znak za dolar. Vendar traja ugibati, kaj je, da skladnja verjetno povedal PHP storiti zame? Ja. Samo vstavite vrednost tam. Torej ni odstotkov y. Mi lahko uporabite za tiskanje F ali s print f ali kaj podobnega, vendar PHP in veliko višje jeziki ravni, boste videli, da si lahko storijo enako stvar funkcionalno, morda šest različnih načinov. In tako se začne, da postane stvar oblikovanja ali slog. Torej je to samo Grobni išče pot rekel, daj mi e-poštni naslov, vendar plug-številom v med temi zavitimi oklepaji. In zaviti oklepaji ne bo končajo v končnem naslovu. Sedaj lahko preskočite čez nekaj Te vrstice so zaradi časov. Torej, če prevoznik enaka enaka verHorizon-- Ops, Verizon-- želim nekaj narediti zelo podoben, pri čemer je naslov dobi, citiram, konec citata, število na text.ATT.net. In potem sem lahko naredil isto vrsto stvar za ostale prevoznike. Ampak bom naredil dot, dot, dot za zdaj. In zdaj pa si domnevati, da Želim dodati matriko, potiskanje. Želim dodati k Niz, ki se imenuje naslove. Ta naslov, to je, kako vas dodamo nekaj array v PHP. Vam ni treba storiti malloc. Nimate, da spremenite velikost array. Pravkar ste rekli matrika, potiskanje. Kaj želite push-- kaj matrično hočeš push nekaj na? Naslovi. Kaj želite nataknite naslove? Naslov. In v resnici, če vas hočeš biti pameten, nekateri skladenjska sladkor za to, tako rekoč ki samo pomeni, kako lahko to storite v lepši način, bi bilo, da to storijo. Tudi to ima za posledico narašča naslove matrika po velikosti ena, in potem Pasti, ki dodatno E-poštni naslov vanjo. Ja. OBČINSTVO: [neslišno] SPEAKER 1: slovnične napake na drugega if-- oh, prevoznika. To je ok. Prav tako ne bo všeč moj neuspeh pri izvajanje del tega programa kasneje. Ampak hvala za lov. Ena bolj bug. Hvala. Želimo, da je to Vtext.com. Da. V redu. Torej, če nam to pusti? Mi smo pisno kodo, da odprete datoteko. Imamo zanko Ponovil več vrstic v datoteki. Imamo kodo, ki dodaja, da moj matrika, eden naenkrat je pravilno oblikovano e-poštni naslov. Torej, vse to res ostane je, da pošljete email, da vsak od teh ljudi. Tako sem šel naprej in sam readied kot sledi. Kaj bom naredil tukaj is-- in dovolimo, iti naprej in preskočite do neke dejanske kode, ki je videti takole. Torej, tukaj je pre-pečen Različica sem napisal prej. In opazila sem končal izvajanje Sprint. Končal sem izvedbenih T-Mobile. Končal sem izvedbenih Virgin Mobile. In bom vnaprej opravičujemo. Obstaja nekaj prevoznikov, ki nekateri učenci v razredu imajo da mi ni motilo naštevanjem v if stanju tukaj. Torej ne bodo vsa besedila iti ven. Ampak poglejmo, kaj moram narediti. Zaprem datoteko, samo kot v p nastavite štiri. In to je nova skladnja. In bomo videli malo malo to sčasoma predvsem s p nastavite sedem in osem. Toda to je sintaksa za ustvarjanje posebna vrsta strukture. Izkazalo se je, da je knjižnica, ki prihaja z PHP, ki se imenuje PHP mailer. Njen namen v življenju je, da programsko pošljete e-pošto. To je koda nekdo zapisal, da je omogoča lažje za nas, da pošljete e-pošto, tako da ne bi bilo treba ohraniti gredo naprej in nazaj na Gmailu in prilepite v e-poštne naslove ljudi. Obstaja cel kup linij tukaj da je pošteno, sem nekako kopirajo in prilepili iz dokumentacije. In v resnici, če ste radoveden, sem pustil vse URL-jev dokumentacije v kodeksu, ki ga bomo objavili kasneje. In opazil, da je med stvari, ki jih delam je, sem povedal to knjižnico, uporabljati Gmail strežnik, kajne? SMTP smo se pogovarjali na kratko o tem, ko smo so bili na univerzi Yale o tem, da enostavno mail Prenos protokol. To je protokol, ki strežniki, ki se uporabljajo za pošiljanje e-pošte, in that's-- Gmail ima eno od teh. Vrata, to je število TCP port. To je v redu, če vas niso videli 587 prej. Samo vem, da je iz dokumentacije. Tukaj je moje uporabniško ime. Bom uporabite CF50 bot. In v trenutku, sem le, da bo tip v bot dejanskega geslom. In potem sem dol, opazili kaj ostane. Nastavim iz naslova se bot na CS50.net. Mislim, da žal ne bo posredovala besedilna sporočila, da 800 ljudi, pravi, pogrešam te, ljubezen CS50 bot, morda za tiste, ki niso mogli priti danes. In nato v vrstici 76, kaj naj storim? Ta vrsta izgleda kot C. Torej za i enak 0, n equals-- zdaj računajo, je nova. Izkazalo se je, da če hočeš priti število stvari v matriki, vam ni treba več zapomniti. Lahko samo vprašati Funkcija se imenuje Fortuna in to vam bo povedal, koliko Naslovi so v tem polju. In potem bom dodati naslov, e-pošte. In jaz to vem, od z dokumentacijo. Tam je funkcija dodatek naslov. In zdaj opazili tam je en kos sintakse. Videli smo že prej v C. Podobno kot v duhu. Si lahko zamislite znak za dolar mail kot spremenljivko, ki ga je. Ampak to je struct notranjosti ki niso le lastnosti, spremenljivke, če boste. Vendar se izkaže, da je v PHP, ki je objektno programiranje jezik, kot so Java, če je APC. Znak za dolar mail, če želite to-- ima tudi funkcije znotraj njega, ali metode. Torej, to se pravi, da Posebna PHP mailer knjižnica, če imam njihove spremenljivke, če želim poklicati funkcijo, prihaja s to knjižnico, za današnje namene, samo vem, da uporabite puščico zapis. Ni dot zapis. To je samo puščica. Ampak to ni kazalec. To je samo sposodil od sintakse C je. Torej pokličite dodajte naslov notranjosti Ta knjižnica je predmet ali spremenljiva. V redu. To je čaroben črta. To je, kako sem pošljite e-pošto. To je enako odpiranju Gmail, da ga vnesete ven in hitting poslati. Ampak to se dogaja, da namesto pošljite email na ta naslov, s tem telesu, od CS50 bot. In zdaj ključni linijo. Ta linija je bila odsotna v kot 2011 ko mislim, da sem nazadnje to poskušal. Ta linija je seveda počisti naslove. Torej je logično, če I ne počistite naslov Po vsaki ponovitvi se prvi po e-pošti ali besedilno sporočilo gre v Alice, Drugi gre Alice in Bob, tretji gre za Alice in Bob in Charlie, zato je zelo drago napako Naredil sem tisto leto. Torej, poglejmo. Ali obstajajo vprašanja preden smo vam poslali vse besedilo sporočilo z 10-odstotno verjetnostjo? Kakšno vprašanje? V redu. Naj grem v tukaj in sprememba geslo, da tisto, kar bi morali delati, bo verjetno dobil črni listi, ki jo Gmail. Torej, morda niso šli vsi ven, saj verjetno pa nam ni všeč, poslala 800 e-pošte V za zanke naenkrat. Ker to ni predvsem človeško vedenje. Oh, jaz grem, da spremenite eno drugo stvar. Na vrhu, bom sent-- spremenite datoteko študente dot CSV. In ne bom odprl, vendar je to identična datoteka CSV z ne 100 uslužbencev, pa 800 študentov, samo na Harvardu, ker Yale ima vdolbino oktober ta teden. In zdi se, kot nekakšen kreten stvar storiti, da besedilo, vse od njih, zakaj oni ne v razredu na počitnicah. To je ok. Samo Harvard študenti danes znotraj te datoteke. In zdaj se vrnimo na mojo terminalsko okno. Jaz sem nekako nervozen. OK, tako da zdaj bom šel v imenik, in PHP besedilo dot PHP. Kako približno en pogumen prostovoljec? Torej, ne želim, to na mene. OK, pridi gor. Kako ti je ime? MAYA: Maya. SPEAKER 1: Maya. Pridi gor, Maya. V redu. Poglejmo, če to deluje. Sem dal svoj e-poštni naslov v file-- svojo telefonsko številko v datoteki, tako da upam, da bom dobil enega, kot dobro. Me veseli. MAYA: Prav. SPEAKER 1: Torej, vse, kar morate storiti je, pritisnite tipko Enter, da pošljete 800 besedilna sporočila, če nisem zamočil. Lepo. Lahko traja nekaj časa, statistično, dokler ne pridemo do e-pošte address-- besedilno sporočilo, ki je v sobi prav zdaj. Oglejmo ostajal in videti. OBČINSTVO: [žvižga] SPEAKER 1: Oh, ja. OBČINSTVO: Oh, gotcha. SPEAKER 1: Za zank are-- to ni počasen, ker PHP. To je počasen, ker Gmail nas dušenjem in ne najemnin, pošljite nam več kot kot eno e-pošto na sekundo. Kaj? To je bilo težko stvar za mene, da preizkusiti domov samo z mano in mojim enega telefona, tako. Je to, upajmo, iz bot? Ja? Ne? Reci da. Ne? To je od prijatelja? Awkward. V REDU. Prepričan sem, da deluje, čeprav. Uh oh. So black-- oh, počakajte minuto. Oh, veš kaj? Trenutek prosim. Samo je Maya in I-- Mia, kajne? MAYA: Maya. SPEAKER 1: Maya, se dogaja, da vem, kaj sem naredil narobe tukaj. Oh, počakaj malo. Mislim, da sem poslal 100 besedilna sporočila na 555-1212. Ostani v pripravljenosti. Ne morem zmagati katerokoli leto. V REDU. Maya? Popraviti, da se v postprodukcije. Prekleto! Po iz naslova. OK, stati ob strani. Žal mi je. To je boleče vsako leto. OK, samo trenutek. To je dobro. Jaz sem namesto tega bo, da to storijo. Print naslov. OK, stati ob strani. Tiskanje naslove, konzola i. Ja, to mi je všeč. Dollar sign-- OK bom razložiti, kaj sem delaš v trenutku, ko sem to teči. Vsako leto. OK, gremo. Imam just-- in ne želim pokazati vsakogar telefonsko številko, vendar Maya lahko potrdim z pokimal glave, da vidi vsakdo je Telefonska številka v razredu da bom skopirala v program, imenovan Gmail. In če v Gmailu, kaj želimo povedati? Pogrešam te. Love--, da to ni od mene. Nisem še udaril poslati še. Torej, gremo naprej in narediti to, če bom lahko povečate. V REDU. Tako da sem s pomočjo programa, imenovanega Gmail zdaj. Če Maya, ki jo želite kliknite gumb Pošlji bomo simulacijo, kaj to koda bi moral narediti. Kaj? [Piska] OBČINSTVO: Ja. SPEAKER 1: Ja? Salvation? OBČINSTVO: Ja. SPEAKER 1: Miss vas. In bom, da pošlje ostalo. Sem poslal ven polovico, ker si nisem mislil, Gmail bi pustil tiste iti skozi. Torej, samo ne pozabite, danes je dan, da ste se naučili, da sem lahko uporabljate Gmail. To je bilo grozljivo. Velik aplavz za Maya. Hvala. Vse je v redu, tako. kaj [Piska] Imamo nekaj piska, ja? V redu. Zdaj pa grem, da bi dobili 700 res nesrečni emails nazaj od sošolcev. Tako vsaj bomo videli če je bilo vredno. Torej, kaj je šlo narobe? Bom ugotoviti, kaj je šlo Napačna po dejstvu, ampak samo poglej, kako enostavno je bilo za to, da v PHP. Torej, kaj lahko dejansko storiti sedaj, imamo to izraznost PHP. To was--, da je bilo grozno. V redu. Tako, da je tisto, kar naj bi šla ven. To je bilo me testiranje danes zjutraj na mojem telefon, dejanska screenshot mojega telefona. Ampak zdaj pa je razmisliti, zakaj smo dejansko uvedbo vse te stvari na prvem mestu. Torej cilj je, da ne bo pisati te programe, ki so zapisani v ukazni vrstici, kajne? Zato sem napisal preprost Pozdravljeni program sem napisal malo program, ki počne Pogojniki, in se uporablja za branje linije in tako naprej. In v teoriji, sem napisal program, ki je poslala 800 besedilna sporočila, dati ali vzeti 800. In ta program je bil vse še vedno teče v ukazni vrstici. In to je seveda Ne web, kajne? Cilj je zdaj, da začnete uporabljati kar trdim je lažje za uporabo jezik, si trditi bolj zmogljiv jezik v smislu od funkcij, ki pridi z njim, da začnete pisanje kode, ki ustvarja spletne strani. Torej zadnji čas in prejšnji teden, smo se pogovarjali o HTTP in HTML. In kaj je lepo o HTML je, da je samo čista besedilo. In besedilo je gotovo nekaj, kar si lahko tiskanje, ki ga dobesedno kliče tiskanja funkcija f, ali funkcija tiskanja. In res, da je tisto, kar je PHP zdaj dogaja, da nam omogočajo, da storiti. Torej med primeri smo imajo v današnjem izvorno kodo, poleg nekaterih kode da sem dal tja gor pred nekaj trenutki, imamo programe, kot so to na primer. Froshims ali Freshman Notranji Sports, je bil pravzaprav ena od prvih extracurriculars Sem se ukvarjajo z leti. In moj cimer in jaz, z nekateri drugi otroci na kampusu, se uporablja za zagon programa froshims. Dobivam moje besedilnih sporočil danes. Zdaj zato, nazaj v dan, tako da je ta je bilo 1.996 ali tako, da je bil internet, vendar ni bilo process-- tam ni bila spletna stran za froshims. In tako, če si hotel, da se prijavite za nogomet ali odbojko ali karkoli, bi izpolnite ta stvar imenovani kos papirja, in bi se sprehodite po Harvardu dvorišče, in vi bi ga potisnite v poštnem režo za Proctor, ki je bil v Wigglesworth, eden od domovih. In to so ti registrirani. In on ali ona bi potem sestavite e-pošto na vas ročno, tako kot I pravkar storil tukaj z Maya, in potem bi mogoče potrditi kot da je bila registrirana. Torej, to je kot nizko visi sadje, tako rekoč. To je nekako neumno, da smo bili z uporabo papirja za to. Želel sem, da bi bili sposobni samo iti na spletni strani, ali imajo novincev gredo na Spletna stran, prijavite se za šport, in samo avtomatizirati veliko te stvari s tem da njihova imena in e-pošto in tako naprej v bazo podatkov. In v resnici, zelo prva različica na spletni strani, s pomočjo super grdo HTML, morda pogledal kaj takega. Bilo je pravzaprav ironično, bolj neprijetno videti kot ta zadnji potem. Ampak sem uporabil programski jezik. Ne PHP, temveč se imenuje Perl, ki je starejši jezik, ampak zelo podobno v duhu. In sem popolnoma je učil sam. In to mi je vzel nekaj časa, da to ugotovimo, sprašuje veliko vprašanj prijateljev. Toda ideje tam bili povsem enako. Ker kaj je PHP res zasnovan za ni ukazni vrstici stvari smo samo igral s, ampak za programiranje web. To je res vezana v svoji funkciji nastavljena na spletu, kot sledi. To je froshims. In če sem hotel Registrirajte se v tej obliki, to je precej grda, Vsekakor, ampak mi gremo naprej in je manj udoben študent, in glede na šport za Matthews, kliknite register. Kaj hočem biti sposoben narediti, je predložiti podatke iz obrazca, ne Googlovim strežnikom, kot sva zadnjič, povsem varanje z uporabo svojih backend sem želijo izvajati svoj backend kodo. Kar pomeni, da napišete PHP Koda, ki živi na URL da se podatki obrazcev je mogoče predložiti. In potem kodo, napisana v PHP na strežniku, Nato lahko odzove na ta vnos uporabnika. Tako kot njegovo ali njeno ime, ali raven udobja, ali domu, nato pa naredite nekaj z njo. V tem primeru sem neumno ga natisne kot besedilo, ki sploh ni tako lepa. Ampak ti bi zagotovo predstavljate, če veste, HTML, in kmalu boste vedeli, kako ustvariti HTML z možnostjo tiskanja F in tisk, in podobne funkcije, lahko zagotovo ustvarjajo lepši spletno stran, ki pravi, hej David, sedaj ste registrirani. Ste manj udoben študent iz Matthews, kajne? Saj lahko uporabiš cel kup% SES, ali zaviti oklepaji in znak za dolar Zapis sem pred nekaj trenutki, da ustvarjajo besedila, ki je bolj prijazen do uporabnika kot to. Torej, dajmo si oglejte na tej eni datoteki. Froshim nič dot PHP izgleda takole. Ko sem osvežite CS50 IDE, froshim nič videti takole. To je froshim nič pika PHP. In kaj opaziš te datoteke? OBČINSTVO: [neslišno] SPEAKER 1: Žal mi je, malo glasneje? OBČINSTVO: [neslišno] To je vse v HTML. In dejansko je, ker kaj je zanimivo PHP je, da je bilo načrtovano da je, za boljše ali še huje, pomešana s HTML kodo. In v resnici, čeprav je to Datoteka, froshim nič dot PHP, ima PHP komentar na vrhu od tega, da je vse samo HTML. Ampak nasprotno, če sem odprla, dajmo recimo, registrirati nič dot PHP, ki ima samo velik komentar na vrhu. Tudi to izgleda skoraj v celoti kot so HTML, razen za kaj? Line, kaj, 21 izgleda malo čudno. Ampak opazila sem vstopu PHP način z odprto nosilcem Vprašanje znamke PHP. Potem imam nekaj stvari. In potem na koncu te črte Skoraj sem imel, vprašaj PHP. In to je tisto, kar mislim s pomešale. Lahko pišete HTML, ki ste jo pravkar želijo strežnik izpljunite. Ampak, če hočeš narediti nekaj dinamična partway po strani, kot vstavite moje ime ali domu ali raven udobja, Jaz lahko uporabite funkcijo kot tiskanja r, ki je tiskanje rekurzivna, kar samo pomeni, natisnete to spremenljivko, jo formatiranje kakorkoli želite. To je res ni za človekove namene, to je samo za odpravljanje napak ali diagnostične namene. Torej, to je, kako sem to naredil. Če bi namesto tega iti froshims dva pika PHP, opazili, da je tožba tega obrazca ni registriran nič dot PHP kot old-- prejšnja dejansko bilo. Ampak to je registrirana dva dot PHP. Torej, si oglejmo, kako je ta obnaša malo drugače. Če grem v različici dva. Če je tukaj, če se registriram kot Davidu manj udobna, iz domu v Mathews, registrirati. Torej, ta čas pa je dejal, si so registrirani, ni res. Poglejmo, kaj sem naredil tukaj. Če gledam na registru dve dot PHP, to je nekaj več PHP kodo. To je malo čistejši, čeprav je to Še vedno ovije malo dolgo na tej progi. Opazili tukaj. Tiskam iz moje HTML tag, moja glava tag, moj naslov tag, glava, telo. In potem sem začel reči Stvari, kot so vstop PHP način. In tako to oznako, odprt oklepaj PHP-- vprašaj PHP pravi, hej, strežnik, execute-- razlagajo naslednje stvari, kot so PHP dokler ne boste videli konec oznako. In čeprav morda ne veste, katero koli drugi PHP, kot ste videli doslej, lahko nekako prebrati je precej intuitivno. Če ime je prazna, ali pa udobje je prazna ali domu je prazna, kaj naj storim? Kaj naj rečem za uporabnika? Morate navesti svoje ime, udobje, in domu, in tako naprej. Else, sem rekel, da so registrirana, tudi ni res. In sem rekel, ni res saj ni baza podatkov. Jaz ne delam ničesar s podatki. Jaz sem samo metanje stran za predstavitvene namene. Sedaj sem nekako skimped preko linije 22. Obstaja več sintakso tam, ampak znak za dolar podčrtaj objava je nekako zanimivo. In to je tisto, kar je lepo o PHP. V PHP, imate kar imenujemo nekaj super globalne spremenljivke. So nekako še bolj pomembnejši od globalnih spremenljivk. In ti, vsi kapitalizirana kot tako, prihajajo z PHP. Torej, če imate strežnik, ki ima vgrajen spletni strežnik, kot so Apache, in namestite jezik podpora za PHP, kar naenkrat ste Lahko začnete z uporabo teh super globalnih spremenljivk v kodi. In kaj je lepo o PHP je, da če si pravkar napisati datoteko, ki se konča v dot PHP, ga postaviti na spletnem strežniku, nato pa predloži obrazec za njo prek tega pasična in obliko oznak, da ukrep atribut v form tag, PHP in splet popolnoma številke izvedeti, kako, da zgrabite vseh tistih ključnih parov vrednosti ven URL-ja, kot so vprašanje oznaka q enak mačke, pa bo ugotoviti, kako q in mačke. Če pošljete fotografijo ali uporabniško ime, ali geslo za, kot so Facebook, PHP bo razbrati za vas kjer vse te podatke, je. In to samo roko Ste asociativno paleto imenuje znak za dolar podčrtaj post ali znak za dolar podčrtaj dobili, glede na to, ali ste uporabo get ali objaviti stališča. In bo to samo ti roko super globalna spremenljivka, tako da če hočeš priti na ime da je uporabnik predložil prek tega spleta obliko, dobesedno samo reči ime od super globalne spremenljivke, citiram, konec citata, ime. In citiram, konec citata udobje, in citiram, konec citata domu. In bomo mogli storiti to in še veliko več s PHP. In čeprav je bilo to vrtinec pogled na to, bomo potopite v veliko bolj naslednji teden. Bomo uvesti baze podatkov tako da ste dejansko gre za začetek izvajanja svoj e-trgovine based-- kot so spletne strani v času le za en teden. Tako vam bomo videli naslednjič, in upam, da si dobil besedilnih sporočil. Adijo. [Predvaja glasba] [ODPIRANJE VRAT] SPEAKER 2: Hej. SPEAKER 3: Kaj se dogaja? SPEAKER 2: Kaj počneš? SPEAKER 3: Delo na problem nizu. SPEAKER 2: Lepo. Petka. [PETKA] Kaj are-- uh, kaj delaš tukaj? SPEAKER 3: Samo družim. Pravkar prišel iz telovadnice. Ne morem pomagati, ampak opazili, ko smo visoko fived, da imate precej grobe roke. Ali greš v telovadnico? SPEAKER 2: No. No. SPEAKER 3: Stari, izgledaš precej velik. Kar je slabo, ker vsi vedo, 8-ball je velik človek na kampusu. Petka. SPEAKER 2: Uh, ne. Ne, mislim, da sem dober. Mislim, da sem dober.