[Powered by Google Translate] [Semèn 8] [David J Malan] [Inivèsite Harvard] [Sa a se CS50.] [CS50.TV] Byenveni tounen. Sa a se CS50, e sa se kòmansman an nan semèn 8. Yon koup la opòtinite semèn sa a, nan mitan yo sa a pale isit la, nan ki pral gen kèk manje ap sèvi. Pou plis detay tcheke deyò glisad yo ki sou entènèt. Epi tou li yon lòt evènman nan semèn sa a pa pwòp Carriero Thomas nou an. Li se youn zanmi ansyen CS50 nan ansèyman tèt ki se kounye a nan Dropbox, e li nèg la ki branche nou moute ansanm avèk ou konnen a sa, Se konsa, si ou vle plis nan ki tèt a pale yo nan apremidi a pou Dropbox ak plis ankò. CS50 manje midi se sa a Vandredi. Èske rantre nan nou si ou kapab, 1:15, kòm dabitid, nan dife ak glas. Epi, koulye a nou plonje nan yon bagay yo rele Seminè. Seminè CS50 nou an, sonje, se nan klas sa yo si ou vle ki te dirije pa zanmi pou anseye ak kou asistan ak zanmi nan kou a, jan soti nan yon gwoup sou kanpis la rele ABCD, ki se yon gwoup ki gen tèknofil sou lakou lekòl la, osi byen ke yon gwoup ki rele HCS, Harvard Odinatè Sosyete a, étidyan ki ap menm jan ki enterese nan informatique. Lis pou ane sa a nan seminè gen ladan seminè sou andwad ak yo ak JavaScript ak PHP, UNIX, vim, ak plis ankò, se konsa reyalize ke sa yo seminè yo vini. Si ou ta renmen RSVP pou nenpòt nan yo mete tèt ak sa yo ki URL la. Nou pral Lè sa a, afiche sou sit entènèt kou a nan fwa yo ak kote yon fwa yo ap fini. Men, konnen vo gen nan 5 ane a nan seminè anvan ki disponib sou entènèt, anpil nan yo ki yo toujou anpil aktyèl an tèm de teknoloji ou ka vle konsidere vle jwe ak pou pwojè final ou a, se konsa mete tèt gen pou kèk videyo ki disponib ladan l '. CSS, moun nan nou ki yo abitye avèk CSS deja, ki sa se li nan yon Nutshell? Ki sa ki CSS? Li nan kaskad dra style, e ki sa sa vle di? Ki sa sa fè pou nou, CSS? Tout dwa, kite a chofe ak yon yon sèl pi fasil, HTML, ipèrtèks markeup lang. Ki sa sa fè pou nou? Nenpòt moun ki nan tout? Li nan ap resevwa reyèlman gòch mande kesyon sa yo. HTML, ipèrtèks markeup lang. Wi? Pa gen? [Fèbl repons elèv] Okay, bon, li pèmèt nou make moute tèks yo montre nan yon navigatè entènèt. Li pa yon lang programmation. Li nan tout bon yon lang baliz, ki vle di li bay enstriksyon navigatè a ki jan yo montre enfòmasyon, se konsa enkarnasyon a ki pi senp nan sa a jan nou te wè se yon bagay ki super senp tankou boldfacing, louvri bracket b fèmen bracket di fè tèks sa a fonse, ak sa a, se aktyèlman jis youn nan plizyè fason nan ki nou ka fè sa, ak tout bon, jou sa yo yon apwòch pi bon stylizing paj entènèt ou an, sa ki fè bagay sa yo odasye ak italik ak santre ak jistifye ak renmen an, se pa sa fè via tags HTML pou kont li men pito ak yon teknik yo rele CSS, kaskad dra style. Sa a se yon lang di tèt li. Li twò se pa yon lang programmation, men- tout moun, sa a se lavil Dann, lavil ki te kenbe rantre nan nou jodi a. Gen kèk difikilte teknik. Pa yon pwoblèm. CSS pèmèt nou stilize yon paj pa mete sa yo rele pwopriyete, kidonk kite a pran yon gade nan sa a pa fason pou kèk egzanp de baz yo. Kite m 'ale nan aparèy la jodi a. Mwen gen sous 8 Lendi anyè a nan isit la, ak mwen pral ale nan yon anyè yo rele CSS kote nou gen yon pakèt antye nan dosye ap tann pou nou dwa isit la, ak nan sa a folder nou gen, pou egzanp, search0.html soti nan tan pase a. Koulye a, sonje ak search0 nou te kite sou nòt sa a pa sòt de mete ann aplikasyon Google oswa vrèman jis fen a devan pou li yon semenn oswa konsa de sa, ak remake ke nou te gen kèk tags nouvo la. Nou te gen H1 pou yon gwo, tit fonse, fòm, sa ki pèmèt nou gen aktyèlman yon fòm HTML pou D 'itilizatè. Aksyon, sa ki te konprann yon mo nan yon atribi aksyon sou tag a fòm HTML? Ki sa ki te siyifikasyon an nan aksyon sa a,? Mwen te jis pral fè sa a jodi a. Aksyon se destinasyon an nan kote fòm nan yo pral soumèt. Lefèt ke ki di aksyon = "google.com / rechèch" vle di lè itilizatè a klik soumèt nan bouton oswa ekivalan a kèlkeswa sa fòm jaden yo ranpli yo ale nan ap voye pa nan sèvè nou an oswa aparèy nou an, men pito ak sa yo ki URL espesifik nan Google. Epi li se metòd la li pral sèvi ak yo rele jwenn, epi pou yo jwenn, pou kounye a, se jis yon teknik pou pase enfòmasyon ansanm nan yon sèvè sit entènèt pa fason pou URL la, se konsa kite a pran yon gade rapid tounen nan travay jan sa a. Remake gen nan yon antre ki gen non se q kalite ki gen se tèks ak Lè sa a, yon D 'dezyèm nan kalite soumèt valè ki gen se CS50 Search, ak tout bon, si nou louvri moute sa a ranpli isit la, search0.html, li nan yon fòm super senp, ak si mwen rechèch pou yon bagay tankou syans konpitè ak Lè sa a, frape antre nan oswa klike sou CS50 Search avi ke sa k ap pase ale pi lwen ap resevwa nan Google Mwen te espesyalman te fini nan sa a URL nan tèt la, google.com / rechèch? q = òdinatè + syans, ak syans òdinatè se evidamman sa m 'tape pous + A jis vle di ke se la li yon karaktè espas te ye a, epi li fè pa navigatè a jis asire w ke gen nan pa gen konfizyon ak blan espas nan URL a vrè. Lè sa a, q, nan kou, se non an paramèt. Nou pa t 'wè ki jan nou, pwogramè a, yo ka aktyèlman jwenn aksè q ankò. Nou ka asime ke Google konnen sa yo dwe fè ak sa-a isit la, men nou pwal rive la nan tan akòz jodi a. Men, kite m 'pran yon gade olye nan search1.html, ki sanble yon ti kras diferan paske mwen deside ke fòm sa a isit la te jis yon ti kras moun k'ap bwete. Mwen vle di, li nan sou bò gòch an tèt la. Genyen nan pa reyèlman estetik nan li, Se poutèt sa mwen vle stilize sa a yon ti jan plis tankou Google, ki gen paj dakèy, sonje, menm si ou pa ta ka vizite li ki souvan, sanble sa a jodi a sou Halloween. Si nou olye louvri moute vèsyon 1 nan sa a ranpli, rechèch 1.html, mwen te santre li. Toujou trè lèd, men omwen koulye a, mwen te kòmanse kontwole estetik ki nan paj sa a, pa sèlman regilye nèf semenn klas la moute ladan l '. Se pou nou pran yon gade nan rechèch 1, ak gen nan reyèlman jis yon diferans ki genyen isit la, ki ta ka sote soti nan ou, oswa petèt pa, men sa ki nan liy nan youn oswa brib nan diferans? Genyen nan sa a atribi style, se konsa li sanble ke nan HTML pi eleman, pifò tags ka gen yon atribi style sou yo, ak andedan nan ki atribi style se yon fisèl te site, e ke fisèl te site se CSS. Ou ka mete kaskad fèy style an gen pa di egzakteman kisa li kòm yon non pwopriyete ki te swiv pa yon kolon ki te swiv pa yon valè. Sa a se kalite yon desizyon konsepsyon malere kèk ane de sa ki CSS se yon lang di tèt li, men syntactically li trè diferan de HTML. Nan ka sa a, nou wè ke andedan nan Paj Web m 'yo, ki se ekri nan HTML, Mwen gen CSS andedan nan sa yo quotes, ak konvansyon an pou CSS se ke ou gen sa ki rele yon pwopriyete ki te swiv pa, ankò, yon kolon, ki te swiv pa valè sa a nan pwopriyete, se konsa gen nan pa gen siy egal. Gen nan pa gen quotes adisyonèl. Se jis sa a nan kolon pè separe kle valè, ak liy tèks fè egzakteman sa li di. Li sarmoniz tèks la nan kò a nan paj la, ki se reyèlman entesten ki nan paj la, nan sant la. Okay, rezilta nan fen Lè sa a,, yo dwe klè, se sa a. Pa tout sa ki sexier, men omwen li a santre ak yon ti kras pi plis tankou reyèl Google la. Men, sa ki si mwen olye louvri moute vèsyon 2 nan sa a ak pwen soti desann isit la yon tag nouvo tout ansanm? Koulye a, nan tèt la nan paj m 'yo, ki te deja te gen sèlman ki tag nan tout egzanp anvan sa? Li jis te gen sa a, tit la. Yon moman Anons sa pibliye depi tag nan tèt gade tankou sa a. Koulye a, olye li gen yon andedan tag style nan li, ak sa a tou, mwen prezante eskiz, syntactically sanble trè diferan de HTML, men ou jwenn itilize li, annakò ak sa andedan nan tag nan style Mwen kapab kounye a faktè konnen ki sa ki te yon ti moman Anons sa pibliye depi yon atribi, atribi nan style, e mwen ka mete l 'nan tèt la anpil nan paj mwen an. Poukisa? Bon, sa a se yon etap nan direksyon netwaye bagay yo, anpil tankou nan ekri C kòd nou ta pafwa ekri fonksyon an faktè soti komen fonksyonalite. Se jis nan yon ajan netwayaj ti kras yo kòmanse faktorizasyon soti bagay sa yo tankou estetik ki nan yon sèl kote santral olye ke ki gen tout bagay sa yo enkruste nan tout HTML ou yo. Sa a tou fè sa li di, menm si gen nan yon ti jan nan sentaks nouvo. Sa a isit la se yon seleksyon manm CCELL, ansanm ak tout kò jis vle di chwazi eleman nan kò epi aplike pwopriyete sa yo nan li. Oke, pwopriyete a se egzakteman menm bagay la. Pou bon mezi mwen te ajoute yon virgules nan fen a, ki gen tandans yo dwe konvansyon, epi mwen te vlope pwopriyete sa a tout antye nan aparèy òtopedik Curly paske mwen te kapab gen aktyèlman bagay diferan isit la. Mwen te kapab aktyèlman di yon bagay tankou koulè: ble; Koulye a, sa a twò pa a pwal yon etap nan direksyon anyen tout sa ki bèl pase l ' Men, si m kounye a tounen nan vèsyon 2 mwen te omwen kounye a te fè kò a nan mwen tèks paj la tout ble. Bouton an rete menm la paske sa se yon opinyon. Li pa tèks pi bon kalite. Men, tout lòt bagay ki se tèks, tankou CS50 Search moute tèt, se nan twal ble reyalite. Yon fwa ankò, tout sa nou te fè koulye a, se retire nan tag nan kò, avi, atribi nan style, e nou te konsidere li soti isit la. Sa a se pa yon amelyorasyon gwo, men si nou pran sa a etap yon sèl pli lwen remake sa nou kapab fè nan vèsyon sa-a twazyèm isit la. Nan search3.html Paj Web la se prèske ki idantik eksepte pou sa ki nouvo tag kounye a? Link, kidonk sa a yon sèl se pa sa trè jistèman te rele paske ou pa ap konekte nan sans yon HyperLink klikabl. Olye de sa, w ap sòt de fè ekivalan a nan # enkli nan C kote lyen tag la ak yon atribi rèf ak yon atribi rl di ale pi devan ak kopi keratin sa ki nan yon dosye rele search3.css dwa isit la, esansyèlman. Li pa byen fè sa, men sa a Lespri Bondye a nan li. Li di ale ouvè ki ranpli, search3.css, ak trete li tankou si te itilizatè a tape li dwa isit la nan tèt la nan paj la jis tankou m 'te fè nan egzanp lan anvan yo. Search3.css, pandansetan, se trè senp. Li reyèlman jis gen ekzakteman ki sa se te yon moman Anons sa pibliye depi nan tag nan style, men mwen te konsidere li soti isit la yo mete nan dosye pwòp li yo. Menm si nou pa te pase anpil tan nan tout nan HTML oswa sit entènèt pwogram jis entwitivman sa ki nan motivasyon an, petèt, pou faktorizasyon soti sa a brib ti menm nan CSS nan dosye pwòp li yo ak Lè sa a, ki gen ladan l 'ak sa a tag lyen isit la? [Fèbl repons elèv] Oke, sa se pi fasil li nan sans ke ou gen CSS ou a nan yon dosye CSS. Ou gen HTML ou nan dosye HTML ou konsa, li nan plis ka konprann nan sans sa. Ki lòt bagay ta ka impérieux? Yeah. [Fèbl repons elèv] Yeah, konsa ou ka gen ladan yo li anpil fwa, se konsa kounye a n ap fè sa yo egzanp debaz ki gen dosye endividyèl, men ta kwè w ap aktyèlman ap fè yon sit entènèt reyèl tankou ou pral pou pset 7 oswa pwojè final ou a petèt, , epi ou vle gen paj miltip, kòm se sètènman komen sou Mondyal aktyèl Web la Wide, epi li ta ka kalite moun k'ap bwete gen a kapab bay kopi ak keratin menm koulè a ​​ble ak tèks la menm ki aliyen sant nan chak youn nan moun ki paj. Olye de sa li fè sans plis nan faktè soti, anpil tankou nou te fè l 'nan C avèk yo. dosye a h, mete l 'nan yon sèl kote santral, nan sa a search3.css ka, ak Lè sa a, pèmèt okenn dosye nan sit entènèt ou a aktyèlman gen ladan yo ki dosye pa fason pou sa a tag isit la nan liy 16. Kòm se tipikman ka a, nou te kòmanse avèk vèsyon 0, ki kalite travay men se pa nesesèman pi bon an, ansanm ak chak etap, , 1 rechèch rechèch 2, e kounye a, rechèch 3 nou te pran etap sa yo ti bebe nan direksyon desen ki se yon cleaner ti kras e yo gen plis preparasyon pou pou paj plis konplèks ke nou ta ka fè desann wout la. Kite m 'louvri moute yon dènye egzanp isit la jis yo montre yon paj menm plis stilize, men premye kite pou yo gade nan HTML a. Sa a se search4.html, ak avi ke estriktirèl li nan prèske menm bagay la eksepte pou entwodiksyon de yon tag nouvo, DIV. Div se yon tag ki entwodui yon divizyon paj la. Ou ka panse a sa a kòm yon rektang envizib. Li sòt de kreye yon band nan zòn nan Paj Web la ke ou ka stilize tout nan yon fwa. Ki sa mwen te fè isit la se jan sa a. Anndan nan tag kò mwen, ki te gen gen tout ansanm, M ap di kreye yon divizyon nan paj la isit la via liy 45 jiska 47, ak sa vle di esansyèlman, ban m 'yon rektang envizib ansanm tèt la nan paj la. Lè sa a, ban m 'yon rektang dezyèm, byen envizib, pi ba a sa, epi idantifye li pa kontni an non, ak Lè sa a, alafen, ban m 'yon divizyon twazyèm nan paj la nan pati anba a rele ID. Nou pral wè poukisa mwen te fè sa a nan jis moman sa a, men concept Mwen gen yon divizyon header. Mwen gen yon divizyon kontni, epi mwen gen yon divizyon footer nan paj la menm si sa yo, se jis nan baliz. Itilizatè a se pa sa pral wè 3 rektang, men sòt de estriktirèl gen dèyè sèn nan yo ap aktyèlman prezan. Koulye a,, ki moun ki gen sousi? Poukisa aktyèlman fè sa? Tout lòt bagay sou paj la se menm bagay la kòm nou te wè anvan. Isit la nan fòm m 'yo. Isit la nan opinyon mwen an, D 'm' yo, pran yon ti repo liy ak pou fè. Isit la nan yon imaj, menm si, se konsa nou pral wè kote sa a te soti nan nan jis moman yon. Isit la nan yon Footer, ki se nouvo, jis paske mwen te vle prezante kèk plis kontni isit la. Si nou woulo liv moute avi ke ID sa a div se header. ID sa a div se kontni, ak ID a nan yon sèl sa a se footer. Epi kòm non an sijere, lè ou gen yon atribi ID nan HTML, pa definisyon li dwe inikman idantifye youn nan eleman yo, youn nan etikèt yo nan paj ou yo. Fado a se totalman sou ou sonje ke ou gen yon ID header deja. Ou gen yon footer. Ou gen yon ID kontni deja. Òdinatè a pa pral konnen ki sa yon ID disponib se pou ou, pou ou te ka aksidantèlman bay 2 etikèt yon ID nan header, ak ki ta jis pou sa ki mal. Ou gen kenbe nan tèt ou ki sa ou te kreye yo, men yon fwa ou te fè ke avi sa nou kapab fè isit la. Mwen kapab kounye a presize nan tag style m 'nan tèt la oswa équivalant nan CSS dosye m 'yo, si mwen te toujou lè l sèvi avèk ki vèsyon, Mwen kapab di # header, ak kisa sa vle di se ke kèlkeswa sa tag nan sa a Paj Web an gen yon ID nan header ak #, jis pa konvansyon moun, reprezante ID. Siyen an byen file oswa liv siy reprezante ID. Header se non an pou m 'te ba li. Sa vle di aplike pwopriyete sa a CSS mèt fè tout sa tag nan paj sa a lous yon ID nan header. Menm kontra isit la. Aplike pwopriyete sa a, ki k ap pase yo menm bagay la tou, nan nenpòt eleman ki gen ID se kontni, ak Lè sa a, desann isit la remake mwen te resevwa yon ti kras amateur ak footer. Nenpòt eleman ki gen ID se footer, ki kapab genyen sèlman yon sèl pa definisyon, ale pi devan epi fè font size li yo ki pi piti, fonse font pwa li yo, Marge li yo 20 piksèl. Kisa sa vle di? Se jis nan yon maj sou tèt la, anba a, ak bò gòch la ak dwa a. Sa vle di, ban m 'yon 20-pixel envizib Marge bò kote l' jis pouse tout lòt bagay lwen soti nan li yon ti jan, tankou ou ta ka fè nan Word, Microsoft Word oswa Paj oswa tankou an. Lè sa a, tèks align sant. Ann gade pou wè rezilta nan fen, ak Lè sa a, nou pral tounen moute nan yon sèl brib ki rete nan CSS la. Sa a se vèsyon 4, dènye nou an pou egzanp rechèch la, epi li anpil, sexier anpil. Koulye a, nan etidye ekite Règleman, mwen jis Googled "dèlko logo google font." E ke pèmèt m 'nan kreye yon GIF, yon fòma imaj, ki sanble ke gen. An reyalite, ou ka fè sa tou. Nou gen "Google polis dèlko logo." Ann gade pou wè si nou ka fè sa. Oke, mwen panse ke sa a se sou sit wèb la mwen itilize. Nou ka di EC 10, pou egzanp, epi fè yo pwòp yo. Ou ka jwe ak jou sa a tout long ak Lè sa a, dwa klike sou li ak Lè sa a, download GIF aktyèl la, ki se tou sa mwen te fè sa. Ak tout bon, sa se poukisa nan HTML m 'yo, sonje, sou isit la Mwen te gen yon tag imaj, ki nou te wè yon ti tan semèn pase a ki gen sous se logo.gif. Ak sa ki ankò te motivasyon an pou sa a gen atribi alt, sa a atribi altènatif? Yeah. [Fèbl repons elèv] Bon, se konsa 2 rezon reyèlman, si navigatè a pa ka rale moute imaj la paske ou gen yon koneksyon rezo ralanti oswa se imaj la pèvèti oswa yon bagay tankou sa omwen imen la kapab wè "CS50 rechèch," ak Lè sa a, tou pou rezon aksè. Si ou gen yon itilizatè ki avèg epi li se lè l sèvi avèk yon lektè ekran ak Se poutèt sa evidamman pa ka wè imaj yo kapab omwen tande tèks si òdinatè yo pale l 'bay yo. An jeneral, sa a se pi bon pratike lè li rive aksè nan paj pou ke itilizatè menm nan ki sitiyasyon ka tande oswa wè, se konsa pale, sa li ye ki nan sou paj ou a. Genyen yon lòt bagay ki sa m 'fè isit la ki se yon ti kras ki enteresan, epi nou pral wè plis sou sa nan pwoblèm mete 7 atravè youn nan bout pantalon yo ki te dirije pa youn nan zanmi yo moutre nou. Men, # kontni refere a tag a ki gen ID se kontni, men Lè sa a, gen nan yon karaktè espas, ak Lè sa a, gen nan D 'la mo. Oke, sa ki nan enteresan sou CSS se ke ou kapab al gade nan balises nan yon sòt paj nan yerarchik, epi ki sa sa a vle di brib nan CSS se jwenn tag a ki gen ID se kontni, ak Lè sa a, aplike pwopriyete ki annapre yo nan tout etikèt yo opinyon yo ki pitit pitit nan kontni, ki se ke yo utilize andedan nan li. Mark, ankò, se sèlman enpòtan nan òdinatè a, nou pa moun nan, men pa konvansyon nou itilize bagay sa yo kòm nou ale pi fon nan yon paj, kidonk sa a vle di aplike yon maj nan 5 piksèl nan nenpòt eleman D ' ki nan yon kote andedan oswa pare solèy andedan nan  eleman la ki gen ID se kontni. Ki moun ki sa ki aplike a? Oke, gen nan aktyèlman jis mesye sa yo 2 isit la. Remake andedan nan fòm gen nan 2 entrain, kòm te gen pou tout moun nan egzanp sa yo. Men, avi ke moun entrées 2 rive yo dwe pare solèy andedan, kwake yon ti kras fon, yon kouch koup la mark, andedan nan tag la ki gen ID se kontni. Ki sa sa vle di? Si nou ale nan navigatè a isit la ou ka wè janm konsa yon ti kras- kite m 'rale nan-ki di ke gen yon ti jan nan kouvèti ant bouton an ak ant jaden an tèks. Kite m 'tanporèman vire ki la. Kite m 'ale jiska CSS mwen an, epi kite m' ale pi devan ak jis chanje sa a Marge soti nan 5 piksèl a 0 piksèl. Kite m 'ale pi devan Lè sa a, epi sove dosye a, tounen nan motè rechèch la ak Reload, epi gade la nan mitan paj la. Tout te resevwa konprese ansanm, epi lè m 'premye vide egzanp sa a moute Mwen te panse ke gade estipid ak tout jaden an tèks ak Lè sa a, bouton an imedyatman anba l '. Mwen te vle pad li yon ti jan, se konsa mwen prezante marges. Ki sa ki nou pa pral fè nan konferans la ale nan douzèn nan plizyè CSS pwopriyete ki egziste paske, ankò, gen bagay sa yo tankou font size, pwa font, Marge, tèks align, ak yon douzèn lòt moun kèk, epi n ap refere w nan pwoblèm mete 7 a tutoryèl divès sou entènèt ak referans ki pèmèt ou chwazi sa yo sou bagay yo. Men, sa ki nan vrèman enpòtan nan fen jou a, se konprann ki jan bagay sa yo te aplike. Yon fwa ankò, si nou gen andedan kay la tag style a ki ka ale seleksyon yo, sòt nan bagay ki pèmèt idantifye ki presize ki moun ou vle aplike pwopriyete yo, ak Lè sa a, ou mete pwopriyete yo kòm pè valè kle ki separe pa yon kolon ak Lè sa a, te fini ak yon virgules, oswa ou ka RIP nan tout sa soti, li mete l 'nan yon dosye separe CSS di tèt li. Tout dwa, nenpòt kesyon sou konsèp yo oswa gran imaj la nan CSS? Ou ap wè plis ankò ladan l 'nan pset 7, men nou pwal kenbe l 'jeneralman trè senp. Pa gen? Tout dwa. Li lè pou yon lang programmation reyèl, epi n ap tounen vin jwenn yon ti kras nan CSS nan fòm lan nan yon egzanp. PHP se aktyèlman yon lang bèl aksesib nan ke li se prèske syntactically ekivalan a C. Nan lòt mo, si ou konnen C, ou konnen pou PHP a pati ki pi, omwen syntactically, menm si gen kèk karakteristik nouvo ak kèk konsèp nouvo n ap gen fè yon gade nan. Men, pou pati ki plis, kounye a ke nou tranzisyon soti nan C rive nan PHP pi fò nan bagay la nouvo se reyèlman nan foto a gwo, ki jan ou sèvi ak yon lang nan pwogram sou entènèt la kòm opoze a nan liy lan bay lòd oswa nan yon èd memwa kliyote jan nou te toujou ap fè konsa byen lwen. Pou referans, sitou ak pset 7 ak pati nan pwojè final, pran avantaj de sa a URL isit la si ou ta renmen li moute sou fòmalite yo nan PHP. Li nan aktyèlman renmen yon gratis sou entènèt liv efektivman, epi ou pral jwenn tou ke sa ki nan vrèman bèl sou PHP se ke gen dè santèn de fonksyon ki vini ak li, Lè nou konsidere ke nan C nou pa t 'nesesèman gen aksè a plis fonksyon pase yo te nan bibliyotèk la matematik, bibliyotèk la CS50. Nan PHP ak yon anpil nan lang modèn, Piton ak Ruby nan mitan yo, ou jwenn aksè nan se konsa fonksyon anpil plis, ki vle di ou jwenn yo ekri yon lot mwens kòd paske ou ka kanpe sou zepòl yo nan moun lòt ki te deja ekri kèk bagay pou ou. Kite a pran yon vwayaj rapid nan sentaks la nan PHP ak Lè sa a, ekri yon egzanp kèk. Ki sa ki nan bèl sou PHP premye ak surtout se gen nan pa gen fonksyon prensipal. Si ou vle ekri yon pwogram nan PHP ou jis kòmanse ekri kòd, epi ou pa gen enkyete sou prensipal la. Gen nan pa gen int. Gen nan pa gen retou. Gen nan pa gen argv, arg ki nan nesesè si w ap ekri pwogram nan. Olye de sa ou ka jis kòmanse ekri kòd, e sa se an pati paske PHP se sa ki yo rele yon lang entèprete. C te konpile, e li te konpile nan sans ke ou kòmanse ak kòd sous, kouri li nan sonnen, ki se yon du, ak evantyèlman apre kèk nimewo nan etap ou jwenn kòd objè, 0s ak 1S. PHP ak Piton ak Ruby ak Pearl ak lòt moun diferan kalite lang nan ke ou pa konpile yo. Ou pa ale nan kòd sous 0s ak 1S. Ou jis kouri kòd la sous, epi ou kouri kòd la sous pa ekri nan yon dosye tèks nòmal, mete fen nan. php nan ka sa a olye pou yo. c, epi ki sa pwogram nan fè sa ki sou òdinatè ou se li literalman entèprete liy kòd ou pa liy pa liy. Nan lòt mo, olye ke ekri yon pwogram epi kouri pwogram nan dirèkteman ou olye pou ekri yon pwogram ki gen yon dosye ki fini an. php. Lè sa a, w kouri yon pwogram aktyèl yo rele php.exe, si ou se sou Windows, oswa jis PHP si ou se sou Mac OS oswa Linux, epi ou bay kòm opinyon nan pwogram lan PHP kòd pwòp sous ou a, ak objektif li yo nan lavi a se fè lekti tèt kòd ou a anba, gòch a dwat, ak tou sa ou te rakonte l 'bay fè. Ann gade pou wè ki sa sa a ki pral vle di syntactically. Nan PHP nou gen kondisyon yo. Sa a glise se ki idantik ak sa ou te wè li tounen nan semèn 1 paske syntactically kondisyon yo, ifs ak ifs lòt moun, e lòt bagay nan PHP gade egzakteman tankou sa a. Lè li rive ekspresyon Boolean yo pwal santi yo gade egzakteman tankou sa a. Lè li rive anding bagay sa yo ansanm kòm booleans li a pral gade egzakteman tankou sa a. Switch gade menm bagay la tou, epi ou jwenn benefis la te ajoute nan PHP ki switch nan C yo te kapab sèlman chanje sou yon Char oswa int yon. Ou pa t 'kapab chanje sou yon valè fisèl. Nan PHP ou ka gen aktyèlman yon ekspresyon ki se yon varyab ki gen sa yo se yon fisèl, epi ou ka aktyèlman fè konparezon fisèl nan fason a reyèl entwisyon, pa konparezon konsèy, nan lòd pou deside si pou fè ka mwen oswa j oswa yon lòt bagay. Nou pral wè ki potansyèlman anvan lontan. Pasan twò bèl yo se menm bagay la. Pou pasan gen yon inisyalizasyon, kondisyon yon, ak kèk nimewo nan dènye enfòmasyon yo. Pandan ke pasan tou egziste nan PHP. Èske pandan y ap pasan tou egziste nan PHP, ak ranje egziste nan PHP, men isit la nan kote sentaks la kòmanse yo ka resevwa yon ti kras diferan, men konsèp yo se menm bagay la, ak konsèp yo reyèlman yo menm bagay la tou jan yo te nan 0 Semèn ak grafonyen moun. Premye ak surtout se siy ki $. Sa a se te yon desizyon konsepsyon nan PHP kote nenpòt varyab nan PHP nan konsepsyon kòmanse ak $ siy. Gen nan pa gen plis X, Y, Z. Se koulye a $ X, $ Y, $ Z jis paske. Li nan yon bagay kenbe nan tèt ou, epi kounye a sou bò nan men dwat-ou sa a sanble menm jan ak yon etalaj, men nou ap sèvi ak parantèz kare isit la. Nan PHP ak nan JavaScript, kòm n ap pètèt wè la a, deklare yon etalaj ou fè louvri bracket kare ak fèmen kare bracket, ak Lè sa a, ou gen yon vigil lis separe valè yo, si antye oswa strings oswa charaktèr, tou sa ou vle, andedan nan sa ekspresyon la. Koulye a, ki jan nou te fè yon bagay tankou sa a nan C? Ki sa ki te sentaks la pou statik deklare yon etalaj nan nimewo li te ye? Li te aparèy òtopedik Curly, se konsa minè diferans isit la, men nan tou de PHP ak evantyèlman JavaScript li jis itilize parantèz kare, se konsa reyèlman detay nan sèlman ki enteresan isit la se siy ki $ pou non an varyab epi tou li parantèz yo kare, ak gen nan yon sèl bagay kirye ki te konn mete manke kòm byen ki sou bò gòch-men nan siy lan =. Kisa ki manke ke nou ve yo te mande pou semèn kounye a? Yeah. [Fèbl repons elèv] Gwosè a, se konsa gen nan pa gen mansyone nan gwosè a nan etalaj la. Franchman, gen nan pa gen mansyone nan parantèz kare ki sou bò gòch nan siy lan =, ak ki lòt bagay ki manke nan liy lan? Yeah. >> [Fèbl repons elèv] Kalite a, se konsa sa ki nan enteresan an patikilye sou PHP se ke li se pa yon lang fòtman tape kòm C se, Epi sa a, fòtman tape nan sans ke ou dwe di Char, ou dwe di Int, ou dwe di flote. Nenpòt lè ou vle yon varyab ou gen di sonnen ki kalite li yo se. PHP se yon ti kras lazier. Li nan blesi tape nan sans ke ou ka gen cha ak charaktèr ak strings ak antye ak pou fè, men lang nan tèt li pa reyèlman sousye ki sa ou mete andedan yon varyab. Ou pa oblije enfòme li alavans sa ki done kalite ki pral nan yon varyab. Li nan antyèman moute nan ou, kidonk sa a se bèl nan ke ou pa gen enkyete kòm anpil sou done sezisman ak mangonmen sa ki agiman ou yo ak pou fè. Sa a vle di tou evantyèlman fonksyon nan PHP yo pral pou kapab retounen swa yon pi int nan moman an, e petèt yon fwa nan yon pandan y ap yo pral retounen yon bouleen, yon Boolean fo, pou egzanp, siyifi ke yon bagay ale mal. Sa a ba nou ti gout upsides, men tou li pral fè nou sòt de nan konsepsyon yon ti jan lazier lè li rive sezisman done. Ki lòt bagay ki gen la kenbe nan tèt ou isit la? Varyab gade byen renmen sa a, se konsa $ s = "hello, nan lemonn." Sa a se petèt inferable soti nan egzanp lan anvan, e nou gen yon lòt kalite riban. Yon sèl sa a nou pral wè aktyèlman yon fwa nan yon pandan y ap depi li nan byen sou la men, yon fortch konstwi. Nan ka sa a, riban an fortch pran andedan nan mo 3 parantèz li yo tipikman, $ Yon bagay premye, ki se ki sa etalaj ou vle repekte sou manm yo nan, Lè sa a, literalman mo kle a kòm, ak Lè sa a, alafen, yon lòt non varyab ke ou jwenn yo chwazi. Li kapab foo, ba, oswa eleman, epi ki sa sa a aranje fè sa ki se si etalaj la $ gen 10 eleman sou chak iterasyon sa a etalaj regrèt-, sou chak iterasyon sa a riban varyab eleman ki rele yo pral mete ajou yo dwe eleman nan premye nan etalaj la, Lè sa a, eleman an dezyèm nan etalaj la, Lè sa a, eleman ki twazyèm nan etalaj la, kidonk eliminen bezwen an fè notasyon la yon ti jan anmèdan kare bracket ak $ Mwen yo nan lòd yo endèks nan yon etalaj. PHP fè sa ki nan tout sa travay pou ou yo, epi sou chak iterasyon jis men ou eleman la nan pwochen seri a san ou gen konnen sou oswa swen sou kote nimerik endèks li yo. Lè sa a, alafen, pou kounye a, gen nan yon karakteristik lòt moun ki te PHP ki k ap pase yo dwe lajman itil, espesyalman lè nou kòmanse pwogram sou entènèt la, Epi sa a, ke yo rekonèt kòm yon etalaj asosyatif. Ranje sa yo ke nou konnen konsa byen lwen kòm nan 20 segonn Anons sa pibliye depi ak pou 8 semèn ki sot pase yo yo numériquement Catalogue ranje, sòt de ranje tradisyonèl kote endis yo se antye, 0, 1, 2, tout wout la sou yo. Ranje asosyatif se yon bann plis pouvwa anpil. Yo pèmèt ou gen pouvwa abitrè, endis abitrè ak valè abitrè. Lè nou konsidere ke nan yon etalaj tradisyonèl li 0, 1, 2, nan yon etalaj asosyatif ou ka gen yon endèks oswa yon kle nan foo ki gen valè se ba. Ou ka Lè sa a, gen yon lòt kle ki gen non se Baz, epi ki gen valè se qux. Yon fwa ankò, estipid òdinatè syans jenerik non varyab isit la, men pwen an se ke sa a etalaj pa gen bracket 0 oswa bracket 1. Li nan olye pral gen bracket foo ak bracket Baz. Sa a se yon anpil plis versatile nan ke nou ap ale nan dwe kapab asosye mo ki gen lòt mo, kle ak valè konplètman abitrèman, e nou pral pou kapab jwenn valè sa yo tounen nan tan konstan paske anba kapo a ki sa yon etalaj asosyatif vrèman se se yon tab regle. Sonje byen, yon tab regle pèmèt ou mete nan kèk D ' renmen mete nan pawòl David la si ou vle insert David nan kèk kalite diksyonè, diksyonè ak Lè sa a, ou jwenn do kèk valè tipikman. Nan ka ortograf, vre oubyen fo. David oswa kèlkeswa sa mo se nan oswa ki pa rete nan diksyonè a. Yon etalaj asosyatif se reyèlman jis yon tab regle, men li la yon itilizatè enkarnasyon pi plis zanmitay nan li. Kòm nou pral wè, li te ale nan pèmèt nou fè kèk bagay trè, trè fasil. Kite a pran yon gade nan kèk debaz PHP egzanp ak wè sa nou kapab fè ak lang sa a. Kite m 'ale pi devan epi louvri moute nan anyè sous nou yo jodi a yon dosye rele hello1.php. Sa a ranpli se kòmantè plis pase li se kòd reyèl, Se konsa, kite m 'aktyèlman retire tout nan kòmantè yo soti nan dosye a e prezan ou petèt pi senp PHP pwogram nan dwa isit la. 5 liy, ak kèk nan sa yo se blan espas, Se konsa remake kèk diferans kle isit la. Se dosye a rele hello1.php. Liy an trè premye, menm si, se , Vle di sa a, se li pou kòd PHP m 'yo. Ann gade pou wè ki jan yo kouri sa a. Mwen pral tounen nan fenèt tèminal mwen isit la. Mwen pral antre nan anyè PHP m 'yo. Remake nou gen yon pakèt antye nan dosye, youn nan premye nan ki se hello.php. Kite m 'ale pi devan epi kouri sa a hello1.php,, antre. Pèmisyon refi. Oke. Ki jan yo te nou fiks bagay sa yo tankou sa a nan tan lontan an? Ki sa ki nan sa? >> [Fèbl repons elèv] Nou bezwen li ak ekri, men kite m 'fè ls-l. Sonje sa a pwodiksyon yon ti jan skre kote hello1 sanble ap ka konprann ak écritures pa m ' men ka konprann pa tout lòt moun. Li vire soti sa sa a aktyèlman se pa yon etap nan direksyon ki dwat. Diferans a, ankò, ak yon lang entèprete se ou pa kouri pwogram nan dirèkteman. Ou olye kouri yon entèprèt ak men li kòd la ke ou te ekri pou li ka esplike l 'liy pa liy. Nan ka sa a, entèprèt la oswa pwogram mwen aktyèlman vle kouri se literalman rele PHP. Yon kote sa a sou kondwi difisil nan aparèy la gen yon pwogram te ekri yon lòt moun te rele PHP, oswa sou Windows php.exe. Sa mwen ap pral fè isit la se mwen pral aktyèlman kouri PHP men bay li kòm yon agiman liy lòd kòd la ke mwen te ekri, ak Lè sa a, mwen pral rale soti ak frape antre. Li kouri pwogram mwen an pou m ', anwo jouk anba, gòch a dwat. Kite m 'ale pi devan epi louvri moute yon divèjans ti tay sa a. Nan hello2.php avi ke sa a twò se sitou kòmantè, se konsa, kite m 'debarase m de sa yo kòm yon distraksyon, ak sa ki nan klèman diferan kounye a sou sa a ranpli? Genyen nan liy sa a nouvo, yon ti jan skre nan tèt la. Nan liy 1 li a #! / Bin / php. Bin se yon konvansyon sou Linux ak Mac OS pou binèr, se konsa / bin vle di sa a se yon folder ki gen yon pakèt moun sou binèr ki pwograme a, youn nan ki se PHP. # A! se surnommé kaz, ki se yon fason a rapid li di ke li, ak kisa sa vle di se ke lè ou kouri pwogram sa a kounye a gen yon allusion nan tèt la nan dosye a ki di òdinatè a ki sa entèprèt yo itilize. Li vin yon ti kras anmèdan si ou te gen di itilizatè ou ak kliyan ou "Hey, nou te ekri pwogram sa a yo rele hello1.php." Tout sa ou dwe fè se pou tout tan kouri PHP ak Lè sa a, non an nan pwogram sa a. Franchman, li ta jis pou joli nan kouri hello1.php, ak tout bon, nou ka si nou fè bagay sa a. Kite m 'ale pi devan epi fè ls-l, ak avi nan hello2 li a toujou jis li ekri ak Lè sa a, li li, se konsa mwen pa kapab ankò fè sa, hello2.php. Men, nou prezante sa a janm konsa yon ti tan dènye tan, yo lòd, ki chmod. Si m 'fè chmod yon + x, ki vle di tout executability plis, ak Lè sa a, hello2.php ak Lè sa a, ls-l ankò remake ki sa chanje. Youn nan, Linux ki montre m 'non an nan dosye vèt yo transmèt lide nan ki ègzèkutabl li a, men plis enpòtan, ki sou bò gòch-men remake ki te ti jan ki reprezante x pou ègzèkutabl koulye a te mete. Ki sa sa vle di kounye a se mwen ka kouri ./hello2.php kòm dabitid, frape antre nan, ak paske yo te kaz ki nan tèt la anpil nan dosye a sa a, se yon allusion, ankò, nan Linux ki di itilize sa a entèprèt ki pale Kreyòl kouri sa a dosye. pa enkyete sou fòse itilizatè a aktyèlman tape li. Ak sa ki nan bèl kounye a se kalite li a nan petinan nan kliyan m nan oswa m zanmi m ' ki lang mwen te ekri pwogram sa a nan, se konsa mwen ka ale pi devan ak MV ak chanje non bagay sa a hello2, pou egzanp. Epi, koulye a, si mwen fè ./hello2 ak rale soti pwogram mwen kontinye ap kouri. Sa yo ekstansyon dosye se yon konvansyon moun ki nan nesesè pou yon bagay tankou rezone ak Fè ki gade pou yo. Men, pou PHP, mwen te kapab rele sa a anyen ekstansyon dosye mwen vle yo. Mwen te kapab je chèch mond lan nan panse ke mwen reyèlman bon nan Ruby, e mwen ta ka ekri hello2.rb ak Lè sa a, kouri sa a, ak vwala, koulye a mwen gen vèsyon an Ruby, ki se yon manti konplè. Men, ekstansyon yo ranpli yo se san sans si dosye a se ègzèkutabl e li gen sa a allusion espesyal nan tèt la nan dosye a. Koulye a, kòm yon sou kote, kite m 'moutre ou byen vit vèsyon 3, ki se sòt de yon Trick itil yo konnen. Nan hello3 mwen te fè yon bagay yon ti kras mal ke mwen pral mete ajou sou entènèt la kòd sous. Nan vèsyon 3 Li sanble ke sou pi fò nan òdinatè Linux gen nan yon pwogram yo rele Env pou anviwònman, ak sa ou kapab fè isit la se si ou pa gen okenn lide kote PHP se enstale sou kondwi a difisil lokal, paske tout bon li te kapab varye ki baze sou òdinatè a ke yon moun ap itilize, Env jis di kouri Env, ki se sou pi fò nan sistèm, ak konnen ki kote PHP se. Jis yon Trick komen pou w pa gen enkyete sou jwenn deyò kote yon pwogram se. Men, si ou fè swen nan jwenn kote yon pwogram se ak nou pa t 'pran swen konsa byen lwen ou ka itilize yo lòd, ki ki. Kite m 'rale soti ak kalite ki php, ak avi li di m 'li an aktyèlman nan uzr / bin / php. Li nan kalite yon manti. Li la tou nan bin. Li nan jis ki montre m 'frape la an premye. Si ou janm mande kote sonnen se, ki sonnen, sa se nan uzr / bin / rezone, ki fè, uzr / bin / fè, ak ki sa sa vle di se tout tan sa a ou ta ka yo te sezisman uzr / bin / rezone antre nan nan kouri rezone, men kalite li a nan fatigan fè sa, se konsa kèk dosye tankou uzr / bin ak bin yo sipoze yo dwe défaut Se konsa òdinatè a konnen yo gade nan yo pou ou. Nenpòt kesyon sou ekri yon super, super senp pwogram Alo Mondyal nan PHP ak Lè sa a, kouri li? Paske kounye a nou ap kòmanse entwodui sentaks plis irezistib. Tout dwa, isit la nou ale. Pwogram sa yo nou te wè aktyèlman tout nan yo anvan. Si m 'louvri moute, pou egzanp, kite a fè beer1.php, nou pa pral ale nan vèsyon plizyè nan sa a, men sa mwen te fè te mwen chita bò tab la, li vide l 'oswa konvèti kòd C mwen an kòd PHP isit la. Pifò nan tèt la nan dosye a se kòmantè moute isit la. Li vire soti gen nan yon fonksyon nouvo nou bezwen rele rèdlin. GetString, rapèl, ki soti nan pati Semèn 0 te yon bagay CS50. PHP vini ak fonksyon pwòp li yo user-zanmitay rele rèdlin ki pran 1 agiman ki espesifye èd memwa a ke ou vle montre itilizatè a, e ki sa rèdlin fè sa ki se li retounen tou sa itilizatè a kalite pous Nan ka sa a, mwen deklare yon varyab ki rele $ n. Mwen estoke nan li valè a retounen nan rèdlin apre pouse itilizatè a ak sa-a fisèl. Jis nan do moute, nan aktyèlman kouri bagay sa a, kite m 'ale pi devan epi kouri php beer1.php. Konbyen boutèy va fè nou konnen? Se pou nou jis fè 2 tan sa a. Antre. Sa a tout. Pwogram la gen ki idantik ak vèsyon an C soti nan semèn de sa. Men, syntactically kite a wè sa ki nan diferan. Apre mwen kapab jwenn yon int soti nan avi a itilizatè ke mwen fè kèk kont kouran erè, epi si n se mwens pase 1 mwen kite ak mwen enprime soti yon mesaj regrèt itilizatè a ak sòti ak 1. Sa a tou se yon ti kras diferan.  Nan C nou sa nou te fè? Nan C nou tounen 1. Nan PHP ou sòti avèk 1, ki franchman se mwen panse ke yon ti kras plis entwisyon paske w ap literalman k ap sòti pwogram nan. Tout dwa, ak Lè sa a, desann isit la chante sa a, annwiyeu se idantik syntactically eksepte pou varyab la, se konsa 'desann isit la nan liy 24 pati remake mwen an pou riban se prèske menm bagay la tou, men mwen gen $ la devan mwen ak n, ak ki sa ki tou ki manke nan liy 26 ke nou te gen nan tan lontan an lè deklare yon mwen varyab? Gen nan pa gen kalite. Li se kòrèk nan PHP di int. Ou tou senpleman pa bezwen fè sa. Òdinatè a, PHP a entèprèt se entelijan ase reyalize ke si ou mete yon nimewo nan $ mwen li pral trete li kòm yon nimewo pou ou. Lè sa a, desann isit la nou ploge nan $ mwen, $ mwen, $ mwen - 1. Nan tout sa se menm bagay la, ak Lè sa a, desann isit la n ap fè yon "Wow, sa se anmèdan" printf ak Lè sa a, sòti (0). Yon fwa ankò, Takeaway a isit la se ke menm si nou ap ale nan depanse relativman yon ti tan sou PHP, sètènman kont ki sa nou te fè sa sou C, li nan prèske menm bagay la, se pou nou sa nou pral fè jodi a ak semèn pwochèn ak pi lwen pase se konsantre reyèlman sou kèk nan lide yo nouvo. Jis yo wè ke yon lòt bagay tradui sou soti nan C, sa a te yon Super pwogram senp nou te fè sa nan Semèn 1 oswa 2 ki Gleason yon valè. Men, sa ki te enteresan nan moman an sou pwogram sa a se ke li entwodwi nosyon de yon fonksyon koutim ekri ki nou menm nou te ekri. Sentaks la nan PHP se prèske menm bagay la. Isit la nan pwogram m 'kanpe tèt. Avi ankò absan se nenpòt nosyon nan prensipal la. Mwen kòmanse ekri kòd, e sa se sa ki pwal jwenn egzekite pa entèprèt la. Mwen enprime soti x se kounye a 2, prezimableman. Lè sa a, mwen reklame cubing ... Lè sa a, mwen rele fonksyon an kib epi pase nan $ x epi plase valè a retounen nan $ x. Apre sa, mwen fè reklamasyon ke li nan Gleason, ak Lè sa a, mwen di sa a, ki èspere ke pral di x se kounye a 8. Sentaks la pou fonksyon an nan PHP se toujou konsa yon ti kras diferan. Yon lòt fwa ankò ki manke se tip lè li retounen. Yon lòt fwa ankò ki manke a kalite retou a ak tou ki manke a se sa ki kalite lòt yo? [Fèbl repons elèv] Oke, oke, sa se bon. Se pou nou tounen vin jwenn ke nan yon dezyèm fwa. Nou pa gen, pou egzanp, Int isit la. Nou pa, pou egzanp, yo te Int isit la, paske, ankò, nan PHP ou tou senpleman pa bezwen e yo pa dwe fè sa, men pito gen nan sa a mo kle nouvo rele fonksyon. Nan PHP li nan prèske yon klè ti kras, paske lè ou vle yon fonksyon ou literalman di fonksyon, ou ba li yon non ak Lè sa a, yon vigil separe lis si nenpòt nan agiman li yo. Pa bezwen di anile oswa yon bagay tankou sa, epi Lè sa a, retounen se menm bagay la, $ Yon * $ * $ yon yon. Ki sa ki se tou ki manke? Sammy pwente sa a soti isit la. Nan tèt la nan dosye a nan PHP konplètman absan tou se yon pwototip. Sa a tou se pa konsepsyon. Lang ak entèprèt tankou PHP se pi entelijan pase C te janm nan konpilateur tankou sonnen. Sonje byen, rezone, si ou pa t 'janm di li ki kib ki egziste, si ou pa t 'janm di li ki printf egziste menm jan ak yon pwototip oswa avèk yon # enkli ladan yo, byen, li te pral rele nan ou epi li pa menm konpile kòd ou a. PHP ak plis lang modèn se yon anpil pi entelijan lè li rive sa a. Yo pral pran l 'sou tèt yo a li nan tout nan kòd ou a ak Lè sa a, rele nan ou sèlman si li jwenn okenn kote kib. Li pa enpòtan si kib se nan pati anba a oubyen anwo tèt la oswa menm nan kèk dosye separe. PHP ak menm jan lang yo kounye a se entelijan ase yo gade pi devan nan tout bagay anvan estimasyon an ou tankou ke li gen fè yon erè. Ki kote ki kite nou? Se pou nou fè yon dènye egzanp isit la nan kondisyon yo, ak si mwen louvri moute conditions2.php avi twò sentaks isit la se prèske menm bagay la. Mwen sèvi ak rèdlin olye pou yo GetString, men sa liy se menm bagay la kòm anvan, "Mwen ta renmen yon nonb antye relatif tanpri." Mwen Lè sa a, gen yon kondisyon si, yon lòt bagay si, e Lè sa a, yon lòt bagay, men woulant pwogram sa a se tou ki idantik ak sa nou te fè semèn de sa, Se konsa, si mwen kouri bagay sa a, php nan conditions2, epi mwen bay li yon nimewo tankou 23 - Mwen pran yon chif pozitif. Si m 'ba ou li -1 mwen pran yon chif negatif. Si m 'ba ou li 0 Mwen menm, mwen pran 0. Se konsa, moun ki gen sousi pou tout bagay sa yo? Oke, youn nan sòt nan plezi nan egzèsis isit la pou m 'omwen te ale retounen lakay yo epi wè ki jan byen vit mwen te kapab aplike pset 5, Misspellings pset la. Sonje ke te gen sa a ranpli rele speller.c, e te gen yon dosye rele dictionary.c. Ki sa mwen t 'te mwen kalite pase yon kèk minit epi mwen konvèti kòd la C PHP kòd yo, epi nou pa pral pase anpil tan sou ortograf paske jis tankou nan pset 5 nou pa t 'reyèlman bezwen pase anpil tan sou ortograf tèt li paske atansyon ou te sou diksyonè. Sufi li vle di ke si w ap li ortograf, sa a ranpli isit la, li la bèl anpil ekivalan a kòd la C nou te ba ou pou pset 5. Mwen te jis te ajoute kèk $ nan plas yo. Mwen te chanje non fonksyon sèten yo si yo pa t egziste nan PHP. Genyen nan yon sèl bagay plis isit la, preg_match, ki se yon fason yon ti kras amateur nan fè yon bagay, men nou pwal tounen vin jwenn ki evantyèlman. Men, nan kout, ortograf se prèske ki idantik, epi si ou gade nan pati anba a trè ki sa li evantyèlman krache soti se sa a isit la, mo mal ekri, mo nan diksyonè mo, nan yon tèks. Tout dwa, se konsa sa ki nan enteresan kounye a se sa ki annapre yo. Nan tèt la nan dosye mwen mwen ki mande dictionary.php. Menm jan C ki gen ladan PHP # gen yon fonksyon espesyal ki rele mande pou ki bèl anpil fè menm bagay la, mande pou yon dosye rele dictionary.php. Kouman mwen ka ale sou mete ann aplikasyon pset 5? Kite m 'ale pi devan epi louvri moute yon dosye isit la. Kite m 'pran yon ti kras referans isit la. Ak kite m 'kreye yon dosye ak nouvo kòmanse rele sa a dictionary.php. Kite m 'mete l' nan yon lòt folder pou nou ka fè sa ap viv la. Epi, koulye a mwen pral rale pous Mwen pral kòmanse dosye PHP mwen ak bracket louvri php fèmen bracket. Lè sa a, nan isit la, te gen yon fonksyon kèk mwen te bezwen aplike pou pset 5, Se konsa, kite m 'kòmanse mete ann aplikasyon kèk nan moun yo, se konsa fonksyon chèk, ki te pran yon mo nan kòm yon agiman. Nou pral fè sa ak tounen vin jwenn li nan yon ti moman. Te gen chaj fonksyon, ki te pran nan sa kòm yon agiman? Diksyonè, se konsa dosye a ke mwen aktyèlman te vle chaje. Te gen gwosè fonksyon, ki pa t 'pran nenpòt agiman e te gen fonksyon-sa ki te lòt la? Debake, ki pa t 'pran nenpòt agiman swa. Sa yo se fonksyon yo 4 ke mwen ta bezwen kounye a aplike nan PHP, epi ki sa mwen pral fè se ale pi devan epi fè sa. Yon anpil nan ou te itilize yon tab regle nan pset 5, Se konsa, kite m 'ale pi devan epi kreye yon tab regle nan PHP. Fè. Sa ki ban m 'yon tab regle. Oke, pou kisa? Youn, se varyab la ki rele $ tab, jis sorselri moute lide a nan yon tab regle. Parantèz yo kare, menm si, sonje, reprezante ki sa? Yon etalaj, men nan PHP ranje pa bezwen numériquement Catalogue. Yo kapab tou ranje asosyatif, ki vle di ou ka gen kle abitrè ak valè. Anpil tankou nan, 5 pset moun nan nou ki te fè en tab regle pwobableman ou antre pawòl Bondye a ak Lè sa a, eleman l 'nan yon chèn nan lye lis, oswa ou ki estoke valè a nan yon kote vre oswa yon bagay sou sa. Ou yon jan kanmenm vin chonje lefèt ke pawòl Bondye a te ye. Pou kounye a, ki k ap pase yo dwe tab regle m 'yo, ak konsa koulye a yo ale sou mete ann aplikasyon fonksyon an chèk Mwen te jis bezwen gade andedan nan ki tab regle ak wè si yon mo ki gen la. Ki sa ki mwen pral fè se mwen pral di si- Se pou nou di ise, ki se yon fonksyon PHP ki literalman jis vle di se mete nan kle yo, Se konsa ise ($ tab [$ mo], e si se konsa retounen vre. Sa a li. Sa a pset 5 nan PHP. Oke, nan patipri, oke. Lòt Bagay retounen fo, kidonk li a pa la. Kisa ki reyèlman ale sou isit la? Byen, si tab-oswa regle tab isit la plis jeneralman- se yon etalaj asosyatif sa vle di ou kapab endèks nan li ak yon mo tankou "mo", epi ou gen jwenn tounen kèk valè. Nou se kalite a ap resevwa yon sèl etap devan yo nan tèt nou. Li ta kalite bèl si nou aktyèlman chaje dosye a an premye, Se konsa chaj se pa byen kòm senp, men kite m 'ale pi devan epi fwe moute  yon aplikasyon vrèman rapid nan chaj. Kite m 'ale pi devan epi di mo vin diksyonè dosye-a. Fonksyon an dosye ki nan PHP ouvè yon dosye epi retounen ba ou yon etalaj de tout mo yo nan ki ranpli, jis men yo ba ou. Sa se te yon doulè gwo tou, pa t 'li? Koulye a, fortch, sa a se konstri nouvo nou an, fortch ($ mo kòm $ mo). Sa a riban ki pral kòmanse iteration sou mo sa yo etalaj ak transfere bay varyab la mo $ chak mo nan dosye a soti nan premye moun ki dezyèm nan twazyèm nan katriyèm tout wout la nan Se konsa, mwen pa bezwen fè anmèdan [mwen] notasyon la ak renmen an. Ak sa m ap tou senpleman ale nan pou chak nan mo sa yo se mete yo nan tab avè m 'pa Indexing nan tab ak Lè sa a, ap fè vre paske yo sonje ki yon mo se nan diksyonè mwen tout mwen reyèlman dwe fè ki kalite baskile yon ti jan epi di mo sa a nan tablo regle mwen ki gen la, vre. Men, si li pa la, mwen pa oblije fòmèlman mete fo, otreman mwen ta gen yo mete fo pou tout mo posib nan linivè la. Li sifizan pou mwen jis yo mete yon valè endèks vre si yon mo se aktyèlman nan tablo regle m 'yo. Koulye a, mwen koupe yon koup la kwen isit la ke mwen pral balanse men m 'nan pou kounye a, men koulye a, se fonksyon an chaj fè. Mwen chaje tout mo sa yo nan dosye a nan yon etalaj. Mwen repekte sou ki etalaj, epi pou chak mo nan etalaj la Mwen ploge li nan tab regle mwen an avèk 1 liy nan kòd. Sa a se plezi. Ou konnen ki jan nou ka aplike gwosè kounye a? Oke, gwosè se toujou trè fasil, nan jistis. Isit la nou kapab jis retounen konte nan tab. Sa a se trè fasil tou, konte kantite de bagay sa yo nan tablo a. Sa a se aktyèlman kalite pa efikas ki pi. Mwen ta pwobableman gen yon varyab gwosè rele pou nou ka fè li nan tan konstan, men sa a trè fasil. Oh, ak Lè sa a, debake, si nou vle reyèlman yo dwe nan dèyè isit la nou ka di lè sa a jan ou ap desann yon bagay. Ou jis mete varyab la egal a yon etalaj vid, ak li vin debarase m de tout bagay ki te la. Nou pa bezwen rele gratis. Yon fwa ankò, mwen te koupe kèk rebò, kwen, epitou mwen prezante eskiz pou ansanm deziyen pwoblèm 5 petèt nan C, men si nou kounye a ale pi devan epi kouri sa a, Mwen pral aktyèlman kouri vèsyon an ki mwen te ekri davans jis pou m 'pa t' fè okenn erè sentaks tou. Kite m 'ale pi devan epi kouri ortograf. L 'a se menm bagay la. Isit la se yon dosye diksyonè ki jis gen foo an mo. Isit la se yon dosye tèks ki jis gen foo ba. Se pou nou eple tcheke sa a, se konsa ortograf, lè l sèvi avèk sa a ranpli diksyonè sou sa a ranpli tèks. Genyen nan yon mo mal ekri, ba, ak vwala. Fè ak pset 5. Kite a pran yon ti repo-5 minit isit la, epi nou ap tounen ak plis ankò sou PHP. Tout dwa, nou se tounen. Se pou nou-rayi m 'pou yon ti tan. Se pou nou kounye a aktyèlman wè si sa a pa te yon pozitif aktyèlman mete ann aplikasyon bagay sa a nan PHP. Akòde, li te pran 45 segonn a aplike. Men, kite a ale pi devan koulye a, epi kouri bagay sa yo. Kite m 'ale pi devan epi kouri yon vèsyon C nan ortograf, epi nou pral kouri li sou youn nan dosye yo pi gwo, ki se FREE Online Haitian Creole a. E ke isit la se an-kite yo ale nan folder C nou an, ortograf sou Haitian Creole 5yèm a. Yon anpil nan mo ki mal ekri. Oke, kidonk sa a, se pwodiksyon an pwobableman ou te resevwa menm si fwa yo se yon ti kras diferan, si ou te resevwa tout bagay k ap travay yo kòrèkteman, ak tan sa nan total eple tcheke FREE Online Haitian Creole a te .38 segonn, se konsa trè bon lè l sèvi avèk ki aplikasyon. Koulye a, kite m 'ale nan vèsyon an PHP, ki nou jis te ekri. Kite m 'kouri ortograf sou Haitian Creole. Whoops, inyore ke erè. Mwen nan anyè a sa ki mal. Ortograf sou Haitian Creole 5yèm a. Prèske fè. Okay, obsèvatè a rize pral reyalize ke te pi plis pase 3 segond la. Sa a se tan an vre kouri. Li sanble ke li pran tan yo tonbe krache anpil nan tèks soti paske nan bufe pwoblèm, men long istwa kout, sa yo ki te 3.15 segonn nan tan machin, CPU tan, kont sa ki te li yon ti moman de sa? Tankou .3. Mwen vle di, li nan yon lòd pou nan grandè pi dousman, Se konsa, kote se ke ridikil ralentissement vini soti nan? Bon, kòm te gen ka a ak pi nenpòt desizyon konsepsyon nou te fè nan klas la sou 9 semèn ki sot pase yo gen nan prèske toujou sa a arbitraj. Pafwa ant jis espas, pafwa ant espas ak tan, espas, tan ak efò devlopman, ak tout bon isit la, menm si nou sove yon kantite lajan gwo yo nan tan, petèt potansyèlman 10-20-30 èdtan nan tan devlopman mete ann aplikasyon korektè a période pa fwete l 'kanpe nan jis 45 segonn ak lang sa a pri a nou peye se ke li nan yon lòd pou nan grandè pi dousman kòm yon rezilta, ak sa a se jeneralman ka a ak pi lang nenpòt entèprete, PHP, Piton, Ruby, Pearl oswa lòt moun kote si w ap ale nan kouri li avèk yon entèprèt ak genyen li li kòd ou a liy pa liy, anwo jouk anba, gòch a dwat, ki entèrmedyèr ki pral pran kèk tan nan pwòp li yo, ak sa ou te santi ou isit la nan 3 segond sa yo, kòm yo te opoze ak .3 segonn se lefèt ke gen sa a entèrmedyèr ki moun ki dwe literalman entèprete kòd nou an liy pa liy, ak mande Bondye padon! si ou se andedan nan yon riban avèk yon dosye ki gen gwo santèn de milye de mo yo. Sa sou tèt ki pral ajoute jiska epi ajoute leve, li ajoute leve, li ajoute jiska. Pou yon zouti tankou sa a li la pwobableman pa lang nan pi bon yo itilize pou mete ann aplikasyon yon korektè période si immédiat se nan enterè itilizatè ou ak ba ou. Men, liksye a nou genyen nan yon ti moman se si ou sèvi ak yon lang tankou PHP oswa yon anpil nan entèprete lang nan yon kontèks entènèt la, pou ki matyè, ou gen benefis nan ki entènèt la se yon anpil pi dousman pase ki pi òdinatè. Ou gen yon CPU GHz nan òdinatè w lan, 2 GHz, petèt menm plis jou sa yo. Men reyalite a se sou entènèt la gen yon kantite gwo latence kote pou yon navigatè pou pale ak yon sèvè, menm si nou te wè semèn pase a ki sa a, se bèl vit, mwatye yon milisgond oswa konsa, ki twò ajoute moute, ak si w ap Téléchargez bagay sa yo tankou yon imaj oswa yon Facebook foto oswa w ap resevwa mesaj enstantane sou bavardaj Facebook, Gchat oswa tankou an, tout moun sa yo fwa wonn-vwayaj ant navigatè a ak nan kòmansman an sèvè yo ajoute leve, sa ki fè chwa patikilye ou nan lang nan anpil ka pa tout sa ki enpòtan, se konsa w ap amann lè l sèvi avèk yon lang yon ti kras pi dousman tankou PHP oswa Piton oswa Ruby men pou ki gen upsides gwo pou ou ak pou kolèg ou yo ak zanmi ou paske ou ka aplike bagay sa yo se konsa, anpil pi vit. ¶ Apre sa,, ou gen anpil mwens risk pou defo sekirite a sèten. Gen nan pa gen endikasyon nan PHP. Gen nan pa gen fot segman ke ou ka fasilman pwovoke nan menm fason an ou te kapab nan C. Avèk C w ap super pre pyès ki nan konpitè. Avèk lang PHP ak menm jan ou se sòt de pi wo nivo, se konsa pale, ki gen yon anpil nan defans ant ou menm ak sa ki aktyèlman pral sou andedan machin nan, epi li jis yon konpwomi. Nou te vinn nan pwen an pou yo gen sa yo plis modèn, lang wo nivo tankou PHP paske nan leson yo aprann nan lang tankou PHP nan C. Men, si ou pa konprann sa ki te ale sou anba kapo a tout tan sa a ou sètènman pa kapab pran desizyon yo konsepsyon dwat, epi sètènman lè li rive ap travay nan yon kote tankou Facebook oswa Google oswa nenpòt nan kote sa yo ke yo de pli zan pli ap jwe ak gwo done kouche menm si ou tounen ladan l epi premed ak ap travay ak kèk MD sou kèk gwo done mete ki enplike pasyan yo ak doktè Li te tankou lè l sèvi avèk zouti yo dwa se nan lajman irezistib paske otreman analiz ou nan kèk seri done ta ka pran segonn, oswa li ta ka literalman pran èdtan. Sa a se jis yon egzanp, nou pa sabote ou ak ki jan pi plis efò li te nan C men ede ou apresye ke lè ou aplike yon bagay nan C ou reyèlman konprann, oswa nan teyori, reyèlman konprann ki jan tout bagay se oswa yo ta dwe ap travay, epi ou gen kontwòl prèske plen sou sa k ap pase sou anba kapo machin lan, epi ak lang sa yo pi wo nivo ou gen renonse plis kontwòl ak foul moun yo ki te envante yo ak se sijè plis nan desizyon konsepsyon yo pase ou. Men, si nou pran pou yo akòde ke pèfòmans nan se pa byen kòm enpòtan sou entènèt la paske nan sa yo lòt pwoblèm, jis vitès rezo yo se yon ti kras pi dousman pase vitès CPU de tout fason, pou nou ka sòt de peye yo sèvi ak yon lang yon ti kras pi dousman si upsides yo se nou kapab devlope bagay sa yo 10 fwa pi vit oswa menm plis. Ann gade pou wè ki jan nou ka kòmanse lè l sèvi avèk sa a. Kite m 'ale nan yon katab nan mitan egzanp jodi a yo rele frosh.ims, ak sa a te aktyèlman pèsonèlman motive pa lefèt ke bagay la trè premye Mwen te ekri pou sit entènèt la ane de sa aprè pran CS50 ak CS51 te yon sit wèb pou pwogram nan IMS Frosh, nevyèm ane espò nan estad fèmen, ki la nan moman sa a te gen ase Anons sa pibliye depi ke nan moman an pa te gen okenn sit entènèt pou pwogram lan, menm si te gen yon sit entènèt, ak olye l te gen yon Proctor nan Wigglesworth kote si ou te vle pou enskri pou volebòl oswa foutbòl oswa kèlkeswa sa ou ta ranpli yon moso papye. Ou ta Lè sa a, mache nan tout lakou a. Ou ta Lè sa a, frape nan pòt yo epi yo glise nan pòt yo oubyen men nan Proctor an yon moso papye a ak non w sou li, si ou pa ou vle yo yon lòt chèf ekip, sa ki espò ou te vle fè sa, epi ki sa dòtwa ou te pous Li te sòt de yon fason lekòl fin vye granmoun nan ap fè bagay sa yo, ak sa a se te yon premye opòtinite otomatize yon anpil nan pwosesis sa a. Ou jis ale nan sit entènèt la. Ou tape yon bagay pous Ou jwenn yon konfimasyon imel, ak kou apoulaw, w ap fè. Sa a te bagay la trè premye m 'te fè, kwake nan yon lang yo rele Pearl, men li la relativman fasil fè nan PHP, e sa se sòt de reprezantan nan pwoblèm yo, ou ka kòmanse rezoud lè ou ka sakrifye tèt ou programe epi yo pa dwe fè konfyans sou bagay sa yo tankou Google sit oswa Excel oswa zouti ke yo remèt bay ou. Ou nèg kounye a gen kapasite nan fè bagay sa yo tankou sa a. Sa a se yon vèsyon Super lèd nan yon fòm, Men, kite a jis itilize li pou nan konmansman an nan konvèsasyon an kote sa a se apeprè ki sa fòm nan te sanble ak ane de sa pou nou yo ki ap pèmèt moun sou entènèt la pou enskri pou Frosh IMS. Nou mande pou yon non, yon toulède kaz pou si ou pa yo te vle fè kòmandan, fi oubyen pou gason, ak Lè sa a, ki sa dòtwa yo te nan, ak Lè sa a, yo ta soumèt fòm sa a. Se pou nou premye gade anba kapo a nan HTML a ki reprezante sa a Paj Web. Kite m 'ale nan froshims0, epi kòm yon sou kote, pou pset 7 Mwen ap pran pou yo akòde repèrtwar yo ak dosye yo ke mwen mete bagay sa yo pous Nou pral mache ou atravè egzakteman ki kote bagay la gen yo ale nan aparèy la, ki kòmandman Mod w gen kouri, se konsa pa enkyete sou tout la detay estipid senkronize nan soti isit la nan jwenn-ale. Tout dwa, isit la nan froshims0.php. Kite m 'desann, epi sa ki nan kirye isit la, sa a se yon dosye PHP, men ki sa ki andedan nan li, byen klè? Li se yon anpil tout HTML, ak tout bon, orijin PHP a reyèlman yo te pou yo te yon lang Web-santre. Yon moman Anons sa pibliye depi nou te itilize li aplike egzanp lan byè, kondisyon yo egzanp, egzanp lan hello, e ke se amann. Ou ka itilize PHP kòm yon lang écritures kote yon script se reyèlman jis nomanklatur a bay yon pwogram rapid ak sal oubyen yon bagay ke ou ekri nan yon lang scénario oswa plis jeneralman yon entèprete. PHP se super itil pou sa paske ou te wè ki jan byen vit relativman nou ka fwe moute pwogram nan PHP. Men, li te vrèman fèt pou l itilize pou entènèt la, ak ki fèt pou sit entènèt la nan sans ke avi moute isit la nan tèt la nan dosye a Mwen kòmanse ak