[Powered by Google Translate] [Teden 8]
[David J Malan] [Harvard University]
[To je CS50.] [CS50.TV]
>> Dobrodošel nazaj.
To je CS50, in to je začetek tedna 8.
Nekaj ​​možnosti je ta teden
Med njimi je ta pogovor tukaj, na katerem bodo nekaj hrane je treba vročiti.
Za več podrobnosti si oglejte diapozitive, ki so na spletu.
In še en dogodek, je ta teden z lastnim Thomas Carriero.
On je eden od nekdanjih sodelavcev učnih CS50 za glavo, ki je zdaj na Dropbox,
in on je tisti, ki nas je zasvojen z veš kaj,
tako da če hočeš več tega glavo na svojem govoru danes popoldne za Dropbox in še več.
CS50 kosilo je ta petek.
Ali se nam pridružite, če ste lahko, 1:15, kot ponavadi, na ogenj in led.
>> In zdaj smo se potopite v nekaj, kar ti seminarji.
Naši CS50 Seminarji, pozive, so te neobvezne razredi pod vodstvom učnih štipendistov
Tečaj in sodelavci in prijatelji seveda,
Ljudje iz skupine na univerzi imenuje ABCD, ki je skupino
tehnofili na univerzi, kot tudi skupina imenuje HCS,
Harvard Computer Society, študenti, ki so prav tako zainteresirani za računalništvo.
Roster Letošnji seminarji tudi seminarje na Android in iOS in JavaScript
in PHP, Unix, Vim, in še več, da zavedaš, da ti seminarji prihajajo.
Če želite RSVP za katerega koli od njih glavo na tem URL-ju tam.
Nato bomo objavili na spletni strani seveda na čase in kraje, ko so zaključene.
Ampak vem, tam je vredno 5 letošnji predhodnih seminarjev na voljo na spletu,
od katerih so mnogi še vedno zelo veliko toka v smislu tehnologije, boste morda
se rad igral z za vaše končnih projektov, tako da je za nekatere glavo na voljo video posnetki njih.
>> CSS, tiste, ki so seznanjeni s CSS že
Kaj je na kratko?
Kaj je CSS?
To je Cascading Style Sheets, in kaj to pomeni?
Kaj naj bi to naredil za nas, CSS?
V redu, dajmo se ogreje z lažjim 1, HTML hypertext markup jezika.
Kaj naj bi to naredil za nas?
Kogarkoli?
To je že res nerodno temi vprašanji.
HTML hypertext markup language.
Ja? Ne?
[Neslišno študentski odziv]
Dobro, dobro, to nam omogoča, da označite besedilo za prikaz v spletnem brskalniku.
To ni programski jezik.
To je res označevalni jezik, kar pomeni, da navodilo, kako brskalnik prikaže
informacije, zato najpreprostejši inkarnacijo to, kot smo videli
je nekaj super enostavno, kot boldfacing, oklepaj b zaprti oklepaj pravi
da to besedilo krepko, in to je pravzaprav le ena od mnogih načinov
, v katerem lahko storimo, da, in res, te dni boljši pristop
da stylizing vašo spletno stran, tako da se stvari krepko in ležeče
in osredotočen in utemeljiti in podobno, se ne izvaja prek oznake HTML sami
ampak s tehniko, imenovano CSS, kaskadnih slogov.
To je jezik zase.
To tudi ni programski jezik, ampak,
vsi, to je Dan, ki ohranja nam pridružite še danes.
Nekatere tehnične težave. Ni problem.
>> CSS nam omogoča, da Stilizovati stran
z vzpostavitvijo tako imenovane lastnosti, tako da je lahko pogled na to
s pomočjo nekaterih osnovnih primerov.
Naj gredo v aparat danes.
Imam izvorno 8 ponedeljek imenik tukaj,
in jaz grem v mapi CSS, kjer imamo cel kup
datotek, ki čakajo na nas tukaj,
in v tej mapi imamo, na primer, search0.html v zadnjem času.
Zdaj, opozarjajo s search0 smo odšli na to opombo
z neke vrste uporabo Google ali res samo sprednji konec za to je teden dni nazaj,
in ugotovili, da smo imeli nekaj novih oznak tam.
Imeli smo h1 za velik, krepko naslovom,
obrazec, ki nam je omogočilo, da bi dejansko imeli HTML obrazec za vnos uporabnika.
Tožba, kakšen je bil pomen akcijskega atributa
na oznako HTML obliki?
Kakšen je bil pomen tega, ukrepanje?
Pravkar bom naredil danes.
Akcija je kraj, kjer se bo obrazec je treba predložiti.
Dejstvo, da je ta pravi action = "google.com / search"
pomeni, da ko uporabnik klikne gumb za pošiljanje ali enakovredno
ne glede na obliko polja se izpolnijo se bodo ne pošlje na naš strežnik
ali naše naprave, temveč za to določen URL na Googlu.
In način, da bo uporaba pozval dobil,
in se, za zdaj, je samo tehnika za posredovanje informacij skupaj na spletni strežnik
prek URL-ja, tako da je na hitro pogledamo nazaj, kako to deluje.
>> Obvestilo, da je vložek, katerega ime je q
katerih tip je besedilo in nato drugi vhod tipa predloži
katerih vrednost je CS50 iskanje, in seveda, če bomo odprli to datoteko tukaj,
search0.html, to je super preprosta oblika,
in če iščem nekaj podobnega računalništvu
in nato pritisnite tipko Enter ali kliknite na CS50 Iskanje
opazite, da kaj se zgodi, je po prihodu v Googlu
Sem izrecno pristal na tem naslovu na vrhu,
google.com / search q =? računalnik + znanost,
in računalništvo je očitno tisto, kar sem vtipka
+ Pomeni samo, da je, kjer je presledek,
in je to storjeno z brskalnikom samo, da se prepričajte, da ni
zmedenost in prazen prostor v dejanski URL.
In potem q, seveda, je parameter ime.
Nismo videli, kako smo, programer, lahko dejansko dostop q še.
Domnevamo lahko, da Google ve, kaj storiti s to tukaj,
ampak bomo prišli tja pravočasno danes.
>> Ampak, dovolite mi, da si namesto na search1.html,
ki izgleda nekoliko drugače, saj sem se odločila, da je bila ta oblika tukaj samo malo čudno.
Mislim, da je v zgornjem levem kotu.
Tam je res ni estetika z njim, zato želim to Stilizovati
malo več, kot so Google, čigar spletna stran, odpoklic,
čeprav morda ne boste ga obiščete, ki pogosto izgleda tako danes na noč čarovnic.
Če bomo namesto tega odprli različica 1 te datoteke, iskanje 1.html, sem jo na sredino.
Še vedno zelo grdo, ampak vsaj zdaj sem se začela nadzirati estetiko tej strani
ne samo označevanje spremljanje.
Oglejmo si na iskanje 1, in tam je res samo ena razlika tukaj,
ki lahko skoči ven na vas, ali pa tudi ne,
kaj pa je ena vrstica ali košček razlike?
>> Tam je ta stil lastnost, da se izkaže, da je v HTML
večina elementov, večina oznake so slog atribut na njih,
in znotraj tega stila atributa je naveden niz
in ki je navedena niz je CSS.
Vi lahko postavite kaskadno slog stanja tam
ki jih je opredelila kot nepremičnino ime
sledi dvopičje sledi vrednost.
To je neke vrste nesrečnih odločitev projektiranja pred nekaj leti
CSS je, da je jezik zase,
ampak sintaktično je zelo drugačen od HTML.
V tem primeru vidimo, da je notranjost moje spletne strani, ki je napisana v HTML,
Imam CSS znotraj teh ponudb, in konvencija za CSS
je, da imate vse, kar se imenuje lastnost, ki ji sledi, spet, debelega črevesa,
sledi vrednost teh nepremičnin, tako da ni enačaj.
Ni nobenih dodatnih narekovajev.
To je samo to dvopičji ločen ključna vrednota par,
in besedilo linija počne točno tisto, kar piše.
To uskladi besedilo v telo strani, ki je res poguma strani,
v centru.
>> Ok, končni rezultat pa, da je jasno, je to.
Ni vse, da bolj seksi, ampak vsaj je bilo na sredini in malo več kot pravi Google.
Kaj pa, če bi namesto tega odprla različico 2 tega
in poudarjajo, dol novo oznako v celoti?
Zdaj v glavi moji strani, ki je prej imel le oznaka, ki
v vseh prejšnjih primerih?
Prav tako je to naslov.
Pred nekaj trenutki glavo tag videti takole.
Zdaj, namesto da ima slog oznake notranjosti njo,
in tudi to, se opravičujem, sintaktično izgleda zelo razlikuje od HTML,
vendar se navadiš nanj, pri čemer notranjost slog oznake
Sedaj lahko dejavnik, kaj je bilo pred nekaj trenutki
atribut, slog atribut, in sem lahko dal na sam vrh moji strani.
>> Zakaj?
No, to je korak k čiščenju stvari, podobno kot v pisni obliki C kodo
mi bi včasih napisal funkcije za faktor od skupno delovanje.
To je samo malo čistilo za začetek faktoringa od stvari, kot so estetika
na enem mestu, kot pa da imajo vse Razasuti v vašem HTML.
Tudi to ne, kaj pa pravi, čeprav je malo novega sintakse.
Tole je selektor in telo pomeni le, da izberete element telesa
in uporabljajo naslednje lastnosti z njo.
No, hotel je popolnoma enak.
Za dobro mero sem dodal podpičje na koncu,
kar kaže, da je konvencija, in sem zavit vso to lastnost
v zavitih oklepajih, ker sem dejansko imajo različne stvari tukaj.
Lahko bi rekla kaj takega dejansko barvo: modra;
>> Zdaj tudi to ne bo korak v smeri kaj vse to lepše,
če pa sem zdaj šla nazaj na različico 2 sem zdaj vsaj na moje telo
Stran je besedilo vse modro.
Gumb ostane enak, ker je to vhod. To ni čisto besedilo.
Ampak vse ostalo, da je besedilo, kot CS50 Search do vrha, je v modri barvi dejstvo.
Še enkrat, vse kar smo storili, je zdaj odstraniti iz telesa oznako, obvestilo,
slog atribut, mi pa smo ga izoblikoval tukaj.
To ni velik napredek, ampak če bomo to še korak dlje
opazili, kaj lahko naredimo v tej tretji različici tukaj.
>> V search3.html spletna stran je skoraj identičen
razen za tisto novo oznako zdaj?
Link, tako da se ta ne preveč posrečeno imenuje
ker si ne povezuje v smislu klikniti hiperpovezave.
Namesto, da si neke vrste početje enakovredno vključujejo v C #
pri čemer link tag z href atribut
in rel atribut pravi, pojdi
in kopijo prilepite vsebino v datoteki z imenom search3.css tukaj, v bistvu.
To ni čisto naredil, ampak to je duh tega.
Pravi, da gre odprto datoteko, search3.css,
in ga obravnavajo, kot da bi si jo vnesli tukaj, v glavi strani
tako kot sem v prejšnjem primeru.
Search3.css, medtem, je zelo preprosta.
Je res samo vsebuje točno to, kar je pred nekaj trenutki
v stilu oznako, vendar sem izoblikoval ga tukaj v svojo datoteko.
>> Čeprav nismo porabili veliko časa sploh v HTML ali web programiranje
samo intuitivno, kaj je motivacija, morda za faktoring iz
ta majhen delček še CSS v svojo datoteko
in ga nato tudi s to oznako povezava tukaj?
[Neslišno študentski odziv]
Ok, to je lažje brati v smislu, da imate v CSS CSS datoteko.
Imaš svoj HTML v datoteko HTML, tako da je bolj berljivo v tem smislu.
Kaj drugega bi lahko izsiljevala? Ja.
[Neslišno študentski odziv]
Ja, tako da lahko tudi že velikokrat, tako da zdaj delamo to
Osnovni primeri s posameznih datotek, ampak predvidevam, da ste dejansko pripravi
pravi spletni strani, kot si bodo za pset 7 ali vaš končni projekt morda,
in če želite imeti več spletnih strani, kot je vsekakor značilna za
dejanska Wide Web svetovni, in da bi bilo nekako hromi
da so za kopiranje in lepljenje isto modro barvo
in enako besedilo poravnano center, v vsakem od teh strani.
Namesto tega je bolj smiselno, da faktor ven, tako kot smo naredili v C
z datoteko. h, ga v enem osrednjem mestu,
v tem primeru search3.css in počakajte, da vse datoteke
v vašo spletno stran, da bi dejansko tudi to datoteko s pomočjo te oznake tukaj v vrstico 16.
Kot je značilno, smo začeli z različico 0, katere vrste dela
vendar ni nujno najboljši, in z vsakim korakom,
iskanje 1, iskanje 2, 3 in zdaj iskanje smo sprejeti teh baby korake
proti modelov, ki so nekoliko čistejši in bolj pripravljalni
za bolj zapletene strani, ki bi lahko počnemo po cesti.
>> Naj odprla še zadnji primer tukaj samo za prikaz
še bolj stiliziran stran, ampak najprej poglejmo HTML.
To je search4.html in opazil, da je strukturno skoraj enako
razen za uvedbo nove oznake, div.
Div je oznaka, ki uvaja razmejitev strani.
Si lahko zamislite, da je to nevidno pravokotnika.
Ta vrsta ustvarja plasti površine v spletni
da lahko Stilizovati naenkrat.
Kar sem tukaj naredil, je, kot sledi.
Znotraj mojega telesa oznako, ki je bil tam ves čas,
Pravim, da ustvarite delitev strani tukaj preko linije 45 do 47,
kar pomeni, da v bistvu mi nevidni pravokotnik na vrhu strani.
Potem pa daj mi še eno pravokotnik, čeprav je nevidna, ki je nižja,
in ga označiti z imenom vsebino, nato pa na koncu,
dajte mi 1/3 delitev strani na dnu
imenovano ID.
Bomo videli, zakaj sem to storil vsak trenutek,
vendar konceptualno imam glavo delitev.
Imam vsebine delitev in imam noge delitev strani
čeprav so to samo v oznakami.
Uporabnik ne bo videl 3 pravokotnike,
ampak nekako strukturno tam v ozadju
oni so dejansko prisotne.
>> Torej, koga briga? Zakaj pravzaprav to?
Vse ostalo na strani je enaka kot smo videli prej.
Tukaj je moja obliki. Tu je moj prispevek, moj prispevek, prelom vrstice in tako naprej.
Tukaj je slika, čeprav, tako da bomo videli, kje je to prišlo v trenutku.
Tukaj je noga, ki je nov, samo zato, ker sem želel, da uvede
nekaj več vsebin tukaj.
Če bomo opazili, da se pomaknete navzgor ID te div je glava.
Identifikacijska tega div je vsebina, in ID ta je nogo.
In kot že ime pove, če imate osebno lastnost
v HTML, po definiciji mora enolično identifikacijo
eden izmed elementov, ena od oznak na vaši strani.
Breme je popolnoma na vas, da se spomnite, da imate v glavi že ID.
Imate nogo. Imate že Content ID.
Računalnik ne bo ugotoviti, kaj je na voljo številka je za vas,
tako da bi lahko po nesreči dal 2 tags ID za glavo,
in da bo ravno narobe.
>> Imate v mislih to, kar ste ustvarili,
ampak ko ste storili to obvestilo, kaj lahko naredimo tukaj.
Zdaj lahko določite v mojem stilu oznako na vrhu
ali enakovredno v datoteki CSS, če sem še vedno uporabljajo to različico,
Lahko rečem # glavo, in kaj to pomeni, da ne glede na oznako
V tej spletni strani ima ID za glavo
in #, samo zaradi človeške konvencije, zastopa ID.
Močno znak ali lojtra predstavlja ID.
Glava je ime, ki sem ga dal.
To pomeni, da uporablja nepremičnino CSS
da ne glede na oznako na tej strani nosi ID glavo.
Enako se ukvarjajo tukaj.
Uporabi to lastnost, ki se zgodi, da je ista, za vsak sestavni del
ID katerih je vsebina, nato pa dol
Opazili sem malo Ljubitelj z nogo.
Vsak element, katerega številka je noga, ki lahko obstaja samo ena po definiciji
iti naprej in da je njegova velikost črk manjša,
njegova teža pisavo krepko, 20 pik je stopnja.
>> Kaj to pomeni?
To je le stopnja na vrhu, na dnu, levo in desno.
To pomeni, da mi 20-pixel nevidni kapital okoli njega
Samo za potiskanje vse ostalo od nje malo, kot lahko naredite v Wordu,
Microsoft Word ali spletnih strani in podobno.
In potem besedilo uskladiti center.
Poglejmo na končni rezultat, potem pa se bomo vrnili do edino preostalo odrezek CSS tam.
To je različica 4, naš zadnji za iskanje primerov, in to je veliko, veliko bolj seksi.
Zdaj, v poštenosti, sem Googled "Google generator pisave logotip."
In to mi je omogočila ustvarjanje GIF, slika obliko, ki izgleda kot da je tam.
V bistvu, lahko to storite tudi.
Imamo "Google pisave logo generator."
>> Poglejmo, če lahko to naredimo.
V redu, mislim, da je na spletni strani sem.
Lahko rečemo, ES 10, na primer, in da jim sami.
Igrate lahko s tem ves dan in nato z desno kliknite nanjo
in nato naložite dejansko GIF, ki je vse, kar sem storil.
In res, zato v mojem HTML spomnim, sem
Imel sem oznako slike, ki smo jih videli na kratko prejšnji teden
, katerega vir je logo.gif.
In kaj je še bil razlog za to imajo atribut ALT,
ta alternativa atribut?
Ja.
[Neslišno študentski odziv]
Dobro, torej 2 razlogi res, če brskalnik ne more dvigniti sliko
ker imate počasno povezavo z omrežjem, ali je slika poškodovana
ali kaj podobnega, vsaj lahko človeško glejte "CS50 iskanje"
, nato pa tudi zaradi dostopnosti.
Če imate uporabnika, ki je slep in uporabljate bralnik zaslona
in zato seveda ne more videti slik, ki jih lahko vsaj
slišite besedilo, če je njihov računalnik ga govori z njimi.
>> Na splošno je to najboljša praksa, ko gre za dostopnosti strani
tako, da lahko tudi uporabniki v tem primeru videli ali slišali, da se tako izrazim,
kaj je to, da je na tvoji strani.
Še ena stvar je, da sem tu
kar je malo zanimiv, pa bomo videli več o tem v težave iz 7
preko ene od kratkih hlač pod vodstvom enega izmed učnih štipendistov.
Toda # vsebina se nanaša na oznako
ID katerih je vsebina, ampak potem je presledek, nato pa je beseda vhod.
No, kaj je zanimivo CSS je, da lahko
nanašajo na oznake na strani nekakšno hierarhično
in kaj je ta odlomek pomočjo CSS je bil tablico
ID katerih je vsebina, in nato uporabite naslednje lastnosti
za vse vhodne oznake, ki so potomci vsebin,
to je, da so zamaknjena notri.
Zamik, še enkrat, je pomembno le, da računalnik, ne na človeka,
vendar imajo po konvenciji smo alinea stvari, ko gremo globlje v stran,
To pomeni, da veljajo meje v 5 pik za vse vhodni element
da je nekje v notranjosti ali ugnezden znotraj
element, katerega številka je vsebina.
>> Kdo je pa to nanaša?
No, tam je pravzaprav le ti 2 fantje tukaj.
Obvestilo, da je notranjost obliki obstaja 2 vhoda,
kot je bilo v vseh teh primerih.
Ampak obvestilo, da so ti 2 vhoda zgodi, da se v notranjosti ugnezdena,
čeprav malo globlje, nekaj plasti zamika,
Notranjost oznako, katere številka je vsebina.
Kaj to pomeni?
Če gremo v brskalniku, tu lahko vidite vedno tako malo-
Naj povečavo, da je malo oblazinjenje med gumbom
in med besedilno polje.
>> Naj začasno Ugasnite.
Naj grem do mojega CSS, in mi gredo naprej in tako
spremenite stopnjo od 5 pik do 0 točk.
Naj gredo naprej takrat in shranite datoteko, pojdite nazaj na iskalnik
in osveži, in pazi na sredini strani.
Vse, kar je dobil skupaj stisnjena, ko sem prvič stepeno ta primer navzgor
Mislil sem, da je videti neumno z besedilno polje in nato gumb takoj pod njim.
Želel sem pad je malo, zato sem predstavil marže.
Kaj ne bo šlo v predavanju je šel skozi nekaj deset
CSS lastnosti, ki obstajajo, ker, še enkrat, obstajajo stvari, kot so velikost črk,
font teža, stopnja, besedilo uskladiti, in še nekaj deset drugih,
in vam bomo sklicujejo na problem iz 7 različnih vaj spletne
in reference, ki vam omogočajo, da poberem te stvari.
Toda kaj je res pomembno ob koncu dneva
>> je razumeti, kako se te stvari.
Tudi, če imamo slog tag znotraj katerega
Lahko greš selektorjev, vrsta identifikatorjev, ki določajo
, za katere želite, da se te lastnosti,
in potem daš lastnosti, kot para ključev vrednost
ločeni z dvopičjem, nato pa se je končalo s podpičjem,
ali lahko razporek vse to ven in ga dal v posebni datoteki CSS
samo po sebi.
V redu, na vsa vprašanja o konceptih
ali velika slika CSS?
Boste spet videli več od tega v pset 7,
ampak bomo še naprej na splošno precej preprosto.
Ne? V redu.
To je čas za dejansko programskega jezika,
in se vrnemo v malo CSS v obliki npr.
PHP je pravzaprav nadvse dostopen jezik
s tem da je sintaktično skoraj enaka C.
Z drugimi besedami, če veste, C, veste, za večino del PHP,
vsaj sintaktično, čeprav so nekatere nove funkcije
in bomo nekaj novih konceptov moramo gledati.
>> Toda za večino del, zdaj, ko smo prehod iz C v PHP
večina novih stvari je res v veliko sliko,
kako uporabiti jezik za program, na spletu, v nasprotju z
v ukazni vrstici ali utripa hitro, kot smo počeli doslej.
Za referenco, zlasti pset 7 in končnega projektnega dalje,
Ne izkoristite ta URL tukaj, če želite prebrati gor na formalnosti PHP.
To je dejansko všeč prost online učbenika učinkovito,
in boste tudi ugotovili, da je tisto, kar res lepo PHP
je, da obstaja na stotine funkcij, ki prihajajo z njim,
ker je v C-ti niso nujno imeti dostop do
Več funkcij kot so bili v matematiki knjižnice, CS50 knjižnica.
V PHP in veliko modernih jezikov, Python in Ruby med njimi,
boste dobili dostop do tako veliko več funkcij, kar pomeni, da boste dobili, da napišete
veliko manj kode, saj lahko stojijo na ramenih drugih ljudi
ki so že napisal nekaj stvari za vas.
>> Oglejmo si kratko predstavitev skladnje PHP in napišite nekaj primerov.
Kaj je lepo o PHP v prvi vrsti
se ni glavna funkcija.
Če želite napisati program v PHP ste ga pravkar začeli pisati kodo,
in vam ni treba skrbeti za glavni.
Ni int. Ni vrnitve.
Ni argv, argc, ki je potrebna, ko pišete program.
Nasprotno lahko samo začnete pisati kodo, in to je deloma
ker PHP je tisto, kar se imenuje razlaga jezik.
C je bil sestavljen, in to je bila izdelana v smislu, da začnete
z izvorno kodo, prost dostop do Jek, ki je prevajalnik,
in na koncu po nekaj več korakov, ki jih dobite predmetne kode, 0 in 1 sekundo.
PHP in Python in Ruby in Pearl in drugi
različne vrste jezikov, ki jih ne pripravijo.
Saj ne gre iz izvorne kode v 0s in 1s.
Pravkar ste teči izvorno kodo in zaženete izvorno kodo
s pisanjem na običajen besedilno datoteko, ki se konča v. php v tem primeru
namesto c,. in kaj je program na vašem računalniku
je dobesedno razume svojo kodo po vrsticah z vrvico.
>> Z drugimi besedami, namesto da napišemo program in zaženite program
neposredno namesto tega napisati program z datoteko s končnico. php.
Nato zaženete dejansko program, imenovan php.exe, če ste v operacijskem sistemu Windows,
ali pa samo PHP, če ste na Mac OS in Linux
in si zagotovi kot prispevek k programu PHP svoje izvorne kode,
in njegov namen v življenju je, da se glasi svojo kodo zgoraj navzdol, od leve proti desni
in ne glede na to, da ste povedali, da ne.
>> Poglejmo, kaj se dogaja, da sintaktično pomeni.
V PHP imamo pogoje.
Ta stran je enaka kot tisto, kar ste videli že v 1. tednu
ker je sintaktično pogoji, IFS in drugod IFS in drugje v PHP
videti natanko tako.
Ko gre za matematičnih izrazov, da boš izgledala natanko tako, kot je ta.
Ko gre za anding stvari skupaj, kot booleans da se bo izgledala natanko tako, kot je ta.
Stikala videti enako, in dobili boste dodatno prednost v PHP
da preklopi v C lahko samo vklopimo ali char int.
Ne moreš vklopiti niza vrednosti.
V PHP lahko dejansko ima izraz
da je spremenljivka, katere vsebina je niz,
in lahko dejansko narediti primerjavo niza v realno intuitiven način,
ne primerjave kazalec, da se odločijo, ali bodo to zadevo i ali j ali kaj drugega.
Bomo videli, da bi lahko kmalu.
>> Loops tudi čudovito enaki.
Za zanke imajo inicializacijo, kar je pogoj, in nekaj več novosti.
Čeprav obstajajo tudi zanke v PHP.
Ali pa obstaja tudi zanke v PHP,
in nizi obstajajo v PHP, ampak tukaj je, kjer je sintaksa začne, da bi dobili malo drugačen,
vendar koncept je enak, in koncepti so res enaki
kot so bili v tednu 0 s Scratch.
V prvi vrsti je znak $.
To je bilo oblikovanje odločitev v PHP, pri čemer vsaka spremenljivka
v PHP pri načrtovanju se začne z znakom $.
Nič več X, Y, Z. To je sedaj $ x, $ Y $ Z samo zato, ker.
To je nekaj, da v mislih, zdaj pa na desni strani
To je podobna matriki,
vendar smo z oglatimi oklepaji tukaj.
V PHP in JavaScript, kot bomo sčasoma videli,
opredeliti niz počnete odprto kvadratni nosilec in zaprt oglati oklepaj,
in potem imate vejicami ločen seznam vrednosti, ali ints
ali nize ali nabora znakov, kar hočeš, znotraj tega izraza tam.
>> Zdaj, kako smo storili kaj takega v C?
Kaj je sintaksa za statično razglasitvi niz znanih številk?
To je bil zavite oklepaje, da manjša razlika tukaj, ampak v obeh PHP
in na koncu JavaScript je samo uporablja oglatih oklepajev, tako da res
edina zanimiva podrobnost tukaj je $ znak imena spremenljivke
in tudi oglati oklepaji, in tam je ena stvar zanima
, ki je bila izpuščena tudi na levi strani pod znakom =.
Kaj manjka, da smo se zahteva za več tednov? Ja.
[Neslišno študentski odziv]
Velikost, tako da ni omembe velikosti matrike.
Odkrito povedano, ni omembe oglatih oklepajih na levi strani
za znakom =, in kaj manjka v vrsti?
Ja. >> [Neslišno študentski odziv]
Tip, kaj je zanimivo predvsem PHP
je, da ne gre za močno natipkana jezik kot C,
In to je zelo vnesli v smislu, da je treba reči, da zna,
morate povedati int, morate povedati plovec.
>> Kadarkoli želite spremenljivko moraš povedati Jek kakšen je njen tip.
PHP je malo lazier.
To je ohlapno vnesli v smislu, da
lahko imajo plovce in chars in godala
in ints in tako naprej, vendar pa je jezik sam
v resnici ne zanima, kaj si dal notri spremenljivke.
Saj ni treba obvestiti vnaprej, kaj tip podatkov
se dogaja v spremenljivko.
To je povsem odvisno od vas, tako da je to lepo
v tem, da vam ni treba skrbeti toliko o vnesete podatke
in skrbi, kakšne so vaše trditve in tako naprej.
To tudi pomeni, sčasoma funkcije v PHP se bodo lahko vrnili
bodisi int večino časa, morda enkrat v nekaj časa
da bodo vrne int, boolean False, na primer, ki nakazuje, da je šlo nekaj narobe.
To nam daje nekaj upsides, vendar pa bo tudi, da nas nekako po svoji zasnovi
Malo lazier, ko gre za tipizacijo podatkov.
>> Kaj še, da v mislih?
Spremenljivke videti precej všeč, tako da je $ = "Pozdravljen svet".
To je morda izpeljan iz prejšnjega primera,
in imamo drugo vrsto zanke.
Ta bomo dejansko videli enkrat v nekaj časa, saj je zelo priročno,
foreach konstrukt.
V tem primeru se zanka foreach se znotraj njenih besedah ​​običajno oklepajev 3,
$ Nekaj ​​prvi, ki je kar matrika želite ponoviti več članov,
potem pa dobesedno ključna beseda kot, nato pa na koncu,
drugo ime spremenljivke, ki lahko izbirate.
To je lahko foo, bar, ali element,
in kaj je ta konstrukt ne
je, če je $ matrika vsebuje 10 elementov
na vsaki ponovitvi to polje, žal, na vsaki ponovitvi te zanke
spremenljivka imenovan element, se bo posodobitev
da je prvi element v polju, nato pa je drugi element v matriki,
potem Tretji element matrike, s tem odpraviti potrebo
narediti malo siten kvadratnih zapis nosilec in
$ I, da bi se kazalo v matriko.
PHP pa vse to dela za vas in za vsako ponovitev
Samo roke si naslednji element iz matrike
ne da bi morali vedeti o skrbi za svoje ali številski mesto indeksa.
>> In potem končno, za zdaj še ena značilnost PHP
da se bo to lahko zelo koristno, še posebej, ko smo začeli načrtovanje na spletu,
in da je znan kot asociativni array.
Se plošča, ki jih poznamo doslej od 20 sekundami
in so v zadnjih 8 tednov številčno indeksirana polja,
vrsta tradicionalnih polj, kjer so indeksi so ints,
0, 1, 2, vse tja gor.
Asociativne nizi so veliko močnejši.
Te vam omogočajo, da imajo poljubne tipke,
poljubni indeksi in samovoljnih vrednosti.
Ker je v tradicionalni niz je 0, 1, 2,
v asociativni niz lahko imajo indeks
ali ključ foo katerih vrednost je bar.
Lahko pa še en ključ, katerega ime je BAZ in katerih vrednost je razvrstitev za.
>> Spet neumni računalništvo generična imeni spremenljivk tukaj,
ampak dejstvo je, da ta matrika nima bracket 0 ali 1 nosilec.
To se dogaja, da imajo namesto nosilec foo in nosilec Baz.
To je veliko bolj vsestranski, da bomo lahko povezali
Besede z drugimi besedami, ključe z vrednostmi povsem samovoljno,
in bomo lahko dobili nazaj te vrednote nenehno v času
ker je pod pokrovom, kar asociativno polje
Res je, je razpršena tabela.
Spomnimo se, da je razpršena tabela vam omogoča, da v nekaterih vhodnih
rad spravil v besede Davida, če želite vstaviti Davida v neke vrste slovarja,
in potem dobiš nazaj nekaj vrednosti običajno.
V primeru speller pravilna ali napačna.
David ali karkoli beseda ali ni v slovarju.
Asociativni array je res samo razpršena tabela,
vendar je veliko bolj prijazen do uporabnika utelešenje tega.
Kot bomo videli, da se dogaja, da nam omogočajo, da narediti nekaj stvari
zelo, zelo enostavno.
>> Oglejmo si nekaj osnovnih PHP
primeri in videti, kaj lahko naredimo s tem jeziku.
Naj gredo naprej in odprla v našem izvornega imenika danes
datoteka z imenom hello1.php.
Ta datoteka je bolj pripomba, kot je dejanska koda
zato naj dejansko odstraniti vse pripombe iz spisa
in Predstavljam vam morda najpreprostejši PHP programskem tukaj.
5 linij in nekateri izmed tistih, ki so prazen prostor,
tako opazili nekatere ključne razlike tukaj.
Datoteka se imenuje hello1.php.
Prva linija, čeprav je <? Php.
Podobno kot v duhu HTML,
Zaporedje znakov, ki pravi, da računalnik
"Hej, računalnik, prihaja programa da smo v v PHP."
To zagotavlja, da se ne zamenjujejo, da je nekdo drug jezik.
Linija 2 je zanimiv bel prostor.
Črta 3 je naš stari prijatelj printf,
tokrat v okviru PHP.
PHP ima svojo verzijo printf, ki se obnaša popolnoma enako,
tako da to je le, da bo tiskanje "Hello, world."
In potem je to ravno nasprotno tag tukaj> pomeni, da je to za mojo PHP kode.
>> Poglejmo, kako voditi to.
Jaz grem nazaj v svojo terminalsko okno tukaj.
Jaz grem v mojo PHP imenik.
Obvestilo, da imamo cel kup datotek, 1. 1, ki je hello.php.
Naj gredo naprej in zagon tega, hello1.php, vstop.
Dovoljenje je zavrnjeno. Ok.
Kako smo določene stvari, kot je to v preteklosti?
Kaj je to? >> [Neslišno študentski odziv]
Mi potrebujejo brati in pisati, vendar naj ne ls-l.
Zapomni si to nekoliko Grobni proizvodnje, s katerim hello1
Zdi se, da se da brati in pisati me
ampak prebrati vsi ostali.
Izkazalo se je to dejansko ni korak v pravo smer.
Razlika je spet z razlagati jeziku
se ne zažene program neposredno.
Če namesto tega zagnati tolmača in ga z roko zakonika
da ste napisali, da je lahko razlaga, da po vrsticah.
V tem primeru je tolmač ali program, ki sem dejansko želite zagnati
dobesedno imenuje PHP.
>> Nekje na tem trdem disku naprave je program
nekdo je napisal imenuje PHP ali na Windows php.exe.
Kaj bom naredil tukaj je, da bom dejansko vozijo PHP
ampak ga dati kot argument ukazne vrstice kode, ki sem ga napisal,
in potem bom pomanjšavo ter zadeti nastopiti.
Vodi svoj program za mene, od zgoraj navzdol, od leve proti desni.
Naj gredo naprej in odprla majhno odstopanje za to.
V hello2.php obvestila, da je to preveč
je večinoma pripomb, zato naj se znebiti tistih, kot odvračanja,
In kaj je zdaj jasno razlikuje glede te datoteke?
Tam je ta nova proga, nekoliko skrivnosten na vrhu.
V 1. vrstici je #! / Bin / php.
Bin je konvencija na Linux in Mac OS za binarne datoteke,
zato / bin pomeni, da je to mapa, ki vsebuje kup binaries
ki je programirana, od katerih je ena PHP.
#! je vzdevek shebang,
ki je hiter način, je rekel, in kaj to pomeni
je, da ko zaženete ta program, zdaj pa je namig na vrhu datoteke
, ki pove, računalnik, kaj tolmač za uporabo.
>> To postane malce nadležno, če ste imeli povedati svoje uporabnike in svoje stranke
"Hej, smo pisali ta program, imenovan hello1.php."
Vse kar morate storiti je, da vedno teče PHP, nato pa je ime tega programa.
Odkrito povedano, bi bilo lepše, samo teči hello1.php,
in seveda, če bomo lahko naredimo naslednje.
Naj gredo naprej in ls-l, in obvestilo, v hello2 je še vedno samo za branje in pisanje
nato pa preberite brati, tako da ne morem še to, hello2.php.
Vendar pa smo uvedli ta še tako kratek zadnji čas, ukaz chmod.
Če naredim chmod a + x, kar pomeni, da vse plus izvedljivosti,
in potem hello2.php in potem ls-l spet opazil kaj se je spremenilo.
Ena, Linux, ki mi ime datoteke v zeleni barvi prenesel idejo
da je izvedljivo, vendar je še pomembneje, na levi strani
opazili, da se je malo predstavlja x za izvršljiv bil določen.
Kaj to sedaj pomeni, je, da sem lahko vodijo ./hello2.php kot ponavadi,
zadeti nastopiti, in zaradi shebang v sam vrh v spis
to je namig, še enkrat, za Linux, ki pravi,
S to tolmača zagnati to datoteko.
Ne skrbite prisili uporabnika, da dejansko tip.
>> In kaj je lepo, zdaj je to, da nekako vpliva na mojih strank ali prijatelji
kateri jezik sem napisal ta program, da grem lahko naprej s mv
ter preimenovati to stvar za hello2, na primer.
In zdaj, če jaz ./hello2
in pomanjšavo moj program teče naprej.
Te končnice datotek so človeški konvencija, ki je potrebno
nekaj podobnega Jek in dopolnimo, ki so si za njih.
Ampak za PHP, sem lahko to imenujemo ničesar datoteke razširitev želim.
Lahko bi trik svet v razmišljanju, da sem res dober v Ruby,
in lahko pišem hello2.rb in zaženite to,
in voila, zdaj imam različico Ruby, ki je popolna laž.
Toda končnice datotek so brez pomena
če je datoteka izvedljiva in ima to posebno nakazuje na vrhu datoteke.
>> Zdaj, kot prahi, naj vam pokažem hitro različice 3,
, ki je neke vrste uporabne trik, da veš.
V hello3 sem naredil kaj narobe rahlo
da bom posodobiti spletno izvorne kode.
V različici 3 se izkaže, da na večini Linux računalnikov
obstaja program, imenovan env za okolje,
in kaj lahko storite, je, če nimate pojma, kje PHP
je nameščen na lokalni trdi disk, saj bi to dejansko razlikujejo glede na računalnik
da nekdo uporablja, Sredstva samo pravi zagon env,
, ki je na večini sistemov in ugotoviti, kje je PHP.
Samo skupna trik, tako da vam ni treba skrbeti za ugotavljanje, kam program.
Toda, če vam ni vseeno, kje je program in niste skrbeli doslej
lahko uporabite ki ukaz.
>> Naj pomanjšanje in tip, ki php,
in opazil, da mi pove, da je pravzaprav v usr / bin / php.
To je neke vrste laž. To je tudi v koš.
To samo kaže mi prvi udarec.
Če ste se kdaj spraševali, če je Jek, ki Jek, da je v usr / bin / Jek,
ki bi, usr / bin / narediti, in kaj to pomeni je ves ta čas
da bi lahko bili tipkanje usr / bin / Jek začne teči Jek,
ampak to je nekako dolgočasno za to, da so nekatere mape
kot so usr / bin in bin domneva, da je privzeto
tako računalnik ve, da si v njih za vas.
Vsa vprašanja o pisanju super, super enostavno Hello World programa
v PHP, nato pa teče?
Ker sedaj bomo začeli uvesti bolj prepričljiv sintakso.
V redu, gremo.
Ti programi dejansko smo videli vse od njih prej.
>> Če sem odprla, na primer, naredimo beer1.php,
da ne bo šel skozi več različic, ampak tisto, kar sem storil
sem se usedel in se razlije ali predelani
moja C kodo za PHP kodo tukaj.
Večina vrhu spisa komentarji tu gor.
Izkazalo se je, da je ena nova funkcija, moramo se imenuje readline.
GetString, odpoklic od 0 dalje tedna je bila CS50 stvar.
PHP ima svojo uporabniku prijazno funkcijo, imenovano readline
, ki traja 1 argument, ki določa takojšnje
, ki jih želite prikazati uporabniku, in kaj počne readline
se vrne, kar uporabnik vnese palcev
V tem primeru bom razglasitvi spremenljivko z imenom $ n.
Jaz shranjevanje v njem vrnjeno vrednost readline
Po česar si s tem nizu.
Samo za varnostno kopiranje, ki dejansko vodijo to stvar, naj grem naprej
in zagon php beer1.php.
Koliko steklenic ne bo? Naj pač 2 tokrat.
Enter. To je vse.
>> Program je funkcionalno enaka različica C, iz tedni.
Ampak sintaktično poglejmo, kaj je drugače.
Ko dobim int od uporabnika obvestilo, da delam nekaj preverjanje napak,
in če je n manj kot 1 sem nehal in mi izpiše
Žal sporočilo uporabniku in izstopa s 1.
Tudi to je malo drugačna.
V C Kaj smo storili? V C smo se vrnili 1.
V PHP končate z 1, ki je odkrito mislim, da malo bolj intuitivno
ker ste dobesedno zaprl program.
V redu, nato pa sem dol nadležno pesem je enako skladenjsko
razen za spremenljivke, tako da tukaj, v skladu 24 naprej
Opazili moje zanke for je skoraj enak,
vendar imam $ pred i in n,
in kaj je prav tako manjkajo črte 26, da smo imeli v preteklosti
pri razglasitvi spremenljivke i?
Ni tip.
To je napačno PHP reči int.
Vi sploh ni treba storiti.
Računalnik, tolmač PHP je dovolj pameten, da zavedaš
da če si dal nekaj v $ sem ga bo zdravljenje
kot številko za vas.
In potem tukaj smo plug $ i, $ i, $ i - 1.
Vse to je isto, potem pa tukaj delamo "Vau, to je siten" printf
in potem izhod (0).
>> Again, hrana za s seboj v tem, da čeprav bomo porabili relativno
malo časa za PHP, zagotovo v primerjavi kaj smo naredili na C,
to je skoraj enaka, in kaj bomo storili danes in naslednji teden
in zunaj je res osredotočiti na nekatere nove zamisli.
Samo da bi videl, da je ena stvar, ki ne prevajajo več od C
to je super preprost program, smo v tednu 1
ali 2, ki kubikov vrednost.
Ampak kaj je bilo zanimivo v času o tem programu je, da je
uvedel pojem meri pisno funkcije, ki jih sami napisali.
Sintaksa v PHP je skoraj enaka.
Tukaj je moj program do vrha.
Obvestilo ponovno odsotna vsak pojem glavni.
Začnem pisati kodo, in to je tisto, kar se dogaja, da se izvede tolmača.
Sem izpisal x je zdaj 2, verjetno.
Potem sem trdijo cubing ...
Potem sem poklical kocke funkcijo in prehaja v $ x
in določite vrne vrednost $ x.
Potem sem trdijo, da je kubikov, in nato sem rekel to, kar upam, da
bodo rekli, da je zdaj 8 x.
Sintaksa funkcije v PHP je vedno tako nekoliko drugačna.
Spet manjka, je donos tipa.
Spet manjka, je vrnitev vrsti in tudi manjka tisto drugo vrsto?
[Neslišno študentski odziv]
No, v redu, to je dobro. Vrnimo se k da je v sekundi.
>> Nimamo na primer int tukaj.
Ne, na primer, so tu int, ker spet v PHP
preprosto ne potrebujejo, in ne bi smeli storiti, da
ampak tam je to novo ključno besedo imenujemo funkcija.
V PHP je skoraj malo bolj jasno, saj, če želite funkcijo
dobesedno pomeni funkcijo, mu daš ime, nato pa z vejico ločen seznam
če kateri koli od njegovih argumentov.
Ni treba reči, neveljavno ali kaj podobnega, nato pa vrnitev je isto,
$ * $ * $.
Kaj je tako manjka? Sammy je na to opozorila tukaj.
Na vrhu datoteke popolnoma odsotno v PHP je tudi prototip.
Tudi to je po svoji zasnovi.
Jeziki in tolmači kot so PHP, da so pametnejši od C kdaj je bila
V prevajalniki, kot Jek.
>> Spomnimo se, da je Jek, če nisi povedal, da obstaja kocke,
če nisi povedal, da obstaja kot printf s prototipom
ali z # include, no, to je, da bo kričal na vas in ni niti zbrati kodo.
PHP in več sodobnih jeziki so veliko pametnejši, ko gre za to.
Ga bodo prevzeti sami prebrati vse vaše kode
in potem kričati na vas, samo, če ugotovi, kocke nikamor.
Ni važno, če je kocka je na dnu ali na vrhu ali celo na nek drug dokument.
PHP in podobni jeziki so zdaj dovolj pameten, da gleda naprej
na vse, preden te štele kot da je naredil napako.
Če nam to pusti?
>> Naredimo še zadnji primer tu v razmerah,
in če sem odprla conditions2.php obvestilo preveč
sintaksa tukaj je skoraj enaka.
Jaz sem z uporabo readline namesto GetString, ampak linija je isti kot prej,
"Rad bi celo prosim."
Nato sem imel, če pogoj, if, nato pa še,
ampak funkcionalno ta program je prav tako enaka kot tisto, kar smo storili pred tedni,
Torej, če sem teči to stvar, php z conditions2,
in sem ji dati več kot 23 -
Izbral sem pozitivno število. Če sem dal to sem pobral -1 negativno število.
Če sem dal to sem seveda izbral 0 0.
Torej, kdo skrbi za vse to?
No, eden od zabave vrste vaj tukaj
Zame je vsaj bil, da gredo nazaj in videli, kako hitro sem lahko izvajajo pset 5,
pravopisnih pset.
Spomnimo se, da je bila ta datoteka imenuje speller.c,
in tam je datoteka z imenom dictionary.c.
Kaj sem bil nekako preživel nekaj minut in jaz pretvori kodo C
za PHP kodo, in ne bomo porabili veliko časa na speller
ker se tako kot v pset 5 nisi res treba
preživijo veliko časa na samem speller, ker je vaša pozornost je bila v slovarju.
>> Dovolj je reči, da če ste prebrali speller,
ta datoteka tukaj, to je precej enakovredno oznako C
vam dal za pset 5.
Pravkar sem dodal nekaj dolarjev v mestih.
Spremenil sem se nekatera imena funkcij, če ne obstajajo v PHP.
Obstaja še ena stvar tukaj, preg_match,
kar je malo Ljubitelj način počne nekaj, vendar bomo prišli nazaj, da prej ali slej.
Ampak na kratko, speller je skoraj enaka, in če pogledaš na samem dnu
kaj je na koncu izpljune je to tukaj,
besede napačno zapisano besedo v slovar, besede v besedilu.
V redu, kaj je zanimivo zdaj je naslednji.
Na vrhu moje datoteke bom zahtevala dictionary.php.
Tako kot je C # vključujejo PHP ima posebno funkcijo imenovano zahteva
da je precej počne isto stvar, zahteva datoteko z imenom dictionary.php.
Kako naj grem o izvajanju pset 5?
Naj gredo naprej in odprli datoteko tukaj.
Naj se malo sklic tukaj.
In mi ustvari novo datoteko in začeti klicati v dictionary.php.
Naj ga v drugo mapo, tako da lahko naredimo to v živo.
In zdaj bom noter povečavo
Jaz bom za začetek moje PHP datoteko z odprtjem php zaprt nosilec.
In potem je tukaj bilo nekaj funkcij, sem potreboval izvajati za pset 5,
zato naj začnejo izvajati nekatere od tistih,
Tako nadzorne funkcije, ki bi morala vzeti besedo kot argument.
To bomo storili to in prišel nazaj na to v trenutku.
>> Prišlo je funkcija obremenitev, ki je v kakšni kot argument?
Slovar, da datoteka, ki sem pravzaprav želel naložiti.
Prišlo je funkcija velikosti, ki ni sprejela nobenih argumentov
in tam je funkcija, kaj je ostalo?
Odstranjevanje, ki ni sprejela nobenih argumentov, niti.
To so 4 funkcije, ki bi jih zdaj izvaja v PHP,
in kaj bom storiti, je, da gredo naprej in to.
Veliko vas uporabili razpršene tabele v pset 5,
zato naj gredo naprej in ustvariti razpršene tabele v PHP.
Končano.
To mi daje razpršene tabele. No, zakaj?
Ena se imenuje spremenljivka $ tabela, samo da pričara idejo razpršitve mizo.
Oklepaju, čeprav opozarjajo, predstavlja kaj?
Matrika, vendar nizi PHP ne bi bilo treba biti številčno indeksirajo.
Lahko so tudi asociativne nize,
kar pomeni, da imajo lahko poljubno ključe in vrednosti.
>> Podobno kot v pset 5, tisti, ki ste naredili hash tabele izvedb
verjetno vstavili besedo in jo vstavite v verigi povezanih seznamov,
ali ste shranili vrednost prave nekje ali nekaj v tem smislu.
Si nekako spomnil na dejstvo, da je beseda bila tam.
Za zdaj, da se bo moj razpršena tabela,
in sedaj, da gredo o izvajanju potrditveno funkcijo
Moram pogledati znotraj tega hash tabele
in videli, če je beseda tam.
Kaj sem storil je, da sem bom rekel, če-
recimo isset, ki je PHP funkcijo, ki dobesedno pomeni le ključ set,
Tako isset ($ tabela [$ beseda]
in če je tako vrnil res.
To je to. To je pset 5 v PHP.
No, v poštenosti, v redu.
Else return false, tako da je ni.
Kaj se v resnici dogaja?
No, če namizni ali razpršena tabela tukaj bolj na splošno,
je asociativno polje, ki pomeni, da lahko indeks vanjo
z besedo, kot je "besedo," in jih morate dobiti nazaj nekaj vrednosti.
>> Mi smo nekako dobili en korak pred nami.
To bi bilo nekako lepo, če bi dejansko naloženo datoteko prvič,
tako obremenitev ni tako preprosto, a naj grem naprej in Ščepati
res hitro izvajanje obremenitve.
Naj gredo naprej in reči besede dobi datoteke zbirko.
Datoteka funkcija v PHP odpre datoteko
in se vrne v vas paleto vseh besed v tej datoteki,
samo jih preda na vas.
To je bila velika bolečina preveč, kajne?
Zdaj foreach, to je naš novi konstrukt, foreach ($ $ besede kot besede).
Ta zanka se bo začela čez ponavljanjem matrične besede
in dodeliti spremenljivke $ besedne vsako besedo v datoteki
od prvega do drugega do tretjega do četrtega vseh poti
tako da mi ni treba storiti siten [i] zapis in podobno.
In kaj sem preprosto naredili za vsako od teh besed
se shrani v mojo mizo z indeksiranjem v tabeli
in potem gre res, ker, da se spomnimo
da je beseda v mojem slovarju, vse res morate storiti
je neke vrste flip bit in rekel te besede v mojem hash tabelo je tam, res.
In če je ni, jaz ne bi bilo treba izrecno dati napačne,
sicer sem moral dati vse možne napačne besede v vesolju.
>> Zadostuje za mene samo, da določi vrednost indeksa
se pravi, če je beseda dejansko v mojem hash tabele.
Zdaj, jaz rezanje nekaj koncev sem, da bom pomahal roke na za zdaj,
zdaj pa se izvede obremenitev funkcijo.
Naložim vse besede iz datoteke v array.
Ponovil sem nad to polje, in za vsako besedo v matriki
Jaz ga priključite na svoj hash tabelo z 1 vrstico kode.
To je zabavno. Saj veš, kako lahko izvajamo velikost zdaj?
No, velikost je vedno zelo enostavno, v poštenosti.
Tu si lahko sploh vrnili štetje mizo.
To je zelo enostavno preveč, prešteti število stvari v tabeli.
To je pravzaprav nekakšen ni najbolj učinkovita.
Verjetno bi moral imeti spremenljivko z imenom velikosti, tako da lahko to storite
v stalnem času, vendar je zelo enostavno.
Oh, in nato razložiti, če želimo, da je analni tukaj
lahko rečemo, da je, kako si razložiti nekaj.
Pravkar si nastavite spremenljivko, ki je enaka prazen niz,
in da se je znebil vsega, kar je bilo tam.
Ni potrebe, da pokličete na brezplačno.
>> Spet sem cut nekaj kotičkov, Opravičujemo se za težave niz dodeljevanje 5
morda v C, če pa greste naprej in zagon tega,
Grem v resnici vodi različico, ki sem napisal v vnaprej
samo zato, da nisem naredil nobene napake sintaktične whatsoever.
Naj gredo naprej in zagon speller. Uporaba je enaka.
Tukaj je slovar datoteka, ki vsebuje samo besedo foo.
Tukaj je besedilna datoteka, ki vsebuje samo foo bar.
Naj črkovanja to, tako speller, ki uporabljajo to datoteko slovarja na tem besedilno datoteko.
Še ena beseda napačno črkovana, bar, in voila.
Sestavljeno v pset 5.
Oglejmo 5-minutni odmor tukaj, pa bomo vrnili in še več na PHP.
V redu, smo nazaj.
Naj me ne sovražiš, za nekaj časa.
Poglejmo sedaj dejansko videli, če to ni pozitivno
dejansko izvajanje te stvari v PHP.
Ki pa je 45 sekund, da izvesti.
>> Ampak gremo naprej in zdaj vodijo stvari.
Naj gredo naprej in zagon različico C
za speller, in ga bomo teči eno največjih zbirk,
ki je King James Bible.
In to tukaj je, greva v našo mapo C,
speller na King James 5..
Veliko napačno črkovane besede.
Ok, tako da je moč si verjetno dobil, čeprav so časi nekoliko drugačni,
če imaš vse deluje pravilno, in tako čas, v skupnem črkovanja
King James Bible je 0,38 sekunde, tako da zelo dobro uporabljati to izvajanje.
Zdaj pa grem v različico PHP, ki smo ga pravkar napisal.
Naj teče speller na kralja Jamesa.
Ops, prezreti to napako. Jaz sem v napačnem imeniku.
Speller na King James 5..
Skoraj končano.
>> Ok, prebrisan opazovalec zavedajo, da je bilo več kot 3 sekunde tam.
To je res teče čas.
Izkazalo se je, da je potreben čas, da pljuvati veliko besedila, ki
ker buffering vprašanja, vendar skrajšam zgodbo,
da je bila 3,15 sekunde časa stroja, CPU čas,
v primerjavi s tisto, kar je bilo pred nekaj trenutki?
Kot 0,3.
Mislim, da je red velikosti počasneje, tako da če je to
smešno upočasnitev prihaja?
No, kot se je zgodilo z večino vseh odločitvah, projektiranja, ki smo jih
v razredu v zadnjih 9 tednov tam je skoraj vedno tako kompromis.
Včasih med samo prostor, včasih med prostorom in časom,
prostor, čas in razvojna prizadevanja in tudi tukaj, čeprav
smo prihranili ogromno časa, morda potencialno 10-20-30 ure
časa za razvoj izvajanju črkovalnik
da jo brisal v samo 45 sekundah s tem jeziku
cena, ki jo plača je, da je red velikosti počasneje kot rezultat,
in to je ponavadi pri večini vseh razlaga jezik,
PHP, Python, Ruby Pearl ali drugih čemer
če boš teči s pomočjo tolmača in jih prebral kodo
Po vrsticah, od zgoraj navzdol, od leve proti desni,
da posrednik bo trajalo nekaj časa sama,
in kaj je tu občutek v 3 sekundah v primerjavi s 0,3 sekunde
je dejstvo, da je ta posrednik, ki je dobesedno interpretirajo našo kodo
Po vrsticah, in bog ne daj, če si znotraj zanke
z veliko datoteko, ki vsebuje na tisoče besed.
>> To režijske bo sešteti in dodajte in dodajte in sešteti.
Za orodje, kot je ta, je to verjetno ni najboljši jezik za uporabo za izvajanje
črkovalnik, če neposrednosti je v interesu svoje uporabnike in za vas.
Toda razkošje imamo v tem trenutku je, če
uporabljajo jezik, kot je PHP ali veliko razlagati jezikov
v okviru svetovnega spleta, kar se tega tiče, imate korist
da je internet veliko počasneje kot pri večini računalnikov.
Imate GHz procesor računalnika, na 2 GHz, morda celo bolj v teh dneh.
Toda realnost je na internetu je visok znesek latence
pri čemer za JavaScript, da bi govoril na strežnik, čeprav smo videli prejšnji teden
da je to zelo hitro, pol milisekund ali tako,
da tudi dodaja gor, in če ste downloading stvari, kot so slike,
ali fotografija Facebook ali pridobivanje neposrednih sporočil prek Ćaskanje Facebook,
Gchat ali podobno, vse te povratnih časih
med brskalnikom in strežnikom začetek sešteti,
kar naredi vaše posebne izbire jezika v mnogih primerih
sploh ni tako pomembno, da ste v redu z nekoliko počasnejšo jezik
kot je PHP ali Python ali Ruby
za katero pa obstajajo velike upsides za vas in vaše kolege
in vaši prijatelji, saj lahko izvajajo stvari tako, toliko hitreje.
In poleg tega, da imate veliko manj tveganja za nekatere pomanjkljivosti varnosti.
Tukaj ni kazalci v PHP.
Tukaj ni SEG napake, ki jih zlahka povzročijo
na enak način, da bi lahko v C.
S K si zelo blizu strojne opreme.
Z PHP in podobne jezike, da si neke vrste višji ravni, tako rekoč,
z veliko obramb med vami in kaj se pravzaprav dogaja
v stroju, in to je samo kompromis.
>> Imamo prišel do točke, da imajo te bolj sodobno, visoko raven jezika
kot PHP zaradi izkušenj v jezikih, kot so PHP v C.
Ampak, če ne boste razumeli, kaj se dogaja pod pokrovom ves ta čas
potem zagotovo ne morete sprejeti prave odločitve, design,
in seveda, ko gre za delo na mestu, kot so Facebook in Google
Vsaka od teh krajev, ki so vedno bolj igrajo z velikimi nize podatkov
tudi če greš nazaj in ne premed in delajo z nekaj MD
na nekaterih velikih nabora podatkov vključujejo bolnike in zdravnike
in podobno uporabo pravih orodij je zelo prepričljiv
ker drugače bi vaša analiza nekega nabora podatkov traja sekund,
ali bi lahko dobesedno traja ure.
To je samo en primer, da vas ne ovirajo pri tem, koliko več napora
je bilo v C pa vam pomaga, da cenim, ko se izvajajo kaj v C
res razumete, ali v teoriji, razumem
kako je vse, ali je treba delo, in ste skoraj popoln nadzor
nad tem, kaj se dogaja pod pokrovom motorja in s tem višje ravni jezikov
boste morali odreči večji nadzor na ljudi, ki jih je izumil
in so predmet več načrtovanih odločitvah, kot vi.
Ampak, če se nam zdi samoumevno, da je učinkovitost
ni tako pomembno, na spletu, ker teh drugih vprašanj,
le omrežne hitrosti so malo počasneje, kot CPU hitrosti vseeno,
tako da bomo lahko nekako privoščiti, da uporabite nekoliko počasneje jezik
če upsides so lahko razvijamo stvari, 10-krat hitreje ali celo več.
>> Pa poglejmo, kako lahko začnemo s tem.
Naj gredo v mapo
Med primeri današnje pozval frosh.ims,
in je to dejansko osebno motivirani z dejstvom, da je prva stvar,
Pisal sem za splet leti po prevzemu CS50 in CS51
je spletna stran za program Frosh UI, novinec Notranji šport,
ki je takrat bilo to dovolj, da je pred leti v času
ni spletna stran za ta program, čeprav je bilo ujeti,
in namesto tega se je Proctor v katerem Wigglesworth, če si hotel
registrirati za odbojko ali nogomet ali karkoli želite izpolniti kos papirja.
Ti bi potem hodil po dvorišču.
Ti bi nato potrkal na vrata in ga potisnite v njihovih vratih ali roko na Proctor
kos papirja z vašim imenom na njej, ali ne želite, da se kapetan ekipe,
kaj šport si hotel narediti in kaj domu si noter
To je neke vrste stari način šolskega počne stvari, in to je bil glavni
priložnost, da avtomatizirati veliko tega procesa.
Greš na spletno stran. Vnesete nekaj palcev
Dobiš e-poštni potrditev, in bum, ste končali.
>> To je bila prva stvar, ki sem storil, čeprav v jeziku, ki se imenuje Pearl,
ampak to je relativno enostavno narediti v PHP, in to je nekako predstavnik
problemov, lahko začnete z reševanjem, ko si lahko sami izraziti
programsko in ne bi bilo treba zanašati na stvari, kot so Googlovih spletnih mest
ali Excel ali orodij, ki so predani za vas.
Fantje imajo sedaj možnost, da to stvari, kot je ta.
To je super grdo verzijo obrazca,
ampak kaj je samo uporabiti za začetek pogovora, s katerim je to
grobo, kar je oblika izgledala leti za nas
da bi ljudje na spletu in se prijavite za Frosh UI.
Prosili smo za ime, potrditveno polje za to, ali so želeli biti kapetan,
moški ali ženska, in kaj potem domu so bili v,
in potem bi poslali ta obrazec.
Naj prvi pogled Pod pokrovom na HTML, ki predstavlja to spletno stran.
Naj gredo v froshims0,
in kot prahi, za pset 7 peljem samoumevnega
imenike in mape, ki sem postavljanje stvari noter
Vodili vas bomo skozi točno tam, kjer stvari mora iti v napravo,
ki mod ukaze morate teči, zato naj vas ne skrbi vse
neumni podrobnosti sinhronizacijo od get-go tukaj.
>> V redu, tukaj je froshims0.php.
Naj se pomaknite navzdol in kaj je radoveden sem,
To je PHP datotek, ampak kaj je v njej, jasno?
To je cel kup HTML in seveda, PHP izvor
res so bili za to, da spletna osredotočene jezik.
Pred nekaj trenutki smo ga uporabili za izvajanje pivo primer,
pogoji, na primer, zdravo primer, in to je v redu.
Lahko uporabite PHP kot skriptni jezik
če skript je res samo nomenklaturo za hitro in umazano programa
ali nekaj, kar ste napisali v scenarij ali bolj na splošno interpretiranem jeziku.
PHP je zelo koristno, da zato, ker ste videli, kako hitro
relativno lahko Ščepati programe v PHP.
Vendar je res namenjen za uporabo za splet,
in je oblikovana za splet v smislu, da opazite tu na vrhu datoteke
Jaz se začne z <? Php.
Potem imam kup neuporabnih pripomb, danih, potem pa zaprem PHP način.
Potem pa sem se spustite v HTML načinu.
>> Zanimivo pa je, PHP, čeprav je datoteka konča. Php
to je na splošno mišljeno, da se pomešanih s HTML,
del kode PHP, nekatere HTML.
In bomo videli na koncu, da bomo lahko začeli dražiti tistih, razen
in ohranimo naš HTML ločena od našega PHP v celoti,
ampak izvor PHP bilo res, da bi vam to prožnost,
da če hočeš nekaj HTML samo pisati, in da bo
izpljunil enako za JavaScript.
Ampak, če boste potrebovali nekaj programske tehnike,
nekatere programske kode, lahko ga v isti točen datoteki, kot bomo kmalu videli.
Tukaj je moja HTML.
Imam naslov za to Frosh UI.
Imam telesa oznako, ki je dobil nekaj CSS na to, da vse centra v sredini,
in potem tukaj imam obrazec, ki je očitno se dogaja, da je treba predložiti
v novo datoteko z imenom register0.php, tako da bomo videli, da je v tem trenutku.
To je z uporabo metode, imenovane po, ki bomo prišli nazaj, kot dobro.
Potem sem nekaj obrazcev surovine, ena imenovana ime, katerega tip je besedilo,
1, katerega ime je kapitan, katerega tip je izbrana,
in to, da nismo videli prej, vendar pa točno to, kar pravi.
Boste dobili potrditveno polje namesto polja z besedilom.
Tukaj spodaj imate gumb, ki je eden od tistih okroglih gumbov
, ki jih lahko izbere bodisi eno ali to, da je eden.
>> Obvestilo, da je namerno, da sem dal tako radijske gumbe ime spol.
To je, kako boste dobili vzajemno izključenosti, s katerim morate klikniti
Ali to, da je eden ali ena, in s klikom na drugo
je unchecks drugega, tako da boste morali, da se jim z istim imenom
Če želite, da se med seboj izključujejo, kot je ta.
In potem na domu, jaz ne mislim, da sva videla to še ni, je pa izberite meni, spustni meni.
Tag za to je izbrati.
Nato daje spustnem meniju ime,
in potem imaš cel kup teh možnosti.
Prvi, samo za estetiko, je prazen niz.
Želel sem samo padec navzdol, da bo prazno privzeto
in potem je tukaj še Apley, Canaday, Grays, in tako naprej.
In opazil dihotomijo tukaj.
Možnost v spustnem ima svojo vrednost,
potem pa je človek prijazno ime, ki je v tem primeru
je enak, če pa resnično želela biti analni bi lahko imeli
vrednost tega spustnega samo se kratka verzija,
Grays, vendar bi lahko resnično rečemo, Grays Dvorana, da je človek dejansko vidi,
ampak to še ni vse, da je zanimivo, zato sem kar naprej je preprosto in jih naredil enako.
Potem dol na dnu imamo na gumb submit
kar smo videli prej, vendar sem opazil, ji je dal drugo besedo.
Namesto CS50 iskanju sem dal oznako "register".
>> Končni rezultat je ta spletna stran, tu in tam,
kje se ta predloži?
To postane predložiti nekatere datoteke, vrednost ukrepa atributa,
ki je bil register0.php.
Pa poglejmo, kaj se dejansko dogaja.
Naj gredo naprej in izpolnite obrazec, pravi David,
moški, Matthews, potem bom rekel registrirati.
Naj pomanjšanje in kliknite registrirati.
Ok, tako nekako nekoristno, temveč poglejmo, kaj se dejansko dogaja.
Opazili boste, da se je spremenilo, da je URL register0.php.
Kaj je čudno odsoten od naslova, čeprav, čeprav smo samo predložil obrazec?
[Neslišno študentski odziv]
Ok, to je samo Chrome biti prijazen do uporabnika v teh dneh.
To je dejansko tam. Pravkar so ga skrili in tako prihranite prostor.
Ampak dobra misel, dobra misel.
Proti drugi konec URL-ja, čeprav, kaj manjka? Ja.
[Študent] V poizvedbi.
Poizvedbi, da odpokliče iz naših preprostih primerov iskanja Google.
Takoj, ko sem kliknite na gumb za pošiljanje URL
me je na Googlu, potem pa se je? q = računalništva ali karkoli sem vtipka
To je zato, ker smo uporabili metodo get z iskalnim primer.
>> Tokrat smo ga uporabljate na kakšen način namesto tega?
Prispevek, in eden od neposrednih razlik
Med dobili in objavili, da je objava ne ogroža prispevek uporabnikov v URL.
To skrije. Še vedno ga pošlje.
V bistvu, kaj smo videli v brskalniku tukaj, saj bomo razkrila v trenutku
ga je videti na register0 se bom le videl vsebino
na polja, ki so bili predloženi iz brskalnika v strežniku.
Toda URL nima?, Nima ključne besede
ali vrednosti v njem, in zakaj je to?
No, dopušča, da še vedno predložijo podatke iz obrazca na strežniku,
vendar ga ne dajo v URL, tako da kakšne informacije je pošta
še posebej primerno za morda takrat, ko ste asking uporabnik
vnesite v prispevku k obrazcu?
Nekaj ​​podobnega gesla, nekaj podobnega kaj drugega?
Številke kreditnih kartic.
Vse, kar je rahlo občutljiv verjetno ne želite, da bi končali v URL
če samo zato, ker to pomeni, da lahko vaš sostanovalec ali družinski član samo troll prek
vaš internet zgodovino in nato dobesedno videli vaše geslo,
dobesedno videli vaše številke kreditne kartice, ker večina brskalnikov
Spomnim se v zgodovini ne glede na URL ste bili na,
tako da, če samo zato, ker bi bilo to slaba ideja.
Uporaba objava kože, ki podrobno od uporabnika.
>> Tudi, kako lahko naložite fotografijo na Facebooku?
No, samo 2 mehanizmi lahko res uporabljali,
čeprav obstaja še nekaj drugih bolj skrivnostne tisti se dobili in objavili.
Kako si lahko naložite fotografijo prek URL-ja?
Lahko dejansko storiti.
Lahko se JPEG ali bitne slike ali GIF in ga lahko predstavljajo v šestnajstiškem
ali nekaj, kar ti osnova 64.
Namesto osnove 16 uporabite osnovno 64, ki v bistvu izgleda kot
Znaki ASCII, in lahko dejansko naložite fotografijo prek URL
po vprašajem, vendar so na splošno omejitev velikosti.
Večina brskalnikov prisiliti URL-ji ne sme preseči 1000 znakov,
Mogoče 2000 znakov ali podobno, tako da ne more naložiti
10 MB Facebook fotografija.
Za to lahko uporabite mesto, kot tudi, da za zdaj se postavlja parametrov v URL,
kar je lepo in koristno včasih, ampak za vse občutljive ali velika
post je pot.
Kaj je register0 dejansko delaš tukaj?
No, če sem odprla register0 sporoča, da je to super enostavno stran,
vendar to dokazuje dejstvo, da sem lahko sodeloval družijo, za boljše ali slabše,
HTML s PHP.
To celotno sliko, razen za pripombe na vrhu, so HTML
razen tega tipa tukaj.
>> Obvestilo sredi mojega PHP kodo,
sredi mojega HTML, imam neke vrste začasno
začel PHP način.
Kličem posebno funkcijo imenovano tiskanje r.
To pomeni, tiskanje rekurzivna in kaj počne, je to rekurzivno tiska
ne glede na spremenljivo ga predali, podpičje, izhod PHP način.
In pred oznako vam vnaprej oblikovano besedilo,
mono prostor besedilo, tako da je vsak prostor, ki ga zares videla.
To ne izgine. Kaj je po?
Torej, kaj je zanimivo in privlačno PHP
je, da vsakič, ko predloži obrazec s GET ali POST
vse, kar je predložila vam brskalnik
PHP sama zneske, katere so tiste ključne vrednosti pari,
številke, če je v zvezi z enakimi znaki, številke, če obstaja vprašaj.
To počne vse trdo delo za vas, potem pa roke vam asociativni niz
, ki vsebuje vse, kar si vnesli v obrazec.
No, kaj pa je ta oblika polja so?
>> Imel je 4 polja.
Ena je polje z besedilom, imenovano ime.
Eden je bil imenovan kapetan polje.
Eden je bil radijski gumb imenuje spol,
in eden spustni meni pozval domu,
tako opazil, ko sem natisniti rekurzivno
Vsebino te posebne spremenljivke.
To je posebna globalna spremenljivka se imenuje dobesedno $ _POST v vseh kape.
To je posebna globalna spremenljivka, da PHP ustvari samo za vas
in roke za vas, tako da lahko dostopate do vsega
, ki je bil predložen prek obrazca s strani uporabnika.
In s pozivom tiskanja r na to, da ne bi to v normalni uporabi.
Delamo to, da vidim notranjost te spremenljivke,
in kaj je v njej, no, 4 tipke,
4 http parametri, če se tako izrazim,
Ime, kapitan, spol, domu, nato pa so vrednote, ki si
vnesli v z eno izjemo.
Nisem tip D-V-I-D.
Preveril sem škatlo, čeprav, za moškega, ki je očitno predložila vrednost
za malo m biti jedrnat.
>> Ko sem izbral Matthews, ki je vrednost, da imam izbran,
in to je malo neumno, ampak to je konvencija.
Ko sem preveril polje, vrednost na ", na" dobil predloži potrditveno polje.
Če ne bi preveril, bi bilo brez vrednosti sploh poslan.
To je samo, da nam vpogled v to, kaj je notri tega posebnega globalne spremenljivke,
in je tako posebnega, da se imenuje super globalna spremenljivka.
Obstaja Povsod v kodi, tako da lahko dejansko dostop.
To ni tako prepričljiv, tako da je dejansko porabijo super GLOBAL
in dejansko poskušali prijaviti nekoga.
V froshims1 bom narediti eno spremembo.
Jaz sem spremembo tožbe, register1.php,
in delam še eno stvar.
Bil sem nekako nerodno kakovosti moji spletni strani tam.
To je zelo grda, po pravici povedano, tako se je izkazalo,
ki jih lahko uporabite zelo enostavno na spletu
drugih ljudi JavaScript kodo drugih ljudi CSS
ki so napisali in odprt izvirajo in so na voljo v knjižnici,
če se tako izrazim, in na primer, tukaj sem z uporabo prosto dostopne knjižnice,
kup kode, ki je nekdo drug napisal.
>> Twitter se je zgodilo, da napišem to kodo, in to se imenuje bootstrap knjižnica
in to je samo kup slogov CSS, šopek. css datoteke
da se je nekdo napisal in pogruntal, kako priti vse lepo in lepa
tako da lahko ljudje, kot smo mi malo manj skrbi glede estetike in veliko bolj osredotočiti
na logiki in dejansko programiranja.
S to povezavo se s to oznako, ki je enaka tag sem si zapomnite za styles3.css prej,
Zdaj imam dostop do spisa, imenovano bootstrap.min.css.
Min pomeni le, da sem ga minified in so jih znebiti vseh prazen prostor in tako naprej
Samo se prepričajte, da ste ne pošiljaj mi več zlogov, kot sem dejansko potrebujejo.
Ampak tam je cel kup CSS, tako da, če bom odprl različica 1 Frosh UI
opazil, da je moja datoteka zagotovo lepši.
Zdaj je še vedno le črno-belo, ampak obvestilo, da jih samo z uporabo svoje slogov
in uporabo določenih funkcij na mojem obrazcu ni neverjetno,
ampak to je zagotovo čistejši, kot je bilo prej, in projektor ne naredi to pravico.
Še malo sive črte okoli gumbov in okrog polje tukaj,
ampak to je zagotovo čistejši, kot je bilo prej.
>> Zdaj, v poštenosti, sem moral spremeniti moje označevalni bit.
To je verzija 1, in opazil, da sem uporabljal tudi nekaj novih oznak
in iskreno, nisem imel pojma, kako to storiti, dokler nisem prebral dokumentacijo
za knjižnico bootstrap Twitter, in so mi rekli, če želite uporabljati našo knjižnico
uporabite fieldset element v vašem obrazcu,
dal besedo, ki jo želite prikazati poleg polja notranjost etikete oznako,
potem bi vaš vložek ime, tako kot prej,
in nato v kvadratek, ne samo, da ga ovijte v okolje elementa,
uporabite nekaj, kar ti razred, tako da nismo videli že prej,
pa boste videli to v enem hlače pset 7 je.
Razred v CSS vam omogoča, da naredite nekaj zelo podobnega ID,
ampak prej, ko smo imeli ID z oznako #
da je za eno in samo en element.
Kaj je lepo o razredu je, da lahko več elementov imajo isti razred
ali isti stvari CSS se uporablja za to.
>> Ampak še enkrat, bolj na tiste, ki na kratek in preostalim to je samo kopiraj in prilepi
iz njihove dokumentacije, kjer sem dodal nalepko tu in tam.
In na koncu, ker sem vključil povezavo oznako na vrhu,
vse izgleda lepša samodejno
s tem da preprosto označi svojo stran na način, ki
Twitter pričakuje, in tam je tako veliko različnih načinov
o tem, in to je res zelo primerno.
Na tej točki v polletju, kot boste videli v določilu pset 7 je,
Googling okoli, branju o knjižnicah, uporaba drugih ljudi CSS
in JavaScript za reševanje sistemskih problemov
s težavo nizu je sama zagotovo spodbuja in je pot
Web je zgrajena v teh dneh, stal na ramenih drugih ljudi
tako da lahko res osredotočiti na nove in zanimive probleme.
Ampak kaj je zdaj osredotočiti na spet logiko.
>> To je bilo hitro obvoz na estetiko samo, da vam pokažem, v katero smer lahko gremo.
Grem, da se vrne nazaj na grši 1 za zdaj samo zato, ker
ni nobenih motečih stvari s strani Twitter in naj gredo naprej in odpiranje
froshims2, ki prav tako razlikuje le v akciji, register2.php,
in pa si oglejte, kaj je učinek tukaj.
Naj gredo naprej in vnesite Davida.
Ne bom tokrat kapetan.
Jaz bom rekel moški, Matthews, register.
Prekleto. Ok, to je vijak na moji strani.
Pripravite se.
Register2, linija 22, če je prazna, ali pa, žal.
Naj osvežite.
Ok, po predložitvi tega obrazca, kaj se je zgodilo?
Sem tipkal z Davidom, preveri moški, kliknili Matthews, register.
Prijavljeni ste. (No, ni res.)
To je očitno korak več kot le tiskanje vsebine neke spremenljivke,
ampak kaj je ta datoteka dejansko počne?
V register2.php
opazil, da imam novo kodo.
Znotraj moje telo tag imam v bistvu, če še gradi,
ampak zato, ker sem sodeloval z nekaterimi druženje to HTML
Imam za vstop in izstop PHP način in nazaj, tako da vidimo, kaj delam.
>> V prvi vrsti tu mislim, če je tako
da je mesto super svetovni prazna za ključ imena,
tako z drugimi besedami, če uporabnik ni mi vrednost za ime v obliki,
potem prazna vrača res, saj je vrednost prazna.
Ali opazite, navpične palice, če je spol prazna
znotraj tega posebnega super svetovni ravni, kar pa spet predstavlja vsebino obrazca,
ali je prazna domu, potem pa grem, da gredo naprej in kričati na uporabnika.
Kako? No, opazil sem hotel reči, morate navesti ime, spol, in študentskem domu.
Naj dejansko povzroči to napako.
Naj grem nazaj v mojo obliki. Naj ponovno naložiti, da je jasno.
In grem, da se jim Davida in jim ni treba vedeti, kje živim.
Registracija. Očitno mi jih moramo povedati, kje živim.
Navesti morate ime, spol in dom. Pojdi nazaj.
>> In sem lahko kliknete, da pridete nazaj v taki obliki, ampak zakaj je to?
No, v tem primeru imena ni bila prazna, ampak spol je bila in je bil domu,
Torej, vsa ta izraz ocenijo, da res, in čeprav je sintaksa malo novega,
ponovno vnesemo PHP način, znan po izjavi,
vendar pa je novi del tukaj je samo to debelo črevo, in sem zamočil z izpustom v oklepaju
po naključju, ampak obvestilo, debelo črevo, kar pomeni,
čeprav smo izhod PHP način vse
, ki sledi, je treba dobesedno izpljune v brskalnik
dokler ne vidiš drugega bloka, kot mi tukaj,
V tem primeru bi morali namesto tega pljunil ven
dokler ne boste videli endif, tako da nekateri nekoliko nova skladnja
, ki mi omogoča, da preklapljate med HTML in PHP.
Mi lahko očistite to gor na koncu, ampak za zdaj,
to je nekako prepričljiv način preverjanja napak obrazec.
>> Zdaj pa sem rekla, da v resnici ne registrira zato, ker očitno še nismo naredili ničesar, vendar podatki,
tako da je dejansko poskusil narediti nekaj kul.
V froshims3 edina razlika je, da bom predloži register3,
Tako HTML je isto.
V register3 opazil.
Ta je seksi.
Na vrhu sem z uporabo zahtevajo izjavo, da je to podobno # include.
Tokrat ni stdio.h ali kaj podobnega.
To je knjižnica PHP, in to se imenuje PHPMailer.
Kako sem vedel, da so prav to navedeno niz?
Prebral sem ga v dokumentaciji, tako da, ko mi je rekel, naj to na vrhu datoteke
Če želite uporabiti posebno knjižnico imenovano PHPMailer, da počne kaj piše.
To vam omogoča pošiljanje e-pošte prek PHP.
Zdaj pa se pomaknite naprej.
>> Obvestilo za začetek sem v načinu PHP ves ta čas,
sedaj opazil sem dol po uvozu, da knjižnice,
tako rekoč, da delam nekaj logična preverjanja.
Če je res, da ime ni prazna
in spol ni praznih opazili klicajev-
in skupinske ni prazen, potem je logično uporabnik izpolni obrazec, vsaj dovolj.
Briga me, če si kapetan ali ne. Potrebujem samo svoje ime, spol, in študentskem domu.
Če so napolnjeni jih ven, tako da nobena od teh področij so prazne
To je nekoliko nova skladnja.
PHP, kot prahi, je objektno usmerjen programski jezik
ki so lahko nekatere od vas spomnim iz APCS in podobno.
Za zdaj, če ne poznajo, samo vem, da za uporabo te knjižnice
moraš napisati kode, kot je ta z novo ključno besedo,
dobesedno novo ključno besedo imenuje novega.
Ampak po tem, imamo nekaj poznajo sintakso.
To je puščica subjekt, ki je podoben temu, kar smo uporabili za konstrukti v okviru kazalca.
Za danes PHP nima kazalcev,
vendar vem, da je za zdaj znotraj poštnega spremenljivke
je v bistvu nekakšen kazalec za specialne knjižnice
da se je nekdo napisal, če želim dostopati do specifične funkcionalnosti
znotraj te knjižnice mi, tako kot v C, uporabite puščico operaterja,
čeprav ne gre za dejansko kazalci.
To je neke vrste lastno različico PHP Pogodbe.
To pomeni, da gre v knjižnico in pokličite IsSMTP funkcijo.
SMTP, odpoklic od naših bojevnikov na internetu sklicuje na elektronsko pošto,
in to samo pomeni, da uporabljate e-poštni strežnik za to Frosh UI registracijo.
>> Kaj gostiteljica ne želim uporabljati?
No, Harvard, če Google naokoli, je e-poštni strežnik, imenovan smtp.fas.harvard.edu.
Če igrate skupaj doma ali živiš na Comcast omrežju
da bi bilo kaj takega smtp.comcast.net.
Je popolnoma odvisno od tega, kje živiš in kdo je tvoj ISP.
Potem bom nastavim iz naslova samovoljno biti jharvard@cs50.net.
Jaz sem potem bo postavila za odpravo biti jharvard@cs50.net.
Edini način, sem vedel, da so bili imenovani te funkcije SetFrom in AddAddress
je, še enkrat, sem prebral dokumentacijo.
To ni vrsta čudežno znano, da vse programerje.
Potem sem določila veljajo "registracija".
In zdaj ta vrstica je malce grdo, ker kaj pika pomeni subjekt v PHP?
Kdo ve?
Concatenate.
V C je bolečina v vratu za združevanje 2 strune skupaj.
Ti se morajo ukvarjati z knjižnične funkcije malloc ali realloc ali vse te stvari
Samo, da podaljša dolžino niza.
V PHP, v JavaScript in drugih jezikih
lahko ponavadi to z enim samim znakom.
V tem primeru pika pomeni, da tega niza tukaj
in dodajte mu ta niz.
>> Oh, in mimogrede, dodajte mu tega niza,
ki se zgodi, da je spremenljivka znotraj te globalne super.
Nato dodajte mu novo linijo, tako da vse te pike pomeni samo
Vedno bi večji in večji in večji niz,
in vam ni treba skrbeti na vse o knjižnične funkcije malloc ali podobno v jeziku, kot je ta,
in tam je tudi drugi načini, da to storijo, vendar je to ena od najhitreje
načinov, da ga dam ven.
Kaj je to delaš?
To je ustvarjanje e telo, ki se dogaja, da pomeni ime: Kapitan: Spol: Dorm:
Vse v ločene vrstice, nato pa na koncu,
1 vrstica kode, in bom prezreti to za zdaj.
Če == false pomeni le, če bi se kaj zalomilo,
vendar se vse dogaja tukaj.
Mail poslati pomeni, pošljite to sporočilo.
Poglejmo, kaj je neto rezultat.
Na dnu datoteke, opazite, da se dogaja, da reči, da ste res registrirani
če pridem tako daleč.
Če pa uporabnik polomi, opazili, da smo začeli ta
če je stanje tukaj, če ni prazno in ni prazna
in ne izprazni bomo poslali e-pošto.
V nasprotnem primeru bomo poslali te kode,
ki bo imel za posledico, kot boste videli v pset 7, na preusmerjanje uporabnika
nazaj od koder so prišli, froshims3.php.
>> Pesti, drugače se bo najbolj žalostno demo danes.
Pa gremo.
Naj odprejo svoj e-poštni nabiralnik za jharvard v Gmailu.
Št sporočilo zdaj. V redu.
Zdaj pa mi odprla froshims3, ki je tretji in zadnji primer, da bomo lahko na tukaj.
Ok, gremo.
Nate, bo postal kapetan, moški, iz, recimo, Apley.
Registracija. Ok, res ste registrirani.
Zdaj, če sem se pomaknite na moj e-pošte, oh, moj bog.
Pravkar sem dinamično poslal email na spletu.
>> Pustimo na to opombo.
Video v pripravi na predavanju smo zamudili. Se vidiva naslednji teden.
[CS50.TV]