1 00:00:00,000 --> 00:00:00,170 2 00:00:00,170 --> 00:00:03,090 >> SPEAKER: La oss forbedre kursene hjemmeside ved å tillate oss å 3 00:00:03,090 --> 00:00:06,610 gi tilpassede titler for hver av de sider, slik at hver av dem er 4 00:00:06,610 --> 00:00:08,780 ikke, rett og slett, CS50. 5 00:00:08,780 --> 00:00:12,550 For å gjøre dette, la oss gjennomføre et par funksjoner, en som heter Render Header 6 00:00:12,550 --> 00:00:16,410 og en som heter Render bunntekst, som i stedet for Krev Alene vil ta 7 00:00:16,410 --> 00:00:19,330 vare på gjengivelsen av vår sidens topp-og bunntekster. 8 00:00:19,330 --> 00:00:20,280 La oss ta en titt. 9 00:00:20,280 --> 00:00:24,490 >> Innsiden av index.php nå, merker at Jeg krever 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 er i det som mine to funksjoner vil bli definert. 12 00:00:28,910 --> 00:00:32,960 Under det, merker at jeg nå kaller at funksjon Render Header. 13 00:00:32,960 --> 00:00:34,830 Og jeg har bestått i en krangel. 14 00:00:34,830 --> 00:00:39,040 >> Den type som argumentet synes å være en matrise, som i PHP betegnes 15 00:00:39,040 --> 00:00:40,370 med hakeparenteser. 16 00:00:40,370 --> 00:00:44,210 Spesielt er dette en matrise assosiativ array i den utstrekning det 17 00:00:44,210 --> 00:00:49,620 knytter en nøkkel, som tittelen, med en verdi, som CS50, heller enn å stole 18 00:00:49,620 --> 00:00:51,570 på tall indekser alene. 19 00:00:51,570 --> 00:00:53,820 Nedenfor at nå har vi min sorterte liste. 20 00:00:53,820 --> 00:00:57,180 Men under det, har vi et kall til å gjengi Bunn, den andre funksjonen 21 00:00:57,180 --> 00:00:59,980 det er antagelig definert i Helpers.php. 22 00:00:59,980 --> 00:01:01,500 >> La oss ta en titt der nå. 23 00:01:01,500 --> 00:01:06,760 I Helpers.php, merker at jeg har, faktisk, at funksjonen Render bunntekst 24 00:01:06,760 --> 00:01:11,100 hvis formål i livet er tilsynelatende å ta i så det argumentet en matrise 25 00:01:11,100 --> 00:01:12,130 kalt Data. 26 00:01:12,130 --> 00:01:15,870 Nå, hvis brukeren ikke gir en eksplisitt array, det faktum at det er 27 00:01:15,870 --> 00:01:20,610 et likhetstegn etterfulgt av tomt kvadrat parentes betyr at standardverdien 28 00:01:20,610 --> 00:01:23,410 av data vil bare være en tom array. 29 00:01:23,410 --> 00:01:27,670 >> Innsiden av Render bunntekst, merker at jeg er å kalle en funksjon som heter Extract. 30 00:01:27,670 --> 00:01:32,170 Ekstrakt tar en assosiativ array, som Dataene i dette tilfellet, og for en hvilken som helst 31 00:01:32,170 --> 00:01:37,060 nøkkel i det, viser det at nøkkelen til en lokal variabel med samme navn. 32 00:01:37,060 --> 00:01:41,640 Så hvis det assosiative array hadde en nøkkel kalt Foo, ville ekstrakt sikre at 33 00:01:41,640 --> 00:01:45,680 vi nå har en lokal variabel kalt dollartegn Foo, der verdien er den 34 00:01:45,680 --> 00:01:48,140 samme som den var i det assosiativ array. 35 00:01:48,140 --> 00:01:52,890 >> Til slutt, jeg kaller Krev footer.php, som som en side, ser 36 00:01:52,890 --> 00:01:54,900 ganske enkelt liker dette. 37 00:01:54,900 --> 00:01:59,390 Nå, tilbake i Helpers.php, legge merke til at vi også har Render Header, som 38 00:01:59,390 --> 00:02:02,610 argumentet er det samme, en matrise kalles Data som standard 39 00:02:02,610 --> 00:02:04,380 Verdien er en tom matrise. 40 00:02:04,380 --> 00:02:07,060 Vi deretter ringe Extract igjen, som før. 41 00:02:07,060 --> 00:02:12,130 Og da vi Krev header.php, der innholdet er nå dette. 42 00:02:12,130 --> 00:02:16,980 >> Innsiden av header.php, legge merke til at vi ikke lenger ha en hard kodet tittel. 43 00:02:16,980 --> 00:02:19,720 Og vi har nå en H1 tag, så vel. 44 00:02:19,720 --> 00:02:24,030 Spesielt er verdien av tittel kommer til å være uavhengig av verdien av 45 00:02:24,030 --> 00:02:26,750 den lokale variabelen kalt Tittel er. 46 00:02:26,750 --> 00:02:31,800 Etter å ha passert den til en PHP-funksjon kalles HTML spesialtegn, vi skal 47 00:02:31,800 --> 00:02:36,560 for å oppnå at returverdi, og deretter plugge den inn i HTML Jeg sender ut 48 00:02:36,560 --> 00:02:39,430 av en form av denne funksjon, kalt Echo. 49 00:02:39,430 --> 00:02:43,580 >> Virkelig, dette er kortform for et funksjonskall som ellers 50 00:02:43,580 --> 00:02:44,780 se slik ut. 51 00:02:44,780 --> 00:02:49,010 Men det er mye renere, rett og slett, å skrive åpen brakett spørsmålstegn lik 52 00:02:49,010 --> 00:02:51,400 signere, uten engang å nevne PHP. 53 00:02:51,400 --> 00:02:56,260 Jeg er nå kommer til å gjøre det samme på innsiden av at H1 tag slik at til syvende og sist, hvis 54 00:02:56,260 --> 00:03:00,520 brukeren går til min Render Header funksjon en assosiativ array, inne 55 00:03:00,520 --> 00:03:05,310 som er en nøkkel kalles tittel, at assosiativ array nøkkelen vil bli en 56 00:03:05,310 --> 00:03:07,870 lokal variabel kalt dollartegn Tittel. 57 00:03:07,870 --> 00:03:12,130 >> Vi vil da skje at dollartegn Tittel variabel til denne funksjonen, HTML 58 00:03:12,130 --> 00:03:13,240 Spesialtegn. 59 00:03:13,240 --> 00:03:16,500 Og bare i tilfelle det er noen potensielt farlig tegn i 60 00:03:16,500 --> 00:03:20,500 der, som-tegn eller andre slike symboler, vil HTML spesialtegn gjøre 61 00:03:20,500 --> 00:03:23,140 sikker på at de er gjengitt trygt på siden. 62 00:03:23,140 --> 00:03:26,420 Og ved å bruke åpen brakett spørsmål markere likhetstegn, jeg er bokstavelig talt 63 00:03:26,420 --> 00:03:30,080 erstatte inn på den del av side uansett returverdi 64 00:03:30,080 --> 00:03:32,050 av HTML Tegn er. 65 00:03:32,050 --> 00:03:36,450 >> I mellomtiden, i Lectures.php, jeg har en ny verdi for tittel. 66 00:03:36,450 --> 00:03:38,330 Ikke CS50, men Forelesninger. 67 00:03:38,330 --> 00:03:41,590 I Week0.php, har jeg en verdi av uke 0. 68 00:03:41,590 --> 00:03:45,560 Og i Week1.php, har jeg en verdi på 1 uke. 69 00:03:45,560 --> 00:03:48,790 Så ved slutten av dagen, siden min ser ganske ut som det gjorde før. 70 00:03:48,790 --> 00:03:52,090 Men vi har nå fått en mye, mye bedre design. 71 00:03:52,090 --> 00:03:54,240