[Powered by Google Translate] [Tjedan 8]
[David J Malan] [Sveučilište Harvard]
[Ovo je CS50.] [CS50.TV]
>> Dobrodošao natrag.
Ovo je CS50, a to je početak tjedna osam.
Par prilika ovaj tjedan,
među njima ovaj razgovor ovdje, u kojima su neki hrana će biti poslužen.
Za više detalja pogledajte slajdove koji su online.
I još jedan događaj ovaj tjedan vlastitim Thomas Carriero.
On je jedan od CS50 je bivši šef nastavnih bližnjih koji je sada na Dropbox,
i on je čovjek koji nas zakačen sa znate što,
pa ako želite više od toga glave do njihovog razgovora popodne za ispuštanje i više.
CS50 ručak je ovaj petak.
Da li nam se pridružiti, ako ste u mogućnosti, 01:15, kao i obično, na vatre i leda.
>> A sada smo zaroniti u nešto što se zove Seminari.
Naši CS50 Seminari, podsjetimo, da su ovi fakultativne nastave na čelu nastavnih bližnjima
i naravno pomoćnici i prijatelji naravno,
ljudi iz skupine na kampusu zove ABCD, što je skupina
technophiles na kampusu, kao i grupa pod nazivom HCS,
Društvo Harvarda računala, studenti koji su na sličan su zainteresirani za računalstvo.
Ovogodišnji popis igrača seminara uključuje seminare o Android i iOS i JavaScript
i PHP, Unix, Vim, i više, tako da shvate da su ovi seminari dolaze.
Ako želite RSVP za bilo koju od njih glavu taj URL tamo.
Potom ćemo objaviti na stazi stranicama vremena i mjesta nakon što su dovršeni.
Ali znam da je pet godina u vrijednosti od prethodnih seminara dostupni online,
od kojih su mnogi još uvijek jako puno struje u smislu tehnologije možda ćete
želite igrati s za svoje konačne projekte, pa krenuti tamo nekih dostupnih videa istih.
>> CSS, one od vas koji su upoznati s CSS, već
što je to u malom?
Što je CSS?
To je kaskadno Style Sheets, i što to znači?
Što to učiniti za nas, CSS?
U redu, idemo zagrijati s lakšim jedan, HTML, Hypertext Markup Language.
Što to učiniti za nas?
Svatko uopće?
To je uzimajući stvarno neugodno pitati ta pitanja.
HTML, hipertekstualni označni jezik.
Da? Ne?
[Nečujno učenik odgovor]
Dobro, dobro, to nam omogućuje označavanje teksta za prikaz u web pregledniku.
To nije programski jezik.
To je doista Označni jezik, što znači da upućuje preglednik kako biste prikazali
informacije, pa najjednostavniji inkarnacija to kao što smo vidjeli
je nešto super jednostavan kao boldfacing, otvorena zagrada b zatvorena zagrada kaže
napraviti ovaj tekst podebljano, a to je zapravo samo jedan od mnogih načina
u kojima možemo učiniti da, i doista, ovih dana bolji pristup
da stylizing svoju web stranicu, čineći stvari podebljano i kurziv
i usmjeren i opravdana i slično, ne vrši se putem HTML tagova sami
nego s tehnikom se zove CSS, Cascading Style Sheets.
To je jezik za sebe.
To također nije programski jezik, ali-
svi, ovo je Dan, koji drži da nam se pridružite danas.
Neke tehničke poteškoće. Nije problem.
>> CSS nam omogućuje da stilizovati stranicu
postavljanjem ono što se naziva svojstva, pa neka je pogledati ovo
putem nekih osnovnih primjera.
Pusti me u aparat danas.
Imam izvorni osam ponedjeljak imenik ovdje,
i ja idem u direktorij zvan CSS gdje imamo hrpu
datoteka čekaju nas ovdje,
iu ovoj mapi imamo, na primjer, search0.html od zadnji put.
Sada, prisjetiti s search0 smo ostavili na ovoj bilješci
po vrsta provedbi Google ili stvarno samo prednji kraj za njega tjedan dana ili tako prije,
i primijetiti da smo imali neke nove oznake postoji.
Imali smo h1 za veliki, podebljano tarifni broj,
oblik, što nam je omogućilo da zapravo imaju HTML obrazac za unos korisnika.
Akcija, što je smisao djelovanja atribut
na HTML obrasca oznaku?
Što je značenje ovog, akcije?
Samo ću to učiniti danas.
Akcija je destinacija gdje Obrazac će biti podnesen.
Činjenica da je taj kaže action = "google.com / search"
znači da kada korisnik klikne submit gumb ili ekvivalent
bilo kojem obliku polja su ispuniti će biti poslan na naš poslužitelj ne
ili naš aparat nego na taj određeni URL na Googleu.
A način da će koristiti se zove dobiti,
i dobiti, za sada, samo je tehnika za donošenje informacije zajedno na web server
putem URL-a, tako da ćemo se brzo osvrnuti na kako se to radi.
>> Primijetit ćete da postoji ulaz čije ime je q
čiji tip je tekst, a zatim drugi ulaz tipa podnijeti
čija je vrijednost CS50 Traži, i doista, ako ćemo otvoriti ovu datoteku ovdje,
search0.html, to je super jednostavan oblik,
i ako sam tražiti nešto poput informatike
a zatim pritisnite enter ili kliknite na CS50 Traži
primijetiti da je ono što se događa izvan uzimajući u Googleu
Ja konkretno sam završio na ovom URL na vrhu,
google.com / search? q = računalo + znanost,
i informatika je očito ono što sam upisali u.
+ Samo znači da je mjesto gdje razmak bio,
i to je učinjeno od strane browsera samo da bi bili sigurni da ne postoji
zbunjenost i bijeli prostor u stvarni URL.
I onda q, naravno, je parametar ime.
Nismo vidjeli kako smo, programer, zapravo može pristupiti q gostiju.
Možemo pretpostaviti da Google zna što učiniti s ovim ovdje,
ali mi ćemo doći u dogledno vrijeme danas.
>> No, dopustite mi pogledati umjesto na search1.html,
koji izgleda malo drugačije, jer sam odlučila da je ovaj oblik ovdje je bio samo malo šepav.
Mislim, to je u gornjem lijevom kutu.
Tu je stvarno nema estetika na njega, i tako želim stilizovati to
malo više poput Googlea, čija je početna, opoziv,
iako možda ne posjetiti ga da često izgleda ovako danas na Noć vještica.
Ako smo umjesto otvoriti verziju jedne od ove datoteke, traži 1.html, ja sam ga centriran.
Ipak prilično ružna, ali barem sada sam počeo kontrolirati estetiku ovoj stranici,
ne samo označavanje istih.
Idemo pogledati potrazi 1, a tu je zapravo samo jedna razlika ovdje,
što bi moglo iskočiti na vas, ili možda nije,
ali ono što je jedan redak ili isječak razlike?
>> Tu je ovaj stil atribut, pa ispada da je u HTML
većina elementi, većina oznake mogu imati atribut style na njih,
i unutar tog stila atribut je citirao niz,
i da citira niz je CSS.
Možete staviti kaskadni list stila u tu
ga određuje kao nekretnina ime
slijedi dvotočka slijedi vrijednosti.
To je vrsta nesretnog dizajna odluke prije nekoliko godina
da CSS je jezik za sebe,
ali sintaktički to je vrlo različit od HTML-a.
U ovom slučaju, vidimo da je unutrašnjost moje web stranice, koji je napisan u HTML-u,
Imam CSS unutar tih citati, i konvencija za CSS
je da imate ono što se zove svojstvo slijedi, opet, debelog crijeva,
slijede vrijednosti te imovine, tako da ne postoji znak jednakosti.
Nema dodatnih citati.
To je upravo to debelo odvojeni ključ vrijednost par,
i tekst linija radi upravo ono što kaže.
To poravnava tekst u tijelo stranice, što je stvarno hrabrosti u stranici,
u sredini.
>> Ok, krajnji rezultat onda, da bude jasno, je to.
Nije sve to seksi, ali barem je usmjeren i malo više kao pravi Googlea.
No, što ako sam umjesto otvoriti verziju 2 ovog
i istaknuti ovdje dolje novu oznaku uopce?
Sada u glavi mojoj stranici, koja je ranije imala samo što oznaka
u svim prethodnim primjerima?
To je upravo to, naslov.
Trenutak prije glava tag izgledao ovako.
Sada, umjesto da ima stil tag unutar njega,
i to previše, ispričavamo se, sintaktički izgleda jako razlikuje od HTML-a,
ali kada se naviknete na njega, pri čemu unutar stila oznake
Ja sada mogu uzeti ono što je trenutak prije
atribut, stil atribut, a ja mogu staviti ga na samom vrhu moje stranice.
>> Zašto?
Pa, to je korak prema čišćenje stvari, baš kao u pisanom obliku C koda
ponekad bi napisati funkcije za faktor od zajedničkog funkcionalnost.
To je samo malo čišći početi faktoring iz stvari poput estetike
na jednom središnjem mjestu nego da ga svi razasuti diljem HTML.
To također čini ono što kaže, iako postoji malo novom sintakse.
Ovo ovdje je selektor, a tijelo samo znači odaberite tijela elementa
i primijeniti sljedeća svojstva za njega.
Pa, vlasništvo je isti.
Za dobru mjeru sam dodao zarez na kraju,
koja teži da bude konvencija, a ja sam zamotan cijelu ovu nekretninu
u vitičastim zagradama, jer sam zapravo mogao imati različite stvari ovdje.
Ja sam zapravo mogao reći nešto poput boje: plava;
>> Sada je to previše ne će biti korak prema bilo sve što je ljepše,
ali ako ja sada vratiti na verziju 2 sam barem sada napravili tijelo moje
stranice je tekst sve plavo.
Gumb ostaje isti, jer to je ulaz. To nije čista tekst.
Ali sve ostalo što je tekst, kao CS50 Pretraga do vrha, u stvari je plavo.
Opet, sve smo učinili sada je ukloniti iz tijela tag, obavijest,
stil atribut, a mi smo factored ga ovdje.
To nije veliki napredak, ali ako uzmemo ovaj jedan korak dalje
primijetiti ono što možemo učiniti u ovom trećem verziji ovdje.
>> U search3.html web stranica je gotovo identičan
osim za ono što novi tag sada?
Link, tako da je ovo jedna nije vrlo podesno zove
jer niste povezivanju u smislu kliknuti hiperveze.
Umjesto toga, ti si vrsta radi ekvivalent # uključiti u C
pri čemu vezu oznaka s href atribut
i rel atribut kaže ići naprijed
i kopirati zalijepiti sadržaj datoteke zove search3.css ovdje, u suštini.
To ne sasvim učiniti, ali da je duh njega.
Ona kaže ići otvoreno tu datoteku, search3.css,
i tretirati ga kao da je korisnik imao ga upisali ovdje u glavu stranici
baš kao što sam učinio u prethodnom primjeru.
Search3.css, u međuvremenu, je prilično jednostavna.
To je zapravo samo sadrži točno ono što je trenutak prije
u stilu tag, ali ja sam factored ga ovdje vlastitoj datoteci.
>> Iako nismo proveli puno vremena na sve u HTML ili web programiranje
Jednostavno intuitivno što je motivacija, možda, za faktoring iz
ovaj mali isječak čak CSS u vlastitu datoteku
i onda ga uključujući i ovaj link oznakom ovdje?
[Nečujno učenik odgovor]
Ok, to je lakše čitati u smislu da imate svoj CSS u CSS datoteci.
Imate HTML u HTML datoteke, tako da je više čitati u tom smislu.
Što drugo može biti uvjerljiv? Aha.
[Nečujno učenik odgovor]
Da, tako da možete uključiti ga mnogo puta, tako da sada radimo to
Osnovni primjeri s pojedinim datotekama, ali pretpostavljam da ste zapravo stvaranje
pravi web poput tebe će za pset 7 ili Vaš konačni projekt možda,
i želite imati više web-stranica, kao što je sigurno čest na
Stvarni World Wide Web, i da će to biti vrsta hrom
morati kopirati i zalijepiti istu plavu boju
i isti tekst poravnat centar u svakoj od tih stranica.
Umjesto čini više smisla da faktor van, baš kao što smo učinili u C
s h. datoteku, stavi ga u jednom središnjem mjestu,
u ovom slučaju search3.css, a zatim dopustiti bilo koju datoteku
u vaše web stranice zapravo su tu datoteku putem ove oznake ovdje u liniji 16.
Kao što je obično slučaj, počeli smo s verzijom 0, koja vrsta djela
ali nije nužno najbolji, i sa svakim korakom,
traži 1, traži 2, a sada traži tri smo poduzeti ove korake za bebe
prema nacrtima koji su malo čišći i više pripremni
za složenije stranice koje smo mogli učiniti niz cestu.
>> Dopustite mi otvoriti jedan zadnji primjer ovdje samo pokazati
još stilizirana stranica, ali prvo pogledajmo HTML.
Ovo je search4.html, a primijetiti da strukturalno to je gotovo isto
osim za uvođenje novog krpa, Div.
Div je oznaka koja uvodi podjelu na stranici.
Možete misliti o tome kao nevidljivi pravokutnik.
To vrsta stvara pojasa području u web stranicu
da možete stilizovati sve odjednom.
Ono što sam učinio ovdje je kako slijedi.
Unutar moje tijelo tag, koji je bio tamo svi zajedno,
Ja govorim stvoriti podjelu stranici ovdje preko linije 45 do 47,
i da u suštini znači daj mi nevidljivi pravokutnik duž vrhu stranice.
Tada mi dati drugi pravokutnik, iako nevidljiv, ispod toga,
i to prepoznati po imenu sadržaja, a zatim na kraju,
daj mi trećina podjelu stranici na dnu
zove ID.
Vidjet ćemo zašto sam to učinio u samo jednom trenutku,
ali konceptualno imam header podjelu.
Imam sadržaja podjelu, a ja imam podnožja podjelu stranici
iako su samo u oznake.
Korisnik neće vidjeti tri pravokutnika,
ali vrsta strukturno tamo iza kulisa
oni su zapravo prisutne.
>> Sada, tko mari? Zašto je zapravo to?
Sve ostalo na stranici je isti kao što smo vidjeli prije.
Evo moj oblik. Evo moj ulaz, moj ulaz, prijelom retka i tako dalje.
Evo slika, ipak, pa ćemo vidjeti gdje je to došao iz u samo trenutak.
Evo podnožja, što je novo, samo zato što sam htio uvesti
neki više sadržaja ovdje.
Ako smo pomicali gore primijetiti da ID ovom div je zaglavlje.
ID ovoga div je sadržaj, a ID ovaj jedan je podnožje.
I kao što ime sugerira, kada imate ID atribut
u HTML, po definiciji to jedinstveno moraju identificirati
jedan je od elemenata, jedan od oznake u svoju stranicu.
Teret je potpuno na vama je da zapamtite da imate zaglavlja ID već.
Imate podnožje. Imate sadržaja ID već.
Računalo se neće shvatiti što dostupan ID je za vas,
tako da slučajno mogao dati dvije Tags ID od zaglavlja,
i samo da će biti u redu.
>> Morate imati na umu ono što ste stvorili,
ali nakon što ste učinili da obavijesti što možemo učiniti ovdje.
Ja sada mogu navesti u mom stilu oznaku na vrhu
ili ravnopravno u mojoj CSS datoteku, ako sam još uvijek koriste tu verziju,
Ja mogu reći # zaglavlje, i što to znači je da bez obzira na oznaku
u ovoj stranici ima ID zaglavlju
i #, samo ljudske konvencije, predstavlja ID.
Oštar znak ili funta znak predstavlja ID.
Zaglavlje je ime koje sam dao.
To znači primijeniti ovaj CSS imovine
kako god oznaka na ovoj stranici nosi ID zaglavlju.
Sve posao ovdje.
Nanesite ovu imovinu, što se događa da se isti, bilo elementa
čiji ID je sadržaj, a zatim ovamo
Primijetit sam malo opremljeniji s podnožja.
Bilo je element čiji ID je podnožje, od kojih ne može biti samo jedan, po definiciji,
ići naprijed i učiniti njegova veličina slova manja,
njegova težina fonta podebljano, njegova marža 20 piksela.
>> Što to znači?
To je samo marže na vrhu, na dnu, i lijeve i desne.
To znači daj mi 20-pixel nevidljivu granicu oko njega
samo gurnuti sve drugo od njega malo, kao što ste mogli učiniti u Wordu,
Microsoft Word ili stranica ili slično.
I onda tekst poravnati središte.
Hajdemo vidjeti krajnji rezultat, a onda ćemo se vratiti do jednog preostalog isječak CSS tamo.
Ova je verzija 4, naša posljednja za pretraživanje primjera, i to je puno, puno više seksi.
Sada, u pravednosti, samo sam Googled "google generator fonta logo."
I to mi je omogućilo stvaranje GIF, format slike, koja izgleda kao da postoji.
U stvari, možete to učiniti previše.
Imamo "google fontove logo generator."
>> Hajdemo vidjeti možemo li to učiniti.
Ok, mislim da je to web stranica sam koristio.
Možemo reći Ec 10, na primjer, i učiniti ih sami.
Možete igrati s ovim cijeli dan i onda desni klik na njega
i onda preuzeti stvarnu GIF, koji je sve što sam učinio.
I doista, to je razlog zašto u mom HTML, podsjetimo, ovdje
Imao sam oznaku slike, koje smo vidjeli nakratko prošli tjedan
čiji je izvor logo.gif.
A opet što je bila motivacija za to što je ovaj alt atribut,
ova alternativa atribut?
Aha.
[Nečujno učenik odgovor]
Dobro, pa dva razloga stvarno, ako preglednik ne može podići sliku
jer imate spor mrežnu vezu ili je slika oštećena
ili nešto slično barem čovjek može vidjeti "CS50 pretragu,"
, a zatim i za pristupačnost razloga.
Ako imate korisniku koji je slijep i koristite čitač zaslona
i stoga je očito ne mogu vidjeti slike oni mogu barem
čuti tekst ako njihovo računalo to govori za njih.
>> U principu, to je najbolje vježbati kada je u pitanju dostupnost stranica
tako da su čak i korisnici u toj situaciji može čuti ili vidjeti, da se tako izrazim,
što je to što je na svojoj stranici.
Postoji jedna druga stvar koju sam učinio ovdje
što je malo zanimljivo, pa ćemo vidjeti više o tome u problemu postaviti 7
preko jednog od gaćice čelu jedan od nastavnih bližnjima.
No # sadržaj se odnosi na oznaku
čiji ID je sadržaj, ali onda postoji razmak, a zatim tu je riječ ulaz.
Pa, ono što je zanimljivo kod CSS je da možete
odnose na oznake na stranice kakve hijerarhijski,
i što je to isječak CSS sredstava je pronaći oznaku
čiji ID je sadržaj, a zatim primijeniti sljedeća svojstva
za sve ulazne oznake koje su potomci sadržaja,
to je da su uvučene unutar nje.
Uvlačenje, opet, samo je važno da na računalu, a ne na čovjeka,
ali po konvenciji smo alineje stvari kao što idemo dublje u stranici,
pa to znači primijeniti stopu od 5 piksela na bilo koji ulazni elementa
to je negdje unutar ili ugniježđeni unutar
Element čiji ID je sadržaj.
>> Tko to primijeniti na?
Pa, tu je zapravo samo ove dvije dečki ovdje.
Obavijest da je unutrašnjost u obliku postoji dva ulaza,
kao što je bilo za sve ove primjere.
Ali primijetite da su dva ulaza dogoditi da se ugniježđena unutar,
iako malo dublje, par slojeva otiska,
unutar oznake čiji ID je sadržaj.
Što to znači?
Ako idemo u preglednik ovdje možete vidjeti ikada tako nešto-
neka mi povećali-da ima malo padding između gumba
i između tekstualno polje.
>> Dopustite mi da privremeno se taj off.
Pusti me do mog CSS, i pusti me naprijed i samo
promijeniti ovu marginu od 5 piksela 0 piksela.
Dopustite mi ići naprijed onda i spremite datoteku, vratiti na tražilici
i ponovno, i gledati na sredini stranice.
Sve je dobio stisnut zajedno, a kad sam prvi put šlag ovaj primjer gore
Mislio sam da je ispao glup s tekstualnom polju a zatim na gumb odmah ispod njega.
Htio sam da ga jastučić malo, tako da sam upoznao margine.
Ono što mi neće raditi u predavanju je proći kroz nekoliko desetaka
CSS svojstva koje postoje, jer, opet, tu su stvari poput veličine fonta,
font težina, marža, tekst poravnati, a nekoliko desetaka drugih,
a mi ćemo vas uputiti u problemu postaviti sedam raznih tutoriala online
i reference koje omogućuju vam da odaberete ove stvari.
No, ono što je doista važno na kraju dana
>> je razumjeti kako te stvari se primjenjuju.
Opet, ako imamo u stilu oznaku od kojih
može ići selektora, vrsta identifikatora da odredite
kojima želite primijeniti ta svojstva,
i onda staviti svojstva kao ključni vrijednosti paru
odvojeni dvotočkom i onda završio s zarezom,
ili možete ripati sve to van i staviti ga u zasebnom CSS datoteke
k sebi.
U redu, bilo kakva pitanja o pojmovima
ili velika slika CSS?
Vi opet ćete vidjeti više od toga u pset 7,
ali nastavit ćemo to općenito prilično jednostavna.
Ne? U redu.
To je vrijeme za stvarni programskom jeziku,
a mi ćemo se vratiti malo CSS-u obliku primjer.
PHP je zapravo predivno dostupni jezik
time, da je to sintaktički gotovo jednaka C.
Drugim riječima, ako znate C, znate za najveći dio PHP,
barem sintaktički, iako postoje neke nove značajke
i neki novi pojmovi ćemo morati pogledati.
>> No, za najveći dio, sad kad smo prijelaz iz C PHP
većina novih stvari je stvarno u veliku sliku,
kako koristiti jezik programa na webu za razliku
na naredbenog retka ili u treperi brz kao što smo radili do sada.
Za referencu, pogotovo s pset 7 i konačnog projekta nadalje,
ne iskoristiti ovaj URL ovdje ako želite pročitati na formalnosti PHP.
To je zapravo sviđa besplatne online udžbenik učinkovito,
a također ćete pronaći ono što je stvarno lijepo o PHP
je da postoje stotine funkcija koje dolaze s njim,
dok je u C što nije nužno imati pristup
više funkcija nego su u math knjižnici, CS50 knjižnica.
U PHP i puno modernih jezika, Python i Ruby među njima,
ste dobili pristup tako mnogo više funkcija, što znači da se za pisanje
puno manje kod jer možete stajati na ramenima drugih ljudi
koji već napisao određene stvari za vas.
>> Ajmo uzeti brzi obilazak sintaksu PHP, a zatim napisati nekoliko primjera.
Što je lijepo o PHP prvo i osnovno
je nema glavna funkcija.
Ako želite napisati program u PHP samo početak pisanja koda,
a vi ne morate brinuti o glavnom.
Nema int. Nema povratka.
Nema argv, argc što je potrebno kada pišete program.
Umjesto možete samo početi pisati kod, a to je u dijelu
jer PHP je ono što se zove tumačiti jezik.
C je sastavio, i to je bio sastavljen u smislu da pokrenete
s izvornog koda, pokrenite ga kroz zveka, što je prevodilac,
i na kraju nakon nekog broja koraka dobijete objektnog koda, 0S i 1S.
PHP i Python i Ruby i Pearl i drugi
različite vrste jezika u da ih ne sastaviti.
Vi ne idu iz izvornog koda na 0S i 1S.
Vi samo pokrenuti izvorni kod, a vi pokrenuti izvorni kod
pišući u uobičajenom tekstualnu datoteku, a završava u. php u ovom slučaju
umjesto c., a ono što program radi na računalu
je to doslovno tumači svoj kodni redak po redak po redak.
>> Drugim riječima, umjesto da napisati program i pokrenuti program
izravno umjesto toga napisati program s datoteku koja završava u. php.
Tada ćete pokrenuti stvarni program pod nazivom php.exe, ako ste na Windowsima,
ili samo PHP, ako ste na Mac OS i Linux,
i vam dati kao ulaz u PHP programa svoj izvorni kod,
i njegova svrha u životu je čitanje kod vrha do dna, s lijeva na desno,
a ne ono što ste ga rekli učiniti.
>> Idemo vidjeti što će to značiti sintaktički.
U PHP imamo uvjete.
Ovaj slajd je identičan onome što ste vidjeli u tjednu 1
jer sintaktički uvjeti, IFS i drugdje IFS i drugdje u PHP
izgledaju točno kao što je ovaj.
Kada je u pitanju boolean izraza oni će izgledati točno ovako.
Kada je u pitanju anding stvari zajedno, kao logičke to će izgledati točno ovako.
Sklopke izgledati isto, a vi dobiti dodatnu korist u PHP
da prebacuje u C samo mogao prebaciti na char ili int.
Vi ne može prebaciti na vrijednosti niza.
U PHP zapravo možete imati izraz
da je varijabla čiji sadržaj su niz,
i što zapravo može učiniti niz usporedbu u stvarnom intuitivan način,
Ne pokazivač usporedba, kako bi se odlučiti hoće li to učiniti slučaj sam ili j ili nešto drugo.
Vidjet ćemo da je potencijalno prije dugo.
>> Petlje previše čudesno su isti.
Za petlje imaju inicijalizaciju, što je uvjet, a neki broj promjenama.
Dok petlje također postoje u PHP.
Imate dok petlje također postoje u PHP-u,
i polja postoje u PHP-u, ali ovdje gdje sintaksa počinje da se malo drugačije,
ali pojmovi su isti, a pojmovi stvarno su isti
kao što su bili u tjednu 0 s nule.
Prvo i najvažnije je $ znak.
To je dizajn odluka u PHP kojem neka varijabla
u PHP po dizajn počinje s $ znakom.
Nema više X, Y, Z. To je sada $ X, Y $, $ Z samo zato.
To je nešto što treba imati na umu, a sada se na desnoj strani
ovo izgleda slično niz,
ali mi koristimo uglate zagrade ovdje.
U PHP i JavaScript, kao što smo na kraju ćemo vidjeti,
proglasiti niz ćete učiniti otvoreno četvornih konzolu i zatvorena uglata zagrada,
i onda imate zarezom odvojen popis vrijednosti, da li Ints
ili žice ili znakovi, što god želite, unutar tog izražavanja tamo.
>> Sada, kako smo učinili nešto ovako u C?
Ono što je sintaksa za statički proglašenje niz poznatih brojeva?
To je kovrčava aparatić, pa manja razlika ovdje, ali u oba PHP
i na kraju JavaScripta to samo koristi uglate zagrade, tako da stvarno
jedina zanimljiva pojedinost ovdje je $ znak za ime varijable
i uglatih zagrada, a tu je jedna čudna stvar
koji je bio izostavljen, kao i na lijevoj strani = znaka.
Ono što nedostaje da smo potrebe za nekoliko tjedana sada? Aha.
[Nečujno učenik odgovor]
Veličina, tako da nema spomena o veličini polja.
Iskreno, nema spomena uglatim zagradama na lijevoj strani
od = znak, a što drugo je nestalo iz linije?
Da. >> [Nečujno učenik odgovor]
Tipa, pa što je zanimljivo u posebno o PHP
je da to nije čvrsto upisali jezik kao C,
i da snažno je upisali u smislu da morate reći char,
morate reći int, morate reći plovak.
>> Anytime želite varijablu morate reći jeka što njegov tip.
PHP je malo lazier.
To labavo je upisali u smislu da
možete imati pliva i znakovi i žice
i Ints i tako dalje, ali sam jezik
zapravo ne zanima što ste stavili unutar varijable.
Ne morate ga unaprijed obavijestiti što tip podataka
ide u varijablu.
To je u potpunosti ovisi o vama, tako da je ovo lijepo
u da ne morate brinuti koliko o podacima tipkati
i zabrinjavajuće što vaši argumenti su i tako dalje.
To također znači da na kraju funkcije u PHP će biti u mogućnosti da se vrate
ili int većinu vremena, a možda jednom u neko vrijeme
oni će se vratiti bool, a boolean false, na primjer, koji će značiti da je nešto pošlo po zlu.
To nam daje neke odlika, ali također će nas učiniti vrsta po dizajnu
malo lazier kada je u pitanju podataka tipkanje.
>> Što još treba imati na umu ovdje?
Varijable izgledaju prilično sviđa mi se ovo, pa $ a = "Hello, world."
To je možda inferable iz prethodnog primjer,
i imamo drugu vrstu petlje.
Ovaj jedan mi zapravo ćemo vidjeti jednom u neko vrijeme budući da je vrlo zgodan,
foreach izgraditi.
U ovom slučaju, foreach petlja traje unutar svojih zagradama tri riječi obično,
$ Nešto prvi, koji je ono polje želite ponoviti više članova,
onda doslovno ključna kao, a zatim na kraju,
drugo ime varijable da dođete do izabrati.
To može biti Foo, Bar, ili element,
i što to znači konstrukt
je li $ polje sadrži 10 elemenata
na svakom iteracija ovo polje-ispričavam se, na svakoj iteraciji ove petlje
varijabla zove element koji će biti obnovljeno
biti prvi element u polju, a zatim drugi element u polju,
onda treći element niza, a time uklanjajući potrebu
učiniti nešto neugodno četvornih oznake nosača i
$ I kako bi se indeks u niz.
PHP se sve to rade za vas i na svakom iteraciji
samo ruke vam sljedeći element iz polja
bez potrebe da znaju ili ne brinu o svojoj brojčanog indeksa lokaciji.
>> I onda na kraju, za sada, postoji jedna druga značajka PHP
to će biti iznimno korisna, pogotovo kada ćemo početi programiranje na webu,
i da je poznat kao asocijativne niz.
Nizovi da znamo čime se tiče mjesta 20 sekundi prije
i za posljednjih osam tjedan brojčano su indeksirane polja,
vrsta tradicionalnih polja gdje su indeksi su Ints,
0, 1, 2, sve gore.
Asocijativnog polja su puno moćniji.
Oni omogućuju vam da imaju proizvoljne tipke,
proizvoljne indeksi i proizvoljne vrijednosti.
Dok je u tradicionalnom polju je 0, 1, 2,
u asocijativnom polju možete imati indeks
ili ključ foo čija je vrijednost bar.
Nakon toga možete imati još jedan ključ čije ime je baz i čija je vrijednost qux.
>> Opet, glupi informatike generički varijabla imena ovdje,
ali poanta je da je ovo polje nema nosača 0 ili 1 nosač.
To se događa, umjesto da imaju noseći foo i nosača Baz.
To je puno više svestran u to da ćemo biti u mogućnosti pridružiti
riječi s drugim riječima, tipke sa vrijednostima potpuno samovoljno,
i da ćemo biti u mogućnosti da biste dobili te vrijednosti natrag u stalnom vrijeme
jer ispod haube što asocijativna polja
stvarno je hash tablicu.
Sjetite se da je hash tablicu vam omogućuje da stavite na neki ulaz
sviđa staviti u riječi Davidu, ako želite umetnuti Davida u nekom rječniku,
i onda se vratiti neku vrijednost obično.
U slučaju Speller, pravi ili lažni.
David ili što god je riječ ili je nema u rječniku.
Asocijativni niz je zapravo samo hash tablicu,
ali to je puno više user friendly utjelovljenje njega.
Kao što ćemo vidjeti, to će nam omogućiti da učinite neke stvari
Vrlo, vrlo jednostavno.
>> Idemo pogledati neke osnovne PHP
primjeri i vidjeti što možemo učiniti s tom jeziku.
Pusti me naprijed i otvoriti u našem source direktorij danas
file zove hello1.php.
Ova datoteka je više komentar, nego što je stvarna kod,
pa neka mi zapravo ukloniti sve komentare iz spisa
i sadašnjosti vama možda najjednostavnije PHP programskog ovdje.
5 redaka, a neki od onih koji su bijeli prostor,
tako primijetiti neke ključne razlike ovdje.
Datoteka se zove hello1.php.
Prvi red, iako je <? Php.
Slično je u duhu u HTML,
da niz znakova govori računalu
"Hej, računalo, ovdje dolazi program smo u u PHP."
To čini da to nije zbunjen da je to neki drugi jezik.
Linija 2 je zanimljiva bijeli prostor.
Linija 3 je naš stari prijatelj printf,
ovaj put u kontekstu PHP.
PHP ima svoju verziju printf koja se ponaša točno isti,
tako da je ovo samo će se ispisati "Zdravo, svijet."
I onda je to suprotno tag ovdje?>, Znači da je to za moje PHP koda.
>> Idemo vidjeti kako pokrenuti ovo.
Ja ću se vratiti na moj prozor terminala ovdje.
Ja idem u mom PHP imeniku.
Primijetit ćete da imamo hrpu datoteka, prvi jedan od kojih je hello.php.
Pusti me naprijed i pokrenuti ovaj, hello1.php, ući.
Dozvola odbijena. Ok.
Kako smo fiksne stvari kao što je to u prošlosti?
Što je to? >> [Nečujno učenik odgovor]
Trebamo čitati i pisati, ali neka me učiniti ls-l.
Zapamtite ovo nešto grobni izlaz pri čemu hello1
Čini se da je čitljiv i pisati po meni
ali čitati i svi drugi.
Ispada to zapravo nije korak u pravom smjeru.
Razlika je, opet, s interpretativnom jeziku
se ne pokrenuti program izravno.
Umjesto toga pokrenuti tumača i predati ga kod
da ste pismeni tako da se može protumačiti da redak po redak.
U ovom slučaju, tumač ili program sam zapravo žele pokrenuti
doslovno zove PHP.
>> Negdje na ovom tvrdom disku uređaja postoji program
netko je napisao zove PHP, ili na Windows php.exe.
Što ću učiniti ovdje je da ću zapravo pokrenuti PHP
ali ga dati kao argument naredbenog retka kod koje sam napisao,
i onda ću smanjivanje i pogodio ući.
Ona radi moj program za mene, od vrha do dna, s lijeva na desno.
Pusti me naprijed i otvoriti blago odstupanje od toga.
U hello2.php obavijesti da je to previše
uglavnom komentara, pa neka me riješi onih kao distrakcija,
i ono što je jasno sada drugačije o ovoj datoteci?
Tu je to nova linija, pomalo zagonetan na vrhu.
U skladu jedan je #! / Bin / php.
Bin je konvencija na Linux i Mac OS za izvršne datoteke,
tako / bin znači ovo je mapa koja sadrži hrpu oprekama
koji je programiran, od kojih je jedan PHP.
#! je prozvan shebang,
koji je brz način da ga govoreći, i što to znači
je da kada pokrenete ovaj program sada postoji naznaka na vrhu datoteke
koji govori računalu što tumač za korištenje.
>> Ona dobiva malo neugodno ako ste imali reći svoje korisnike i svoje klijente
"Hej, pisali smo ovaj program koji se zove hello1.php."
Sve što morate učiniti je zauvijek pokrenuti PHP, a zatim naziv tog programa.
Iskreno, to bi samo biti ljepše za pokretanje hello1.php,
i doista, možemo li mi učiniti sljedeće.
Dopustite mi ići naprijed i učiniti ls-l, i primjetiti u hello2 to je još uvijek samo čitati pisati
a zatim pročitajte čitati, pa sam još uvijek ne mogu to učiniti, hello2.php.
No, uveli smo to uvijek tako kratko posljednji put, chmod naredba.
Ako sam napraviti chmod a + x, što znači sve plus executability,
i onda hello2.php i onda ne ls-l opet primijetiti što se promijenilo.
Jedan, Linux pokazujući mi ime datoteke u zelenom prenijeti ideju
da je izvršna, ali što je još važnije, na lijevoj strani
primijetiti da nešto predstavlja X za izvršnu sada je bila postavljena.
Što to sada znači da mogu pokretati ./hello2.php kao i obično,
hit ući, a zbog shebang na samom vrhu datoteke
to je savjet, opet, na Linuxu koji kaže
koristiti ovaj tumač za pokretanje ovu datoteku.
Ne brinite prisiljavajući korisnik zapravo ga upišite.
>> I ono što je lijepo sad je to je vrsta nevažno mojih klijenata ili moji prijatelji
što jezik sam napisao ovaj program u, tako da ja mogu ići naprijed sa mv
i preimenovati ovu stvar hello2, na primjer.
I sad, ako ja ./hello2
i smanjivanje moj program i dalje radi.
Ove ekstenzije datoteka su ljudska konvencija koje je potrebno
za nešto poput zveka i napraviti koji traže za njih.
Ali za PHP, mogao bih nazvati ovaj ništa datoteke želim proširenje.
Mogao sam trik svijet u misle da sam jako dobar u Ruby,
i ja mogao napisati hello2.rb a zatim pokrenuti to,
i voila, sada imam Ruby verziju, što je potpuna laž.
Ali datoteka ekstenzije su besmislene
ako je datoteka izvršna i ima tu posebnu natuknicu na vrhu datoteke.
>> Sada, kao stranu, dopustite mi da vam pokazati brzo verzije 3,
koja je vrsta koristan trik da znaju.
U hello3 Učinio sam nešto malo krivo
da ću ažurirati online izvornog koda.
U verziji 3 ispada da na većini Linux računala
postoji program koji se zove env za okoliš,
i što možete učiniti ovdje je, ako nemate pojma gdje PHP
je instaliran na lokalnom tvrdom disku, jer doista to moglo razlikovati ovisno o računalu
da je netko koristi, ENV samo kaže pokrenuti env,
koja je na većini sustava, i shvatiti gdje PHP je.
Samo čest trik, tako da ne morate brinuti o pronalaženju gdje je program.
Ali ako ne brine kako bi saznali gdje je program, a niste stalo do sada
možete koristiti koji naredbu.
>> Dopustite mi da smanjivanje i tip koji php,
i primjetiti da mi kaže da je zapravo u usr / bin / php.
To je vrsta laži. To je također u smeće.
To je samo pokazujući mi prvi pogodak.
Ako ste se ikada pitali gdje zveka je, što zveka, koji je u usr / bin / zveka,
koji bi, usr / bin / napraviti, a što znači da je sve ovo vrijeme
mogli ste tipkati usr / bin / zveka unesite pokrenuti zveka,
ali to je vrsta dosadan to učiniti, tako da neki mape
kao što su usr / bin i bin pretpostavlja se da je defaultno
tako da računalo zna izgledati u njima za vas.
Sva pitanja o pisanju super, super jednostavan Hello World programa
u PHP, a zatim ga izvodi?
Jer sada ćemo početi uvoditi zanimljivijeg sintaksu.
Dobro, ovdje mi ići.
Ovi programi smo vidjeli zapravo sve od njih prije.
>> Ako sam otvoriti, primjerice, ajmo raditi beer1.php,
nećemo proći kroz nekoliko verzija, ali ono što sam učinio
bio sam sjeo i natočio ili pretvaraju
moj C koda u PHP kodu ovdje.
Većina vrhu datoteke komentara ovdje.
Ispada da je jedna nova funkcija trebamo zove readline.
GetString, podsjetimo, iz tjedna 0 nadalje bio CS50 stvar.
PHP dolazi s vlastitim user-friendly funkciji zove readline
koji uzima jedan argument koji određuje redak
koje želite prikazati korisniku, a što ne readline
se vraća ono što korisnik upiše u.
U ovom slučaju, ja sam deklariranje varijable zove $ n.
Ja sam spremanje u njemu povratnu vrijednost readline
nakon što je navelo korisnika s ovom nizu.
Samo kopiju, zapravo pokrenuti ovu stvar, pusti me naprijed
i pokrenuti php beer1.php.
Koliko boce tamo će biti? Ajmo napraviti dvije ovaj put.
Upišite. To je sve.
>> Program je funkcionalno identičan C verzije iz tjedna prije.
Ali sintaktički ajmo vidjeti što je različito.
Nakon što sam dobiti int od korisnika obavijesti da radim neke provjera,
a ako je n manje od 1 Prestao sam i ja isprintati
Žao nam je poruka za korisnika i izlazak s jednom.
To je također malo drugačiji.
U C što smo učinili? U C vratili smo jedan.
U PHP izađete s jedne, koja je iskreno mislim malo više intuitivno
jer ste doslovno smo izlaska iz programa.
U redu, a zatim ovdje dolje neugodno pjesma je identična sintaktički
osim za varijable, tako da ovdje dolje u skladu 24 nadalje
Primijetit My for petlje je gotovo isti,
ali sam $ ispred i i n,
a što je također nestalo iz linije 26 koje smo imali u prošlosti
kada deklariranje varijable ja?
Nema putovanja.
To je netočno u PHP reći int.
Vi jednostavno ne trebate to učiniti.
Računalo, tumač PHP je dovoljno pametan da shvate
da, ako ste stavili broj na $ sam da će ga liječiti
kao broj za vas.
I onda ovdje smo plug-in $ i, $ ja, ja $ - 1.
Sve je to isto, a onda ovdje radimo "Wow, to je neugodno" printf
a zatim izlaz (0).
>> Opet, takeaway ovdje je da, iako ćemo provesti relativno
malo vremena na PHP, sigurno u odnosu na ono što smo učinili na C,
to je gotovo isto, i tako što ćemo učiniti danas i sljedeći tjedan
i dalje je fokus zapravo na neki od novih ideja.
Samo da se vidi da jedna druga stvar ne prevesti više od C,
ovo je super jednostavan program smo učinili u tjednu 1
ili 2 koji kubu vrijednost.
No, ono što je zanimljivo u vrijeme oko ovog programa je da se
uveo pojam običaj pisani funkciju da mi sami pisali.
Sintaksa u PHP je gotovo isti.
Evo moj program do vrha.
Obavijest opet odsutna je bilo pojam glavni.
Ja početi pisati kod, a to je ono što se događa da se izvršava tumača.
Ja isprintati x je sada dva, vjerojatno.
Tada sam tvrde cubing ...
Tada sam nazvati funkciju kocke i proći u $ x
i dodijeliti povratnu vrijednost $ x.
Tada sam tvrditi da je kubu, a onda sam ovo reći, koji će, nadamo
će reći x je sada osam.
Sintaksa funkcije u PHP je ikada tako nešto drugačije.
Opet nestalo je povratni tip.
Opet nedostaje je povratni tip i nestalo je ono što drugi tip?
[Nečujno učenik odgovor]
Pa, dobro, to je dobro. Ajmo se vratiti na to u drugi.
>> Mi nemamo, na primjer, int ovdje.
Mi ne, na primjer, su int ovdje, jer, opet, u PHP
jednostavno ne treba i ne treba to učiniti,
već postoji ova nova ključna zove funkcija.
U PHP to je gotovo malo jasnije, jer kada želite funkciju
doslovno reći funkciju, dati joj ime i onda zarezom odvojen popis
ako bilo koja od njezinih argumenata.
Ne treba reći prazninu ili nešto slično, a onda povratak je isti,
$ * $ * $.
Ono što također nedostaje? Sammy istaknuo ovo ovdje.
Na vrhu datoteke potpuno odsutna u PHP također je prototip.
To je također po dizajnu.
Jezici i prevoditelji poput PHP su pametniji od C ikad bio
u prevodiocima kao jeka.
>> Podsjetimo da zveka, ako nije reci joj da kocka postoji,
ako to nije reći da printf postoji kao s prototipom
ili # include, dobro, to je bio idući vikati na vas, a ne čak i sastaviti svoj kôd.
PHP i više moderni jezici su puno pametniji kad je u pitanju ova.
Oni će ga uzeti na sebe da pročitate kroz sve kodu
i onda vikati na tebe samo ako se nađe kocke nigdje.
To ne smeta ako kocka je na dnu ili na vrhu ili čak u nekim zasebnoj datoteci.
PHP i slični jezici su sada dovoljno pametan da gledati naprijed
na sve prije nego što smatrajući kao što je napravio pogrešku.
Gdje to nas ostaviti?
>> Ajmo napraviti jedan zadnji primjer ovdje u uvjetima,
i ako sam otvoriti conditions2.php obavijest previše
sintaksa ovdje je gotovo isti.
Ja sam koristeći readline umjesto GetString, ali da je linija ista kao i prije,
"Volio bih cijeli molim te."
I onda imaju ako stanje, drugo ako, a zatim drugi,
ali funkcionalno ovaj program je također identičan onome što smo radili prije nekoliko tjedana,
pa ako sam pokrenuti ovu stvar, php od conditions2,
i ja dati broj kao 23 -
Uzela sam pozitivan broj. Ako sam ga dati -1 sam pokupila negativan broj.
Ako sam ga dati 0 Ja doista pokupila 0.
Dakle, tko se brine o svemu ovome?
Pa, jedan od zabava vrste vježbi ovdje
barem za mene je vratiti se i vidjeti kako brzo sam mogao provesti pset 5,
pogrešno napisanih pset.
Podsjetimo da je ovu sliku pod nazivom speller.c,
i tamo je datoteka zove dictionary.c.
Što sam učinio je sam vrsta proveo nekoliko minuta, a ja pretvoriti u C koda
u PHP kodu, a mi nećemo potrošiti puno vremena na Speller
jer baš kao u pset 5 nisi stvarno trebate
potrošiti mnogo vremena na Speller sama jer vaša pažnja bila na rječniku.
>> Dovoljno je reći da ako ste pročitali kroz Speller,
ovu sliku ovdje, to je prilično puno ekvivalent u C koda
mi ti dao za pset pet.
Upravo sam dodao neke $ mjestima.
Ja sam promijenio neke funkcije imena, ako oni ne postoje u PHP.
Ima jedna dodatna stvar ovdje, preg_match,
što je malo ljubitelj način radiš nešto, ali mi ćemo se vratiti na to s vremenom.
No, u kratko, bukvar je gotovo identičan, a ako pogledate na samom dnu
što je na kraju ispljune je ovo ovdje,
riječi pogrešno, riječi u rječnik, riječi u tekstu.
U redu, tako da ono što je zanimljivo sada je sljedeći.
Na vrhu moje datoteke sam zahtijevaju dictionary.php.
Baš kao što je C # je uključiti PHP ima posebnu funkciju pod nazivom zahtijevaju
da prilično puno radi istu stvar, zahtijevaju datoteku pod nazivom dictionary.php.
Kako mogu ići o provedbi pset 5?
Pusti me naprijed i otvoriti datoteku ovdje.
Dopustite mi da se malo spominje ovdje.
I neka mi stvoriti novu datoteku i početi zovete ovaj dictionary.php.
Dopustite mi da ga stavite u drugu mapu tako da možemo to učiniti živjeti.
A sada ću uvećanje u.
Ja ću početi svoju PHP datoteku s otvorenim nosača php zatvorena zagrada.
A onda je ovdje bilo je nekoliko funkcija sam potrebne za provedbu za pset 5,
pa neka mi početi provoditi neke od onih,
pa funkcija ček, koja je morala uzeti riječ u kao argument.
Učinit ćemo to i vratiti se na njega u jednom trenutku.
>> Tu je funkciju opterećenja, što je u tome što kao argument?
Rječnik, tako datoteku da sam zapravo htjela učitati.
Tu je funkciju veličina, koja nije poduzela nikakve argumente
i tu je funkcija što je drugi?
Unload, koji nije uzeo nikakve argumente bilo.
To su četiri funkcije koje bih sada treba provesti u PHP-u,
i ono što ću učiniti je ići naprijed i učiniti.
Puno vas koristi hash tablicu u pset 5,
pa neka mi ići naprijed i stvoriti ljestve tablicu u PHP.
Gotovo.
To mi daje hash tablicu. Pa, zašto?
Jedan, varijabla se zove $ stol, samo dočarati ideju o hash tablice.
Uglatih zagrada, ipak, podsjetiti, predstavljaju ono što?
Polje, ali u PHP polja ne moraju brojčano biti indeksirana.
Oni također mogu biti asocijativne nizove,
što znači da možete imati proizvoljne ključeve i vrijednosti.
>> Baš kao u pset 5, one od vas koji je hash tablice implementacije
vjerojatno umetnuta riječ, a zatim ga umetnuti u lancu povezane liste,
ili ste spremili vrijednost istinske negdje ili nešto u tom smislu.
Vi nekako sjetio činjenicu da je riječ bila tamo.
Za sada, to će biti moja hash tablicu,
i tako sada to ide o provedbi potvrdni funkciju
Samo trebam gledati unutar tog hash tablicu
i vidjeti ako je riječ postoji.
Što ću učiniti je da ću reći, ako-
recimo isset, što je PHP funkcija koja doslovno znači samo je ključ skup,
tako isset ($ tablica [$ riječ],
i ako je tako povratak istina.
To je to. To je pset 5 u PHP.
Pa, u pravednosti, u redu.
Inače povratak false, tako da to ne postoji.
Što se zapravo događa ovdje?
Pa, ako stolni ili hash tablicu ovdje više općenito-
je asocijativni niz to znači da možete indeks u nju
s riječi poput "riječ," i morate se vratiti neku vrijednost.
>> Mi smo vrsta uzimajući jedan korak ispred nas.
To će biti vrsta lijepo da smo zapravo učitava datoteku prvi,
tako da opterećenje nije sasvim jednostavna, ali dopustite mi ići naprijed i ščepati
stvarno brzo provođenje opterećenja.
Pusti me naprijed i reći riječi dobiva datoteke rječnika.
File funkcija u PHP otvara datoteku
i vraća vas lepezu sve riječi u toj datoteci,
samo ih pruži vas.
To je bila velika bol previše, zar ne?
Sada foreach, ovo je naš novi konstrukt, foreach ($ $ riječi kao riječi).
Ova petlja će početi Ponavljanje preko niza riječi
i dodijeliti dolara riječi varijable svaku riječ u datoteci
od prvog do drugog na treći do četvrtog sve način
tako da ne moram raditi dosadne [i] zapis i slično.
A ono što sam jednostavno ću učiniti za svaki od tih riječi
se spremiti u mojoj tablici indeksiranje u tablici
i onda radi točno, jer se sjećam
da je riječ u mom rječniku sve što sam stvarno morati učiniti
je vrsta okrenuti malo i reći ovu riječ u mom hash tablicu je tu, istina.
A ako to ne postoji, ne moram se eksplicitno stavio lažne,
inače ću morati staviti lažna za sve moguće riječi u svemiru.
>> Dovoljno je za mene samo postaviti indeksa vrijednost
da istina, ako je riječ zapravo u mom hash tablici.
Sada, ja sam rezanje nekoliko uglova ovdje da ću mahati moje ruke na za sada,
ali sada opterećenja funkcija je učinio.
Ja učitati sve riječi iz datoteke u niz.
Ja iteraciju tijekom tog niza, a za svaku riječ u polju
Ja ga priključite u mom hash tablicu s jednog retka koda.
To je zabavno. Znate kako možemo provesti veličinu sada?
Pa, veličina je uvijek prilično jednostavan, u pravednosti.
Ovdje možemo samo ne vratiti računati tablici.
To je prilično jednostavno previše, brojati broj stvari u tablici.
To je zapravo vrsta nije najučinkovitiji.
Vjerojatno bih trebao imati varijablu nazvanu veličine, tako da možemo to učiniti
u stalnom vrijeme, ali to je prilično jednostavan.
Oh, a zatim iskrcati, ako zaista želimo biti analni ovdje
možemo reći da je kako ste izvadili nešto.
Vi samo postaviti varijablu jednak prazan niz,
i to dobiva osloboditi od svega što je tamo.
Ne trebate zvati besplatno.
>> Opet, ja sam izrezati neke kutove, i ispričavamo za dodjeljivanjem problema set 5
možda u C, ali ako mi sada ići naprijed i pokrenuti ovaj,
Ja ću zapravo pokrenuti verziju koja sam pisao u unaprijed
samo tako da nisam napraviti nikakve pogreške sintaktička god.
Pusti me naprijed i pokrenuti Speller. Korištenje je isti.
Ovdje je rječnik datoteka koja sadrži samo riječ foo.
Ovdje je tekstualna datoteka koja sadrži samo foo bar.
Ajmo provjeru pravopisa ovo, pa Speller, koristeći ovaj rječnik datoteku na ovaj tekst datoteku.
Ima jedna pogrešno napisana riječ, bar, i voila.
Gotovo sa pset pet.
Ajmo uzeti 5-minutni predah ovdje, a mi ćemo se vratiti i više na PHP.
U redu, vratili smo se.
Ajmo mi ne-mrzim za neko vrijeme.
Ajmo sada zapravo vidjeti ako to nije bio pozitivan
zapravo provodi ovu stvar u PHP.
Odobren, to je 45 sekundi za provedbu.
>> Ali idemo naprijed i sada pokrenuti stvari.
Pusti me naprijed i pokrenuti C verziju
od Speller, a mi ćemo ga pokrenuti na jedan od najvećih datoteka,
što je King James Bible.
I to je ovdje u ajmo u našoj C mapu,
bukvar na King James 5..
Puno pogrešno napisane riječi.
Ok, tako da je izlaz vjerojatno dobio čak i ako su puta su malo drugačije,
ako imaš sve radi ispravno, i tako vrijeme u ukupnom provjeru pravopisa
King James Biblija bila 0,38 sekundi, tako da jako dobro koriste tu provedbu.
Sada me pusti u PHP verzije, koje smo upravo napisao.
Dopustite mi pokrenuti Speller na kralja Jakova.
Ups, zanemarite tu pogrešku. Ja sam u krivom imeniku.
Speller na King James 5..
Gotovo učinio.
>> Ok, lukav promatrač će shvatiti da je više od tri sekunde tamo.
To je istina trčanje vrijeme.
Ispada da je potrebno vrijeme da pljuje puno teksta iz
zbog razdvajanje pitanja, ali duljimo,
koji je bio 3,15 sekundi stroja vremena, CPU vrijeme,
u odnosu na ono što je bilo trenutak prije?
Poput 0,3.
Mislim, to je red veličine sporija, pa gdje je to
smiješno usporavanje dolaze iz?
Pa, kao što je to bio slučaj s većinom bilo dizajna odluke koje smo napravili
u klasi u proteklih devet tjedan tu je gotovo uvijek to tradeoff.
Ponekad između samo prostora, ponekad između prostora i vremena,
prostor, vrijeme i razvoj napor, i doista ovdje, iako
smo spremili veliku količinu vremena, možda potencijalno 10-20-30 sati
razvojnog vremena provodi provjeru pravopisa
ga miješa u samo 45 sekundi s ovom jeziku
Cijena koju plaćamo je da je red veličine sporija kao rezultat,
i to je uglavnom slučaj s većinom bilo interpretativnom jeziku,
PHP, Python, Ruby, Pearl ili drugih kojim
ako idete da ga pokrenuti preko tumača i to pročitati kôd
redak po redak, od vrha do dna, s lijeva na desno,
da posrednik će potrajati neko vrijeme svoje,
i ono što su osjećaj ovdje u tri sekunde, za razliku od 0,3 sekundi
je činjenica da je ovo posrednik koji mora doslovno tumačiti našu kôda
redak po redak, a Bog zabraniti ako si unutar petlje
s ogromnim datoteku koja sadrži stotine tisuća riječi.
>> To pretek će se dodati i dodati i zbrojiti i dodati gore.
Za alatom kao što je to vjerojatno nije najbolji jezik koristiti za provedbu
provjeru pravopisa ako neposrednosti je od interesa za svoje korisnike i za vas.
No, luksuz imamo u ovom trenutku je ako
koristiti jezik poput PHP ili puno interpretirane jezika
u kontekstu Weba, što se toga tiče, imate korist
da internet je puno sporije nego u većini računala.
Imate GHz procesor u računalu, 2 GHz, možda čak i više ovih dana.
No, stvarnost je na internetu postoji velika količina latencije
pri čemu za preglednik za razgovor na server, iako smo vidjeli prošli tjedan
da je to prilično brzo, pola milisekundi ili tako,
da je previše dodaje se, a ako ste preuzimanjem stvari kao na slici
ili Facebook fotografiju ili uzimajući instant poruke preko Facebook lupetati,
Gchat ili slično, sve ove RTT
između preglednika i poslužitelja počinje rasti,
što čini vaš poseban izbor jezika u mnogim slučajevima
nije sve što je potrebno, tako da ste u redu pomoću malo sporiji jezik
poput PHP ili Python ili Ruby
ali za koje postoje ogromne upsides za vas i vaše kolege
i vaši prijatelji, jer možete provesti stvari tako, tako puno brže.
A osim toga, imate mnogo manji rizik od određenih sigurnosnih propusta.
Nema upućuje u PHP.
Nema SEG greške koje se lako mogu izazvati
Na isti način možete mogla u C.
Sa C ste super blizu hardvera.
Uz PHP i slični jezicima ste vrsta višoj razini, da se tako izrazim,
s puno obrana između vas i ono što se zapravo događa
unutar stroja, a to je samo tradeoff.
>> Mi smo stečen do točke da te više moderne, visoka razina jezika
poput PHP, jer od lekcija naučenih u jezicima kao što su PHP u C.
Ali ako ne razumiju što se događalo ispod haube sve ovo vrijeme
sigurno ne može donijeti prave odluke za dizajn,
a sigurno kada je u pitanju rad na mjestu poput Facebooka ili Googlea
ili bilo koji od ovih mjesta koja se sve više igra s velikim skupovima podataka
čak i ako se vrati, a ne premed i rade s nekim MD
na nekim velikim skupa podataka uključujući pacijente i liječnike
i kao što je korištenje pravih alata je iznimno uvjerljiv
jer inače vaš analiza nekog skupa podataka može potrajati sekundi,
ili je to doslovno moglo potrajati satima.
Ovo je samo jedan primjer, a ne da vas frustrirati s koliko više truda
to je bio u C, ali će vam pomoći da cijenimo da kada ne provesti nešto u C
vi stvarno razumjeti, ili u teoriji, stvarno razumjeti
kako je sve ili treba raditi, a imate gotovo potpunu kontrolu
nad onim što se događa ispod haube, i sa ovim višim razinama jezika
morate odreći više kontrole na ljude koji su ih izmislili
i podložne su više za svoje dizajnerske odluke nego tvoje.
Ali ako ćemo uzeti zdravo za gotovo da je izvedba
nije baš tako važno na webu, jer od ovih ostalih pitanja,
samo mreža brzine su malo sporiji od CPU brzina svejedno,
tako da možemo sortirati od priuštiti da koristite nešto sporiji jezik
ako upsides su mi možemo razvijati stvari 10 puta brže ili čak i više.
>> Idemo vidjeti kako možemo početi koristiti ovaj.
Pusti me u mapu
među današnjim primjerima zove frosh.ims,
i to je zapravo bio osobno motiviran činjenicom da je vrlo prva stvar
Napisao sam na Webu godina nakon uzimanja CS50 CS51 i
je web stranica za program Frosh IM, brucoš intramuralnog sport,
koja je u to vrijeme to je bio dovoljno godina da je u vrijeme
nema web stranice za program, iako nije bilo web,
i umjesto toga došlo je prokurator u Wigglessworthovoj pri čemu, ako ste htjeli
da se registrirate za odbojku ili nogomet ili što god bi ispunite komad papira.
Ti bi onda hodati po dvorištu.
Ti bi onda pokucati na njihova vrata i tobogan u svojoj vrata ili ruke na Proctor
komad papira sa svojim imenom na njemu, da li ili ne želite biti kapetan momčadi,
što je sport ste htjeli učiniti, a što spavaonica ste bili u.
To je neka vrsta stare škole način obavljanja stvari, a to je bio premijer
Prilika za automatizaciju puno tog procesa.
Vi samo otići na web stranicu. Možete upisati nešto u.
Možete dobiti potvrdu e-poštom, i bum, gotovi ste.
>> To je bio vrlo prva stvar koju sam učinio, iako u jeziku zove Pearl,
ali to je relativno lako raditi u PHP-u, i to je neka vrsta predstavnika
od problema možete početi rješavati kada možete izraziti sebe
programatski i ne moraju se osloniti na stvari kao što su Google stranice
ili Excel ili alati koji su predani na vas.
Vi sada imaju mogućnost za napraviti stvari kao što je ovaj.
Ovo je super ružna verzija obliku,
ali neka je samo koristiti ga za početak razgovora kojim je to
otprilike ono oblik izgledao godina za nas
kako bi se omogućilo ljudima na webu da se prijavite za Frosh IM.
Pitali smo za ime, kućicu za li ili ne oni su htjeli biti kapetan,
muško ili žensko, a zatim ono što su bili u domu,
i onda bi poslati ovaj obrazac.
Neka prvi pogled ispod haube na HTML-a koji predstavlja ovu stranicu.
Pusti me u froshims0,
i kao stranu, za pset 7 uzimam zdravo za gotovo
su direktoriji i mape koje sam stavljajući stvari u.
Mi ćemo vas provesti kroz točno gdje stvari mora ići u aparatu,
koji mod naredbe morate pokrenuti, tako da ne brinite o svim
glupi detalj sinkronizaciju u od get-ići ovdje.
>> U redu, evo froshims0.php.
Dopustite mi da se pomaknite prema dolje, a ono što je znatiželjan ovdje,
ovo je PHP datoteku, ali ono što je u njemu, jasno?
To je puno HTML, i doista, PHP je porijeklo
stvarno su po tome što je web-centric jezik.
Trenutak prije smo ga koristiti za implementaciju pivo primjer,
uvjeti, primjerice, halo primjer, i to je u redu.
Možete koristiti PHP kao skriptni jezik
gdje skripta je zapravo samo nomenklatura dati brz i prljave programa
ili nešto što pišete u scripted ili više općenito interpretativnom jeziku.
PHP je super korisno za to, jer ste vidjeli kako brzo
Relativno možemo ščepati programe u PHP.
No, to je stvarno bio osmišljen kako bi se koristiti za web,
i dizajniran za web u smislu da primijetiti ovdje na vrhu datoteke
Ja početi s <? Php.
Onda imam hrpu beskorisnih komentara, odobrene, ali onda sam zatvoriti PHP način.
Ali onda sam kap u HTML načinu rada.
>> Što je zanimljivo o PHP je iako datoteka završava u. Php
to je općenito značilo da se sufinancirati pomiješano s HTML,
neke PHP kod, neki HTML.
A vidjet ćemo na kraju da možemo početi zafrkavati one osim
i zadržati naš HTML odvojeno od naše PHP uopce,
ali porijeklo PHP stvarno su vam dati tu fleksibilnost,
da, ako želite neke HTML samo to napisati, i da će biti
ispljunuti identično pregledniku.
No, ako trebate neki programski tehniku,
neki kod za programiranje, možete ga staviti u istu točnim datoteku, kao što ćemo uskoro vidjeti.
Evo moja HTML.
Imam naslov ove za Frosh IM.
Imam tjelesnu oznaku koji je dobio neki CSS o tome da centar svega u sredini,
i onda ovdje imam formu koja očito će biti podnesen
u novu datoteku pod nazivom register0.php, pa ćemo vidjeti da je u trenutku.
To je koristeći metodu zvanu nakon koje ćemo se vratiti kao dobro.
Onda imam neki oblik ulaza, jedan se zove imenom, čija je vrsta teksta,
onaj čije ime je kapetan, čija je vrsta kućicu,
i to, nismo ga vidjeli prije, ali to radi upravo ono što kaže.
Vi ćete dobiti okvir umjesto tekstualnog okvira.
Dolje ovdje imate gumb, koja je jedna od onih kružnih gumba
da ili možete odabrati ovu ili onu jednom.
>> Obavijest to namjerno da sam dao objema radio gumba ime roda.
Ovaj je kako možete dobiti međusobnog isključivanja pri čemu morate kliknuti
bilo to jedan ili da je jedan, a klikom druga
to unchecks druge, tako da ćete morati dati im isti naziv
ako želite da se međusobno isključuju takvo.
I onda za studentski dom, ne mislim da smo vidjeli to, no to je odabir izbornika, padajući izbornik.
Oznaka za to je odabir.
Nakon toga daju padajućeg izbornika ime,
i onda imate hrpu tih opcija.
Prvi, samo za estetiku, je prazan string.
Samo sam htio padajući biti prazan po defaultu,
i onda je Apley, Canaday, Sivi, i tako dalje.
I primijetiti dihotomiju ovdje.
Opcija u padajućem ima vrijednost,
ali onda to ima ljudsko-friendly naziv, koji je u ovom primjeru
je identičan, ali ako smo stvarno željeli biti analni bismo mogli imati
Vrijednost ovog padajućeg biti samo kratka verzija,
Sivi, ali mi stvarno mogao reći Grays Halla da je ljudski zapravo vidi,
ali to nije sve što je zanimljivo, pa sam samo zadržao je jednostavna i napravio im identične.
Onda dolje na dnu imamo submit gumb
što smo vidjeli prije, ali primijetiti sam samo dao mu drugu riječ.
Umjesto CS50 potrazi sam dao oznaku "Registracija".
>> Krajnji rezultat je ova web stranica ovdje, i opet,
gdje to dobiti podnijeti?
Ona dobiva podnijeti neke datoteke, vrijednost akcije atribut,
koji je bio register0.php.
Idemo vidjeti što se zapravo događa ovdje.
Pusti me naprijed i ispunite ovaj obrazac, recimo David,
muškarac, Matthews, a onda ću reći registrirati.
Dopustite mi da smanjivanje i kliknite registrirati.
Ok, tako da vrsta beskoristan, ali neka se vidi što se zapravo događa.
Primijetit ćete da URL promijenio se register0.php.
Što je znatiželjno odsutna iz URL-a, ipak, iako smo upravo poslali obrazac?
[Nečujno učenik odgovor]
Ok, to je samo Chrome bude user friendly ovih dana.
To je zapravo bilo. Oni su to samo sakriti radi uštede prostora.
No, dobra misao, dobra misao.
Prema drugom kraju URL-a, međutim, ono što nedostaje? Aha.
[Studentski] Niz upita.
Upit niz, tako sjećam iz naših jednostavnih Google pretraživanja primjera.
Čim sam kliknite na submit gumb URL
odvela me u Googleu, ali onda je bilo? q = informatika ili što god sam upisali u.
To je zato što smo koristili get metodom za pretraživanje primjer.
>> Ovaj put smo koristeći ono metodu umjesto toga?
Post, a jedan od neposrednih razlike
između dobiti i objaviti da je post ne stavi korisnikov ulaz u URL.
To ga skriva. Još uvijek ga šalje.
U stvari, ono što smo vidjeli u pregledniku ovdje, kao što ćemo otkriti u trenutku
gleda na register0, je ja sam samo vidio sadržaj
od niza koji su dostavljeni iz preglednika na poslužitelju.
Ali URL nema?, Nema nikakve riječi
ili vrijednosti u nju, i zašto je to?
Pa, poslije vam još dostaviti podatke iz obrasca na poslužitelju,
ali ga ne stavi u URL-u, pa kakva informacija je post
Posebno prikladno za možda kada pitate korisnika da
upisati u ulaz na oblik?
Nešto poput lozinke, nešto poput onoga što drugo?
Brojeve kreditnih kartica.
Sve što je blago osjetljiva vjerojatno ne želite završiti u URL
ako je samo zato što to znači da je cimer ili član obitelji može samo trol kroz
Vaše internet povijest, a zatim doslovno vidjeti svoje lozinke,
doslovno vidjeti svoje brojeve kreditnih kartica, jer je većina preglednici
sjetiti u povijesti god URL ste bili na,
pa makar samo zato da bi loša ideja.
Korištenje poštanskih skriva da je detalja od korisnika.
>> Također, kako uploadati sliku na Facebooku?
Pa, samo dva mehanizmi zaista možete koristiti,
iako postoji nekoliko drugih više skrivenim one, je dobiti i objaviti.
Kako vam eventualno uploadati sliku preko URL-a?
Vi zapravo možete to učiniti.
Možete uzeti JPEG ili Bitmap ili GIF i možete ga predstavljaju u heksadecimalnom
ili nešto što se zove baza 64.
Umjesto bazi 16 možete koristiti bazu 64, koji u suštini izgleda kao
ASCII znakovi, a vi zapravo može uploadati sliku preko URL-a
nakon upitnikom, ali postoje općenito ograničenja veličine.
Većina preglednika prisiliti URL da ne bude više od 1000 znakova,
možda 2000 znakova ili slično, tako da se ne može prenijeti
10 MB Facebook fotografiju.
Za to vam koristiti post kao dobro, tako da za sada se postavlja parametre u URL-u,
što je lijepo i korisno ponekad, ali za sve osjetljive ili velika
post je način da ide.
Što se register0 zapravo radiš ovdje?
Pa, ako sam otvoriti register0 obavijest da je to super jednostavna stranica,
ali to pokazuje činjenica da mogu surađivati ​​družiti se, za bolje ili za lošije,
HTML sa PHP.
Ova cijela datoteka, osim za komentare na vrhu, su HTML
osim za ovog momka ovdje.
>> Obavijest u sredini mom PHP kodu,
u sredini mog HTML, imam neku vrstu privremeno
ušao PHP način.
Zovem posebnu funkciju pod nazivom ispis r.
To znači ispisati rekurzivna, a ono to je to rekurzivno ispisuje
god varijabla ga predati, zarez, izlaz PHP način.
I prije oznaku daje vam unaprijed oblikovanog teksta,
mono prostor tekst, tako da svaki prostor zapravo ga vidjeti.
To ne nestaje. Što je post?
Pa, ono što je zanimljivo i uvjerljivo o PHP
je da kad god podnijeti obrazac koristeći se ili postavljati
sve što je podnesen vas pregledniku
PHP sama shvati što one ključne vrijednosti parovi su,
Brojke vani ako ima jednake znakove, brojke out, ako postoji znak pitanja.
To čini sve teško raditi za vas, a onda pruži vam asocijativni niz
sadrži sve da je korisnički upisali u obrazac.
Pa, što polja je ovaj oblik ima?
>> On je imao četiri polja.
Jedan je bio tekst polje zove ime.
Jedan je bio kućicu zove kapetan.
Jedan je radio gumb pod nazivom spol,
i jedan je padajući izbornik zove spavaonica,
tako da primjetiti kad sam ispisati rekurzivno
Sadržaj ovog posebnog varijable.
To je posebna globalna varijabla zove doslovno $ _POST, u svim kape.
To je posebna globalna varijabla koja PHP samo stvara za vas
i ruke na vas, tako da možete pristupiti sve
koja je podnijela preko obliku od strane korisnika.
I pozivom ispisa r na njega-ti ne bi to u normalnim primjene.
Mi smo to vidjeti unutrašnjost ove varijable,
i ono što je u njemu, dobro, 4 tipke,
4 http parametri, da tako kažemo,
ime, kapetan, spol, spavaonica, a zatim su vrijednosti koje korisnik
upisali u uz jednu iznimku.
Ja sam tip D--V-I-D.
Provjerio sam kutiju, ipak, za muškarca, koji je navodno podnio vrijednost
od samo m biti kratak.
>> Kad sam odabrao Matthewsa da je vrijednost koji je dobio odabrana,
a ovo je malo glupo, ali to je konvencija.
Kad sam provjerio okvir, vrijednost na, "na", dobio poslali za kućicu.
Ako nisam ga provjerio, nema vrijednost bi bila poslana god.
To samo daje nam uvid u ono što je unutar tog posebnog globalne varijable,
i to je tako posebna da se zove super globalna varijabla.
To postoji svugdje za vas unutar kôda, tako da zapravo mogu pristupiti.
To se ne da uvjerljiv, pa neka je zapravo koristite super Global
i zapravo pokušati da se registrirate nekoga.
U froshims1 ću napraviti jednu promjenu.
Ja sam mijenja akciju da se register1.php,
i ja radim jedan druga stvar.
Bio sam zbunjen po kvaliteti moje web stranice tamo.
To je prilično odvratan, iskreno, pa ispada
koje možete koristiti vrlo lako na webu
tuđe JavaScript kôd, tuđe CSS
da ste pismeni i otvoren izvor i dostupni u knjižnici,
da se tako izrazim, a za primjer, ovdje sam koristeći slobodno dostupan knjižnicu,
hrpa koda da je netko napisao.
>> Twitter se dogodilo napisati ovaj kod, a to se zove bootstrap knjižnica,
i to je samo hrpa CSS stil listova, hrpa. css datoteke
da je netko napisao i shvatio kako se sve lijepo i prilično
tako da ljudi poput nas mogu brinuti manje o estetici i usredotočiti se mnogo više
na logici i stvarne programiranje.
Do povezuje ga se s tom oznakom, što je ista oznaka Koristio sam zapamtite za styles3.css ranije,
Ja sada imaju pristup datoteci pod nazivom bootstrap.min.css.
Minimalni samo znači da ste ga minified i oni dobivši osloboditi od svih bijelog prostora i tako dalje
samo da bi bili sigurni da se ne šaljete mi više bajtova nego što sam zapravo potrebno.
No, u tu je cijela hrpa CSS, pa ako ja sada otvoriti verziju jedne od Frosh IM
primijetiti da je moja datoteka je definitivno ljepše.
Sada je još samo crna i bijela, ali primijetiti da je samo pomoću svoj stil list
i korištenje određenih značajki tome na mojoj formi to nije iznenađujuće,
ali to je definitivno čišći nego što je bio prije, a projektor ne radi pravdu.
Tu je malo sive linije oko gumbe i oko tekstnom polju ovdje,
ali to je definitivno čišći nego što je bio prije.
>> Sada, u pravednosti, sam morao promijeniti moj označavanje malo.
Ovo je verzija 1, i primjetiti da sam koristiti nekoliko novih oznaka,
i iskreno, nisam imao pojma kako to učiniti dok sam pročitao dokumentaciju
za Twitter je bootstrap knjižnici, a oni su mi rekli, ako želite koristiti našu knjižnicu
koristiti elementa fieldset unutar vašeg obliku,
staviti riječ koju želite pokazati pokraj polja unutar naljepnice oznake,
onda dati svoj ulaz ime, baš kao i prije,
, a zatim za kućicu, ne samo da ćete ga zamotajte u oznaku elementa,
koristite nešto što se zove klasa, tako da nismo vidjeli ovo prije,
ali to ćete vidjeti u jednoj od pset 7 u gaćice.
Klase u CSS vam omogućuje da učinite nešto vrlo sličan ID,
ali prije kad smo imali ID s # simbolom
da je za jedan i samo jedan element.
Što je lijepo o klasi je da više elemenata može imati isti razred
ili isti CSS stvari primijeniti na njega.
>> Ali opet, više na one u kratko, a ostatak je ovo samo kopirati i zalijepiti
iz njihove dokumentacije gdje sam dodao naljepnicu tu i tamo.
I na kraju, jer sam uključen vezi oznaku na vrhu,
sve izgleda ljepše automatski
jednostavno nakon obilježio moj stranicu na način da
Twitter očekuje, a tu je tako mnogo različitih načina
za to, a to je doista vrlo prikladno.
U ovom trenutku u semestru, kao što ćete vidjeti u pset 7 je spec.,
Googling okolo, čitanje gore o knjižnicama, koristeći tuđe CSS
i JavaScript za rješavanje problema pomoćne
do problema seta sama sigurno je ohrabrio i način
Web je izgrađen ovih dana, stoji na tuđim ramenima
tako da zaista možete usredotočiti na nove i zanimljive problema.
Ali ajmo sada usredotočiti na, opet, logiku.
>> To je bilo brzo skretanje na estetiku samo da vam pokazati smjer u kojem možete ići.
Ja ću se vratiti na ružniji jedan za sada samo zato
da nema smetnje sa Twitter stvari, i neka mi ići naprijed i otvoriti
froshims2, koji, opet, razlikuje se samo u akciji, register2.php,
i neka je pogledati što je učinak ovdje.
Pusti me naprijed i upišite u Davidu.
Neću biti kapetan ovaj put.
Ja ću reći muškarac, Matthews, registrirajte.
Dovraga. Ok, to je vijak gore na moj dio.
Stand by.
Register2, linija 22, ako je prazna ili-žao.
Ajmo reload.
Ok, nakon podnošenja ovog obrasca što se upravo dogodilo?
Ja upisali u Davidu, provjeriti muškarac, kliknuo Matthewsa, registrirajte.
Prijavljeni ste. (Pa, zapravo i nije.)
To je jasno korak dalje od pukog ispis sadržaja neke varijable,
ali ono što je ovu sliku zapravo radi?
U register2.php
primijetiti da imam neki novi kôd.
Unutar moje tijelo tag imam bitno ako drugi graditi,
ali zato sam co-druženje to s nekim HTML
Imam za ulazak i izlazak PHP način naprijed i natrag, pa ćemo vidjeti što radim.
>> U prvom redu ovdje govorim ako je to slučaj
da je post super globalni je prazna za ključ imenom,
tako iu drugim riječima, ako korisnik nije mi dati vrijednost za ime u obliku,
onda prazna će se vratiti točno, jer je vrijednost prazna.
Ili-primijetiti okomite trake-ako spol je prazna
unutar ovog posebnog super Global, koji, opet, predstavlja sadržaj obrasca,
ili spavaonica je prazna, onda ću ići naprijed i vikati na korisnika.
Kako? Pa, primijetit ću reći da mora dati svoje ime, spol i spavaonica.
Ajmo zapravo izazvati tu pogrešku.
Pusti me natrag u moje obliku. Dopustite mi učitati ga izbrisali.
I samo ću im dati Davidu, a oni ne moraju znati gdje ja živim.
Registrirajte se. Očito sam ne treba im reći gdje živim.
Morate dati svoje ime, spol i spavaonica. Idi natrag.
>> I ja sam mogao kliknite vratiti u tom obliku, ali zašto je to?
Pa, u tom slučaju ime nije bio prazan, ali rod je bio, a spavaonica je,
tako da je cijela ova izraz ocjenjuju da istina, i iako je sintaksa malo nova,
opet, ulazimo PHP način, upoznati ako izjavi,
ali novi dio ovdje je samo to debelo, a ja sam sjebao izostavljaju zagradu
slučajno, ali primijetiti debelog crijeva, a to znači
iako smo izlaska PHP način sve
koji slijedi treba ispljunuti doslovno u preglednik
dok ne vide drugi blok, kao i mi ovdje,
u kojem slučaju umjesto toga treba pljuvati to iz
dok ne vidite endif, tako da su neki malo nova sintaksa
da mi omogućuje da birate između HTML i PHP.
Možemo očistiti ovaj gore na kraju, ali za sada,
to je vrsta uvjerljiv način kontrole pogrešaka obrazac.
>> Sada, ja kažem da niste registrovani stvarno jer očito smo učinili ništa ali podaci,
pa neka je zapravo pokušati učiniti nešto cool.
U froshims3 Jedina razlika je što ću podnijeti register3,
tako da HTML je isti.
U register3 primijetiti.
Ovo je jedna vrsta seksi.
Na vrhu sam koristeći zahtijevaju izjavu, pa to je kao # include.
Ovaj put to nije stdio.h ili bilo što slično.
To je PHP knjižnica, a to se zove PHPMailer.
Kako sam znao da su upravo ovaj citirani niz?
Ja ga pročitati u dokumentaciji, pa kad su mi rekli ovo staviti na vrhu datoteke
ako želite koristiti posebnu biblioteku pod nazivom PHPMailer da radi ono što govori.
To vam omogućuje slanje e-pošte putem PHP.
Sada ćemo se pomaknite prema dolje i dalje.
>> Obavijest za početak sam u PHP modu cijelo ovo vrijeme,
tako da sada primjetiti ovdje dolje nakon uvoza tu knjižnicu,
da se tako izrazim, radim neke provjere razum.
Ako je to slučaj da ime nije prazna
i spol nije prazan-primijetiti Uskličnici-
i spavaonica nije prazan, onda korisnik logično je ispuniti obrazac, barem dovoljno.
Ne zanima me ako oni kapetan ili ne. Trebam samo svoje ime, spol i spavaonica.
Ako su ispunjeni one out, tako da nitko od tih polja su prazna
to je nešto novo sintaksa.
PHP, kao stranu, je objektno orijentiranog programskog jezika
što neki od vas možda sjećaju iz APCS ili poput.
Za sada, ako nisu upoznati, samo znam da biste koristili ovu knjižnicu
morate napisati liniju koda ovako koristeći novu ključnu riječ,
doslovno nova ključna zove novi.
Ali nakon toga, imamo neke poznate sintaksu.
To je strijela operater, koji je sličan onome što smo koristili za tvorevina u kontekstu upućuje.
Za danas PHP ne upućuje,
ali znam za sada da unutar mail varijable
je u suštini vrsta pokazivača na poseban knjižnici
da je netko napisao, a ako želim pristupiti specifičnu funkcionalnost
unutar tog knjižnici sam ne, kao u C, koristite operator strelica,
iako su to zapravo ne upućuje.
To je vrsta PHP vlastite verzije istih.
To znači ići u knjižnicu i pozvati IsSMTP funkciju.
SMTP, podsjetimo, od naših ratnika u neto odnosi na e-mail,
i to samo znači koristite e-mail server za ovaj Frosh IM registracije.
>> Što domaćin ne želim koristiti?
Pa, Harvard, ako Google okolo, ima e-mail poslužitelj zove smtp.fas.harvard.edu.
Ako igrate zajedno kod kuće ili živite na Comcast mreži
to bi moglo biti nešto poput smtp.comcast.net.
To potpuno ovisi o tome gdje živite i koji je vaš ISP.
Nakon toga ću postaviti svoje adrese iz proizvoljno da bude jharvard@cs50.net.
I onda ću postaviti na adresu biti jharvard@cs50.net.
Jedini način sam znao da ove funkcije su pozvani SetFrom i AddAddress
je, opet, čitao sam dokumentaciju.
To nije vrsta magično poznato da sve programera.
Tada sam postavio temu na "prijava".
I sad ova linija je malo ružno, jer što ne znači dot operater u PHP-u?
Bilo tko znati?
Spojite.
U C je bol u vratu spojite 2 žice zajedno.
Morate se nositi s malloc ili realloc ili sve te stvari
samo produljiti duljinu niza.
U PHP, u JavaScriptu i drugim jezicima
obično možete to učiniti s jednim karaktera.
U ovom slučaju, točka znači uzeti ovaj niz ovdje
i dodati na njega ovaj string.
>> Oh, i usput, dodati na njega ovaj niz,
što se događa da se varijabla unutar tog super globalnog.
Zatim dodajte na njega novu liniju, tako da sve od ovih točaka samo znači
držati što veći i veći i veći niz,
i ne morate brinuti uopće o malloc ili kao u jeziku kao što je ovaj,
a tu je i drugi načini da to učinite, ali ovo je jedan od najbrže
načina da ga nokautirati.
Što se to radi?
To je stvaranje e tijelo koje će reći Ime: Kapetan: Spol: spavaonica:
sve na odvojenim linijama, a onda na kraju,
jedna linija koda, a ja ću ignorirati to za sada.
Ako == false samo znači ako je nešto pošlo po zlu,
ali magija se događa ovdje.
Mail poslati znači poslati ovu poruku.
Idemo vidjeti što Neto rezultat je.
Na dnu datoteke, primijetit to će reći da su registrirani doista
ako ja dobiti tako daleko.
Ako, međutim, korisnik vijci gore, primijetiti da smo započeli ovu
ako stanje ovdje gore, ako to nije prazna, a ne prazna
a ne isprazniti mi poslati mail.
Inače ćemo poslati ovu liniju koda,
koje će imati učinak, kao što ćete vidjeti u pset 7, od preusmjeravanje korisnika
natrag do mjesta gdje su došli, froshims3.php.
>> Fige, inače će to biti najviše razočaravajući demo danas.
Ovdje ćemo ići.
Dopustite mi da otvori svoju e-mail sandučić za jharvard u Gmailu.
Ne e upravo sada. U redu.
Sada neka mi otvoriti froshims3, koji je treći i posljednji primjer ćemo pogledati ovdje.
Ok, ovdje mi ići.
Nate, on će biti kapetan, muškarac, iz, recimo, Apley.
Registrirajte se. Ok, vi ste registrovani stvarno.
Sada, ako sam pomaknite se na moj e-mail, Bože moj.
Upravo sam dinamički poslao e-mail na webu.
>> Ostavimo na toj bilješci.
Video je u pripremi za predavanja smo propustili. Vidimo se sljedeći tjedan.
[CS50.TV]