1 00:00:00,000 --> 00:00:03,920 >> [音樂播放] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> DAVID J.馬蘭:好吧。 4 00:00:13,800 --> 00:00:15,640 這是CS50。 5 00:00:15,640 --> 00:00:17,620 這是8週的開始。 6 00:00:17,620 --> 00:00:22,440 你可能還記得,我們​​不放過 上次看一個新的語言 7 00:00:22,440 --> 00:00:23,240 乾脆。 8 00:00:23,240 --> 00:00:25,905 事實上,一個是相當 重量輕,它甚至不是 9 00:00:25,905 --> 00:00:26,940 一種編程語言。 10 00:00:26,940 --> 00:00:31,100 這是一種標記語言,它讓我們 實際上結構,使網頁。 11 00:00:31,100 --> 00:00:33,350 而當你點別的 與this--結合 12 00:00:33,350 --> 00:00:35,670 或者你會很快,如果 你還沒有。 13 00:00:35,670 --> 00:00:38,530 我們將使用層疊 樣式表或CSS,這 14 00:00:38,530 --> 00:00:40,971 是另一種類型的語言 用屬性和值 15 00:00:40,971 --> 00:00:43,220 那將讓我們做 喜歡的東西改變顏色 16 00:00:43,220 --> 00:00:46,010 並改變其位置 這些類型的調整的。 17 00:00:46,010 --> 00:00:49,940 但今天起,我們開始 專注於更強大的語言, 18 00:00:49,940 --> 00:00:52,810 實際的編程語言,如PHP。 19 00:00:52,810 --> 00:00:54,880 >> 所以,PHP已經有一段時間了。 20 00:00:54,880 --> 00:00:56,810 正如你所看到的,它 設計的主要 21 00:00:56,810 --> 00:01:00,280 早在實際 在web開發中使用 22 00:01:00,280 --> 00:01:02,360 而實際產生的網頁。 23 00:01:02,360 --> 00:01:04,849 那麼什麼樣的 特點做了語言 24 00:01:04,849 --> 00:01:10,040 需要為了使捲筒紙 動態與它的網頁? 25 00:01:10,040 --> 00:01:14,760 >> 換句話說,如果你想生成 像Facebook的內容dynamically-- 26 00:01:14,760 --> 00:01:19,480 新聞源,它不斷地變化,或 即彈出不時即時消息 27 00:01:19,480 --> 00:01:21,872 以時間 - 像有什麼 功能按鍵件 28 00:01:21,872 --> 00:01:24,580 需要在編程語言 它可以讓你動態 29 00:01:24,580 --> 00:01:28,070 打印新的信息在屏幕上? 30 00:01:28,070 --> 00:01:28,685 >> 學生:代碼。 31 00:01:28,685 --> 00:01:29,560 DAVID J.馬蘭:代碼。 32 00:01:29,560 --> 00:01:30,440 行。 33 00:01:30,440 --> 00:01:31,995 我們就買那種。 34 00:01:31,995 --> 00:01:35,310 有一點更精確。 35 00:01:35,310 --> 00:01:37,639 我的意思是,我們可以做 這與C,坦率地說。 36 00:01:37,639 --> 00:01:38,930 這將是在頸部疼痛。 37 00:01:38,930 --> 00:01:41,045 但是 - 是這一承諾? 38 00:01:41,045 --> 00:01:41,895 >> 學生:是啊。 39 00:01:41,895 --> 00:01:42,677 變量,也許? 40 00:01:42,677 --> 00:01:43,760 DAVID J.馬蘭:變量。 41 00:01:43,760 --> 00:01:44,160 OK,確保萬無一失。 42 00:01:44,160 --> 00:01:45,740 變量肯定能幫助我們。 43 00:01:45,740 --> 00:01:47,020 甚至更簡單的東西。 44 00:01:47,020 --> 00:01:50,640 我們在使用它的第一個 第一天的節目 45 00:01:50,640 --> 00:01:55,686 當我們真正說的“hello world”。 46 00:01:55,686 --> 00:01:56,570 >> 學生:打印。 47 00:01:56,570 --> 00:01:57,778 >> DAVID J.馬蘭:打印,對不對? 48 00:01:57,778 --> 00:02:01,050 打印,或printf中 C.因此,這段時間的世界裡, 49 00:02:01,050 --> 00:02:03,362 我們已經在我們的 處置語言 - C, 50 00:02:03,362 --> 00:02:05,570 在particular--甚至 從頭開始為此事了 51 00:02:05,570 --> 00:02:07,400 可以生成文本的字符串。 52 00:02:07,400 --> 00:02:11,090 >> 好吧,如果HTML,正如我們上週所看到的,是 只是一大堆的文本字符串 53 00:02:11,090 --> 00:02:14,692 儘管開放式支架和關閉 支架和某種韻 54 00:02:14,692 --> 00:02:16,650 和原因,它的背後, 那麼我們可能真的 55 00:02:16,650 --> 00:02:20,440 開始生成的網頁要么 手動鍵入出來gedit中 56 00:02:20,440 --> 00:02:23,870 或在Microsoft Word中,為 matter--我們只需要一個文本編輯器。 57 00:02:23,870 --> 00:02:26,830 >> 或者,我們可以編寫代碼, 您的建議 58 00:02:26,830 --> 00:02:30,435 早些時候,這將讓我們 動態生成HTML, 59 00:02:30,435 --> 00:02:32,560 這就是我們要 開始用PHP做 60 00:02:32,560 --> 00:02:34,900 並且最終即使有 語言JavaScript調用, 61 00:02:34,900 --> 00:02:37,910 是用一種語言來生成另一個。 62 00:02:37,910 --> 00:02:40,720 事實上,這就是Facebook的 和很多很多其他網站 63 00:02:40,720 --> 00:02:44,530 做真正動態 顯示新的信息給你。 64 00:02:44,530 --> 00:02:47,117 >> 因此,讓我們開始this--一 神秘的看線,但一 65 00:02:47,117 --> 00:02:48,450 這實際上是非常強大的。 66 00:02:48,450 --> 00:02:51,210 到目前為止,我們一直在使用C, 這是編譯型語言。 67 00:02:51,210 --> 00:02:55,050 而就在快recap--一個編譯 語言有什麼特點呢? 68 00:02:55,050 --> 00:02:59,050 你顯然需要編譯 它,但到底是什麼意思呢? 69 00:02:59,050 --> 00:03:00,505 是嗎? 70 00:03:00,505 --> 00:03:02,940 >> 學生:它需要 組裝成機器代碼。 71 00:03:02,940 --> 00:03:03,060 >> DAVID J.馬蘭:OK。 72 00:03:03,060 --> 00:03:04,530 它需要被組裝 成機器代碼。 73 00:03:04,530 --> 00:03:07,340 所以,你把你的源代碼, 這是有點類似英語的。 74 00:03:07,340 --> 00:03:09,270 你,轉換為 一些較低的水平, 75 00:03:09,270 --> 00:03:11,590 這是所謂的最終 對象代碼 - 0和1的。 76 00:03:11,590 --> 00:03:14,830 而正是這些0和1的 一個CPU,像那些由Intel生產, 77 00:03:14,830 --> 00:03:16,110 真正理解。 78 00:03:16,110 --> 00:03:19,690 >> 現在,PHP和Python和Ruby和 JavaScript和其他的串 79 00:03:19,690 --> 00:03:23,190 語言不編譯 語言,但解釋型語言, 80 00:03:23,190 --> 00:03:26,630 這意味著你只需要輸入他們,然後 你不把它們變成0和1。 81 00:03:26,630 --> 00:03:30,790 你不是只提供那麼作為 輸入到別人的節目, 82 00:03:30,790 --> 00:03:32,080 所謂的翻譯。 83 00:03:32,080 --> 00:03:34,460 而那人的 程序的設計 84 00:03:34,460 --> 00:03:38,280 要了解每 在Python或PHP的每一個符號 85 00:03:38,280 --> 00:03:42,650 或Ruby或任何數量的 其他語言的意思。 86 00:03:42,650 --> 00:03:44,760 >> 所以我們需要的是 這樣的事情。 87 00:03:44,760 --> 00:03:46,350 所以,事實上,我要去 去到家電 88 00:03:46,350 --> 00:03:48,100 在這裡,只需到任何 舊的窗口,而且我們 89 00:03:48,100 --> 00:03:52,580 要繼續前進,並開放 一個名為,說,你好。 90 00:03:52,580 --> 00:03:55,780 現在,以前,我可能有救 這即使是文件擴展名, 91 00:03:55,780 --> 00:03:57,910 但我該怎麼辦 事情就更簡單了這裡。 92 00:03:57,910 --> 00:04:02,450 我要繼續前進,開始 這個文件與此語法晦澀。 93 00:04:02,450 --> 00:04:06,310 因此,“用戶,垃圾桶,ENV, 對於環境,PHP。“ 94 00:04:06,310 --> 00:04:10,670 >> 這是一個簡單的一行代碼是 要告訴我的操作系統, 95 00:04:10,670 --> 00:04:13,730 去找你的地方 環境,不管它是什麼, 96 00:04:13,730 --> 00:04:18,149 無論PHP is--的interpreter-- 並繼續使用該翻譯 97 00:04:18,149 --> 00:04:20,589 解釋下面的代碼。 98 00:04:20,589 --> 00:04:22,760 現在,這是怎麼樣的 PHP的一個醜陋的功能。 99 00:04:22,760 --> 00:04:24,980 但是,在這種語言,任何 一次編寫PHP代碼, 100 00:04:24,980 --> 00:04:29,200 你需要有這些醜陋的一 PHP標籤劃分的開始 101 00:04:29,200 --> 00:04:32,220 你的代碼 - <?php的。 102 00:04:32,220 --> 00:04:37,430 >> 但低於在這裡,我現在可以做些什麼 很簡單,如printf你好逗號 103 00:04:37,430 --> 00:04:40,922 世界反斜杠N分別閉合 引號,括號接近。 104 00:04:40,922 --> 00:04:42,630 然後剛剛好 措施,我要去 105 00:04:42,630 --> 00:04:45,380 繼續前進,接近 在這裡我的PHP標籤 106 00:04:45,380 --> 00:04:47,390 讓一切看起來 漂亮精美印刷。 107 00:04:47,390 --> 00:04:50,780 >> 而當我點擊保存, gedit中實際上是足夠聰明 108 00:04:50,780 --> 00:04:54,620 看那個第一行和 意識到,哦,你寫PHP代碼。 109 00:04:54,620 --> 00:04:56,710 我的語法高亮 它與色 110 00:04:56,710 --> 00:04:58,690 在這裡,使其立起 出多一點。 111 00:04:58,690 --> 00:05:01,300 但現在我會去 到我的終端窗口。 112 00:05:01,300 --> 00:05:02,340 我會縮小。 113 00:05:02,340 --> 00:05:06,860 >> 這項計劃被稱為“你好,” 所以我打算做點斜線你好, 114 00:05:06,860 --> 00:05:07,990 但是權限被拒絕。 115 00:05:07,990 --> 00:05:08,490 和bash。 116 00:05:08,490 --> 00:05:10,610 實際上,我們聽說過 事情在幾個星期前 117 00:05:10,610 --> 00:05:13,140 在Shellshock的範圍內, 其中的一個漏洞。 118 00:05:13,140 --> 00:05:16,240 >> 但是被拒絕的權限,我們已經看到了 之前,可能在不同的上下文。 119 00:05:16,240 --> 00:05:19,060 有誰還記得如何 你可能會解決一些 120 00:05:19,060 --> 00:05:22,100 其中,權限類似這樣的拒絕? 121 00:05:22,100 --> 00:05:23,490 什麼是命令,至少? 122 00:05:23,490 --> 00:05:24,159 >> 學生:CHMOD。 123 00:05:24,159 --> 00:05:26,700 DAVID J.馬蘭:是啊,CHMOD, 用於改變文件的模式。 124 00:05:26,700 --> 00:05:30,171 你會得到更習慣 下週有一個後續問題 125 00:05:30,171 --> 00:05:30,670 設置的。 126 00:05:30,670 --> 00:05:33,211 但現在,我要改變 該模式不被讀取, 127 00:05:33,211 --> 00:05:36,650 但讓​​所有人executeability 特權的能力 128 00:05:36,650 --> 00:05:37,710 運行此文件。 129 00:05:37,710 --> 00:05:40,360 我要去分配 即該文件打招呼。 130 00:05:40,360 --> 00:05:45,150 >> 如果我現在做點斜線打招呼進入, 看,其實,我的程序,你好世界。 131 00:05:45,150 --> 00:05:48,760 和什麼樣的步驟做了我 顯然完全跳過? 132 00:05:48,760 --> 00:05:49,520 編譯。 133 00:05:49,520 --> 00:05:51,680 所以,我只是跑這個程序很簡單。 134 00:05:51,680 --> 00:05:55,690 >> 而事實證明,你可以做到這一點 很多語法類似於C 135 00:05:55,690 --> 00:06:03,400 讓我走在今天的代碼, 我把我的虛擬主機目錄 136 00:06:03,400 --> 00:06:05,250 在這裡,真正的原因 我們再回過頭來。 137 00:06:05,250 --> 00:06:09,350 而且我要進入, 比方說,條件1。 138 00:06:09,350 --> 00:06:12,450 >> 你會看到這裡,第一, 最重要的是,一大堆的意見。 139 00:06:12,450 --> 00:06:15,240 但其實這是 一個再創造的PHP 140 00:06:15,240 --> 00:06:18,960 一個程序,我們在做一周 一個叫條件1.C 141 00:06:18,960 --> 00:06:20,690 其中,目的在 這個方案的壽命 142 00:06:20,690 --> 00:06:22,950 顯然是要問 為一個整數的用戶 143 00:06:22,950 --> 00:06:25,270 然後做一些蓬鬆 分析它,從而 144 00:06:25,270 --> 00:06:29,510 你說,如果是正面還是 負或等於零。 145 00:06:29,510 --> 00:06:34,220 和我提起這事,只是因為, 除了也許一個小細節, 146 00:06:34,220 --> 00:06:37,150 它是不可區分的,到目前為止,從C. 147 00:06:37,150 --> 00:06:39,930 >> 什麼是特色之一 在這裡,也許跳出 148 00:06:39,930 --> 00:06:41,410 你作為一個有點不同? 149 00:06:41,410 --> 00:06:42,160 也許兩件事。 150 00:06:42,160 --> 00:06:42,660 是嗎? 151 00:06:42,660 --> 00:06:44,070 >> 學生:美元符號N + 152 00:06:44,070 --> 00:06:44,944 >> DAVID J.馬蘭:是啊。 153 00:06:44,944 --> 00:06:46,210 因此,美元符號存在n。 154 00:06:46,210 --> 00:06:48,120 而美元符號,如 我們會看到,會 155 00:06:48,120 --> 00:06:51,460 是一個修復程序的開始 在PHP中的任何變量。 156 00:06:51,460 --> 00:06:54,250 它在愛恨bad--好 它的排序明顯的是什麼 157 00:06:54,250 --> 00:06:56,797 一個變量,壞的,因為它是 另一件事鍵入。 158 00:06:56,797 --> 00:06:58,630 而且還有另外一個 事情我們還沒有完全 159 00:06:58,630 --> 00:07:00,876 看到的那樣,至少由該拼寫。是嗎? 160 00:07:00,876 --> 00:07:01,630 >> 學生:Readline的。 161 00:07:01,630 --> 00:07:02,671 >> DAVID J.馬蘭:Readline的。 162 00:07:02,671 --> 00:07:06,550 readline的,我們並沒有看到,本身在 C,儘管存在著一些 163 00:07:06,550 --> 00:07:09,530 類似的,但是我們使用的GetString, 這是它的對手。 164 00:07:09,530 --> 00:07:12,950 所以,如果我進入這個 目錄中,這恰好是, 165 00:07:12,950 --> 00:07:18,030 我會在我的虛擬主機了一下解釋 目錄和我的源目錄, 166 00:07:18,030 --> 00:07:22,730 我繼續前進,做點斜線 條件 - whoops--點斜線 167 00:07:22,730 --> 00:07:26,710 條件1,你會看到,同樣, 同樣issue--權限被拒絕。 168 00:07:26,710 --> 00:07:33,610 >> 因此,讓我放大和文件模式做一個加 X上的情況下,點斜線條件。 169 00:07:33,610 --> 00:07:35,222 我想一個整數,請50。 170 00:07:35,222 --> 00:07:36,930 我們可以發揮這 遊戲一整天。 171 00:07:36,930 --> 00:07:39,140 它要表現得完全 因為它沒有在一個星期。 172 00:07:39,140 --> 00:07:42,860 >> 行,所以不是所有的不同,除了 沒有語法只是輕微的一點, 173 00:07:42,860 --> 00:07:45,490 但在頂部,我又 有這種線, 174 00:07:45,490 --> 00:07:49,760 讓我創造的東西, 貌似名為hello C程序, 175 00:07:49,760 --> 00:07:51,150 所謂的條件1。 176 00:07:51,150 --> 00:07:54,520 但它不是0和個位 我直接執行。 177 00:07:54,520 --> 00:07:57,620 它不是運行此 翻譯的名字 178 00:07:57,620 --> 00:07:59,440 剛好是相同的語言。 179 00:07:59,440 --> 00:08:04,970 該計劃被稱為PHP,和我的代碼 下面一行被傳遞到它。 180 00:08:04,970 --> 00:08:07,740 >> 我們可以做的另一種相當簡單的 例如讓人聯想到的東西 181 00:08:07,740 --> 00:08:09,240 我們在幾週前就已經。 182 00:08:09,240 --> 00:08:12,020 再次,這是一種類型的 的任意代碼塊 183 00:08:12,020 --> 00:08:14,000 這顯然是不 當你運行它呢? 184 00:08:14,000 --> 00:08:15,625 這是什麼付印,大概是? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> 所以最初的16行,它的 要說X現在是2,可能是。 187 00:08:28,250 --> 00:08:30,920 %d是一樣$我的printf的。 188 00:08:30,920 --> 00:08:33,460 這樣的話它的魔方,點, 點,點,在第17行。 189 00:08:33,460 --> 00:08:36,299 然後第18行出現 調用函數立方。 190 00:08:36,299 --> 00:08:37,600 何為立方定義? 191 00:08:37,600 --> 00:08:40,319 >> 嗯,它看起來像在第25行, 所以這還不是全部不同。 192 00:08:40,319 --> 00:08:42,610 我已經得到了上面的一些意見 它,但在大多數情況下, 193 00:08:42,610 --> 00:08:45,370 這是一個相當簡單的 移植或轉換 194 00:08:45,370 --> 00:08:48,470 從C程序的PHP版本。 195 00:08:48,470 --> 00:08:52,670 但現在有幾個 差別也許應該跳出。 196 00:08:52,670 --> 00:08:56,100 還有什麼是你如何不同 可以寫在C中同樣的程序? 197 00:08:56,100 --> 00:08:57,900 >> 學生:[聽不清]。 198 00:08:57,900 --> 00:09:00,070 >> DAVID J.馬蘭:有 沒有原型往上頂。 199 00:09:00,070 --> 00:09:03,210 所以PHP--坦率地說,一 很多現代languages​​--的 200 00:09:03,210 --> 00:09:06,920 有很多更聰明,更樂於助人 比C編譯器中,你 201 00:09:06,920 --> 00:09:09,740 可以把函數在這裡, 你可以把一個函數到這裡, 202 00:09:09,740 --> 00:09:12,740 並解釋是怎麼回事 做你的閱讀青睞 203 00:09:12,740 --> 00:09:16,010 它決定之前,整個文件 有些功能不存在。 204 00:09:16,010 --> 00:09:17,970 這麼好看的改進年後。 205 00:09:17,970 --> 00:09:22,126 但也有一些 有什麼不同或不存在這裡。 206 00:09:22,126 --> 00:09:22,626 是嗎? 207 00:09:22,626 --> 00:09:25,084 >> 學生:[聽不清]。 208 00:09:25,084 --> 00:09:27,750 DAVID J.馬蘭:我們不必 聲明的變量的類型, 209 00:09:27,750 --> 00:09:31,780 所以我們會看到不久的 有不同類型的PHP, 210 00:09:31,780 --> 00:09:34,970 但你並不需要指定它們, 這也是有好有壞。 211 00:09:34,970 --> 00:09:36,623 並有一件事缺失。 212 00:09:36,623 --> 00:09:37,430 >> 學生:有沒有圖書館。 213 00:09:37,430 --> 00:09:38,630 >> DAVID J.馬蘭:沒有圖書館。 214 00:09:38,630 --> 00:09:39,350 好了,這很好。 215 00:09:39,350 --> 00:09:40,540 我們得到了很多開箱即用。 216 00:09:40,540 --> 00:09:43,373 所以實際上是多了很多 事情比我想像的不同。 217 00:09:43,373 --> 00:09:44,350 怎麼樣在回來的方式? 218 00:09:44,350 --> 00:09:46,032 那是什麼? 219 00:09:46,032 --> 00:09:46,740 說一次? 220 00:09:46,740 --> 00:09:47,960 >> 學生:指針。 221 00:09:47,960 --> 00:09:49,270 >> DAVID J.馬蘭:沒有指針。 222 00:09:49,270 --> 00:09:51,280 行的,至少在這個示例中,沒有。 223 00:09:51,280 --> 00:09:52,070 這是公平的。 224 00:09:52,070 --> 00:09:55,090 因此,有沒有指針 在PHP中其實一般。 225 00:09:55,090 --> 00:09:58,730 有一種叫做參考, 但我們不會花太多的時間在那裡。 226 00:09:58,730 --> 00:09:59,520 還有呢? 227 00:09:59,520 --> 00:10:00,185 >> 學生:主要。 228 00:10:00,185 --> 00:10:01,060 DAVID J.馬蘭:主。 229 00:10:01,060 --> 00:10:02,768 因此,這是大問題 我在想的。 230 00:10:02,768 --> 00:10:04,660 請注意,沒有主入口點。 231 00:10:04,660 --> 00:10:06,525 您只需開始編寫代碼。 232 00:10:06,525 --> 00:10:08,400 這實際上是 將是有利 233 00:10:08,400 --> 00:10:10,560 當我們轉型 暫時以實際使用 234 00:10:10,560 --> 00:10:13,980 此相同的語言,用於基於web的 編程,為此我們 235 00:10:13,980 --> 00:10:16,580 不希望只有一個入口點。 236 00:10:16,580 --> 00:10:19,980 我們可能希望有一堆 網址,一堆不同的文件 237 00:10:19,980 --> 00:10:22,930 在用戶輸入所有服用 並產生輸出。 238 00:10:22,930 --> 00:10:27,130 >> 但這裡是非常令人沮喪 例如,我答應最後一次, 239 00:10:27,130 --> 00:10:30,130 即此文件夾中 在這裡,拼寫錯誤。 240 00:10:30,130 --> 00:10:33,680 所以在這個文件中的拼寫,這是我們 不會花太多時間,有 241 00:10:33,680 --> 00:10:37,870 本質上是porting-- P-O-R-T。 它只是給出時候,說了一句話, 242 00:10:37,870 --> 00:10:40,800 你從一種語言轉換 另一個通常手動。 243 00:10:40,800 --> 00:10:45,680 >> 這是PC的移植 從PSET 5版本拼寫的。 244 00:10:45,680 --> 00:10:48,856 我基本上是試圖轉換 通過線就行密切,我可以。 245 00:10:48,856 --> 00:10:51,730 所以,如果你喜歡這種東西, 它實際上是值得在某些時候 246 00:10:51,730 --> 00:10:54,229 兩個邊向上拉他們 一邊,看看哪些是相同的 247 00:10:54,229 --> 00:10:55,230 這有什麼不同。 248 00:10:55,230 --> 00:10:57,510 但他們相當不錯的相似。 249 00:10:57,510 --> 00:11:00,110 如果你還記得什麼 拼寫甚至長得很像, 250 00:11:00,110 --> 00:11:02,110 即使你沒有 要改變這個文件, 251 00:11:02,110 --> 00:11:04,860 這是很相似的 在結構上只有一對夫婦 252 00:11:04,860 --> 00:11:06,200 變化在這裡和那裡。 253 00:11:06,200 --> 00:11:10,140 >> 所以,這只是說,這是很 簡單的轉換拼寫 254 00:11:10,140 --> 00:11:12,000 從C到PHP。 255 00:11:12,000 --> 00:11:15,390 但是,在字典中,有 一些更加引人注目。 256 00:11:15,390 --> 00:11:19,270 讓我繼續前進,創造 我自己dictionary.php文件。 257 00:11:19,270 --> 00:11:24,010 所以在這略有不同 我們稱之為.C它的.php來代替。 258 00:11:24,010 --> 00:11:26,980 因為這是一個PHP文件,我 do--略有annoyingly--有 259 00:11:26,980 --> 00:11:30,132 啟動與該文件 一個PHP標籤那樣。 260 00:11:30,132 --> 00:11:32,340 而且我要繼續前進 並定義一些功能。 261 00:11:32,340 --> 00:11:35,770 函數調用檢查,這是 要採取的一個字像以前一樣。 262 00:11:35,770 --> 00:11:37,520 但這種說法的 將有一元錢 263 00:11:37,520 --> 00:11:39,840 簽名因為我們再次使用PHP。 264 00:11:39,840 --> 00:11:42,350 從另一個功能 dictionary.c是負載 265 00:11:42,350 --> 00:11:47,120 並用了在字典中的名稱, 所以我會得到這個函數蓄勢待發。 266 00:11:47,120 --> 00:11:50,920 >> 另一位在dictionary.c是什麼? 267 00:11:50,920 --> 00:11:54,580 大小的最好的人之一,在 至少,如果你周圍保留了一些變數。 268 00:11:54,580 --> 00:11:57,830 這樣的尺寸只是要返回一個變量。 269 00:11:57,830 --> 00:11:59,090 再有就是卸載。 270 00:11:59,090 --> 00:12:02,830 >> 所以,有這四個 在問題的功能設置5 271 00:12:02,830 --> 00:12:06,770 你需要實現與 一些數據結構或結構。 272 00:12:06,770 --> 00:12:10,170 所以,我承諾,在 PHP,我們可以聲明 273 00:12:10,170 --> 00:12:14,490 哈希表,例如 這些更容易。 274 00:12:14,490 --> 00:12:17,377 事實上,如果我想要一個哈希表, 我只是要去這樣的 275 00:12:17,377 --> 00:12:18,460 還有就是我的哈希表。 276 00:12:18,460 --> 00:12:21,555 這就是說明,令人沮喪, 我們在上次離開。 277 00:12:21,555 --> 00:12:23,930 而你知道嗎,如果我想 對於大小可變的,好了, 278 00:12:23,930 --> 00:12:25,867 這其中並非全部 從C不同, 279 00:12:25,867 --> 00:12:27,450 但我要繼續前進,做到這一點。 280 00:12:27,450 --> 00:12:28,630 並注意沒有數據類型。 281 00:12:28,630 --> 00:12:31,180 我會回去以後和 其實在這裡補充一些意見。 282 00:12:31,180 --> 00:12:32,480 但對於負載? 283 00:12:32,480 --> 00:12:35,780 >> 如果美元符號字典 是我的文件的名稱 284 00:12:35,780 --> 00:12:39,600 實際上我想加載 也就是說這個表,現在, 285 00:12:39,600 --> 00:12:42,360 其實我可以做的 事情很簡單。 286 00:12:42,360 --> 00:12:44,880 埃德蒙頓,這是minorly annoying--在PHP中, 287 00:12:44,880 --> 00:12:47,710 你必須指定內部 如果一個函數的你 288 00:12:47,710 --> 00:12:51,060 要訪問一些全球 這被定義之外的變量。 289 00:12:51,060 --> 00:12:53,530 >> 但是,這並不特別 有趣的現在。 290 00:12:53,530 --> 00:12:57,920 更有趣的是這對每個 構建我上次提到的。 291 00:12:57,920 --> 00:13:01,880 而事實證明,PHP有一個功能 所謂的文件,其目的在生活中 292 00:13:01,880 --> 00:13:05,550 是打開一個文件,並讀出在 它的所有行到一個數組 293 00:13:05,550 --> 00:13:06,840 並把他們回。 294 00:13:06,840 --> 00:13:12,170 >> 這是說我可以做這樣的字典 現在有效的,當我打電話的文件, 295 00:13:12,170 --> 00:13:15,472 這是要交給我回來 從文件中單詞的數組。 296 00:13:15,472 --> 00:13:16,430 這不是所有的好。 297 00:13:16,430 --> 00:13:20,130 它仍然將是一個行 的話,東西直線。 298 00:13:20,130 --> 00:13:23,880 但是,我可以繼續循環 在每個這些詞使用 299 00:13:23,880 --> 00:13:25,710 該語法,我們看到簡要最後一次。 300 00:13:25,710 --> 00:13:27,940 你會看到它的更多 在即將到來的PSET。 301 00:13:27,940 --> 00:13:32,070 >> 但現在我有一個循環迭代 在字典中的每個單詞。 302 00:13:32,070 --> 00:13:36,100 並在每個迭代中,記得我 調用當前單詞“字。” 303 00:13:36,100 --> 00:13:39,790 和所有它要採取 把一個單詞到詞典 304 00:13:39,790 --> 00:13:43,530 將是猜字“真”。 305 00:13:43,530 --> 00:13:44,740 這是我的插入功能。 306 00:13:44,740 --> 00:13:46,661 這是我的加載功能 我的字典。 307 00:13:46,661 --> 00:13:49,410 現在,這是一個有點作弊,因為, 你知道嗎,有實際 308 00:13:49,410 --> 00:13:52,920 反斜杠N為在單詞的結尾 我也許應該改掉, 309 00:13:52,920 --> 00:13:56,380 但是這不是一個問題,因為PHP有 一個函數調用印章字面 310 00:13:56,380 --> 00:13:58,480 關閉一個字符扒在最後。 311 00:13:58,480 --> 00:13:59,400 所以,沒有任何問題。 312 00:13:59,400 --> 00:14:02,199 我們已經先行一步,實際上 縮短的只是這個。 313 00:14:02,199 --> 00:14:05,240 現在我應該跟踪 大小,讓我們至少要做到this-- 314 00:14:05,240 --> 00:14:05,835 大小++。 315 00:14:05,835 --> 00:14:07,339 因為之前,我可以做到這一點。 316 00:14:07,339 --> 00:14:10,380 然後這很可能會 工作得很好,讓我們回到正確的。 317 00:14:10,380 --> 00:14:10,930 完成的。 318 00:14:10,930 --> 00:14:11,797 PSET 5。 319 00:14:11,797 --> 00:14:13,545 >> [笑] 320 00:14:13,545 --> 00:14:14,420 >> DAVID J.馬蘭:OK。 321 00:14:14,420 --> 00:14:16,628 我們要再做一次 與下一個PSET得。 322 00:14:16,628 --> 00:14:18,730 那麼,關於大小? 323 00:14:18,730 --> 00:14:22,080 那麼,這一次希望是關於 你所期望的最後一次, 324 00:14:22,080 --> 00:14:24,460 但我必須這樣做 這個愚蠢的全球性的事情。 325 00:14:24,460 --> 00:14:26,610 這只是從一個神器 該語言的設計。 326 00:14:26,610 --> 00:14:28,450 >> 但是,檢查是更有趣一點。 327 00:14:28,450 --> 00:14:31,420 所以,如果我通過了以美元 第一次簽的話,我 328 00:14:31,420 --> 00:14:34,060 要獲得 全球變量表。 329 00:14:34,060 --> 00:14:36,700 現在如果我想 檢查一個詞是存在的, 330 00:14:36,700 --> 00:14:44,350 我可以簡單地說,如果這是真的, 下面的設置在該表中, 331 00:14:44,350 --> 00:14:49,957 然後繼續前進,返回 真實的;否則,返回false。 332 00:14:49,957 --> 00:14:51,180 完成的。 333 00:14:51,180 --> 00:14:52,440 PSET 5的另一半。 334 00:14:52,440 --> 00:14:54,540 >> 好吧,如此反复,我 而省幾個小錢。 335 00:14:54,540 --> 00:14:56,831 憑心而論,我也許應該 花了幾秒鐘 336 00:14:56,831 --> 00:14:58,300 在此實現。 337 00:14:58,300 --> 00:15:01,860 我可能不應該嘲笑一切 小時就提上了PSET這麼多。 338 00:15:01,860 --> 00:15:04,045 所以用strtolower是一個函數。 339 00:15:04,045 --> 00:15:06,670 同樣的事情也存在主義 在C中,至少對於字符, 340 00:15:06,670 --> 00:15:08,560 但PHP的得到整個字符串版本。 341 00:15:08,560 --> 00:15:11,226 >> 這是怎麼回事,迫使一切 為小寫,其中一些你 342 00:15:11,226 --> 00:15:14,944 可能會做什麼規範化 你把你的字典。 343 00:15:14,944 --> 00:15:16,360 現在你可以用C做了。 344 00:15:16,360 --> 00:15:17,780 這有沒有關係PHP。 345 00:15:17,780 --> 00:15:20,260 >> 但是,任何時候你有 一個布爾條件, 346 00:15:20,260 --> 00:15:22,680 喜歡的東西就行 10那裡,也就是只 347 00:15:22,680 --> 00:15:27,145 將評估結果為true或 假的,如果您還有清晰 348 00:15:27,145 --> 00:15:33,620 將返回true或false,我可以 只是真正使這個性感 349 00:15:33,620 --> 00:15:38,360 而只是做這樣的事情。 350 00:15:38,360 --> 00:15:40,500 因此,有我的檢查功能。 351 00:15:40,500 --> 00:15:42,560 對了,如果布爾 返回一個真或假, 352 00:15:42,560 --> 00:15:44,630 就讓我們回到它立竿見影。 353 00:15:44,630 --> 00:15:47,340 >> 而且還有一些其他的調整 我能在這裡和那裡。 354 00:15:47,340 --> 00:15:51,380 Load--卸載,順便說一句,這樣做了。 355 00:15:51,380 --> 00:15:52,850 無關那裡。 356 00:15:52,850 --> 00:15:55,840 由於所有的存儲器中 PHP和許多其他語言 357 00:15:55,840 --> 00:15:57,570 其實是你管理。 358 00:15:57,570 --> 00:16:00,330 因此,而在C中,作為 你已經學會了痛苦, 359 00:16:00,330 --> 00:16:04,700 任何你的malloc或釋放calloc或 realloc的,你必須釋放自己。 360 00:16:04,700 --> 00:16:08,770 任何你的fopen,你要FCLOSE, 使資源得到最終釋放 361 00:16:08,770 --> 00:16:11,690 而像Valgrind的工具不 注意,不要抱怨, 362 00:16:11,690 --> 00:16:13,570 這是一件好事,在它們上面運行。 363 00:16:13,570 --> 00:16:16,190 >> 但可以肯定,必須有 有些趕,對不對? 364 00:16:16,190 --> 00:16:19,400 否則,我們種浪費 一大堆星期。 365 00:16:19,400 --> 00:16:23,270 所以有任何數量的原因 樣的,為什麼我們把這個軌跡, 366 00:16:23,270 --> 00:16:24,440 但有一個折衷。 367 00:16:24,440 --> 00:16:25,820 沒錯,這一直是主題。 368 00:16:25,820 --> 00:16:29,690 >> 那麼,什麼可能的權衡 在這裡運動,從C到PHP? 369 00:16:29,690 --> 00:16:33,250 感覺就像是贏得所有迄今除 有點醜陋的這裡或那裡。 370 00:16:33,250 --> 00:16:34,040 是啊。 371 00:16:34,040 --> 00:16:34,700 那是什麼? 372 00:16:34,700 --> 00:16:36,064 >> 學生:[聽不清]內存。 373 00:16:36,064 --> 00:16:36,980 DAVID J.馬蘭:速度。 374 00:16:36,980 --> 00:16:37,479 行。 375 00:16:37,479 --> 00:16:40,720 好吧,我的速度是相當快的。 376 00:16:40,720 --> 00:16:42,020 對不對? 377 00:16:42,020 --> 00:16:44,320 但程序的執行速度? 378 00:16:44,320 --> 00:16:45,580 好了,所以這是一個公平的問題。 379 00:16:45,580 --> 00:16:50,930 >> 因此,它會發生,我提前 選曲無論我嘗試的解決方案,一個 380 00:16:50,930 --> 00:16:53,510 我對大板 是一個嘗試的解決方案, 381 00:16:53,510 --> 00:16:55,510 我有這個目錄在這裡。 382 00:16:55,510 --> 00:16:58,510 所以,我在那一刻,我可以繼續前進, 在國王詹姆斯聖經運行此, 383 00:16:58,510 --> 00:16:59,657 按Enter鍵。 384 00:16:59,657 --> 00:17:01,990 這是正確的希望 執行結束時, 385 00:17:01,990 --> 00:17:05,109 給我時間總 0.38秒的 386 00:17:05,109 --> 00:17:07,270 1有些武斷例子。 387 00:17:07,270 --> 00:17:09,270 >> 如果我現在進入這個 第二個終端窗口 388 00:17:09,270 --> 00:17:14,569 在這裡,我第一次打開gedit中,讓 我進入今天的代碼 - 這又 389 00:17:14,569 --> 00:17:19,650 在該目錄下這裡 - 和 讓我繼續運行拼寫。 390 00:17:19,650 --> 00:17:23,470 因此,只要是明確的, 這是PHP的版本。 391 00:17:23,470 --> 00:17:25,170 我只是展示它的頂部位置。 392 00:17:25,170 --> 00:17:32,020 >> 所以,如果我做波浪CS50的拼寫 PSET 5文字,國王詹姆斯輸入。 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 它仍然比寫快 它在C,但總的時間 395 00:17:43,050 --> 00:17:47,650 是,公告,0.93,而我 基於C語言的實現為0.38。 396 00:17:47,650 --> 00:17:49,110 所以這是一個不平凡的區別。 397 00:17:49,110 --> 00:17:51,100 >> 而這僅僅是在一個文件中。 398 00:17:51,100 --> 00:17:53,480 如果你要運行兩 項目與大板 399 00:17:53,480 --> 00:17:56,510 並有一大堆的投入 經過測試,這肯定會增加。 400 00:17:56,510 --> 00:18:00,310 如果我們有更大的數據集, 這也將增加了所有的多。 401 00:18:00,310 --> 00:18:04,820 所以,是的,付出一些代價 速度的確是這樣的。 402 00:18:04,820 --> 00:18:05,470 還有什麼? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 是嗎? 405 00:18:08,860 --> 00:18:10,340 >> 學生:內存使用量。 406 00:18:10,340 --> 00:18:11,756 >> DAVID J.馬蘭:內存使用量。 407 00:18:11,756 --> 00:18:15,380 所以,我沒有給1秒 寫這篇文章時,PHP想到 408 00:18:15,380 --> 00:18:17,300 版本到多少 內存我用。 409 00:18:17,300 --> 00:18:22,080 我完全是推遲到PHP 自己和誰寫的程序。 410 00:18:22,080 --> 00:18:24,500 而這可能是OK, 但如果我真的真的 411 00:18:24,500 --> 00:18:28,420 關心擠壓盡可能多的性能 我的節目或我的網站 412 00:18:28,420 --> 00:18:31,150 或者出什麼工具 我建立的,也許 413 00:18:31,150 --> 00:18:33,310 PHP確實是不正確的語言。 414 00:18:33,310 --> 00:18:36,330 >> 而事實上,這是為什麼, 例如,很多網站servers-- 415 00:18:36,330 --> 00:18:38,980 實際的程序 成為了網絡內容 - 416 00:18:38,980 --> 00:18:41,810 是不是用PHP寫的 或Python或Ruby。 417 00:18:41,810 --> 00:18:44,630 它們被寫入,像 現在你會做PSET 6, 418 00:18:44,630 --> 00:18:48,120 在C中,這樣就可以擠 每一位的表現出來呢 419 00:18:48,120 --> 00:18:50,780 而真正行使 在什麼樣的細粒度控制 420 00:18:50,780 --> 00:18:52,980 怎麼回事下方 油煙機而不是僅僅把它 421 00:18:52,980 --> 00:18:54,890 理所當然更高一些 級數據結構。 422 00:18:54,890 --> 00:18:58,071 >> 考慮一下,畢竟, 誰PHP實現 423 00:18:58,071 --> 00:19:00,070 散列的概念 table--它實際上更多 424 00:19:00,070 --> 00:19:04,260 妥善稱為關聯array-- 他或她有任何想法什麼樣的 425 00:19:04,260 --> 00:19:07,090 輸入您將要 投入的結構? 426 00:19:07,090 --> 00:19:08,260 所以,很顯然不是,對不對? 427 00:19:08,260 --> 00:19:10,340 這是一個通用的工具 在工具箱的 428 00:19:10,340 --> 00:19:13,430 提供給任何人誰想要 要使用它,所以它肯定 429 00:19:13,430 --> 00:19:17,680 不能被最終優化 為正是你想要做什麼。 430 00:19:17,680 --> 00:19:21,180 >> 因此,貿易offs--開發時間可能 不同,性能可能會有所不同, 431 00:19:21,180 --> 00:19:23,120 複雜性和內存使用情況可能會有所不同。 432 00:19:23,120 --> 00:19:24,820 還等什麼,你會發現 越來越多的是,有 433 00:19:24,820 --> 00:19:26,570 將不同 工具的交易。 434 00:19:26,570 --> 00:19:31,160 而事實上一個超級多數 人們最後的項目在這個類中, 435 00:19:31,160 --> 00:19:34,360 不管你信不信,C是不會 是正確的語言來使用。 436 00:19:34,360 --> 00:19:37,880 >> 而事實上,一個外賣的 最終為任何一類這樣的 437 00:19:37,880 --> 00:19:40,510 是讓你思考, 好了,應該怎麼決絕 438 00:19:40,510 --> 00:19:42,710 你要下架的時候 要解決一些問題。 439 00:19:42,710 --> 00:19:46,720 而事實上,我們跨過這道坎 更因為我們看更多的語言 440 00:19:46,720 --> 00:19:47,920 甚至超越今天。 441 00:19:47,920 --> 00:19:50,530 >> 因此,讓我們過渡到現在 也許是更熟悉的環境 442 00:19:50,530 --> 00:19:52,480 使用像PHP語言。 443 00:19:52,480 --> 00:19:56,720 這有點常見的使用 在命令行中,編寫腳本 444 00:19:56,720 --> 00:19:59,050 像我一樣,但它的 多,更常見。 445 00:19:59,050 --> 00:20:02,350 和它的目的是在使用 文件的形式,典型地結束 446 00:20:02,350 --> 00:20:05,060 在.php--但是這 不是prerequisite-- 447 00:20:05,060 --> 00:20:07,990 這本身生成的網頁內容。 448 00:20:07,990 --> 00:20:11,310 >> 因此,讓我繼續前進,打開幾 例子我提前做好準備。 449 00:20:11,310 --> 00:20:15,100 而這些實際上是某種真實 在那一個的第一件事情故事 450 00:20:15,100 --> 00:20:18,200 我辦完做過自己 CS50,也許,我想, 451 00:20:18,200 --> 00:20:21,350 CS51年前是我的 室友和我幫助 452 00:20:21,350 --> 00:20:24,320 運行校內新生 體育節目,其中,在當時, 453 00:20:24,320 --> 00:20:28,610 曾新生報名參加各種 通過填寫一張紙運動, 454 00:20:28,610 --> 00:20:31,800 因為它被稱為,走 穿過院子到威格爾斯沃, 455 00:20:31,800 --> 00:20:34,030 並放到一些 監考的大門下降。 456 00:20:34,030 --> 00:20:37,210 然後,他或她會去通過 他們,然後手動實際上給我們發電子郵件 457 00:20:37,210 --> 00:20:39,140 我們註冊了一些運動。 458 00:20:39,140 --> 00:20:41,166 >> 所以很明顯,一個機會 改進。 459 00:20:41,166 --> 00:20:44,040 這些天來,你可能會轉向只 谷歌形式,但早在一天, 460 00:20:44,040 --> 00:20:46,914 我們要真正達到for--這 甚至沒有那麼長的時間ago--到達 461 00:20:46,914 --> 00:20:49,410 對於編程 語言,是不是PHP。 462 00:20:49,410 --> 00:20:51,200 當時,它是 一些所謂的Perl, 463 00:20:51,200 --> 00:20:52,890 這是自熄滅時尚的。 464 00:20:52,890 --> 00:20:54,160 但這個想法是一樣的。 465 00:20:54,160 --> 00:20:58,940 >> 我本質上坐下來試試 端口進入的Perl版本的PHP, 466 00:20:58,940 --> 00:21:03,710 但在完全免責,沒有給 任何認為美學只是還沒有。 467 00:21:03,710 --> 00:21:04,960 因此,這裡是一個網頁。 468 00:21:04,960 --> 00:21:05,670 這是一個文件。 469 00:21:05,670 --> 00:21:09,470 如果我放大,其明顯 所謂froshim0.php 470 00:21:09,470 --> 00:21:12,060 只是因為它是我們的第一次 例如,在這個系列。 471 00:21:12,060 --> 00:21:15,970 並注意它有什麼出現 是一個非常醜陋的HTML表單, 472 00:21:15,970 --> 00:21:18,680 但形式很有趣 因為它允許 473 00:21:18,680 --> 00:21:21,910 我提供用戶輸入到瀏覽器。 474 00:21:21,910 --> 00:21:27,730 >> 現在,最後的時候,我們有一個形式, 誰沒有,我們提出我們的查詢參數, 475 00:21:27,730 --> 00:21:30,450 因為它是所謂的隊列參數? 476 00:21:30,450 --> 00:21:31,330 所以,谷歌,對嗎? 477 00:21:31,330 --> 00:21:34,090 我們完全踢上的想法 幹什麼用該輸入什麼。 478 00:21:34,090 --> 00:21:36,160 >> 但今天,我們開始產生輸出。 479 00:21:36,160 --> 00:21:39,420 而行為我要去看看 這裡最初是相當瑣碎。 480 00:21:39,420 --> 00:21:42,980 大衛,我會檢查過性別 在這裡,馬修斯說,在這裡。 481 00:21:42,980 --> 00:21:43,800 我不會隊長。 482 00:21:43,800 --> 00:21:45,410 我要點擊註冊。 483 00:21:45,410 --> 00:21:50,720 並注意URL有 改為註冊,0.php, 484 00:21:50,720 --> 00:21:52,310 再有就是在這裡這個醜陋的文本。 485 00:21:52,310 --> 00:21:54,460 我給不計較 這種格式。 486 00:21:54,460 --> 00:21:59,900 >> 但有趣的是,3 值顯然來傳遞。 487 00:21:59,900 --> 00:22:02,960 這是PHP的排序 相當於printf-- 488 00:22:02,960 --> 00:22:06,330 我們將看到它真正被稱為 在剛剛打印出bit-- 489 00:22:06,330 --> 00:22:08,300 你傳遞給它的東西。 490 00:22:08,300 --> 00:22:11,414 因此,這表明,這種形式 有至少三個字段,它 491 00:22:11,414 --> 00:22:12,580 你看到我輸入他們進來。 492 00:22:12,580 --> 00:22:15,739 一個是我的名字,一個是 性別,一個是宿舍。 493 00:22:15,739 --> 00:22:18,780 和隊長甚至都沒有被發送到 服務器,因為我沒有檢查它。 494 00:22:18,780 --> 00:22:22,150 >> 因此,這顯然是說, 當你提交的東西在網絡上, 495 00:22:22,150 --> 00:22:26,830 不僅做了URL有時 change--有時沒有。 496 00:22:26,830 --> 00:22:30,330 事實上,文件名改變, 但究竟是從URL缺席 497 00:22:30,330 --> 00:22:32,861 我們確實看到最後一次與谷歌。 498 00:22:32,861 --> 00:22:33,360 是嗎? 499 00:22:33,360 --> 00:22:34,380 >> 學生:沒有查詢字符串 500 00:22:34,380 --> 00:22:35,220 >> DAVID J.馬蘭:有沒有查詢字符串。 501 00:22:35,220 --> 00:22:37,270 有沒有問號的東西。 502 00:22:37,270 --> 00:22:40,050 有沒有問號Q 等於貓,因為我們做了最後一次。 503 00:22:40,050 --> 00:22:42,170 而且也肯定沒有 問號名稱等於 504 00:22:42,170 --> 00:22:46,310 大衛宿舍或等於馬修斯, 那麼,是所有的準備? 505 00:22:46,310 --> 00:22:51,290 >> 好了,讓我回去在這裡gedit中 並開闢了第一個這些文件 506 00:22:51,290 --> 00:22:57,020 在我的虛擬主機,本地主機,公共 在此目錄中,進入froshim0。 507 00:22:57,020 --> 00:23:02,060 所以,事實證明,幾乎 所有本頁面僅僅是HTML。 508 00:23:02,060 --> 00:23:05,410 這可能是你不熟悉的, 但它很快會更因此與PSET 6 509 00:23:05,410 --> 00:23:07,370 和PSET 7和PSET 8。 510 00:23:07,370 --> 00:23:09,160 但是這僅僅是一個HTML頁面。 511 00:23:09,160 --> 00:23:12,400 >> 而有趣的東西 似乎是在這裡。 512 00:23:12,400 --> 00:23:16,290 它的action屬性的表單標籤 有寄存器0的一個值。 513 00:23:16,290 --> 00:23:18,890 這就是為什麼當我提交 此,它進入到該文件。 514 00:23:18,890 --> 00:23:20,620 但方法不同today--職位。 515 00:23:20,620 --> 00:23:23,120 因此,原來還有的至少 在網絡上使用兩種方法 516 00:23:23,120 --> 00:23:24,911 發送信息 從瀏覽器到服務器。 517 00:23:24,911 --> 00:23:25,980 獲取所說的URL。 518 00:23:25,980 --> 00:23:27,950 發表在其他地方所說的那樣。 519 00:23:27,950 --> 00:23:30,570 而什麼時候,為什麼你可能 其實想一個網站 520 00:23:30,570 --> 00:23:34,110 使用後則改為 弄,只是憑直覺? 521 00:23:34,110 --> 00:23:37,080 任何網站。 522 00:23:37,080 --> 00:23:42,010 什麼樣的數據應該只是通過 由通過郵寄,現在的推斷,而不是 523 00:23:42,010 --> 00:23:45,184 得到的,如果我們已經看到了 兩者區別在哪裡? 524 00:23:45,184 --> 00:23:46,350 學生:[聽不清]保障。 525 00:23:46,350 --> 00:23:47,790 DAVID J.馬蘭:如果你想 什麼是安全的。 526 00:23:47,790 --> 00:23:50,360 所以,你可以鍵入密碼 到網站,信用卡 527 00:23:50,360 --> 00:23:53,030 到網站會 這些種類的次優 528 00:23:53,030 --> 00:23:56,220 如果瀏覽器把那 值的URL的內部。 529 00:23:56,220 --> 00:23:57,680 為什麼呢? 530 00:23:57,680 --> 00:24:00,059 你看它,它不 似乎是這樣的一個大問題, 531 00:24:00,059 --> 00:24:03,350 但可能你很頻繁地走路 遠離電腦或使用電腦 532 00:24:03,350 --> 00:24:05,310 實驗室等人 別人甚至是室友 533 00:24:05,310 --> 00:24:08,220 可以很容易地行走,看看 私人信息。 534 00:24:08,220 --> 00:24:10,220 當您發送一封電子郵件, 通過網絡,你可能 535 00:24:10,220 --> 00:24:12,350 不希望出現這種結局的數據 在該URL為好。 536 00:24:12,350 --> 00:24:15,266 所以有任何數目的原因 我們為什麼要放在這裡。 537 00:24:15,266 --> 00:24:18,610 即使和photos--吧,我不是很 想像一下,你會如何利用圖形, 538 00:24:18,610 --> 00:24:21,480 如JPEG,並把它變成一個URL。 539 00:24:21,480 --> 00:24:22,330 你可以做到這一點。 540 00:24:22,330 --> 00:24:25,840 還有它的編碼方式,但它的 只是不能直接這樣。 541 00:24:25,840 --> 00:24:29,030 >> 所以寄存器0實際上是 很給人留下深刻印象。 542 00:24:29,030 --> 00:24:31,610 所有它說,從字面上是這樣。 543 00:24:31,610 --> 00:24:35,910 它打印出的一些內幕 HTML標籤下面。 544 00:24:35,910 --> 00:24:38,640 我有一個PHP標籤在這裡 嵌套的預標記的內部。 545 00:24:38,640 --> 00:24:42,300 “預”的意思只是預格式化的文本, 單倍行距,就像一台打字機。 546 00:24:42,300 --> 00:24:44,836 >> Printr是打印遞歸函數。 547 00:24:44,836 --> 00:24:46,710 再有就是這個 這裡有趣的事情。 548 00:24:46,710 --> 00:24:48,835 我們會回到這個 因為這裡的人, 549 00:24:48,835 --> 00:24:51,140 但美元符號下劃線 交的似乎是 550 00:24:51,140 --> 00:24:56,110 在PHP中的變量在任何 送你從瀏覽器到服務器 551 00:24:56,110 --> 00:24:58,040 被存儲為您服務。 552 00:24:58,040 --> 00:25:00,930 我們將看到如何得到的 不久該信息。 553 00:25:00,930 --> 00:25:04,000 >> 但首先,讓我們回去 一個稍微不同的實施例。 554 00:25:04,000 --> 00:25:09,050 進入register--或 相反,froshims1.php, 555 00:25:09,050 --> 00:25:10,470 這看起來有點不同。 556 00:25:10,470 --> 00:25:12,670 我花了一點 努力與格式, 557 00:25:12,670 --> 00:25:14,370 即使它仍然是相當難看。 558 00:25:14,370 --> 00:25:16,990 但我要繼續前進 而輸入“萬人迷”了。 559 00:25:16,990 --> 00:25:17,850 男性。 560 00:25:17,850 --> 00:25:19,360 我們將檢查“隊長”這個時候。 561 00:25:19,360 --> 00:25:20,660 我們會做馬修斯。 562 00:25:20,660 --> 00:25:22,430 並註冊。 563 00:25:22,430 --> 00:25:24,110 >> 而這個時候它說,嗯,不是真的。 564 00:25:24,110 --> 00:25:26,180 好吧,那麼什麼是寄存器1? 565 00:25:26,180 --> 00:25:30,509 讓我進入開放註冊1還有 - HM。 566 00:25:30,509 --> 00:25:32,300 好了,所以這是 有趣的,這 567 00:25:32,300 --> 00:25:34,880 是一個敲門磚,現在走向 更有趣的節目。 568 00:25:34,880 --> 00:25:38,970 >> 請注意上面的這個文件有一個 PHP標籤以及一些意見。 569 00:25:38,970 --> 00:25:42,590 而這些,就目前而言,分心 讓我們剛剛擺脫這些意見 570 00:25:42,590 --> 00:25:47,070 就像他們在C和我要求 與此塊的代碼註釋 571 00:25:47,070 --> 00:25:49,280 這個代碼 確認提交。 572 00:25:49,280 --> 00:25:51,690 >> 嗯,事實證明, 像美元符號變量 573 00:25:51,690 --> 00:25:53,739 下劃線是後 所謂的超全局變量。 574 00:25:53,739 --> 00:25:55,530 他們是這樣的 特殊的全局變量 575 00:25:55,530 --> 00:25:58,840 這只是全現 可在程序中。 576 00:25:58,840 --> 00:26:03,870 您可以使用方括號 索引到他們不要使用數字 577 00:26:03,870 --> 00:26:07,460 像0,1,2,3,但實際的話。 578 00:26:07,460 --> 00:26:12,100 >> 所以,你能想到的美元符號 強調擔任排序哈希表 579 00:26:12,100 --> 00:26:15,920 你可以通過一鍵進入,查找 單詞在中間的方括號中, 580 00:26:15,920 --> 00:26:19,370 並且它會退給你 該用戶實際提供的值。 581 00:26:19,370 --> 00:26:21,210 PHP有一個功能 所謂空,僅僅 582 00:26:21,210 --> 00:26:23,720 說是或否,這 變量為空或不是。 583 00:26:23,720 --> 00:26:27,250 我們有這些雙線, 這只是意味著,或者像C. 584 00:26:27,250 --> 00:26:31,740 >> 這樣在實際上,這4行僅 他說,如果用戶沒有給一個名字 585 00:26:31,740 --> 00:26:36,540 或者沒有給出一個性別或沒 給一個宿舍,繼續和他重定向 586 00:26:36,540 --> 00:26:38,184 或者通過該行這裡她。 587 00:26:38,184 --> 00:26:40,600 所以這是一個有點神秘, 但是這只是字面上的意思 588 00:26:40,600 --> 00:26:43,330 回到這個位置, 所以平底船用戶 589 00:26:43,330 --> 00:26:45,420 回到無論他或她是從哪裡來的。 590 00:26:45,420 --> 00:26:47,880 但它是一個有點不雅 在我硬編碼了。 591 00:26:47,880 --> 00:26:52,150 >> 但是,如果這種情況的話 不計算為真? 592 00:26:52,150 --> 00:26:55,790 如果用戶沒有給我他 或她的名字和宿舍,性別? 593 00:26:55,790 --> 00:26:58,540 如果條件不 要評估為true, 594 00:26:58,540 --> 00:27:00,650 所以我不打第7行中退出。 595 00:27:00,650 --> 00:27:01,680 所以會發生什麼? 596 00:27:01,680 --> 00:27:03,880 這是什麼 有趣的關於PHP。 597 00:27:03,880 --> 00:27:07,470 >> 你可以將流入和流出 PHP模式,可以這麼說。 598 00:27:07,470 --> 00:27:10,985 如果你想一些代碼來執行, 您可以打開和關閉PHP標籤 599 00:27:10,985 --> 00:27:13,010 並把代碼中有像我在這裡所做的。 600 00:27:13,010 --> 00:27:16,810 一旦你關閉 PHP的標籤,服務器 601 00:27:16,810 --> 00:27:19,407 只是要吐 無論你放在那裡。 602 00:27:19,407 --> 00:27:21,740 事實上,這是一部分 PHP的原創設計, 603 00:27:21,740 --> 00:27:25,280 為更好地惡化,這是 代碼和標記攙和 604 00:27:25,280 --> 00:27:25,920 語言。 605 00:27:25,920 --> 00:27:28,670 我們將看到,這很 趕緊轉予成一團糟。 606 00:27:28,670 --> 00:27:31,280 所以我們會做的更好比 這最終只是 607 00:27:31,280 --> 00:27:35,620 注意難易程度,我 居然能夠執行一些邏輯。 608 00:27:35,620 --> 00:27:37,440 >> 但還是有點給人留下深刻印象。 609 00:27:37,440 --> 00:27:41,210 讓我們打開了版本 2即時的新生,哪 610 00:27:41,210 --> 00:27:44,270 顯然提交給register2.php。 611 00:27:44,270 --> 00:27:47,600 因此,這個文件實際上會 看起來幾乎是一樣的。 612 00:27:47,600 --> 00:27:50,780 我會去的新生即時消息2。 613 00:27:50,780 --> 00:27:53,050 但是,在即時的新生2, 讓我們看看會發生什麼。 614 00:27:53,050 --> 00:27:58,110 >> 大衛,點擊單選按鈕, 這就是所謂的;馬修斯,沒有隊長。 615 00:27:58,110 --> 00:27:59,230 註冊。 616 00:27:59,230 --> 00:28:00,130 您已註冊。 617 00:28:00,130 --> 00:28:00,700 並不是的。 618 00:28:00,700 --> 00:28:02,574 哦,等一下,我們只是做 這個例子,不是嗎? 619 00:28:02,574 --> 00:28:04,520 好吧,袖手旁觀。 620 00:28:04,520 --> 00:28:06,602 我們會做三個。 621 00:28:06,602 --> 00:28:08,560 顯然,一些是關於 發生與Gmail。 622 00:28:08,560 --> 00:28:09,600 我們會到達那裡。 623 00:28:09,600 --> 00:28:11,900 >> 因此,即時的新生3看起來是這樣的。 624 00:28:11,900 --> 00:28:13,050 沒有什麼不同。 625 00:28:13,050 --> 00:28:19,850 但是當我做大衛,男,馬修斯和 註冊,這第三個也是最後版本 626 00:28:19,850 --> 00:28:22,230 索賠,很簡單,你 註冊真的。 627 00:28:22,230 --> 00:28:23,560 這就是那種無關緊要的。 628 00:28:23,560 --> 00:28:25,600 但我要求這個 第三個也是最後版本 629 00:28:25,600 --> 00:28:30,610 現在我已經重新正是我 室友和我建立了即時的新生 630 00:28:30,610 --> 00:28:31,731 程序年前。 631 00:28:31,731 --> 00:28:32,480 它很簡單。 632 00:28:32,480 --> 00:28:34,330 沒有數據庫, 沒有Excel電子表格。 633 00:28:34,330 --> 00:28:36,450 但更重要的是, 沒有更多的紙 634 00:28:36,450 --> 00:28:42,520 因為我們這個項目做了 是真正的電子郵件監考官,誰 635 00:28:42,520 --> 00:28:44,530 此前接受 這些東西通過表格。 636 00:28:44,530 --> 00:28:48,890 >> 顯然我們在編寫此 這樣一種方式,當某人寄存器, 637 00:28:48,890 --> 00:28:52,470 約翰·哈佛的帳戶的電子郵件 在這種情況下proctor--還是他自己, 638 00:28:52,470 --> 00:28:55,960 約翰Harvard--具有以下 text--“此人剛註冊的。” 639 00:28:55,960 --> 00:29:00,560 名字是大衛,隊長是空白的; 性別,男;和宿舍,馬修斯。 640 00:29:00,560 --> 00:29:01,560 >> 到底發生了什麼呢? 641 00:29:01,560 --> 00:29:05,360 好了,在這裡的問題文件 顯然register3.php。 642 00:29:05,360 --> 00:29:09,080 如果我開這一點,你會看到 像這樣的代碼,兩者的力量 643 00:29:09,080 --> 00:29:12,380 而且,坦率地說,不安全 像電子郵件系統。 644 00:29:12,380 --> 00:29:16,290 我剛才有效地假裝 約翰·哈佛以下面的方式。 645 00:29:16,290 --> 00:29:20,920 >> 我開的PHP標籤往上頂,這 只是說這裡來了一些PHP代碼。 646 00:29:20,920 --> 00:29:23,155 到這裡,原來有 在PHP庫。 647 00:29:23,155 --> 00:29:26,410 你只是不需要 包含頭文件一樣多。 648 00:29:26,410 --> 00:29:28,900 你得到更多的 廚房水槽,可以這麼說。 649 00:29:28,900 --> 00:29:31,820 >> 但是這一次在第4行,我做的 想所謂的特殊庫 650 00:29:31,820 --> 00:29:36,087 PHP的郵件,這是你的東西 可以免費在許多系統上安裝。 651 00:29:36,087 --> 00:29:37,920 到這裡,我驗證 在剛剛提交 652 00:29:37,920 --> 00:29:40,540 通過檢查沒有用戶給 我的名字,性別,和宿舍。 653 00:29:40,540 --> 00:29:44,130 如果是的話,請繼續 實例化一個郵件。 654 00:29:44,130 --> 00:29:47,020 >> 你可以把這個作為一個 線是剛剛分配的代碼。 655 00:29:47,020 --> 00:29:48,950 這就像malloc的,但 這是一個有點性感 656 00:29:48,950 --> 00:29:51,790 在你提到不只是 malloc和一些通用的編號。 657 00:29:51,790 --> 00:29:55,030 你說給我其中的一個, 給我這一個新的。 658 00:29:55,030 --> 00:29:57,950 >> 如果您在已設定 Java或C ++或其他語言, 659 00:29:57,950 --> 00:29:59,130 你可能已經看到了這一點。 660 00:29:59,130 --> 00:30:01,840 但是它的短,如果 陌生,這條線 661 00:30:01,840 --> 00:30:05,410 投入到美元符號的郵件 特殊的結構稱為 662 00:30:05,410 --> 00:30:08,731 已內置對象 電子郵件功能。 663 00:30:08,731 --> 00:30:10,355 而事實上,通知和類似的語法。 664 00:30:10,355 --> 00:30:11,900 >> 這不是一個指針,本身。 665 00:30:11,900 --> 00:30:13,990 PHP只是使用相同的語法。 666 00:30:13,990 --> 00:30:17,660 該行稱使用 SMTP--簡單郵件傳輸 667 00:30:17,660 --> 00:30:20,900 協議,它僅僅是 協議,用於發送郵件。 668 00:30:20,900 --> 00:30:24,240 這是指定用途 哈佛大學的SMTP服務器, 669 00:30:24,240 --> 00:30:25,830 是在這裡的某處校園。 670 00:30:25,830 --> 00:30:28,480 >> 這是說什麼TCP 端口號,聊得來, 671 00:30:28,480 --> 00:30:31,650 我只是想通了這一點通過 谷歌搜索或詢問服務台。 672 00:30:31,650 --> 00:30:34,640 然後,因為哈佛的使用了一些 在郵件server--系統安全 673 00:30:34,640 --> 00:30:37,060 至少要加密 你和它之間的流量, 674 00:30:37,060 --> 00:30:41,380 雖然任何人都可以發送給它 - 我要打開TLS協議 675 00:30:41,380 --> 00:30:42,710 為保持這種安全的。 676 00:30:42,710 --> 00:30:44,730 >> 但是,這是哪裡的東西 變得有點嚇人。 677 00:30:44,730 --> 00:30:47,970 我可以隨意 說我jharvard, 678 00:30:47,970 --> 00:30:51,930 而且我可以隨意 在這裡我發電子郵件。 679 00:30:51,930 --> 00:30:55,650 然後,我可以指定一個 受這條線在這裡。 680 00:30:55,650 --> 00:30:58,460 >> 而這只是長相醜陋,但它的 只是一堆級聯。 681 00:30:58,460 --> 00:31:04,480 原來,PHP有一個超好用的象徵, 像一些語言,點操作符, 682 00:31:04,480 --> 00:31:07,340 這只是字面上符連接 字符串的字符串後的字符串後, 683 00:31:07,340 --> 00:31:09,810 你不必對malloc或圖 出字符串的總長度。 684 00:31:09,810 --> 00:31:10,820 你就去做。 685 00:31:10,820 --> 00:31:15,220 事實上,因為我串聯 在所有這些事情與這些點, 686 00:31:15,220 --> 00:31:18,330 這就是為什麼我的電子郵件 發送看了,因為它沒有。 687 00:31:18,330 --> 00:31:20,610 >> 然後最後在這裡,我要送的郵件。 688 00:31:20,610 --> 00:31:22,580 因此,如果這是假的, 我只是會死, 689 00:31:22,580 --> 00:31:25,680 這是一個函數,只是打印 到屏幕上的一些錯誤信息。 690 00:31:25,680 --> 00:31:29,170 但是,實際上, 調用send功能。 691 00:31:29,170 --> 00:31:31,780 否則,如果所有的失敗, 它重定向我回到這裡。 692 00:31:31,780 --> 00:31:34,050 >> 還有,為什麼我看到 我註冊的是嗎? 693 00:31:34,050 --> 00:31:36,110 嗯,這事就在這裡。 694 00:31:36,110 --> 00:31:38,170 所以我提出來的 有兩個原因。 695 00:31:38,170 --> 00:31:41,542 >> 一,這是究竟如何,如果你建 一些網站的最終項目 696 00:31:41,542 --> 00:31:44,000 或用於現實世界中,這是 你如何發送電子郵件提醒 697 00:31:44,000 --> 00:31:45,924 給你的客戶或你的用戶。 698 00:31:45,924 --> 00:31:47,590 這是你如何發送密碼的提醒。 699 00:31:47,590 --> 00:31:50,760 這是你如何發送人的郵件 他們有一個新的Facebook 700 00:31:50,760 --> 00:31:52,990 消息尚未了結或類似的東西。 701 00:31:52,990 --> 00:31:55,010 >> 但它也說話 的事實,這可能 702 00:31:55,010 --> 00:31:58,160 一直非常好,從 達文或其他任何人。 703 00:31:58,160 --> 00:32:00,567 我說這樣的 面帶微笑,因為我 704 00:32:00,567 --> 00:32:03,400 搞不清是怎麼回事,通過 幾個你的心在這一點上。 705 00:32:03,400 --> 00:32:11,910 但是,這是其中的一個做的,因為我 說,還不如我做那種事情, 706 00:32:11,910 --> 00:32:14,480 因為它是微不足道的 建立這樣的電子郵件。 707 00:32:14,480 --> 00:32:16,480 但正如你可能已經看到 或閱讀深紅, 708 00:32:16,480 --> 00:32:18,271 最近它也是相當 平凡的人 709 00:32:18,271 --> 00:32:20,050 跟踪他們回到一些原點。 710 00:32:20,050 --> 00:32:23,790 並問我一些時間,也許 在CS50的午餐,我第一次 711 00:32:23,790 --> 00:32:27,080 相識非常密切 幾乎到了編輯委員會多年 712 00:32:27,080 --> 00:32:30,890 以前,當我發現 互聯網如何工作。 713 00:32:30,890 --> 00:32:36,940 因此,在任何case--略 之後,編輯終於上了。 714 00:32:36,940 --> 00:32:42,300 >> 所以,在任何情況下,存在一個 一大堆超級全局變量, 715 00:32:42,300 --> 00:32:45,960 因為它們在這裡被稱為,其中一個 我們saw--美元符號下劃線後。 716 00:32:45,960 --> 00:32:49,530 有一個名為get對應, 這是哪裡的東西從一個URL 717 00:32:49,530 --> 00:32:50,690 結束了下去。 718 00:32:50,690 --> 00:32:54,051 而且還有一大堆其他的, too--會話和服務器的cookie。 719 00:32:54,051 --> 00:32:55,800 我們會回來 cookie的一些其它時間 720 00:32:55,800 --> 00:33:01,340 但會是一種很酷的 因為右now--直到now-- 721 00:33:01,340 --> 00:33:06,350 一切,我們已經與Web瀏覽器進行 是那種無狀態的,可以這麼說。 722 00:33:06,350 --> 00:33:10,060 我可以按一下周圍,接入 在服務器上,文件的東西 723 00:33:10,060 --> 00:33:13,500 發生在屏幕上,但 那麼連接關閉。 724 00:33:13,500 --> 00:33:17,450 在Internet Explorer或 Firefox的圖標停止旋轉 725 00:33:17,450 --> 00:33:20,340 你剛才看到了什麼 該網頁包含的內容。 726 00:33:20,340 --> 00:33:23,530 >> 因此,HTTP是無狀態的那 一旦建立連接, 727 00:33:23,530 --> 00:33:25,050 得到了一些數據,僅此而已。 728 00:33:25,050 --> 00:33:29,940 沒有更多的連接,不像Skype公司, 不同的Facetime,谷歌聊天軟件不同,它 729 00:33:29,940 --> 00:33:32,180 保持恆定的 連接到服務器。 730 00:33:32,180 --> 00:33:34,650 網頁是從根本上 斷開,雖然我們 731 00:33:34,650 --> 00:33:36,630 不久怎麼看 我們可以模擬的東西 732 00:33:36,630 --> 00:33:39,300 像Facebook聊天和谷歌聊天軟件, 它保持illusion-- 733 00:33:39,300 --> 00:33:41,680 或實際上做維護 使用持續連接 734 00:33:41,680 --> 00:33:43,270 更多的現代技術。 735 00:33:43,270 --> 00:33:49,000 >> 但是,如果我去,說,counter.php, 這是另一種簡單的例子, 736 00:33:49,000 --> 00:33:52,700 正如我們所看到的,目前認為 我參觀了現場零時。 737 00:33:52,700 --> 00:33:56,790 但如果我只是重新載入頁面, 它在某種程度上知道我在這裡之前。 738 00:33:56,790 --> 00:33:58,840 如果我再次重裝,它 知道我在這裡之前。 739 00:33:58,840 --> 00:34:01,100 一次又一次,再而三。 740 00:34:01,100 --> 00:34:03,610 >> 因此,有一些加plussing 怎麼回事,但通知 741 00:34:03,610 --> 00:34:07,090 這個小東西不斷旋轉,使 簡要地往上頂,然後斷開連接, 742 00:34:07,090 --> 00:34:11,179 所以它不是像我有一個恆定的 連接到我的設備。 743 00:34:11,179 --> 00:34:16,929 好吧,如果我進入counter.php, 注意到它是多麼的簡單。 744 00:34:16,929 --> 00:34:19,080 我第一次把這種特殊的 函數,我們很快就會 745 00:34:19,080 --> 00:34:21,513 開始服用理所當然 所謂的會話開始。 746 00:34:21,513 --> 00:34:22,179 啟動一個會話。 747 00:34:22,179 --> 00:34:25,095 >> 和會話今後就是 將是一個水桶,像一個購物 748 00:34:25,095 --> 00:34:28,120 購物車中,你可以把值 和那種信任,作為一個程序員 749 00:34:28,120 --> 00:34:31,590 他們打算到這裡來的時候 該用戶自帶back--第二 750 00:34:31,590 --> 00:34:35,670 後來,一個小時後,甚至一年後, 只要他或她不明朗 751 00:34:35,670 --> 00:34:37,602 他們的餅乾,因為我們最終會看到的。 752 00:34:37,602 --> 00:34:39,310 現在我只是有 如果一個條件在這裡。 753 00:34:39,310 --> 00:34:44,679 因此,如果下面的項, 所謂的專櫃,設置裡面 754 00:34:44,679 --> 00:34:49,210 這個超級global--這個哈希 表,如果你will--所謂會話, 755 00:34:49,210 --> 00:34:53,350 然後繼續前進,抓住 從session--思考價值 756 00:34:53,350 --> 00:34:55,250 此作為購物 車 - 並將其存儲 757 00:34:55,250 --> 00:34:57,680 在所謂的櫃檯臨時變量。 758 00:34:57,680 --> 00:35:02,240 >> 否則,如果該值是計數器 沒有設置所謂的購物車, 759 00:35:02,240 --> 00:35:04,430 只需將它初始化為0。 760 00:35:04,430 --> 00:35:09,830 最後,到這裡,去放回 放入購物車或會話 761 00:35:09,830 --> 00:35:13,000 計數器1的值。 762 00:35:13,000 --> 00:35:16,730 所以,事實證明,這 特種集裝箱這裡 - 763 00:35:16,730 --> 00:35:20,355 這又是這些相關聯的一個 數組,數組,你可以索引 764 00:35:20,355 --> 00:35:25,010 進言,而不是numbers-- 後仍存在用戶消失。 765 00:35:25,010 --> 00:35:26,510 再次,我會回去的頁面了。 766 00:35:26,510 --> 00:35:28,400 它是一分鐘左右。 767 00:35:28,400 --> 00:35:31,300 但記得,我已經 來過19次。 768 00:35:31,300 --> 00:35:32,740 這是我20日訪華。 769 00:35:32,740 --> 00:35:36,560 >> 所以這將是關鍵 實施該記住任何網站 770 00:35:36,560 --> 00:35:40,640 你已經登錄,你把 您的購物車字面的東西 771 00:35:40,640 --> 00:35:43,902 買,或者你有一些 消息數待定。 772 00:35:43,902 --> 00:35:45,610 任何時候你想要 記住的信息, 773 00:35:45,610 --> 00:35:48,130 我們會看到,PHP,像 其他幾種語言, 774 00:35:48,130 --> 00:35:53,640 為我們提供了這種幻覺狀態 儘管,您將在PSET 6看, 775 00:35:53,640 --> 00:35:57,642 當你正在做的HTTP請求 從客戶端到服務器,僅此而已。 776 00:35:57,642 --> 00:35:59,850 一旦你回來了 對此,沒有什麼更多 777 00:35:59,850 --> 00:36:01,790 默認情況下,來從服務器返回。 778 00:36:01,790 --> 00:36:03,820 但是,我們將看到如何解決的。 779 00:36:03,820 --> 00:36:07,430 >> 現在好了,讓我們嘗試 打掃一下一點點​​。 780 00:36:07,430 --> 00:36:09,470 我們已經看到了一些 不同的例子在那裡。 781 00:36:09,470 --> 00:36:12,250 哦,順便說一句,對於 那些熟悉或不熟悉的, 782 00:36:12,250 --> 00:36:14,230 的原因,該 即時的新生例如去 783 00:36:14,230 --> 00:36:18,060 從尋找真 醜slightly--好, 784 00:36:18,060 --> 00:36:23,160 還是ugly--小幅 不太難看,雖然仍然難看 785 00:36:23,160 --> 00:36:25,230 因為如果我們看 在這裡的源代碼, 786 00:36:25,230 --> 00:36:28,240 事實證明,我有這樣的 在該文件的頂部。 787 00:36:28,240 --> 00:36:32,570 >> 事實證明,自舉是其中之一 免費的圖書館那裡 788 00:36:32,570 --> 00:36:37,140 存在不是編程語言 永遠,但對於CSS或JavaScript的 789 00:36:37,140 --> 00:36:39,190 或HTML或者任何數量的語言。 790 00:36:39,190 --> 00:36:42,160 >> 而這些人這裡 - 本來就出來了 791 00:36:42,160 --> 00:36:44,730 Twitter--的只是有 一大堆的風格。 792 00:36:44,730 --> 00:36:47,360 這是一個巨大的文件 在這裡,有人寫道: 793 00:36:47,360 --> 00:36:51,020 或某人的寫道,隨著時間的推移 指定顏色和格式 794 00:36:51,020 --> 00:36:53,740 和諸如此類的東西,這樣我可以 那種借自己的語法 795 00:36:53,740 --> 00:36:56,157 而不是要搞清楚 如何佈置自己的狀態。 796 00:36:56,157 --> 00:36:57,990 這也被縮小的 使得計算機能夠 797 00:36:57,990 --> 00:37:00,560 理解但不 不一定是人。 798 00:37:00,560 --> 00:37:03,050 所以,這就是為什麼在 風格化有改變。 799 00:37:03,050 --> 00:37:05,450 >> 但是,讓我們現在做的更好 在設計方面, 800 00:37:05,450 --> 00:37:07,490 因為如果我們停留下來 這條路太長, 801 00:37:07,490 --> 00:37:11,290 我們的代碼的要 會導致混亂和混亂。 802 00:37:11,290 --> 00:37:13,040 因此,讓我們專注於這些例子在這裡。 803 00:37:13,040 --> 00:37:15,090 最後今天。 804 00:37:15,090 --> 00:37:18,720 >> 因此,這裡是一個超級簡單 對CS50的網站1.0版本。 805 00:37:18,720 --> 00:37:21,250 它只有鏈接 講座和課程大綱, 806 00:37:21,250 --> 00:37:25,490 和它的使用無序列表 tag--我們上一次使用的UL標記。 807 00:37:25,490 --> 00:37:28,800 如果事實上,如果我 打開查看頁面源代碼, 808 00:37:28,800 --> 00:37:31,710 你會看到,這是 真的,真的很簡單的HTML。 809 00:37:31,710 --> 00:37:35,460 而事實上,儘管這是 引擎蓋下的一個PHP文件, 810 00:37:35,460 --> 00:37:38,620 它仍然只是隨地吐痰 只出HTML現在。 811 00:37:38,620 --> 00:37:41,312 >> 所以,如果我點擊講座, 我們看到這樣的情況。 812 00:37:41,312 --> 00:37:43,020 如果我點擊週 零,我們看到這一點。 813 00:37:43,020 --> 00:37:44,920 如果我點擊 週三,我們看到這一點。 814 00:37:44,920 --> 00:37:47,900 這顯然是PDF 從當天的幻燈片。 815 00:37:47,900 --> 00:37:52,020 所有我做的是一個帶有鏈接 錨點標記這個網址在這裡。 816 00:37:52,020 --> 00:37:55,400 >> 所以,這只是說這是一個相當 簡單的版本CS50的網站。 817 00:37:55,400 --> 00:37:56,790 讓我們來看看它是如何實現的。 818 00:37:56,790 --> 00:38:01,240 如果我進入mvc0目錄, 我們會看到幾個文件。 819 00:38:01,240 --> 00:38:03,250 一個是自述的,所以如果 一些這是太快了, 820 00:38:03,250 --> 00:38:05,166 你可以閒逛 更悠閒以後。 821 00:38:05,166 --> 00:38:07,930 並注意在這裡是一個index.php文件。 822 00:38:07,930 --> 00:38:09,960 事實證明,如果 你自己,人, 823 00:38:09,960 --> 00:38:14,460 沒有在指定的最後名稱 一個URL,通常是Web服務器 824 00:38:14,460 --> 00:38:17,010 推斷一些默認名稱為您服務。 825 00:38:17,010 --> 00:38:20,060 一個指數點事 一般是默認的。 826 00:38:20,060 --> 00:38:23,010 >> 所以這就是為什麼剛才 當我在這裡訪問此網址, 827 00:38:23,010 --> 00:38:26,750 沒有文件名,沒有文件 延長,無期的URL。 828 00:38:26,750 --> 00:38:29,710 它只是知道某種神奇 尋找index.php文件。 829 00:38:29,710 --> 00:38:30,870 這只是一個約定。 830 00:38:30,870 --> 00:38:32,360 可以被稱為什麼。 831 00:38:32,360 --> 00:38:35,110 >> 所以,如果我現在進入 index.php文件,你會看到 832 00:38:35,110 --> 00:38:37,100 即,indeed--我們 擺脫的評論 833 00:38:37,100 --> 00:38:39,500 因為這裡真的 沒有什麼有趣的它 - 834 00:38:39,500 --> 00:38:41,579 這僅僅是硬編碼的HTML。 835 00:38:41,579 --> 00:38:43,370 所以這是一致的, 不過,我的要求 836 00:38:43,370 --> 00:38:45,230 你可以匯成HTML和PHP。 837 00:38:45,230 --> 00:38:48,060 有沒有實際的 在這裡編程邏輯。 838 00:38:48,060 --> 00:38:51,030 >> 和其他文件相當 多一樣無趣。 839 00:38:51,030 --> 00:38:56,240 這只是硬編碼一個星期 這裡每週一米,每週一W, 840 00:38:56,240 --> 00:38:57,510 週一和週三。 841 00:38:57,510 --> 00:39:01,890 然後如果我打開了零一周, 發現這幾乎是相同的。 842 00:39:01,890 --> 00:39:03,320 >> 那是怎樣的一個關鍵外賣的。 843 00:39:03,320 --> 00:39:06,180 請注意,是多麼多餘,這是。 844 00:39:06,180 --> 00:39:10,710 這些文件幾乎沒有改變,但我 拉著這些複製/粘貼的工作之一 845 00:39:10,710 --> 00:39:13,420 在那裡我花了一file--推測 在本週zero--複製它 846 00:39:13,420 --> 00:39:16,320 在每週一到來的時候, 並調整了幾個值。 847 00:39:16,320 --> 00:39:18,590 我們也許應該能夠 做的比這更好的。 848 00:39:18,590 --> 00:39:21,800 >> 所以,讓我們恢復到MVC 並進入一個版本。 849 00:39:21,800 --> 00:39:24,810 並請注意我有一個 幾個文件,原因是什麼 850 00:39:24,810 --> 00:39:29,870 是共同所有這些文件只是一個 此刻ago--如果我回去版本0, 851 00:39:29,870 --> 00:39:32,600 讓我們回到指數, 而剛剛postulate-- 852 00:39:32,600 --> 00:39:36,090 一旦我擺脫comments--的 這是什麼頁面的一部分 853 00:39:36,090 --> 00:39:40,072 大概是在每一個我的文件? 854 00:39:40,072 --> 00:39:40,780 只需要調用它。 855 00:39:40,780 --> 00:39:44,620 這行是重複的 可能在所有這些頁面? 856 00:39:44,620 --> 00:39:45,120 是嗎? 857 00:39:45,120 --> 00:39:46,110 >> 學生:[聽不清]。 858 00:39:46,110 --> 00:39:47,660 >> DAVID J.馬蘭:1〜9。 859 00:39:47,660 --> 00:39:48,720 是的,絕對。 860 00:39:48,720 --> 00:39:52,080 1到9,可能除了8 的變化,因為CS50一點點 861 00:39:52,080 --> 00:39:54,650 成為講學或 零一周的東西。 862 00:39:54,650 --> 00:39:55,970 但是,幾乎是相同的。 863 00:39:55,970 --> 00:39:58,657 因此,所有這些東西僅僅是 種複製和粘貼。 864 00:39:58,657 --> 00:40:00,490 還有一對夫婦 其他行,我能想到 865 00:40:00,490 --> 00:40:05,000 那可能是相同的 在所有的文件。 866 00:40:05,000 --> 00:40:06,315 >> 學生:12和13。 867 00:40:06,315 --> 00:40:07,190 DAVID J.馬蘭:是啊。 868 00:40:07,190 --> 00:40:11,220 當然,12,13,14和可能, 只是因為有趣的東西 869 00:40:11,220 --> 00:40:15,460 是發生在11行 和10,所以它似乎。 870 00:40:15,460 --> 00:40:18,350 因此,讓我們來看看第1版, 它試圖改善這一點。 871 00:40:18,350 --> 00:40:24,020 在這種MVC example-- 1版本中,我們將 解釋什麼是MVC方式的moment-- 872 00:40:24,020 --> 00:40:27,420 如果我進入指數種,它 現在看起來有點混亂。 873 00:40:27,420 --> 00:40:28,880 這不是那麼簡單之前。 874 00:40:28,880 --> 00:40:30,906 >> 但是,一旦你開始 仔細閱讀,這是 875 00:40:30,906 --> 00:40:32,530 相當簡單的它在做什麼。 876 00:40:32,530 --> 00:40:34,397 顯然,1號線和 8號線已經取代 877 00:40:34,397 --> 00:40:37,230 大家只是identified--的東西 雖然剛剛好措施, 878 00:40:37,230 --> 00:40:41,900 我只是在某些情況下離開的UL有 天沒有的事情列出來。 879 00:40:41,900 --> 00:40:47,860 所以需要有點像英鎊 包括C.它複製並粘貼 880 00:40:47,860 --> 00:40:50,470 內容有效 這裡到這個文件。 881 00:40:50,470 --> 00:40:53,650 >> 所以在header.php中,你 可以推斷,從它的名字, 882 00:40:53,650 --> 00:40:55,330 將是該頁面的標題。 883 00:40:55,330 --> 00:40:57,110 它種在這裡的孤兒。 884 00:40:57,110 --> 00:41:01,820 它僅具有頂部,但 有下面沒有更多的內容。 885 00:41:01,820 --> 00:41:05,070 >> 如果我看一下頁腳同時, 這是另一個文件mentioned-- 886 00:41:05,070 --> 00:41:08,830 這其中甚至不感興趣, 但同樣,這是常見的一切。 887 00:41:08,830 --> 00:41:10,250 因此,這是頁腳。 888 00:41:10,250 --> 00:41:11,300 這是首部。 889 00:41:11,300 --> 00:41:13,950 這是這是文件 不斷變化的,所以為什麼不 890 00:41:13,950 --> 00:41:18,140 試圖分解出的共性 在這裡這兩條線? 891 00:41:18,140 --> 00:41:20,090 >> 但是,我們可以清除此 一個遠一點。 892 00:41:20,090 --> 00:41:23,260 我要繼續前進, 開了兩個版本的地方 893 00:41:23,260 --> 00:41:27,106 我們會看到有 一個新的文件,helpers.php。 894 00:41:27,106 --> 00:41:28,610 我們會看到,就是在某一時刻的內容。 895 00:41:28,610 --> 00:41:30,930 讓我們去索引,為 入口點和以前一樣。 896 00:41:30,930 --> 00:41:35,230 >> 現在發現我需要 helpers.php,不是頁眉或頁腳。 897 00:41:35,230 --> 00:41:41,720 但助手有點像 helpers.c和helpers.h從PSET 2 898 00:41:41,720 --> 00:41:46,150 或PSET 3不久前,當你真正 沒有搜索並找到該PSET, 899 00:41:46,150 --> 00:41:50,950 你把所有的代碼進行排序 和搜索在一個單獨的文件中。 900 00:41:50,950 --> 00:41:52,510 這就是這裡發生了。 901 00:41:52,510 --> 00:41:54,390 >> 現在3號線看起來有點不同。 902 00:41:54,390 --> 00:41:55,920 而這只是一條線。 903 00:41:55,920 --> 00:41:57,950 為了使這更 清楚,我可能只是 904 00:41:57,950 --> 00:42:01,820 確實這是風格上保持一致 與一切,我們已經做到了。 905 00:42:01,820 --> 00:42:04,130 但是,這不是真的 改變的功能。 906 00:42:04,130 --> 00:42:05,880 這只是一條線的實際代碼。 907 00:42:05,880 --> 00:42:09,010 >> 很顯然,有一個功能 地方叫做渲染頭, 908 00:42:09,010 --> 00:42:11,420 這是哪裡的東西 變得相當強大。 909 00:42:11,420 --> 00:42:17,040 請注意它的括號裡面 就是另一片語法? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 它可能是一個有點難以啟齒,但 注意there's--我會放一些白 912 00:42:23,350 --> 00:42:24,300 空間。 913 00:42:24,300 --> 00:42:25,530 還有方括號。 914 00:42:25,530 --> 00:42:29,700 >> 和方括號中,我們看到了一點前 在關聯數組的情況下, 915 00:42:29,700 --> 00:42:31,580 這是,再次,像散列表。 916 00:42:31,580 --> 00:42:36,230 如果你覺得現在到C時, 為了參數成函數 917 00:42:36,230 --> 00:42:37,570 必須始終是相同的。 918 00:42:37,570 --> 00:42:41,146 你要記住什麼 訂購is-- X,Y,Z或Z,Y,x-- 919 00:42:41,146 --> 00:42:44,020 你必須總是為他們提供 在同一順序或找一找 920 00:42:44,020 --> 00:42:45,100 如果您忘記了。 921 00:42:45,100 --> 00:42:51,140 >> 但是,這似乎是一種聰明的辦法 路過的一個任意的鍵值 922 00:42:51,140 --> 00:42:55,840 對由此標題名稱 在這種情況下的說法 923 00:42:55,840 --> 00:42:58,334 和CS50是其值。 924 00:42:58,334 --> 00:43:00,250 而事實上,我有 這些方括號 925 00:43:00,250 --> 00:43:02,560 這裡的意思是,我可以 還傳遞東西 926 00:43:02,560 --> 00:43:07,550 象是每週1或0或2或3。 927 00:43:07,550 --> 00:43:10,550 因此,我們已經參數 以這樣的方式該功能 928 00:43:10,550 --> 00:43:15,180 這可以利用多個輸入, 但現在它只是一個。 929 00:43:15,180 --> 00:43:20,060 >> 如果我現在進入helpers.php, 注意它在做什麼。 930 00:43:20,060 --> 00:43:22,030 這是一點點 的新功能, 931 00:43:22,030 --> 00:43:24,190 但現在只拿 信仰,這是 932 00:43:24,190 --> 00:43:26,570 語法與您 定義在PHP中的函數。 933 00:43:26,570 --> 00:43:27,840 你從字面上說的功能。 934 00:43:27,840 --> 00:43:30,090 你沒有指定返回 型,這是一致的 935 00:43:30,090 --> 00:43:33,880 與可變細節較早 在這裡你真的不強類型。 936 00:43:33,880 --> 00:43:35,650 >> 這只是規定 在默認情況下,此 937 00:43:35,650 --> 00:43:37,460 接受聯合 數組作為參數。 938 00:43:37,460 --> 00:43:38,210 你知道嗎? 939 00:43:38,210 --> 00:43:41,450 如果用戶沒有通過1 中,假設一個默認值。 940 00:43:41,450 --> 00:43:44,680 >> 這是一個功能,C沒有 對我們來說,這是很好的,因為現在 941 00:43:44,680 --> 00:43:46,430 數據,即使你 不給它任何東西, 942 00:43:46,430 --> 00:43:49,300 將是一個 數組,但空單。 943 00:43:49,300 --> 00:43:51,860 而作為旁白,提取物 只是做一些時髦 944 00:43:51,860 --> 00:43:56,380 其中,它需要所有的鍵從該 關聯數組,所有的東西 945 00:43:56,380 --> 00:43:59,950 你可以把方括號中, 並創建變量了出來 946 00:43:59,950 --> 00:44:06,270 這樣我們就可以最終獲得 他們在footet.php和header.php文件。 947 00:44:06,270 --> 00:44:08,950 這是一個有點抽象, 所以讓我指出這一點。 948 00:44:08,950 --> 00:44:12,990 >> 在index.php文件,請注意我 傳遞一個鍵值對稱號 949 00:44:12,990 --> 00:44:14,850 與CS50的值。 950 00:44:14,850 --> 00:44:18,660 如果我現在看helpers.php, 注意RenderHeader 951 00:44:18,660 --> 00:44:23,870 被抽取了我傳遞的數據 中,然後,需要的header.php。 952 00:44:23,870 --> 00:44:27,970 我所做的就是那種窮人的的 現在執行下面的。 953 00:44:27,970 --> 00:44:31,720 >> 如果我打開header.php文件, 注意,我不再難 954 00:44:31,720 --> 00:44:34,890 編碼這個頭文件中的文字CS50。 955 00:44:34,890 --> 00:44:39,310 我已經把這個無可否認的殘暴 命名功能,HTML特殊字符, 956 00:44:39,310 --> 00:44:40,170 在那裡。 957 00:44:40,170 --> 00:44:41,640 但是請注意,我做了什麼。 958 00:44:41,640 --> 00:44:44,240 我有打開HTML。 959 00:44:44,240 --> 00:44:47,420 然後我開的頭和公開賽冠軍。 960 00:44:47,420 --> 00:44:52,380 >> 然後裡面的標題的開放, 關閉標籤,我有一點PHP代碼。 961 00:44:52,380 --> 00:44:56,670 這是一個很好的語法,但是, 這只是意味著贊同出來。 962 00:44:56,670 --> 00:44:59,840 它的字面意思是this-- 呼應following-- 963 00:44:59,840 --> 00:45:01,910 但這是性感寫。 964 00:45:01,910 --> 00:45:05,000 呼應了標題 一個已經來傳遞。 965 00:45:05,000 --> 00:45:07,560 >> 但是,你有什麼感想HTML 特殊字符是怎麼一回事, 966 00:45:07,560 --> 00:45:10,590 特別是如果你有 之前的一些HTML的經驗? 967 00:45:10,590 --> 00:45:14,050 可能是什麼字 危險中要傳遞給頁 968 00:45:14,050 --> 00:45:17,980 在那裡你動態地生成 網頁使用這樣的代碼? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 讓我去這個文件,版本 2,看我能不能誘導這一點。 971 00:45:24,650 --> 00:45:26,210 >> 第二版是這樣的。 972 00:45:26,210 --> 00:45:28,510 並注意一切 精美,做工精良。 973 00:45:28,510 --> 00:45:35,280 但是,假如我去到index.php和 我指定我的網頁的標題 974 00:45:35,280 --> 00:45:36,630 不CS50。 975 00:45:36,630 --> 00:45:44,930 它是開放的支架腳本警報 你好世界,接近單引號, 976 00:45:44,930 --> 00:45:49,740 右括號,分號, 開放式托架,斜線腳本。 977 00:45:49,740 --> 00:45:51,897 >> 腳本,如我們 最終看到的,是一個標籤 978 00:45:51,897 --> 00:45:54,480 你可以用它來使用的另一種 編程語言叫做 979 00:45:54,480 --> 00:45:56,330 JavaScript的Web頁面的內部。 980 00:45:56,330 --> 00:45:57,960 現在這裡看到的邏輯。 981 00:45:57,960 --> 00:45:59,840 這裡有一個名為標題的關鍵。 982 00:45:59,840 --> 00:46:02,690 下面是它的瘋狂long值了。 983 00:46:02,690 --> 00:46:07,840 >> 但是,如果我去了助手頁面級 或者更確切地說,標題頁, 984 00:46:07,840 --> 00:46:11,310 我調用這個函數 在該標題的第一。 985 00:46:11,310 --> 00:46:15,250 所以,如果我現在刷新頁面,我 看到這,看起來可笑, 986 00:46:15,250 --> 00:46:16,110 但它是安全的。 987 00:46:16,110 --> 00:46:17,310 它只是看起來愚蠢。 988 00:46:17,310 --> 00:46:20,320 >> 但是,假設代替 我已經忘了這一點。 989 00:46:20,320 --> 00:46:24,660 和記住我的話,一個非零數字 你會忘記這樣做 990 00:46:24,660 --> 00:46:27,790 你會得到一些勤勞 學生或朋友來了 991 00:46:27,790 --> 00:46:31,540 你在CS50公平或匿名 晚上閒逛在您的網站 992 00:46:31,540 --> 00:46:35,300 而實際上注入的代碼 瞞著你進入你的網站 993 00:46:35,300 --> 00:46:35,800 不知何故。 994 00:46:35,800 --> 00:46:39,000 >> 因為如果我只是吐 在這裡標題和標題 995 00:46:39,000 --> 00:46:44,330 那裡 - 好吧,如果從字面上稱號 貌似這個和PHP 996 00:46:44,330 --> 00:46:47,660 作為可吐的語言 從其他語言的文字, 997 00:46:47,660 --> 00:46:50,650 這是從字面上去 來替換這個標籤, 998 00:46:50,650 --> 00:46:53,010 當然,我把其他地方。 999 00:46:53,010 --> 00:46:57,640 >> 所以,如果我現在去這裡後重裝 撤銷這些安全機制, 1000 00:46:57,640 --> 00:46:59,982 現在我的hello world這裡。 1001 00:46:59,982 --> 00:47:02,690 現在還不是所有的大的 處理,但你可以做一些事情 1002 00:47:02,690 --> 00:47:05,119 多一點惡意 在這裡,像有 1003 00:47:05,119 --> 00:47:08,410 其他tags--,我們會看到,一旦我們度過 更多的時間在JavaScript--如位置 1004 00:47:08,410 --> 00:47:14,910 點HREF得到,報價,引文結束,HTTP business.com,但其相反的 1005 00:47:14,910 --> 00:47:15,950 從那天。 1006 00:47:15,950 --> 00:47:20,120 現在你可以誘導網絡 頁面居然馬上去 1007 00:47:20,120 --> 00:47:21,190 在這裡這個網頁。 1008 00:47:21,190 --> 00:47:23,000 >> 而實際上,我不想 甚至去business.com 1009 00:47:23,000 --> 00:47:24,749 因為我不想 知道是什麼。 1010 00:47:24,749 --> 00:47:28,710 但是,這也將觸發代碼 被注入到當前頁。 1011 00:47:28,710 --> 00:47:32,680 因此,這是唯一地說,即使 我們要介紹一些超早 1012 00:47:32,680 --> 00:47:36,800 這些更複雜的結構中, 這一切都朝著確保的一端 1013 00:47:36,800 --> 00:47:39,320 你的代碼是不可利用。 1014 00:47:39,320 --> 00:47:40,960 >> 所以,現在這裡的第三個版本。 1015 00:47:40,960 --> 00:47:42,470 它變得有點票友。 1016 00:47:42,470 --> 00:47:44,875 我真的不like-- 我的肛門側 1017 00:47:44,875 --> 00:47:47,750 漸漸的有點惱火 事實上,我已經叫功能 1018 00:47:47,750 --> 00:47:51,940 RenderHeader和RenderFooter 這幾乎是相同的。 1019 00:47:51,940 --> 00:47:55,400 於是我想到,為什麼不 我這些參數的函數 1020 00:47:55,400 --> 00:47:59,180 逼到一個叫打底, 有它需要第二個參數 1021 00:47:59,180 --> 00:48:04,420 象模板的名稱,最終 以render--要么頁眉或頁腳? 1022 00:48:04,420 --> 00:48:07,160 然後可選,如果我想 通過在一些鍵值對 1023 00:48:07,160 --> 00:48:10,580 像我這樣做,為的標題 頭但不是頁腳, 1024 00:48:10,580 --> 00:48:11,800 我能做到這一點。 1025 00:48:11,800 --> 00:48:16,510 >> 所以現在如果我進入helpers.php, 這是一個稍微複雜一些。 1026 00:48:16,510 --> 00:48:19,670 我會揮動我的手在 細節,但它只是一個功能。 1027 00:48:19,670 --> 00:48:21,890 所以這是朝著更好的設計的一個步驟。 1028 00:48:21,890 --> 00:48:23,360 >> 我們可以藉此一步。 1029 00:48:23,360 --> 00:48:28,890 如果我去了我的第四個 這個版本的,現在通知 1030 00:48:28,890 --> 00:48:31,320 我正在做的事情 更有種神秘。 1031 00:48:31,320 --> 00:48:33,230 我知道這是一個 大量吸收一次, 1032 00:48:33,230 --> 00:48:35,080 但我們只是種 清洗東西。 1033 00:48:35,080 --> 00:48:38,550 現在,我把我的助手 文件到一個文件夾,名為 1034 00:48:38,550 --> 00:48:41,190 includes--只是一個任意 名字在這裡我想提出的東西 1035 00:48:41,190 --> 00:48:44,300 我想包括 - 再 這剩下的是一樣的。 1036 00:48:44,300 --> 00:48:47,140 >> 但是,如果我現在看gedit中, 我已經擺脫了通知 1037 00:48:47,140 --> 00:48:51,940 所有其他文件和我所 移動它們,例如,到此處。 1038 00:48:51,940 --> 00:48:55,110 然後在模板中, 我有這個在這裡了。 1039 00:48:55,110 --> 00:48:59,292 所以這是現在都朝著一個步驟 使用的一個更好的設計圖案。 1040 00:48:59,292 --> 00:49:01,000 我們非常迅速地 要搬走 1041 00:49:01,000 --> 00:49:03,870 從PHP的默認功能, 我們開始在這裡與, 1042 00:49:03,870 --> 00:49:07,655 在這裡你只匯成PHP, 和你的HTML和CSS的, 1043 00:49:07,655 --> 00:49:09,780 你剛才吐出來 你走你的路。 1044 00:49:09,780 --> 00:49:11,404 它不會是非常維護。 1045 00:49:11,404 --> 00:49:14,481 就像在C中,我們開始使用 多個文件和多種功能 1046 00:49:14,481 --> 00:49:15,730 和保理的事情說出來。 1047 00:49:15,730 --> 00:49:16,688 我們會在這裡做同樣的。 1048 00:49:16,688 --> 00:49:19,970 而事實上,在第五和最後 版本在這裡,我做了一件事。 1049 00:49:19,970 --> 00:49:23,710 您甚至可以使用點點,對此, 再次,就是父目錄。 1050 00:49:23,710 --> 00:49:28,260 為了更加安全意識, 因為如果我看聽 1051 00:49:28,260 --> 00:49:32,450 這裡的第五個,也是最後的版本,預告 我有一個目錄名為這裡 1052 00:49:32,450 --> 00:49:35,180 公眾,然後在 同一級別,可以這麼說, 1053 00:49:35,180 --> 00:49:38,490 我已經得到了包括和模板 然後將該文本文件的自述。 1054 00:49:38,490 --> 00:49:41,130 >> 其原因我已經結構 它喜歡this--等眾多網絡 1055 00:49:41,130 --> 00:49:44,330 主機,特別是那些5元 那些一個月美元10個月的人, 1056 00:49:44,330 --> 00:49:47,170 如果你曾經有過的其中之一 services--是什麼讓很多人做 1057 00:49:47,170 --> 00:49:50,690 是他們只是希望你能轉儲所有 你的文件放到一個目錄中, 1058 00:49:50,690 --> 00:49:53,640 就像我們已經做了有 這第一個例子。 1059 00:49:53,640 --> 00:49:56,740 >> 但只要你開始建造更多 只是存儲複雜場所 1060 00:49:56,740 --> 00:50:00,480 數據你關心和文件你 關心,其實組織的事情 1061 00:50:00,480 --> 00:50:05,060 正確和更安全 意識的頭腦可以 1062 00:50:05,060 --> 00:50:07,927 我們開始防守 對所有的朋友 1063 00:50:07,927 --> 00:50:10,135 你有兩種或 這個類以外的誰, 1064 00:50:10,135 --> 00:50:12,510 只要你開始做 在網絡上自己的節目, 1065 00:50:12,510 --> 00:50:15,140 要開始採摘 你和他們。 1066 00:50:15,140 --> 00:50:17,420 >> 所以我們將看看 最終,在這個設計。 1067 00:50:17,420 --> 00:50:20,010 這僅僅是一個圖片 描繪如下。 1068 00:50:20,010 --> 00:50:22,897 我們打算把我們所有的 在一個或多個文件的編程邏輯, 1069 00:50:22,897 --> 00:50:25,230 我們要去剛剛開始 調用這些控制器。 1070 00:50:25,230 --> 00:50:28,022 它是其中的​​大腦 我們的網站竟然都是​​。 1071 00:50:28,022 --> 00:50:29,730 然後,我們要 有意見和看法 1072 00:50:29,730 --> 00:50:32,480 是簡單,只是單獨的 files--所謂的模板,通常。 1073 00:50:32,480 --> 00:50:34,410 他們只是有 我的網頁的美觀, 1074 00:50:34,410 --> 00:50:37,020 我想要的頁面看看 like--的顏色和佈局 1075 00:50:37,020 --> 00:50:38,870 的位置和 所有的變量。 1076 00:50:38,870 --> 00:50:41,120 >> 然後更有趣 我們最終會到達 1077 00:50:41,120 --> 00:50:45,420 是模型,這將是剛 我們拍其他技術的話 1078 00:50:45,420 --> 00:50:47,771 我們領進 圖片,就像實際的數據庫, 1079 00:50:47,771 --> 00:50:49,520 所以,當你想 保存的信息, 1080 00:50:49,520 --> 00:50:52,140 你不只是發郵件 您的監考官或自己, 1081 00:50:52,140 --> 00:50:57,350 你居然把它存儲在數據庫中 使用稱為SQL另一種語言。 1082 00:50:57,350 --> 00:51:00,450 所以我們今天離開這裡 拿起這個星期三 1083 00:51:00,450 --> 00:51:02,990 並引入數據庫即可。 1084 00:51:02,990 --> 00:51:06,940 >> [音樂播放] 1085 00:51:06,940 --> 00:54:24,555