1 00:00:00,000 --> 00:00:00,170 2 00:00:00,170 --> 00:00:03,090 >> Speak: Låt oss förbättra kurserna hemsida genom att tillåta oss att 3 00:00:03,090 --> 00:00:06,610 ge egna titlar för var och en av dem sidor, så att var och en av dem är 4 00:00:06,610 --> 00:00:08,780 inte, helt enkelt, CS50. 5 00:00:08,780 --> 00:00:12,550 För att göra detta, låt oss genomföra ett par funktioner, en som heter Render Header 6 00:00:12,550 --> 00:00:16,410 och en som heter Render sidfot, att i stället för att kräva enbart kommer att ta 7 00:00:16,410 --> 00:00:19,330 hand om rendering av vår sidas sidhuvud och sidfot. 8 00:00:19,330 --> 00:00:20,280 Låt oss ta en titt. 9 00:00:20,280 --> 00:00:24,490 >> Inne i index.php nu, märker att Jag kräver en ny fil som heter 10 00:00:24,490 --> 00:00:26,070 Helpers.php. 11 00:00:26,070 --> 00:00:28,910 Det är där som mina två funktioner kommer att definieras. 12 00:00:28,910 --> 00:00:32,960 Därunder, märker att jag nu ska ringa den funktionen Render Header. 13 00:00:32,960 --> 00:00:34,830 Och jag passerar i ett argument. 14 00:00:34,830 --> 00:00:39,040 >> Den typ av detta argument tycks vara en matris, som i PHP betecknas 15 00:00:39,040 --> 00:00:40,370 med hakparenteser. 16 00:00:40,370 --> 00:00:44,210 I synnerhet är denna matris en associativ array i den mån den 17 00:00:44,210 --> 00:00:49,620 associerar en nyckel, såsom titel, med en värde, som CS50, snarare än att förlita 18 00:00:49,620 --> 00:00:51,570 den numeriska index ensam. 19 00:00:51,570 --> 00:00:53,820 Därunder nu har vi min oordnad lista. 20 00:00:53,820 --> 00:00:57,180 Men under den, har vi ett samtal till Render Sidfot, den andra funktionen 21 00:00:57,180 --> 00:00:59,980 det är antagligen definierat i Helpers.php. 22 00:00:59,980 --> 00:01:01,500 >> Låt oss ta en titt där nu. 23 00:01:01,500 --> 00:01:06,760 I Helpers.php, märker att jag har, faktiskt, som funktion Render Footer 24 00:01:06,760 --> 00:01:11,100 vars syfte i livet är tydligen att ta in som argument en array 25 00:01:11,100 --> 00:01:12,130 kallas Data. 26 00:01:12,130 --> 00:01:15,870 Nu, om användaren inte ger en explicit array, det faktum att det finns 27 00:01:15,870 --> 00:01:20,610 ett likhetstecken följt av tom ruta parentes innebär att standardvärdet 28 00:01:20,610 --> 00:01:23,410 av data kommer helt enkelt att bli en tom array. 29 00:01:23,410 --> 00:01:27,670 >> Inuti Render sidfot, märker att jag är anropa en funktion som heter Extract. 30 00:01:27,670 --> 00:01:32,170 Utdrag tar en associativ array, som Data i det här fallet, och för alla 31 00:01:32,170 --> 00:01:37,060 nyckeln i det, visar det sig att nyckeln till en lokal variabel med samma namn. 32 00:01:37,060 --> 00:01:41,640 Så om det associativ array hade en nyckel heter Foo skulle extrakt säkerställa att 33 00:01:41,640 --> 00:01:45,680 vi nu har en lokal variabel som heter dollartecken Foo, vars värde är 34 00:01:45,680 --> 00:01:48,140 samma som den var i det associativ array. 35 00:01:48,140 --> 00:01:52,890 >> Slutligen kallar jag Kräv footer.php, vilket som en sidoreplik, ser 36 00:01:52,890 --> 00:01:54,900 helt enkelt gillar detta. 37 00:01:54,900 --> 00:01:59,390 Nu, tillbaka i Helpers.php, märker att vi också har Render Header, vars 38 00:01:59,390 --> 00:02:02,610 argumentet är densamma, en uppsättning kallas Data vars standard 39 00:02:02,610 --> 00:02:04,380 värdet är en tom array. 40 00:02:04,380 --> 00:02:07,060 Vi kallar då Utdrag igen, som tidigare. 41 00:02:07,060 --> 00:02:12,130 Och då kräver vi header.php, vars innehåll är nu här. 42 00:02:12,130 --> 00:02:16,980 >> Inne i header.php, märker att vi inte längre har svårt kodad titel. 43 00:02:16,980 --> 00:02:19,720 Och nu har vi en H1-tagg, liksom. 44 00:02:19,720 --> 00:02:24,030 I synnerhet, värdet av den i rubriken angivna kommer att vara vad värdet av 45 00:02:24,030 --> 00:02:26,750 lokal variabel som heter avdelning är. 46 00:02:26,750 --> 00:02:31,800 Efter att ha passerat den till en PHP funktion heter HTML specialtecken, vi ska 47 00:02:31,800 --> 00:02:36,560 att få det returvärdet, och sedan koppla in den i HTML-Jag utmatning 48 00:02:36,560 --> 00:02:39,430 genom ett sätt av denna funktion, heter Echo. 49 00:02:39,430 --> 00:02:43,580 >> Egentligen är denna förkortning notation för ett funktionsanrop som kanske annars 50 00:02:43,580 --> 00:02:44,780 se ut så här. 51 00:02:44,780 --> 00:02:49,010 Men det är mycket renare, helt enkelt, att skriva öppen fäste frågetecken lika 52 00:02:49,010 --> 00:02:51,400 underteckna, utan att ens nämna PHP. 53 00:02:51,400 --> 00:02:56,260 Jag kommer nu att göra samma insida som H1-tagg så att i slutändan, om 54 00:02:56,260 --> 00:03:00,520 Användaren går till min Render Header funktion en associativ array, inne 55 00:03:00,520 --> 00:03:05,310 som är en nyckel som heter titel, att associativ array nyckel kommer att bli en 56 00:03:05,310 --> 00:03:07,870 lokal variabel kallad dollartecken avdelning. 57 00:03:07,870 --> 00:03:12,130 >> Vi kommer då att passera att dollartecken Titel variabel till denna funktion, HTML 58 00:03:12,130 --> 00:03:13,240 Speciella tecken. 59 00:03:13,240 --> 00:03:16,500 Och ifall det finns någon potentiellt farliga tecken i 60 00:03:16,500 --> 00:03:20,500 där, som et-tecken eller annan sådan symboler, kommer HTML Special Tecken göra 61 00:03:20,500 --> 00:03:23,140 Se till att de är utförda säkert på sidan. 62 00:03:23,140 --> 00:03:26,420 Och genom att använda öppen fäste fråga markera likhetstecken, jag är bokstavligen 63 00:03:26,420 --> 00:03:30,080 substituera in på den del av sida vad returvärdet 64 00:03:30,080 --> 00:03:32,050 HTML Tecken är. 65 00:03:32,050 --> 00:03:36,450 >> Under tiden, i Lectures.php jag har ett nytt värde för avdelning. 66 00:03:36,450 --> 00:03:38,330 Inte CS50, men föreläsningar. 67 00:03:38,330 --> 00:03:41,590 I Week0.php, har jag ett värde på Vecka 0. 68 00:03:41,590 --> 00:03:45,560 Och i Week1.php, har jag ett värde på Vecka 1. 69 00:03:45,560 --> 00:03:48,790 Så i slutet av dagen, min sida ser riktigt ut som det gjorde innan. 70 00:03:48,790 --> 00:03:52,090 Men vi har nu fått en mycket, mycket bättre design. 71 00:03:52,090 --> 00:03:54,240