[MUSIC nagpe-play] Tagapagsalita 1: Ito ang CS50 at ito ay ang katapusan ng linggo pitong. Ngayon ay marahil na kung saan namin talagang pagtuturo sa iyo ng mga wika. Ipinakilala namin sa nakalipas na ilang linggo ng HTML at CSS, alinman sa kung saan ay programming languages. At sa katunayan, kahit kami ay hindi tingnan ay halos lahat ng mga tag na HTML ay dumating sa at halos lahat sa mga katangian na nanggagaling CSS sa, na ang uri ng mga ito para sa HTML at CSS. Bibigyan namin karaniwang lamang magsimula sa pag-aakala na kayo maunawaan ang pangkalahatang ideya ng mga tag, at mga katangian, at mga pahina na ipinadala mula sa client sa server. Dahil ngayon namin simulan upang tumingin sa ibang programming language, PHP. Kami ay pagpunta sa gawin ito sobrang mabilis. Hindi namin pagpunta sa magturo sa iyo PHP per se, marami tulad namin ay hindi maghangad na magturo sa iyo C, per se, ngunit sa halip ng programming. At sa katunayan, ang isa sa mga layunin para sa kursong ito ay hindi na magturo sa iyo C, o HTML, o CSS, o PHP, o anumang bilang ng iba pang mga salita buzz o acronym, ngunit sa halip ang computer science at kung paano programa sa panimula. At sa katunayan, ngayon namin simulan upang kumuha ng mga training wheels off ang lahat ng mga pa sa pamamagitan ng paglipad sa pamamagitan ng isang wika na tinatawag na PHP, tulad ng sumusunod. Narito ang kung ano ang hitsura wikang ito gusto. Lumalabas na hindi na kailangan para sa isang pangunahing pag-andar sa isang programa na nakasulat sa isang wika na tinatawag na PHP. Kaya na naka-tunog ng isang maliit na mas simple kaysa sa C, na kung saan kami ay pamilyar. Ito ay lumiliko out na kung ikaw nais na idedeklara isang variable, gawin mo ito halos identically sa C. Ngunit mayroong malinaw na isa pagkakaiba dito kapag ipinapahayag ko ang isang string, o marahil dalawang mga pagkakaiba. Ano ang hitsura ng iba't ibang? Madla: Ang dollar sign. Tagapagsalita 1: Oo, may dollar pipirmahan, na hindi namin nakita bago. At kung ano ang nawawala? Oo? Madla: [hindi marinig] Tagapagsalita 1: Oo, hindi na uri ng data. Kaya ito ay lumiliko out na PHP ay kung ano ang aming tumawag sa isang maluwag type na wika, na kung saan ang C Mahigpit na-type. Maluwag na-type lamang ay nangangahulugan na mayroong iba't ibang mga uri ng data, may mga string, at ints, at sa kamay. Ngunit ang mga numero sa computer na out. Ikaw ang programmer ng tao Hindi mo na kailangang malaman ito. Kaya lahat ng kailangan mong gawin idedeklara ang isang variable ay dollar sign, ang pangalan ng iyong variable, at pagkatapos ay, halimbawa, quote magpanipi, hello mundo. Well ito ay kung ano ang isang kalagayan kamukha sa PHP. Anumang pagkakaiba? Hindi. Kaya ito ay lumiliko out ang mga ito ay magkapareho. At maaari kang magkaroon ng mas kaunting mga sanga o higit pang mga sanga, ngunit ang syntax liko out eksaktong pareho. Boolean expression Maaari orderin magkasama. Boolean expression maaaring anded magkasama. May switch mo pa rin. Kahit na hindi mo pa nagamit ng mga ito, ang mga ito ay umiiral sa C at ang mga ito sa pagtakbo katumbas sa PHP. At sa katunayan, sa PHP na ang mga ito mas malakas ng kaunti. Sa C, maaari lamang ihambing mo ang ilang mga uri ng data tulad ng ints at char, samantalang sa PHP maaari mong aktwal na ihambing buong simulan string nang hindi na kinakailangang mag-alala tungkol sa mga payo at ang gusto. Kaya dito ay isang para sa loop. Ito ay lamang ng pseudocode code, kung ikaw ay. Ngunit structurally ito ay magkapareho sa C. Narito ang isang habang loop, pseudocode therefore-- magkapareho sa C. Narito ang isang gawin habang loop-- magkapareho. At kaya may mga uri ng ang pattern na ito dito kung saan ang mayroong ilang mga iba pang syntactic mga tampok sa katunayan kami ay pagpunta upang makita. Sa katunayan, dito ay isang magandang paraan sa PHP kung saan, kung gusto mong umulit sa ibabaw ng isang array, at ikaw ayaw mong tumalon sa pamamagitan ng mental at sintaktik hoops ng pagkakaroon int i katumbas ng 0, i mas mababa kaysa n, i plus plus-- saan ay lamang ng isang pulutong ng mga nakakainis na mga syntax. Maaari mong sabihin ng kaunti pa fluidly para sa bawat numero ng numero, kung saan sa kasong ito sign numero dollar, Ako ipagpalagay, ay tulad ng isang array na tinatawag na numero. At pagkatapos ay ako sa pag-aakala na numero, isahan, ay magiging isang variable. At kung ano ang PHP ay gagawin para sa akin bilang ako umulit higit na ito loop ay, sa bawat pag-ulit, ito ay pagpunta update ang variable na numero sa maging ang mga elemento ith sa mga numero, plural. Kaya humahawak ito lamang ang lahat ng iyon para sa akin. Walang mga square bracket, walang dollar sign, walang semi-colons. Ito ay lamang ng isang maliit na mas simple. Well, kung gusto mo ng array, ito ay lumiliko out ka maaaring gawin ang isang bagay na medyo kapareho sa C. Ang syntax ay medyo naiiba. Ngunit dito ay isang array na tinatawag na dollar sign numero. At ginagamit ko, sa PHP, square bracket, ito ay lumiliko out. At kami ay pagpunta upang makita muli ang mga ito sa JavaScript-- pa ng isa pang wika. Ko na lang gamitin square bracket pagtatanda na magkaroon ng isang listahan ng mga comma separated ng integer, sa kasong ito. Ngunit iyon ay nagbibigay sa akin ng isang array. Ngunit kahit na mas makapangyarihan sa PHP, Mayroon din namin kung ano ang mga karaniwang tinatawag na nag-uugnay array. At ng maraming mga wika Mayroon ang mga ito pati na rin. Ang mga bagay tungkol C array ay na ang mga ini-index para sa isang array, ang mga bagay na iyong gamitin sa mga square bracket sa pamamagitan ng na access mo elemento, dapat na kung ano? Madla: [hindi marinig] Tagapagsalita 1: Mayroon silang maging mga numero o integer, partikular na mula sa zero sa up. Well, sa PHP, at, ito ay lumiliko out, sa ibang wika, maari kayong magsimula na may index na hindi numeric. Ngunit ang mga ito ang tunay na mga salita o parirala, sa gayon ay sa halip na subukan na tandaan na kung saan ang isang bagay ay, o naka-imbak sa isang variable i, Maaari mong aktwal na gamitin ang isang salita at sabihin na- maaari mong sabihin ng isang salita tulad nito. Kaya dollar sign quote ay ang pangalan ng isang variable dito. Ito ay medyo funky syntax iyon ang pag-uugnay ng dalawang susi halaga pares para sa mga variable na ito. Partikular, ito ay nagbibigay sa akin isang array na ay ng 2 haba. Ngunit ang index ay hindi 0 at 1. Ang index ay quote magpanipi simbolo at presyo magpanipi quote. At ang mga halaga ng mga ini-index, ayon sa pagkakabanggit, ay FB para sa Facebook at $ 79.53, kapag huling ko naka-check ang isang presyo para sa mga ito. Ano ang ibig sabihin nito? Well, ito ay nangangahulugan na sa halip ng pagsulat ng code tulad nito, kung saan ginamit ko upang gawin ang isang bagay tulad ng dollar sign-- o sa halip, sa C Hindi ko kahit na magkaroon ng isang dollar sign. Gusto ko ng isang bagay tulad ng mga quote at pagkatapos ay Gusto kong gawin bracket i upang makakuha ng sa ilang mga nagkataon ayon sa bilang na-index na halaga. Simula ngayon sa PHP, kung ikaw nais na makakuha ng sa ilang mga halaga, uri ng kami ng mas semantic expressiveness. Lamang ng isang magarbong paraan ng sinasabi ng aming makakaya tumawag lamang sa mga bagay-bagay kung ano sila. At kung gusto mong makakuha ng sa simbolo ng isang bagay, ngayon mo literal na gawin quote magpanipi symbol sa square bracket sa halip ng isang lamang number. Kaya ito ay isang magandang kaginhawaan. At na uri ng mga ito sa ngayon. May kumpol na iba pang mga tampok sa PHP. At sa katunayan, PHP ay may kilalang-kilala panlipunan. Dose-dosenang, daan-daan ng mga function ay may Kaya maraming PHP-- higit nagmula sa C. At iyan ay hindi inilaan upang matabunan ngunit sa halip ng tulong nauunawaan mo na kami ay walang na kailangang magsulat ng code na uri ng down dito conceptually. Ngayon ay maaari naming lamang simulan ang pagkuha bentahe ng mas advanced na mga tampok na wika tulad ng PHP mayroon. Kaya hindi namin kailangang mag-alala tungkol sa paglipat ng mga bagay sa paligid sa memory. Hindi namin kailangang mag-alala tungkol sa malloc at ang lahat ng mga mas mababang antas, malakas na mga detalye na ikaw makipagbuno sa, kung hindi na laban sa, pset5, ngunit maaari kang magsimula sa sa lalong madaling panahon ang mga ibinibigay. Sa katunayan, magsulat ng isang super ipaalam simpleng programa sa PHP, tulad ng sumusunod. Pupunta ako sa pumunta ulo sa CS50 IDE dito, at kung ano ang ako pagpunta sa gawin ay lumikha ng isang bagong file, na tunay lamang ay magiging tinatawag na halo dot PHP. Kaya sa halip na tuldok c, ito ay pagpunta sa ay tinatawag na tuldok PHP. At pagkatapos ay sa file na ito, Maaari ko bang simulan ang pag-type. Ngunit ito ay lumiliko out na ang mga isang bagay na kailangan kong malaman ay na ang anumang PHP file sa pangkalahatan, ang mga pangangailangan upang simulan na may ilang mga espesyal na syntax. Katulad sa espiritu sa HTML, ngunit muli, PHP ay isang programming language, hindi isang markup language. Kaya ang bawat file, at ito ay isang uri ng tangang naghahanap Kukunin ko umamin. Open bracket, tandang pananong, PHP. At ito lamang ang paraan wika ng sinasabi, hey, dito ay ilang mga code sa computer nakasulat sa isang wika na tinatawag na PHP. At pagkatapos ay sa dulo ng iyong mga file, gawin mong uri ng uri ng ang kabaligtaran. Hindi mo isulat muli PHP, ikaw lamang gawin tandang pananong, angle bracket. At pagkatapos ay anumang bagay ilagay mo sa loob ng mga ito ng dalawang mga tag, kaya na magsalita, ay magiging, o dapat ay PHP code,. Kaya sabihin gawin sobrang simple ang isang bagay. Pupunta ako sa magpatuloy at gawin print def, hello world, backslash n, i-save. At ngayon sa aking prompt, Pupunta ako sa gawin, gumawa hello-- no, ako pagpunta sa gawin, dot slash hello. Hindi, tuldok slash, hm. Kaya ang isang bagay ay naiiba. At sa katunayan, ito ay isang mahalagang pagkakaiba pagitan ng PHP at wika tulad C. C ay isang tinatawag na naipon wika. Ano ang ibig sabihin para sa C na naipon? Ano ang implikasyon? Oo. Madla: Isinulat ito sa machine code kaya ito ay maaaring magpatakbo ng mga computer. Tagapagsalita 1: Eksakto. Mayroon kaming upang unang-convert ito sa tinatawag machine code, zero at mga, bago ito ay tunay na maging executable at naiintindihan ng mga computer. Sa pamamagitan ng Intel sa loob. Sa pamamagitan ng ang CPU sa loob ng computer. PHP, sa pamamagitan ng kaibahan, ay kung ano ang tawag dito isang interpreted wika, na kung saan Nangangahulugan ito na hindi mo na itala ito sa zero at mga, machine code, sa iyo sa halip iwanan ito bilang source code. At sa iyo sa halip na pumasa ito sa lalong input sa isang programa, ang isang interpreter na may ibang tao na sinulat taon na nakalipas na nauunawaan ito linya sa pamamagitan ng linya, ng character para sa character. Kaya sa ibang salita, mga tao out there na sinulat isang programa na ang magiging hitsura sa iyong code linya sa pamamagitan ng linya, at malaman kung ano dapat gawin ang mga computer, walang pag-convert ito direkta sa zero at mga. Kaya kung nakikita ito ng isang para sa loop, ito sa tinatawag na interpreter ay magiging tulad ng, ang lahat ng karapatan, ang dapat kong gawin at muli at muli isang bagay muli. Anong gagawin ko? Hayaan akong tumingin sa susunod na linya. Hayaan akong tumingin sa susunod na linya. At ito ay tunay na kahulugan ito sa bawat linya. Kaya upang maisagawa ito, hindi ako gumagamit ng make. Hindi ako gumagamit ng tuldok slash sa kasong ito. Sa halip kong gawin PHP, na kung saan ay ang pangalan ng isang programa, a.k.a. Ang isang interpreter, na ang pre-install sa CS50 IDE, at ngayon ang kailangan ko upang pumasa sa isang argument ng linya ng command, na ay lubos na lamang ang pangalan ng maghain na gusto kong bigyan ng kahulugan. O mas casually, na gusto kong tumakbo. At kung ako pindutin ang Enter, doon na namin ito. Kamusta mundo. Ngayon ito ay lumiliko out na ako ginamit na def print kusa sa tulay sa amin mula sa C sa PHP. Karamihan sa mga programmers PHP, tulad ng makikita mo, hindi kahit abala gamit print def. Ginagamit nila lamang ng isang function na tinatawag na print, na kung saan C walang ginawa. At kaya kung gawin uli ko ito ngayon, ito ang tunay behaves halos pareho sa pagtakbo. Hindi ko magamit ang mga porsyento s at porsiyento i at iba pa, ngunit may mga ibang mga paraan sa PHP ng paggawa na. Ngunit ito ay lamang sa sabihin na syntactically, na iba sa ilang mga kakatwang mga bagay-bagay itaas, at ang ilang mga kakatwang mga character pababa sa ibaba, ang mga konsepto na ngayon ng programming sa iba pang mga wika ay magiging eksaktong pareho. Sa katunayan, gawin ang isa sa iba pang mga halimbawa. Kaya ako pagpunta sa sige at isara ang file na ito. Hayaan akong gumawa ng isa pang isa na Tatawag ako kondisyon 1 dot PHP. Kaya walang zero, dahil ang aking ginawa ay lumingon ako ng ilang linggo na ang nakakaraan, nagkaroon kami ng isang file na tinatawag na kondisyon 1 dot C. At kung ano Ay ko-convert ito sa aking ulo, at sa dito sa papel, at sa lalong madaling panahon sa kurso ng website, linya sa pamamagitan ng linya sa PHP. Kaya sa bersyon C, ginawa namin ang isang bagay tulad ng string s ay makakakuha makakuha string. Kaya ito ay isang maliit na naiiba upang gawin iyon sa PHP. Sa halip, ako lamang ang pagpunta na gawin, o sa halip, ako makakakuha maaaring gawin int n makakuha ng int, sa ganitong halimbawa nang mas maaga. Kaya sa halip na iyon, ako pagpunta sa gawin n makakakuha basahin line, Gusto ko ng isang integer, please. Kaya ito ay ang aking prompt lamang. At kaya ito ay lumiliko out, at Gusto kong malaman na ito lamang mula sa pagkakaroon ng basahin o nakita ang pag-andar bago, basahin ang mga linya ng mga function sa PHP tumatagal ng isang argument na ay isang prompt para sa mga tao, at ang kanyang mga layunin sa buhay ay upang basahin ang isang linya ng teksto na siya uri in. At pagkatapos ay nag-iimbak ng mga ito na text sa variable n. At ngayon baka gusto ko na gawin ang isang bagay tulad ng ginawa ko linggo nakaraan, sa tulad ng linggo isa sa mga klase. Kung n ay mas malaki sa zero, at pagkatapos, pupuntahan ko humiram na syntax lang namin nakita, print def, pumili ka ng isang positibong numero, backslash n. Iba Pa kung n ay katumbas ng katumbas ng zero, ako pagpunta sa sige at sabihin, print def, kayo pumili zero backslash n. Iba Pa, ang kaso dito ay dapat na ng kurso ay, print def, kayo pumili ng isang negatibong numero. At maaari naming tiyak na ipatupad ang logic sa bagay na ito sa isang grupo ng mga iba't-ibang paraan, ngunit ang punto dito ay na syntactically, bahagya anumang bagay ay bago. Ito lang ang dollar sign at isang bagong function at basahin linya. Ngunit sa panimula, kung ano ang bago ngayon ay ako interpret ito. Ako makapasa ito bilang input sa ibang programa. Kaya kung nais kong patakbuhin ito, kung Hindi ko gumawa ng anumang mga pagkakamali, Pupunta ako upang tumakbo PHP, ng kondisyon 1 dot PHP, Ipasok, Pupunta ako sa type ang numerong 50, at sabihin ipalagay para sa ngayon ito gumagana. Dahil ang logic ay ang parehong bagay-bagay tulad ng isang linggo. Lahat ng karapatan, kaya na medyo underwhelming, di ba? Ito namin mai-gawin sa anumang bilang ng mga wika. Ni gawin na mas malakas ang isang bagay na paraan Hayaan. Itakda Sabihin problema matapos lima. Kaya ako pagpunta sa magpatuloy at gawin ito. Pupunta ako upang lumikha ng isang file tinatawag diksyunaryo dot PHP, at hilig bilang maaari kang maging mag-agawan pababa maraming ng mga tala, tulungan ang mga tala lamang sa iyo kung ikaw ay pinahihintulutan upang ipatupad ang mga problema set limang sa PHP. Ngunit kami ay makita kung gaano kabilis namin ngayon maaaring ipatupad na parehong hanay ng problema. Kaya sa diksyunaryo dot PHP, ako ay pagpunta na ipalagay na mayroon nang isang file sa mundo na tinatawag speller. At sa katunayan, ginawa ko ito nang maaga, at hindi namin maglakad sa pamamagitan ng mga linyang ito sa pamamagitan ng linya, ngunit kung ikaw ay curious mamaya at talagang gusto balutin ang inyong isip sa paligid ng pagkakaiba sa pagitan c at PHP, literal ihambing ang file na ito, speller, mula sa source code ngayong araw na Magpo-post kami mamaya ngayon, laban p set limang speller dot c na bigyan ka namin, at ito ay halos katulad na linya sa pamamagitan ng linya. Mayroong ilang higit pang mga palatandaan dollar. Ang isang pares ng mga function ay isang maliit na naiiba. Ngunit ito ay isang magandang paraan ng uri ng pagtingin sa kung paano isalin mo sa isang wika papunta sa isa pa. At ito ay halos magkapareho ng linya para sa linya. Ngunit ako pagpunta sa ipinapalagay na iyon mayroon na, at kung ano ang ako pagpunta sa gawin dito ay subukan upang pumutok ang iyong bale pamamagitan reimplementing ang kabuuan ng problema set limang paraan mas mabilis kaysa sa iyong na-paggawa sa gayon ay malayo. Kaya halimbawa, ako pagpunta sa unang magpahayag ng isang global variable na tinatawag na laki, at itakda ito katumbas ng zero. Ngayon na ang hindi gaanong savings. Logro ikaw ipinatupad laki ng parehong medyo marami, o hint hint, ay ngayong gabi o bukas, lamang gamit ang isang global variable na tinatawag na laki, at pag-set ito katumbas ng zero. Iyan ay hindi isang partikular na amazing spoiler. Kaya kung ano ay istruktura ng iyong data pagpipilian, mga mo na may dived in at basahin ang spec, kaayusan kung ano ang data may karamihan ng ikaw ay gumagamit? Ang isang hash table o subukan, siguro ilang variant nito. Kaya pagpapatupad ng isang hash table ng hindi bababa sa, ay uri ng isang pulutong ng mga linya ng code, right? At hindi lahat ng mga ito ay maaaring maging functional sa puntong ito sa linggo, ngunit na fine. Dahil sa PHP, kung ako gusto ng isang hash table, tapos na. Right? Kaya na variable na ko lamang ipinahayag ay malinaw naman tinatawag sign talahanayan dollar, per sa pagpapakilala bago. Ngunit ko talagang lamang nais, sa sa katapusan ng araw, ang isang array. Ngunit hindi isang ayon sa bilang ng index array, dahil na tulad ng linggo dalawang mga bagay-bagay, kapag pinag-usapan namin tungkol sa array. Gusto ko ng isang hash table. Ngunit isang hash table ay talagang lamang ng isang kongkreto paraan ng kasabihan, nais mo ng isang nag-uugnay array. Gusto mong ma- associate key na may halaga. Keys na may halaga. Ano ang isang diksyunaryo, talaga? Well ito ay isang buong grupo ng mga key. Mga salita tulad ng mansanas, peras, at saging, at ang lahat ng mga salitang Ingles na ibigay namin sa iyo. At ang mga halaga na ikaw ay epektibo pagpasok sa iyong diksyunaryo ay alinman sa totoo, o ang kawalan, false. Sa ibang salita ikaw ay pagpasok isang buong grupo ng mga pangunahing mga pares ng halaga, mansanas, totoo, peras, totoo, banana, totoo. Kaya na kapag mong makuha o tumingin up na data sa iyong talahanayan ng hash sa iyong mga pag-andar check, ikaw ay alinman sa pagkuha ng likod ng isang sagot, yes, natagpuan ko ito sa aking complex hash table, o hindi, ito ay hindi doon, kaya bumalik ka false. Kaya upang gawin iyon, ang kailangan ko ay ang data structure tulad ko ipinanukalang bago. Kailangan ko lang ma upang iugnay ang mga salita tulad ng, quote magpanipi, simbolo, na may halagang gusto mo, totoo. Kaya doon ang aking hash table. Ni ang tunay na gamitin natin ito. Kaya may ilang mga pag-andar Kailangan ko na ipapatupad. Pupunta ako sa sige at kumagat off ng isang function na tinatawag na laki. Ito ay tumatagal ng walang argumento. Hindi ko na kailangang mag-abala sa ang salita, walang bisa, sa PHP. Lamang ako ng pagpunta upang bumalik size. At bilang isang bukod, PHP ay ito minorly nakakainis na detalye, kung saan kung ang isang bagay ay global, kailangan mong sabihin ang pag-andar na kung saan ikaw ay gumagamit ng ito, hey, ito ay isang pandaigdigang variable. So, minor kahangalan, ngunit ikaw may sa gawin ito gayunman. Kaya kung ano ang tungkol sa pag-load? Pupunta ako upang ipatupad isang function na tinatawag load na tumatagal sa pangalan ng isang diksyunaryo, tulad ng sa hanay ng problema limang. At bago ako magpatuloy, paunawa na mayroon akong hindi tinanggal type ng lubos ang parehong bagay. Ano ang malinaw naman naiiba sa PHP tungkol kung paano mo ipahayag ang isang function kumpara C? Oo. Madla: [hindi marinig] Tagapagsalita 1: Hindi type return. At sa katunayan, iyon ang kaso, PHP sa abot ng maluwag na ito ay nai-type, ay din ng isang maliit na nanggigitata sa na kahulugan. Hindi mo tukuyin bilang ang programmer ano ang nagbabalik ang function na ito. Gusto mong mag-aktwal na hitsura sa code upang malaman na out. O basahin ang mga komento o mga babasahin. Kaya plus at minuses ng ang mga uri ng mga desisyon. Ngunit ko na kailangang sabihin ang susi salita, function. At kapag malaman namin JavaScript sa loob ng ilang linggo kami ay pagpunta upang makita ang mga parehong bagay muli, ngunit ito ay ang parehong mga ideya. Ang pangalan ng function, argument nito o mga argument o kakulangan nito, at ngayon dito ay ang pagpapatupad. Kaya ako pagpunta upang i-cut ilang mga sulok lamang upang maging dramatic para sa sandali lamang. Ngunit ako pagpunta sa sige at sabihin ito. Ito ay kung paano ko ma-load isang file sa isang array. May isang function sa PHP tinatawag na file. Ipasa mo ito sa pangalan ng isang file. Kamay mo ito sa likod ng isang array, sa loob ng kung saan ay ang bawat linya mula sa file. Mula sa zero, isa, sa hanggang sa n minus 1 linya. Iyan na ang lahat, di ba? Walang f read. Walang f get s. Walang percent s. Walang sakit ng ulo. Walang feof. Lahat ng mga bagay-bagay na kung saan matagal mo nang pakikipagbuno marahil, may p set ng apat at limang, umalis. Kaya ko lamang basahin ang mga linya sa ang file, at pagkatapos ay alam mo kung ano? Kung gusto ko upang umulit sa mga salitang iyon, Ang maaari kong gawin, para sa bawat linya ng linya. Tandaan na ito ay uri ng isang matalino paraan ng iterating sa ibabaw ng isang array, index sa pamamagitan ng index, at sa bawat pag-ulit na pagtawag kasalukuyang linya, sign line dollar. At dito mismo ako pagpunta upang pumunta at sabihin table, bracket, linya, makakakuha totoo. Sa ibang salita, ito ay kung paano ko ipasok sa aking hash table sa PHP. Sinasabi ko sign talahanayan dollar, na kung saan ay ang aking nag-uugnay array na Walang laman ang bawat linya ng code up sa itaas. Pagkatapos ay index ko sa mga ito Hindi, gamit ang isang numero, ngunit literal gamit ang keyword na ako asikasuhin. Siguro ay mansanas o peras o saging o kahit ano, ngunit partikular na ako sa pag-index sa mga ito tulad ng iminungkahi ko kanina. Kumuha ako sa pangalan ng aking nag-uugnay array, at pagkatapos ay ako gamitin quote magpanipi sa square bracket na may isang string, sa halip ng isang aktwal na numero. At kaya na ito. Ang pag-andar ng pag-load ay tapos na. Kapag na loop iterates, Naglagay ako lahat ng bagay sa hash table. Maliit disclaimer Ngayon, may isang ilang mga bagay-bagay ko na kailangan ayusin. At ang bersyon makikita ko ang post online ay magkakaroon ng lahat ng mga nuances, ngunit ito ay halos lamang pagpunta sa ilang error checking at ang ilang mga menor de edad pag-aayos. Ngunit iyon nga ang diwa ng mga ito. Kung gusto ko ngayon upang ipatupad ang function na tinatawag na suriin, na inaasahan ng isang salita bilang argument nito, paano ko maaaring pumunta tungkol sa paggawa na? Well, kailangan lang ako pagpunta sa sabihin, kung sa loob ng aking mesa, sa salita ng lokasyon, kung naka-set. Kaya kung may is-- talaga, alam mo kung ano? Pupunta ako sa gawin ito sa isang piraso ng pseudocode. Ngunit ang ideya ay ang parehong. Kung katumbas ng totoo na, nagbabalik ng tunay. Lahat tama. Else-- maaari mong uri ng makita kung saan ito ay going-- upang bumalik false. Tapos na. Check ay tapos na. Medyo magaling, di ba? At kaya kung ano ito ay talagang pagkuha sa? At ito masyadong, pinutol ko ang ilang sulok. Hanapin sa bersyon online para sa lahat ng mga bahagyang nuances. Ngunit iyon ang diwa ng mga ito. Index sa iyong uugnay array, a.k.a. Hash table, tingnan kung mayroong isang halaga doon, kung ito ay nakatakda sa true, at kung gayon, nagbabalik ng tunay. Kaya mo whittled namin down lahat ng pagiging kumplikado. Kaya uri ng isip pamumulaklak, di ba? Hindi ko ay abala pagtatapos ito sa mag-ibis, dahil sa fact-- oh, alam mo kung ano? Oo, tapusin ang mga ito sa magdiskarga ipaalam. Alisan ng bala sa isang hash table ay maaaring tumingin tulad ng pag-andar magdiskarga, bumalik. OK kaya na mag-ibis. Dahil may walang mag-ibis, di ba? Walang malloc. Ako ay hindi malinaw na hilingin sa mga operating system para sa anumang. Ko lamang na nagsimula gamit variable. At kaya ito masyadong ay isang paghahayag ng mga katangian ng mas mataas na antas ng mga wika. Kaya muli, karamihan sa mga kataga na ito na na pakikitungo rito may C. Super mababang antas. Maaari mong makita ang memory ng computer. Maaari mong pindutin ang sa iyo kahit ano gusto sa RAM ng iyong computer, para sa mas mahusay o para sa mas masahol pa. Hanggang dito, kami ay pagpunta na magbigay ng kapangyarihan. Ngunit ang aking diyos, tumingin sa kung paano higit na mas mababa code na sinulat ko. Sa katunayan kung hindi ako ay pakikipag-usap at pakikipag-usap sa paglipas ng aking pag-type, Gusto namin ay tapos na halimbawa na ito ng limang minuto ang nakalipas. Kaya kung ano ang presyo na binabayaran? Tumagal ng isang tumingin rin ipaalam. Tignan natin. Pupunta ako sa sige at patakbuhin CS50. Hayaan akong pumunta muna sa mga halimbawa ngayon kung saan Mayroon akong mga direktoryo teksto tulad ng dati. Pupunta ako upang patakbuhin ang mga solusyon na ito ay may tinatawag na hanay ng problema limang speller, na nasa account CS50. At ako pagpunta upang patakbuhin ito sa isang bagay malaki tulad ng King James Bible, kaya lang na talagang inilalagay namin ang kawani solusyon sa pagsubok. Ngayon minsan ang internet ay isang maliit na mas mabagal, ang isang maliit na mas mabilis, maaaring magtagal upang mag-scroll. Ngunit ito kinuha ng isang kabuuang 0.56 segundo i-spell-check ang King James Bibliya gamit ang solusyon staff. Kaya medyo mabuti. Maaaring Taos ay marami hinaan, at iyon ang ganap fine. Ngunit ito ay tama dito. Kaya na ang solusyon staff. Kung pupunta ako sa at linisin ang mga bersyon ng PHP. At ako pagpunta sa gawin ang isang maliit tulad ng pagbe-bake ng show na bagay. Kami ay pagpunta sa gawin ang mga code na sinulat ko mas maaga, sa gayon ito ay ganap na tama. Dahil ang mga code na sinulat ko ay hindi pagpunta upang maging ganap na tama lamang ngayon. Ngunit kung nagpatakbo ako ng mga bersyon ng PHP, kung ano ang kailangan kong bigyan up ngayon? Kinuha sa akin ng limang minuto upang ipatupad p set limang, inaangkin ko. Ano ang presyo na ako mababayaran? Oo. Madla: Bilis. Tagapagsalita 1: Bilis. Ano ang ibig mong sabihin? Madla: Ito ay pagpunta sa tumagal nang mas matagal. Tagapagsalita 1: Ang lahat ng karapatan. Tingnan natin. Ito ay pagpunta sa tumagal ng mas mahaba, hindi na magsulat, ngunit upang patakbuhin ito. Oo. Kaya sabihin subukan ito. Kaya dito ako pagpunta sa magpatuloy at gawin PHP ng speller, at dahil ang mga file tinatawag speller. Kaya hindi ako tumatakbo ang diksyunaryo, pagpapabalik, Nauubusan na ako ng programa na tinatawag na speller. Pupunta ako upang pumasa sa parehong file, King James ang ikalima. Ito ay sa pamamagitan ng paglipad. Ito ay maaaring lamang speed internet, kaya huwag basahin ang masyadong maraming sa na. Ngunit ito ay hindi pakiramdam na para bang. 1.26 segundo. Ngayon na ang pretty pa rin sumpain mabilis, di ba? At ang tanging dahilan na nadama tulad ng higit na katulad ng tatlo, o apat, o limang segundo, na dahil lamang ang internet ay pagiging mabagal. Ang computer na oras na ginugol ay 1.26 segundo, kumpara sa tingin ko 0.56. Kaya higit sa dalawang beses bilang mabagal. Ngayon na ang pretty darn pa rin mabilis, ngunit ito ay isang paghahayag ng, sa katunayan, na eksaktong presyo. Dahil kami ay pagbibigay-kahulugan sa linya ng code sa pamamagitan ng linya, at na PHP programa ay pagbabasa ng aking code sa itaas hanggang sa ibaba, kaliwa hanggang kanan, ito ay upang makagawa ng higit pa-iisip. Ito ay may na uri ng pag-convert ito sa loob ng kanyang sarili sa nararapat na machine code sa fly, kaya na magsalita, kahit na ang mechanics ay medyo naiiba. Sa halip na lamang ang pagpapakain sa Intel CPU ang raw zero at mga na ito nauunawaan natively. Kaya walang pasubali, mga kamay down, kami ay may bayad ng isang presyo. At ang code na nakasulat sa isang wika tulad ng PHP ay may gawi na maging mas mabagal. Ngunit ang aking diyos. Kaya ngayon kapag check-spell ko ang aking file, gumastos ako ng dagdag na 0.7 o kaya segundo vs 20 na oras na ipatupad isang mas mabilis na oras ng paggawa checker, di ba? Ito ay uri ng off ng isang kalakalan. At kung ikaw ay lamang simula p itakda limang, maaaring hindi 20 oras. Maaaring maging mas kaunting mga malayo kaysa sa na. Ngunit ito ay isang kalakalan off, for real. At kung ikaw ay nagpapatakbo ng code sa talagang malaking set ng data, o sa kahit na mas lumang hardware, mga uri ng mga pagkakaiba maaaring tiyak na magdagdag ng hanggang. Ang anumang mga katanungan kaya ngayon? Oo. Madla: [hindi marinig] Tagapagsalita 1: Sorry, maaari sabihin mo ito nang isa pang beses? Madla: [hindi marinig] Tagapagsalita 1: Ikaw ay nagbibigay up ng oras. Well, kaya oo. Ikaw ay pag-save ng oras sa pamamagitan ng hindi pagkakaroon upang ipunin ito, kung na kung ano ang iyong hinihingi. At sa katunayan, sa CS50, karamihan ng mga programa, kahit na sila ay maaaring tumagal ng isang habang sa pagsulat, ang mga ito ay medyo maikling. Ilang dosenang, ilang daang mga linya ng code, at iba compile sila medyo mabilis. Ngunit kapag nagsimula ka pagsulat ng mas malaking programa, tulad ng kung ikaw ay Microsoft o ikaw ay Google at pagsusulat talagang malaking programa sa C, o C ++, o mga kaparehong naipon wika, maaaring tumagal ng ilang segundo, o kahit minuto o mas matagal na magtala ng milyon-milyong mga linya ng code. At masyadong doon, na pagkakaiba ay pagpunta sa magdagdag ng hanggang. At sa katunayan, sa sandaling namin transition ngayon, parehong araw ngayon, sa mga web programming gamit ang PHP, ikaw ay pagpunta sa mapulot ito lamang kaya magkano mas kaaya-aya na magsulat ng code kapag hindi mo na kailangang gawin ang mga tangang hakbang tulad ng pagbabago sa iyong terminal window, i-type ang make hello, re patakbuhin ito, i-reload ang window. Para lang maraming tangang makina mga hakbang na makarating lamang sa mga paraan ng paggawa ng ang mga kagiliw-giliw, ang saya ng trabaho. At sa katunayan magtapon namin na malayo sa PHP. At maaari kaming makipag-ugnayan sa mga ito ng mas mabilis. Oo. Madla: [hindi marinig] Tagapagsalita 1: Oo naman. Maaari ko bang linawin kung ano ang mga ito nangangahulugan upang bigyang-kahulugan? Kapag nag-compile ng isang wika tulad ng C, ito napupunta down tulad ng sinabi namin sa machine code, zero at mga. At nagpasya Intel taon na nakalipas na tiyak na mga pattern ng mga zero at mga kumakatawan karagdagan, o pagbabawas, o i-print, o iba pang mga pangunahing mga operasyon. Sa mundo ng isang interpreted wika tulad ng PHP, o JavaScript, o Python, o Ruby, o kumpol na iba, sa halip ng isang tao ay isinulat ng isang interpreter-- sa kasong ito, ito ay tinatawag din na PHP, magkapareho sa pangalan ng language-- na mahalagang may isang malaking loop sa loob nito na iterates sa ibabaw ng lahat ng mga linya ng code na feed ko ito bilang input, tulad kumusta dot PHP, o tuldok diksyunaryo PHP. At pagkatapos ay maaari mong isipin ang kanilang malaking loop bilang pagkakaroon ng isang pulutong ng mga kondisyon. At sa mga kondisyon sabihin, kung ang ng tao ay may nakasulat na ang mga keyword para sa, simulan ang paggawa ng kanyang code muli at muli. O kung ang tao ay may nakasulat na ang mga linya ng code, kung, execute lamang ang kanilang susunod na linya pasubali. Kaya ito ay tunay na tulad ng pagbibigay-kahulugan ito sa isang tao na kahulugan, linya sa pamamagitan ng linya, at na tumatagal lamang ng panahon. Ito ay tumatagal ng overhead. At kaya na ang isang price-- magandang question-- babayaran namin. Kaya sabihin gawin ang isa pang demo na ang isang maliit na mas dramatic. May, gusto kong sabihin, isang halos katumbas na ito sa isang 90% na posibilidad ng kabiguan horribly, ngunit ikaw ay namangha may 10% na posibilidad. Kaya bawat taon sinusubukan naming upang gawin ito, kung saan tayo subukan na magsulat ng isang programa na napupunta sa pamamagitan itakda ang problema zero, na kung saan na sa iyo naisumite ang iyong numero ng telepono at isang maraming iba pang mga demograpikong impormasyon, at kami ng programming magpadala sa iyo ng isang text message. At pagkatapos ay telepono ng lahat nagsisimula beeping o vibrating, at ito lamang ang kahanga-hangang, dahil well, tingnan kung ano ang maaaring gawin ng mga computer. Ito bihira gumagana nang tama tila sa malaking bahagi, dahil ako ay karaniwang makakuha ng blacklisted sa pamamagitan ng Gmail o iba pang mga serbisyo para talagang nagsisikap upang gawin ito sa scale. Ngunit nakakatawa bagay ay masyadong, dahil tayo hindi magkaroon ng lahat ng tao dito ngayon, masaya katunayan ang huling beses na namin sinubukan na ito dalawang taon na ang nakaraan, Sa tingin ko na sinulat ko ang isang programa na nakaupo sa isang loop iterating sa lahat ng mga estudyante sa klase, at bawat isa sa mga ito ng isang text message, at sinabi ng isang bagay tulad ng, bakit hindi kayo sa panayam? Pag-ibig, CS50 bot. Wala kang mga ideya kung gaano karaming mga humihingi ng tawad at ang uri ng mga masakit na mga email Ko na natanggap sa tugon mula sa n minus 100 mga tao na ay hindi dito Noong araw na iyon. At kahit na mas nakakatawa, mas kahiya-hiyang story-- alam mo, sabihin ilagay ito out doon ipaalam. Ito ay mayroon na sa video ng ilang taon likod. Kaya ikaw ay lalong madaling panahon makita ako magsulat ng isang para sa loop, kung saan ang ito ay tunay madali upang makapagsulat ng isang bug sa na para sa loop, tulad na ang unang pagkakataon sa pamamagitan ng loop, ikaw magpadala ng isang text message. Ang ikalawang oras sa pamamagitan ng loop ko dapat ay nagpadala ng isa pang text message, at pagkatapos ng isa pang text mensahe, at isa pa. Ngunit ito ay lumiliko out kung gumawa ka ng typo kapag ang mga programa, kung minsan ka maaaring sumulat ng mga programa na magpadala ng isa text message, pagkatapos ng dalawang text na mensahe, pagkatapos ng tatlong mga text na mensahe sa lahat ng tao sino ang naka nakatanggap ng isang text message. At tulad ng alam mo, ang paggawa ng isang bagay, plus isang bagay, kasama ang isang bagay, plus isang bagay, ay malaking O ng isang pulutong ng mga text na mensahe, o n nakalapat, o sa halagang $ 0.10 isang text message, $ 20,000. Sa kabutihang palad ako hit Control-C bago na ang nangyari, ngunit ako ay may utang na loob ng hindi bababa sa isa ng iyong mga predecessors $ 20 para sa 200 ilang mga kakaiba mga text na mensahe na iyon, hindi lamang napunta sa kanyang telepono, ngunit din ito ay tulad ng isang mas lumang flip phone kaya gusto ito itinulak sa labas ng kanyang memory bawat iba pang mga personal text message niya talaga nakuha. Kaya kami ay may isang layunin ngayon, hindi upang gawin iyon. Siguro i-on airplane mode. Lahat tama. Kaya sabihin pumunta sa isang programa dito callled-- na aking tatawagin ang text dot PHP. At nang maaga, Mayroon akong dalawang mga file dito. Ginawa ko ang isang file para lang staff, na nakuha lahat ng info ng mga tauhan, lahat ng mga pangalan mula sa website ng kurso. At pagkatapos ay para sa ngayon ko lang ilagay ilang mga pekeng numero 555-1212. Kaya ang mga ito ay hindi tunay na pumunta sa kahit saan. Ngunit mapansin ang loob ng CSV file na ito, na usapan natin ang tungkol sa madaling sabi bago sa konteksto ng file IO. Ano ang isang CSV file? Pinaghiwalay ng kuwit variable. At ito ay uri ng tulad ng isang napaka magaan na database, kung ikaw ay. Mayroong uri ng mga uri ng mga apat na mga haligi sa file na ito, at may tulis-tulis, ngunit ang mga kuwit mahalagang kumakatawan haligi sa file. Ang unang hanay ay ang pangalan CA ni TF o. Pangalawang haligi ay ang kanilang mga apelyido. Third column ay ang kanilang mga numero ng telepono. At ika-apat na haligi tila is-- ika-apat na haligi ay tila kung ano? OK, kaya ang kanilang carrier. Kaya Verizon, o Sprint, o kung ano ang hindi. At kung misspoke ko mas maaga, CSV. Comma separated values ​​ay CSV dito. Kaya kung ano ang maaari kong gawin sa mga ito? Well ito ay lamang ng isang malaking text file, at ito ay uri ng mahaba, tama? Tulad ng ito ay pagpunta sa maging uri ng nakakainis. At ito ay lumiliko out, bagaman, na kung ako nais na magpadala ng isang text message sa, sabihin sabihin Alex dito. Hayaan akong pumunta sa aking browser at lumabas sa full screen mode kaya ang maaari kong i-toggle lang papunta at pabalik. Ito ay lumiliko out, tingnan natin, kung pumunta ako sa dito, at mag log in sa Gmail, ang lahat ng karapatan. Huwag tumingin sa bahagi na ito. Basta makuha ko na makita. siyempre ang livestream Maaari makikita pa rin ang ginagawa ko. Lahat tama. Kaya dito ay lamang ng Gmail sa John Harvard account. Kaya kung nais kong magpadala ng isang text message sa Alex, Maaari ko siyempre sumulat ng isang mensahe. At ito ay lumiliko out, at na ako nasubok ito sa Alex bago dito, sa gayon maaari mong idagdag ang isang tiyak na domain pangalan sa mga numero ng telepono ng mga tao, dahil may umiiral na sa mundo mga bagay-bagay na tinatawag na SMS sa email gateway. Aling ay isang magarbong paraan ng sinasabi ng lahat sa atin na magkaroon ng mobile phone na may mga numero ng telepono, siyempre, may marahil ay para sa iyong carrier, isang tiyak na suffix tulad ng sa Vtext.com para sa Verizon text message dot com, na maaari mong idagdag sa iyong sariling personal na numero ng telepono, at pagkatapos ay ikaw o mga kaibigan, o sa iyong mga magulang ay maaaring text mo sa partikular na address. At Verizon ay may isang server, isang email server, na sa pagtanggap ng email na ito, tingin sa mga numeric na bahagi at pagkatapos ay ay gumagamit ng kahit anong espesyal na magic industriya mayroon sila sa tunay na magpadala ito sa loob ng ang ere sa iyong partikular na cell phone. Ngayon na ito ay magaling dahil hindi ko talaga alam kung paano magpadala ng isang text message o upang isulat ang code pa para sa aking mobile phone, at maaari mong gawin eksakto na para sa ng isang pangwakas na proyekto, ngunit sa ngayon ang lahat ng Mayroon akong ang aking laptop dito. Kaya gusto ko upang umulit sa na CSV file, linya, sa pamamagitan ng linya, sa pamamagitan ng linya, sa pamamagitan ng linya, grab ang bawat isa sa mga numero ng telepono ng mga tauhan, at ang kanilang mga carrier at programatically, pagdugtungin, iyon ay, ikonekta ang telepono number sa naaangkop na pangalan ng domain at pagkatapos ay magpadala ng isang email. Kaya na ang isang pulutong ng mga hakbang. At good luck sa paggawa na sa C. Ito ay isang bangungot ng isang sitwasyon upang buksan ang isang file, na basahin ito line, sa pamamagitan ng linya, sa pamamagitan ng linya, tulad ng sa iyo ay nakakakita, o maaaring madaling makita sa hanay ng problema limang, kung hindi itakda ang problema apat, at pagkatapos ay upang dynamic pagdugtungin dalawang string magkasama, dahil sa C, upang kumuha ng dalawang string at pagsamahin ang mga ito, ano ang ginagawa mo minimally kailangan mong gawin ang mga pinaka-malamang? Kailangan mong magpahayag ng mas maraming memory, tama? At tanungin, malloc, maaari ba akong magkaroon ng higit memory? Kaya ang maaari kong ilagay sa kalahati ng mga ito dito, kalahati ng mga ito dito. Ito ay lamang kaya maraming mga hakbang. At sa pamamagitan ng point na nawalan ka interes sa mga hangal kaunti demo kung saan gumawa ka ng beep phone ng lahat. Gawin ng ganitong uri ng PHP Ipaalam style, kung saan kami lamang simulan ang paggamit ng higit pa sa na panlipunan. At ang mga ideya ay sa panimula ang parehong, ngunit hindi namin kailangang mag-alala masyadong magkano ang tungkol na mas mababang antas. Kaya sabihin makita kung paano ko maaaring pumunta tungkol sa paggawa nito. At kaya lang na hindi ko ulitin ang mga nakaraang pagkakamali, Ako ng nakasulat na ng ilang mga tala para sa sarili ko dito. At makita kung maaari ko tayo ayon ipaalam sa pamamagitan ng ilan sa mga pangunahing hakbang, at pagkatapos ay para sa kapakanan ng time ni bibigyan namin ng marahil cut ilang mga sulok sa dulo. Pupunta ako sa magpatuloy at gawin bukas bracket PHP upang simulan ang file na ito. At ako pagpunta sa magpatuloy at gawin ito. Handle File, tulad ng makikita mo madaling makita, talaga tawag sa isang function na tinatawag na f bukas. At tandaan na ito ay bubukas sa isang file. At ang mga quote, magpanipi, r nangangahulugan na kung ano, muli? Buksan lamang ito para basahin. Ngayon sa p set para sa, ginawa mo ito. At mahawakan ang maaring maging kahit ano, Fu, bar, bas, ang anumang pangalan ng variable. Ngunit sa pangkalahatan sa isang computer siyentipiko ay tumawag ng isang bukas na file, bibigyan ka ng isang file na hawakan, isang bagay na humawak papunta sa gayon na magsalita. Lamang ako ng pagpunta sa gawin ilang checking error. Kaya kung ang hawakan ay hindi totoo, tulad lamang ng sa C, ako pagpunta sa gawin ang isang bagay tulad ng, Hindi mabuksan ang file, backslash n. At pagkatapos ay ako lamang ang pagpunta sige at exit. At ito ay lumiliko out, sa PHP, Hindi ako sa loob ng isang function. Walang pangunahing pag-andar dito. Kaya hindi ko ibalik, per se. Lumabas ako. Aling ay mahalagang ang parehong bagay. At ako sa paglabas sa isa y marahil. Isa lamang ay nangangahulugan ng isang error ng ilang mga uri. Ito ay non-zero, kaya ito ay isang error. Lahat ng karapatan, kaya kung ako pababa dito ngayon sa aking mga programa binuksan ko ang file. Pupunta ako sa sige at ipinapahayag isang array na tinatawag na mga address, at sa C Gusto ko bang malaman ang laki ng array nang maaga, di ba? O kailangan ko upang ipahayag na ito ay isang pointer, at pagkatapos ay gamitin malloc. At pagkatapos ay sa bawat oras ako basahin sa pamamagitan ng isa pang hanay sa file, Pupunta ako sa kailangan sa malloc higit pang memory, malloc higit pa memory. Iyan ay isang sakit sa ulo. At thankfully, PHP, at Ruby, at Python, at JavaScript, sila ay lumago ang iyong mga array para sa iyo awtomatikong. Wala nang malloc. Wala nang memory management. Mga computer ay tumatagal ng pag-aalaga ng na. Subalit ang presyo na binabayaran mo. Ito ay isang maliit na mas mabagal. At para sa isang programa na tulad nito hindi namin pagpunta sa paunawa. Kami ay pagpunta sa ipadala ang 100 mga text na mensahe. Halimbawa hindi pagpunta sa pakiramdam ito. IT talagang lamang ay nagsisimula sa mahalaga ang iyong wika ng mga pagpipilian kapag ang iyong data o iyong mga programa makakuha ng tunay, tunay na malaki, bilang ay ang kaso na mas kaya sa aming web based na mga bagay-bagay. Ngunit ni sumulong para sa ngayon. Habang ito ay lumiliko out mayroong isang function sa C tinatawag f makakuha CSV. File makakuha CSV, na tumatagal ng isang handle file bilang argument nito, at pagkatapos ito naaayos, hilera, sa pamamagitan ng hilera, sa pamamagitan ng hilera, na basahin sa isang hilera. Kaya nagbabasa lang ito ng isang linya ng text mula sa mga file. Ngunit ano ang maganda tungkol sa function na ito, ito ay hindi lamang ibigay sa akin ang isang linya ng teksto. Mukhang para sa mga kuwit, at Pina-parse ang linya. At upang i-parse ang linya ay nangangahulugan na split ito sa ilang mga halaga sa kontekstong ito. Sa ibang salita, dollar sign hilera ay isang variable na pagpunta sa bigyan ako ng grupo ng mga ini-index. Ito ay magiging ang unang haligi sa aking CSV. Ito ay magiging ang pangalawang haligi, ito ay magiging mga third, at ito ay magiging ikaapat na. Dahil pagpapabalik, at Excel ang hindi tumulong sa huling panahon na ginawa namin ito, ngunit kung download ko staff dot CSV. Oops, hindi palitan ang pangalan. Kung na-download ko dot staff CSV, at subukang buksan ito, Na ako na oh registered-- ko ako ay hindi update Excel magmula noong huli. Makikita mo na ang sa dot staff CSV, mayroon akong apat na haligi. Kaya kapag nabasa ko sa unang hilera para sa Abby dito, sign row dollar 0 ay Abby, sign row dollar isa ay Lyons, sign row dollar dalawang ay ang kanyang number, at pagkatapos carrier kanyang telepono. Kaya na ang lahat. At iyan ay nice, dahil ako ay hindi na ngayon malaman kung kung saan ang lahat ng mga kuwit tunay. Kaya ako pagpunta sa magpatuloy at gawin ito, ibinigay na kahulugan, Pupunta ako upang sabihin na ang kanyang pangalan ay sa hilera bracket zero, tulad ng ipinangako. At ako pagpunta sa grab-- at talaga, alam mo kung ano? Hindi ako pupunta upang mag-alala tungkol sa ang kanyang pangalan, sa kasong ito. Pupunta ako sa panatilihin ito simple. Pupunta ako upang gawin ang kanyang mga numero ay sa hilera bracket dalawa, sa tingin ko. At ang kanyang carrier ay sa kung saan? Row tatlo, isa sa ibabaw. Kaya walang bagong doon. Ito ay pag-index zero lamang sa isang array. At ngayon, ako pagpunta sa gawin ang sumusunod. Kung katumbas ng carrier ay katumbas ng AT & T-- Lamang ako ng pagpunta sa magkaroon ng isang loop-- Gusto kong lumikha ng isang email address na ganito ang hitsura. Ito ay magiging 617-555-1212 sa, kung ano ang mga ito, text.ATT.net, ay kung ano ang gusto kong gawin. Kaya kung paano ang gagawin ko ito? Pupunta ako upang gawin ang mga sumusunod. Ang kanyang address ay magiging kanyang mga numero, at ngayon, hayaan mo akong magpatuloy at gawin ito. Ito ang ilang mga funky syntax. Kaya kong gawin ang mga kakaibang ugali percent s, ngunit ako ay maaari talagang lamang gawin ito. Kaya ito ay isang PHP bagay, ngunit Isaalang-alang natin ang ginagawa ko ipaalam. Mag-sign address sa Dolyares sa kaliwa, isang variable lang. Bigyan mo ako ng isang variable. Hindi ko na kailangang tukuyin ang uri. PHP ay malaman ito. Sa kanang bahagi ng kamay, kung ano ang mga uri ng data ng na buong bagay sa kanang bahagi? Ganito ang hitsura ng isang string, dahil mayroong double quotes sa malayong kaliwa at kanang. Ngayon ay mayroong ilang mga funky bagong syntax dito. Mayroong ang curly braces, at ang dollar sign number. Ngunit tumagal ng isang hulaan kung alin ang syntax marahil na nagsasabi sa PHP na gawin para sa akin? Oo. Kailangan lang ipasok ang halaga doon. Kaya walang percent s. Maaari naming gamitin print f, o s print f o isang bagay na tulad nito, ngunit PHP at ng maraming mas mataas na antas ng wika, ikaw ay pagpunta upang makita na maaari mong gawin ang parehong bagay sa pagtakbo, baka anim na iba't ibang paraan. At kaya ito ay nagsisimula upang maging isang bagay ng disenyo o estilo. Kaya ito ay lamang ng isang misteryosong naghahanap ng paraan ng kasabihan, bigyan ako ng isang email address, ngunit plug-in ang numero sa sa pagitan ng mga kulot tirante. At ang curly braces ay hindi hanggang sa dulo ng final address. Ngayon ay maaari naming laktawan ang higit sa ilan sa mga mga linya para sa kapakanan ng panahon ni. Kaya kung katumbas ng isang carrier katumbas verHorizon-- Oops, Verizon-- gusto kong gawin ang isang bagay halos katulad na, kung saan makakakuha ng mga address, quote, magpanipi, numero sa text.ATT.net. At pagkatapos ay maaari kong gawin ang parehong uri ng bagay para sa natitirang bahagi ng carrier. Ngunit kukunin ko na lang gawin tuldok, tuldok, tuldok para sa ngayon. At sabihin ipagpalagay na ngayon hayaan Gusto kong magdagdag ng array, itulak. Gusto kong idagdag sa array, na tinatawag na mga address. Ang address na ito, ito ay kung paano mo magdagdag ng isang bagay sa isang array sa PHP. Hindi mo na kailangan na gawin malloc. Hindi mo na kailangang palitan ang laki ng array. Ikaw lang sabihin array, push. Ano ang gusto mong push-- ano array ang gusto mong itulak ang isang bagay papunta? Address. Ano ang gusto mong itulak papunta address? Address. At sa katunayan, kung ikaw talagang gusto mong maging matalino, ilang sintaktik asukal para sa mga ito, kaya na magsalita, na kung saan ay nangangahulugan lamang kung paano mo maaaring gawin ito sa ang prettier paraan, ay upang gawin ito. Na masyadong ay ang epekto ng lumalaking ang mga address array sa pamamagitan ng laki ng isa, at pagkatapos ay gumawa ng mapa na ang karagdagang mga email address sa ito. Oo. Madla: [hindi marinig] Tagapagsalita 1: A typo sa ibang tao if-- oh, carrier. Iyon ang OK. Ito rin ay hindi gusto ang aking kabiguan na ipatupad bahagi ng programang ito sa ibang Pagkakataon. Ngunit salamat sa iyo para sa pansing. Isa pang bug. Salamat. Gusto naming ito upang maging Vtext.com. Oo. Lahat tama. Kaya kung saan ang mag-iwan sa amin? Nakasulat na namin ang mga code upang buksan ang file. Kami ay may isang loop upang umulit sa ibabaw ng hilera sa file. Mayroon kaming code na nagdadagdag sa aking array, isa sa isang panahon, ang tama format na email address. Kaya lahat na talagang nananatiling ay upang magpadala ng ng isang email sa bawat isa sa mga taong ito. Kaya ko na wala na magpatuloy at readied ang aking sarili ang mga sumusunod. Ano ako pagpunta sa gawin dito is-- at sabihin sige at lumaktaw sa ilang mga aktwal na code, na ganito ang hitsura. Kaya dito ay ang pre-baked bersyon na sinulat ko ng mas maaga. At mapansin ako tapos pagpapatupad ng Sprint. Natapos ko pagpapatupad T-Mobile. Natapos ko pagpapatupad Virgin Mobile. At ako ay humihingi ng paumanhin in advance. May ilang mga carrier na ilang mga mag-aaral sa klase ay may na hindi ako nag-abala isa-isahin sa kung ang condition dito. Kaya hindi lahat ng mga teksto ay pumunta out. Ngunit sabihin makita kung ano pa ang kailangan kong gawin. Isinara ko ang file, lamang tulad ng sa p set apat. At ito ang mga bagong syntax. At kami na makita ang isang maliit na bit ng mga ito sa paglipas ng panahon, lalo na sa mga p set ng pitong at walong. Ngunit ito ay syntax para sa paglikha ng ng isang espesyal na uri ng istraktura. Ito ay lumiliko out mayroong isang library na lumapit sa PHP, tinatawag mailer PHP. Ang layunin nito sa buhay ay ang programming magpadala ng mga email. Ito ay code sa ibang tao sinulat ni na Ginagawa nitong mas madali para sa amin upang magpadala ng mga email, kaya hindi namin na kailangang panatilihin balik-balik sa Gmail, at pag-paste sa mga email address ng mga tao. May isang buong grupo ng mga linya dito na sa totoo lang, ako lamang ang uri ng kinopya at ilagay mula sa mga babasahin. At sa katunayan, kung ikaw ay curious, iniwan ko ang lahat sa mga URL ng mga babasahin sa code na Magpo-post kami mamaya. At mapansin na bukod sa ang mga bagay-bagay ako ng paggawa ay, ako na nagsasabi sa library na ito, gamitin ang server ng Gmail, di ba? SMTP usapan natin tungkol sa madaling sabi kapag namin ay sa Yale tungkol sa pagiging simple mail transfer protocol. Ito ay ang protocol na server na ginamit upang magpadala ng mga email, at that's-- Gmail ay may isa sa mga iyon. Ang isang port, ito ay ang TCP port number. Ito ay multa kung ikaw hindi nakita 587 bago. Basta alam na mula sa mga babasahin. Ito ang aking username. Pupunta ako upang gamitin ang CF50 bot. At sa isang sandali, ako lamang ang pagpunta sa type sa tunay na mga password ang bot ni. At pagkatapos ay down na dito, pansinin kung ano ang nananatiling. Inilagay ko ang aking mula sa address na bot sa CS50.net. Sa tingin ko ay hindi ako Pagsisisihan pagpapadala ng isang text message sa 800 mga tao na sabi, miss mo, pag-ibig CS50 bot, marahil para sa mga taong hindi maaaring magkaroon ng mga ito ngayon. At pagkatapos ay sa 76 na linya, ano ang gagawin ko? Ang uri ng hitsura tulad ng C. Kaya para i ay katumbas ng 0, n equals-- ngayon count ay bago. Ito ay lumiliko out na kung nais mong makakuha ng ang bilang ng mga bagay-bagay sa isang array, Hindi mo na kailangang tandaan ang mga ito anymore. Maaari mo lamang magtanong sa isang function na tinatawag na bilang, at ito ay magsasabi sa iyo kung gaano karaming addresses sa na array. At pagkatapos ay ako pagpunta sa magdagdag ng address sa email. At alam ko na ito mula sa gamit ang mga babasahin. Mayroong isang function na add address. At ngayon mapansin doon ay isang piraso ng syntax. Nakita namin ang mga ito sa harap ng sa C. Katulad sa espiritu. Maaari mong isipin ng dollar sign mail bilang isang variable, na kung saan ito ay. Ngunit ito ay isang struct sa loob ng na kung saan ay hindi lamang katangian, variable kung ikaw ay. Ngunit ito ay lumiliko out na sa PHP, na kung saan ay isang bagay na nakatuon sa programming wika, tulad ng Java kung kinuha APCS. Sign mail Dollar, kung gusto mong to-- ito rin ay may mga pag-andar sa loob ng mga ito, o mga pamamaraan. Kaya ito ay ang sabihin na espesyal mailer PHP library, kung Mayroon akong isang variable niyaon, kung gusto kong tumawag sa isang function na ay may na library, para sa mga layunin sa ngayon, lamang malaman mong gamitin ang mga arrow pagtatanda. Walang notation tuldok. Ito lang ang arrow. Ngunit hindi iyon isang pointer. Lamang Ito ay hiram mula sa syntax C ni. Kaya tumawag si address sa loob ng bagay o variable na ito library. Lahat tama. Ito ang mahiwagang linya. Iyon ay kung paano ba akong magpadala ng isang email. Iyon ay katumbas ng pagbubukas up Gmail, type ito, at pagpindot ipadala. Ngunit ito ay pagpunta sa halip ay magpadala ng isang mag-email sa address na ito, na may ganitong katawan, mula sa CS50 bot. At ngayon key linya. Ang linyang ito ay absent sa tulad ng 2011 kapag sa tingin ko ako huling sinubukan ito. Iyon linya doon, siyempre, nililimas ang address. Kaya lohikal na, kung ako huwag i-clear ang address pagkatapos ng bawat pag-ulit, ang unang mag-email o text message papunta sa Alice, ikalawang ang papunta sa Alice at Bob, ang ikatlong papunta sa Alice at Bob at Charlie, kaya ang tunay mahal pagkakamali Ako na ginawa ng taong iyon. Kaya sabihin makita. Mayroon bang anumang mga katanungan bago namin magpadala sa iyo ng lahat ng teksto message na may 10 porsiyento ng probabilidad? May tanong? Lahat tama. Sabihin sa akin pumunta sa dito at pagbabago ang password sa kung ano ang dapat gawain, malamang ay makakuha ng blacklisted sa pamamagitan ng Gmail. Kaya maaaring hindi lahat ng mga ito pumunta out, dahil ang mga ito ay malamang na ang hindi nagkagusto sa amin pagpapadala 800 emails sa isang para sa loop ang lahat nang sabay-sabay. Dahil hindi iyon pag-uugali lalo na ng tao. Oh, ako pagpunta upang baguhin ang isa sa iba pang mga bagay. Up sa itaas, ako pagpunta sa sent-- baguhin ang mga file na mag-aaral na tuldok CSV. At hindi ko bubuksan ito, ngunit ito ay isang magkapareho CSV file na may hindi 100 kawani, ngunit 800 mga mag-aaral, lamang mula sa Harvard, dahil Yale Wala sa linggong recess Oktubre. At tila ang uri ng isang haltak bagay na gawin sa text lahat ng mga ito na kung bakit ang mga ito ay wala sa klase sa holiday. Iyon ang OK. Harvard mag-aaral lamang ngayon sa loob ng file na iyon. At ngayon sabihin bumalik sa aking terminal na window. Ako uri ng nerbiyos. OK kaya ngayon ako pagpunta sa pumunta sa direktoryo, at text PHP dot PHP. Paano ang tungkol sa isang matapang volunteer? Kaya hindi ko gusto na ito sa akin. OK, dumating sa up. Ano ang pangalan mo? MAYA: Maya. Tagapagsalita 1: Maya. Lumapit sa up, Maya. Lahat tama. Tingnan natin kung ito gumagana. Ilalagay ko ang aking sariling email address sa file-- aking sariling numero ng telepono sa file, kaya inaasahan namin na magagawa ko na isa rin. Masaya akong makilala kayo. MAYA: Gayon din naman. Tagapagsalita 1: Kaya lahat ng kailangan mong gawin ay ang pindutin ang Enter upang magpadala ng 800 mga text na mensahe, kung hindi ko magtaas. Nice. Puwede magtagal, istatistika, hanggang sa makuha namin sa isang email address-- isang text message na sa kuwarto ngayon. Ni magtagal at Tingnan natin. Madla: [Pagsipol] Tagapagsalita 1: Oh, yes. Madla: Oh, gotcha. Tagapagsalita 1: Para sa mga loop are-- ito ay hindi mabagal dahil sa PHP. Ito ay mabagal dahil Gmail ay Throttling amin at hindi pagpapaalam sa amin magpadala ng higit sa tulad ng isang email sa bawat segundo. Kahit ano? Ito ay isang mahirap na bagay para sa akin upang subukan sa bahay sa akin lang at aking isang telepono, kaya. Ay na sana mula sa bot? Oo? Hindi? Sabihin ninyo ang oo. Hindi? Ito ay mula sa isang kaibigan? Awkward. SIGE. Medyo na ito ay gumagana kahit na. Uh oh. Sila black-- oh, maghintay ng isang minuto. Oh, alam mo kung ano? Sandali lamang. Tanging Maya at I-- Mia, ay ito? MAYA: Maya. Tagapagsalita 1: Maya, ay pagpunta sa malaman kung ano ang ginawa kong mali dito. Oh, maghintay ng isang minuto. Sa tingin ko lang ako ay nagpadala ng 100 text na mensahe sa 555-1212. Tumayo ka sa tabi. Hindi ko maaaring manalo ng anumang taon. SIGE. Maya? Ayusin na sa post production. Dammit! Sinusundan mula address. OK, sa pamamagitan ng stand. Sorry. Ito ay masakit sa bawat taon. OK, isa sandali. Mabuti ito. Sa halip ako pagpunta sa gawin ito. Print address. OK, sa pamamagitan ng stand. Print address, bracket i. Oo, gusto ko na. Dollar sign-- OK Ipapaliwanag ko kung ano ako ginagawa sa isang sandali, pagkatapos patakbuhin ko na ito. Taon taon. OK, ayan na naman. Mayroon akong just-- at hindi ko gusto upang ipakita ang numero ng telepono ng lahat, ngunit Maya makumpirma may isang tango ng ulo, na nakikita niya sa lahat ng tao ay numero ng telepono sa klase na ako pagpunta sa kopya sa isang programa na tinatawag Gmail. At kung sa Gmail, kung ano ang gusto naming sabihin? Miss mo. Love-- iyan ay hindi mula sa akin. Hindi ko pa kahit na hit pa ipadala. Kaya sabihin magpatuloy at gawin na ito, kung maaari kong i-zoom in. SIGE. Kaya gumagamit ako ng isang programa na tinatawag na Gmail ngayon. Kung Maya, gusto mo na i-click ang Ipadala na pindutan, ay gayahin namin kung ano na ang dapat nagawa code. Kahit ano? [Mga beep] Madla: Yep. Tagapagsalita 1: Oo? Kaligtasan? Madla: Yep. Tagapagsalita 1: Miss mo. At ako pagpunta upang magpadala ng out ang natitira. Ipinadala ko ang kalahati dahil hindi ko naisip Gmail ay ipaalam sa mga pumunta sa pamamagitan ng. Kaya tandaan lamang, ngayon ay ang araw na iyong natutunan na maaari kong gamitin sa Gmail. Iyon ay horrifying. Isang malaking palakpakan na Maya. Salamat. Lahat ng karapatan, kaya. Ano [Mga beep] Nakakuha kami ng ilang mga beep, yes? Lahat tama. Ngayon ako pagpunta upang makakuha ng 700 tunay malungkot emails mula sa likod mga kaklase. Kaya hindi bababa sa kami makita kung na katumbas ng halaga. Kaya kung ano ang nangyaring mali? Kukunin ko malaman kung ano ang nangyaring mali pagkatapos ng katotohanan, ngunit tumingin lamang kung gaano kadali ito ay upang gawin na sa PHP. Kaya kung ano ang maaari naming aktwal na gawin ngayon na taglay namin ang expressiveness ng PHP. Iyon was-- na kakila-kilabot. Lahat tama. Kaya na ay kung ano ang dapat lumabas. Ito ay akin pagsubok na ito umaga sa aking telepono, aktwal na screenshot ng aking phone. Subalit isaalang-alang ang dahilan kung bakit ngayon hayaan aktwal na kami ay pagpapasok ang lahat ng ito bagay-bagay sa unang lugar. Kaya ang layunin ay hindi upang isulat ang mga programa na ay nakasulat sa command line, di ba? Kaya isinulat ko ang isang simpleng kumusta program, isinulat ko isang maliit na programa na ginagawa conditionals, at ginamit ang isang read line at iba pa. At sa teorya, lamang na sinulat ko isang programa na ipinadala out 800 mga text na mensahe, bigyan o kumuha ng 800. At program na lahat pa rin tumakbo sa command line. At na siyempre ay hindi sa web, i-right? Ang layunin ngayon ay upang simulan ang paggamit ng kung ano ang claim ko ay isang mas madaling gamitin wika, sa palagay ng isang mas malakas na wika sa mga tuntunin sa mga katangian na nanggaling sa mga ito, upang magsimula pagsulat ng code na bumubuo ng mga pahina ng web. Kaya huling oras at noong nakaraang linggo, usapan natin ang tungkol HTTP at HTML. At kung ano ang magaling tungkol sa HTML ay na ito lamang ay purong teksto. At text ay tiyak isang bagay na maaari mong i-print sa pamamagitan ng literal pagtawag sa print f function, o ang function print. At sa katunayan, iyon ang PHP ay ngayon pagpunta sa-daan sa amin upang gawin. Kaya kabilang sa mga halimbawa namin magkaroon sa source code ngayong araw, bilang karagdagan sa ilan sa mga code na ko bang ilagay up doon ng ilang sandali ang nakalipas, kami ay may mga programa na tulad nito para sa mga halimbawa. Froshims, o Freshman Nasa loob ng lunsod sports, ay tunay na isa sa mga unang extracurriculars Nakatanggap ako kasangkot sa taon na nakalipas. At ang aking mga kasama sa kuwarto at ako, na may sa ilang ibang mga bata sa kampus, ginagamit upang patakbuhin ang programa froshims. Nakakakuha ako ng aking mga text message ngayon. Ngayon kaya namin, bumalik sa araw, kaya ito ay 1996 o kaya, nagkaroon ng internet, ngunit walang process-- doon Walang website para froshims. At kaya kung nais mo upang mag-sign up para sa soccer o volleyball o kahit ano, Gusto mong punan ang bagay na ito tinatawag na isang piraso ng papel, at gusto mong maglakad sa kabuuan ng Harvard bakuran, at nais mong i-slide ito papunta sa mail slot ng proctor, na ay sa Wigglesworth, isa sa mga dorms. At ito ay sa iyo registered. At pagkatapos siya ay gagawin gumawa ng sulat ng isang email sa inyo mano-mano, magkano ang gusto ko ginawa lamang dito sa Maya, at pagkatapos ay ikaw ay nakumpirma bilang pagiging nakarehistro. Kaya ito ay tulad ng mababang kuning, kaya na magsalita. Ito ay uri ng tangang na kami ay gumagamit ng papel para sa mga ito. Nais kong sa amin upang ma pumunta lamang sa isang website, o may mga freshmen pumunta sa isang website, magrehistro para sa sports, at automate lamang ng maraming mga bagay-bagay na ito sa pamamagitan ng paglagay ng kanilang mga pangalan at email at iba pa sa isang database. At sa katunayan, ang pinakaunang bersyon ng website, gamit ang sobrang pangit HTML, maaaring tumingin ng isang bagay tulad nito. Ito ay talagang, balintuna, higit pa nakakahiya na naghahanap kaysa ito pabalik pagkatapos. Ngunit ginamit ko ang isang programming language. Hindi PHP, ngunit sa halip na tinatawag Perl, na kung saan ay isang mas lumang wika, ngunit halos kapareho sa espiritu. At ako lamang ang ganap na itinuro ito sa aking sarili. At ito kinuha sa akin ng isang habang upang malaman ito, humihingi ng maraming mga katanungan ng mga kaibigan. Ngunit ang mga ideya doon ay eksaktong kapareho. Dahil kung ano ang PHP ay tunay na dinisenyo para sa ay hindi ang mga bagay-bagay command line nilalaro lang namin sa, ngunit para sa web programming. Talaga Ito ay nakatali sa kanyang katangian nakatakda sa web, tulad ng sumusunod. Ito ang froshims. At kung nais kong magparehistro sa form na ito, ito ay lubos na pangit, tiyak, ngunit hayaan mo akong magpatuloy at maging isang mas kumportable na estudyante, at kahit anong sport para sa Matthews, i-click ang Register. Ano ang gusto kong magawa ay isumite ang impormasyon mula sa isang form, hindi server ng Google tulad ng ginawa namin huling oras, ganap Pandaraya sa pamamagitan ng paggamit ng kanilang backend, ako nais na ipatupad ang aking sariling backend code. Na nangangahulugan write PHP code na nakatira sa isang URL maaaring isumite sa na data ng form. At pagkatapos ang iyong code, nakasulat sa PHP sa isang server, Maaari pagkatapos ay tumugon sa na input ng user. Tulad ng kanyang pangalan, o antas ng kaginhawaan, o dorm, at pagkatapos ay gawin ang isang bagay sa mga ito. Sa kasong ito, ako lamang stupidly nakalimbag ito bilang teksto, na kung saan ay hindi lahat na pretty. Ngunit maaari mong tiyak isipin, kung alam mo na HTML, at makikita mo sa lalong madaling panahon malaman kung paano bumuo ng HTML na may print f, at i-print, at mga katulad na pag-andar, maaari mong tiyak bumuo ng isang prettier web page na nagsasabing, hey David, ikaw ay nakarehistro sa ngayon. Ikaw ay isang mas kumportable mag-aaral mula Matthews, di ba? Maaari mo lamang gamitin ang maramihang mga% Moises, o ang curly braces at dollar sign notation ginamit ko ng ilang sandali ang nakalipas, upang bumuo ng text na mas user friendly kaysa dito. Kaya sabihin kumuha ng isang pagtingin sa ito sa isang file. Mukhang Froshim zero dot PHP tulad nito. Kapag i-reload ko CS50 IDE, froshim zero ganito ang hitsura nito. Ito ang froshim zero dot PHP. At kung ano ang napansin mo ang file na ito? Madla: [hindi marinig] Tagapagsalita 1: Paumanhin, ang isang maliit na louder? Madla: [hindi marinig] Ang lahat ng ito sa HTML. At sa katunayan, ito ay, dahil kung ano ang kawili-wiling tungkol sa PHP ay na ito ay dinisenyo upang maging, para sa mas mahusay o para sa mas masahol pa, intermingled sa HTML code. At sa katunayan, kahit na ito file, froshim zero dot PHP, may isang puna PHP sa tuktok ng mga ito, ang lahat lamang HTML. Ngunit sa pamamagitan ng kaibahan, kung buksan ko up, sabihin sabihin nating, magparehistro zero dot PHP, na kung saan may isang malaking puna sa tuktok lang. Ito masyadong mukhang halos buong tulad ng HTML, maliban para sa kung ano? Line, ano, 21 hitsura ng isang maliit na kakaiba. Ngunit mapansin ako ng pagpasok mode PHP may bukas bracket tandang pananong PHP. Pagkatapos Mayroon akong ilang mga bagay-bagay. At pagkatapos ay sa dulo ng linya halos ako, tanong mark PHP. At ito ay kung ano ang ibig sabihin ko sa pamamagitan ng intermingled. Maaari kang magsulat ng HTML na ikaw lamang gusto ang server upang sabihin ang lahat. Ngunit kung nais mong gawin ang isang bagay dynamic partway sa pamamagitan ng pahina, tulad ng ipasok ang aking pangalan o dorm o antas ng kaginhawaan, Maaari ko bang gamitin ang isang pagpapaandar tulad print r, na kung saan ay i-print recursive, na kung saan ay nangangahulugan lamang i-print out ito variable, ang format na ito gayunpaman gusto mo. Ito ay talagang hindi para sa mga layunin ng tao, ito lang para sa pag-debug o diagnostic layunin. Kaya na kung paano ginawa ko na. Kung sa halip ay pumunta ako froshims dalawang tuldok PHP, mapapansin na ang pagkilos ng form na ito ay hindi nakarehistro zero dot PHP bilang ang old-- sa nakaraang isa ay talagang. Ngunit ito ay nakarehistro dalawang tuldok PHP. Kaya tingnan natin kung paano ang isang ito ipaalam kumikilos ng kaunti naiiba. Kung pumunta ako sa bersyon dalawa. Kung dito, kung magrehistro bilang David, mas mababa kumportable, mula sa dorm ng Mathews, register. Kaya oras na ito ang nagsabi na ito, ikaw ay nakarehistro, hindi talaga. Tingnan natin kung ano ang ginawa ko dito. Kung ako ay tumingin sa rehistro ng dalawang tuldok PHP, ito ay may ilang karagdagang code na PHP. Ito ay isang maliit na cleaner, kahit na ito bumabalot pa rin ng isang maliit na mahaba sa linyang ito. Pansinin dito. Print ko ang aking HTML tag, aking ulo tag, pamagat ng aking tag, ang ulo, ang katawan. At pagkatapos ay ako magsisimula sabihin mga bagay tulad ng pasok mode PHP. At upang ang mga tag, bukas bracket PHP-- tandang pananong sabi PHP, hey, server, execute-- bigyang-kahulugan ang mga sumusunod na mga bagay-bagay tulad ng PHP hanggang sa makita mo ang katapusan ng tag. At kahit na maaaring hindi mo alam ang anumang iba pang PHP kaysa kailanman na iyong nakita kaya sa ngayon, maaari mong uri ng basahin ito pretty intuitively. Kung ang pangalan ay walang laman, o kaginhawaan ay walang laman, o dorm ay walang laman, ano ang gagawin ko? Ano ang sasabihin ko sa mga gumagamit? Dapat mong ibigay ang iyong pangalan, kaginhawaan, at dorm, at iba pa. Iba Pa, sinasabi ko sa inyo ay nakarehistro, well not really. At hindi sasabihin ko talaga dahil walang database. Hindi ako gumagawa ng anumang bagay na may data. Lamang ako ng ibinabato ito ang layo para sa mga layunin ng pagpapakita. Ngayon ako uri ng skimped higit sa 22 linya. Mayroong higit pa syntax doon, ngunit dollar sign salungguhit post ay uri ng kawili-wiling. At ito ay kung ano ang magaling tungkol sa PHP. Sa PHP, may kung ano ay tinatawag na ng ilang sobrang pangkalahatang variable. Ang mga ito ay mga uri ng kahit na higit pa mahalaga kaysa sa mga pangkalahatang variable. At ang mga ito, ang lahat ng capitalized dahil dito, sumama sa PHP. Kaya kung mayroon kang isang server na may isang naka-install na web server, tulad ng Apache, at i-install mo ang wika suporta para sa PHP, ang lahat ng isang biglaang mo maaaring simulang gamitin ang mga sobrang mga pangkalahatang variable sa iyong code. At kung ano ang magaling tungkol sa PHP ay na kung ikaw lamang magsulat ng isang file na nagtatapos sa tuldok PHP, ilagay ito sa isang web server, at pagkatapos mong magsumite ng isang form na ito sa pamamagitan ng pagkilos na iyon tag at isang form tag, na pagkilos attribute sa form tag, PHP at ang web ganap na numero kung paano i-grab lahat ng mga pangunahing mga pares ng halaga sa labas ng URL tulad ng tanong mark q katumbas pusa, ito ay malaman kung paano q at pusa. Kung nagsumite ka ng isang larawan, o isang username, o ng isang password upang gustuhin Facebook, PHP ay malaman kung para sa iyo kung saan ang lahat ng mga data na iyon ay. At ito ay lamang ng kamay ikaw ay isang nag-uugnay array sign underscore post na tinatawag na dollar, o dollar sign salungguhit makakuha ng, depende sa kung ikaw ay gamit get o mag-post ng mga pagsusumite. At ito lang kamay mo isang super global variable, upang kung nais mong makakuha ng sa pangalan na isinumite user sa pamamagitan ng na web form, literal mo lamang sabihin ang pangalan ng super global variable, quote, magpanipi, pangalan. At quote, magpanipi kaginhawaan, at quote, magpanipi dorm. At kami ay pagpunta sa magagawang upang gawin ito at marami pang iba na may PHP. At kahit na ito ay isang ipuipo sulyapan ito, makikita namin sumisid sa mas susunod na linggo. Susubukan naming ipakilala ang isang database sa gayon ay ikaw ay tunay na pagpunta sa simulan ang pagpapatupad ng iyong sariling mga e-trade based-- tulad ng website sa oras lamang ng isang linggo. Kaya kami na nakikita mo sa susunod na pagkakataon, at Umaasa mo nakuha ang text message. Paalam. [MUSIC nagpe-play] [DOOR Pagbubukas] Tagapagsalita 2: Hey. Tagapagsalita 3: Ano ba ang balita? Tagapagsalita 2: Ano ang ginagawa mo? Tagapagsalita 3: Paggawa sa isang hanay ng problema. Tagapagsalita 2: Nice. Apir. [APIR] Ano are-- uh, ano ang ginagawa mo dito? Tagapagsalita 3: hang-out lang. Nalaman lamang mula sa likod ng gym. Hindi ko maaaring makatulong ngunit paunawa kapag kami high-Fived, na mayroon kang medyo magaspang kamay. Huwag kang pumunta sa gym? Tagapagsalita 2: No. Hindi. Tagapagsalita 3: Dude, tumingin ka na medyo malaki. Alin ang masama, dahil alam ng lahat 8-ball ay ang malaking tao sa campus. Apir. Tagapagsalita 2: Uh, no. Hindi, tingin ko ako ay mabuti. Sa tingin ko ako ay mabuti.