[Powered by Google Translate] [Linggo 8]
[David J Malan] [Harvard University]
[Ito ay CS50.] [CS50.TV]
>> Maligayang pagbabalik.
Ito ay CS50, at ito ay ang simula ng linggo 8.
Ang ilang mga pagkakataon sa linggong ito,
kasama ng mga ito ang talk dito, sa kung saan ang pagkain ilang ay inihatid.
Para sa higit pang mga detalye tingnan ang mga slide na online.
At din isa pang kaganapan sa linggong ito sa pamamagitan ng aming sariling Thomas Carriero.
Siya ay isa sa mga dating Fellows ng ulo ng CS50 pagtuturo na ngayon sa Dropbox,
at siya ang taong baluktot sa amin na may alam mo kung ano ang,
kaya kung gusto mong higit pa sa na ulo sa kanilang talk hapon na ito para sa Dropbox at higit pa.
CS50 tanghalian ito Biyernes.
Gawin sumali sa amin kung ikaw ay magagawang, 1:15, gaya ng dati, sa Sunog at Yelo.
>> At ngayon namin sumisid sa isang bagay na tinatawag Seminar.
Aming CS50 mga Seminar, manariwa sa diwa, ang mga opsyonal na mga klase na pinangunahan ng mga Fellows pagtuturo
at kurso assistants at mga kaibigan ng mga kurso,
mga tao mula sa isang grupo sa campus na tinatawag ABCD, kung saan ay isang pangkat ng mga
mga technophiles sa campus, pati na rin ang isang grupo na tinatawag na HCS,
Harvard Computer Society, undergraduates na katulad interesado sa computing.
Kasama sa roster ito taon ng seminar ng mga seminar sa Android at iOS at JavaScript
at PHP, Unix, Vim, at marami pang iba, kaya Napagtanto na mga seminar na ito ay paparating na.
Kung nais mong mag-RSVP para sa anuman sa mga ito magtungo sa URL na iyon doon.
Kami ay mag-post sa website ng kurso ang mga oras at lugar sa sandaling ito ay tinatapos.
Ngunit alam ng may 5 taon halaga ng mga naunang seminar na magagamit online,
marami sa mga ito ay pa rin napaka kasalukuyang sa mga tuntunin ng teknolohiya maaari mo
gusto upang i-play para sa iyong huling proyekto, kaya magtungo doon para sa ilang magagamit na mga video nito.
>> CSS, mga mo na pamilyar sa CSS na,
ano ito sa maikling sabi?
Ano ang CSS?
Ito ay cascading mga style sheet, at kung ano ang na ibig sabihin nito?
Ano ang na gawin para sa amin, CSS?
Karapatan lahat, sabihin magpainit na may mas madaling isa, HTML, hypertext markup language.
Ano ang na gawin para sa amin?
Sinuman sa lahat?
Nakakakuha ito ng talagang mahirap ng pagtatanong sa mga tanong na ito.
HTML, hypertext markup language.
Oo? Hindi?
[Hindi marinig na mag-aaral ng tugon]
Okay, magandang, ito ay nagbibigay-daan sa amin upang markahan up teksto upang ipakita sa isang web browser.
Ito ay hindi isang programming language.
Ito ay sa katunayan ng isang markup language, na nangangahulugan na tagubilin sa browser kung paano ipapakita
impormasyon, upang ang pinakasimpleng pagkakatawang-tao ng mga ito bilang namin ang nakita
ay isang bagay na sobrang simpleng tulad boldfacing, bukas bracket bracket b closed sabi
gawing bold ang text na ito, at na aktwal na isa lamang sa maraming paraan
kung saan maaari naming gawin iyon, at sa katunayan, ang mga araw na ito ng isang mas mahusay na diskarte
sa stylizing iyong web page, paggawa ng mga bagay na naka-bold at italics
at gitna at nabigyang-katarungan at ang tulad, ay hindi ginawa sa pamamagitan ng mga tag na HTML nag-iisa
ngunit sa halip na may isang diskarte na tinatawag na CSS, cascading ang mga style sheet.
Ito ay isang wika unto mismo.
Ito masyadong ay hindi isang programming language ngunit-
lahat, ito ay Dan, na mapigil ang pagsali sa amin ngayon.
Ilang mga teknikal na problema. Hindi problema.
>> CSS ay nagbibigay-daan sa amin upang stylize isang pahina
sa pamamagitan ng pagtatakda ng kung ano ay tinatawag na mga katangian, kaya sabihin tingnan sa
sa pamamagitan ng paraan ng ilang mga pangunahing mga halimbawa.
Hayaan akong pumunta sa appliance ngayon.
Ko ang pinagmulan 8 Lunes direktoryo in dito,
at ako pagpunta sa pumunta sa isang direktoryo na tinatawag na CSS kung saan mayroon kaming isang buong bungkos
ng mga file na naghihintay para sa amin dito mismo,
at sa folder na ito na mayroon kami, halimbawa, search0.html mula sa huling beses.
Ngayon, isipin ang may search0 iniwanan namin sa talang ito
sa pamamagitan ng uri ng pagpapatupad ng Google o talaga lang sa front end para sa ito sa isang linggo o kaya ang nakalipas,
at mapansin na nagkaroon kami ng ilang mga bagong tag doon.
Nagkaroon kami h1 para sa isang malaking, bold heading,
form, na pinapayagan aktwal amin upang magkaroon ng isang HTML form para sa input ng user.
Aksyon, ano ang kahulugan ng isang katangian ng pagkilos
sa tag na HTML form?
Ano ang kahulugan ng mga ito, pagkilos?
Lamang ko makikita gawin ito ngayon.
Aksyon ang destination kung saan ang form ay pagpunta sa isumite.
Ang katotohanan na na nagsasabing action = "google.com / search"
nangangahulugan na kapag ang user ay nag-click ang isumite ang pindutan o ang katumbas
anumang form na mga patlang na sila napunan ang pagpunta sa hindi na ipinadala sa aming server
o aming appliance ngunit sa halip na tukoy na URL sa Google.
At ang paraan na ito ay pagpunta sa gamitin ay tinatawag na makakuha ng,
at kumuha, sa ngayon, ay isang diskarte para sa pagpasa ng impormasyon sa kahabaan sa isang server ng web
sa pamamagitan ng paraan ng URL, kaya sabihin tumagal ng isang mabilis na pagtingin bumalik sa kung paano ito gumagana.
>> Pansinin na mayroong isang input na ang pangalan ay q
na uri ng teksto at pagkatapos ay pangalawang input ng uri isumite
na ang halaga ay CS50 Paghahanap, at sa katunayan, kung namin buksan ang file na ito dito,
search0.html, ito ay isang napaka-simpleng form,
at kung ako sa paghahanap para sa isang bagay tulad ng computer science
at pagkatapos ay pindutin ang enter o mag-click sa CS50 Paghahanap
mapapansin na kung ano ang mangyayari ay higit pa sa pagkuha sa Google
Partikular ko na natapos sa URL na ito sa tuktok,
google.com / search? q = computer na + agham,
at computer science ay malinaw naman kung ano ang ako-type.
+ Ang ibig sabihin nito ay kung saan ang isang puwang ng character,
at tapos na ito ng browser upang matiyak na walang
pagkalito at puting espasyo sa aktwal na URL.
At pagkatapos q, siyempre, ay ang pangalan ng parameter.
Hindi namin nakita kung paano namin, ang programmer, maaari aktwal na ma-access ang q pa.
Maaari naming ipagpalagay na alam ng Google kung ano ang gagawin na ito dito,
ngunit namin doon sa angkop na panahon ngayon.
>> Ngunit ipaalam sa akin kumuha ng hitsura sa halip sa search1.html,
na kamukha ng kaunti ibang dahil ako ay nagpasya na ang form na ito dito sandali lang pilay.
Ibig kong sabihin, sa kaliwang tuktok.
Mayroon talagang walang aesthetics dito, at kaya gusto kong stylize ito
ng kaunti pa tulad ng Google, na kung saan ang homepage, manariwa sa diwa,
kahit na hindi ka maaaring bisitahin ang mga ito na madalas, ganito ang hitsura ngayon sa Halloween.
Kung sa halip namin buksan bersyon 1 ng ang file na ito, paghahanap 1.html, ko ang gitna nito.
Pa rin medyo pangit, ngunit hindi bababa sa ngayon ko na nagsimula upang kontrolin ang mga aesthetics ng pahinang ito,
hindi lamang ang pagmamarka up nito.
Natin tingnan sa paghahanap 1, at may talagang lamang ng isang pagkakaiba dito,
na maaaring tumalon sa iyo, o maaaring hindi,
ngunit kung ano ang isang linya o snippet ng pagkakaiba?
>> May ito estilo attribute, kaya ito lumiliko out na sa HTML
karamihan ng mga elemento, karamihan ng mga tag ay maaaring magkaroon ng isang estilo katangian sa kanila,
at sa loob ng estilo na attribute ay isang naka-quote na string,
at na naka-quote na string ang CSS.
Maaari mong ilagay ang cascading style sheet doon
sa pamamagitan ng pagtukoy sa mga ito bilang isang pangalan ng ari-arian
sinundan sa pamamagitan ng isang tutuldok na sinusundan ng isang halaga.
Ito ay uri ng isang kapus-palad na desisyon ng disenyo ilang taon na ang nakakaraan
na CSS ay isang wika unto mismo,
ngunit syntactically ito ay masyadong iba mula sa HTML.
Sa kasong ito, nakita namin na sa loob ng aking mga webpage, na nakasulat sa HTML,
Mayroon akong CSS sa loob ng mga quote, at ang convention para sa CSS
na mayroon kang kung ano ang tinatawag na isang pag-aari na sinundan ng, muli, ng tutuldok,
sinundan sa pamamagitan ng ang halaga ng ari-arian na, kaya walang katumbas sign.
Walang karagdagang mga quote.
Lang ito tutuldok na pinaghiwalay key pares ng halaga,
at linya ng teksto ginagawa ng eksakto kung ano ang sinasabi nito.
Ito aligns ang teksto sa katawan ng pahina, na talaga ang mga bayag ng pahina,
sa gitna.
>> Okay, ang resulta pagkatapos, na malinaw, ito.
Hindi lahat ng na sexier, ngunit hindi bababa sa ito ay nakasentro at ng kaunti pa tulad ng sa totoong Google.
Ngunit ano kung ako sa halip buksan ang bersyon 2 ng ito
at ituro pababa dito ng bagong tag sa kabuuan?
Ngayon sa head ng aking pahina, na dati lamang nagkaroon na tag
sa lahat ng naunang mga halimbawa?
Ito lamang ay may ito, ang pamagat.
Isang sandali ang nakalipas sa head tag tumingin tulad nito.
Ngayon sa halip ito ay isang estilo sa loob ng tag ng,
at ito ay masyadong, humihingi ako ng paumanhin, syntactically mukhang ibang-iba mula sa HTML,
ngunit masanay dito, kung saan sa loob ng tag ng estilo
Maaari ko ngayon salik kung ano ng ilang sandali ang nakalipas
isang katangian, ang estilo ng katangian, at ako ay maaaring ilagay ang mga ito sa pinakatuktok ng aking pahina.
>> Bakit?
Well, ito ay isang hakbang patungo sa paglilinis ng mga bagay hanggang, halos tulad sa pagsusulat ng C code
namin minsan magsulat ng mga-andar upang salik ang mga karaniwang pag-andar.
Ito ay isang maliit na cleaner upang simulan ang factoring ang mga bagay tulad ng aesthetics
sa isang pangunahing lokasyon sa halip ng pagkakaroon nito lahat ng makalat sa buong iyong HTML.
Ito masyadong ginagawa kung ano ang sinasabi nito, kahit na may isang bit ng mga bagong syntax.
Ito dito ay isang tagapili, at katawan lang ang ibig sabihin nito ay piliin ang elemento ng katawan
at ilapat ang mga sumusunod na mga katangian nito.
Well, ari-arian ay eksaktong kapareho.
Para sa magandang panukalang Nagdagdag ako ng semicolon sa dulo,
na may kaugaliang convention, at balot ko ang buong ari-arian na ito
sa kulot tirante dahil maaari kong aktwal magkaroon ng iba't ibang mga bagay dito.
Maaaring aktwal ko sabihin ng isang bagay tulad ng kulay: asul;
>> Ngayon ito ay hindi masyadong pagpunta sa isang hakbang patungo sa anumang lahat na prettier,
ngunit kung ako ngayon bumalik sa bersyon 2 ko ang hindi bababa sa ngayon ang katawan ng aking
teksto na pahina sa lahat ng asul.
Ang pindutan ay nananatiling pareho dahil na isang input. Ito ay hindi purong teksto.
Ngunit ang lahat ng iba pa na teksto, tulad ng CS50 Paghahanap up itaas, sa katunayan asul.
Muli, ang lahat ng tapos kami na ngayon ay alisin mula sa tag ng katawan, paunawa,
ang estilo na katangian, at kami nag isinasali ito dito.
Ito ay hindi isang malaking pagpapabuti, ngunit kung namin ito isang hakbang karagdagang
mapansin kung ano ang maaari naming gawin sa ikatlong bersyon dito.
>> Sa search3.html webpage ay halos magkakahawig
maliban para sa kung ano ngayon ang bagong tag?
Link, kaya ito ay hindi masyadong aptly na may pangalang
dahil hindi nagli-link ka sa kamalayan ng isang naki-click na hyperlink.
Sa halip, ikaw ay uri ng ginagawa ang katumbas ng # include sa C
kung saan ang link tag na may isang katangian ng href
at rel attribute ay nagsasabing sige
at ang kopya i-paste ang mga nilalaman ng isang file na tinatawag search3.css dito mismo, mahalagang.
Mukhang hindi ito gawin iyon, ngunit na ang espiritu ng.
Nagsasabing pumunta bukas na file, search3.css,
at ituring ito na parang ang user ay nai-type ito dito mismo sa head ng pahina
tulad na aking ginawa sa nakaraang halimbawa.
Search3.css, samantala, ay medyo simple.
Talagang lamang naglalaman ng eksakto kung ano ang isang sandali ang nakalipas
sa estilo ng tag, ngunit nag ko isinasali ito dito sa sarili nitong file.
>> Kahit na hindi namin na ginugol karaming oras sa lahat sa HTML o web programming
lamang intuitively kung ano ang pagganyak, marahil, para sa factoring out
ito maliit na snippet kahit ng CSS sa sarili nitong file
at pagkatapos ay kabilang sa mga ito na may link ang tag na ito dito?
[Hindi marinig na mag-aaral ng tugon]
Okay, ito ay mas madaling basahin sa kamalayan na mayroon kang ang iyong CSS sa isang file ng CSS.
Mayroon kang ang iyong HTML sa iyong HTML file, kaya mas nababasa sa na kahulugan.
Ano pa ang maaaring Nakakamangha? Oo.
[Hindi marinig na mag-aaral ng tugon]
Oo, kaya maaari mong isama ito maraming beses, kaya ngayon kami ay ginagawa ang mga
pangunahing halimbawa na may mga indibidwal na mga file, ngunit ipagpalagay aktwal na nagsasagawa ka ng
isang tunay na website tulad ng sa iyo ay para sa pset 7 o ang iyong huling proyekto marahil,
at gusto mong magkaroon ng maramihang mga webpage, tulad ng tiyak na karaniwang sa
ang aktwal na World Wide Web, at ito ay ang uri ng pilay
upang kopyahin at i-paste ang parehong kulay bughaw
at ang parehong teksto na nakahanay sentro sa bawat isa sa mga pahinang iyon.
Sa halip ito ay ginagawang higit pang kahulugan sa salik ang, halos tulad kami na ginawa sa C
sa mga file na. h, ilagay ang mga ito sa isang gitnang lugar,
sa kasong ito search3.css, at pagkatapos ay payagan ang anumang file
sa iyong website upang isama ang aktwal na file sa pamamagitan ng tag na ito sa dito sa linya 16.
Bilang ay karaniwang ang kaso, nagsimula kaming may bersyong 0, kung aling uri ng mga gawa
ngunit hindi kinakailangan ang pinakamahusay na, at sa bawat hakbang,
paghahanap 1, paghahanap 2, at ngayon sa paghahanap 3 nagsagawa kami ng mga hakbang na sanggol
patungo sa mga disenyo na isang maliit na mas malinis at mas paghahanda
para sa mga mas kumplikadong mga pahina na maaari naming gawin kalsada.
>> Hayaan akong buksan up ng isang huling halimbawa dito lamang upang ipakita
isang mas inilarawan sa pangkinaugalian pahina, ngunit unang tingnan natin sa HTML.
Ito ay ng search4.html, at mapansin na structurally ito ay halos ang parehong
maliban para sa pagpapakilala ng bagong tag, div.
Div ay isang tag na introduces isang sangay ng pahina.
Maaari mong isipin na ito bilang isang invisible na parihaba.
Ito uri ng lumilikha ng isang swath ng lugar sa webpage
na maaari mong stylize nang sabay-sabay.
Ano ang nagawa ko na dito ay ang mga sumusunod.
Sa loob ng aking katawan tag, na kung saan ay doon lahat kasama,
Ako sinasabi na lumikha ng isang sangay ng pahina dito sa pamamagitan ng linya 45 sa pamamagitan ng 47,
at nangangahulugan iyon na mahalagang ninyo ako ng isang invisible na parihaba sa tuktok ng pahina.
Pagkatapos akong bigyan ng pangalawang parihaba, kahit na hindi nakikita, sa ibaba na,
at kilalanin ang mga ito sa pamamagitan ng pangalan ng nilalaman, at pagkatapos ay sa wakas,
bigyan ako ng third division ng pahina sa ibaba
tinatawag na ID.
Susubukan naming makita kung bakit nagawa ko na ito sa sandali lamang,
ngunit conceptually Mayroon akong isang header division.
Mayroon akong isang dibisyon ng nilalaman, at mayroon akong isang footer division ng pahina
kahit na ito ay lamang sa markup.
Ang user ay hindi pagpunta upang makita ang 3 parihaba,
ngunit uri ng structurally doon sa likod ng mga eksena
hindi sila aktwal na kasalukuyan.
>> Ngayon, na nagmamalasakit? Bakit aktwal na gawin ito?
Katulad ng nasaksihan namin bago ang lahat ng iba pa sa pahina.
Narito ang aking anyo. Narito ang aking input, ang aking input, isang line break at iba pa.
Narito ang isang imahe, bagaman, kaya ipapakita namin makita kung saan ito ay dumating mula sa sandali lamang.
Narito ang isang footer, na bagong, dahil lamang Nais kong upang ipakilala
ilang higit pang nilalaman dito.
Kung mag-scroll up namin mapapansin na ang ID ng div na ito ay header.
Ang ID ng div na ito ay nilalaman, at ang ID ng isang ito ay footer.
At ng pangalan ay nagmumungkahi, kapag mayroon kang isang ID ng katangian
sa HTML, sa pamamagitan ng kahulugan dapat itong makilala
isa ng ang mga elemento, isa ng ang mga tag sa iyong pahina.
Pasanin ay lubos sa iyo tandaan na mayroon kang isang header ID na.
Mayroon ka ng isang footer. Mayroon kang ID ng nilalaman na.
Ang computer ay hindi pagpunta upang malaman kung ano ang isang magagamit na ID para sa iyo,
kaya maaaring hindi mo sinasadyang bigyan 2 tag isang ID ng header,
at na nais lamang mali.
>> Mayroon kang na dapat tandaan kung ano ang iyong nilikha,
ngunit sa sandaling nagawa mo na ang paunawa kung ano ang maaari naming gawin dito.
Ko na ngayong tukuyin sa aking tag ng estilo sa tuktok
o equivalently sa aking CSS file, kung pa rin ako gamit ang bersyon na iyon,
Maaari kong sabihin # header, at kung ano ang nangangahulugan iyon ay na kung ano ang tag
sa webpage na ito ay may ID ng header
at ang #, sa pamamagitan ng tao na convention, kumakatawan ID.
Ang matalim sign o pound sign kumakatawan ID.
Header ay ang pangalan na ibinigay ko ito.
Ang ibig sabihin nito ay ilapat ito ari-arian ng CSS
sa anumang tag sa pahinang ito bear isang ID ng header.
Parehong deal dito.
Ilapat ang property na ito, na ang mangyayari sa parehong, sa anumang elemento
na ang ID ay nilalaman, at pagkatapos ay down na dito
mapansin Nakatanggap ako ng kaunti may interes may footer.
Anumang elemento na ang ID ay footer, na kung saan maaaring maging isa lamang sa pamamagitan ng kahulugan,
sige at ang laki ng font nito mas maliit,
nito font timbang bold, nito margin 20 pixels.
>> Ano ang na ibig sabihin nito?
Lang ng margin sa sa itaas, sa ibaba, at sa kaliwa at kanan.
Ang ibig sabihin nito ay ninyo ako ng 20-pixel invisible margin sa paligid nito
lamang itulak ang lahat ng iba pa ang layo mula dito nang kaunti, tulad ng maaari mong gawin sa Salita,
Microsoft Word o Mga Pahina o tulad ng.
At pagkatapos teksto ihanay center.
Natin makita ang mga resulta ng pagtatapos, at pagkatapos ay magpapadala kami bumalik sa isang natitirang snippet ng CSS doon.
Ito ay bersyon 4, ang aming huling para sa mga halimbawa ng paghahanap, at kung magkano, magkano sexier.
Ngayon, sa pagkamakatarungan, ko lang Googled "google logo generator font."
At na pinapayagan sa akin upang lumikha ng isang GIF, isang format ng imahe, na kamukha na may.
Sa katunayan, maaari mong gawin ito masyadong.
Mayroon kaming "google logo generator font."
>> Natin makita kung ang maaari naming gawin ito.
Okay, sa tingin ko ito ay ang website na ginamit ko.
Maaari naming sabihin EC 10, halimbawa, at gumawa ng mga ito sa kanilang sariling.
Maaari mong i-play na ito buong araw ang haba at pagkatapos ay i-right click dito
at pagkatapos ay i-download ang aktwal na GIF, na sa lahat na aking ginawa.
At sa katunayan, na ang dahilan kung bakit sa aking HTML, isipin ang, sa paglipas dito
Ko ay may isang imahe tag, na kung saan nakita namin maikling noong nakaraang linggo
na pinagmulan ay logo.gif.
At kung ano muli ang pagganyak para sa pagkakaroon ng alt attribute na ito,
ito alternatibong attribute?
Oo.
[Hindi marinig na mag-aaral ng tugon]
Mabuti, kaya 2 dahilan talaga, kung ang browser ay hindi maaaring hilahin ang imahe
dahil mayroon kang isang mabagal na koneksyon sa network o Nasira ang imahe ay
o isang bagay tulad na hindi bababa sa tao ang maaaring makakita ng "CS50 paghahanap,"
at pagkatapos din para sa accessibility dahilan.
Kung mayroon ka ng isang user na bulag at ay gumagamit ng screen reader
at samakatuwid ay malinaw naman ay hindi maaaring makita ang mga imahe na maaari nila ng hindi bababa sa
marinig ang teksto kung ang kanilang mga computer na nagsasalita sa kanila.
>> Sa pangkalahatan, ito ay pinakamahusay na pagsasanay pagdating sa accessibility ng mga pahina
sa gayon ay kahit na gumagamit sa sitwasyon na marinig o tingnan, kaya na magsalita,
kung ano ang ito ay na sa iyong pahina.
May isa pang bagay na ginawa ko dito
na ng kaunti kawili-wili, at makikita namin makita ang higit pa tungkol dito sa problema na magtakda ng 7
sa pamamagitan ng isa ng shorts na pinangunahan ng isa sa mga Fellows pagtuturo.
Subalit # nilalaman ay tumutukoy sa ang tag
na ID ng nilalaman, ngunit pagkatapos ay mayroong isang puwang ng character, at pagkatapos ay may input ang salitang.
Well, kung ano ang kawili-wiling tungkol sa CSS na maaari mong
sumangguni sa mga tag sa isang pahina ng uri ng hierarchically,
at kung ano ang snippet ng CSS ay nangangahulugan hanapin ang tag
na ID ng nilalaman, at pagkatapos ay ilapat ang mga sumusunod na mga katangian ng
sa lahat ng ang mga tag ng input na descendents ng nilalaman,
iyon na naka-indent sa loob nito.
Indentation, muli, ay mahalaga lamang sa computer, hindi sa tao,
ngunit sa pamamagitan ng convention indent ng namin ang mga bagay bilang pumunta kami ng mas malalim sa isang pahina,
kaya ang ibig sabihin nito ay ilapat ang isang margin ng 5 pixel sa anumang elemento ng input
na ang isang lugar sa loob ng o nested sa loob ng
ang elemento na ang ID ay nilalaman.
>> Sino ang na nalalapat sa?
Well, may aktwal na lamang ang 2 guys dito.
Pansinin na sa loob ng form may 2 input,
bilang mayroong para sa lahat ng mga halimbawa.
Ngunit paunawa na mga 2 input mangyayari sa nested sa loob,
kahit na isang maliit na malalim, ng ilang mga layer ng indentation,
sa loob ng tag na ang ID ay nilalaman.
Ano ang ibig sabihin nito?
Kung pumunta kami sa browser dito maaari mong makita ang napaka bahagyang-
hayaan mo akong mag-zoom in-na doon ay isang bit ng padding sa pagitan ng pindutan
at sa pagitan ng mga patlang ng teksto.
>> Hayaan akong pansamantalang i na off.
Hayaan akong pumunta hanggang sa aking CSS, at ipaalam sa akin sige at
baguhin ang margin mula sa 5 pixel 0 pixels.
Ipaalam sa akin magpatuloy pagkatapos at i-save ang file, pumunta pabalik sa search engine
at i-reload, at panoorin ang gitna ng pahina.
Lahat Nakakuha naka-compress na sama-sama, at kapag ako ay nag-unang whipped halimbawang ito
Naisip ko na mukhang bobo sa patlang ng teksto at pagkatapos ay ang pindutan agad sa ibaba nito.
Nais kong sa pad ng kaunti, kaya ipinakilala ko margin.
Ano ang hindi namin gawin sa panayam ay pumunta sa pamamagitan ng ilang dosena
CSS mga katangian na umiiral dahil, muli, may mga bagay na tulad ng laki ng font,
bigat ng font, margin, teksto ihanay, at ilang dosenang iba,
at kami na sumangguni ka sa problema ang 7 sa iba't-ibang mga tutorial online
at mga reference na nagbibigay-daan sa iyo upang pumili ng mga bagay na ito.
Ngunit ano ang talagang mahalaga sa pagtatapos ng araw
>> ay upang maunawaan kung paano ang mga bagay na ito ay inilapat.
Muli, kung kami ay may sa loob ng estilo tag ng
maaaring pumunta ang tagapili, ang uri ng mga kumikilala sa na tumutukoy
sa kanino ang gusto mong ilapat ang mga pag-aari,
at pagkatapos ay inilagay mo ang mga katangian bilang key halaga pares
na pinaghiwalay ng isang tutuldok at pagkatapos ay natapos na may semicolon,
o maaari mong punitin ang lahat ng na out at ilagay ang mga ito sa isang hiwalay na CSS file
unto mismo.
Lahat ng karapatan, anumang mga katanungan sa konsepto
o ang malaking larawan ng CSS?
Ka na muling makita ang higit pa ito sa pset 7,
ngunit itinatago namin ito pangkalahatan ay medyo simple.
Hindi? Ayos lang.
Ito ay oras para sa isang aktwal na wika ng programming,
at kami na bumalik sa isang kaunti ng CSS sa form ng isang halimbawa.
PHP ay talagang isang kamangha-mangha na naa-access na wika
na ito ay syntactically halos katumbas C.
Sa ibang salita, kung alam mo ang C, alam mo para sa pinaka-bahagi PHP,
hindi bababa sa syntactically, kahit na may ilang mga bagong tampok
at ilang mga bagong konsepto na makikita namin upang tumingin sa.
>> Ngunit para sa pinaka-bahagi, ngayon na namin ang paglipat mula sa C sa PHP
karamihan ng bagong bagay-bagay talaga sa malaking larawan,
kung paano mo ginagamit ang isang wika sa programa sa Web kumpara sa
sa command line o sa isang kumikislap prompt bilang namin ang paggawa sa gayon ay malayo.
Para sa sanggunian, lalo na pset 7 at ang panghuling proyekto pasulong,
huwag samantalahin ng ang URL na ito dito kung nais mong upang basahin sa formalities ng PHP.
Aktwal na ito ng isang libreng online na aklat-aralin epektibo,
at makikita mo rin makita na kung ano ang talagang magaling tungkol sa PHP
na may mga daan-daang mga function na ay may ito,
samantalang sa C hindi mo kinakailangang magkaroon ng access sa
higit pang mga function kaysa sa library ng matematika, CS50 library.
Sa PHP at ng maraming modernong mga wika, Python at Ruby kasama ng mga ito,
makakakuha ka ng access sa mga kaya maraming iba pang mga pag-andar, na nangangahulugan na sa iyo na magsulat
ng maraming mas code dahil maaari mong tumayo sa balikat ng ibang tao
na na nakasulat na ang ilang mga bagay para sa iyo.
>> Natin gumawa ng isang mabilis na tour ng syntax ng PHP at pagkatapos ay magsulat ng ilang mga halimbawa.
Ano ang magaling tungkol sa PHP unang at pinakamagaling
ay hindi pangunahing function na.
Kung nais mong magsulat ng isang programa sa PHP mo lamang simulan ang pagsusulat ng code,
at hindi mo na kailangang mag-alala tungkol sa pangunahing.
Mayroong ang walang int. Mayroong ang walang return.
Walang argv, argc na kinakailangan kapag sumulat sa programa.
Sa halip maaari mo lamang simulan ang pagsusulat ng code, at ito ay bahagi
dahil ang PHP ay kung ano ang tinatawag na isang kahulugan wika.
C ay pinagsama-sama, at ito ay pinagsama-sama sa kamalayan na simulan mo
may source code, patakbuhin ang mga ito sa pamamagitan ng kumalatong, na kung saan ay isang tagatala,
at kalaunan makalipas ang ilang bilang ng mga hakbang na makakakuha ka ng code ng bagay, 0s at 1s.
PHP at Python at Ruby at Pearl at iba
mga iba't ibang mga uri ng mga wika na hindi mo ipunin ang mga ito.
Hindi ka pumunta mula sa source code sa 0s at 1s.
Mo lang patakbuhin ang source code, at patakbuhin mo ang source code
sa pamamagitan ng pagsulat sa isang karaniwang file ng teksto, na nagtatapos sa. php sa kasong ito
sa halip na. c, at kung anong programa ang ginagawa sa iyong computer
ito literal na kahulugan ng iyong code sa linya sa pamamagitan ng linya sa pamamagitan ng linya.
>> Sa ibang salita, sa halip na magsulat ng isang programa at patakbuhin ang programa
direkta sa halip ay magsulat ng isang programa na may isang file na nagtatapos sa. php.
Pagkatapos mong patakbuhin ang isang aktwal na programa na tinatawag na php.exe, kung ikaw ay sa Windows,
o PHP kung ikaw ay sa Mac OS o Linux,
at magbigay sa iyo bilang input sa PHP programa ang iyong sariling source code,
at ang mga layunin sa buhay ay upang basahin ang iyong code itaas hanggang sa ibaba, kaliwa papuntang kanan,
at anumang mo na sinabi ito upang gawin.
>> Natin makita kung ano ito ay pagpunta sa ibig sabihin syntactically.
Sa PHP mayroon kami ng mga kondisyon.
Slide na ito ay kapareho ng sa kung ano ang nakita mo sa linggo 1
dahil syntactically kundisyon, ifs at iba pa ifs at ibang tao sa PHP
tumingin eksakto tulad nito.
Pagdating sa boolean expression sila ay pagpunta upang tumingin nang eksakto tulad nito.
Pagdating sa anding mga bagay na sama-sama bilang booleans ito upang tumingin nang eksakto tulad nito.
Lilipat tumingin sa parehong, at makuha mo ang mga idinagdag na pakinabang sa PHP
na switch sa C ay maaari lamang lumipat sa isang pansamantalang trabaho o sa isang int.
Hindi ka maaaring lumipat sa isang halaga ng string.
Sa PHP aktwal mong magkaroon ng isang expression
na ay isang variable na ang mga nilalaman ay isang string,
at maaari mong aktwal na gawin ang string paghahambing sa tunay intuitive na paraan,
hindi pointer paghahambing, upang magpasya kung gawin kaso i o j o iba pa.
Susubukan naming makita na potensyal na bago mahaba.
>> Loop masyadong kamangha-mangha ay ang parehong.
Para sa loop ay isang Pinasimulan, kundisyon, at ilang bilang ng mga update.
Habang loop din umiiral sa PHP.
Gawin habang loop ring umiiral sa PHP,
at array umiiral sa PHP, ngunit narito ang kung saan ang syntax ang nagsimulang upang makakuha ng kaunti ibang,
ngunit ang konsepto ay pareho, at ang mga konsepto ay talagang ang parehong
bilang sila ay sa Linggo 0 na may scratch.
Una sa lahat ay ang $ sign.
Ito ay isang disenyo na desisyon sa PHP kung saan anumang variable
sa PHP sa pamamagitan ng disenyo ay nagsisimula sa $ sign.
Walang higit pa X, Y, Z. ngayong $ X, $ Y, $ Z dahil lang.
Ito ay isang bagay na dapat tandaan, at ngayon sa kanang bahagi
ito ay mukhang katulad sa isang array,
ngunit hindi namin ang paggamit ng mga square bracket dito.
Sa PHP at sa JavaScript, bilang namin ay makakita,
idedeklara ng isang array gagawin mo bukas square bracket at sarado square bracket,
at pagkatapos ay mayroon kang isang comma separated na listahan ng mga halaga, kung ang mga ints
o string o char, anumang nais mo, sa loob ng na expression doon.
>> Ngayon, paano ginawa namin ang isang bagay tulad nito sa C?
Ano ang syntax para sa statically deklarasyon ng isang array ng mga kilalang numero?
Ito ay kulot tirante, kaya menor de edad pagkakaiba dito, ngunit sa parehong PHP
at kalaunan JavaScript ito ay gumagamit ng mga square bracket, kaya talagang
ang tanging kawili-wiling mga detalye dito ang $ mag-sign para sa mga pangalan ng variable
at ang mga square bracket, at may isang hindi pangkaraniwang bagay
na tinanggal pati na rin sa kaliwang bahagi ng sign =.
Ano kulang na kami ay nangangailangan para sa mga linggo na ngayon? Oo.
[Hindi marinig na mag-aaral ng tugon]
Ang laki, kaya walang pagbanggit ng laki ng array.
Lantaran, walang pagbanggit ng mga square bracket sa kaliwang bahagi
ng = sign, at kung ano ang tao ay nawawala mula sa linya?
Oo. >> [Hindi marinig na mag-aaral tugon]
Uri, kaya kung ano ang kawili-wili sa mga partikular na tungkol sa PHP
ay na ito ay hindi Mahigpit na-type na wika bilang C ay,
at na Matindi ang nai-type sa kamalayan na dapat mong sabihin magpasinda,
dapat mong sabihin int, dapat mong sabihin Float.
>> Anumang oras na gusto mo sa isang variable na mayroon kang sabihin sa kumalatong kung ano ang uri nito ay.
PHP ay isang maliit na lazier.
Maluwag ito type sa kamalayan na
maaari kang magkaroon ng mga kamay at char at mga string
at mga ints at iba pa, ngunit ang wika mismo
ay hindi talagang pakialam kung ano ang inilagay mo sa loob ng isang variable.
Hindi ka upang ipagbigay-alam ito nang maaga kung anong uri ng data
pagpunta sa isang variable.
Ito ay ganap na nakasalalay sa iyo, kaya ito ay magaling
na hindi mo na kailangang mag-alala ng mas maraming tungkol sa data ng pag-type
at nag-aalala kung ano ang iyong mga argumento at iba pa.
Nangangahulugan din kalaunan ang mga function sa PHP upang bumalik
alinman sa isang int karamihan ng oras, at maaaring sabay-sabay sa isang sandali
makikita nila bumalik ng bool, isang boolean false, halimbawa, upang magpahiwatig ng isang bagay na nangyaring mali.
Ito ay nagbibigay sa amin ilang mga upsides, ngunit ito rin ay amin uri ng sa pamamagitan ng disenyo
Medyo lazier pagdating sa data ng pagta-type.
>> Ano pa doon na dapat tandaan dito?
Variable tumingin medyo bang ito, kaya $ s = "hoy, mundo."
Iyon ay marahil inferable mula sa nakaraang halimbawa,
at kami ay may isa pang uri ng loop.
Ang isang ito gagamitin namin aktwal na makita ang isang beses sa isang habang dahil ito ay medyo madaling gamiting,
isang foreach bumuo.
Sa kasong ito, ang foreach loop tumatagal sa loob ng mga panaklong 3 salita karaniwang,
$ Isang bagay unang, na kung ano ang array ang gusto mong umulit sa ibabaw ng mga kasapi ng,
literal ang keyword bilang, at pagkatapos ay sa wakas,
isa pang pangalan ng variable na makakakuha ka upang pumili.
Maaari itong foo, bar, o elemento,
at kung ano bumuo ng mga ito ang
ay kung ang $ array ay naglalaman ng 10 mga elemento
sa bawat pag-ulit ng mga ito array-paumanhin, sa bawat pag-ulit ng loop na ito
ang variable na tinatawag na elemento ay pagpunta sa ma-update
sa unang elemento sa array, pagkatapos ay ang pangalawang elemento sa array,
pagkatapos ay ang ikatlong elemento ng array, at dahil doon obviating ang pangangailangan
upang gawin ang bahagyang nakakainis square bracket pagtatanda at
$ I upang i-index sa isang array.
PHP ginagawa ang lahat ng na gumagana para sa iyo at sa bawat pag-ulit
kamay mo lang ang susunod na elemento mula sa array
nang hindi mo kinakailangang malaman tungkol sa o pakialam tungkol sa numeric na index ng lokasyon.
>> At pagkatapos ay sa wakas, sa ngayon, may isang iba pang mga tampok ng PHP
na hugely kapaki-pakinabang, lalo na kapag nagsimula kami ng programming sa Web,
at na kilala bilang isang nag-uugnay array.
Ang array na alam namin samakatuwid ay malayo ng 20 segundo ang nakalipas
at para sa nakalipas na 8 linggo ayon sa bilang na-index array,
uri ng tradisyonal na array kung saan ang mga indeks ng mga ints,
0, 1, 2, ang lahat ng mga paraan sa up.
Nag-uugnay array ng maraming mas malakas na.
Pinapayagan nila mong arbitrary key,
arbitrary mga indeks at arbitrary halaga.
Sapagkat sa isang tradisyonal na array 0, 1, 2,
sa isang nag-uugnay array maaari kang magkaroon ng isang index
o isang key ng foo na ang halaga ay bar.
Pagkatapos ay maaari mong magkaroon ng isa pang key na ang pangalan ay baz at na ang halaga ay qux.
>> Muli, ang bobo computer science generic na mga variable na pangalan dito,
ngunit ang punto ay ang array na ito ay hindi bracket 0 o bracket 1.
Sa halip ito bracket foo at bracket baz.
Ito ay ng maraming mas maraming nagagawa na namin nagagawang i-ugnay
mga salita sa ibang salita, ang mga key na may halaga ganap mang,
at kami ay upang makakuha ng mga halagang iyon pabalik sa pare-pareho ang oras
dahil sa ilalim ng hood kung ano ang isang nag-uugnay array
talaga ay ng hash table.
Manariwa sa diwa ng hash table ay nagpapahintulot sa iyo na ilalagay sa ilang mga input
bang ilagay sa ang salita ng David kung nais mong upang ipasok ang David sa ilang uri ng diksyunaryo,
at pagkatapos kang makakuha ng ilang mga halaga karaniwang.
Sa kaso ng speller, true o false.
David o anumang salita o hindi sa diksyunaryo.
Ang isang nag-uugnay array ay talagang lamang ng hash table,
subalit ito ay higit pa user friendly na pagkakatawang-tao nito.
Tulad ng makikita namin makita, pagpunta sa-daan sa amin upang gawin ang ilang mga bagay
napaka, napaka-madali.
>> Natin tingnan sa ilang mga pangunahing PHP
halimbawa at makita kung ano ang maaari naming gawin sa wikang ito.
Hayaan akong sige at buksan sa aming direktoryo ng pinagmulan ngayon
isang file na tinatawag hello1.php.
Ang file na ito ay pang komento kaysa ito ay aktwal na code,
kaya ipaalam sa akin aktwal na alisin ang lahat ng mga komento mula sa file
at kasalukuyan mo marahil ang pinakasimpleng PHP programa dito mismo.
5 linya, at ang ilan ng mga puting espasyo,
mapansin kaya ang ilang mga pangunahing pagkakaiba dito.
Ang file ay tinatawag na hello1.php.
Ang unang linya, bagaman, ay <? Php.
Katulad sa espiritu sa HTML,
na pagkakasunud-sunod ng mga character ay nagsasabi sa ang computer
"Uy, computer, dito ay isang programa na hindi namin in sa PHP."
Tinitiyak hindi ito nalilito na ito ang ilang iba pang mga wika.
Linya 2 ay isang kawili-wiling white space.
Linya 3 sa aming mga lumang kaibigan printf,
oras na ito sa konteksto ng PHP.
PHP ay may sarili nitong bersyon ng printf na behaves eksakto ang parehong,
kaya ito ay pagpunta sa i-print ang "hoy, mundo."
At pagkatapos ito sa tapat tag dito,?>, Nangangahulugan na ito para sa aking mga code na PHP.
>> Natin makita kung paano patakbuhin ang.
Ako pagpunta upang bumalik sa aking terminal na window dito.
Ako pagpunta sa pumunta sa aking PHP direktoryo.
Pansinin na mayroon kami ng buong bungkos ng mga file, ang unang na kung saan ay hello.php.
Hayaan akong magpatuloy at patakbuhin ito, hello1.php, ipasok.
Pagpapahintulot ay hindi pinayagan. Okay.
Paano namin maayos ang mga bagay na tulad nito sa nakaraan?
Ano iyon? >> [Hindi marinig na mag-aaral tugon]
Kailangan naming basahin at isulat, ngunit ipaalam sa akin ls-l.
Tandaan ang medyo misteriyoso output kung saan hello1
Mukhang nababasa at writable ko
ngunit nababasa ng lahat ng tao.
Ito ay lumiliko ang aktwal na ay hindi isang hakbang sa tamang direksyon.
Ang pagkakaiba, muli, na may isang kahulugan ng wika
ay hindi mo patatakbuhin mo ang program nang direkta.
Sa halip mong magpatakbo ng isang interpreter at ibigay ito sa code
mo na ang nakasulat sa gayon ay maaari itong bigyang-kahulugan ang mga ito linya ng linyang.
Sa kasong ito, ang mga interpreter o programa gusto ko aktwal na tumakbo
ay literal na tinatawag na PHP.
>> Sa isang lugar sa hard drive ng appliance ang isang programa
ibang tao sinulat ni tinatawag na PHP, o sa Windows php.exe.
Ano ako pagpunta sa gawin dito ako pagpunta sa aktwal na patakbuhin ang PHP
ngunit bigyan ito bilang isang argument ng linya ng command code na aking sinulat ni,
at pagkatapos ay kukunin ko na mag-zoom out at pindutin ang enter.
Tumatakbo ito ang aking programa para sa akin, itaas hanggang sa ibaba, kaliwa papuntang kanan.
Hayaan akong sige at buksan ang isang bahagyang pagkakaiba ng mga ito.
Sa hello2.php abiso na ito masyadong
halos komento, kaya hayaan mo akong makakuha ng mapupuksa ng mga bilang isang paggambala,
at kung ano ang malinaw iba't ibang tungkol sa ang file na ito ngayon?
May ito bagong linya, medyo misteriyoso sa tuktok.
Sa linya 1 #! / Bin / php.
Bin ay isang convention sa Linux at Mac OS para sa binaries,
kaya / bin ay nangangahulugan na ito ay isang folder na naglalaman ng isang bungkos ng binaries
na program, isa sa kung saan ay PHP.
Ang #! ay palayaw shebang,
kung saan ay ang mabilis na paraan ng pagsabi nito, at kung ano ang ibig sabihin nito ay
ay na kapag nagpatakbo ka ng programang ito ngayon ay may isang pahiwatig sa tuktok ng file
na nagsasabi sa ang computer kung ano interpreter sa gamitin.
>> Ay nakakakuha ng kaunti nakakainis na kung mayroon kang upang sabihin sa iyong mga gumagamit at ang iyong mga customer
"Uy, namin sinulat ni programang ito na tinatawag na hello1.php."
Ang kailangan mo lang gawin ay magpakailanman patakbuhin ang PHP at pagkatapos ay ang pangalan ng programang ito.
Lantaran, ito lamang ay nicer upang patakbuhin ang hello1.php,
at sa katunayan, maaari naming kung gagawin namin ang mga sumusunod.
Hayaan akong magpatuloy at gawin ang ls-l, at paunawa sa hello2 pa rin ito lamang basahin ang sumulat
at pagkatapos ay basahin basahin, kaya hindi pa ako makapag gawin ito, hello2.php.
Ngunit ipinakilala namin ito napaka maikling nakaraang oras, ang chmod utos.
Kung gagawin ko chmod isang + x, na kung saan ay nangangahulugan na ang lahat ng plus executability,
at pagkatapos hello2.php at pagkatapos ay ls-l muli mapansin kung ano ay nagbago.
One, Linux ay nagpapakita sa akin ang pangalan ng file sa berdeng upang ihatid ang ideya
na ito ay executable, ngunit mas mahalaga, sa kaliwang bahagi
mapansin na bit na kumakatawan ang mga x para sa executable ngayon ay nakatakda.
Ano ito ngayon ay nangangahulugan ay maaari ba akong magpatakbo ng ./hello2.php gaya ng dati,
pindutin ang enter, at dahil sa shebang sa pinakatuktok ng file
na isang hint, muli, sa Linux na nagsasabing
gamitin ang interpreter upang patakbuhin ang file na ito.
Huwag mag-alala tungkol sa pagpilit user na aktwal type ang mga ito.
>> At kung ano ang magaling ngayon ito ay uri ng walang kinalaman sa aking mga customer o ang aking mga kaibigan
anong wika ko sinulat ni programang ito sa, kaya ang maaari kong magpatuloy na may mv
at palitan ang pangalan ang bagay na ito sa hello2, halimbawa.
At ngayon kung gagawin ko ./hello2
at mag-zoom out ang aking programa ay patuloy na tumakbo.
Mga file extension ng isang tao convention na kinakailangan
para sa isang bagay tulad ng kumalatong at Gawing na tumitingin para sa kanila.
Ngunit para sa PHP, maaari kong tumawag sa anumang extension ang file na ito Gusto kong.
Maaari ko linlangin ang mundo sa pag-iisip na ako mahusay talaga sa Ruby,
at maaari kong isulat hello2.rb at pagkatapos patakbuhin ang,
at voila, ngayon mayroon akong ang bersyon ng Ruby, na kung saan ay isang kumpletong kasinungalingan.
Ngunit ang mga extension ng file ay walang kahulugan
kung ang file ay executable at may espesyal na pahiwatig na ito sa tuktok ng file.
>> Ngayon, bilang isang bukod, hayaan mo akong ipakita sa iyo ang mabilis na bersyon 3,
na uri ng isang kapaki-pakinabang na panlinlang upang malaman.
Sa hello3 ginawa ko ng isang bagay na bahagyang mali
na kailangan ko i-update ang code ng pinagmulan online.
Sa bersyon 3 lumiliko out na sa karamihan ng mga Linux na mga computer
may isang programa na tinatawag na env para sa kapaligiran,
at kung ano ang maaari mong gawin dito ay kung mayroon kang walang ideya kung saan PHP
ay naka-install sa lokal na hard drive, dahil sa katunayan, maaaring ito ay nag-iiba batay sa computer
na ang isang tao ay gumagamit, env lang sabi magpatakbo ng env,
na sa karamihan ng mga system, at malaman kung saan PHP ay.
Lamang ng isang karaniwang nanlilinlang upang hindi mo na kailangang mag-alala tungkol sa paghahanap kung saan ay ang programa.
Ngunit kung gagawin mo pag-aalaga upang malaman kung saan ay ang programa at hindi mo pa cared sa gayon ngayon
maaari mong gamitin ang kung aling mga utos.
>> Hayaan akong mag-zoom out at i-type na php,
at mapansin ang mga ito ay nagsasabi sa akin ito ay aktwal na sa usr / bin / php.
Ito ay uri ng isang kasinungalingan. Rin sa bin.
Lamang ito nagpapakita sa akin ang unang hit.
Kung sakaling nagtaka kung saan kumalatong ay, na kumalatong, na sa usr / bin / kumalatong,
na ginagawang, usr / bin / gawin, at kung ano na Nangangahulugan ang lahat oras na ito
maaari mong na-type ng usr / bin / kumalatong ipasok upang tumakbo ng kumalatong,
ngunit ito uri ng nakakapagod na gawin na, kaya ang ilang mga folder
tulad ng usr / bin at bin ay ipinapalagay na ang mga default
kaya computer alam upang tumingin sa mga ito para sa iyo.
Anumang mga katanungan sa pagsusulat ng sobrang, sobrang simple Hello World programa
sa PHP at pagkatapos ay tumatakbo ito?
Dahil ngayon magsisimula kami upang ipakilala ang mas nakakahimok syntax.
Lahat ng karapatan, dito namin pumunta.
Mga programang ito na nakakita kami aktwal na lahat ng mga ito bago.
>> Kung buksan ko up, halimbawa, sabihin gawin beer1.php,
hindi namin pumunta sa pamamagitan ng maraming mga bersyon ng mga ito, ngunit kung ano ang ko ginawa
ako nakaupo down at poured ito o-convert
aking C code sa PHP code dito.
Karamihan ng tuktok ng file komento dito.
Lumiliko out may isang bagong function na kailangan namin tinatawag readline.
GetString, manariwa sa diwa, mula Linggo 0 pasulong CS50 bagay.
PHP ay may sarili nitong mga user-friendly na function na tinatawag na readline
na tumatagal ng 1 argumento na tumutukoy sa prompt
na gusto mong ipakita sa gumagamit, at kung ano ang readline ginagawa
ito nagbabalik ng anumang user ang uri.
Sa kasong ito, ako ang deklarasyon ng isang variable na tinatawag na $ n.
Ako pag-iimbak sa ito ang return halaga ng readline
pagkatapos ng pagdikta sa gumagamit na may string na ito.
Lang i-back up, aktwal na patakbuhin ang bagay, hayaan mo akong magpatuloy
at magpatakbo ng php beer1.php.
Gaano karaming mga bote ay doon? Sabihin lang gawin 2 oras na ito.
Enter. Iyon lang.
>> Programa pagtakbo kapareho ng C bersyon mula linggo ang nakalipas.
Ngunit syntactically sabihin makita kung ano ang iba't ibang.
Matapos na nakukuha ko sa isang int mula sa paunawa ng user na ako paggawa ng ilang error checking,
at kung ang n ay mas mababa sa 1 isinara ko at i-print ko ang
ng paumanhin mensahe sa gumagamit at exit na may 1.
Ito ay masyadong ng kaunti ibang.
Sa C kung ano ang naming gawin? Sa C ibinalik namin 1.
Sa PHP lumabas ka na may 1, kung saan ay lantaran tingin ko ng kaunti mas magaling
dahil literal ka paglabas sa programa.
Lahat ng karapatan, at pagkatapos ay down na dito ang nakakairitang kanta ay kapareho syntactically
maliban para sa mga variable, kaya down na dito sa linya 24 pasulong
mapansin ang aking para sa loop ay halos ang parehong,
ngunit mayroon akong $ sa harap ng i at ng n,
at kung ano rin ang nawawala mula sa linya 26 na kami ay may sa nakalipas
kapag deklarasyon ng variable i?
Mayroong ang walang uri.
Ay hindi tama sa PHP sabihin int.
Mo lamang ay hindi kailangan upang gawin iyon.
Ang computer, ang interpreter PHP na smart sapat upang mapagtanto
na kung kang maglagay ng numero sa $ ko ito ituring ito
bilang isang numero para sa iyo.
At pagkatapos ay down na dito namin plug sa $ i, $ i, $ i - 1.
Ang lahat ng na ay pareho, at pagkatapos ay down na dito ginagawa namin "Wow, na nakakainis" printf
at pagkatapos ay lumabas (0).
>> Muli, ang takeaway dito ay na kahit kami ay pagpunta sa gastos relatibong
maliit na oras sa PHP, tiyak kumpara sa kung ano ang ginawa namin sa C,
ito ay halos ang parehong, at kaya kung ano ang gagawin namin ngayon at sa susunod na linggo
at higit pa ay talagang tumutok sa ilan ng mga bagong ideya.
Lamang upang makita na ang isa pang bagay ay isalin ang mula C,
ito ay isang napaka-simpleng programa na ginawa namin sa Linggo 1
o 2 na nakakubo ng halaga.
Ngunit kung ano ang kawili-wili sa oras tungkol sa programang ito ay na ito
ipinakilala ang paniwala ng isang pasadyang nakasulat function na namin ating sarili sinulat ni.
Ang syntax sa PHP ay halos pareho.
Narito ang aking programa up tuktok.
Pansinin muli wala anumang paniwala ng pangunahing.
Sisimulan ko ang pagsulat code, at ito ay kung ano ang nangyayari upang maisakatuparan ng interpreter.
-Print ko ang x na ngayon ang 2, baka.
Pagkatapos i-claim ko cubing ...
Pagkatapos kong tumawag sa kubo function na at pumasa sa $ x
at italaga ang return halaga sa $ x.
Pagkatapos inaangkin ko na ito nakakubo, at pagkatapos ay sabihin ko ito, na sana
sasabihin x ay ngayon 8.
Ang syntax para sa mga katangian sa PHP ay kailanman kaya bahagyang naiiba.
Muli nawawala ang return uri.
Muli nawawala ay ang uri ng return at nawawala ay kung ano ang iba pang uri?
[Hindi marinig na mag-aaral ng tugon]
Well, okay, na mahusay. Natin bumalik sa isang segundo.
>> Wala kaming, halimbawa, int dito.
Hindi namin, halimbawa, na int dito dahil, muli, sa PHP
huwag mo lang kailangan mong at hindi dapat gawin na,
kundi ang bagong keyword na ito na tinatawag na function na.
Sa PHP halos isang maliit na mas malinaw dahil kapag nais mo ang isang function
sabihin mo literal function, bigyan ito ng isang pangalan at isang comma separated listahan
kung sa anumang ng mga argumento.
Hindi na kailangang sabihin walang bisa o anumang bagay tulad na, at pagkatapos return ay pareho,
$ Ng * $ ng * $ a.
Ano din ang nawawala? Sammy tulis ito dito.
Sa tuktok ng file ganap na wala sa PHP din ng prototype.
Masyadong ay sa pamamagitan ng disenyo.
Wika at interprete tulad ng PHP ay mas matalinong kaysa C kailanman ay
sa compiler tulad kalatungin.
>> Isipin ang na kumalatong, kung hindi mo sabihin nito na kubo umiiral,
kung hindi mo sabihin dito na printf umiiral na may prototype
o na may # include, maayos, ito ay upang sumigaw sa iyo at hindi kahit makatipon ng iyong code.
PHP at mas modernong mga wika ng maraming mas matalinong pagdating sa ito.
Sila ay tumagal ang mga ito kapag ang kanilang mga sarili na basahin ang lahat ng iyong code
at pagkatapos ay sumigaw sa iyo lamang kung nahahanap nito kubo wala saanman.
Hindi mahalaga kung kubo sa ilalim o sa itaas o kahit na sa ilang mga hiwalay na file.
PHP at katulad na wika ngayon ang smart sapat upang tumingin sa kinabukasan
sa lahat bago deeming bilang pag-nagkamali.
Kung saan ay na-iwan sa amin?
>> Natin gawin ang isa huling halimbawa dito sa mga kondisyon,
at kung buksan ko conditions2.php paunawa masyadong
syntax dito ay halos pareho.
Gumagamit ako ng readline sa halip ng GetString, ngunit linya na ang parehong tulad ng dati,
"Gusto ko ng integer isang."
Ko pagkatapos ay may kung kundisyon, ng ibang tao kung, at pagkatapos ng isang tao,
ngunit pagtakbo Ang program na ito ay pareho sa kung ano ang ginawa namin linggo ang nakalipas,
kaya kung nagpatakbo ako ang bagay na ito, php ng ​​conditions2,
at ako bigyan ito ng isang numero tulad ng 23 -
Kinuha ko ang isang positibong numero. Kung bigyan ko ito -1 pinili ko ang isang negatibong numero.
Kung bigyan ko ito 0 pinili ko katunayan 0.
Kaya na nagmamalasakit tungkol sa lahat ng ito?
Well, isa ng masaya uri ng pagsasanay dito
para sa akin ng hindi bababa sa ay upang bumalik at makita kung gaano kabilis ang maaari kong ipatupad pset 5,
ang pset mga maling spelling.
Manariwa sa diwa na may ang file na ito na tinatawag na speller.c,
at nagkaroon ng isang file na tinatawag na dictionary.c.
Ano ko ay ko ang uri ng ginugol ng ilang minuto at convert ko ang C code
PHP code, at hindi namin gastusin karaming oras sa speller
dahil tulad ng sa pset 5 hindi mo talaga kailangang
gastusin karaming oras sa speller mismo dahil ang iyong pansin sa diksyunaryo.
>> Sumapat ito sa sabihin na kung mong basahin sa pamamagitan ng speller,
ang file na ito dito, medyo mas katumbas sa ang C code
ay ibinigay para sa pset 5 namin.
Lamang Nagdagdag ako ng ilang $ sa mga lugar.
Binago ko ang ilang mga pangalan ng function na kung hindi nila umiiral sa PHP.
May isang karagdagang bagay dito, preg_match,
na ng kaunti may interes paraan ng paggawa ng isang bagay, ngunit makikita namin bumalik na kalaunan.
Ngunit sa maikling salita, speller ay halos magkakahawig, at kung titingnan mo sa pinakailalim
kung ano ito kalaunan spits out ito dito,
salita tamang spelling, ang mga salita sa diksyunaryo, ang mga salita sa teksto.
Lahat ng karapatan, kaya kung ano ang kawili-wili ngayon ay ang mga sumusunod.
Sa tuktok ng aking mga file ako na nangangailangan ng dictionary.php.
Tulad ng C na # include PHP ay may isang espesyal na function na tinatawag na nangangailangan
na medyo mas ipinapakita ang parehong bagay, nangangailangan ng isang file na tinatawag na dictionary.php.
Paano ko pumunta tungkol sa pagpapatupad ng pset 5?
Hayaan akong sige at buksan ang isang file dito.
Hayaan akong maglaan ng kaunting reference dito.
At hayaan mo akong lumikha ng isang bagong file at simulan ang pagtawag na ito dictionary.php.
Hayaan akong ilagay ang mga ito sa ibang folder upang maaari naming gawin ito nakatira.
At ngayon kukunin ko na mag-zoom in.
Ako pagpunta upang simulan ang ang aking PHP file na may bukas php bracket sarado bracket.
At pagkatapos in dito ng ilang mga function na kailangan ko upang ipatupad para sa pset 5,
kaya ipaalam sa akin simulan ang pagpapatupad ng ilan sa mga,
kaya function na tseke, na kung saan ay upang gumawa ng isang salita sa bilang isang argument.
Gagawin namin na at bumalik dito sa ilang sandali.
>> Nagkaroon ng function na load, kung saan kinuha sa kung ano ang bilang isang argument?
Diksyunaryo, kaya ang file na aktwal ko nais upang i-load.
Nagkaroon ng function na laki, na kung saan ay hindi gumawa ng anumang mga argumento
at nagkaroon function na-kung ano ang iba pang?
Mag-ibis maglapag, na kung saan ay hindi gumawa ng anumang mga argumento alinman.
Ito ang 4-andar na kailangan ko ngayon ipatupad sa PHP,
at kung ano ako pagpunta sa gawin ay magpatuloy at gawin ito.
Isang maraming ginamit ng hash table sa pset 5,
kaya hayaan mo akong magpatuloy at lumikha ng hash table sa PHP.
Tapos na.
Na nagbibigay sa akin ng hash table. Well, bakit?
Isa, variable ang tinatawag na $ talahanayan, upang manawagan up ang ideya ng isang hash table.
Ang mga square bracket, bagaman, isipin ang, kumakatawan sa kung ano ang?
Isang array, ngunit sa PHP array ay hindi ayon sa bilang na-index.
Maaari din silang nag-uugnay array,
na nangangahulugan na maaari kang magkaroon ng mga arbitrary na mga susi at halaga.
>> Karamihan gusto sa pset 5, mga mo na ginawa hash pagpapatupad talahanayan
malamang na ipinasok ang salita at pagkatapos ay ipinasok na ito sa isang hanay ng mga naka-link na listahan,
o inimbak mo ang halaga ng totoo sa isang lugar o isang bagay na epekto.
Sa paanuman remembered ang katotohanan na ang salita ay naroon.
Sa ngayon, na na ang aking hash talahanayan,
at kaya ngayon upang pumunta tungkol sa pagpapatupad ng tseke function na
Ko lang ang kailangan upang tumingin sa loob ng talahanayan na hash
at makita kung ang isang salita ay doon.
Ano ako pagpunta sa gawin ay ako pagpunta upang sabihin kung-
sabihin nating isset, kung saan ay isang PHP function na literal lamang ay nangangahulugan ang key set,
kaya isset ($ talahanayan [$ salita],
at kung kaya nagbabalik ng tunay.
Iyan na ang lahat. Na pset 5 sa PHP.
Well, sa pagkamakatarungan, okay.
Iba Pa bumalik false, kaya hindi doon.
Kung ano talaga ang pagpunta sa dito?
Well, kung ang talahanayan ng-o hash talahanayan dito sa mas pangkalahatang-
ay isang nag-uugnay array na nangangahulugan na maaari mong index ito
may isang salita tulad ng "salita," at mayroon kang upang makakuha ng pabalik ilang halaga.
>> Humihingi kami ng uri ng pagkuha ng isang hakbang nangunguna sa ating sarili.
Ito ay uri ng magaling kung namin ang aktwal na-load ang file unang,
kaya ng pagkarga ay hindi lubos na simple, ngunit hayaan mo akong magpatuloy at gumawa ng
isang talagang mabilis na pagpapatupad ng ng pagkarga.
Hayaan akong magpatuloy at sabihin ang salita ay nakakakuha ng file diksyunaryo.
Ang file na function sa PHP ay nagbukas ng isang file
at babalik sa iyo ng isang array ng lahat ng salita sa file na iyon,
kamay lamang sa mga ito sa iyo.
Iyon ay isang malaking sakit masyadong, ay hindi ito?
Ngayon foreach, ito ay ang aming bagong bumuo, foreach ($ salita ng $ salita).
Loop na ito upang simulan ang iterating sa ibabaw ng mga salita ng array
at italaga ang $ variable salita bawat salita sa file
mula sa unang sa pangalawang sa third sa ang ika-apat sa lahat ng mga paraan
kaya hindi ko na gawin ang nakakainis [i] pagtatanda at ang gusto.
At kung ano lamang ako pagpunta sa gawin para sa bawat isa ng mga salitang ito
ay-imbak ang mga ito sa aking mga talahanayan sa pamamagitan ng pag-i-index sa talahanayan
at pagkatapos ay paggawa totoo dahil tandaan
na ang isang salita sa aking diksyunaryo lahat ko talagang gawin
ang uri ng i-flip ng kaunti at sabihin ang salitang ito sa aking hash talahanayan ay doon, totoo.
At kung ito ay hindi doon, hindi ko na kailangang tahasang ilagay ang maling,
kung hindi man Gusto ko upang ilagay ang maling para sa lahat ng mga posibleng salita sa uniberso.
>> Suffices para sa akin lamang magtakda ng isang halaga ng index
sa totoo kung ang isang salita ay aktwal na sa aking hash talahanayan.
Ngayon, ako paggupit ng ilang ng sulok dito na makikita ko iwagayway ang aking mga kamay sa sa ngayon,
ngunit ngayon ng pagkarga function na ay tapos na.
Ako-load ang lahat ng mga salita mula sa file sa isang array.
Ako umulit sa paglipas na array, at para sa bawat salita sa array
Plug ko ito sa aking hash talahanayan sa 1 linya ng code.
Ito ay masaya. Alam mo kung paano namin ipatupad ang laki ngayon?
Well, laki ay laging medyo madali, sa pagkamakatarungan.
Dito maaari naming lamang huwag ibalik ang bilang ng talahanayan.
Na medyo madaling masyadong, bilangin ang bilang ng mga bagay sa talahanayan.
Na ang aktwal na uri ng hindi ang pinaka mahusay.
Ang dapat kong malamang na magkaroon ng isang variable na tinatawag na laki upang maaari naming gawin ito
sa pare-pareho ang oras, ngunit na medyo madali.
Oh, at pagkatapos ay mag-ibis maglapag, kung gusto talaga namin sa anal dito
maaari naming sabihin na kung paano kang tanggalin ng.
Mo lamang itakda ang variable na katumbas sa isang walang laman na array,
at nakakakuha ng mapupuksa ng lahat ng doon.
Hindi na kailangang tumawag libreng.
>> Muli, ko na cut ilang mga sulok, at humihingi ako ng paumanhin para sa nagtatalaga ng problema sa set 5
marahil sa C, ngunit kung namin ngayon sige at patakbuhin ang,
Ako pagpunta sa aktwal na patakbuhin ang bersyon na sinulat ni ako nang maaga
lang kaya na hindi ako gumawa ng anumang syntactical pagkakamali sa anumang.
Hayaan akong magpatuloy at patakbuhin ang speller. Ang paggamit ay ang parehong.
Narito ang isang diksyunaryo file na lamang naglalaman ng mga salita foo.
Narito ang isang text file na lamang naglalaman ng foo bar.
Natin ang pang-check ng ito, kaya speller, gamit ang diksyunaryo file sa text file na ito.
May isang maling nabaybay salita, bar, at voila.
Tapos may pset 5.
Natin ng isang 5-minutong break na dito, at magpapadala kami bumalik at higit pa sa PHP.
Karapatan lahat, hindi namin pabalik.
Natin ang mapoot akin para sa isang sandali.
Natin ngayon aktwal na makita kung ito ay hindi isang positibong
aktwal na pagpapatupad ang bagay na ito sa PHP.
Ipinagkaloob, ito kinuha 45 segundo upang ipatupad.
>> Ngunit sabihin magpatuloy ngayon at patakbuhin ang mga bagay.
Hayaan akong magpatuloy at magpatakbo ng isang C bersyon
ng speller, at kami na patakbuhin ito sa isa sa mga pinakamalaking mga file,
na ang King James Bibliya.
At na dito ay sabihin sa aming folder sa C,
speller sa King James ika-5.
Isang maraming mga maling nabaybay na mga salita.
Okay, sa gayon na ang output Nakakuha marahil kahit na ang mga oras ng kaunti ibang,
kung nakuha mo lahat gumagana nang tama, at kaya oras kabuuang sa pang-check
King James Bibliya ay .38 segundo, kaya medyo magandang gamit na pagpapatupad.
Ngayon hayaan mo akong pumunta sa ang PHP bersyon, na lang namin sinulat ni.
Hayaan akong magpatakbo ng speller sa King James.
Whoops, balewalain ang error na iyon. Ako sa maling direktoryo.
Speller sa King James ika-5.
Halos tapos na.
>> Okay, ang matalas tagamasid ay mapagtanto na higit sa 3 segundo ang doon.
Iyon ay ang tunay na tumatakbo oras.
Ito lumiliko out na ito ay tumatagal ng oras sa tuhugan ng maraming teksto out
dahil sa buffering ng mga isyu, ngunit mahabang kuwento maikling,
na 3.15 segundo ng oras ng machine, CPU oras,
kumpara sa kung ano ang ito ng ilang sandali ang nakalipas?
Tulad ng 0.3.
Ibig kong sabihin, isang order ng magnitude na mas mabagal, kaya kung saan ay ang
katawa-tawa paghina nagmumula?
Well, bilang ay ang kaso sa karamihan sa anumang desisyon ng disenyo na ginawa naming
sa klase sa nakalipas na 9 linggo halos palaging tradeoff ito.
Minsan sa pagitan lamang espasyo, minsan sa pagitan ng espasyo at oras,
espasyo, oras at pagsisikap sa pag-unlad, at sa katunayan dito, kahit na
naka-save na namin ang isang malaking halaga ng oras, maaaring potensyal 10-20-30 oras
ng oras ng pag-unlad na pagpapatupad spell checker
sa pamamagitan ng paghagupit ito sa loob ng 45 segundo gamit ang wikang ito
ang presyo na binabayaran namin na ito ay isang order ng magnitude na mas mabagal bilang isang resulta,
at ito ay ang kaso sa karamihan sa anumang kahulugan na wika,
PHP, Python, Ruby, Pearl o sa iba kung saan
kung ikaw ay pagpunta upang patakbuhin ang mga ito sa pamamagitan ng interpreter at may basahin ang iyong code
linya sa pamamagitan ng linya, itaas hanggang sa ibaba, kaliwa hanggang kanang,
na mamamakyaw ay pagpunta sa tumagal ng ilang oras sa sarili nitong,
at kung ano ang pakiramdam dito sa 3 segundo bilang kabaligtaran sa 0.3 segundo
ay ang katunayan na ito mamamakyaw na may sa literal na bigyang-kahulugan ang aming code
linya sa pamamagitan ng linya, at ang Diyos ipagbawal kung ikaw ay sa loob ng isang loop
may isang malaking file na naglalaman ng daan-daang libu-libong ng mga salita.
>> Na overhead ay pagpunta sa magdagdag ng hanggang at magdagdag at magdagdag at magdagdag ng hanggang.
Para sa isang tool tulad ng ito ay marahil hindi ang pinakamahusay na wika upang gamitin para sa pagpapatupad
isang spell checker kung kamadalian ng interes sa iyong mga gumagamit at sa iyo.
Ngunit ang luxury na mayroon kami sa isang sandali kung ikaw
gumamit ng wika tulad ng PHP o ng maraming mga kahulugan wika
sa konteksto ng Web, para sa bagay na iyon, mayroon kang ang pakinabang
na ang internet sa maraming mas mabagal kaysa sa karamihan ng mga computer.
GHz CPU sa iyong computer, 2 GHz, marahil ng mas maraming mga araw na ito.
Ngunit ang katotohanan ay sa internet ay isang mataas na halaga ng latency
kung saan para sa isang browser upang makipag-usap sa isang server, kahit na nakita natin noong nakaraang linggo
na na medyo mabilis, kalahating millisecond o kaya,
na masyadong nagdadagdag, at kung nagda-download ka ng mga bagay tulad ng isang imahe
o isang larawan sa Facebook o pagkuha ng mga instant message sa paglipas ng Facebook magdaldalan,
Gchat o tulad ng, ang lahat ng mga round-trip beses
sa pagitan ng mga browser at ang pagsisimula ng server upang magdagdag ng hanggang,
na gumagawa ng iyong partikular na pagpili ng wika sa maraming mga kaso
hindi lahat na may-katuturan, kaya ikaw masarap na gamit ang isang bahagyang mas mabagal wika
tulad ng PHP o Python o Ruby
ngunit kung saan may malaking upsides sa iyo at sa iyong mga kasamahan
at ang iyong mga kaibigan dahil maaari mong ipatupad ang mga bagay ito, kaya mas mabilis.
At bukod doon, mayroon kang higit na mas mababa panganib ng ilang mga flaws sa seguridad.
Walang payo sa PHP.
Walang seg faults na maaari mong madaling ibuyo
sa parehong paraan na maaari mong sa C.
Na may C ikaw sobrang malapit sa hardware.
Gamit ang PHP at katulad na mga wika na uri ng mas mataas na antas, kaya na magsalita,
na may maraming ng mga panlaban sa pagitan mo at kung ano ang aktwal na pagpunta sa
sa loob ng machine, at isang tradeoff.
>> Namin nakuha ang punto ng pagkakaroon ng mga mas modernong, mataas na antas ng wika
tulad ng PHP dahil sa ang mga aralin na natutunan sa mga wika tulad ng PHP sa C.
Ngunit kung hindi mo maintindihan kung ano ang nangyayari sa ilalim ng hood lahat oras na ito
tiyak na hindi mo maaaring gawin ang karapatan na desisyon ng disenyo,
at tiyak na pagdating sa nagtatrabaho sa isang lugar tulad ng Facebook o Google
o anumang ng mga lugar na ito na ay nagiging paglalaro ng may malaking data nagtatakda
kahit na bumalik at premed at pakikipagtulungan sa ilang MD
sa ilang malaking data ang kinasasangkutan ng mga pasyente at mga doktor
at ang mga tulad ng paggamit ng mga tamang tool hugely nakapanghihimok
dahil kung hindi man ang iyong pag-aaral ng ilang mga hanay ng data ay maaaring tumagal ng ilang segundo,
o baka literal tumagal ng mga oras.
Ito ay isang halimbawa lamang, hindi sa siphayuin sa iyo kung magkano pa pagsisikap
ito ay sa C ngunit upang matulungan Pinapahalagahan mo na kapag ikaw ipatupad ang isang bagay sa C
mo ba talagang maunawaan, o sa teorya, talagang maunawaan
kung paano ang lahat ng bagay ay o dapat na gumagana, at mayroon kang halos buong kontrol
sa kung ano ang nangyayari sa ilalim ng hood, at may mga mas mataas na antas ng wika
mayroon kang mag-iwan ng higit pang kontrol sa mga tao na imbento kanila
at nakabatay higit pa sa kanilang mga desisyon sa disenyo kaysa sa iyo.
Ngunit kung namin mang-ahas na ang pagganap
hindi pa bilang mahalaga sa Web dahil sa mga iba pang mga isyu na,
lamang bilis ng network ay isang maliit na mas mabagal kaysa sa mga bilis ng CPU pa rin,
upang maaari naming pag-uri-uriin ng kayang gamitin ang isang bahagyang mas mabagal wika
kung ang mga upsides ay maaari kaming bumuo ng mga bagay na 10 beses na mas mabilis o kahit pa.
>> Natin makita kung paano maaari naming simulan ang paggamit ng.
Hayaan akong pumunta sa isang folder
kabilang sa mga halimbawa sa ngayon na tinatawag frosh.ims,
at ito ay aktwal na personal motivated sa pamamagitan ng ang katunayan na ang unang bagay
Sinulat ni ko para sa Web taon na ang nakalipas pagkatapos ng pagkuha ng CS50 at CS51
ay isang website para sa programa ng Frosh IMs, presman nasa loob ng lunsod sports,
na sa oras na ito ay sapat na taon na ang nakakaraan na sa panahon
walang website para sa programa, kahit na nagkaroon ng Web,
at sa halip ay nagkaroon ng Proctor sa Wigglesworth kung saan kung gusto mo
upang magrehistro para sa volleyball o soccer o anumang nais mong punan ang isang piraso ng papel.
Gusto mong maglakad sa kabuuan ng bakuran.
Pagkatapos mong kumatok sa kanilang pinto at slide sa kanilang pinto o sa Proctor
isang piraso ng papel sa iyong pangalan dito, kung gusto o ayaw mo sa isang koponan kapitan,
kung ano ang sport na gusto mo gawin, at kung ano ang dorm mo.
Ito ay uri ng isang lumang paraan ng paaralan ng paggawa ng mga bagay, at ito ay isang de-kalidad na
pagkakataon na i-automate ng maraming ng prosesong ito.
Ka pumunta lamang sa website. Kang mag-type ng.
Makakuha ka ng email sa pagkumpirma, at boom, tapos ka na.
>> Ito ay ang unang bagay na ko ginawa, kahit na sa isang wika na tinatawag na Pearl,
pero medyo madali upang gawin sa PHP, at ito ay uri ng kinatawan
ng problema, maaari mong simulan ang paglutas kapag maaari mong ipahayag ang iyong sarili
programa at huwag umasa sa mga bagay tulad ng mga site ng Google
o Excel o tool na ipinasa sa iyo.
Mong guys ay mayroon na ngayong kakayahan upang gawin ang mga bagay tulad nito.
Ito ay isang sobrang pangit na bersyon ng isang form,
ngunit sabihin lamang gamitin ito para sa simula ng pag-uusap kung saan ito ay
halos kung ano ang form mukhang taon na ang nakakaraan para sa amin
upang paganahin ang mga tao sa Web upang mag-sign up para sa Frosh IMs.
Hiniling namin para sa isang pangalan, isang checkbox para sa man o hindi nila gusto na ang kapitan,
lalaki o babae, at pagkatapos ay kung ano ang dorm sila ay sa,
at pagkatapos ay sila ay isumite ang form na ito.
Natin ang unang hitsura sa ilalim ng hood sa HTML na kumakatawan ang webpage na ito.
Hayaan akong pumunta sa froshims0,
at bilang isang bukod, pset 7 ako pagkuha para sa ipinagkaloob
ang mga direktoryo at ang mga folder na ako ng paglalagay ng mga bagay.
Gagabayan ka namin sa pamamagitan ng eksakto kung saan ang mga bagay-bagay ay may upang pumunta sa appliance,
kung aling mga mod utos mayroon kang upang tumakbo, kaya huwag mag-alala tungkol sa lahat ng
bobo mga detalye ng pag-sync mula sa makakuha-pumunta dito.
>> Lahat ng karapatan, narito ang froshims0.php.
Hayaan sa akin na mag-scroll pababa, at kung ano ang usyoso dito,
ito ay isang PHP file, ngunit kung ano ang sa loob nito, malinaw?
Ito ay isang buong maraming ng HTML, at sa katunayan, PHP ng pinagmulan
talaga ay para sa Web-sentrik wika.
Isang sandali ang nakalipas ginamit namin ito ipatupad ang halimbawa ng beer,
ang mga kondisyon ng Halimbawa, kumusta Halimbawa, at na fine.
Maaari mong gamitin ang PHP bilang isang scripting wika
kung saan ang script ng ay talagang lamang ang mga katawagan na ibinigay sa isang mabilis at marumi na programa
o isang bagay na magsulat sa scripted o higit pa sa pangkalahatan ng kahulugan na wika.
PHP ay sobrang kapaki-pakinabang para sa dahil nakita mo kung gaano kabilis
medyo maaari naming gumawa ng mga programa sa PHP.
Ngunit talagang ito ay dinisenyo upang magamit para sa Web,
at dinisenyo para sa Web sa kamalayan na mapansin dito sa tuktok ng file
Ko magsimula sa <? Php.
Pagkatapos Mayroon akong ng grupo ng mga walang silbi komento, ipinagkaloob, ngunit pagkatapos kong isara ang PHP mode.
Ngunit pagkatapos ko drop sa HTML mode.
>> Ano ang mga kawili-wiling tungkol sa PHP kahit file na nagtatapos sa. Php
pangkalahatan ito ay nilalayong co-pinaghalo sa HTML,
ilang PHP code, ang ilang mga HTML.
At kami na makita malaon na maaari naming magsimula sa manunudyo mga bukod
at panatilihin ang aming HTML hiwalay na mula sa aming PHP kabuuan,
ngunit ang mga pinagmulan ng PHP talagang ay upang bigyan ito ng kakayahang umangkop,
kung nais mo ng ilang mga HTML magsulat lamang ito, at na magiging
sabihin ang lahat identically sa browser.
Ngunit kung kailangan mo ng ilang mga diskarte sa programming,
ilang programming code, maaari mo ring ilagay ito sa parehong eksaktong file, dahil kakailanganin namin sa lalong madaling panahon makita.
Narito ang aking HTML.
Mayroon akong isang pamagat ng ito para sa Frosh IMs.
Mayroon akong isang tag ng katawan na nakuha ng ilang CSS dito sa lahat ng center sa gitna,
at pagkatapos ay down na dito Mayroon akong isang form na kung saan ay tila pagpunta sa isumite
sa isang bagong file na tinatawag na register0.php, kaya ipapakita namin makita na sa ilang sandali.
Ito gamit ang isang pamamaraan na tinatawag na post, na magpapadala kami bumalik sa pati na rin.
Pagkatapos Mayroon akong ilang mga input form, isang tinatawag na pangalan, na ang uri ng teksto,
isa na ang pangalan ay kapitan, na ang uri ay checkbox,
at ito, hindi namin nakita ito bago, ngunit ginagawa nito eksakto kung ano ang sinasabi nito.
Kang makakuha ng isang checkbox sa halip ng isang kahon ng teksto.
Down dito mayroon kang isang radio button, na kung saan ay isa ng mga paikot na pindutan
na maaari mong alinman sa piliin ang isa o ang isa.
>> Mapansin ito ay sinadya na ibinigay ko parehong radio button ang pangalan ng kasarian.
Ito ay kung paano makakakuha ka ng magkaparehong pagbubukod kung saan kailangan mong i-click ang
alinman ito ng isa o na ang isa, at sa pamamagitan ng pag-click sa iba pang mga
ito unchecks ang iba pa, kaya mayroon kang upang bigyan ang mga ito ng parehong pangalan
kung nais mong ang mga ito sa kapwa eksklusibong tulad na.
At pagkatapos ay para sa dorm, hindi ko tingin nasaksihan namin ito pa, ngunit ito ay piliin ang menu, isang drop-down menu.
Ang tag para sa ay piliin ang.
Mo nang ibigay ang drop-down menu ng pangalan,
at pagkatapos ay mayroon kang isang buong grupo ng mga pagpipiliang ito.
Ang unang isa, para lamang sa aesthetics, ay isang walang laman na string.
Gusto ko lang sa drop down blangko sa pamamagitan ng default,
at pagkatapos ay mayroong sa Apley, Canaday, Grays, at iba pa.
At mapansin ang paghihiwalay sa dalawang bahagi dito.
Ang pagpipilian sa drop down na may isang halaga,
ngunit ito ay isang tao-friendly pangalan, na sa halimbawang ito
ay magkakahawig, ngunit kung gusto talaga namin na anal kami
ang halaga ng mga ito drop down na lamang ang maikling bersyon,
Grays, ngunit maaari kaming talagang sabihin Grays Hall na ang tao ang aktwal na nakikita,
ngunit hindi ang lahat ng mga kawili-wiling, kaya ko lang iningatan itong simple at ginawa kanila magkakahawig.
Pagkatapos pababa sa ibaba mayroon kaming isumite pindutan
na aming nakita bago, ngunit mapansin ko lang nagbigay ito ng ibang salita.
Sa halip ng CS50 paghahanap ibinigay ko ang label "Magrehistro."
>> Ang resulta ay ang webpage na ito dito, at muli,
kung saan ay ang makapag isinumite sa?
Ito ay makakakuha ng isinumite sa ilang mga file, ang halaga ng katangian ng pagkilos,
na register0.php.
Natin makita kung ano ang aktwal na mangyayari dito.
Hayaan akong sige at punan ang form na ito, sabihin nating David,
lalaki, Matthews, at pagkatapos ay Sasabihin kong magparehistro.
Hayaan akong mag-zoom out at i-click ang magparehistro.
Okay, sa gayon uri ng walang kasaysayan, ngunit sabihin makita kung ano ang aktwal na pagpunta sa.
Pansinin na ang URL ay nagbago na register0.php.
Ano ang pausisa wala mula sa URL, bagaman, kahit kami ay nagsumite lamang ng isang form?
[Hindi marinig na mag-aaral ng tugon]
Okay, na lamang Chrome pagiging user friendly na mga araw na ito.
Na ang aktwal na doon. Lang nila itago ang mga ito upang i-save ng puwang.
Ngunit magandang pag-iisip, mabuting pag-iisip.
Patungo sa iba pang mga dulo ng URL, bagaman, kung ano kulang? Oo.
[Mag-aaral] Ang query string.
Ang query string, kaya isipin ang mula sa aming simpleng halimbawa ng paghahanap ng Google.
Sa lalong madaling ko i-click ang isumite ang pindutan ng URL
kinuha ako sa Google, ngunit pagkatapos ay nagkaroon? q = computer science o anumang ko ay nai-type.
Iyon ay dahil ginamit namin ang get paraan sa mga halimbawa ng paghahanap.
>> Oras na ito na ginagamit namin kung ano ang paraan ng sa halip?
Mag-post, at isa ng agarang pagkakakilanlan
sa pagitan makakuha ng at i-post ang post na hindi ilagay ang input ng user sa URL.
Itinatago ito ito. Nagpapadala pa rin ito dito.
Sa katunayan, kung ano ang aming nakikita sa browser dito, dahil kakailanganin namin magbunyag sa isang sandali
sa pamamagitan ng pagtingin sa register0, lang ako nakakakita ng mga nilalaman
ng array na isinumite mula sa browser sa server.
Ngunit ang URL ay hindi magkaroon ng?, Ay hindi magkakaroon ng anumang mga keyword
o mga halaga sa loob nito, at kung bakit ay na?
Well, post pinapayagan mo pa rin isumite ang mga data mula sa form sa isang server,
ngunit hindi ito ilagay ang mga ito sa URL, kaya kung anong uri ng impormasyon post
partikular na naaangkop para sa marahil kapag ikaw ay hinihiling ang gumagamit sa
type sa input sa isang form?
Isang bagay tulad ng isang password, ang isang bagay tulad ng ano pa?
Numero ng credit card.
Anumang bagay na nang mahinahon sensitive mo marahil hindi nais na nagtatapos sa URL
kung lamang dahil ito ay nangangahulugan na ang iyong kasama o miyembro ng pamilya ay maaaring lamang awitin sa pamamagitan ng
ang iyong kasaysayan ng internet at pagkatapos ay literal makita ang iyong mga password,
literal na makita ang iyong numero ng credit card dahil sa karamihan sa mga browser
tandaan sa kasaysayan anumang URL pa sa,
kaya kung lamang dahil iyon ay isang masamang ideya.
Paggamit ng mga Itinatago ng post na detalye mula sa user.
>> Gayundin, kung paano mo mag-upload ng isang larawan sa Facebook?
Well, lamang ang 2 mekanismo Maaari mo ba talagang gamitin,
kahit na may ilang iba pang higit pa arcane mga, makakuha at mag-post.
Paano mo posibleng mag-upload ng isang larawan sa pamamagitan ng isang URL?
Maaari mong aktwal na gawin ito.
Maaari kang kumuha ng JPEG o bitmap o GIF at maaari mong kumatawan ang mga ito sa hexadecimal
o isang bagay na tinatawag na base 64.
Sa halip na base 16 gumamit ka ng base 64, na mahalagang kamukha
ASCII na mga character, at aktwal na mag-upload ng isang larawan sa pamamagitan ng isang URL
pagkatapos ng tandang pananong, ngunit may pangkalahatang limitasyon sa laki.
Karamihan sa mga browser ay piliting URL upang maging hindi hihigit sa 1,000 na mga character,
siguro 2,000 mga character o ang tulad ng, kaya hindi mo maaaring mag-upload
may 10 MB Facebook larawan.
Para na gamitin mo ang post pati na rin, kaya sa ngayon makapag Inilalagay ng ang mga parameter sa URL,
na maganda at kapaki-pakinabang minsan, ngunit para sa anumang sensitibong o malaking
post ang paraan upang pumunta.
Ano ang register0 aktwal na ginagawa dito?
Well, kung buksan ko register0 paunawa na ito ay isang sobrang simple na pahina,
ngunit ito ay nagpapakita ng katotohanan na maaari kong co-makisalamuha, para sa mas mahusay o para sa mas masahol pa,
HTML sa PHP.
Ang buong file, maliban para sa mga komento sa itaas, HTML
maliban sa mga tao na ito dito.
>> Mapansin sa gitna ng aking code sa PHP,
sa gitna ng aking HTML, mayroon akong uri ng pansamantalang
ipinasok PHP mode.
Pagtawag ako ng isang espesyal na function na tinatawag na naka-print r.
Ito ay nangangahulugan na-print recursive, at kung ano ang ginagawa nito ay recursively mga Kopya
anumang variable mo ipasa ang mga ito, semicolon, PHP mode exit.
At ang pre tag ay nagbibigay sa iyo ng pre-formatted na teksto,
mono puwang ng teksto upang ang bawat espasyo iyong aktwal na makita ito.
Hindi ito mawala. Ano ang post na ito?
Well, kung ano ang kawili-wili at nakapanghihimok tungkol sa PHP
ay na kapag nagsumite ka ng isang form gamit makakuha o mag-post
anumang bagay na isinumite sa iyo sa pamamagitan ng isang browser
PHP mismo figure kung ano ang mga key na mga pares ng halaga,
figure kung may katumbas na mga palatandaan, mga numero kung may isang tandang pananong.
Ginagawa nito ang lahat ng mahirap na trabaho para sa iyo, at pagkatapos kamay ka ng isang nag-uugnay array
na naglalaman ng lahat na ang user type sa form.
Well, kung ano ang mga patlang ang form na ito?
>> Ito ay may 4 na mga patlang.
Ay isa isang patlang ng teksto na tinatawag na pangalan.
Isa isang checkbox na tinatawag na kapitan.
Ay isa isang radio button na tinatawag na kasarian,
at ang isa ay isang drop-down menu na tinatawag na dorm,
kaya mapansin kapag-print ko recursively
ang mga nilalaman ng mga ito ng espesyal na variable.
Ito ay isang espesyal na global variable na tinatawag na literal $ _POST, sa lahat ng mga cap.
Ito ay isang espesyal na global variable na lumilikha lamang ng PHP para sa iyo
at mga kamay sa iyo upang maaari mong ma-access ang lahat
na isinumite sa pamamagitan ng isang form ng isang user.
At sa pamamagitan ng pagtawag r ng naka-print na ito hindi mo nais gawin ito sa isang normal na application.
Ginagawa namin ito upang makita ang loob ng variable na ito,
at kung ano ang sa loob nito, na rin, 4 key,
4 http parameter, kaya na magsalita,
pangalan, kapitan, kasarian, dorm, at pagkatapos ay ang halaga na ang user
na nai-type sa may isang pagbubukod.
Ginawa ko ang uri ng D-A-V-I-D.
Sinuri ko ang kahon, bagaman, para sa lalaki, na tila nagsumite ng halaga
ng m na ang maikli at malinaw.
>> Kapag pinili ko Matthews na ang halaga na Nakakuha napili,
at ito ay isang maliit na bobo, ngunit ang convention.
Kapag Sinuri ko ang kahon, ang isang halaga ng sa, "sa," Nakakuha na isinumite para sa checkbox.
Kung hindi ako ay naka-check ito, ang halaga na hindi sana ay naipadala anumang.
Ito ay nagbibigay sa amin ng mga pananaw sa kung ano ang sa loob ng mga ito ng espesyal na global variable,
at ito ay kaya espesyal na ito ay tinatawag na isang super global variable.
Umiiral sa lahat ng dako para sa iyo sa loob ng iyong code sa gayon na maaari mong aktwal na ma-access ang mga ito.
Na ito ay hindi na nakapanghihimok, kaya sabihin aktwal na gamitin ang sobrang pandaigdigang
at aktwal na subukan upang magrehistro ng isang tao.
Sa froshims1 ako pagpunta upang gumawa ng isang pagbabago.
Ako sa pagbabago ng pagkilos na ang register1.php,
at ako ang paggawa ng isa pang bagay.
Ako ay uri ng napahiya sa pamamagitan ng ang kalidad ng aking mga webpage doon.
Medyo kahindik-hindik, totoo lang, kaya lumiliko ang
na maaari mong gamitin ang napaka madaling sa Web
ng ibang tao JavaScript code, ng ibang tao CSS
na sila nakasulat at bukas inaning at ginawang magagamit bilang isang library,
kaya magsalita, at halimbawa, narito ako gamit ang isang malayang magagamit library,
ng grupo ng code na sinulat ni ang ibang tao.
>> Twitter nangyari upang isulat ang code na ito, at ito ay tinatawag bootstrap library,
at ng grupo ng mga CSS style sheet, ng grupo ng css file
isang tao na tao na sinulat ni at naisip kung paano upang makakuha ng lahat ng maganda at medyo
sa gayon ay maaari mag-alala ang mga tao tulad ng sa amin ng kaunti mas tungkol sa aesthetics at tumuon higit pa
sa logic at ang aktwal na programming.
Sa pamamagitan ng pag-link nito sa may na tag, na kung saan ay ang parehong tag ko ginamit Tandaan para sa styles3.css mas maaga,
Ako ngayon ay may access sa isang file na tinatawag na bootstrap.min.css.
Min lamang nangangahulugan sila na minified ito at sila na nakuha mapupuksa ng lahat ng mga puting espasyo at iba pa
lamang upang matiyak na hindi nila pagpapadala ng sa akin ang higit pang mga byte kaysa sa aktwal na ako kailangan.
Ngunit doon ay isang buong bungkos ng CSS, kaya kung ako ngayon buksan bersyon 1 ng Frosh IMs
mapansin ang aking file ay talagang prettier.
Ngayong pa rin lamang itim at puti, ngunit mapapansin na ang sa pamamagitan ng lamang gamit ang kanilang mga style sheet
at paggamit ng ilang mga tampok nito sa aking form hindi kamangha-manghang,
pero talagang cleaner kaysa ito ay bago, at ang projector ay hindi ginagawa ito ng katarungan.
Mayroong maliit na kulay-abo na mga linya sa paligid ng mga pindutan at sa buong patlang ng teksto sa dito mismo,
ngunit tiyak na cleaner kaysa ito ay bago.
>> Ngayon, sa pagkamakatarungan, ako ay upang baguhin ang aking markup ng kaunti.
Ito ay bersyon 1, at mapansin ko na ginagamit ng ilang mga bagong tag,
at sa totoo lang, Mayroon akong walang ideya kung paano gawin ito hanggang ko basahin ang dokumentasyon
para sa bootstrap library Twitter, at sinabi nila sa akin kung nais mong gamitin ang aming library
gumamit ng isang fieldset elemento sa loob ng iyong form,
ilagay ang salita na gusto mong ipakita sa tabi ng isang patlang sa loob ng isang tag ng label,
pagkatapos ay bigyan ang iyong input ng pangalan, tulad ng bago,
at pagkatapos ay para sa checkbox, hindi lamang mo I-wrap ito sa isang elemento ng label,
gumamit ka ng isang bagay na tinatawag na isang klase, kaya hindi namin nakita ito bago,
ngunit makikita mo ang sa isa ng short ng pset 7.
Isang klase sa CSS ay nagbibigay-daan sa ka ng isang bagay na halos kapareho sa ID,
ngunit bago kapag kami ay isang ID na may simbolo #
na para sa isa at ang isang elemento lamang.
Ano ang maganda ang tungkol sa isang klase ay ang maramihang mga elemento ng parehong klase
o ang parehong bagay sa CSS inilapat dito.
>> Ngunit muli, higit pa sa mga sa maikling, at ang natitira sa ay kopyahin lamang at i-paste
mula sa kanilang dokumentasyon kung saan Nagdagdag ako ng isang label dito at doon.
At sa dulo, dahil ko na kasama tag ang link sa itaas,
lahat mukhang prettier awtomatikong
sa pamamagitan ng simpleng pag-minarkahan ang aking pahina sa isang paraan na
Twitter inaasahan, at may kaya maraming iba't ibang paraan
ng paggawa na ito, at ito ay talagang napaka naaangkop.
Sa puntong ito sa semestre, tulad ng makikita mo ang sa spec ng pset 7,
Googling sa paligid, pagbabasa sa mga aklatan, gamit ng ibang tao CSS
at JavaScript upang malutas mababa problema
sa hanay problema tiyak mismo ay hinihikayat at ang paraan
Web ay binuo mga araw na ito, sa pamamagitan ng nakatayo sa sa balikat ng iba pang mga tao
sa gayon ay maaari mo ba talagang tumuon sa bago at kawili-wiling mga problema.
Ngunit ipaalam sa ngayon tumuon sa, muli, ang logic.
>> Na isang mabilis na liko sa mga aesthetics lamang upang ipakita sa iyo ang direksyon kung saan maaari kang pumunta.
Ako pagpunta sa bumalik sa hindi maganda ang isa sa ngayon dahil lang
walang distractions sa Twitter bagay, at ipaalam sa akin sige at buksan
froshims2, kung saan, muli, naiiba lamang sa pagkilos, register2.php,
at sabihin tumagal ng isang pagtingin sa kung ano ang epekto ng dito.
Hayaan akong magpatuloy at i-type sa David.
Hindi ko ay kapitan oras na ito.
Sasabihin kong lalaki, Matthews, rehistro.
Diyablo. Okay, na ang isang tornilyo sa aking bahagi.
Panigan.
Register2, linya 22, kung walang laman o-paumanhin.
Natin reload.
Okay, kapag pagsusumite ng form na ito kung ano lamang ang nangyari?
Ko na nai-type sa David, nasuri lalaki, click Matthews, rehistro.
Ikaw ay nakarehistro. (Well, hindi talaga.)
Malinaw na ito ay isang hakbang na lampas lamang ang pag-print out ang mga nilalaman ng ilang mga variable,
ngunit kung ano ang file na ito ay aktwal na ginagawa?
Sa register2.php
mapansin na mayroon akong ilang bagong code.
Sa loob ng aking katawan tag mayroon akong mahalagang isang kung tao bumuo,
ngunit dahil ako co-mingling ito na may ilang mga HTML
Mayroon akong upang ipasok at lumabas sa PHP mode at pabalik, kaya sabihin makita kung ano ang ako ginagawa.
>> Sa unang linya dito ako sinasabi kung ito ang kaso
na post sobrang global ay walang laman para sa key ng pangalan,
ito sa ibang salita, kung ang user ay hindi nagbibigay sa akin ng isang halaga para sa pangalan sa form,
pagkatapos ay walang laman ay nagbabalik ng tunay dahil ang halaga ay walang laman.
O mapansin ang vertical bar-kung ang kasarian ay walang laman
sa loob ng mga ito ng espesyal na sobrang global, kung saan, muli, kumakatawan sa mga nilalaman ng form,
o dorm ay walang laman, pagkatapos ay ako pagpunta upang magpatuloy at sumigaw sa user.
Paano? Well, mapansin ako pagpunta sa sabihin dapat kang magbigay ng iyong pangalan, kasarian, at dorm.
Natin ibuyo aktwal na pagkakamali.
Hayaan akong bumalik sa aking form na. Hayaan akong i-reload upang i-clear ito.
At ako pagpunta upang mabigyan sila David, at hindi nila kailangang alam kung saan ako nakatira.
Magrehistro. Tila ko kailangan upang sabihin sa kanila kung saan nakatira ko.
Dapat kang magbigay ng iyong pangalan, kasarian at dorm. Bumalik.
>> At maaari kong i-click ang upang bumalik sa form na iyon, ngunit kung bakit ay na?
Well, sa kaso na pangalan ay hindi walang laman, ngunit kasarian ay, at dorm ay,
kaya ito buong expression na sinusuri sa true, at kahit na ang syntax ng kaunti bagong,
muli, ipasok namin PHP mode, pamilyar kung pahayag,
ngunit ang bagong bahagi dito ay tutuldok na ito, at ako ay screwed up sa pamamagitan ng omitting ng panaklong
sa pamamagitan ng aksidente, ngunit mapansin tutuldok, at nangangahulugan iyon na
kahit na namin ang paglabas ng PHP mode lahat
na sumusunod sa dapat na sabihin ang lahat walang kulang ang pangungusap sa browser
hanggang sa makita mo ang isang pang tao bloke, tulad ng ginagawa namin dito,
kung saan dapat mong sa halip tuhugan ito ang
hanggang sa makita mo ang endif, kaya ang ilang bahagyang bagong syntax
na nagbibigay-daan sa akin upang i-toggle sa pagitan ng HTML at PHP.
Maaari naming linisin ang up na ito sa kalaunan, ngunit sa ngayon,
ito ay uri ng isang nakapanghihimok na paraan ng error check ang form.
>> Ngayon, sinasabi ko hindi ka talagang nakarehistro dahil malinaw naman tapos kami na walang anuman kundi ang data,
kaya sabihin aktwal na subukan upang gawin ang isang bagay na cool na.
Sa froshims3 ang pagkakaiba lamang ay ako pagpunta upang isumite sa register3,
kaya ang HTML ay pareho.
Sa register3 mapansin ito.
Ito ay uri ng sexy.
Sa tuktok gumagamit ako ng isang require pahayag, kaya ito ay tulad ng # include.
Oras na ito ito ay hindi stdio.h o anumang bagay tulad na.
Ito ay isang PHP library, at ito ay tinatawag na PHPMailer.
Paano ko malalaman isama ang tiyak na ito naka-quote na string?
Basahin ko ito sa papeles, kaya kapag Sinabi nila sa akin ilagay ito sa tuktok ng file
kung nais mong gamitin ang isang espesyal na library na tinatawag na PHPMailer na ginagawa kung ano ang nakasulat.
Nagpapahintulot sa iyo na magpadala ng email sa pamamagitan ng PHP.
Ngayon sabihin mag-scroll pababa sa karagdagang.
>> Pansinin upang simulan ako sa PHP mode buong oras na ito,
kaya ngayon mapansin pababa dito pagkatapos import na library,
kaya upang magsalita, ako paggawa ng ilang mga tseke ng katinuan.
Kung ito ang kaso na ang pangalan ay hindi walang laman
at kasarian ay hindi walang laman-mapansin ang mga tandang padamdam
at dorm ay hindi walang laman, pagkatapos ay ang gumagamit ay lohikal na napunan ang form, hindi bababa sa sapat.
Wala akong pakialam kung hindi sila kapitan o hindi. Kailangan ko lang ang kanilang pangalan, kasarian, at dorm.
Kung sila pa napunan ang mga kaya na wala ng mga patlang ay walang laman
ito ay bahagyang bagong syntax.
PHP, bilang isang bukod, ay isang bagay na nakatuon sa programming language
kung saan ang ilan sa ka guys ay maaaring isipin ang mula APCS o katulad.
Sa ngayon, kung pamilyar, lamang malaman na gamitin ang library
mayroon kang magsulat ng isang linya ng code tulad nito gamit ang isang bagong keyword,
literal isang bagong keyword na tinatawag na bagong.
Ngunit lampas na, mayroon kaming ilang mga pamilyar na syntax.
Isang arrow operator, na kung saan ay katulad sa kung ano ang ginamit namin para sa mga structs sa konteksto ng payo.
Para sa araw na PHP ay hindi magkaroon ng mga payo,
ngunit alam sa ngayon na sa loob ng variable ng mail
mahalagang uri ng isang pointer sa isang espesyal na library
na ang ibang tao sinulat ni, at kung gusto ko upang ma-access ng mga tiyak na pag-andar
sa loob ng library na ko, tulad ng sa C, gamitin ang mga arrow operator,
kahit na ito ay hindi tunay na payo.
Uri ng sariling bersyon ng PHP nito.
Nangangahulugan ito na pumunta sa library at tawagan ang IsSMTP function na.
SMTP, manariwa sa diwa, mula sa aming mga Warriors ng Net ay tumutukoy sa email,
at lamang ay nangangahulugan na gamitin ang isang email server para sa Frosh IMs pagpaparehistro.
>> Ano host ko nais na gumamit?
Well, Harvard, kung mo ang Google paligid, may isang email server na tinatawag na smtp.fas.harvard.edu.
Kung ikaw ay paglalaro ng kasama sa bahay o nakatira ka sa isang Comcast network
maaaring ito ay bagay tulad smtp.comcast.net.
Lubos na ito ay depende sa kung saan ka nakatira at ang iyong ISP ay.
Pagkatapos na ako pagpunta upang i-set ang aking mula sa address mang na jharvard@cs50.net.
Pagkatapos ay ako pagpunta upang itakda ang upang matugunan na jharvard@cs50.net.
Ang tanging paraan na alam ko ang mga function ay tinatawag na SetFrom at AddAddress
, muli, ako basahin ang dokumentasyon.
Ito ay hindi uri ng magically kilala sa lahat ng mga programmer.
Pagkatapos ako magse-set ng paksa sa "pagpaparehistro."
At ngayon ang linya na ito ay isang bit pangit dahil sa kung ano ang tuldok operator ibig sabihin sa PHP?
Sinuman alam?
Pagdugtungin.
Sa C ay isang sakit sa ulo upang pagdugtungin ang 2 string.
Mayroon kang humarap sa malloc o realloc o lahat ng na mga bagay-bagay
lamang para i-extend ang haba ng isang string.
Sa PHP, sa JavaScript at iba pang mga wika
maaari mong karaniwang gawin ito na may isang solong character.
Sa kasong ito, tuldok ibig sabihin nito ay ang string na ito dito
at ikabit ang string na ito.
>> Oh, at sa pamamagitan ng ang paraan, maglagay dito ang string na ito,
na mangyayari sa isang variable sa loob ng na sobrang global.
Pagkatapos magkabit ng dito ng isang bagong linya, kaya ang lahat ng mga tuldok ibig sabihin
panatilihin ang paggawa ng isang mas malaki at mas malaking at mas malaking string,
at wala kang pakialam sa lahat ng tungkol sa malloc o tulad sa isang wika tulad nito,
at may iba pang mga paraan upang gawin ito, ngunit ito ay isa ng pinakamabilis na
paraan upang maglatag ito.
Ano ito ginagawa?
Ito ay lumilikha ng isang email na katawan na pagpunta sa sabihin ng Pangalan: Captain: Kasarian: Dorm:
lahat sa hiwalay na linya, at pagkatapos ay sa wakas,
isang linya ng code, at ako pagpunta upang huwag pansinin ito sa ngayon.
Kung == false ay nangangahulugan lamang kung may nangyaring mali,
ngunit magic ang mangyayari dito.
Mail ang ipadala ay nangangahulugan na magpadala ng mga email na ito.
Natin makita kung ano ang net resulta ay.
Sa ilalim ng file, mapansin ito pagpunta sa sabihin ikaw ay nakarehistro talaga
kung nakakuha ako na malayo.
Kung, bagaman, ang user Turnilyo, mapapansin na na sinimulan namin ito
kung ang kundisyon dito, kung hindi walang laman at hindi walang laman
at hindi alisan ng laman namin ipadala ang mail.
Kung hindi namin ay pagpunta sa ipadala ang linya ng code,
na ang epekto, tulad ng makikita mo sa pset 7, ng pag-redirect ang user
bumalik sa kung saan sila nanggaling, froshims3.php.
>> Daliri tumawid, kung hindi man, ito ay ang pinaka-disappointing demo ngayon.
Narito kami.
Hayaan akong buksan ang aking email inbox para sa jharvard sa Gmail.
Walang e-mail ngayon. Ayos lang.
Ngayon hayaan mo akong magbukas ng froshims3, na ang ikatlo at huling halimbawa titingnan namin dito.
Okay, dito namin pumunta.
Nate, makikita niya na ang kapitan, lalaki, mula sa, sabihin nating, Apley.
Magrehistro. Okay, ikaw ay nakarehistro talaga.
Ngayon kung mag-scroll ko sa aking email, oh, aking Diyos.
Ko dynamic na nagpadala ng email sa Web.
>> Natin iwanan sa na tandaan.
Video ay nalalapit para sa panayam na namin nasagot ang. Nakikita mo sa susunod na linggo.
[CS50.TV]