>> Parolanto 1: Ĉiuj, dekstra bonvenigas dorso.
Ĉi tiu estas CS50.
Kaj ĉi tiu estas la komenco de semajno naŭ.
Kaj ĉi tiu estas la komenco de la resto de vian tempon en CS50, en kiu ni
transiro nun, fine, al la retejo aspekto de la kurso, kie vi instruos vin
trovi, ke multo el la fundamentoj kiuj ni estis eksporti dum semajnoj
ankoraŭ revenos por viziti, aŭ turmenti, ni.
Sed nun, vi trovos ke ĝi estas ordon de grando pli facile
plenumi iujn taskojn kaj solvi iujn problemojn -
tiom, ke eĉ se vi pensis iun problemon aroj estis amuza en sia
propra maniero, mi pensas, ke vi trovos ke p starigis 7, p starigis 8, kaj tiam,
fine, la fina projekto estos des pli kontentiganta ĉar vi
trovi ke ni komencas preni por donita nun aferojn kiel memoro demarŝon, kaj
montriloj, kaj kio okazas sur sub la kapuĉo.
Kaj denove, temáticos, ĉiuj en la tuta sesmonato estis ĉi layering
kaj layering.
Kaj nun ni estas speco de supre ĉi tie, staris sur la
ŝultroj de semajnoj pasinteco.
>> Nun, memoru de lasta tempo, ke ni parolis pri kiel la interreto laboris.
Kaj tio estis eble simplificación, sed memoru, ke
ĉiu komputilo en la mondo havas IP trakti, kvankam tio estas iom de
simplificación ankoraŭ.
Kaj tiuj adresoj estas uzataj por unike identigi maŝinoj por ke
kiam vi sendas informojn, aŭ pakojn, por tiel diri, ili povas havi originon
adreso kaj destino adreso.
Kaj tiuj samaj IP adresoj povas esti uzata kaj por bono kaj ankaŭ por malbono,
spuri vi, ekzemple.
Fakte, cxiu el vi per tekkomputilo malfermi nun, aŭ telefono en via
poŝo, havas IP-adreso en Harvard reto.
Kaj ne ĉiuj kiuj malfacile interligataj ke por kiu kaj kie vi
estas tiuj tagoj.
Sed pli sur tiu eble en la estonteco.
>> Nun mi pensis ke mi volas revenigi iun memoroj de [? plibonigi?] kaj donos al vi
alia klipo de programo vi povus trovi familiara.
Se ni povus dim la lumoj por nur kelkajn sekundojn.
La show Numb3rs.
>> Speaker 2: Ĝi estas 32-bita IPP4 adreso.
>> Parolanto 3: IPP, kiel en interreto?
>> Speaker 2: Privata reto.
Por Amita privata reto.
Ŝi estas tiel mirinda.
>> Parolanto 3: Venu, Charlie.
>> Speaker 2: Estas.
Al spegulo IP-adreso.
Ŝi lasanta al ni rigardi kion ŝi faris en reala tempo.
>> Parolanto 1: Bone, do kelkon malbone en ĉi tiu pentraĵo.
Do unu, kaj ĉi tiu estas akceptebla, ĉi tiu estas efektive
ne estas valida IP-adreso.
Entajpu validan IP-adreso devas esti nombroj de la formo w.x.y.z, kie ĉiu el
tiuj literoj estas 0 al 255.
Sed tio estas bone, ĉar same kiel la filmoj kie falsa telefonnumerojn,
ili Fake IP adresoj.
Vi ne vere batis reala serviloj.
>> Sed komprenu, ĉi tiu estas retumilo.
Kaj retumiloj ne komencas elirigi komputila kodo ŝatas tion.
Kaj se ni rigardas iom pli profunda, rimarki ke la lingvo kiun ili vidas
sur la ekrano estas lingvo nomata Objective C, kiu estas la lingvo en
kiu iPhone apps estas skribitaj, aparte tiuj engaĝante
crayons, kiel vi povas vidi de la fontkodon tie.
>> Bone, mi pensis tio estis amuza.
Do tiu fragmento de kodo havas absolute nenion por fari kun kiom tiu
aparta epizodo estis cxirkauxe.
Do la ŝerco estas speco de la homoj prenante por ĉi sentado.
Sed ĉi tio ne estas ĉiuj kiuj malfacile akiri ĉi tiuj teknikaj detaloj rajtas.
Kaj mi kuraĝigas vin.
Kaj efektive, 50 povus tre bone militakiro multan TV kaj filmoj aŭ vi
ĉar vi trovos, ke estas nur ne eblas kio ili estas
fari en la ekrano.
Sed ĝuste tio estas la kodo kiun vi povus vidi ĝin en iPhone apliko
aŭ Mac OS apliko.
Ĝi havas nenion fari kun sekurecon.
Do prigardi ekstere por pli tia amuza aferojn tiel.
>> Sed hodiaŭ ni komencos plonĝi en vere profunde al tuta gamo de lingvoj.
An ja, unu el la komunajn takeaways de ĉi tiu parto de la
Kompreneble ne estas por lerni kiel plani en PHP, ne lerni SQL per, ne
lerni Javascript per, sed prefere instrui mem kiel instrui
mem novajn lingvojn ĉar, vere, ni komencas preni nun la
trejnado radoj ekstere tiel ke post Kompreneble la fino, vi ne atendas 20
paĝo specifo por diri al vi kiom apliki iun programon.
Vi havas sufiĉe ingrediencoj en via menso, kaj sufiĉe da ilojn en via ilo
kit, per kiuj oni komencas konstrui solvojn al problemoj de intereso por
vi por iuj studentoj grupo, por iuj esplorprojekto, aŭ vere ion
interesajn por vi.
>> Do al tiu fino, memoru, ke tio la bildo ni eltiris gxin lastan fojon.
Kaj jen estas du komputiloj, kliento kaj apartigon, parolante unu al alia.
Kaj la protokolo, la lingvo, por tiel paroli, ke tiuj du komputiloj okazi
esti parolanta nomata HTTP.
Kaj tio estas nur la protokolo uzata de komputiloj por kopii la informon per
la mondo ampleksa TTT.
La retejo, kompreneble, estas nur unu servo kiu kuras sur la
tn interreto.
Kio estas alia servo disponebla en supro de la interreto tiuj tagoj?
Iuj aliaj protokolo aŭ - kio estas tio?
>> Spektantaro: FTP.
>> Parolanto 1: FTP.
Do Dosiero Transfer Protocol estas alia.
La plejparto de vi probable ne uzis ĝin.
Sed la plimulto el vi probable uzis aĵoj kiel Gchat, aŭ momenteto
mesaĝado pli ĝenerale, Certe retpoŝto.
Kaj tiuj, ankaŭ, estas servoj kiuj rulas sur supro de la interreto ĉar, ĉe la
fino de la tago, la interreto mem vere nur ricevas datumojn de punkto A al
punkto B. Kaj ĝi uzas numeron de partikloj mem, unu el ili aŭ du
el ili plej ĝenerale nomis TCP / IP, tio estas ke unu komputilo sur
la interreto povas fakte esti faranta malsamaj aferoj, retpoŝto,
kaj retejo, kaj tiel plu.
Google faras multan ĉi.
Do kiel estas tiuj servoj unike identigita, ni diru, en komputilo
kiuj povus vere esti faranta multnombraj aferojn?
>> La haveno nombro.
Kaj tiuj estas nur arbitra homa konvencioj kiel 80 estas retejo, 443 estas
ĉifrita retejo, 25 estas retpoŝto.
Kaj tie estas aroj da aliaj.
Kaj tiuj nombroj estas simple inkluzivita en tiuj pakoj de informo, tiuj
virtuala koverto, ke en la praktiko enhavis peton aŭ respondon.
>> Do kiam vi reiros respondon de la retejo, tipe, vi ne vidas ian
nombroj ajn en terminoj de la statuso kodo de la respondo.
Vi ne vere vidas la interne de la
pakoj kiuj revenis.
Sed 200 faras ja signifas OK.
Kaj tio signifas ĉio estas bone.
Vi eble vidis aron da tiuj.
Kiu estas probable la plej komuna vi jam vidis en la reto?
>> 404.
Ĝi nur signifas dosiero ne estas trovita.
Ĝi signifas ke iu ŝraŭbita supren.
Vi faris per mistyping la URL, aŭ iu alia faris, donante al vi
nevalida URL, aŭ ili viŝis la dosiero kaj la URL estas ankoraŭ
uzita de popolo.
Do neniu eblaj kialoj povas klarigi kial dosiero ne estas trovita.
Kaj vi vidos, en la semajnoj veni, ĉi tiuj aliaj eraro kodoj, kaj vi instruos vin
utiligi kelkajn el ili.
La malbona estas 500.
Se vi ricevas 500 eraro en la kodo vi havas skribita, pensu ke kiel varo de la
analoga de seg faŭltoj en la mondo de ttt programado.
Ĝi ne estas tiom terura.
Sed ĝi nur signifas ke, ie, vi ŝraŭbita supren.
Do rigardas antaŭen al tiuj.
>> Sed ni vidu, se ni povas vidas tiujn en kunteksto.
Permesu al mi iri al retumilo tie kaj faru la sekvajn.
Do tiu estas Chrome, kio okazas al esti instalita en la aparaton.
Sed plej ĉiu retumilo tiujn tagojn havas iuj ekvivalentaj funkciojn.
Mi tuj iros la Chrome la menuo, kaj iru al Tools, kaj mi estas ironta
al Developer Agordoj.
Kaj vi vidos, ke tiu malgranda panelo malfermiĝas en la malsupro de la fenestro.
Alia ligilo, por esti honesta, ke mi kutime uzas mem estas Right click
aŭ Kontrolo klaku ie ajn sur la TTT paĝo kaj ĝuste iri al Esploru elemento.
Kaj tio ne nur malfermi tiu havas por vi.
Ĝi ankaŭ malfermas, specife, la Elementoj parton en
la maldekstra flanko.
>> Do ni estas kompreneble vidante Google.
Ili ŝanĝis sian logoon hodiaŭ.
Sed se mi rulu suben ĝis tie, rimarki ke sub Elementoj, vi vidos
kio nomiĝas HTML, hiperteksto Markup Lingvo, kaj tio estas la lingvo
ke tio kaj ĉiuj retpaĝoj, vere, estas skribita in
Sed ĝi estas vere formatita por ni tiom pli readably
ol ĝi normale estas.
Fakte, se mi malzomi, kaj mi anstataŭ nur Right click aŭ Kontrolo Klaku
klaki sur la paĝo, kaj poste iras al Rigardi Paĝo Fonto, tio estas laŭvorte kio
Google sendis malsupren al mia retumilo.
>> Do iu persono aŭ personoj skribis Google.com uzante ĉi fontkodo.
La plejparto de ĉi tio ne estas HTML.
Ĝi estas fakte lingvo nomata Javascript, kiu
ni venis al la merkredoj.
Sed kion Chrome, kaj kion ĉiu retumilo povas fari por ni, estas speco de vidos
estinteco ĉiuj distroj de la freneza sintakso, kaj reenigi blanka spaco
por ni, kaj eĉ la sintaksan kolorigon, aŭ colorize aferojn por ni.
Do vi trovos, ke tiuj tn developer iloj konstruita en foliumiloj
faros vian vivon tiel, tiom pli facile ĉar vi povas esplori, per tiu menuo
interfaco, ĝuste kion la suba fontkodo estas por
ĉiun paĝon en interreto.
Kaj efektive, tiu estas unu el la plej efikaj manieroj por lerni kiel fari
iu nova, almenaŭ se la paĝon ne estas tiel kompleksa kiel al Colmar, estas
komenci ŝovas ĉirkaŭ ĝi estas HTML, rigardi en lia tn CSS, kiun ni venos
por iom tiel, akiri komprenis kiel tio programisto
implementado iu aparta trajto de la paĝo.
>> Sed pli teknike interesa dekstra nun ĝi tuj estos ĉi.
Se mi iras al la Reto langeto, ni nun certe tiu.
Mi tuj klaki la malgrandan transiri simbolon ĉi tie, kaj poste
iri al alia retejo.
Kaj mi simple tuj tajpi en Facebook.com.
Neniu HTTP, HTTPS neniu, neniu WWW.
Ni fakte vidos kio okazas tie.
>> Eniru.
Nun rimarki tutan faskon da aĵoj simple aperis en ĉi sube panelo, en
Krom la retpaĝo aperante en la supro.
Mi tuj rulumi reen supren en la Reto langeto tie, kaj mi tuj
klaki sur la unua vico.
Kion tiu ilo tuj malkaŝi al ni estas ĉiu el la HTTP petojn
ke rapide simple reiris kaj reen inter mia retumilo
kaj Facebook servilo.
Kaj tial cxiu el tiuj vicoj reprezentas unu tia peto aŭ
Responde, unu aŭ pli de tiuj virtualaj koverto.
Aŭ pli hazarde, estas kiel persono kiel persono, kliento en
restoracio, petante ion denove, kaj denove, kaj denove.
Kaj la kelnero subtenas alportante ĝin reen unuope.
>> Do nun, se mi zomi en ĉi tio, rimarki kaj tio estos la speco de afero
ke vi bonvena kaj kuraĝigis ludi sur via propra, ĉar ni
ne iros tra ĉio tre detale.
Sed rimarki ke estas malmultaj sub langetoj tie -
Headers, Preview, Response, Kuketoj, kaj kronologio.
Mi simple tuj rigardi titolaj cxar nun ĉar ĉi tiuj estas malmulte
ingrediencoj ene de la koverto ke helpi datumoj akiri de kaj al lokoj.
>> Do unue, lasu min premas tio View Fonto apud Peti Headers.
Estas la peto, ke mia foliumilo, Chrome, en ĉi tiu kazo, sendis ene de
tiu virtuala koverto.
Vi memoras lasta semajno mi permane tajpis ĝin dum
ŝajnigante esti retumilo.
Tiam ĝi memorigis al la servilo, ke ĝi estas serĉante la gastiganto nomata
Facebook.com.
Kaj tiam tie estas iom pli arkaikaj informo kiun ni skuu
niaj manoj por nun.
>> Sed se mi komencos rulumu malsupren nun en tiun fenestron, lasu min iri al la
respondo titolaj.
Tio estis kio estas en la virtuala sur kiu revenis de
Facebook.com.
Kaj se mi alklakos Rigardi Fonto nur por vidi la krudan tekston de ĝi,
rimarki kelkajn aferojn.
Unu, Facebook ankaŭ parolas la saman protokolo, la versio 1.1 gxi.
Do jen bela.
Sed statuso kodo 301, movis konstante.
>> Nu, kie la heck ne Facebook iras?
Kio ĉi provas transdoni al ni?
Nu, rimarkos cxi tie estas alia header nomata Loko.
Do kial Facebook dirante al mi ke ili kopiis konstante al tiu URL
apud Loko?
Mi forgesis la www.
>> Por ke estis mia elekto.
Fakte, la plimulto de ni malofte, probable, tajpi www.whatever.com tiuj tagoj.
Sed rezultu sistemo administranto, kiel Facebook, ĉu
agordi siajn servantojn en tia maniero, ke aŭ Facebook.com funkcias, aŭ
www.Facebook.com funkcias, aŭ, vere, tian prefikson antaux iliaj
domajna nomo.
Do ili faris, ke por ni.
Kaj ili redireccionando nin, probable por iu teknika,
iuj marketing kialoj.
Ili nur volas canonicalize sur www.Facebook.com.
>> Sed tio ne estas sufiĉe ĝin.
Se mi rulumu malsupren tie, ni vidi kio okazas.
Ĉi tio diras al mi ke ni kopiis konstante al
http://www.Facebook.com.
Do ni rigardu la dua peto ke mia retumilo sendas.
Bedaŭrinde, ĝi aspektas kiel Facebook moviĝis denove ĉar la dua
peto, per elekto de tiu URL anstataŭe, diras tion, movis
konstante.
Kaj lasu min rulumi malsupren tie al la respondo titolaj.
Kie estas Facebook malaperis nun?
>> Do HTTPS.
Do nun Facebook komencis, aparte en la lumo de la nuna
okazaĵoj en la lastaj monatoj, speciale kaj ankaŭ en la pasintaj kelkaj jaroj
devigi ĉiuj siaj uzantoj, en bona vojo, por uzi HTTPS, kiu estas pli
sekurigi, kvankam ne tute sekura.
Kaj nun mia paĝo, mia foliumilo estas tuj petos tiu tria URL.
Kaj nun, fine, ni atingas la alie nevidate 200 OK.
>> Do kio en la mondo aŭ ĉiuj ĉi tiuj aliaj vicoj cxi tie.
Mi laŭvorte tajpis ion kaj mia foliumilo bedaŭrinde esti petinta kiel
20 iuj neparaj aĵoj.
Kio estas tio?
>> Spektantaro: Skriptoj?
>> Parolanto 1: Scripts, do aliaj dosieroj skribita en lingvo nomata
Javascript, kiu, denove, ni instruos vin vidi iom de la merkredoj.
Kion alian?
Stilo littukoj.
Do io en lingvo nomata CSS, kion ni vidos en iom.
Gifs, kaj JPEG-oj, kaj pngs, statuojn, kaj filmo dosieroj - kion ajn retpaĝo
tio estas plej probabla en la formo de dosiero.
Kaj do kion ni vidas en la maldekstra mana flanko estas ĉiuj dosieroj
ke Chrome devis elŝuti, rekursie, se vi volas, por
formas la tuteco de la paĝo.
>> Do kion ni vidis antaŭ momento kun Google, se mi alklaku la Elementoj
langeton, ĉi tio, certe, estas la HTML, la lingvo kiu formas ĉi paĝo.
Sed estas aroj da aliaj aĵoj.
Tie estas logo.
Ekzistas tiuj bluaj-ish ikonoj tie.
Kaj estas aliaj elementoj ankoraŭ en la paĝo kiu mem povus esti
apartaj dosieroj.
>> Do kio estas agrable pri foliumilo estas ke ĝi rigardas la lingvon ni iras
komenci skribi, aŭ vi havas jam komencis skribi en P aro 7, figuroj
el kie tiuj dosieroj vivi, kaj iras kaj kroĉas ilin tiel.
Kaj mi ne povas elstari sufiĉas, eĉ kvankam iuj el ĉi povus aspekti iomete
arkaikaj aŭ blindiga unuavide, lerni kiel plani
aplikojn por la retejo, estas netaksebla por kompreni kiel tiuj
iom iloj labori.
Tio estas speco de kiel GDB kiel iloj, sed multe pli simpla, fine, uzi -
kaj vere donas al vi okulojn en kio ni estis prenante por donita por
sufiĉe tempo nun.
>> Do kion ni povas nun fari per tiun informon?
Nu, ni vere rigardu la konceptoj suba HTML.
Kaj ni prokrastas, kiel ni jam havas, sekcioj tiu semajno, ĝis la problemo
aro 7 specifo, al iuj de la plej detaloj de tiuj lingvoj.
Sed vidu se ni ne povas pentri bildo de kion vi devus kompreni
entuta tie.
>> Do HTML, hiperteksto Markup Language, ne estas programlingvo.
Kion tio vere signifas?
Do HTML aspektas kiel ĉi tio.
Kaj iuj el vi jam scias tion.
Kelkaj el vi jam faradas ĉi por iu tempo.
Sed vidu se ni ne povas plenigi en kelkaj spacoj tiel.
Do rimarki paro de aferoj tie.
Unu, estas nur teksto.
Do estas ĝuste kiel fonto kodo C, aŭ iu alia lingvo.
>> Rimarku ke ŝajnas esti mastro ĉi tie.
Ekzistas deŝovon, sed teknike la deŝovon estas nur homa
kongreso.
Al retumiloj ne zorgas se novas linioj kaj taboj kiel ni vidas tie.
Sed rimarkos ke ekzistas simetrioj tie.
Jen kion mi vokos, sur la supro de ĉi tiu dosiero, la malferma etikedo, aŭ la komenco
etikedo, nomata HTML.
Kaj poste, sube, perfekte kovrita supren, multe kiel ni faras kun krispa krampoj,
ni vidas malferma krampo, antaŭen oblikvo, HTML, proksime krampo.
Do jen la responda proksime etikedo, aŭ fino etikedon, por tiu afero.
>> Kune, ĉio ene de la tn malfermitaj etikedo kaj proksima etikedo
formi kion ni vokos ero.
Kaj ni vidos, en nur unu momento, ĝi estas vere ŝatas nodo en arboj.
Ĉar se vi pensas pri la nun deŝovon ke estas implicita tie,
speco de havi, ŝati, oni avo nodo nomata HTML.
Kiom da infanoj povus diri, bazita en ĉi tiu bildo, la HTML-elemento havas?
>> Do probable du.
Unu estas la kapo elemento, ŝajne.
Kaj tiu estas la korpo elemento.
Kaj kial du infanojn?
Nu, mi estas nur speco de infiriendo ke se Mi havas malferman kapo etikedo kaj poste
proksima kapo etikedo, jen ero.
Kaj tiam, se estas alia malferma korpo tag kaj proksima korpo etikedo, jen kiel
alia elemento.
Do, en la senco ke se mi specon de turni la bildo en lian flankon, estas
kiel havi HTML etikedo, kaj poste kapo etikedo, kaj tiam korpo etikedo, kaj
tiam iuj teksto, saluton mondo, pendantaj for de la korpo etikedo mem.
>> Do ni povas desegni bildon kiun povus aspekti kiel ĉi tio.
La formoj estas arbitraj.
Sed rimarkos ke mi uzis specon de elipso supre por reprezenti la
dokumenti.
Rezultas ke povas ekzisti aliaj aĵoj ene de retpaĝo kiun mi havas ne
desegnita tie.
Do ni tuj eĉ pendi la HTML nodo ekstere de tn dokumenton nodo.
Kaj tiam ni havas kapon kaj korpo kaj titolo, avizo,
kiu neston for.
Mi ne tedos metante plia linio rompas ene de la titolo etikedo.
Ĝi simple sentis kiel oni ricevas iom tro parolema.
Do mi lasis ĝin en unu linio tie, kun malfermita titolo, saluton mondo, proksima titolo.
Kaj tiam ni havi iu teksto pendantaj de de ĉi tie.
>> Do tiu bildo revenos al ni, kiam ni plonĝi en JavaScript.
Kaj komprenante ke kiam vi skribi HTML kiel ĉi tio, kion
Estas navegador faras?
Nu, ni ne devas maltrankviligi kiel ĝi estas fari tion, aŭ kun kio
algoritmo, sed je la fino de la tago, kiam retumilo ricevas HTML kiel
ke, de Facebook aŭ Google, tio parses ĝin, por tiel diri, ĝi legas ĝin,
kun iu kiel fread, supre fundo, maldekstre dekstren, kaj kiel ĝi
rimarkas, ho, malfermita etikedo, kaj poste fermi etikedo, ĝi komencas malloc, por tiel diri,
nodo en arbo.
Kaj kiam ĝi renkontas, kiel ni implicis tie kun la deŝovon, oni
infano nodo, ĝi mallocs nodo por ke kaj kunigita, ke la arbo.
>> Do la arbo strukturoj, duumaj arboj, triargumenta arboj, kaj pli grandaj arboj, kiuj
Ni ekrigardis unu semajno aŭ du horoj, avizo ke la sama principo estas
revenanta al ni.
Kaj kiu plenumiĝis, Chrome ajn teamo faris tion, supozeble havis
apliki ia arbo strukturo sub la kapuĉo.
Kaj tio mem estas probable en lingvo kiel C, aŭ C + +, aŭ pli malalta
nivelo lingvo kiun ni instruos vin nun uzas la pinto de la TTT.
>> Do nun, eble, tiu volo fari pli senco.
Aktuala tattoo de iu knabo kiu povus bedaŭros eventuale, ia.
OK, all right, do multe da ttt humuro.
Tio ne vere tuj super tiel bone hodiaŭ.
Do ni pluiru.
Ĉio bone.
>> Do ni rigardu nun en kelkaj ekzemploj.
La plej simpla ebla afero povus esti tiu.
Mi tuj iros antaŭen kaj malfermu en gedit dosiero nomata hello.php.
Kaj ene de ĉi tie, mi tuj rapide nur faru tion, printf, quote
unquote, "saluton mondo."
>> Do avizo, kaj mi faros mian backslash n, Mi ne tedis deklari ĉefa.
Rezultas, en php, kaj multaj lingvoj, vi ne bezonas ĉefa
funkcio per si mem.
Vi povas simple komenci skribi via programo.
Nun, kiam mi savos tiun dosieron, rimarki min tuj devos fari la sekvajn.
Mi ne tuj uzos fari, kaj mi ne estas tuj uzos clang ĉar PHP, kontraste
C, ne estas kompilitaj lingvo.
Estas kio nomiĝas interpretita lingvo, kio signifas, ke vi kuras ĝin
kiel eniro tra alia programo nomita interpretisto.
Kaj tiu programo legas ĝin, supre fundo, maldekstre dekstren, kaj faras
kion ajn vi diru ĝin fari.
>> Do, en tiu kazo ĉi tie mi devas unu linio kiu diras printf.
Do kiam mi kuros ĉi fontkodo, hello.php, kvankam programo kiu
okazas, oportune, por nomi PHP, tiu programo PHP tuj legos
tiu dosiero, supre sube, maldekstre dekstren, kaj tuj fari tion, kion mi
diru ĝin fari - ekzekuti kodon, kaj se ne rekonas ion, simple
kraĉi ĝin.
Do mi tuj iros antaŭen kaj kuri PHP de hello.php.
Eniru.
>> Kaj tio ne estas sufiĉe kion mi intencis.
Nu, kial estas tio?
Nu, PHP estas lingvo kiu fakte desegnita por esti sufiĉe
interplektitaj kun sxpinajxo.
Kiam farante retpaĝojn kun ĉi tiu lingvo PHP, kiel ni baldaŭ vidos, ni instruos vin
volas fari ion kiel presita el linioj kiel ĉi tio.
>> Do mi tuj faros tion.
Malferma krampo, demandosigno, PHP, kaj nun mi simple tuj indent ĝuste teni
aĵoj bela.
Kaj nun mi faros demandon marki proksime krampo.
Do tie estas iom de nesimetrio tie.
Vi ne faras tion.
Kaj vi ne faros oblikvo, do PHP estas iom malsamaj.
>> Sed nun, se mi rerun tiu programo, PHP hello.php, nun mi
reale preni Saluton Mondo.
Kaj ni vidos kial tiu estas valora.
Unu, ĝi permesas min specifi, super eksplicite, tio estas
kodo, ekzekuti ĉi.
Kaj tio estas ĝuste kion tiuj specialaj etikedoj implicas tie.
>> Sed ĝi ankaŭ signifas, ke se mi simple fari iu kiel mi notas ĉi tie, por ke
tio signifas ke, laŭvorte, kiu nur presi sen la bezono
efektive nomas printf aux presita, aŭ ajna simila funkcio.
Do ni revenos al tiu en nur momento.
>> Unue, ni faros.
Ene de la aparato, ni havas dosierujon nomita Vhosts, por virtuala
gastigantoj, slash loka gastiganto, slash publiko.
Do estas iom verbose, sed longa rakonto Resume, la aparato estas desegnita ne
nur por subteni C. Ĝi estas ankaŭ desegnita por elporti PHP.
Sed ĝi estas ankaŭ desegnita por esti retejo servilo, kaj datumbazon servilo.
Kaj ĝi estas desegnita, kaj vere agordita, esti memoras ajnan
komerca ttt retprovizanton kompanio kiu vi povus pagi $ 5 monate por,
$ 100 monate por.
Sendepende de la servo estas, ĝi estas agordita esti tre simila al
reala mondo produktado servilo.
>> Kaj kion tio signifas estas ke kurante en la aparato estas retservilo programaro.
Ĝi okazas al nomi Apache.
Estas nur libera kaj malfermita kodo, kaj tre populara.
Kaj ni agordita Apache scii ke se mi vizitas iun URL, kun
Chrome aŭ ajna retumilo ene de la aparato, por serĉi en tiun dosierujon
por la dosieroj, ke la uzanto petas.
>> En aliaj vortoj, permesu al mi antaŭeniri kaj fari ĉi tion.
Ene de mia publika dosierujo, mi tuj iri antaŭen kaj krei dosieron
vokis index.html.
Tio donas al mi la langeton tie.
Kaj mi tuj iros tre rapide kaj iru antaŭen kaj bang el
tiun programon tie.
DOCTYPE HTML, kiun nuntempe, ĝuste supozi vi devas tajpi.
Estas nur arkaikaj etikedo, tio ne vere HTML etikedo, kiu specifas kiun
jen kelkaj HTML.
>> Mi tuj iros antaŭen kaj amuzi kion ni vidis antaŭ momento.
Jen la kapo de la paĝo.
Ene de la kapo estis la -
tiel titolo.
Do ni devos diri saluton, mondo.
Kaj tiam ĉi tie trovis la korpon etikedo.
Lasu min fermi la korpo etikedo.
Kaj tiam en ĉi tie mi ankaŭ diri, nur por klareco, saluton mondo.
>> Do tiu estas, eble, la plej simpla ebla TTT-paĝo vi
povas fari tio estas valida.
Ĝi estas sintakse valida.
Ĉio estas malfermitaj estas fermita.
Ĉio estas bele en stiligas kaj dentado.
Do ni vidas, ke mi povas aliri ĉi tiun dosieron.
>> Nu, lasu min iri al Chrome tie.
Kaj lasu min iri al http://localhost/index.html.
Do kio estas loka gastiganto?
Nu, plej ajna komputilo en la mondo, Linukso, Mac OS, Vindozo, ĝi havas kromnomo
nomata loka gastiganto.
Do, se vi iam volas paroli al via propra komputilo -
kvankam, strange reflexively -
vi nomas vin mem loka gastiganto.
Ne gravas kion via reala komputilo estas vokis, ĉu ĝi estas David MacBook
Aero, aŭ iu pli verbose tiel.
>> Do tiu URL estas ŝajne tuj uzos la HTTP por paroli kun la loka gastiganto,
la sama komputilo, la aparato, kaj ĝi estas tuj petos, nur preni
diveni, kion dosieron?
Index.html.
Do la aparato estis agordita en antaŭi scii, ke se mi demandas
por iu kiel index.html, serĉi en dosierujo nomita Vhosts, en
dosierujo nomita localhost, en dosierujo gxi nomis publiko.
Tie estas kie ĉiuj miaj publika Dosieroj tuj estos.
Do mi nun iras al batis Eniru.
>> Kaj malbenita, estas ke malpermesita mesaĝon, alie konata kiel 403, la
numera kodo por ĝi.
Do kio okazas ĉi tie?
Nu, tio ne sufiĉas por ĝuste meti la dosieron ene de mia dosierujo.
Mi bezonas efektive plenumi la sekvajn.
>> Permesu al mi iri en mian Vhosts dosierujo, en localhost, en publiko, kaj lasis
min fari ls haltostreko l.
Kaj estas kelkaj aliaj aĵoj en ĉi tie por la hodiaŭa celoj.
Sed rimarki sur la maldekstra flanko, apud al index.html, ni vidas nur unu RW.
Kaj en la pasinteco, kia havas RW staris?
>> Nur legi aŭ skribi.
La fakto ke ĝi diras rw maldekstre signifas: Mi, la posedanto de ĉi tiu dosiero, povas
legi aŭ skribi ĝin.
Sed mi bezonas lasi tutan popolon en la mondo legu ĉi tion, kvankam ne skribas ĝin.
Do mi tuj ŝanĝos la modo de la dosiero, chmod, ĉiuj krom r doni
ĉiuj legas permeso de la dosiero nomata index.html.
>> Kaj se mi nun Retajpu ls haltostreko l, avizo ke, ĉi tie, iuj pli
R esti pusxis supren.
Kaj nuntempe, la spec iras pli detale.
Por P aro 7, ke nur signifas ke ĉiuj Nun povas legi ĉi tiun dosieron.
Se mi reirus al mia retumilo nun kaj reŝarĝi, voilà.
Saluton mondo.
>> Kaj mi povas eĉ malfermi mian Chrome iloj kaj vidu, kiel kun Google kaj
Facebook kiu tie estas mia HTML, formatita iom
malsame kaj colorized.
Se mi iras al la reto langeto freŝigi la paĝo, rimarki ke tie estas la akiri
peti ke Chrome sendas al la aparato.
Jen la 200 por ke aparta dosiero.
Do, en mallonga, tiu estas kiel ĉiuj ĉi tiuj diversaj pecoj venas kune.
Ĝi simple tiel okazas ke la retservilo ni uzas ĝuste nun ne estas malproksima,
kiel Facebook.
Ĝi estas laŭvorte sur la sama komputilo, kiu estas perfekte OK.
>> Do kio pli ni povas fari en la retpaĝo?
Nu, simple, ni brizo tra paro el tiuj aĵoj.
Sed lasu min antaŭeniri kaj remalfermi Gedit kun index.html.
Kaj lasu min antaŭeniri kaj saluti CS50, savi ĉi tiun dosieron, reiru al la
retumilo, vere underwhelming ŝanĝon.
>> Sed kion se ni volas vere ligi al io nun?
Do rezultas ke ni povas havi la ligoj en HTML tio estas nur-etikedoj
sin.
Ĝi okazas al nomi la ankron etikedo. a href egalas
https://www.cs50.net, www.cs50.net proksime citaĵo, proksime krampo.
Kaj nun ni vidu kion alia venas tuj.
>> Mi malfermis la etikedo.
Mi nun bezonas doni ĝin frazo kiel CS50.
Lasu min fermi la etikedo.
Kaj rimarki kelkajn aferojn.
Kvankam tie estas tio kripta afero ĉi tie, mi ne ripetis ĝin kiam vi
fermi la etikedo.
Vi nur fermi la etikedo kun lia nomo nur.
Kaj ĉi tiu estas kion oni nomas atributo kun valoro.
Atributoj nur modifi la konduton de iu etikedo ene de artikolo.
>> Do tiu estas preciziganta ke la hiper referenco, la imago maniero diri la
URL por ĉi ankro, por ĉi tiu ligilo, devus esti CS50.net.
Kaj la teksto kiun ni volas montri la uzanto ne estas tiu kruda URL, sed prefere
la vorto CS50.
>> Do se nun mi povos reŝargi, lasu min zoom in por klareco, lasu min reŝarĝi la paĝon,
rimarki, ke ni havas ĉi malnova lernejo blua emfazis ligilon.
Kaj se mi ŝvebi super ĝi, kaj tuj esti malmolaj por vidi, en la fundo forlasis
mano angulo de la ekrano, rimarki kiu diras la URL al kiu
Mi tuj iros.
Kaj se mi klakas tie, voilà, nun mi faras retpaĝoj.
Kaj ni kondukis nin al la hejmpaĝo.
>> Sed rimarki kion potencial tiu proponas al ni.
Sekureco estas tre multe en boga tiuj tagoj.
Kio se mi anstataŭ diri ion kiel ĉi tio, kaj mi anstataŭ iri al, ni diru, ni
vidu, fakeCS50.net.
Reload ĉi paĝo.
>> Bone, do rimarki ankoraŭ aspektas kiel mi estas tuj CS50, krom se ruza okulo
Rimarku ke mi tuj falsa CS50.
Mi konjektas tiu domajno ne estas prenita.
Bone, do ĝi ne estas havebla.
Do tio estas bona.
Neniu vere havas tiun domajno.
>> Sed ni estos iom pli malica ĉar tio estas speco de stulta.
Kio se ni ŝanĝos ĉi tion al Paypal.
Kaj kion se ni nomas tiun, kiel, www.paypal.badguy.com,
kion ajn la domajno estas.
Tio probable ekzistas.
Do nun lasu min reŝarĝi la paĝon.
Kaj ĉi tie ni havas specon de phishing atako, P-H-mi-S-H-mi-N-G, kiuj estas la
stulta vorto donita por atako kiu provas fiŝo informo, aŭ, pli bone
tamen, mono, el popolo de trompante ilin provizante informon kiu
ili ne alie fari.
Ĉi aspektas tute legit, ĉu ne?
Mi devas havi ligon tie Paypal.com.
En justeco, se mi sexed ĝin kun iu grafiko, ni povas fari ĝin rigardi
pli kiel PayPal.
Ĝuste?
Ĉar mi povis, kiel flanken, Mi povis iri al Paypal.com.
Kaj ni ĵus vidis, kiel mi, facile vidi ĉiujn iliajn HTML.
Mi povus simple kopii ĝin kaj amuzi la estetiko de Paypal anstataŭ iri
malnova lernejo tie.
Sed rimarkas, kompreneble, kaj estas iom malgranda ankoraŭ, nur en la fundo
maldekstra angulo, en kiel 10 punkto tiparo, vi vidas kion URL vi estas
fakte tuj estos kondukataj al.
>> Kaj do se vi iam alveninta spamado dirante iru antaŭen, kaj vi rakontu
estis kompromititaj.
Bonvolu alklaki ĉi ligon kaj sciigu nin vian pasvorton tiel ni povas certigi vi estas
vi ne iam fari tion.
Tion devus iri sen diri.
Sed estas mirinde amuze, kaj tragika, kiel ĉiujare ĉi tio ŝajnas
okazi al iu ne-nula nombro de personoj.
>> Kaj tio estas la belo de phishing atakoj.
Vi povas sendi miliono retpoŝtoj.
Kaj eĉ se 0,01% da homoj reale alklaku Paypal kaj donu al vi viajn
pasvorto, tio estas ankoraŭ ne-nula nombro de personoj kiuj ĵus donante
vi ilian monon.
Kaj sendas retpoŝtojn, kompreneble, estas tute facila kaj, esence, libera
ĉi tiuj tagoj.
>> Do longan rakonton, mirinde bela ideo, ĉu ne?
Antaŭ jaroj, ĉi tiu estis la plej frua retejo, permesante retejo de
hiperligoj inter rimedoj.
Sed tiel rapide povus esti uzata por malsana celoj.
Kaj retpoŝto, sufiĉas diri, tiujn tagoj, ili HTML enigita enen.
>> Nu, lasu min nur unu alia afero.
Kaj ni prokrastas grandparte al sekcio en problemo starigis sep por permesi al vi
esplori la detaloj.
Sed lasu min antaŭeniri kaj fari kelkajn aferojn tie.
Mi tuj iros kaj rakontos kio nomiĝas div aux
divido, de la paĝo.
Lasu min fermi ke div etikedo.
>> Kaj mi tuj diros supren tie la supro.
Kaj poste sub tiu, mi faros iu kiel alia div, fermu
etikedo, kaj faru malsupro de la paĝo.
Kaj ni konservu ĝin.
>> Do nun ni reiros al mia dosiero.
Tre underwhelming.
Sed kion divido estas uzata por, sub la kapuĉo, ĝi estas fakte
belan struktura elemento.
Ĝi ne havas ajnan estetiko Kiom ni povas vidi, krom, ŝajne,
metante aĵoj sur novaj linioj.
>> Sed rimarki, kiel flanken, nur bati Entajpu ne tranĉas ĝin en HTML ŝatas ĝin
ne en C. Vi povus pensi ke tio estas tuj metos belan granda breĉo inter
la supro kaj malsupro de la paĝo.
Sed ĝi estas ignorita.
Blanka spaco estas esence ignorita en retpaĝojn aliaj ol la unua
spaco trinkejo karaktero, aŭ tirilo, ke vi batis sur la klavaro.
Se vi volas pli linisaltojn, vi devas specifi ĝin vi mem.
>> Do mi faros kelkajn aferojn tie por montri kion okazas.
Mi tuj aldonos atributo kiu Ekzistas Kaj denove, kiel vi lernos
kio atribuas ekzistas, kio etikedoj ekzisti, vere, estas enreta referencoj.
HTML estas la speco de lingvo - ĝi estas ne estas programlingvo.
Ĝi estas markita lingvo - ke post bona duonhoro, eble, horo kun
tio, vi certe ekkapti, plej Probable, la baza ideo.
Kaj tiam serĉo Google for estas ĉio la eblaj etikedoj ke vi estu
interesiĝas in
Kaj por la specifon, kiu estas sufiĉe bonvenigi kaj kuraĝigis ĉi tie.
>> Do nun lasu min iri antaŭen kaj fari ion kiel ĉi tio.
Fona koloro.
Kaj nun, mi faros ion kiel ruĝa, punktokomo.
Kaj vi povas tion fari en kelkaj diversaj manieroj.
Mi estas nur speco de tajpi ĝin kiel super eksplicite kiel ebla.
>> Sed ĝi rezultas ke tiu valoro ĉi tie estas kion oni nomas CSS, Laŭtemaj Stilo
Littukoj, kio apartenas al alia lingvo entute.
CSS havas nenion komunan kun malfermi etikedoj kaj proksima etikedoj.
Ĝi devas vidi kun proprietoj.
>> Kaj propraĵoj estas simple ŝlosilo valoro paroj, kiu signifas nur iun vorton,
dupunkto, kaj poste iu alia vorto.
Kaj se vi havas plurajn, aŭ simple ĉi tie, vi povas fini ĝin per
punktokomo, nur por klareco.
Sed tio ankaŭ laboros tie.
>> Nun kio tiu intencas fari?
Vi verŝajne povas diveni.
Lasu min antaŭeniri kaj reŝargi tiun paĝon.
Kaj nun ĝi estas vere venas kune.
Do supro de mia paĝo estas ruĝa.
Sed kio estas ŝlosilo tie estas ke, mi menciis antaŭe, ke div donas al vi
divido de la paĝo.
Kaj tio estas ĝuste kion ĝi faras.
Ĝi esence dividas la paĝon al rektangulo kiu vi povas tiam
manipuli.
>> Kaj ĉi tiu nocio de ortanguloj estas speco de konvinka en tio, se vi pensas
plej ajna TTT-ejo, tie estas probable iu strukturo al ĝi.
La plejparto de vi probable malofte vidita Facebook hejmpaĝo se vi ensalutinta
en la tuta tempo.
>> Sed en Facebook ĉefpaĝon, estas ia div kune la supro.
Kaj ĝi ne povus esti tiel simpla kiel unu div, sed estas
rektangula regiono tie.
La resto de la paĝo estas kiel grandega div, kiel multe
grandaj rektangulaj regiono.
Do longan rakonton, nur por havi tiuj malgranduloj blokoj, la
kapablo modelo aĵoj kiel rektanguloj, ĉu larĝa aŭ mallarĝa, vi povas ankaŭ
fari kolumnoj potenciale, permesas vin kuŝis ekstere paĝoj, vere, tamen vi
ŝatus.
Ni vere nur skrapi la surfaco ĉi tie.
>> Ja, se mi faras unu alia, lasu min antaŭeniri kaj fari stilo,
fono-koloro, ni faros ion kiel blua, proksime citaĵoj.
Ni reŝarĝi ĉi.
Do nun ĝi iĝas eĉ pli malbelaj.
Sed nun mi povas ia montri miaj P starigis kvin lertecojn, ĉu ne?
Ruĝa.
Ĝi rememorigas al mi RGB, Reto Verda Blua triopoj.
Nu, tio rezultas en retejo programado, aŭ TTT-dezajno, kiu estas cxi tiu, ni
ankoraŭ ne planis ion per, vi povas efektive
havi deksesuma kodo.
Do io io, iu io, iu ion.
Do vi povas havi ses deksesumaj karakteroj, aŭ tri, en iuj kazoj,
kaj ĉiu el tiuj demandosignojn devas esti deksesumaj ciferoj,
nulo tra f.
>> Se mi volas havi multe da ruĝaj, kaj neniu verda, kaj neniu blua, kio estas la
malo de nulo uzinte deksesumajn?
Ĝi estas f.
Do mi povas fari ff, nulo nulo, nulo nulo, savi tion, kaj nun deiru tie.
Kaj mi ne vere vidas ŝanĝon.
Do citaĵo unquote "ruĝa" estas ŝajne sinonimo por ĉiuj ruĝa,
neniu verdaj, neniu blua.
Dume, ni intence ŝanĝi ĉi tiu esti iu
hazarda, kiel ABCDF.
>> Ni vidu kio estas tio.
Ĝi estas vere bela blua, fakte, bebo blua.
Bone, do tiuj estas nur nun iom hazarda kombinojn de
gravuloj.
Do ni ne get enkaĉiĝis en ĉi tie.
Sed denove, ĉi tio temas pri la precizeco ke vi povas komenci
apliki - eĉ se vi tre premita de la estetiko.
Fakte, se vi vere volas esti impresas, lasu min antaŭeniri kaj ŝanĝi
la tiparo, ekzemple.
Kaj rimarkos la punktokomo, kiu Estas necese tien.
>> Font grandeco, povas esti simple ridinda ĉi tie, 96 punkton.
Savi.
Wow, tio estas granda tiparo.
Bone, do ĝi estas tre facila.
Kaj efektive, vi esence vidante la unua retpaĝo mi faris
jaroj, kiam mi unue lernis ĉi aĵoj.
Estas tre facile fari tre malbelegaj aferoj rapide.
>> Kaj se vi konas la Wayback Maŝino en archive.org, vi
povas trovi mian tutan hidan undergrad retpaĝoj.
Unu havis Kermit la rano sur la fronto.
Mi iris por fazo, kie mi pensis estis malvarmeta preni la fono de
ruĝa kurteno, kiam mi eksciis kiom vi can kahelo bildojn denove kaj denove, kaj
denove, por plenigi paĝo kun grandan tacky ruĝa kurteno.
Kaj tiam, supre sur ĉi tio, estis ikono ke vi devis premi por eniri mian hejmon
paĝo ĉar tiu estis tre en boga.
>> Kaj tiam mia unua programo kiun mi iam verkis ne estis en PHP, sed en lingvo
nomata Perlo, skribis gasto libro, kiu Estas vere malvarmeta aĵo kiu
multaj homoj atendas vin havi sur ĉefpaĝon.
Kiam vi atingos la paĝo, ili volas ke vi subskribi, kaj diros, kiu vi estas
kaj kial vi estas tie.
Ĉi tio estas tre 1990 stilo retejo dezajno.
>> Sed tiuj tagoj, certe, ni venas multe pli malproksime.
Kaj vi vidos, en sekcio, kaj eĉ en la problemo starigis sep, por
utiligante bibliotekoj tiuj tagoj, ĝi estas tiel facile fari
belaj aĵoj rapide.
Vere ĉi tie, ni nur skrapi la surfaco de kion vi povas fari
stile.
>> Kaj fakte, jam, lasu min reliefigi ke tio jam estas atingi malbela, ne
nur estetike, sed en terminoj de stilo de mia kodon, aŭ la
dezajno de mia kodo.
Mi nuntempe comingled HTML, kiu estas la verdeca malferma etikedoj tie, kun
CSS propraĵoj, kiujn Estas plene legit.
Tiu estas vere kie la lingvo havis liaj originoj.
>> Sed en la intereso de pura dezajno, multe kiel ni komencis faktorigo stuff
el C dosierojn en. h dosieroj, lasu mi efektive praktiki tian
maksimuma kaj komenci fari ĉi anstataŭe.
Lasu min metis stilo etikedo ĝis ĉi tie, kiuj ekzistas ankaŭ en HTML, kaj lasu min
specifi la sekva.
Lasu min forviŝi ĉi.
Fonkoloro tuj estos ruĝa.
Mi tuj forviŝi ĉi tute.
Mi tuj forigi la stilon atribui, kaj mi tuj unike
identigi ĉi div kun vorto -
arbitre, sed prudente, citaĵo unquote "top". Kaj id estas speciala
atributo kiu unike difinas iu HTML elemento
kiel havanta ke id.
>> Se mi nun volas stiligita ĝin, ĝis ĉi tie en la kapo de mia paĝo, ene de la
stilo etikedo, rimarki ke Mi povas fari hash supro.
Kaj tiam mi povas meti paron de krispa krampoj, rememorado de C, kaj tiam
mi almeti en tiu estilización.
Kaj lasu min iri antaŭen tie kaj anticipi kie mi iros kun cxi tiu.
Permesu al mi ankaŭ krei por la fundo div.
Lasu min kapti tiun hidan kodo de sube ĉi tie, meti ĝin en ĉi tie, kaj mi estos
iom pli anal nun kaj stiligita ĝin por nur meti tion sur siaj propraj
linio, finiĝanta per punktokomojn.
Lasu min forigi la stilo etikedo.
>> Sed mi ne faris ankoraŭ.
Mi bezonas fari unu alian aferon.
Jes, id egalas citaĵo unquote, "fundo" aŭ kio ajn id mi volas
doni tiun elementon.
Nun, lasu min reveni tien.
Kaj jen estas abomena.
Mi ne povas trakti 96 punkton.
Ni faras 24 punkton.
Aŭ vi povus esti pli preciza.
Vi povas fakte uzi rastrumeroj, px, do ke vi vere akiri pli fajna akno
kontrolon pri via paĝo.
>> Kiel flanken, tio ne nepre la plej bona afero se la uzantoj, por
alirebleco kialoj, volas povi pliigi grandecoj.
Do rimarkas ke ekzistas manieroj fari aĵoj kiuj ne nepre
malmola kodo ĉio.
>> Bone, do ĝi estas pli granda, 24 punkton, ol kion ajn la defaŭlta estas.
Sed nun ĝi estas iom pli pura.
Kaj lasu min forigi tiun paŝon pli.
Ĝuste kiel la ideo de header files, rimarki ni estas unu paŝo pli proksima al tio.
Mi havas faktorita ekstere, sed ankoraŭ restis, ene de mia paĝo, tiuj CSS regulojn.
Kial eble mi volas preni ĉi tiu paŝo plui, forigu ĉi entute, kaj
metis ĝin en aparta dosiero?
>> Do mi povas reuzi ĝin, ĉu ne?
Ĉi tio estas nur ia intuicio nun.
Antaŭe, mi asertis ke estis nur akiranta malbela havante la stilon
atributojn ene de la divs sin.
Sed ĝuste ia pensas ke per.
Kiel via paĝo ricevas pli kaj pli longaj, se vi meti tie ĉi, kaj ĉi tie, kaj
tie kaj tie, ĉiuj ĉi tiuj malsamaj koloroj, kaj tiparon grandecoj, kaj aliaj tiaj
atributoj, via paĝo estas tre rapide iri igi ingobernables por vi.
>> Se iu venas al vi kaj diras, ho, vi scias kion?
Mi vere volonte por ŝanĝi la tiparon grandeco per du pliaj punktoj, vi
eble devus iri kaj serĉi kaj anstataŭigi grandega nombro de linioj de kodo.
Ĝi estas multe pli konvinkaj centralizi ĉiuj tiaj estetiko tie.
Sed se vi ŝatus reuzi tiuj estetiko en multnombraj retpaĝoj, ĉiuj
la plej konvinka al, por Ekzemple, krei dosieron
vokis kun tiuj enhavoj.
>> Kaj lasu min fari tion.
Konservi ĉi tiun dosieron.
Mi diras styles.css, arbitraj, sed konvencia.
Mi metos ĝin en John Harvard hejmo katalogo nun por simpleco.
Kaj kion mi povas fari en mia retpaĝo estas akiri senigi de la stilo etikedo aro,
kaj iom unintuitively, uzu ligon etikedo, kiu ne donas al vi ligilon en
la hiperligilo, alklakebla senco, sed kie mi diras ligilo, href egalas
styles.css.
Kaj la rilaton, kiu ĉi tiu elemento kiu kun la retpaĝo estas servi kiel
lia stilo folio.
>> Do kiamaniere mi scios tion?
Unu, vi nur legas la manlibro, aŭ vi Google ĉirkaŭe, kaj vi
rigardi diversajn rimedojn.
Mi volas diri, ke vere estas tiel kiel vi prenas teknikoj kiel tiu, kaj, konsekvence
kun tiu ideo de instruante sin nova lingvoj, denove, vi trovos ke
tie estas nur finia nombro de aĵoj al ajna lingvo kiu, unu fojon vi ricevas
ili, vi trovos ke ĝi ricevas pli rapide skribi.
Ja, lerni novan programado lingvo estas tiel pli rapide ol nova
parolata lingvo, ĉar tio estas multe pli malgranda kaj multe pli
precize difinita.
>> Sed mi reliefigis iom de anomalio tie.
Kial do mi reliefigis tiun antaŭen slash tie?
Ĉar mi devos fermi la etikedo.
Mi devus fermi la etikedo.
Kaj vi trovos sennombraj rimedoj linio kiu ne
nepre proksimaj etikedoj.
Kaj realisme, ne estas strikte necesa por teknikaj kaj ekzistas
kialoj de la realo, retumiloj estas nur sufiĉe tolerema erarojn en retejo
paĝoj, por pli bona aŭ por malbona, sed plejparte malbona.
>> Do ĉi tie estas nur pura vojo de dirante iu stulta kiel oriento,
kie se vi volas malfermi la ligilon etikedo sed fermi ĝin, estas vere neniu nocio
de enhavo por ligon etikedo.
Ĝi nur signifas montru tiun dosieron kaj metu ĝin ĉi tie.
Estas kiel akra inkluzivi en C. Vi povas malfermi kaj fermi etikedo subite
ene de la sama etikedo.
Kaj estas aliaj ekzemploj de tio.
Ĉi tio ne estas la maniero por fari tion, sed la br etikedon, por linisaltojn, se mi
vere volis atingi tion, kion mi trovis provante antaŭe por bati Enter, se
Mi eksplicite diri linerompo, linerompo, linerompo, linerompo, kaj
tiam reŝargi tiun paĝon, nun vi rimarkos ke malsupro de la paĝo estas,
ja, tre pli malsupre en la malsupro de la paĝo.
Sed eĉ tio povas fari multe pli pure kun CSS, kaj kun randoj,
kaj kun aliaj tia estetika teknikoj.
>> Do nuntempe, la takeaways estas tiu.
En HTML, ni havas ĉi tiujn tion nomas etikedoj.
En CSS, ni havas tion vokis propraĵoj.
Ni povas comingle tiuj du lingvoj, ĉu per uzanta la stilo atributo,
aŭ la stilo etikedo, aŭ pli bona ankoraŭ, faktorigo ĝin en aro, kiel ni
en problemo starigis 7.
Demandoj, do, pri la koncepta fundamentojn tie?
>> Spektantaro: Mi havas demandon.
>> Parolanto 1: Ho, pardonon.
>> Spektantaro: Kial ne koloraj -
>> Parolanto 1: Ho, en la alia langeto?
Ĉi tie?
>> Spektantaro: Ne, ĝi estas kiel la -
>> Parolanto 1: Ho, tio estas ĉar Mi estas fuŝa.
Mi metis la dosieron en la malĝusta loko.
Do, se mi efektive metu ĝin ĉi tie, kaj mi chmod ĝin, ĉiuj + r por styles.css, kaj
nun reŝarĝi la paĝon, ni nun akiri la estilización dorso.
Kaj ĉar la tiparo grandecoj estas malsama, ni ne vidas sufiĉe tiel
blanka spaco.
Ni anstataŭ vidi kio estas la implicite estas anstataŭe.
Bona demando.
Jes?
>> Spektantaro: Kial la ligilon etikedo ene de la kaploko?
>> Parolanto 1: Kial estas la ligoj etikedo ene de la header -
mallonga respondo, nur ĉar.
Tio estas kio estis decidita.
Tie estas kie la ligilon etikedoj iri kiam vi havas kio nomiĝas
ekstera stilo folio.
Aliaj demandoj?
>> Bone, nu ni faru tion.
Ni havas tiel amuza antaŭ ni hodiaŭ.
Tio nur skrapi la surfaco de CSS.
Ni faras tion.
Ni prenu kvin minutoj ripozon ĉi tie ĉar, per mia retpoŝto, ni pendigu en
tie gxis la 2:30-ish hodiaŭ.
Sed se vi faras devas lasi, ke estas bone.
Sed ni forĝi antaŭe post kvin minutoj ripozon.
Kaj ni lernos iom ion pri PHP, MySQL, kaj pli.
>> Bone, do ni provu nun, ligi kelkaj el tiuj ideoj kune kaj fari,
diri, nia propra serĉilo.
Mi rimarkis, iom kurioze, la jena.
Kiam vi estas en Google.com, vi estas tipe ĉe URL kiel ĉi tiu tie
kun nenio post la punkto com.
Sed se mi serĉi ion stulta kiel katoj, kaj poste premu butonon Enter, ni ricevos - ne
stulta, sed vi scias.
>> Bone, do rimarki, sur la supro de la paĝo, nun, la URL estas, kompreneble, ŝanĝis.
Kaj tio ne estas io nova al iu el ni.
Vi klaku ligoj kaj stuff okazas en la TTT.
Sed kio estas interesa ĉi tie estas la jena.
Ekzistas tuta loto de malordo, sed lasu mi forĵetu plenigos ke mi ne
tute komprenas aŭ ne vere aspektas grava.
>> Lasu min forigi ĉi.
Lasu min forigi ĉi.
Kaj lasu min nur forigi el ĉio ĉi.
Kaj nun rimarkas, ke katoj estas en la URL, sekvis kun q, tiam egala
subskribi antaŭ ĝi.
Do rezultas tiu estas kiel la tiel funkcias kiam temas
por enigo kaj eligo.
>> Ni longe parolis pri nigraj skatoloj, ĉu ne?
Do se tiu estas funkcio implementado tie kiel nigran skatolon, prenas enigo
kaj produktas eligo, nu, la rimedoj per kiu vi provizis enigo al
retejo estas de formo, ofte, de lia URLoj.
Vi simple metas demandosignon kaj tiam ŝlosila egalas valoron.
Kaj tiam eble-simbolo, kaj poste alia klavo egalas valoron, tiam eble
alian signon, klavon egalas valoron.
Tiel estas kiel vi pasas en klavoj kaj valoroj, paroj de enigoj.
>> Do se mi batis Eniru nun, kio estas interesa pri Google estas, ke ĉiuj
ke malordo mi forigita ne aperas esti strikte necesaj.
Mi nur bezonas sendi al Google estas demando markon q egalas katoj akiri
apogi iuj katoj.
Nu, la implikaĵo de tiu, do, Estas kvazaŭ mi elsxiros gedit, mi komencis
fari mian propran serĉilon tie en dosiero nomata seach0.html.
>> Kaj lasu min antaŭeniri kaj forviŝi pli linio kiu vi
ne supozis vidi.
Kaj nun, mi iru en mian propran retumilo, tial ne al Google, kaj iru al
http://localhost.
Kaj tuj eniri la vojon.
Do ni tuj devas diri adiaŭ al ke nuntempe, movi ĉi tie,
ho, nun ni tuj devas adiaŭi al tiu dosiero.
>> Kiam ajn vi havas dosieron nomatan index.html aŭ index.php en
dosierujo, se la TTT-servilo estas agordita tiamaniere, kion vi instruos vin
vidu, implicite, estas la enhavo de tiu dosiero anstataŭ liston de la
dosierujo, kiel mi volis ĉi tie.
Pli sur ĉi tio en la specifon.
Vi ne vidis tion.
>> Do ĉi tiu estas kion mi fakte volis.
Sed antaŭ momento, estis dosiero en tiu ĉi dosierujo nomita
index.html kaj index.php.
Kaj tial la TTT-servilo estis montrante al mi tiujn dosierojn.
Anstataŭe, mi volas ĉi dosierujo printante tie.
>> Do mi tuj iras en CSS kaj iru al search0.
Kaj mi asertas ke ĉi tiu estas ĝi tuj estos la komenco de mia propra konkura
serĉi en motoro.
Kaj fari tion, mi tuj iros en tie, en CSS, kaj malfermu per
gedit, serĉo 0.
Sed bedaŭrinde, ne estas ne multe okazas ĉi tie.
Ĉiuj mi faris estis uzi rubriko etikedo, kiu pasas al nomi h1, kiu
esence signifas granda kaj aŭdaca, kaj tio estas ĝi.
Sed la rimedoj, per kiuj ni povas provizi enigoj estas tra tiuj
aĵoj nomata formoj.
>> Do lasu min antaŭeniri kaj malfermi kaj fermi, preemptively, formo etikedo tie.
Kaj lasu min antaŭeniri kaj fari iu kiel ĉi tio.
Enigo, tajpu egalas tekston.
Kaj tiam ni fermas la etikedo ene la krampoj sin.
Mi ne bezonas komenci teksto kampo kaj deteni tekston kampo.
Ĝi simple tuj estos tie aŭ ne.
>> Kaj poste sub tiu, ni faru eniga tipo egalas submeti.
Konservi ĉi.
Kaj nun ni nur fari rapida prudento kontroli.
Ni povos reŝargi.
>> Bone, do ĝi ne estas malbona.
Ĝi ne estas Google stilo, sed ĝi estas sufiĉe proksima.
Jen teksto kampo.
Mi povas tajpi kelkajn aferojn en, batis Enter, sed nenio okazas ankoraŭ.
Kaj tio estas ĉar mi ne specifita ago por ĉi tiu formo, por tiel diri.
Do, se mi reirus al la formo elemento, rezultas, kaj mi scias tion nur
el leginte la dokumentado, por ke la formo etikedo prenas atributo
nomas agon kiu estas la URL de la retejo kiun vi
volas sendi la formularon.
>> Mi ne vere kredas ke ni havos tempon por apliki la tutan dorson fino por
serĉi motoro hodiaŭ.
Do ni nur intencas diri, he, iri al google.com / serĉo.
Kaj nun mi volas fermi miajn citaĵoj.
Kaj lasu min pli specifi ke la metodo por uzi tuj
esti nomita akiras.
>> Longan rakonton, ekzistas du manieroj, en almenaŭ, ke vi povas prezenti informon
el browser al servilo.
Unu estas akiri, kaj por la hodiaŭa intencoj, ke nur signifas en la URL.
Vi vidas ĝuste la demando markoj, la egalas signoj kaj ampersands ke
ni vidis antaŭe.
Aŭ ekzistas alternativo nomita post.
Por nun, sciu ke post estas ofte uzata kiam vi volas alŝuti dosierojn, kiel
bildoj kaj tiel plu, aŭ kiam vi volas submeti kreditkartajn detalojn, aŭ
pasvortoj, ion, kio ĝi ne vere havas sencon, koncepte, aŭ
sekureco saĝa, por fini la URL-on de via retumilo, kie snooping gepatroj,
aŭ kunloĝantoj, aŭ iu kun aliro al via komputilo povus vidi.
>> Do ni savu, ke ĉi tie.
Kaj mi bezonas fari aliajn afero.
Ne sufiĉas nur por diru al mi tekston kampo.
Mi devas doni tiun kampa taksas nomon.
Do mi petu al Google elekto de nomoj, q, kaj specifi ke dua
atribui mi ne vere zorgas pri la nomo de la submeto-butonon.
Mi nur zorgas pri ĝi submitting kion la uzanto tajpas in
>> Kaj nun jen estas ia malbela.
Ĝi ĵus diras submeti.
Rezultas, kaj mi scias ke ĉi tio la dokumentado, mi povas vere diri
valoro egalas citaĵo unquote "cs50 seach, "fermi citaĵo.
Tiam ni povos reŝargi denove.
Do mi gardas bati Ordonu-R, aŭ Kontrolo-R sur mia klavaro por reŝargi.
>> Nun ni havas pli interesa serĉi en motoro.
Ĝi ne sufiĉe aspektas kiel Google tamen, kvankam.
Do ni iru antaŭen en ĉi tie kaj fari iom linerompo.
>> Bone, do nun ni havas Google.
Ni efektive preskaŭ ne havas Google.
Do nun tio, kio okazos?
Mi iros por tajpi en iu kiel Katoj.
Kaj la retumilo tuj analizi tiu formo ke mi difinita.
Kaj tuj sendos al la uzanto kiun URL.
Do ĉi tiu tempo, por iu kurioza kialo, Mi ricevis pli da informoj pri akcioj
ol pri reala katoj.
Sed tio estas bone ĉar rimarki ni ankoraŭ finis tie, q egalas katoj.
>> Do longan rakonton, ĝi similas sufiĉe bagatela akiri eniron de la uzanto.
Kaj por esti justa, estas aroj de aliaj tipoj de formo kampoj.
Ekzistas ĉekon skatoloj, kaj iom reciproke ekskluziva radioaparato butonoj, kaj
gutigas menuoj, kaj multe pli.
Sed ĉiuj tiuj estas kiel relative facile realigeblaj, kiel
tiu teksto kampo estis.
Kaj fine, ni nur devas fari certe iu aŭskultante aliflanke
fino de la linio por atingi tiun informo procesita, iel, kaj
doni al ni pri revenigo de nia katoj.
>> Ni rigardu iomete pli implikitaj ekzemplo.
Permesu al mi iri en mian Vhost la dosierujo, en loka gastiganto, publika, kaj kie mi
meti hodiaŭa fontkodo.
Ĉio ĉi estos sur la kurso de retejo por vi toquetear.
Kaj se mi iros en froshims, lasu min malfermi ĝis ĉi tiu dosiero nun, froshim0.php.
Ĉi tiu estas iom pli abundajn, do ni ne skribos ĉi de nulo.
Sed ĝuste rimarki nun kelkaj iom familiara karakterizaĵoj.
>> Unu, formo etikedo, malsamaj agoj.
Ne plena URL.
Nun, estas ŝajne al dosiero nomata register0.php ĉar, en momento,
Mi tuj instrui min iom ion pri PHP, programado
lingvon, ĉar PHP povas esti uzata por apliki kio Google implementado kiel
la dorso fino de lia serĉiloj.
>> Google, en realo, probable uzas iuj Python, kelkaj C + +, kaj
aroj da aliaj lingvoj.
Sed ni certe povus apliki serĉo rezultoj uzante PHP se ni volis.
Sed nuntempe, ni devos konservi ĝin simpla.
Kaj ĉi tiu estas efektive memoras unu de la alia tre unuaj retejoj mi
faris jarojn.
>> Denove en mia tago, vi aligxintoj intramural sportoj kiel novulo per
plenigado de paperfolio, marŝante trans la korton, kaj delasante ĝin en
la leterkesto de Proctor en Wigglesworth, kaj tiu estis, kiel vi
registrita.
Kaj tial mia projekto baldaŭ post CS50, estis meti tiun, kiu igas perfekta
senco, sur la retejo, kiu ne estis kiel en boga tiam kiel nun.
Sed ĉiuj ni devis fari estis krei, esence, HTML formo.
>> Kaj tiu formo rigardis proksimume kiel ĉi tio.
Mi havis enigo por la novulo nomo.
Mi havis alian ĉekon skatolo por ĉu aŭ ne volas esti estro, kion
lia varo estis, kaj kion liaj dormejo estis.
Kaj tiam mi forte koditaj en aĵoj kiel Apley Kortego, kaj Canaday,
Grizaj, kaj tiel plu.
>> Do denove, novajn etikedojn.
Ne vidis tiujn antaŭe, nova atributoj, sed sufiĉe atingebla.
Kiam vi vidas ekzemplon, vi povas speco de prunteprenos tiun ideon kaj fari guto
malsupren menuo por la plimulto nenion.
Sed kio estas ŝlosilo estas ke ĉiu el tiuj aferoj havas nomojn.
Kaj je la malsupro de tiu formo, ekzistas la submeto-butonon kies etikedo,
aŭ valoro, estas registriĝi.
>> Do ni iru al tiu ĉi paĝo.
Permesu al mi iri returne en la katalogo de kantoj.
Permesu al mi iri en froshims, kaj iru al froshim0.php.
Do ĝi estas malbelega, esti justa.
Do mi povis definitive stylize ĉi kun iuj CSS, mi povus fari iujn
grafiko, eble aldoni iujn kolorojn, kaj faru al tiu bela.
Sed funkcie, mi argumentas ke tiu estas fakte sufiĉe kompletaj.
>> Bedaŭrinde, kiam Mi plenigos ĉi tion, Davido, Kapitano, Male, ni elektos,
diru Matthews, Register, cxion, kio okazas estas tiu.
Sed rimarki paro de takeaways.
Unu, kio dosieron revenis tiuj rezultojn, ŝajne?
Tia estas ja register0.php.
Do la fakto, ke ni vidis, ke ago valoro antaŭ momento por register0, ĉi
konfirmas, ke ni ja finiĝis supren en tiu aparta dosiero.
>> Nun ĉi tio estas nur malbela tekston.
Sed rimarkas ke ĉi tiu teksto devenante loka gastiganto,
kiu estas proksime de la aparato.
Pensu pri la aparato nun kiel ĝuste retejo servilo kiu povus esti en la
Scienco Centro.
Ĝi povus esti en la reala retejo.
Do ĝi estas publike atingebla.
>> Do klare, ke estas iu vojo de pasanta formas kampon enigoj al servilo
tiel ke ĝi povas fari iun kun ili.
Bedaŭrinde, register0 estas sufiĉe stulta.
Ĉiuj faras estas elprinti tabelo kiu similas al tiu.
Kaj ne estas tabelo en la senco, ke ni konas lin.
Rezultas ke PHP, kaj multaj lingvoj, havas ne nur numere
indeksita arrays kies unua indico estas nulo, tiam unu, tiam du, tiam ĝi pentras,
dot, punkto, n minus 1.
>> Tio estas kio nomiĝas asocieca tabelo.
Asocieca tabelo estas unu en kiu vi povas stoki ŝlosilo valoro paroj kie
la ŝlosilo ne estas nepre nombro.
Ĝi povus fakte esti kordo, vorto.
Kaj tiel tio povas esti realigita, sub la kapuĉo, ĝi rezultas,
uzante datumstrukturo konata kiel?
Penso ion draman estis por okazi -
hash tablo.
>> Do hash tablo, revokon, la de vi kiu faris por P aro 6, aŭ eĉ memoras
ĝin, almenaŭ eĉ se vi faris try, oni hash tablo, en nia uzado, estis uzata por
nur stoki vortoj.
Sed vere, vi estis stokante ŝlosilojn kaj valoroj.
Se vi implementado hash tablo por P aro 6 vortaro, la klavoj estis la
vortoj mem, kaj la valoroj estis efektive vera aŭ malvera.
Jes, ĉi tie, aŭ implice, ne, ne ĉi tie.
>> Nu, ni povas ĝeneraligi tiun ideon.
Kaj ni povus uzi tre simila datumoj strukturo por stoki ne la kordo
sin sola en via hash tablo, sed supozas, ke en ĉiu el viaj hash
tablo de nodoj.
Kaj vi povis eĉ fari tion en try anstataŭ nur havas bool.
Vi povus havi ion alian.
Kio se la ŝlosilo estis ne Maxwell, por Ekzemple, sed citaĵo unquote "nomo", aŭ
citi unquote "kapitano." Kaj ene de via C datumstrukturo, vi metu
valoron, ne nur Bulea, sed de valoro kiel citaĵo unquote "Davido", aŭ
"M", aŭ "Matthews," kaj tiel plu.
>> Do tiuj samaj datumstrukturoj ni uzis ŝajne ekzistas en aliaj lingvoj.
Kaj mi volas argumenti ke ili estas vere multe, multe pli simpla por aliri tie.
Ni fakte rigardu nun en iu tia sintakso.
>> Mi tuj iros en PHP-katalogo.
Kaj mi tuj malfermos pli bonan versio de saluton-0 de antaŭe.
Rimarku ke ĉiuj mi faris estis aldoni iujn komentojn.
Do ni povas liveri de tiu distro.
>> Kaj tiu programo faras ja presas saluton ĉar mi specifitaj inter
etikedoj, ke mi volas ekzekuti tiu kodo.
Nun, ni vidos en momento kial tiu estas utila.
Sed ni malfermu unu alia ekzemplo tie.
Lasu min kaj malfermu diri, gedit de kondiĉoj tiu.
>> Tio estas vojo tra tempo nun.
Sed semajnojn, mi kredas, en la semajno unu aŭ semajno du, ni havis ekzemplon nomis
conditions1.c.
Kaj mi decidis reimplement ĝin en PHP, nur speco de substreki ke
PHP, sintakse, estas preskaŭ identa al C. Ĉi tio ne estas grandega salto
de la pasinta semajno por ĉi tio.
>> Rimarku en la pinto de tiu programo, kiu komencas, kiel antaŭe, kun iuj
komentojn, kiujn mi devos liveri de kiel distro.
Rimarku, ke mi estas en PHP mode en ĉi tiu dosiero.
Do tiu kodo, ni vidos, estos get ekzekutita.
Rimarku ke estas readline, kiu estas probable la
analoga en PHP de getstring.
Rimarku ĝi estas iom malsama.
Vi vere specifi prompto al la funkcio nomita legu linio, kaj tio estas
kion la uzanto vidas.
Do vi ne devas printf permane.
Sed tio ne estas granda interkonsento.
Mi tuj stoki, ene de $ n, la redoni valoro de tio, kio ajn estas la
uzanto tajpas en ilia int.
Kaj jen alia vidindaĵo.
Rezultas, en PHP, ajna variablo nur devas esti prefiksita
kun dolaro signo.
Estas iom ĝena.
Sed rimarkos, kion mi ne faris por PHP.
Kio mankas en la maldekstra mano flanko de la egala signo?
>> Neniu mencio de tipo.
Do ĉi tiu estas malsama de C. Por pli bona aŭ por malbona, PHP estas lakse
tajpitaj lingvo.
Ĝi ja havas numerojn.
Ĝi ja havas kordoj.
Ĝi ja havas Booleans.
Kaj ĝi ja havas kelkajn aliaj datumtipoj.
Sed vi, la programisto, kutime ne devas zorgi pri ili.
La supra parto de tio estas ke ĝi faras ĝin iom pli facile programo.
Vi povas pensi iom malpli.
La malavantaĝo estas ankaŭ malfermas vin al eblaj eraroj se vi hazarde
trakti nombro kiel ŝnureto, ŝnuro kiel nombro, potenciale, sed eĉ
tiam, PHP, kaj multe da lingvoj, estas sufiĉe tolerema.
Ili uzos, kion oni nomas implicitan fandon.
Kaj se vi provas uzi n en la kunteksto de nombraj situacio, ĝi volo
konverti kio tie estas tuj estos ĉeno, ĉar se la uzanto tajpas
io, kaj vi ricevos la rezulton, kiel kun readline, aŭ akiri ĉenon,
ke tuj revenos ĉenon.
>> Sed avizo, paro liniojn poste, mi kontroli se n estas pli granda ol nulo.
Do PHP tuj implice ĵetas Miajn "String" 123, aŭ kio la uzanto
tipoj en, enen int.
Do mallonge, aĵoj nur laboras multe pli intuicie.
Do ni nun komencos malstreĉiĝi kelkajn el la kion ni faris en la pasinteco.
>> Multaj de ĉi tiuj aĵoj estas la sama, kvankam.
Ankoraŭ egalas egaluloj.
Kiel flanken PHP ankaŭ egalas egalas egaluloj, sed pli en kiu, eble, en
la estonteco.
Tio estis.
Typo sed du egalas signoj signifas la saman aĵo kiel antaŭe, por komparo.
printf signifas la samon kiel antaŭe.
Backslash n signifas la saman aĵo kiel antaŭe.
>> Do kiel mi kuri tiun programon?
Nu, kiel antaŭe, se mi faras PHP, conditions1.php, kaj tajpu
nombro ŝati 123.
Tio estas pozitiva nombro.
Se mi tajpas en 0, mi elektas 0.
Kaj se mi tajpas en negativa 123, I get apogi negativa nombro, kiu estas nur
diri, sintakse, PHP is super, super similaj.
>> Do kial estas tio nun utila en TTT kunteksto?
Nu, ni reiru al ĉi froshims Ekzemple, kiuj rigardis,
denove, kiel ĉi tie.
Kaj ni vere elsxiros la retpaĝo denove, kiuj aspektis kiel ĉi tio.
Kion ni povas fari kun la datumo kiu estas donita?
>> Nu, mi malfermas pli nova versio de ĉi.
Kaj vi vidos, ke la problemo aroj specifo promenas vin
tra kelkaj el ĉi tiuj.
Anstataŭ komenci kun nulo, ni rigardu froshims3,
kiu faras iom pli.
>> Rimarku unue, fakte, ni malfermu ĉe kio 0 estis, do vi vidos
kio registriĝi 0 estis.
Rimarku kion enskribi 0 faris.
Unu, Mi havas komentojn ĉe la supro.
Forigu tiujn kaj koncentri nur sur ĉi.
La plejparto de la enhavo de register0.php estas, evidente, kio lingvo?
Nur kruda PHP.
>> Do rimarki, ĉi dosiero ne komenci kun, en la momento, malferma krampo,
demandosigno, PHP.
PHP faras permesas intermiksas PHP kodo kun HTML-etikedoj.
Sed mi faris tion ĉi tie en de la paĝo ĉi tien.
>> Nun, denove, vi volas nur scias ke ĉi tio esti rigardis la manlibron. print_r,
rezultas, estas print_recursive. _recursive Kaj tio estas nur oportuna
utileca funkcio ke nur presas eksteren, rekursie, kion vi transdonos ĝin.
Se vi transdonos ĝin tabelo, ĝi devos presi tabelo.
Se vi transdonos ĝin numeron, ĝi devos presi nombro.
Transdoni ĝin ĉenon, tio instruos vin presi kordo.
Se vi transdonos ĝin hash tablo, ĝin presos el kradon tablo.
Vi ne devas skribi ĉiujn de tiu kodo mem.
>> Nun rimarkos ke mi eniri PHP modo ĉi tie.
Mi elirante PHP modo ĉi tie.
Do kiam la retservilo legas ĉi tiun dosieron supre sube, maldekstre dekstren, ĉar
ĝi finiĝas per dosiernomo nomata. php, kion ajn ne estas ene de PHP etikedoj estas
nur tuj estos spit ekstere, kiel krudan HTML.
Neniu granda interkonsento.
Sed tuj kiam la retservilo rimarkas ĉi tio, li tuj diros, ke mi ne devus
kraĉi eksteren, laŭvorte, print_r de post.
Mi devus ekzekuti la sekvaj linio de kodo.
>> Do la lasta demando, do, de ĉi tiu dosiero estas, nu, kion la heck is this?
Prenu konjekton.
Kio estas $ _POST, probable?
>> Spektantaro: [inaudibles]
>> Parolanto 1: Jes, la afiŝis datumoj.
Memori, ni rulumi reen en tempo por nur momento.
froshim0, denove, aspektis kiel ĉi tio.
A super plimulto de tio estas simple HTML.
Denove, iuj etikedoj vi ne havas vidis ankoraŭ, aŭ kun kiu
vi estas jam konata.
Sed la interesa afero estis jena.
Ĉi tiu linio estas kio vere Ligiloj ĝin al nia register0.php dosiero.
Mi submitting tra metodo post.
Kaj tio signifas ke la parametroj la uzanto tajpas en ne
tuj finos kie.
>> Ili ne tuj aperas en la URL.
Ili estas ankoraŭ tuj estos sendita de la kliento, de la krozilo, por la
servilo, sed nur per kelkaj aliaj mekanismo kiu ni cedas niaj manoj
ĉe por hodiaŭ, sed estas ne en la URL.
Sed rimarkis la rilaton nun kun post, kiu, per konvencio, estas
Minusklaj tie.
>> Sed se mi malfermos register0.php, Mi ŝajne presi ĉi.
Do tiu estas speco de stranga enoficigante konvencio.
Sed kio estas agrabla en PHP estas ke kiam uzante PHP en TTT-kunteksto, ne ĉe
komandlinio kiel mi faris antaŭ momento, kiam vi efektive uzante ĝin en retejo
paĝo, en Vhost dosierujo kiel ni estas, aŭtomate PHP plenigi tiun
afero, kiu estas asocieca tabelo, por tiel diri, kradon tablo, kun
ĉion la uzanto tajpas in
>> Mallonge, $ _POST en ĉiuj kaskedoj estas malloka variablo ke PHP nur
magie kreas por vi kiam uzante PHP en retejo kuntekston.
Kaj metas ene de ĉiu el la nomoj de parametroj en la formo kiu
donita al ĉi tiu dosiero kaj ĉiuj la valoroj kiujn la uzanto tajpas in
Do manoj al vi, kion la uzanto tajpitaj en tiu formo.
>> Do antaŭ ol ni atingis vere stulta eligo de ĵus vidinte tion, ĉar ĉiuj mi faris
Estis rekursie presi tiun tabelo.
La ŝlosilo estas nomo, la valoro estas David.
La ŝlosilo estas kapitano.
La valoro estas.
Kaj la duobla sago kaj la angulo krampo tie, ĉi tio estas nur arbitra.
Ĉi tio ne estas kodo.
Ĉi tio estas nur PHP la vojo de montrante vin kio estas la valoro de iu ŝlosilo estas.
>> Sed nun permesu al mi proponi ke en froshIMs3, estas preskaŭ identa
se gxi prezentas al ĉi tiu dosiero.
Kaj denove, ni iras al speco de simple ekrigard ĉi, simple vidi ian
sintakso, sed avizo kio tiun dosieron faras.
Prenu supozas simple surbaze de la linioj de kodo, kiu probable ne aspekti kiel
Greka, iugrade, estas ŝajne faras.
>> Ĉi tiu dosiero estas iel rilata al poŝto, retpoŝto.
Do kio estas tiu programo faras?
En ĉi tiu versio, se mi efektive plenigi tiu formo - kaj lasu min iri al
froshIMs3, ne froshIMs0 -
la formo aspektas same.
Davido, kapitano, viro, dormejo, Matthews.
Sed se mi prezentas tiun, ĉi tiu dosiero tuj iros al register3.php.
>> Kaj mi asertas, rigardante ĝi estas fonta kodo, ĝi tuj
iel engaĝi retpoŝto.
Lasu min antaŭeniri kaj malfermu tiun en pli granda fenestro, do ni
povas vidi ĝin pli pure.
Ni estas en Vhosts, lokaj gastiganto, publiko, froshims.
Mi tuj malfermi alian programo, nur tiel ni
povas vidi pli samtempe.
>> Do nun tie ĉi, rimarki kelkajn aferojn.
Ĉe la supro de la dosiero estas malfermita krampo, demandosigno, PHP.
Tiam ekzistas aro da komentoj, kiun ni povas ignori, estas
neinteresa por nun.
>> Nun tie estas tio.
Ĝi rezultas PHP havas multan de kodo nomas postulas.
Ĝi estas tre simila en spirito al C estas inkludi, inkluzivi hash, kiu
esence kroĉas la enhavon de iu alia dosiero kaj ĝuste plops ilin ĉi tie,
tiel vi povos uzi ilin.
En tiu kazo, la aparato havas, antaŭ-instalita, biblioteko, libera kaj
malfermita fonto biblioteko nomita PHP mailer ol ĉiu povas
elŝuti el la interreto.
Ni ĵus faris ĝin por vi.
Kaj tio signifas ke mi nun havas retpoŝto funkciojn en mia dispono.
>> Nun, rimarki kelkajn aferojn.
Mi iros por validigi la formo de submetiĝo.
Turnoj el PHP, oni, havas ekkrion punktoj por la ne operatoro, samkiel
C. Sed PHP ankaŭ havas funkcion vokis malplena.
>> Malplena ĵus revenas vera se la valoro de la afero vi transdonos ĝin en
krampoj estas malplena, kiel la uzanto ne tajpas ion in
Do ĉi tiu estas vorto, kaj rimarkis la sintakso, tre memorigas de C, se la
nomo ŝlosilo, do la nomo kampo en la formo, kiu estis donita per poŝto, per
la uzanto, ne estas malplenigi, kaj ilia genro ne estas malplenaj en la formo kiel
bone, kaj iliaj dormejoj estas ne malplena -
sed rimarki Mi ne zorgas pri Kapitano, tiam kio ni iras fari?
>> Mi tuj ekzekuti tiu linio de kodo.
Kaj vi povas pensi pri tiu speco de kiel malloc, sed estas iom
amatoro ol tio.
Sed por nun tio donas al mi specialan struct de tipo PHP mailer.
Sed ignori la ŝlosilvorto nova hodiaŭ.
>> Nun mi iros, por alvoki funkcio nomata IsSMTP, kiu diras, uzu SMTP.
Ĉi tiu estas haveno 25, samkiel la video pasintsemajne, kiam la afero estis ĵetante
retpoŝtojn en la fajroŝirmilo.
Haveno 25 estas SMTP.
SMTP signifas uzi la servilon.
Kiun, ni povas uzi Harvard SMTP.fas.harvard.edu.
>> Ni povas agordi la de adreso esti John Harvard.
Se mi rulumu malsupren pli, mi povas agordi la ricevanto adreso, nur
arbitre, esti John Harvard estas tiel.
Do li tuj estos emailing sin.
>> Nun mi povas agordi la temo esti registriĝo.
Kaj mi povas agordi la korpo de retpoŝto kiel sekvas.
Ĉi tiu linio aspektas iom pli kripta, sed tio estas nur ĉar tie estas multa
de informoj en ĝi.
Unu, tie estas skalara operatoro.
Iu devas scii jam kion la skalara operatoro faras.
Ĝi estas kunmeto.
Do se vi volas preni ĉenon en PHP, kaj aldonas ĝin, aŭ prepend gxin, por
alia kordo en PHP, dankon Dio vin ne devas uzi strcopy kaj malloc,
kaj ĉiujn kiuj plu.
>> Se vi volas concatenate du ŝnuroj, kiu zorgas pri la memoro.
Lasu PHP figuro kiu gxin al vi.
Kio PHP faros kun la skalara operatoro ĉi tie estas simple granda frazo el
de ĉi tiu linio, ĉi tiu linio, ĉi tiu linio, ĉi tiu linio.
Kaj nun rimarki, ĝi okazas esti ŝtopanta en valoroj.
Do la retpoŝton ke John Harvard okazas ricevi estas laŭvorte tuj diros
nomo, dupunkto, iu, pli ĝuste, tiam ni fermi la kordo kaj concatenate sur
kion ajn la uzanto tajpas en, tiam nova linio.
>> Tiam, en la sekvanta linio de John Harvard retpoŝton, ĝi estas dironta
Kapitano, Sur aŭ Nenio.
Ĝi estas dironta sekso, vira aŭ ina.
Dormejo tuj estos Matthews en mia kazo.
Kaj tiam rimarkos familiara punktokomo ĉe la fino.
Kaj tiam, cxi tie, avizo, iom kamufla ankoraŭ, sed denove, post
mastro kiu igos pli familiara post P starigis 7, se la sendo de la poŝto
Revenas malvera, tiam iru antaŭen kaj mortos.
>> Do PHP havas funkcion nomita mortas, kiuj, laŭvorte, nur mortigas la
retejo kaj nur presas el ajn vi rakontos ĝin - lia mortas
vortoj, por tiel diri.
Kaj tio, en la kazo, ĝi presos el kio la eraro informoj estas por
kion ajn okazis iri malbone.
Do longan rakonton tie, kion ni havas estas ekzemplo kie kiam la uzanto
prezentas la formon, froshim0, froshims3.php, ĝi iras al
register3.php.
Sed register3.php tiam procedas ekzekuti ĉiujn tiujn liniojn.
>> Do tie estas kelkaj TAKE aways tie.
Unu, estas ŝajne sufiĉe facila, programmatically, sendi retpoŝtojn,
kio estas bona.
Kiam la uzantoj registri vian retejon, en tiu kazo, kiam registri vian
sporto, vi povas sendi retleteron al la novulo Proctor, aŭ John
Harvard, en tiu kazo.
>> Sed ĝi ankaŭ signifas ke vi povas fari kion?
Sendu retpoŝtojn el iu al iu ajn.
Kaj ĉi tiu estas tre vera.
Tiu ne estas tiel facile fari se vi kutimas uzi Gmail.
Sed se vi iam uzis Eudora aŭ Outlook, vi povas sufiĉe multe rakonti
ejon servilon, ke vi estas iu ajn vi volas.
Kaj ĉi tiu estas kie mi bezonas surmetis ke ĉapelo kaj diros: Ne faru tion.
Sed tio estas atesto, kiom facila ĝi estas plenumi phishing atakoj, kaj
sendi anonimajn retpoŝtojn, kaj spamon, pli ĝenerale.
Kaj vere bolas malsupren al la fakto, ke oni nur bezonas iom
programita aliron.
>> Kiel flanken, mia plej proksima renkonto kun la anonco tabulo, mian propran unua jaro,
Estis kiam mi malkovris ĉi malvarmeta trompi ke, wow, vi povas
sendi retpoŝtojn de iu ajn.
Kaj tiel ni havi iu stulta argumento, laŭvorte, en Matthews,
inter miaj Proctor grupo.
Mi eĉ ne memoras kion la demando estis.
Sed mi volis provi meti fini al ĉi stulta debato.
>> Do mi decidis Mi simple sendi retmesaĝon al mia Proctor grupo, ŝajnigante esti
la alia knabo, kun kies opinio mi konsentis, kaj ke li konsentas al
kion ajn mia opinio estis en tiu aparta debato.
Kaj tiel mi forĝis ĉi retpoŝto uzante simila tekniko en spirito al tio.
Sed estis vere pli facile en tiu momento.
Hit sendi.
Li ne estis kontenta, nek volis estis la anonco tabulo.
>> Kaj mi estis tre rapide kaptita ene duaj ĉar, kiel vi scias, mi subskribas
miaj retmesaĝoj en certa maniero.
Kaj kvankam mi faru ĝin permane, en grandaj parto, 15 jaroj poste ĉar mi estis
traumado per tio.
Mi ne havas subskribon sur mia retpoŝta nun.
Sed en 1995, mi nur havis sig, signaturon en mia retpoŝto.
Kaj estis tiu noto dirante: Karaj Proctor grupo, mi konsentas mia opinio
kaj konsentas kun David, subskribita tia kaj tiel, nova linio, nova linio, DJM.
>> Do ne fari tion aŭ, ĝenerale, preni avantaĝo de ĉi tiu tekniko.
Sed kiam fari TTT-ejo, kiel via fina projekto, kiam farante
retejo por io dungistaj, jen kiel, pragmate, vi povas
leverage aliaj servoj en la interreto kiel poŝto kaj poste efektive
sendi aferojn uzante kodon.
>> Do kiel ni povas plibonigi sur tio?
Nu, unue ni prenu rapida tour iuj el la aĵoj kiujn vi vidos,
kaj tiam rigardu kelkaj ekzemploj.
Do unu, por trankviligi, ĉar ni flugas tra PHP.
Kaj mi scias, en iu punkto, vi devos por fakte komenci skribi ĉi se vi
ne jam havas.
Konscii, ke, unu, ĉefa estas afabla el la fenestro kun PHP.
Se vi volas skribi kodon kiu ricevas ekzekutitaj, vi simple komencu skribi ĝin en
dosiero nomata. php tiel longe kiel vi havas la malferma krampo
demandosigno PHP etikedo.
>> Sed rimarki tiuj estas kondiĉoj en php.
Rimarku, tio estas la ĝusta sama slide ni havis en la semajno oni kiam ni havis
kondiĉoj en C. Kondiĉoj en PHP estas strukture kaj
sintakse la sama.
Nur reala diferenco estas se vi havas variabloj, vi havos tiujn
dolaro signoj.
>> Dume, Buleaj esprimoj aspektas nur tiel por
aŭ-ing aŭ kaj-ing kune.
Ŝaltiloj aspektas precize la sama.
Kio estas agrable en PHP, dum en C, ŝaltiloj devus esti kazoj sur
primitivoj kiel ints aŭ signoj, en PHP via kazo deklaroj povas fakte esti
sur tuta kordoj, kiu estas fakte speco de agrabla.
Savas vin iom da tempo.
Ne povis fari tion en C.
>> Jen por buklo en PHP.
Ĝi estas identa.
Havu iom da dolaro signoj por la variabloj.
Vi ne devas mencii ke io estas int.
Vi nur deklari gxin per dolaro signo kaj la nomo de la variablo.
Sed por buklo estas la sama.
Al dum buklo estas la sama.
Al fari dum buklo estas la sama.
>> Tio estas iom malsamaj.
Do kun PHP, kun tabelo, vi povas statike deklari tabelo, kiel en C,
sed vi uzas kvadrataj krampoj.
En C, vi uzus krispa krampoj, se vi eĉ sciis tion.
Sed tio estas vere tre komuna en PHP deklari tabelo, en ĉi tiu kazo,
de nombroj, kaj alvoki variablo nombroj.
>> Variabloj sin aspekti kiel ĉi tio.
Ĉi tie estas cxeno, citi unquote "saluton mondon. "Vi povus havi backslash n.
Mi simple ne en tiu kazo.
>> Nun ĉi tiu estas interesa konstruo.
C ne havas tion.
Sed ĉi tiu estas super helpema.
Kaj vi vidos tion en P aro 7 spec - a por ĉiu konstruo.
Se vi volas ripeti super ĉiuj el la elementoj tabelo, vi ne havas
trakti kun $ i kaj $ n, kaj + +, kaj cxio, kion.
Vi povas laŭvorte diras: en PHP, ĉi tiu -
por ĉiu nombroj kiel nombro, tiel Mi supozas ke $ nombroj
estas tabelo de nombroj.
Kaj kiam mi diras por ĉiu nombroj kiel numero, ĉi tiu tuj
aŭtomate, kiel mia buklo ekzekutas, ĝisdatigi, sur ĉiu ripeto, la valoro
ene de dolaro signo nombro -
denove, kaj denove, kaj denove marŝi por min trans tiun tabelo.
Do nur savas nin kodo.
Neniu punktokomojn, neniu + + 's, no i estas, neniu n aj, ĝi estas nur bela.
>> Sed PHP ankaŭ havas ĉi.
Kaj ĉi tiu estas super potencaj.
Kaj vi uzos ĉi, manoj on, en P aro 7.
Kaj asocieca tabelo ankaŭ deklaris kun kvadrataj krampoj.
Sed rimarkos la sintakson nun.
Estas memoras kion ni vidis kun print_r antaŭ momento.
Kiom da klavoj, kiel malgranda prudento ĉeko, Ĉu tio tabelo ŝajnas havi.
>> Do ĝi havas du.
Kaj mi nomas tiun tabelo.
Sed se ĝi helpas, vi povas pensi de tiu kiel kradaj tablo, aŭ kiel
asocieca tabelo.
Sed estas nur malsama tipo de tabelo.
Kaj denove, malsamaj lingvoj havas tiujn.
Ni vidos ion similan en JavaScript tiel.
Ekzistas du klavoj.
Unu estas citaĵo unquote, "simbolo," unu estas citi unquote "prezo." Kaj tiuj klavoj
ĉiu havas valoron.
En tiu kazo simbolo valoro estas FB, por Facebook, kaj prezo de valoro estas 49, 26,
kiu estis Facebook stoko prezo de ĉi tiu mateno.
>> Do kio estas utila pri asocieca tabelo.
Mi povus esti havinta ciferece indeksita tabelo kun nur
simplaj rektaj krampoj.
Kaj mi povis havi dolaro signo citaĵo egalas nur ĉi.
Permesu al mi efektive faros.
Supozu mi anstataŭ simple deklaris tiun tabelo tiel.
Tio estas perfekte valida, sintakse.
Ĝi ne perdis neniun informon, per si mem.
Mi ankoraŭ vidas, ke la simbolo estas fb, kaj ke la prezo estas 49, 26.
Do kial estas asocieca arrays konvinka?
>> Spektantaro: Vi ne devas memori kie vi metis aĵojn.
>> Parolanto 1: Ĝuste, vi ne havas memori, kie vi metis aĵojn.
Vi ne devas arbitre memori ke stock simbolo estas en krampo nulo,
kaj stock prezoj estas en krampo unu, kio estas aparte danĝera se vi
ŝanĝi aĵojn, fine.
Ĝi estas multe pli agrabla por asocii kion ni vokos metadatumoj
kun via reala datumoj.
Mi volas argumenti ke tio, kion ni vere zorgas ĉi tie, estas fb kaj 49, 26.
La simbolo kaj prezo estas metadatumoj kiu priskribas la datumoj
vere maltrankviligas.
Sed tio estas ĝuste tiel facile aliri.
>> Nun, kiel flanken kio estas la prezo ni pagas?
Ni estis farante tiun en CS50 dum semajnoj.
Ĉi tiu karakterizaĵo devas veni en iu kosto.
Memoro.
Do vi ne nur provizon de 32 bitoj entjera, ekzemple.
Vi stokante simbolo / 0, verŝajne.
Do vi uzas pli da memoro.
>> Kaj kio estas la agado de rigardante ion en
asocieca tabelo, probable?
Estas probable pli malrapida.
Hazarda aliro estas bela, speciale kiam vi povas fari duuma serĉo.
Sed se vi efektive nun serĉas ne por nombroj, sed por kordoj, ĉi
vere estas implementado sub la kapuĉo, probable kiel hash tablo, kie
vi uzas ĉu hash tablo kun apartaj sinsekvon.
Aŭ vi uzas try al reale stoki la valorojn.
Do eble vi povas fari konstanta tempo, sed vi ankoraŭ devas rigardi S-Y-M-B-ho-L,
potenciale, anstataŭ nur 32 bitojn por serĉi ion.
Do denove, tiuj samaj ideoj venas apogi al ripetas en ĉi tiu kunteksto.
>> Sed denove, PHP nun havas iom super globals ke, verŝajne, estas
asociaj tabeloj.
Ni vidis unu antaŭ momento, $ _POST.
Kaj tio super tutmonda havas klavojn kaj valoroj.
Specife, la ŝlosilojn laŭliniigi kun kio?
Kie la ŝlosilojn en $ _POST venis?
Nur por recap?
>> Spektantaro: Nomo.
>> Parolanto 1: Nomo, kie?
>> Spektantaro: [inaudibles]
>> Parolanto 1: Nomo estas la atributo.
Nu kie, kie ili faris origine venas?
La formo.
Do se HTML-paĝo havas formon etikedo, ene de kiuj estas iuj enigoj, kiel
kontrolu skatoloj, teksto skatoloj, gutigas menuojn, ĉiu el kiuj havas nomon, tiuj
nomoj fini kiel ŝlosilojn en $ _POST, kaj, sincere, por tiu demando, $ _GET.
Se la metodo estas get, sama ideo.
Estas nur en malsama super tutmonda.
Kaj la valoroj, kompreneble, venis el kion ajn la uzanto tajpas en en lia aŭ
ŝi retumilo.
>> Sed estas kelkaj aliaj.
Ekzistas kuketo, kiujn ni instruos vin revenu al fine.
Sed tiuj estas la aferoj, ke vi scias la retejo uzas por iu bona aŭ malbona.
Sed ni revenu al tio.
Servilo kaj kunsido, kaj tiuj du havas iun specialan utilecon.
>> Sed ni rigardu tion ĉi.
Lasu min kaj malfermu ekzemplo vokis mvc0.php Do MVC
staras por la sekva.
Kaj ni enkondukas ĉi frue ol estas tipaj, vere, por akiri vi desegni
Problemo aro 7, kaj ankaŭ fino projektoj, en varo de industrio
norma maniero, kaj pura formo.
Ĝi estas bona dezajno.
>> Do vi estas, por vidi, kaj vi instruos vin sperto, en P aro 7, paradigmo, speco
de programado pensmanieron, kiu serĉas iom iun kiel ĉi tio.
M por Modelo, C por Controller, V for View.
Longan rakonton, MVC estas nur speco de metodiko, maniero de preni
retejoj, precipe, per kiu vi metu ĉiujn viajn, stulta frazo -
komerca logiko -
ĉiuj viaj intelekta proprieto en kio nomiĝas controlador, dosiero
kiel index.php, aŭ ni vidos, quote.php, aŭ buy.php.
>> En la kunteksto de Problemo aro 7, via modeloj tipe enhavas viajn datumojn,
io rilata al datumbazo, kiel ni instruos vin fine vidas, kaj viaj opinioj
enhavi la estetiko de via ejo, la HTML, la CSS.
Do ni jam vidis ĉi tion en C iom iom por uzi. h dosierojn.
Ni vere vidis ĝin antaŭ momento kun CSS, per faktorigo la CSS estilización
plenigos el niaj HTML.
>> Do MVC estas vere nur pri desegnante linioj en la sablo kaj dirante, la
interesa programado kodo por via retejo apartenas en kion ni nomas
regilo.
Plenigos rilataj al datumbazo tipe finas en modelo.
Sed vi vidos, en Problemo aro 7, ni kunfandi C kaj M por teni ĝin simpla.
Sed vidado estas kie ĉiuj de viaj HTML kaj estetiko tipe iri.
>> Do kion signifas ĉi tio en realaj terminoj?
Nu, permesu al mi iri en nia MVC dosierujo kiel sekvas.
Kaj vi vidos pli da tiuj turneis tra la specifon.
Do en mvc0, mi asertas ke ĉi tio estas, kiel, Versio 0 de CS50 la retejoj.
>> Ĉiuj ni havas estas iuj HTML, same kiel grandan h1 etikedo, ŝajne.
Kaj tiam bula listo.
Mi neniam vidis bula listo antaŭe, sed ne estas granda interkonsento.
Ni rapide rigardi la fontkodo.
Rezultas neordigitan liston kun kugloj estas malferma krampo ul kun aŭ
pli liston artikolojn, p.
Do avizo jen ankron etikedo.
Ni vidis, ke antaŭ momento.
>> Do jen kiel mi implementado ĉi tiu paĝo.
Mi havas du ligojn, du listo, eroj, unu ul por ordigita listo, kaj la fino
rezulto, estetike, estas ĉi tre bela retejo, versio 0 tie.
Sed kio estas interesa nun estas kiel tiu estas implementado sub la kapuĉo.
>> Permesu al mi iri en gedit kaj malfermu tiun tre unua ekzemplo por pentri portreton.
Kaj ni rigardu kio estas misa, potenciale, en ĉi tie.
Nu, se mi iros en localhost, publika, MVC, rimarkis kelkajn dosierojn.
Mi tuj voki tiujn, por la momento, ĉiuj regiloj.
Sed tio iom de misuzo ĉar vi vidos ĉion estas commingled
ene de ili.
>> Kaj lasu min iri interne index.php.
Kaj ni vidas, laŭvorte, la sama HTML.
Do eĉ se tiu dosiero finiĝas . Php, Ĝi ne signifas ke ĝi devas
havas neniun PHP-kodo.
Ĝi povas esti nur krudan HTML, kvankam tio estas speco de stulta.
Sed rimarki ne estas malferma krampo PHP tag, krom tiu, kiu, sincere,
estas nur ekzistas por servi kiel komento.
Sed tio estas funkcie ne eĉ tio interesa.
>> Sed rimarki tion.
Kio estas interesa nun estas kion ŝanĝoj en tiu ĉi paĝo.
Lasu min klaku Prelegoj.
Kaj rimarkos la URL estas por ŝanĝi.
Nun mi estas ĉe lectures.php.
Lasu min klaku nulo.
Nun mi estas ĉe week0.php Kaj nun Mi malfermos tiujn dosierojn en gedit.
Ne nur indekso, sed lasu min malfermi prelegoj.
Kaj lasu min forigi la komentojn centri en tiu ĉi parto nur.
>> Kaj nun mi volas malfermi nur unu pli, week0.php, forĵetu la komentoj,
nur por purigi ĉi supre.
Kaj nun rimarkis la sekvan.
Pensante vere ia atente dezajno, kaj ni faros linio
ĝis la sama, kion fari pli bone ĉi tie, ĉu vi opinias?
>> Kiel mi faros por semajno unu?
Kion pri tio.
Do jen kiel mi faris semajno unu.
Mi iris al Dosiero: Nova, Paste: Savu, week1.php, kaj poste mi eniris ĉi tie.
Kaj mi ŝanĝis unu -
kio estis tiu, unu al vendredo.
Mi ŝanĝis la nuloj al oni.
Mi ŝanĝis tion al unu.
>> Bone, do nun rigardi mian dosierojn.
Kio povus esti farata malsame?
Kie estas la ŝanco, eble?
Do tie estas la ŝanco por komenci faktorigo ĉi stuff eksteren.
Permesu al mi malfermi, kiel ruiniganto, por kion vi vidos en P aro 7.
Se mi malfermas nun index.php en versio kvin de ĉi tio, ĝi aspektas vojo
pli kripta, Certe.
>> Sed tio, nun, estas kion mi nomas regilo kiun oni kontrolas la
logiko de mia paĝo.
Kaj vi povas speco de rekonstrui, intuicie, eble, kio okazas.
En la unua linio, ĝi estas iom kamufla.
Sed rimarki Mi postulas, kiel kun akra inkluzivas, dosiero nomata
helpers.php.
Kaj tiam mi petas, ŝajne, funkcio, nomita render, pasante en
du argumentojn.
>> Unu estas citaĵo unquote, kaploko.
Kaj la alia estas, kia datumtipo estas ĉi tiu, bazita
sur nia sintakso pli frue?
Ĝi estas asociita tabelo.
Specife, ĝi estas pasanta en la titolo kun iuj metadatumoj tio memorigas
al mi, kio estas kaj ĝia valoro.
Tiam mi vidas malmola koditaj ul, do iuj krudan HTML.
Sed tiam mi revenis en PHP modo nomante funkcio render.
Do eĉ se vi neniam uzis HTML aŭ PHP- antaŭe, kaj kvankam tio aspektas
timinda, kial estas tio probable bona dezajno?
Kio estas pli bone pri tio, surbaze de konkludaj?
>> Spektantaro: [inaudibles]
>> Parolanto 1: Malpli redunda en tiu ne estas pli HTML etikedo, ne plu
kapoj etikedo, ne pli korpo etikedo en ĉiun malbenita dosiero.
Anstataŭe, mi havas faktorita el la komunaĵojn kaj supozeble metis ilin
en dosiero iel rilata al kaploko.
Kaj same por la proksimaj korpo etikedo, la proksimaj HTML etikedo.
Tio probable cxi tie ene de la piedlinio ie.
Kaj vi vidos, en Problemo aro 7, iom ĝiras tra ĉi.
>> Do kio kuŝas antaŭen?
La unu afero ni ne havas la kapablon tamen pro estas vere stoki datumoj.
Kaj do kion ni komencas vidi Merkredo, ekzemple, estas ke viaj
malnova amiko Excel aux nombroj, ebligas al vi konservi multajn
datumojn en vicoj kaj kolumnoj.
Turnoj el vi povas fari tion en kio estas nomata datumbazo, programmatically.
maníaco Kaj rezultas, post tio, ni povos stoki aĵojn kiel
tiu, kiun vi vidos denove en P aro 7, tuta aro da salutnomoj kaj
pasvortoj, la lasta de kiuj estas efektive kodita, multe kiel ili
estis en P aro 2 La hacker eldono.
Kaj fine, vi apliki tion, viajn proprajn eTrade-simila retejo kiu
implementa kolektive CS50 financo.
>> Fine, ĉar vi restis tie tiom malfrue hodiaŭ, se vi revenos al tiu parto
de universitata tereno, je 4:00 am hodiaŭ, ni faros doni al vi ne nur konsiloj, ĉe la SCES
Konsilante Foiro, je 4:00 am en la Maxwell-Dworkin, ni donos al vi iuj
Americone Sonĝo, Ĉerizo García, Ĉokolado Fudge Brownie, Ĉokolado
Blato Kuketo Pasto, kaj, kiam vi Google Bloka Simio, vi ricevas ĉi.
Do ĉiuj kiuj atendas je 4:00 Am en Maxwell-Dworkin.
Vidi vin merkrede tiel.
>> Speaker 2: En la sekvanta CS50, RJ dormas in
>> RJ: Mia sekcio!
Ha!
Ho,