[Powered by Google Translate] [Nädal 8]
[David J Malan] [Harvardi Ülikool]
[See on CS50.] [CS50.TV]
>> Tere tulemast tagasi.
See on CS50, ja see on algus 8. nädalal.
Paar võimalused sel nädalal
nende hulgas see jutt siin, kus süüa saab kätte.
Täpsema tutvu slaidid kes on praegu portaalis.
Ja ka teine ​​üritus sel nädalal meie endi Thomas Carriero.
Ta on üks CS50 endine juht õpetamise stipendiaatide kes on praegu Dropbox,
ja ta on mees, kes konks meid koos sa tead, mida,
nii et kui tahad veel seda pea nende arutelu täna pärastlõunal jaoks Dropbox ja rohkem.
CS50 lõuna on sel reedel.
Kas meiega liituda, kui teil on võimalik, 01:15, nagu ikka, kell Tule ja Jää.
>> Ja nüüd me sukelduda midagi, mida nimetatakse Seminarid.
Meie CS50 Seminarid, mäletate, on need vabatahtlik klasside juhitud õpetamise stipendiaatide
ja muidugi abilised ja sõbrad käigus,
inimesed rühmast loengusse nimega ABCD, mis on kontserni
technophiles loengusse, samuti rühmituse nimega HCS,
Harvardi Computer Society, üliõpilastele, kes on samuti huvitatud computing.
Tänavune nimekirja seminarid on seminarid Android ja iOS-i ja JavaScripti
ja PHP, Unix, Vim ja rohkem, nii aru, et need seminarid on tulemas.
Kui soovite RSVP jaoks mõni neist pea et link seal.
Siis postitada käigus veebilehte ajad ja kohad, kui nad on valmis.
Aga tean, et seal on 5 aasta väärtuses enne seminari kättesaadavaks internetis,
millest paljud on ikka väga praegune mõttes tehnoloogiaid, mida Sul
tahad mängida oma lõpliku projekti, nii pea sinna mõned saadaval videod sätestatut.
>> CSS, you need, kes tunnevad CSS juba,
Mis on see Lühidalt?
Mis on CSS?
See kaskaadlaadistikke, ja mida see tähendab?
Mida see teeb meie jaoks, CSS?
Olgu, lähme soojendada lihtsamaga, HTML, hüpertekst-märgistuskeel.
Mida see teeb meie jaoks?
Üldse kedagi?
Läheb tõesti ebamugav Nende küsimuste.
HTML, hüpertekst-märgistuskeel.
Jah? Ei?
[Kuuldamatu õpilase vastus]
Okei, hea, see võimaldab meil märgistada teksti kuvada veebibrauser.
See ei ole programmeerimiskeelt.
See on tõepoolest märgistuskeel, mis tähendab, et see juhendab brauser kuidas kuvada
teavet, nii lihtsamaid kehastus see nagu oleme näinud
on midagi super lihtne nagu boldfacing, sulg b suletud sulg ütleb
seda teksti paksuks, ja see on tegelikult lihtsalt üks paljudest viisidest
kus me saame teha, ja tõepoolest, nendel päevadel parem lähenemisviis
kuni stylizing oma veebilehel, et teha asju paksus kaldkirjas
ja tsentreeritud ja põhjendatud jms, ei tehta kaudu HTML üksi
vaid pigem tehnikat nimega CSS, kaskaadlaadistikke.
See on keele juurde ise.
See liiga ei ole programmeerimiskeel vaid-
igaüks, see on Dan, kes hoiab ühinevad meiega täna.
Mõned tehnilised raskused. Pole probleem.
>> CSS võimaldab meil Tyylitellä lehele
luues nn omadused, niiet võta pilk see
teel mõned põhilised näited.
Lubage mul minna seadme täna.
Mul on allikas 8 Esmaspäev kataloogi siin,
ja ma lähen minema kataloog nimega CSS kus meil on terve hunnik
failide ootab meid siin,
ja selles kaustas on meil näiteks search0.html alates viimane aeg.
Nüüd meenutavad koos search0 jätsime selle teadmiseks
poolt omamoodi rakendamisel Google või tõesti lihtsalt esiotsa see nädal või nii tagasi,
ja märkate, et meil oli mõned uued märksõnad on.
Meil oli h1 jaoks suured, julge pealkiri,
vormi, mis võimaldas meil tegelikult on HTML-vormi kasutaja sisend.
Tegevus, mis oli määratletud tegevuse atribuut
aasta HTML-vormi tag?
Mis oli tähendust see, tegevus?
Ma lihtsalt seda teha täna.
Tegevus on sihtkoht, kus vorm läheb esitatakse.
Asjaolu, et see ütleb action = "google.com / search"
tähendab, et kui kasutaja klõpsab nuppu Esita või samaväärne
mis tahes kujul väljad nad täitsid ei kavatse saata mitte meie serveris
või meie seade, vaid pigem selle konkreetse URL Google.
Ja meetod see saab kasutada nimetatakse saada,
ja saada, nüüd on lihtsalt tehnikat möödaminnes informatsiooni koos veebiserver
teel link, niiet võta pilgu tagasi sellele, kuidas see töötab.
>> Pange tähele, et seal on sisend, kelle nimi on q
mille tüüp on tekst ja siis teine ​​sisend tüüpi esitama
mille väärtus on CS50 Otsi, ja tõepoolest, kui me avada see fail siin,
search0.html, see on super lihtne vorm,
ja kui ma otsin midagi arvutiteadus
ja siis vajuta ENTER või kliki CS50 Otsi
märgata, et mis juhtub, on väljaspool saada Google
Olen just lõppes sellelt aadressilt ülaosas,
google.com / search? q = arvuti + teaduse,
ja arvutiteadus on muidugi, mida ma kirjutada sisse
+ Tähendab lihtsalt, et seal tühik oli,
ja see on tehtud, mille brauser lihtsalt veenduda, et seal ei ole
segadust ja valge ruumi tegelikku URL.
Ja siis q, muidugi, on parameetri nimi.
Me ei ole näinud, kuidas me, programmeerija, saab tegelikult juurdepääsu q veel.
Me ei saa eeldada, et Google teab, mida teha selle siin,
aga me jõuame sinna õigel ajal täna.
>> Aga las ma vaatan selle asemel kell search1.html,
mis paistab pisut teistsugune, sest ma otsustasin, et see vorm siin oli natuke lame.
Ma mõtlen, see on ülaosas vasakul.
Seal tõesti ei esteetika, ja nii ma tahan Tyylitellä see
veidi nagu Google, kelle koduleht, tagasikutsumine,
kuigi sa ei pruugi külastada seda, et sageli, näeb välja selline täna Halloween.
Kui me selle asemel avada versioon 1 seda faili otsing 1.html, ma olen keskendunud ta.
Ikka päris kole, aga vähemalt nüüd olen hakanud kontrollida esteetika seda lehte,
mitte ainult märkida ära selle.
Võtame pilk otsing 1, ja seal on tõesti ainult üks erinevus siin,
mis võivad välja hüpata sind, või ehk mitte,
kuid milline on üks rida või väljavõtte vahe?
>> Seal on stiili atribuut, nii selgub, et HTML
enamik elemente, kõige tage on stiili atribuut neile,
ja sees, et stiili atribuut on jutumärkides stringi,
ja et jutumärkides stringi on CSS.
Võid panna CSS-stiil seal
täpsustades seda vara nimetus
millele järgneb koolon, mille väärtust.
See on selline kahetsusväärne disain otsuse mõned aastad tagasi
et CSS on keel iseendale
kuid süntaktiliselt see on väga erinev HTML.
Sel juhul näeme, et sees minu kodulehte, mis on kirjutatud HTML,
Mul on CSS sees need jutumärgid, ja konventsiooni CSS
on see, et teil on, mida nimetatakse vara järgneb jällegi, koolon,
järgneb kõnealuse vara väärtus, mistõttu ei ole võrdusmärk.
Ei ole täiendavaid hinnapakkumisi.
See on lihtsalt see koolon eraldab põhiväärtus paari,
ja teksti rida ei täpselt, mida ta ütleb.
See viib teksti kehas lehele, mis on tõesti julgust lehel
keskuses.
>> Okei, lõpptulemus siis, et oleks selge, on see.
Mitte kõik, et seksikam, kuid vähemalt on see keskendunud ja veidi nagu päris Google.
Aga kui ma selle asemel avada versioon 2 nimetatud
ja rõhutada siia uus silt kokku?
Nüüd pead oma lehe, mis varem oli vaid mis tag
kõik eelnev näiteid?
See oli just see pealkiri.
Hetk tagasi pea tag nägi välja selline.
Nüüd selle asemel on tal stiilis silt sees on,
ja seda ka, ma vabandan, süntaktiliselt tundub väga erinev HTML,
aga sa harjud sellega, mille sees stiil tag
Ma võin nüüd tegur, mida oli hetk tagasi
atribuut, stiili omadus, ja ma ei pane seda väga üleval minu lehel.
>> Miks?
Noh, see on samm puhastamine asju, meelega kirjalikult C kood
me mõnikord kirjutada funktsioone tegurdada ühine funktsionaalsus.
See on lihtsalt veidi puhtamaks alustada faktooring välja asju nagu esteetika
et ühes keskses kohas, mitte lasta see kõik Lomittaa kogu oma HTML.
Ka see, mida ta ütleb, kuigi seal on natuke uus süntaks.
See siin on valija ja keha tähendab lihtsalt valida keha element
ja kohaldada järgmisi omadusi ta.
Noh, vara on täpselt sama.
Hea meede Olen lisanud semikoolon lõpus,
mis kipub olema konventsiooni, ja ma olen murtud kogu selle vara
aastal looksulg sest ma oleks tegelikult võinud olla erinevad asjad siin.
Ma võiks tegelikult öelda midagi sellist värvi: sinine;
>> Nüüd on see liiga ei kavatse olla samm midagi kõik, et ilusam,
aga kui ma nüüd minna tagasi 2. versiooni Olen vähemalt nüüd tehtud keha minu
lehekülje teksti kõik sinine.
Nupp jääb samaks, kuna see on sisend. See pole puhas tekst.
Aga kõike muud, mis on teksti, nagu CS50 Otsi up üles, on tegelikult sinine.
Jällegi, kõik me oleme teinud nüüd on eemaldada body, teate,
stiilis atribuut, ja oleme tegureid seda siin.
See ei ole suur edasiminek, kuid kui me võtame selle ühe sammu edasi
märgata, mida me saame teha selles kolmas versioon siin.
>> Aastal search3.html veebileht on peaaegu identne
välja arvatud see, mida uus silt nüüd?
Link, nii see ei ole väga tabavalt nimetatud
sest sa ei seo mõttes klikitav hüperlink.
Pigem sa oled omamoodi teed on võrdväärne # include C
mille link tag href atribuut
ja rel atribuut ütleb minna
ja koopia pasta sisu faili nimega search3.css siin sisuliselt.
See ei ole päris seda, aga see on vaimu.
Ta ütleb, minna seda faili avada, search3.css,
ja käsitleda seda kui kasutaja oli kirjutatud ta siinsamas juht lehele
nagu ma tegin eelmises näites.
Search3.css, vahepeal on üsna lihtne.
See on tõesti ainult sisaldab täpselt, mida oli hetk tagasi
stiilis silt, kuid ma olen tegureid seda siin oma faili.
>> Kuigi me ei ole kulutanud palju aega üldse HTML-või veebi programmeerimine
lihtsalt intuitiivselt mis on motivatsioon ehk faktooring välja
See väike väljavõte isegi CSS omaette faili
ja siis ka seda linki tag siin?
[Kuuldamatu õpilase vastus]
Okei, see on lihtsam lugeda nii, et teil on oma CSS CSS faili.
Sa pead oma HTML HTML-faili, nii et see on rohkem loetav selles mõttes.
Mis veel võiks olla mõjuvaks? Jah.
[Kuuldamatu õpilase vastus]
Jah, nii et saate selle lisada mitu korda, nii et praegu me teeme need
põhilised näited üksikute faili, kuid eeldan, et sa oled tegelikult teeb
tõeline veebilehel nagu te tahte pset 7 või oma lõpliku projekti ehk
ja sa tahad olla mitu veebilehti, nagu on kindlasti levinud
tegelik World Wide Web, ja oleks mingi lombakas
on kopeerida ja kleepida sama sinine värv
ja sama teksti joondatud keskele iga üks neist lehtedest.
Pigem on mõttekam tegurdada palju nagu me oleme teinud C
koos. h fail, pane see üks keskne koht,
sel juhul search3.css, ja seejärel lastakse iga faili
oma veebilehel, et tegelikult kuuluvad selle faili teel see silt siin rida 16.
Nagu tavaliselt juhul, alustasime versiooni 0, millised teosed
kuid ei ole tingimata parim, ja iga samm,
Otsi 1, otsing 2 ja nüüd otsing 3 oleme võtnud neid beebi samme
poole disainilahendusi, mis on veidi puhtam ja rohkem ettevalmistus
keerulisemate lehekülgede, et me võiks teha mööda teed.
>> Lubage mul avada viimane näide on siin lihtsalt näidata
isegi rohkem stiliseeritud lehe, kuid kõigepealt vaatame HTML.
See on search4.html, ja märkad, et struktuuriliselt see on peaaegu sama
välja arvatud uue sildi div.
Div on silt, mis tutvustab jagunemise osas.
Sa ei mõtle seda nähtamatut ristkülik.
See omamoodi loob loog ala kodulehte
et saate Tyylitellä kõik korraga.
Mida ma olen teinud siin on järgmine.
Toas minu body, mis on seal olnud kogu aeg
Ma ütlen luua jagamise leht siin läbi rida 45 läbi 47,
ja see tähendab sisuliselt mulle nähtamatu ristkülik ülaosas lehel.
Siis anna mulle teine ​​ristkülik, kuigi nähtamatu, allpool seda,
ja selle määrama nimi sisu ja seejärel lõpuks
anna mulle kolmandasse jakku lehe allosas
nimetatakse ID.
Eks me näe, miks ma olen seda teinud vaid hetk,
kuid kontseptuaalselt mul kaudu rajoon.
Mul on sisu jagamine, ja mul jalus jagamise leheküljel
kuigi need on vaid võtmerõngas.
Kasutaja ei kavatse vt 3. ristkülik,
kuid omamoodi struktuurilt seal kulisside taga
nad on tegelikult olemas.
>> Nüüd, keda see huvitab? Miks tegelikult seda teha?
Kõik muu lehel on sama nagu me oleme näinud.
Siin on minu vorm. Siin on minu panus, mu sisend, reavahe jne.
Siin on pilt, kuigi, nii et me näeme, kust see tuli just praegu.
Siin on jalus, mis on uus, lihtsalt sellepärast, et ma tahtsin tutvustada
veel mõned sisu siin.
Kui me liikuge üles märkama, et ID käesoleva div on päises.
ID käesoleva div on sisu, ja ID see on jalus.
Ja nagu nimigi ütleb, kui teil on ID-atribuudi
HTML, definitsiooni järgi peab üheselt identifitseerida
üks elemente, üks sildid oma lehele.
Koormus on täiesti teid meeles pidada, et teil on päis ID juba.
Sul on jalus. Sul on sisu ID juba.
Arvuti ei kavatse aru saada, mis saadaval ID on teie jaoks,
nii et võid kogemata anda 2 silte ID kaudu,
ja mis oleks lihtsalt vale.
>> Sa pead meeles pidama, mida olete loonud,
aga kui olete teinud, et teate mida me saame teha siin.
Nüüd saan määrata minu stiil sildi ülaosas
ehk samaväärselt minu CSS faili, kui ma veel kasutada seda versiooni,
Võin öelda # header, ja mida see tähendab on see, et mida iganes tag
Käesoleva veebilehe on ID kaudu
ja #, lihtsalt inimeste konventsiooni esindab ID.
Terav märk või naela märk kujutab ID.
Päise on nimi, mille ma andsin talle.
See tähendab, kohaldatakse käesoleva CSS vara
mis iganes sildi seda lehte kannab ID päises.
Sama asi siin.
Kasutage seda vara, mis juhtub olema sama, mis tahes element
kelle ID on sisu, ja siis siia
märgata Mul on väike Kasvataja jalus.
Iga element, mille ID on jalus, millest ei saa olla vaid ühe definitsiooni järgi
minna ja teha oma fondi suurus väiksem,
selle fondi kaalu julge, tema marginaal 20 pikslit.
>> Mida see tähendab?
See on lihtsalt varu peal, all, ja vasakule ja paremale.
See tähendab, anna mulle 20-pixel nähtamatu varu ümber
lihtsalt suruda kõik muu eemale natuke, nagu te võite teha Word,
Microsoft Word või Lehekülgi vms.
Ja siis tekst Joonda keskele.
Vaatame lõpptulemus, ja siis läheme tagasi kuni üks allesjäänud väljavõtte CSS seal.
See on versioon 4, meie viimane otsingu näiteid, ja see on palju, palju seksikam.
Nüüd, õiglus, ma lihtsalt Google'st "google font logo generaator."
Ja see võimaldas mul luua GIF, pildi formaat, mis näeb välja nagu see seal.
Tegelikult saab seda teha ka.
Meil on "google fonte logo generaator."
>> Vaatame, kas me saame seda teha.
Okei, ma arvan, et see on kodulehel olen kasutanud.
Võime öelda, EÜ 10, näiteks, ja muuta need oma.
Võid mängida seda kogu päeva ja seejärel paremklõps see
ja siis lae tegelik GIF, mis on kõik, mida ma tegin.
Ja tõepoolest, sellepärast minu HTML, mäletan, siin
Mul oli pilt sildi, mis me nägime lühidalt eelmisel nädalal
mille allikas on logo.gif.
Ja mis veel oli motivatsioon, kellel see alt atribuut,
see alternatiiv atribuut?
Jah.
[Kuuldamatu õpilase vastus]
Hea, et 2 põhjustel tõesti, kui brauser ei tõmba pilti
sest teil on aeglane võrguühendus või pilt on vigane
või midagi sellist vähemalt inimeste näete "CS50 otsing"
ja siis ka ligipääsetavuse põhjustel.
Kui teil on kasutaja, kes on pime ja kasutab ekraanilugeja
ja seega ilmselt ei näe pilte nad saavad vähemalt
kuulake teksti kui oma arvuti räägib ta neile.
>> Üldiselt see on parim tava, kui tegemist on juurdepääs lehekülge
nii et isegi kasutajad, et olukord võib kuule ega näe, kui nii võib öelda,
mis see on, mis on teie leheküljele.
On veel üks asi, mis ma siin tegin
mis on natuke huvitav, ja me näeme selle kohta rohkem Ülesanded nr 7
kaudu üks lühikesed püksid juhtis üks õpetamise stipendiaatide.
Aga # sisu viitab silt
kelle ID on sisu, kuid siis on tühik, ja siis seal on sõna sisend.
Noh, huvitav on CSS on, et saate
viitavad sildid leht omamoodi hierarhiliselt
ja mida see väljavõtte CSS abil on leida numbrit
kelle ID on sisu ja seejärel kohaldatakse järgmisi omadusi
kõigile sisend sildid, mis on järeltulijad sisu,
et on mis on liigestatud sees on.
Taane jällegi on ainult oluline arvuti, mitte inimene,
kuid kokkuleppeliselt me ​​taane asjad nagu me minna sügavamale lehel
nii et see tähendab, kohaldatakse varu 5 pikslit tahes sisend element
see on kuskil sees või nested sees
element, mille ID on sisu.
>> Kes see siis kehtib?
Noh, seal on tegelikult lihtsalt need 2 kutid siin.
Pange tähele, et sees vormis seal on 2 sisendit,
kui seal on olnud kõik need näited.
Aga teate, et need 2 sisendit juhtub olema pesitses sees,
kuigi veidi sügavalt, paar kihti taandus,
sees silt, kelle ID on sisu.
Mida see tähendab?
Kui läheme brauseri siin näete kunagi nii vähe-
andke mulle suumimiseks-et seal on natuke polstri vahele nuppu
ja vahel tekstiväljale.
>> Lubage mul ajutiselt Lülita välja.
Lubage mul minna oma CSS, ja lase mul minna ja lihtsalt
muuta marginaali 5 pikslit kuni 0 pikslit.
Lubage mul minna siis ja salvestage fail, minna tagasi otsingumootor
ja reload, ja vaadata keset lehekülge.
Kõik sai kokku surutud, ja kui ma esimest vahustatud Selles näites üles
Ma arvasin, et vaatasin lolli teksti väli ja seejärel nuppu kohe selle all.
Tahtsin pad seda natuke, nii et ma sisse marginaalid.
Mida me ei tee loeng on läbida mitukümmend
CSS omadused, mis on olemas, sest jällegi, on asju, nagu kirja suurus,
font kaalu, marginaal, teksti joondada ja mõnikümmend teised,
ja me nimetame teid probleemide kehtestatud 7 kuni erinevate õpetused online
ja viiteid, mis võimaldavad teil valida neid asju.
Aga on tõesti tähtis lõpus päev
>> on mõista, kuidas need asjad on rakendatud.
Jällegi, kui meil on stiil tag mille sees
võib minna valimisele omamoodi tunnused, mis määravad
kellele sa soovid rakendada neid omadusi,
ja siis paned omadused nagu põhiväärtus paari
kooloniga eraldatult ja siis lõppes semikooloniga,
või saate rippida kõik selle välja ja pane see eraldi CSS faili
omaette.
Olgu, mingeid küsimusi on mõisted
või üldpilti CSS?
Sa jälle näha rohkem seda pset 7,
kuid me hoiame seda üldiselt päris lihtne.
Ei? Hea küll.
On aeg tegelik programmeerimiskeelt
ja me tuleme tagasi natuke CSS kujul näiteks.
PHP on tegelikult imeliselt arusaadavas keeles
sest see on süntaktiliselt peaaegu võrdväärne C.
Teisisõnu, kui sa tead, C, tead enamasti PHP,
vähemalt süntaktiliselt, kuigi seal on mõned uued funktsioonid
ja mõned uued kontseptsioonid me peame vaatama.
>> Aga enamasti, nüüd, et me üleminekut C PHP
enamik uusi asju on tõesti suur pilt,
kuidas te kasutate keele programm veebis, mitte
käsureal või vilgub kiiresti, nagu me oleme seda teinud siiani.
Eelotsusetaotlus, eriti pset 7 ja lõplik projekt aastast
ei ära seda siia URL, kui soovite lugeda üles formaalsused PHP.
See on tegelikult nagu tasuta online õpiku tõhusalt,
ja te leiate ka, et mida on tõesti tore PHP
on see, et seal on sadu funktsioone, mis sellega kaasneb,
arvestades, C sa ei pea juurdepääsu
rohkem funktsioone kui oli matemaatika raamatukogu CS50 raamatukogu.
PHP ja palju kaasaegsete keelte, Python ja Ruby nende seas,
saate juurdepääsu nii palju rohkem funktsioone, mis tähendab, sa saad kirjutada
palju vähem koodi, sest sa ei saa seista õlgadele teisi inimesi
kes on juba kirjutanud teatud asju teile.
>> Võtame kiirülevaate süntaksit PHP ja siis kirjutada mõned näited.
Mis on ilus umbes PHP ennekõike
on seal ei ole peamine funktsioon.
Kui soovite kirjutada programm PHP sa lihtsalt hakake kirjutama koodi,
ja sa ei pea muretsema peamine.
Ei ole int. Pole mingit tulu.
Pole argv, argc, mida on vaja, kui sa kirjutad programmi.
Pigem saab lihtsalt hakake kirjutama koodi, ja see on osaliselt
sest PHP on, mida nimetatakse tõlgendada keeles.
C koostati, ja see koostati selles mõttes, et hakkate
koos lähtekoodi, kestab see läbi rõkkama, mis on kompilaator,
ja lõpuks pärast mõningaid mitmeid samme sa saad objekti kood, 0. ja 1s.
PHP ja Python ja Ruby ja Pearl ja teised
On erinevaid keeli, et sa ei kompileerida neid.
Sa ei lähe lähtekoodist et 0. ja 1s.
Sa lihtsalt käivitada lähtekoodi, ja sa jooksed lähtekoodi
kirjutage tavaline tekstifail, mis lõpeb. php sel juhul
asemel. c, ja mida programm teeb arvutis
on see sõna otseses mõttes tõlgendab oma koodi rida rea ​​kaupa.
>> Teisisõnu, selle asemel kirjutada programm ja käivitage programm
otse teie asemel kirjutada programm koos fail lõpeb. php.
Siis sa jooksed tegelik programm nimega php.exe, kui sa oled nii Windowsi,
või lihtsalt PHP kui sa oled Mac OS või Linux,
ja annate sisendi PHP programm oma lähtekoodi,
ja selle eesmärk elus on lugeda oma koodi ülevalt alla, vasakult paremale,
ja mida iganes sa ütlesid seda teha.
>> Vaatame, mida see saab tähenda süntaktiliselt.
PHP on meil tingimused.
See klapp on identne mida sa nägid juba nädal 1
sest süntaktiliselt tingimused, IFS ja muud investeerimisfondid ja muud PHP
välja täpselt selline.
Kui tegemist on tõeväärtus väljendeid nad ei kavatse välja täpselt selline.
Kui tegemist on anding asjad koos, sest tõeväärtused see läheb välja täpselt selline.
Lülitid tunduvad sama, ja sa saad lisakasu PHP
et lülitite C võiks sisse lülitada ainult char või int.
Sa ei saa sisse lülitada stringi väärtus.
PHP saate tegelikult on väljend
et on muutuja, mille sisu on string,
ja tegelikult võite seda teha sõnede reaalses intuitiivinen,
ei osuti võrdlus, et otsustada, kas teha juhul i või j või midagi muud.
Eks me näe, mis potentsiaalselt enne pikk.
>> Loops liiga imeliselt on samad.
Sest silmad on käivitamise, seisund, ja mõned mitmeid uuendusi.
Kuigi silmad on olemas ka PHP.
Kas samas silmuseid olemas ka PHP,
ja massiivid olemas PHP, kuid siin, kus süntaks hakkab natuke erinev,
kuid mõisted on samad, ja kontseptsioone tõesti on samad
nagu need olid 0-nädalal koos Scratch.
Kõigepealt on $ märk.
See oli disain otsuse PHP millega tahes muutuja
PHP, mille konstruktsioon algab $ märk.
Pole veel X, Y, Z. See on nüüd $ X $ Y $ Z lihtsalt sellepärast.
See on midagi, mida meeles pidada, ja nüüd paremas servas
see sarnaneb massiiv,
aga me kasutame nurksulgudes siin.
PHP ja JavaScript, kui me lõpuks näha,
kuulutada array sa avatud nurksulg ja suletud square bracket,
ja siis on komadega eraldatud väärtused, kas ints
või stringid või sümbolid, mida iganes sa tahad, sees selle väljendi seal.
>> Nüüd, kuidas me tegime midagi sellist C?
Mis oli süntaks staatiliselt kuulutatakse massiivi teadaoleva arvu?
See oli looksulg, nii väike erinevus siin, kuid nii PHP
ja lõpuks JavaScript see lihtsalt kasutab nurksulgudes, nii tõesti
ainult huvitav detail siin on $ märk muutuja nimi
ja ka nurksulud, ja seal on üks kummaline asi
mis on välja jäetud ka vasakul servas = märk.
Mis puudu, et oleme olnud vaja mitu nädalat nüüd? Jah.
[Kuuldamatu õpilase vastus]
Suurus, mistõttu ei ole mainitud suurusest massiivist.
Ausalt, seal ei mainita nurksulgudes vasakul
kohta = märk, ja mida veel puudub piir?
Jah. >> [Kuuldamatu õpilase vastus]
Tüüp, siis millised on huvitav eelkõige umbes PHP
on see, et see ei ole tugevalt tipitud keeles C on
ja mis on tugevalt tipitud selles mõttes, et sa ütlema char,
peate ütlema int, siis pean ütlema sularahaga.
>> Anytime soovite muutuja teil on öelda rõkkama mida selle tüüp on.
PHP on vähe lazier.
See on lõdvalt kirjutatud selles mõttes, et
sul võib olla ujukite ja tähed ja nöörid
ja ints ja nii edasi, ent keel ise
ei huvita, mida sa panna sees muutuja.
Sa ei pea teavitama ette, milline andmetüüp
liigub muutuja.
See on täiesti su enda otsustada, nii et see on kena
aastal, et sa ei pea muretsema nii palju andmeid kirjutada
ja murettekitav mida teie argumendid on ja nii edasi.
See tähendab ka lõpuks funktsioonid PHP hakkavad saama tagasi
kas int enamiku ajast, ja võibolla üks kord samal ajal
nad tagasi bool, tõeväärtus vale, näiteks et tähenda, et midagi läks valesti.
See annab meile mõned plussid, kuid ta ka teeb meile omamoodi mille konstruktsioon
natuke lazier kui tegemist on andmete kirjutamist.
>> Mida veel on meeles pidada siin?
Muutujad tundu päris niimoodi, et $ s = "Hello, world."
See on võib-olla inferable eelmisest näitest,
ja meil on teist tüüpi silmus.
See üks me tegelikult näha kord samal ajal, kuna see on üsna mugav,
foreach ehitada.
Sel juhul foreach silmus võtab sisse oma sulgudes 3 sõna tavaliselt,
$ Enne midagi, mis on just see massiiv sa tahad itereerime liikmed,
siis sõna otseses mõttes märksõna, ja siis lõpuks
teise muutuja nimi, et sa saad valida.
See võib olla suva, baar, või element,
ja mida see konstruktsioon ei
on kui $ massiiv sisaldab 10 elementi
iga iteratsiooni selle massiivi-kahju, iga iteratsiooni Selle ahela
muutuja nimega element saab olema uuendatud
olla esimene element massiivi, siis teine ​​element massiivi
siis kolmas element massiivi, kõrvaldades nii vajaduse
teha veidi tüütu nurksulg märke ja
$ I, et indeks array.
PHP teeb kõik, et töö teile ja iga iteratsiooni
lihtsalt annab sulle järgmise elemendi massiivist
ilma et peaksite teadma või hoolivad oma numbriline indeks asukohta.
>> Ja siis lõpuks, nüüd, seal on üks teine ​​funktsioon PHP
et see saab olema väga kasulik, eriti kui hakkame programmeerimine veebis
ja mis on tuntud kui assotsiatiivne massiiv.
Massiivid, et me teame, seega kui 20 sekundit tagasi
ja viimased 8 nädalat on arvuliselt indekseeritud massiivid
omamoodi traditsioonilise massiivid, kus indeksid on ints,
0, 1, 2, kogu tee üles.
Assotsiatiivne massiivid on palju võimsam.
Nad võimaldavad teil on meelevaldne võtmed,
suvalise indeksite ja omavoliline väärtused.
Arvestades, et traditsioonilise massiivi see on 0, 1, 2,
aastal assotsiatiivne massiiv saab olla indeks
või võti suva, mille väärtus on baar.
Võite siis on veel üks oluline kelle nimi on Baz ja mille väärtus on qux.
>> Jällegi loll infotehnoloogia üldise muutuja nimed siia,
aga point on selles, et see massiivi ei ole sulg 0 või 1 rühma.
See asemel läheb on sulg suva ja sulg Baz.
See on palju rohkem mitmekülgne, et me ei kavatse olla võimalik seostada
sõnad teiste sõnadega, võtmed väärtused täiesti suvaliselt,
ja me ei kavatse olema võimalus saada need väärtused tagasi konstantse ajaga
sest all kapuuts mida assotsiatiivne massiiv
tõesti on hash tabelit.
Tuletame meelde, et hash tabelit saab panna mõned sisend
meeldib panna sõna David kui soovite lisada David võtta mingi sõnastik
ja siis saad tagasi mõned väärtus tavaliselt.
Juhul speller, õige või vale.
David või mis iganes sõna on või ei ole sõnastikus.
Assotsiatiivne massiiv on tõesti ainult hash tabelit,
aga see on palju kasutajasõbralikumaks kehastus ta.
Nagu me näeme, et see läheb meile võimaluse teha mõned asjad
väga, väga lihtsalt.
>> Võtame pilk mõned põhilised PHP
näited ja vaata, mis me saame teha selles keeles.
Lubage mul minna ja avada meie allikas kataloog täna
fail nimega hello1.php.
See fail on veel kommentaar, kui see on tegelik kood,
las ma tegelikult eemaldada kõik kommentaarid failist
ja esitleda teile võib-olla kõige lihtsam PHP programm siin.
5 rida, ja mõned neist on valge ruum,
nii märkate mõned olulised erinevused siin.
Faili nimi on hello1.php.
Kõige esimene rida, kuigi on <? Php.
Sarnase sisuga HTML,
et märgijada ütleb arvutile
"Hei, arvuti, siin tuleb programmi me oleme PHP."
See tagab, et see ei ole segaduses, et see on mingi muu keel.
2. liin on huvitav valget ruumi.
Rida 3 on meie vana sõber printf,
Selle aja kontekstis PHP.
PHP on oma versioon printf mis käitub täpselt sama,
nii et see on lihtsalt läheb print "Hello, world."
Ja siis see vastupidine tag siin?>, Mis ongi minu PHP koodi.
>> Vaatame, kuidas juhtida seda.
Ma lähen tagasi oma terminaliakent siin.
Ma lähen minema minu PHP kataloog.
Pange tähele, et meil on terve hunnik faile, esimene millest üks on hello.php.
Lubage mul minna ja teha selle, hello1.php, siseneda.
Luba ei anta. Okei.
Kuidas me oleme määratud asju nagu see varem?
Mis see on? >> [Kuuldamatu õpilase vastus]
Me vajad lugeda ja kirjutada, kuid lubage mul teha ls-l.
Mäletad seda veidi segasena väljund, mille hello1
tundub olema loetav ja kirjutatav mind
kuid loetav kõik teisedki.
Tuleb välja, et tegelikult ei ole samm õiges suunas.
Erinevus, jälle koos tõlgendada keel
on teil ei ole programmi käivitada otse.
Sa asemel joosta tõlgi ja anda see kood
et olete kirjutanud, et ta saaks seda tõlgendada rida-realt.
Sel juhul tõlk või programmi ma tegelikult tahan joosta
on sõna otseses mõttes nimetatakse PHP.
>> Kuskil sellel kõvaketas seadme on olemas programm
keegi kirjutas nimega PHP, või Windows php.exe.
Mida ma teen siin ma lähen tegelikult käivitada PHP
kuid annab seda käsurea argument kood, mis ma kirjutasin,
ja siis ma suumida ja vajuta enter.
See töötab minu programm minu jaoks, ülevalt alla, vasakult paremale.
Lubage mul minna ja avada veidi vastuolus käesoleva.
Aastal hello2.php teate, et see liiga
Enamasti kommentaare, nii et las ma saan lahti neist nii häiritud,
ja mis on selgelt erinev nüüd selle faili?
Seal on see uus liin, veidi segasena ülaosas.
In real 1 on see #! / Bin / php.
Bin on konventsiooni Linux ja Mac OS binaare
nii / bin tähendab see kaust, mis sisaldab kamp kahendfaile
mis on programmeeritud, millest üks on PHP.
#! on hüüdnimega Jutt,
mis on kiire viis öelda seda, ja mida see tähendab
on see, et kui sa jooksed selle programmi nüüd on vihje ülaosas faili
mis ütleb arvutile, mida tõlk kasutada.
>> Läheb veidi tüütu, kui teil oleks öelda oma kasutajate ja teie kliendid
"Kuule, me kirjutasime selle programmi nimega hello1.php."
Kõik, mida pead tegema, on igavesti käivitada PHP ja siis nimi selles programmis.
Ausalt, see oleks lihtsalt kenamaks joosta hello1.php,
ja tõepoolest, me saame, kui me teeme järgmine.
Lubage mul minna ja teha ls-l, ja teate hello2 see on ikka just lugesin kirjutada
ja siis loe lugeda, nii et ma ei saa veel teha, hello2.php.
Aga me tutvustas seda kunagi nii lühidalt viimase aja chmod käsk.
Kui ma seda chmod a + x, mis tähendab, kõik pluss teostatavust
ja siis hello2.php ja siis ei ls-l jälle teate, mis muutunud.
Üks, Linux näitab mulle failinimi roheline anda edasi ideed
et see täitmisfaili, kuid veelgi tähtsam, vasakul servas
märgata, et natuke esindavad x käivitatava on nüüd.
Mis see nüüd tähendab, ma saan käivitada ./hello2.php nagu tavaliselt,
Enter, ja kuna Jutt tipus toimiku
see on vihje, jälle, Linux, mis ütleb,
kasutada tõlgi teha selle faili.
Ära muretse sundides kasutaja tegelikult kirjuta see.
>> Ja mis on tore nüüd on see on selline ebaoluline minu kliendid või minu sõbrad
Mis keeles ma kirjutasin selle programmi, et ma saaks edasi minna mv
ja ümber selle asja hello2, näiteks.
Ja nüüd kui ma ./hello2
ja välja suumida minu programm töötab edasi.
Need laiendid on inimeste konventsioon, mis on vajalik
midagi nagu rõkkama ja Mark, kes neid otsida.
Aga PHP, ma nimetan seda faililaiend, mida tahan.
Ma ei petta maailma mõtlema, et ma olen tõesti hea Ruby,
ja ma võiks kirjutada hello2.rb ja seejärel käivitage see,
ja voila, nüüd on mul Ruby versiooni, mis on täielik vale.
Aga laiendid on mõttetu
kui fail on käivitatav ja on see eriline vihje ülaosas faili.
>> Nüüd, kui kõrvale, las ma näitan sulle kiire versioon 3,
mis on omamoodi kasulik trikk teada.
Aastal hello3 ma tegin midagi pisut valesti
et ma uuendada lähtekoodi online.
Versioon 3 selgub, et kõige Linuxile
seal on programm nimega env keskkonna,
ja mida saate teha siin on, kui sul pole aimugi, kus PHP
on paigaldatud kohalikule kõvakettale, sest tõepoolest see võib varieeruda arvuti
et keegi kasutab, env lihtsalt ütleb joosta env,
mis on enamikus süsteemides, ja aru saada, kus PHP on.
Lihtsalt üldine trikk, et sa ei pea muretsema leida, kus programm on.
Aga kui sa hoolikalt teada, kus programm on ja sa ei ole hooldatud seni
saab kasutada mis käsk.
>> Lubage mul välja suumida ja tüüp, mis php,
ja märka seda ütleb mulle, et see on tegelikult usr / bin / php.
See on selline vale. See on ka prügikasti.
See lihtsalt näitab mulle esimese löögi.
Kui sa kunagi mõelnud, kui rõkkama on, mis rõkkama, et see on usr / bin / rõkkama,
mis teha, usr / bin / teha, ja mida see tähendab, kõik see aeg
sa oleks võinud kirjutada usr / bin / rõkkama sisestada joosta rõkkama,
aga see on selline tüütu seda teha, nii et mõned kaustad
nagu usr / bin ja bin eeldatakse, et vaikimisi
nii arvuti teab, et uurida nende eest ise.
Iga küsimustele kirjalikult super, super lihtne Hello World programm
PHP ja siis töötab see?
Sest nüüd me hakkame tutvustada ahvatlevamaks süntaks.
Olgu, siin me läheme.
Need programmid oleme näinud tegelikult neid kõiki enne.
>> Kui ma avada, näiteks, teeme beer1.php,
me ei lähe läbi mitmeid versioone, kuid mida ma tegin
aastal Istusin ja valatakse see või ümber
minu C koodi PHP koodi siin.
Enamik faili ülaosas on kommentaarid siin.
Tuleb välja, seal on üks uus funktsioon peame nimetatakse readline.
GetString, mäletate, alates 0-nädalal aastast oli CS50 asi.
PHP kaasas oma kasutajasõbralik funktsioon nimega readline
et võtab 1 argument, mis täpsustab kiire
et sa tahad näidata kasutajale, ja mis readline ei
on ta naaseb iganes kasutaja tipib sisse
Sel juhul ma kuulutab muutuja nimega $ n.
Ma salvestamine see tagastatav väärtus readline
pärast ajendades kasutajal selle stringiga.
Lihtsalt varundada, et tegelikult joosta seda asja, lubage mul minna
ja käivitada PHP beer1.php.
Mitu pudelit on veel? Teeme lihtsalt 2 Käesolev aega.
Enter. See on kõik.
>> Programm on funktsionaalselt identne C versiooni nädalat tagasi.
Aga süntaktiliselt vaatame, mis on teistsugune.
Pärast saan int kasutaja teate, et ma teen mõned veatuvastuse,
ja kui n on väiksem kui 1 Loobusin ja ma välja printida
Vabandame sõnumi kasutaja ja lõpeta 1.
Ka see on natuke erinev.
C mida me tegime? C me andis 1.
PHP väljute 1, mis ausalt öeldes on minu arvates natuke rohkem intuitiivne
sest sa oled sõna otseses mõttes programmist väljumine.
Olgu, ja siis siia alla tüütu laul on identne süntaktiliselt
välja arvatud muutuja, nii siin all kooskõlas 24 aastast
märgata minu jaoks silmus on peaaegu sama,
aga mul on $ ees i ja n,
ja mis on ka puudu rida 26, et oleme olnud minevikus
deklareerimisel muutuja i?
Pole mingit tüüpi.
See on vale PHP öelda int.
Sa lihtsalt ei pea seda tegema.
Arvuti, tõlk PHP on piisavalt tark, et aru
et kui paned numbri $ ma seda ravida
kui number teile.
Ja siis siia me pistik $ i, $ i, $ i - 1.
Kõik see on sama, ja siis siia me teeme "Vau, see on tüütu" printf
ja sulgege (0).
>> Jällegi, Buffee siin on see, et kuigi me ei kavatse kulutada suhteliselt
vähe aega PHP, kindlasti versus mida me tegime C,
see on peaaegu sama, ja nii me teeme täna ja järgmisel nädalal
ja pärast seda on keskenduda tõesti mõned uued ideed.
Lihtsalt vaata, et üks teine ​​asi ei tõlkima üle C,
see oli super lihtne programm me tegime nädal 1
või 2 et cubed väärtus.
Aga mis oli huvitav sel ajal umbes see programm on, et see
kasutusele mõiste kohandatud kirjutatud funktsiooni, et me ise kirjutas.
Süntaksit PHP on peaaegu sama.
Siin on minu programm üles tippu.
Teade jälle puudub igasugune arusaam peamistest.
Ma hakake kirjutama koodi, ja need ongi hakka täide tõlk.
Ma printida x on nüüd 2, arvatavasti.
Siis ma väita cubing ...
Siis ma nimetan kuubik funktsioon ja liigu kataloogi $ x
ja määrata tulu väärtuseks $ x.
Siis ma väita, et see on kuubis, ja siis ma ütlen seda, mis loodetavasti
ütlen x on nüüd 8.
Süntaks funktsiooni PHP on kunagi nii veidi erinev.
Jällegi puudu on naasmise tüüp.
Jällegi puudu on naasmise tüüp ja ka kadunud on, mida muud tüüpi?
[Kuuldamatu õpilase vastus]
Noh, okei, see on hea. Lähme tagasi tulla, et teises.
>> Meil ei ole näiteks int siin.
Me ei Näiteks on int siia, sest jällegi PHP
sa lihtsalt ei pea ja ei tohiks seda teha,
vaid seal on see uus märksõna nimetatakse funktsiooni.
PHP on peaaegu veidi selgem, sest kui sa tahad funktsioon
sa sõna otseses mõttes öelda, funktsioon, annad talle nime ja seejärel komadega eraldatud nimekiri
kui mõni oma argumendid.
Pole vaja öelda tühine või midagi sellist, ja siis tulu on sama,
$ * $ * $.
Mis on ka puudu? Sammy juhtis sellele siin.
Ülaosas faili üldse PHP ka on prototüüp.
Ka see on ette nähtud.
Keeled ja tõlkide nagu PHP on targemad kui C kunagi oli
aastal tõlkijad nagu rõkkama.
>> Tuletame meelde, et rõkkama, kui sa ei ütle seda, et kuubik on olemas,
kui sa ei ütle seda, et printf olemas nagu prototüüp
või # include, noh, see pidi kisa sind ja isegi ei kompileerida koodi.
PHP ja moodsam keeled on palju targemad, kui tegemist on käesoleva.
Nad võtavad endale läbi lugeda kõik oma koodi
ja siis ütleb teile üksnes juhul, kui ta leiab, kuup kuhugi.
Ei ole oluline, kui kuubik on allosas või top või isegi mõnes eraldi failina.
PHP jms keeled on nüüd piisavalt tark, et vaadata tulevikku
kõike enne leides sind teinud vea.
Kui ei, et jätta meid?
>> Teeme viimane näide on siin tingimustes,
ja kui ma avada conditions2.php teate liiga
süntaks siin on peaaegu sama.
Ma kasutan readline asemel getString, kuid see rida on sama mis enne,
"Ma tahaksin täisarv palun."
Siis veel, kui tingimus, muidu kui ja siis teine,
kuid funktsionaalselt on see programm on samuti identsed, mida me tegime nädalat tagasi
nii et kui ma saan selle asja, php on conditions2,
ja ma annan selle numbri nagu 23 -
Ma valisin positiivne arv. Kui ma annan talle -1 ma valisin negatiivse numbriga.
Kui ma annan ta 0 Ma tõesti korjatakse 0.
Nii et kes hoolib see kõik?
Noh, üks lõbus omamoodi harjutusi siin
minu jaoks vähemalt oli tagasi minna ja näha, kui kiiresti ma võiks rakendada pset 5
õigekirjavead pset.
Tuletame meelde, et seal oli see fail nimega speller.c,
ja seal oli fail nimega dictionary.c.
Mis ma tegin oli mul mingi veetis paar minutit ja ma ümber C kood
PHP koodi, ja me ei kuluta palju aega speller
sest nii nagu pset 5 te tegelikult ei vaja
kulutama palju aega speller ise, sest teie tähelepanu oli sõnaraamat.
>> Piisab, kui öelda, et kui sa loed läbi speller,
see fail siin, see on päris palju vastab C kood
andsime teile pset 5.
Ma olen lihtsalt lisada mõned $ kohtades.
Ma muutsin teatud funktsioonide nimed, kui nad ei eksisteerinud PHP.
Seal on veel üks asi siin, preg_match,
mis on veidi Kasvataja viis teha midagi, kuid me tuleme tagasi, et lõpuks.
Aga lühidalt öeldes, speller on peaaegu identsed, ja kui te vaatate väga alt
mida ta lõpuks sülitab välja on see siin,
sõnad valesti kirjutatud sõnu sõnastikku, sõnad tekstis.
Olgu, mis on huvitav nüüd on järgmine.
Ülaosas minu faili ma nõuavad dictionary.php.
Nii nagu C on # include PHP on eriline funktsioon nimega vaja
et päris palju teeb sama asja, vaja faili nimega dictionary.php.
Kuidas ma saan minna rakendamisel pset 5?
Lubage mul minna ja avada fail siit.
Lubage mul vähe viide siin.
Ja las ma luua uus fail ja alustada kutsudes seda dictionary.php.
Las ma panen selle teise kausta, et saaksime teha seda elada.
Ja nüüd ma suumimiseks
Ma lähen alustada minu PHP faili sulg php suletud sulg.
Ja siis siin olid mõned funktsioonid Ma pidin rakendada pset 5
seega lubage mul alustada selle rakendamist mõned neist,
nii funktsiooni kontroll, mis pidi võtma sõna argumendina.
Me teeme seda ja tulevad tagasi see hetk.
>> Oli funktsioon koormus, mis võttis, mida argumendina?
Sõnastik, nii fail, et ma tegelikult tahtsin laadida.
Oli funktsioon suurus, mis ei võtnud ühtegi argumenti
ja seal oli funktsiooni-milline oli teine?
Unload, mis ei võtnud ühtegi argumenti kas.
Need on 4 funktsiooni, et mul oleks vaja nüüd rakendada PHP,
ja mida ma lähen tegema, on minna ja seda teha.
Palju sa kasutada hash tabelit pset 5
seega lubage mul minna ja luua hash tabelit PHP.
Valmis.
See annab mulle hash tabelit. Noh, miks?
Üks, muutuja nimega $ tabel, lihtsalt võluda idee hash tabelit.
Nurksulgudes, kuigi mäletan, esindavad mida?
Massiiv, kuid PHP massiivid ei pea olema arvuliselt indekseeritud.
Tegemist võib olla ka assotsiatiivse massiivi
mis tähendab, et saate pea suvalise võtmed ja väärtused.
>> Palju meeldib pset 5, you need, kes tegid hash tabelit rakendusi
siis ilmselt sisestatud sõna ja siis lisatakse see ahel seotud nimekirju,
või sa salvestatud väärtus tõene kuhugi või midagi selle kohta.
Sa kuidagi meelde, et sõna oli seal.
Sest nüüd, et see saab olema minu hash tabelit,
ja nii nüüd edasi minna rakendamisel kontrolli funktsioon
Ma lihtsalt pean otsima sees, et hash tabelit
ja vaata, kas sõna on olemas.
Mida ma teen on ma öelda, kui-
oletame isset, mis on PHP funktsioon, mis sõna otseses mõttes tähendab lihtsalt on võti komplekt,
nii isset ($ tabel [$ word]
ja kui, siis tagastab true.
Nii see on. See on pset 5 PHP.
Noh, õiglus, eks.
Teine tagasi false, nii see ei ole seal.
Mis tegelikult toimub?
Noh, kui tabel-või hash tabelit siin üldisemalt-
on assotsiatiivne massiiv, mis tähendab, et saate indeks sinna
koos sõna nagu "sõna" ja sa pead tagasi mingi väärtus.
>> Oleme omamoodi saada ühe sammu võrra ees end.
Oleks selline tore, kui me tegelikult laaditud fail esmalt
nii koormus ei ole päris nii lihtne, kuid lubage mul minna ja klopsima
tõesti kiire rakendamise koormus.
Lubage mul minna ja öelda sõnu saab faili sõnaraamat.
Fail funktsioon PHP avab faili
ja naaseb sa massiivi kõik sõnad selles failis
lihtsalt ulatab need teile.
See oli suur valu liiga, oli ju?
Nüüd foreach, see on meie uus ehitada, foreach ($ sõnu $ word).
See silmus kavatseb alustada itereerimise üle massiivi sõnad
ja määrata $ sõna muutuja iga sõna fail
alates esimesest teise kolmanda neljanda kõik viis
nii et ma ei pea tegema tüütu [i] märke jms.
Ja mida ma lihtsalt teha kavatsed kõigi nende sõnade
on seda säilitada minu laua indekseerimise ümber tabeli
ja siis teeme tõsi, sest meeles
et sõna on minu sõnaraamatus ma tõesti pean tegema
on selline klapp natuke ja ütlen seda sõna mu hash tabel on seal, tõsi.
Ja kui see ei ole seal, ma ei pea otseselt panna vale,
muidu ma pean panema vale kõigi võimalike sõnad universumis.
>> Piisab mulle lihtsalt luua indeksi väärtus
true, kui sõna on tegelikult minu hash tabelit.
Nüüd ma lõikamine paari nurgad siin, et ma siputan käed nüüd,
kuid nüüd koormuse funktsioon on tehtud.
Ma koormuse kõik sõnad failist massiivi.
Ma itereerime et massiiv, ja iga sõna array
Ma ühendage see minu hash tabel 1 rida koodi.
See on lõbus. Tead kuidas me saame rakendada suurus nüüd?
Noh, suurus on alati üsna lihtne, õiglus.
Siin saame lihtsalt tagasi kokku tabeli.
See on päris lihtne liiga, loendada asju lauale.
See on tegelikult omamoodi ole kõige tõhusam.
Ma peaks ilmselt muutuja nimega suurus nii et me ei saa seda teha
pidevalt aega, kuid see on päris lihtne.
Oh, ja siis maha laadida, kui me tõesti tahame olla anal siin
võime öelda, et kuidas sa lossimiseks midagi.
Sa lihtsalt seatakse võrdne tühja massiivi,
ja see läheb lahti kõik, mis seal kirjas oli.
Ei ole vaja helistada tasuta.
>> Jällegi, ma olen kärpima mõned nurgad, ja ma vabandan määramise Ülesanded nr 5
ehk C, kuid kui me nüüd edasi minna ja käivitada see,
Ma lähen reaalselt sõita versioon, mille ma kirjutasin enne
just nii, et ma ei teinud süntaksi vigu üldse.
Lubage mul minna ja joosta speller. Kasutamine on sama.
Siin on sõnastiku faili, mis sisaldavad vaid sõna suva.
Siin on tekstifail, mis sisaldavad vaid foo bar.
Olgem õigekirja kontrollida seda, et speller, kasutades seda sõnastikku fail selle tekstifaili.
Seal on üks valesti kirjutatud sõna, baar, ja voila.
Teha pset 5.
Võtame 5-minutilise pausi siin, ja me tuleme tagasi ja rohkem PHP.
Olgu, me oleme tagasi.
Teeme-vihkavad mind mõnda aega.
Lähme nüüd tegelikult näha, kas see ei olnud positiivne
tegelikult rakendatakse seda asja PHP.
Tõsi, ta võttis 45 sekundit rakendada.
>> Aga lähme edasi nüüd ja kestab asju.
Lubage mul minna ja käivitada C versioon
on speller, ja me kasutada seda üks suuremaid faile,
mis on King James Bible.
Ja see siin on-lähme meie C kausta
speller on King James 5th.
Palju valesti sõnu.
Okei, nii see on väljund siis ilmselt sain isegi kui ajad on natuke erinev,
kui sul kõik töötab korralikult, ja nii aega kokku õigekirja kontrollida
King James Bible oli 0,38 sekundit, seega päris hea kasutades, et rakendamine.
Nüüd lubage mul minna PHP versioon, mis me just kirjutasid.
Ma jooksen speller kuningas James.
Oih, ignoreeri seda viga. Ma olen vales kataloogis.
Speller on King James 5th.
Peaaegu valmis.
>> Okei, nutikas vaatleja saab aru, et oli rohkem kui 3 sekundit seal.
See on tõeline sõiduaega.
Selgub, et see võtab aega, et sülitada palju teksti välja
sest puhverdusvõime küsimusi, kuid pikk lugu lühike,
mis oli 3,15 sekundit masina ajal CPU aega,
võrreldes mis see oli hetk tagasi?
Nagu .3.
Ma mõtlen, et see on suurusjärgus aeglasem, nii et kui on see, et
naeruväärne aeglustumine tulevad?
Noh, nagu on juhtunud ka kõige tahes disain otsuse oleme teinud
klassi viimase 9 nädala seal on peaaegu alati see kompromiss.
Mõnikord vahel lihtsalt ruumi, mõnikord vahel ruumi ja aja,
ruum, aeg ja arendamise jõupingutusi, ja tõepoolest siin, kuigi
me salvestada tohutul hulgal aega, võib-olla potentsiaalselt 10-20-30 tundi
arengu ajal rakendatakse õigekirjakontrolli
poolt piitsutamine see üles kõigest 45 sekundiga selle keele
hind mida me maksame, et see on suurusjärgus aeglasem, mille tulemusena
ja see üldjuhul ongi enamike tõlgendada keel,
PHP, Python, Ruby, Pearl või teised, mille
kui sa lähed kestab see läbi tõlgi ja on seda lugeda oma koodi
rida-realt, ülevalt alla, vasakult paremale,
et käsi läheb aega oma,
ja mida sa tunned siin 3 sekundi asemel 0,3 sekundiga
on asjaolu, et seal on see käsi, kes on sõna otseses mõttes tõlgendada meie kood
rida-realt, ja Jumal hoidku, kui sa oled sees silmus
tohutu fail sisaldab sadu tuhandeid sõnu.
>> See õhuliini läheb küündivad ja liita ja liita ja tõusta.
Sest tööriista nagu seda see ilmselt ei ole parim keelt kasutada rakendamiseks
õigekirjakontrolli kui vahetu on huvi oma kasutajatele ja sulle.
Aga luksus meil hetkel on, kui te
kasutada nagu PHP või palju tõlgendada keeles
kontekstis Web, et asi, mida kasu
et internet on palju aeglasem kui enamik arvuteid.
Sa pead GHz protsessor arvuti, 2 GHz, võibolla isegi rohkem nendel päevadel.
Aga reaalsus on internet on suur summa latentsus
mille jaoks brauser rääkida server, kuigi me nägime eelmisel nädalal
et see on päris kiire, pool millisekundi või nii,
et liiga lisab üles ja kui sa alla laadida asju nagu pildi
või Facebook foto või saada kiirsõnumeid üle Facebook jutuvadin,
Gchat vms, kõik need edasi-tagasi ajad
vahel brauseri ja serveri hakkavad tõusta,
mis teeb sinu keelevalikut paljudel juhtudel
ole nii oluline, et sa trahvi kasutades veidi aeglasem keel
nagu PHP või Python või Ruby
kuid mis on tohutult tasa, et teie ja teie kolleegid
ja Teie sõpradele, sest saate rakendada asjad nii, nii palju kiiremini.
Ja pealegi, teil on palju väiksem oht ​​teatud turvalisuse vigu.
Ei ole viiteid, PHP.
Pole seg vigu, mida saab kergesti esile kutsuda
samamoodi võid ka C.
Mis C sa oled super lähedal riistvara.
PHP ja sarnaste keelte sa oled omamoodi kõrgemale tasemele, kui nii võib öelda,
kus on palju vastuväiteid ja sinu vahel, mis tegelikult toimub
masina sees, ja see on lihtsalt kompromiss.
>> Me oleme saanud selle punktini, millel need moodsam, kõrge keeles
nagu PHP, sest õppetunnid keeles nagu PHP C.
Aga kui sa ei mõista, mis on kestnud alla kapuuts kõik see aeg
te kindlasti ei saa teha õigeid otsuseid,
ja kindlasti, kui tegemist on töö kohas nagu Facebook või Google
või mõni neist kohtadest, mis on üha mängides suure andmekogumi
isegi kui sa lähed tagasi ja ei premed ja töötame koos mõnede MD
mõne suure andmekogumi seotud patsiendi ja arsti
ja nagu kasutades õigeid vahendeid on väga kaalukad
sest vastasel juhul oma analüüsis mõned andmekogum võib võtta sekundit,
või see võib sõna-sõnalt võtta tundi.
See on vaid üks näide, mitte nurjata teile, kui palju vaeva
see oli C, kuid mis aitavad teil mõista, et kui sa ellu midagi C
sa tõesti aru, või teoreetiliselt tõesti aru
kuidas kõik on või peaks olema töö, ja sul on peaaegu täielik kontroll
üle, mis toimub all kapuuts, ja nende kõrgema tasandi keeles
sa pead loobuma suurema kontrolli inimesi, kes leiutas neid
ja alluvad rohkem oma disaini otsuseid kui sinu oma.
Aga kui me enesestmõistetavaks, et tulemuslikkuse
ei ole päris nii tähtis veebis, sest neid teisi küsimusi,
lihtsalt võrgu kiirused on natuke aeglasem kui CPU kiirust niikuinii,
nii saame omamoodi endale lubada kasutada veidi aeglasem keel
kui tasa on saame arendada asjad 10 korda kiirem või isegi enam.
>> Vaatame, kuidas me saame hakata kasutama seda.
Lubage mul minna kausta
vahel tänapäeva näited nimetatakse frosh.ims,
ja see oli tegelikult isiklikult ajendatud asjaolust, et kõige esimene asi,
Ma kirjutasin, et Web aastat tagasi võtmise järgselt CS50 ja CS51
oli kodulehel Frosh arukate tootmissüsteemide programmi, uustulnuk ettevõttesisene sport,
mis ajal see oli piisavalt aastat tagasi, et ajal
puudus kodulehel programmi, kuigi seal oli veebis
ja selle asemel oli Proctor sisse Wigglesworth mille kui sa tahad
registreeruda võrkpalli või jalgpalli või mis iganes te täitke paberile.
Sa oleks siis minna üle õue.
Sa oleks siis koputan nende uksele ja slaidi oma ukse või käe Proctor
paberile oma nimi peal, kas sa ei taha olla meeskonna kapten,
Mis spordiala sa tahtsid teha ja mida Dorm sa olid sisse
See oli omamoodi vana kooli viis asju, ja see oli peamine
võimalus automatiseerida palju selles protsessis.
Sa lihtsalt minna veebilehele. Sa kirjutad midagi sisse
Sa saad e-postiga kinnituse ja buum, sa oled teinud.
>> See oli esimene asi, mida ma tegin, kuigi keeles nimetatakse Pearl,
aga see on suhteliselt lihtne teha PHP, ja see on omamoodi esindaja
probleemidest võite alustada lahendamine, kui saab ennast väljendada
programmiliselt ja ei pea lootma asju nagu Google sites
või Exceli või tööriistad, mida antakse teile.
Te nüüd on võimalus teha asju niimoodi.
See on super inetu versioon kujul,
kuid olgem lihtsalt kasutada seda vestluse alguses, kus see on
jämedalt mida vorm tundus aastat tagasi meie jaoks
võimaldada inimestel veebis sisse logida Frosh IEd.
Palusime nimi, ruut, kas nad tahtsid olla kapten,
mees või naine, ja mis siis Dorm nad olid,
ja siis nad seda vormi.
Olgem esimene pilk all kapuuts on HTML, mis tähistab seda kodulehte.
Lubage mul minna froshims0,
ja kui kõrvale, sest pset 7 Ma teen iseenesestmõistetavaks
kataloogid ja kaustu, et ma panen asjad sisse
Me sõelub täpselt, kus asjad on minna seade,
mis mod käsud pead käivitama, nii et ärge muretsege kõik
loll andmed sünkroniseerida sisse saada-minna siin.
>> Olgu, siin on froshims0.php.
Las ma kerin alla ja mis on uudishimulik siin,
see on PHP fail, kuid mis seal sees on see, selgelt?
See on kogu partii HTML, ja tõepoolest, PHP päritolu
tegelikult oli selle eest, et Web-kesksemaks keeles.
Hetk tagasi olime harjunud seda rakendada õlu näiteks
tingimused Näiteks tere näiteks ja see on hea.
Võite kasutada PHP skript keel
kus skript on tõesti ainult nomenklatuur anda kiire ja räpane programmi
või midagi et te kirjutate kirjutasid või üldisemalt tõlgendada keeles.
PHP on super kasulik, sest sa oled näinud, kui kiiresti
suhteliselt saame kokku klopsima programmid PHP.
Aga see oli tõesti mõeldud kasutamiseks veebis,
ja mõeldud Web selles mõttes, et märgata siin ülaosas faili
Ma algab <? Php.
Siis on mul hunnik kasutuid kommentaarid antud, kuid siis ma sulen PHP režiim.
Aga siis ma tilk HTML režiim.
>> Mis huvitav PHP on isegi fail lõpeb. PHP
see on üldiselt mõeldud samaaegselt segatud HTML,
mõned PHP koodi, mõned HTML.
Ja me näeme lõpuks, et saame alustada tease neile peale
ja hoida meie HTML eraldi meie PHP kokku,
kuid päritolu PHP tegelikult oli teile sellist paindlikkust,
et kui sa tahad HTML lihtsalt kirjutada, ja see on
sülitama identselt brauseris.
Aga kui teil on vaja mõningaid programmeerimise tehnikat,
mõned programmeerimine kood, võite panna see sama täpne faili, nagu me varsti näeme.
Siin on minu HTML.
Mul pealkiri seda Frosh IEd.
Mul body, kes on saanud mõned CSS peal keskele kõike keskel,
ja siis siin all on mul vorm, mis ilmselt saab olema esitatud
et uus fail nimega register0.php, nii et me näeme, et hetkel.
See on kasutades meetodit nimetatakse ametikohale, mis me tuleme tagasi ka.
Siis on mul mingid sisendid, üks nn nimi, mille tüüp on tekst,
kelle nimi on kapten, kelle tüüp on ruut,
ja see, mida me pole näinud seda enne, kuid see ei täpselt, mida ta ütleb.
Saad ruut asemel tekstikasti.
Alla siin on nupp, mis on üks neid ümmargusi nuppe
et saate valida kas see või et üks.
>> Teade see on tahtlik et ma andsin nii nööpe nimi sugu.
See, kuidas sa saad vastastikuse välistamise, mille te peate klikkima
kas see või et üks, ja klikkides muu
see eemaldab märke teiste, nii et teil on anda neile sama nime
kui te soovite neid üksteist välistavad sellist.
Ja siis Dorm, ma ei arva, et me oleme näinud seda veel, kuid see on vali menüüst rippmenüüst.
Silt, mis on vali.
Seejärel annab rippmenüüst nimi,
ja siis on terve hunnik neid võimalusi.
Esimene neist, ainult esteetika, on tühi string.
Tahtsin rippmenüüst olla tühi vaikimisi
ja siis seal on Apley, Canaday, Grays, ja nii edasi.
Ja märgata vastuolu siin.
Variant rippmenüüst on väärtus,
aga siis on inimsõbralik nimi, mis selles näites
on identsed, kuid kui me tõesti tahtis olla anal oleksime võinud
Selle väärtust rippmenüüst lihtsalt olla lühike variant,
Grays, kuid me võiks tõesti öelda Grays Hall, et inimese tegelikult ei näe,
aga see pole veel kõik, et huvitav, nii et ma lihtsalt hoida see lihtne ja tegi nad identsed.
Siis alumises otsas on meil submit nupp
mida me oleme näinud varem, kuid märkate Ma just andsin ta mõnda teist sõna.
Selle asemel, et CS50 otsing andsin silt "Registreeri".
>> Lõpptulemus on see veebileht siin, ja jälle,
kui ei see saa esitada?
Läheb esitatud mõne faili, hagihind atribuut,
mis oli register0.php.
Vaatame, mis tegelikult juhtub siin.
Lubage mul minna ja täitke see vorm, ütlevad David,
mees, Matthews, ja siis ma ütlen registreeru.
Lubage mul välja suumida ja klõpsake registreeru.
Okei, nii et selline kasutu, kuid vaatame, mis tegelikult toimub.
Pange tähele, et URL on muutunud olla register0.php.
Mis on kummaliselt äraolev link, kuigi, kuigi me lihtsalt esitatud kujul?
[Kuuldamatu õpilase vastus]
Okei, see on lihtsalt Chrome on kasutajasõbralik nendel päevadel.
See on tegelikult olemas. Nad lihtsalt peita, et säästa ruumi.
Aga hea mõte, hea mõte.
Poole teises otsas link, aga mis puudu on? Jah.
[Student] päringustringiga.
Stringi, nii meenutavad meie lihtne Google'i otsing näiteid.
Niipea kui ma vajutan nuppu Esita URL
Mul võttis Google, kuid siis oli? q = arvutiteadus või mis iganes mul oli kirjutatud sisse
Ongi, sest me kasutasime get meetodit otsing näide.
>> Seekord me kasutame millisel viisil selle asemel?
Postitus ja üks vahetus tunnustused
vahel GET ja POST on see, et postitus ei pane kasutaja sisend URL.
Ta peidab ta. See ikka saadab.
Tegelikult, mida me näeme brauseri siin, nagu me paljastada ühe hetkega
vaadates register0, on Ma lihtsalt nägemine sisu
Euroopa massiivi laekus brauseri server.
Aga link ei ole?, Ei ole mingit märksõnad
või väärtused, ja miks see nii on?
Noh, pärast saab veel esitada andmed vormi server,
kuid see ei pane see URL, nii millist teavet on postitus
eriti sobiv just siis, kui sa palud kasutajal
kirjuta sisendi kaudu?
Midagi parooli, midagi sellist, mida veel?
Krediitkaardi numbrit.
Midagi, mis on kergelt tundlik sa ilmselt ei taha sattuda URL
kui ainult, sest see tähendab, et teie toakaaslane või pereliige saab lihtsalt troll läbi
oma Interneti ajalugu ja siis sõna otseses mõttes näha oma paroole,
sõna otseses mõttes näha oma krediitkaardi numbreid, sest enamik brausereid
Jäta ajaloos iganes URLid olete olnud,
nii et kui ainult sest see oleks halb mõte.
Kasutades postitus peidab selle detaili kasutaja.
>> Samuti, kuidas sa upload photo Facebook?
Noh, ainult 2 mehhanisme saab tõesti kasutada,
kuigi seal on mõned muud veel kauge need on GET ja POST.
Kuidas sa üldse laadida foto URL-i kaudu?
Võite tegelikult teha.
Te võite võtta JPEG või bitmap või GIF ja saate esindavad kuueteistkümnendsüsteemis
või midagi, mida nimetatakse baas 64.
Selle asemel, base 16 te kasutate alus 64, mis sisuliselt näeb välja nagu
ASCII sümboleid, ja tegelikult võite laadida foto URL-i kaudu
pärast küsimärk, kuid on üldiselt suuruse piiranguid.
Enamik brausereid sundida URLid olla pikem kui 1000 tähemärki,
võibolla 2000 tähemärki vms, nii et sa ei saa üles laadida
10 MB Facebook foto.
Sest, et te kasutate postitus ka, nii et nüüd saad paneb URLi parameetrid,
mis on kena ja kasulik mõnikord, kuid midagi tundlik või suur
postitus on tee minna.
Mis on register0 tegelikult siin teed?
Noh, kui ma avada register0 teate, et see on super lihtne leht,
aga see näitab fakt, et saan koostööd segama, sest hea või halb,
HTML PHP.
Kogu see fail, välja arvatud märkused ülaosas, on HTML
välja arvatud see kutt siin.
>> Teade keset minu PHP koodi,
keset minu HTML, mul on omamoodi ajutiselt
sisestatud PHP režiim.
Ma helistan eriline funktsioon nimega prindi r.
See tähendab printida rekursiivne, ja mida ta teeb on see rekursiivselt prindib
mis iganes muutuja sa ulataksid see, semikoolon, väljumise PHP režiim.
Ja eelnevalt tag annab teile eelnevalt vormindatud teksti,
mono ruum teksti nii, et iga ruumi teil tegelikult näha.
See ei kao. Mis on ametikoht?
Noh, mida on huvitav ja kaalukad umbes PHP
on see, et iga kord, kui saadate vormi kasutades GET või POST
midagi, mis on esitatud teile brauseris
PHP ise nuputab, millised need põhiväärtus paari on,
arvud, kui seal on võrdne märgid, arvud, kui seal on küsimärk.
Ta teeb kõik raske töö teile, ja siis see annab sulle assotsiatiivne massiiv
sisaldavad kõike, mida kasutaja kirjutati kujul.
Noh, millistes valdkondades ei see vorm on?
>> See oli 4 väljad.
Üks oli tekstiväli nimega nimi.
Üks oli märkeruut nimega kapten.
Üks oli nupp nimega sugu,
ja üks oli rippmenüü nimega Dorm,
nii märkate, kui ma printida rekursiivselt
sisu see eriline muutuja.
See on eriline globaalse muutuja nimega sõna otseses mõttes $ _POST, kõik mütsid.
See on spetsiaalne globaalne muutuja, et PHP lihtsalt loob teile
ja käed sind nii, et saate juurdepääsu kõik
mis esitati kaudu kujul kasutaja.
Ja helistades prindi r it-te ei teeks seda tavapärast kohaldamist.
Me teeme seda kiigata selle muutuja,
ja mis seal sees on see, noh, 4 võtit,
4 http parameetrid, nii et rääkida,
nimi, kapten, soo, Dorm, ja siis väärtused, mida kasutaja
kirjutatus ühe erandiga.
Ma tegin tüüp D-V-I-D.
Ma kontrollisin kasti, aga meestele, kes ilmselt oli väärtus
vaid m olla ülevaatlik.
>> Kui ma valitud Matthews see on väärtus, mis sai valitud,
ja see üks on natuke rumal, aga see on konventsiooniga.
Kui ma olev kast, mille väärtus on edasi, "edasi" sai esitatud ruut.
Kui ma ei kontrollinud seda, ei ole väärtus oleks saatnud üldse.
See on lihtsalt annab meile ülevaate sellest, mis seal sees on see eriline globaalne muutuja,
ja see on nii eriline, et seda nimetatakse super globaalne muutuja.
See eksisteerib kõikjal teile jooksul oma koodi nii, et saate tegelikult seda kasutada.
See ei ole nii kaalukad, niiet tegelikult kasutada super maailma
ja tegelikult proovida registreerida keegi.
Aastal froshims1 ma lähen tegema üks muutus.
Ma muutun hagi register1.php,
ja ma teen veel üks asi.
Ma olin selline piinlik kvaliteeti minu veebilehele seal.
See on päris kole, ausalt, nii selgub
, mida saab kasutada väga lihtsalt veebis
teiste inimeste JavaScripti koodi, teiste inimeste CSS
et nad on kirjutatud ja avatud lähtekoodiga ning teha need kättesaadavaks raamatukogu
nii rääkida, ja näiteks siin ma kasutan vabalt kättesaadavad raamatukogu,
hunnik koodi, et keegi teine ​​kirjutas.
>> Twitter juhtus kirjutada seda koodi, ja seda nimetatakse bootstrap raamatukogu,
ja see on lihtsalt hunnik CSS stiili lehed, kamp. css failid
et keegi teine ​​kirjutas ja arvasin, kuidas saada kõik kena ja ilus
nii et meiesugused inimesed ei muretse veidi vähem umbes esteetika ja keskenduda palju rohkem
kohta loogika ja tegeliku programmeerimine.
Sidudes seda koos, et silt, mis on sama tag Ma kasutasin meelde styles3.css varem
Mul on nüüd juurdepääs faili nimega bootstrap.min.css.
Min lihtsalt tähendab, et nad pole minified seda ja nad pole saanud lahti kõik tühja ruumi ja nii edasi
lihtsalt veendumaks, et nad ei saada mulle enam baiti kui mul tegelikult vaja.
Aga seal on terve hunnik CSS, nii et kui ma nüüd avada versioon 1 Frosh IEd
märgata, et mu fail on kindlasti ilusam.
Nüüd on veel ainult must ja valge, kuid märkad, et lihtsalt kasutades oma laadilehe
ja kasutades teatud funktsioone see minu kujul see ei ole hämmastav,
aga see on kindlasti puhtam kui see oli enne, ja projektorit ei tee seda õiglust.
Seal on väike hall read ümber nuppe ja ümber tekstiväljale siin,
aga see on kindlasti puhtam kui see oli enne.
>> Nüüd, õigluse, ma ei pea muutma oma juurdehindlus natuke.
See on versioon 1 ja märkate, et olen kasutanud mõned uued märksõnad,
ja ausalt, mul polnud aimugi, kuidas seda teha kuni Lugesin dokumentatsiooni
jaoks Twitter bootstrap raamatukogu ja nad ütlesid mulle, kui soovite kasutada meie raamatukogu
kasutada fieldset element sees oma vormi,
pane sõna, mida soovite kuvada kõrval valdkonnas sees etikett tag,
siis anna oma panus nimi, just nagu enne,
ja siis kast, mitte ainult sa murrab ta etikett element,
sa kasutad midagi, mida nimetatakse klass, nii et me ei ole näinud seda enne,
kuid näete seda ühes pset 7 trussikutes.
Klassi CSS võimaldab teil teha midagi väga sarnane ID,
kuid enne kui meil oli ID sümboliga #
et oli ainult üks element.
Mis on ilus umbes klass on, et mitu elementi võib olla sama klassi
või sama CSS kraami kohaldatud sellele.
>> Aga jälle, rohkem nende lühikeses, ja ülejäänud on see lihtsalt kopeerida ja kleepida
nende dokumentide kus olen lisanud silt siin ja seal.
Ja lõpus, sest olen lisanud link sildi ülaosas,
kõik tundub ilusam automaatselt
lihtsalt, kes märkisid üles oma lehe nii, et
Twitter oodata, ja seal on nii palju erinevaid võimalusi
seda teha, ja see on tõepoolest väga asjakohane.
Sel hetkel semester, nagu näete pset 7 spec,
Google'i abil ringi, lugedes üles raamatukogud, kasutades teiste inimeste CSS
ja JavaScript, et lahendada kõrvalteenuste probleeme
probleemile seab endale kindlasti julgustada ja on tee
Web on ehitatud nendel päevadel, olles teiste inimeste õlgadele
nii et saab tõesti keskenduda uusi ja huvitavaid probleeme.
Kuid olgem nüüd keskenduda taas loogika.
>> See oli kiire ümbersõit esteetika lihtsalt näidata, mis suunas sa minna ei saa.
Ma lähen siis tagasi inetum üks nüüd lihtsalt sellepärast,
pole segavad Twitter kraami, ja lubage mul minna ja avada
froshims2, mis jällegi erineb ainult tegevus, register2.php,
ja võtame pilk mõju on siin.
Lubage mul minna ja kirjuta David.
Ma ei ole kapten seekord.
Ma ütlen mees, Matthews registrisse.
Kurat. Okei, see on kägardama minu poolt.
Valmis olla.
Register2, joon 22, kui tühi või-kahju.
Vaatame uuesti laadida.
Okei, peale selle ankeedi mis just juhtus?
Ma sisestasin David, kontrollis mees, klõpsatud Matthews registrisse.
Teie olete registreeritud. (Noh, tegelikult mitte.)
See on selgelt samm kaugemale lihtsalt printida sisu mõned muutuja,
kuid mida see fail tegelikult teeb?
Aastal register2.php
märgata, et mul on mõned uued koodid.
Toas minu body Mul on sisuliselt kui muud ehitamiseks,
aga kuna ma olen segunemine seda mõned HTML
Mul on siseneda ja väljuda PHP režiim edasi-tagasi, nii et vaatame, mida ma teen.
>> Esimesel real siin ma räägin siis, kui see on nii
et postitus super globaalse on tühi jaoks võti nimi,
ehk teisisõnu, kui kasutaja ei andnud mulle raha nime kujul,
siis tühi läheb tagasi true, sest väärtus on tühi.
Või-märkate vertikaaltulpade-kui sugu on tühi
sees selle erilise super globaalne, mis jällegi kujutab vormi sisu,
või Dorm on tühi, siis ma lähen edasi minna ja karjuda kasutaja.
Kuidas? Noh, teate ma ütlen peate oma nimi, sugu, ja Dorm.
Olgem tegelikult põhjustada seda viga.
Las ma lähen tagasi oma vormi. Lubage mul uuesti laadida selge see.
Ja ma lihtsalt annan neile Taaveti soost ja nad ei pea teadma, kus ma elan.
Registreeru. Ilmselt ma ei pea neile ütlema, kus ma elan.
Sa pead andma oma nimi, sugu ja Dorm. Mine tagasi.
>> Ja ma ei kliki, et minna tagasi, et vorm, kuid miks see nii on?
Noh, sel juhul nime ei ole tühi, kuid soolise oli ja Dorm oli,
Nii et kogu see väljend TRUE, ja kuigi süntaks on veidi uus,
jälle, me siseneme PHP režiim, tuttav kui avaldus,
kuid uus osa on siin just see koolon, ja mul oli silmamunad, jättes sulgudes
kogemata, kuid märgata koolon, ja see tähendab,
kuigi me väljumisel PHP režiim kõike
et järgmine tuleks sülitama muutmatult brauseri
kuni näed teine ​​plokk, nagu me siin teeme,
sel juhul sa peaksid selle asemel sülitas selle välja
kuni näete endif, nii et mõned veidi uus süntaks
mis võimaldab mul vahetada HTML ja PHP.
Me ei korista see ära lõpuks, kuid nüüd,
see on selline kaalukaid viis veakontroll kujul.
>> Nüüd, ma ütlen sa ei ole tõesti registreeritud, sest ilmselt oleme teinud midagi, kuid andmete
niiet tegelikult proovida teha midagi lahedat.
Aastal froshims3 ainus erinevus on, et ma lähen esitada register3,
nii HTML on sama.
Aastal register3 märka seda.
See üks on omamoodi seksikas.
Ülaosas ma kasutan Nõua avaldus, nii et see on nagu # include.
Seekord see ei ole stdio.h või midagi sellist.
See on PHP raamatukogu, ja see üks on nn PHPMailer.
Kuidas ma tean, et see hõlmaks just seda jutumärkides stringi?
Ma lugesin seda dokumentatsiooni, nii et kui nad ütlesid mulle panna see ülaosas faili
kui soovite kasutada spetsiaalset raamatukogu nimetatakse PHPMailer mis teeb mida ta ütleb.
See võimaldab teil saata e-posti kaudu PHP.
Vaatame nüüd kerige edasi.
>> Teade alustada Olen PHP režiim kogu see aeg,
nii nüüd märkate siia pärast importimist et raamatukogu
nii rääkida, ma teen mõned kontrollmehhanismid.
Kui see on nii, et nimi ei ole tühi
ja sugu ei ole tühi-märkate hüüumärgi-
ja Dorm ei ole tühi, siis kasutaja on loogiliselt täidetud vormi, vähemalt piisavalt.
Mind ei huvita, kas nad on laeva kapten või mitte. Ma pean lihtsalt oma nimi, sugu ja Dorm.
Kui nad on täis neid välja nii, et ükski neist väljadest on tühi
see on veidi uus süntaks.
PHP, nagu kõrvale, on objektorienteeritud programmeerimise keel
mida mõned kutid mäletate APC vms.
Praegu, kui võõras, lihtsalt tean, et kasutada selle raamatukogu
teil on kirjutada rida koodi niimoodi kasutades uut märksõna,
sõna otseses mõttes uue märksõna nimetatakse uus.
Aga pärast seda on meil mõned tuttavad süntaks.
See on nool operaator, mis on sarnane sellega, mida me kasutada structs kontekstis suunanäitajaks.
Sest täna PHP ei ole viiteid,
kuid tean nüüd, et sees posti muutuja
on sisuliselt selline viit erialaraamatukogu
et keegi teine ​​kirjutas, ja kui ma tahan pääseda erifunktsiooni
sees, et raamatukogu ma, nagu C, kasutage nool operaator,
kuigi need ei ole tegelikult suunanäitajaks.
See on omamoodi PHP enda versioon sellest.
See tähendab, minna raamatukokku ja helistada IsSMTP funktsioon.
SMTP, mäletate, meie Warriors of the Net viitab meili,
ja see tähendab lihtsalt kasutada e-posti server selle Frosh IEd registreerimist.
>> Mis vastuvõtva ma tahan kasutada?
Noh, Harvard, kui te Google'i ümber, on talle server nimega smtp.fas.harvard.edu.
Kui sa mängid koos kodus või sa elad Comcast võrgustik
see võiks olla midagi smtp.comcast.net.
See täiesti oleneb kus sa elad ja kes teie ISP on.
Pärast seda ma pöörasin oma hinne aadress meelevaldselt olla jharvard@cs50.net.
Ma siis lähen seada tegeleda olema jharvard@cs50.net.
Ainus viis Teadsin, et need funktsioonid olid kutsutud SetFrom ja AddAddress
on jällegi lugesin dokumentatsioon.
See ei ole mingi ime läbi teada, et kõik programmeerijad.
Siis seadsin suhtes "registreerimist."
Ja nüüd see rida on natuke inetu, sest mida see dot operaator tähendab PHP?
Keegi teab?
CONCATENATE.
Kui c on valu kaela concatenate 2 strings koos.
Sa pead tegelema malloc või RealLOC või kõik see kraam
lihtsalt laiendada pikkus string.
PHP, JavaScript ja teistes keeltes
tavaliselt saab seda teha ühe märgi.
Sel juhul dot tähendab seda stringi siin
ja lisab ta seda stringi.
>> Oh, ja muide, lisab ta seda stringi,
mis juhtub olema muutuja sees, et super maailma.
Siis lisab ta uue liini, nii et kõik need täpid tähenda ainult
hoida muutes suuremaks ja suuremaks stringi,
ja sa ei pea hooli üldse umbes malloc vms keeles niimoodi,
ja seal on muid võimalusi seda teha, kuid see on üks kiiremaid
kuidas panna see välja.
Mis on selle teed?
See loob talle keha, mis läheb öelda Nimi: Kapten: Sugu: Dorm:
kõik eraldi ridadel ja seejärel lõpuks
üks rida koodi, ja ma lähen ignoreerib seda nüüd.
Kui == false tähendab lihtsalt, kui midagi läks valesti,
kuid magic juhtub siin.
Mail Saada tähendab Kirjuta selle e.
Vaatame, mida Lõpptulemusena.
Allosas faili, märkate, et see saab öelda olete registreeritud tõesti
kui ma saan nii kaugele.
Kui aga kasutaja kruvid üles, märkate, et me alustasime seda
kui tingimus siin, kui see ei ole tühi ja ei ole tühi
ja ei tühjenda saadame postiga.
Muidu me ei kavatse saata see rida koodi,
mis läheb on mõju, nagu näete pset 7, suunates kasutaja
tagasi sinna, kust nad tulid, froshims3.php.
>> Pöialt, muidu see saab olema kõige suurema pettumuse demo täna.
Läheb lahti.
Lubage mul avada minu e-postkasti jaoks jharvard Gmaili.
No e-posti kohe. Hea küll.
Nüüd lubage mul avada froshims3, mis on kolmas ja viimane näide me vaatame siin.
Okei, siin me läheme.
Nate, temast saab kapten, mees,, ütleme, Apley.
Registreeru. Okei, olete registreeritud tõesti.
Nüüd, kui ma leidke üle minu e-posti, oh, mu jumal.
Olen just dünaamiliselt saatis talle veebis.
>> Jätame selle teadmiseks.
Video on eelseisvate jaoks loengu me vastamata. Näeme järgmisel nädalal.
[CS50.TV]