1 00:00:00,000 --> 00:00:05,720 2 00:00:05,720 --> 00:00:07,620 >> DOUG LLOYD:所以在我們的 視頻PHP語法, 3 00:00:07,620 --> 00:00:10,480 我們談了很多關於如何PHP 可以在命令行中使用 4 00:00:10,480 --> 00:00:13,620 運行的方式程序 我們非常熟悉的C. 5 00:00:13,620 --> 00:00:15,370 但正如我也提到 在該視頻,PHP 6 00:00:15,370 --> 00:00:19,572 最初開發 實現網絡編程,網站。 7 00:00:19,572 --> 00:00:21,780 所以,在這個視頻我們 要談談我們如何 8 00:00:21,780 --> 00:00:23,890 在Web開發環境中使用PHP。 9 00:00:23,890 --> 00:00:26,360 >> 我們知道,已經從 我們的視頻在HTML, 10 00:00:26,360 --> 00:00:29,820 該網站建 出了一套HTML標籤的 11 00:00:29,820 --> 00:00:32,850 即語義定義 網頁的結構。 12 00:00:32,850 --> 00:00:35,910 但網站是 建有純HTML 13 00:00:35,910 --> 00:00:39,510 從一個非常痛苦, 非常嚴重的限制。 14 00:00:39,510 --> 00:00:42,690 >> 並說明此限制, 讓我們來考慮下。 15 00:00:42,690 --> 00:00:45,665 所以現在我想建立一個網頁 即,每當用戶訪問它, 16 00:00:45,665 --> 00:00:49,760 它給了我目前的 時間在馬薩諸塞州劍橋市, 17 00:00:49,760 --> 00:00:52,620 顯示它的最新分鐘。 18 00:00:52,620 --> 00:00:57,910 如果我現在做這一權利, 我可能會說這樣的事情。 19 00:00:57,910 --> 00:01:01,330 當前時間Cambridge--所以我有 HTML標籤,頭標籤,標題標籤, 20 00:01:01,330 --> 00:01:04,610 身體tags--當前 時間在劍橋為14:08, 21 00:01:04,610 --> 00:01:06,690 打印出軍用時間。 22 00:01:06,690 --> 00:01:11,390 >> 如果它現在14:09,14:09,會發生什麼? 23 00:01:11,390 --> 00:01:16,470 好了,到目前為止,使用HTML,我有 去中和它更改為14:09。 24 00:01:16,470 --> 00:01:19,390 再一分鐘後, 我必須再次進行更改。 25 00:01:19,390 --> 00:01:22,132 再一分鐘後, 我必須再次進行更改。 26 00:01:22,132 --> 00:01:24,590 正如你可以想像,這是 可能是最糟糕的工作不斷。 27 00:01:24,590 --> 00:01:29,420 你是站長的網頁, 每一分鐘,一天24小時, 28 00:01:29,420 --> 00:01:35,970 您需要通過更新當前時間 手動打開為time.html和改變 29 00:01:35,970 --> 00:01:41,750 代碼只是片段說的 當前時間以小時和分鐘。 30 00:01:41,750 --> 00:01:45,850 這可能不是一個非常 很好地利用我們的資源, 31 00:01:45,850 --> 00:01:48,880 人類和計算。 32 00:01:48,880 --> 00:01:51,297 >> 網站都是HTML 是完全靜態的。 33 00:01:51,297 --> 00:01:53,630 您可以更新的唯一途徑 內容,正如我們所看到的, 34 00:01:53,630 --> 00:01:56,339 是手動打開這些源 文件,編輯它們,並保存它們。 35 00:01:56,339 --> 00:01:58,088 然後當用戶 刷新頁面, 36 00:01:58,088 --> 00:02:01,080 或訪問該頁面的第一 一次,他們將獲得的最新內容。 37 00:02:01,080 --> 00:02:03,970 但僅僅因為我們已經 手動編輯它。 38 00:02:03,970 --> 00:02:07,980 >> 如果我們開始把一些PHP在那裡, 我們的代碼可以得到很多更靈活。 39 00:02:07,980 --> 00:02:11,940 我們可以有辦法為我們的網頁 是動態的,或更新自己, 40 00:02:11,940 --> 00:02:15,360 而不需要我們可憐 網站管理員在前面的例子 41 00:02:15,360 --> 00:02:16,662 要手動更新的東西。 42 00:02:16,662 --> 00:02:17,870 他們可以自動地做到這一點。 43 00:02:17,870 --> 00:02:19,130 我們沒有介入。 44 00:02:19,130 --> 00:02:20,410 我們可以睡個安穩覺。 45 00:02:20,410 --> 00:02:24,850 這可能是一件好事,如果 你做了很多的網絡編程。 46 00:02:24,850 --> 00:02:28,360 >> 因此,在CS50 IDE中,我們運行 Web服務器Apache的叫。 47 00:02:28,360 --> 00:02:35,250 這是一個很常用的, 開源Web服務器系統。 48 00:02:35,250 --> 00:02:37,320 該系統具有 能力來解釋 49 00:02:37,320 --> 00:02:41,260 PHP,這將是非常有用的話 你想要做的任何PHP編程。 50 00:02:41,260 --> 00:02:45,230 >> 而在CS50 IDE,我們有一個命令 使這個很容易做到, 51 00:02:45,230 --> 00:02:47,280 apache50啟動。 52 00:02:47,280 --> 00:02:49,445 然後那條斜線 路徑,以斜線,斜線 53 00:02:49,445 --> 00:02:53,350 目錄,這只是一個非常普通的方法 說明你在這裡指定的內容 54 00:02:53,350 --> 00:02:56,510 是一個路徑到特定 目錄你 55 00:02:56,510 --> 00:03:00,800 想是根 現場,或根頁, 56 00:03:00,800 --> 00:03:05,430 或文件夾從您的Web服務器 將開始檢查文件和服務 57 00:03:05,430 --> 00:03:07,850 他們去誰要求他們的客戶。 58 00:03:07,850 --> 00:03:12,110 因此,讓我們突然過來CS50 IDE,只是為了 告訴你,真快,是如何工作的。 59 00:03:12,110 --> 00:03:30,930 60 00:03:30,930 --> 00:03:36,240 >> 所以,在這裡CS50 IDE,我在一個 目錄下名為週零點九。 61 00:03:36,240 --> 00:03:38,890 我有two--我有 執行一個ls命令只 62 00:03:38,890 --> 00:03:41,910 上面告訴你,我有 在這裡兩個目錄,PHP, 63 00:03:41,910 --> 00:03:46,410 這是我用在組文件中的 在PHP語法的視頻,然後PHP的網站, 64 00:03:46,410 --> 00:03:49,380 這是一組文件,我 想在這個視頻中使用。 65 00:03:49,380 --> 00:03:53,480 >> 我想先 一個Web服務器實例 66 00:03:53,480 --> 00:03:59,089 與PHP的Web文件夾中的內容 因為文件被端上來。 67 00:03:59,089 --> 00:04:00,130 所以,我該怎麼辦? 68 00:04:00,130 --> 00:04:05,710 我要去型apache50空間 開始,PHP空間,破折號網絡。 69 00:04:05,710 --> 00:04:08,100 這就是目錄的路徑 從那裡我目前。 70 00:04:08,100 --> 00:04:09,127 然後,我敲回車。 71 00:04:09,127 --> 00:04:10,960 它會做一個 東西一點在這裡。 72 00:04:10,960 --> 00:04:14,030 然後它會說, Apache的成功啟動。 73 00:04:14,030 --> 00:04:20,689 您的網站現在可以at--和 再有就是網址的網站。 74 00:04:20,689 --> 00:04:21,730 所以,我該怎麼辦? 75 00:04:21,730 --> 00:04:26,234 我要快速複製這一點。 76 00:04:26,234 --> 00:04:28,900 而我要去開up--和 我會縮小一點點這裡 - 77 00:04:28,900 --> 00:04:31,570 我要去開拓 一個新的選項卡瀏覽器。 78 00:04:31,570 --> 00:04:34,320 而我要訪問該網址。 79 00:04:34,320 --> 00:04:35,299 >> 我要敲回車。 80 00:04:35,299 --> 00:04:36,090 這將加載。 81 00:04:36,090 --> 00:04:37,510 我會再次縮小。 82 00:04:37,510 --> 00:04:41,350 而且我們可以在這裡看到的是 我的PHP網頁目錄的內容。 83 00:04:41,350 --> 00:04:45,290 >> 所以,現在基本上是從發生 在這裡,CS50的IDE我的實例 84 00:04:45,290 --> 00:04:49,620 在這些文件中提供長達 任何人誰要求他們。 85 00:04:49,620 --> 00:04:51,620 而過的課程 這段視頻中,我們將整理的 86 00:04:51,620 --> 00:04:55,400 看看這些一堆 在上下文中不同的文件。 87 00:04:55,400 --> 00:04:57,614 >> 要測試你的Apache 服務器工作正常, 88 00:04:57,614 --> 00:04:59,780 其通常會 是這種情況在CS50 IDE中, 89 00:04:59,780 --> 00:05:02,696 但如果你這樣做更普遍, 你開始建立自己的網站 90 00:05:02,696 --> 00:05:04,990 服務器,有一個真正的 不同凡響的模擬, 91 00:05:04,990 --> 00:05:08,500 “世界你好”,也就是通常 用於PHP的Web開發。 92 00:05:08,500 --> 00:05:12,855 這是有一個文件 由眼前這個代碼 - 中 93 00:05:12,855 --> 00:05:18,247 PHP的分隔符設置PHP的信息, 括號,分號之間。 94 00:05:18,247 --> 00:05:20,580 這基本上是一個特殊的 PHP函數,告訴你 95 00:05:20,580 --> 00:05:23,970 什麼版本的PHP您正在運行。 96 00:05:23,970 --> 00:05:26,850 >> 因此,在CS50的IDE,我有 可用的文件只是 97 00:05:26,850 --> 00:05:28,680 給大家展示一下這會是什麼樣子。 98 00:05:28,680 --> 00:05:32,860 所以,我看我的索引 從我的PHP實例。 99 00:05:32,860 --> 00:05:35,870 我的Apache實例運行 PHP的網站的內容。 100 00:05:35,870 --> 00:05:39,290 我有一個文件,這裡叫做info.php的。 101 00:05:39,290 --> 00:05:41,164 >> 我要點擊它,縮小。 102 00:05:41,164 --> 00:05:43,080 這是你將成為怎樣 看看,漂亮多了。 103 00:05:43,080 --> 00:05:45,729 這只是告訴我, 我的Apache服務器的工作。 104 00:05:45,729 --> 00:05:48,270 這是,很顯然,在 版本的PHP我參加競選。 105 00:05:48,270 --> 00:05:51,590 這是我模擬的“hello world”。 106 00:05:51,590 --> 00:05:53,070 >> 所以我知道事情是可操作的。 107 00:05:53,070 --> 00:05:54,150 因此,我們好去。 108 00:05:54,150 --> 00:05:55,730 我們可以從這裡出發。 109 00:05:55,730 --> 00:05:57,790 >> 因此,讓我們重溫那 時間例子我們 110 00:05:57,790 --> 00:06:01,950 談到與我們可憐的站長 誰曾不斷更新頁面。 111 00:06:01,950 --> 00:06:05,020 這可能是怎樣的修復 我想實現的東西 112 00:06:05,020 --> 00:06:08,080 使網站管理員沒 必須不斷更新的時間。 113 00:06:08,080 --> 00:06:10,270 它會只是有點 自動發生。 114 00:06:10,270 --> 00:06:13,710 >> 下下來,HTML,它的 非常相似,但有一個例外。 115 00:06:13,710 --> 00:06:16,720 但在這裡我有一些PHP在頂部。 116 00:06:16,720 --> 00:06:19,940 我有,顯然,稱這 功能date_default_timezone_set。 117 00:06:19,940 --> 00:06:22,106 >> 我們不談論所有 在CS50這些功能, 118 00:06:22,106 --> 00:06:24,670 因為PHP有可能 數以萬計。 119 00:06:24,670 --> 00:06:27,540 這可能是一個比特的 誇張,但它可能不是。 120 00:06:27,540 --> 00:06:29,490 它有大量的內置函數。 121 00:06:29,490 --> 00:06:33,290 所以這是一個功能明顯 設置我的時區為美國/東部, 122 00:06:33,290 --> 00:06:36,320 這是我的時區 目前在製作這部影片。 123 00:06:36,320 --> 00:06:38,430 >> 然後,我打電話到 函數調用,日期。 124 00:06:38,430 --> 00:06:43,850 而且,很明顯,我存儲的 HIS一種叫,時間。 125 00:06:43,850 --> 00:06:45,320 所以,這是怎麼回事嗎? 126 00:06:45,320 --> 00:06:48,040 >> 好了,基本上什麼 發生的事情是,我在打電話 127 00:06:48,040 --> 00:06:51,650 一些服務器,是要 告訴我現在是什麼時候了。 128 00:06:51,650 --> 00:06:56,150 而我將其轉換為一種格式 時,分,秒。 129 00:06:56,150 --> 00:07:00,540 其原因是大寫的H是這樣的 是要給我24小時時間,而不是12 130 00:07:00,540 --> 00:07:02,362 小時的時間,這將是小寫小時。 131 00:07:02,362 --> 00:07:04,570 而我只是存儲的 在一個名為變量,時間。 132 00:07:04,570 --> 00:07:07,028 使PHP的第二行 那裡,調用的功能, 133 00:07:07,028 --> 00:07:09,037 迄今為止,在剛開 一些字符串,這是 134 00:07:09,037 --> 00:07:12,120 要給我的日期,和 時間,和一堆其他信息。 135 00:07:12,120 --> 00:07:16,480 還有第一個參數,即HIS, 只是提取重要組成部分 136 00:07:16,480 --> 00:07:20,614 我關心在這個例子中, 這是小時,分鐘和秒。 137 00:07:20,614 --> 00:07:22,030 所以這是所有這回事。 138 00:07:22,030 --> 00:07:23,562 所以,我存儲在一個變量$時間。 139 00:07:23,562 --> 00:07:25,270 再往下的 最底層那裡,我 140 00:07:25,270 --> 00:07:28,980 有簡寫 打印出當前時間。 141 00:07:28,980 --> 00:07:32,050 所以我只是要打印 出當前時間是什麼。 142 00:07:32,050 --> 00:07:37,220 >> 因此,讓我們來看看這 CS50 IDE,看看我們現在怎麼是 143 00:07:37,220 --> 00:07:40,002 保存該站長了很多麻煩。 144 00:07:40,002 --> 00:07:42,570 好了,所以我在這裡再次 回到根目錄 145 00:07:42,570 --> 00:07:45,040 我的Apache實例。 146 00:07:45,040 --> 00:07:51,585 我這裡有一個名為time.php。 147 00:07:51,585 --> 00:07:53,559 我只是要點擊的。 148 00:07:53,559 --> 00:07:55,850 我會向上滾動,因為 我們在很遠放大。 149 00:07:55,850 --> 00:07:57,257 目前的時間是14點20分34秒。 150 00:07:57,257 --> 00:07:59,090 所以,我做的時間, 分鐘和秒。 151 00:07:59,090 --> 00:08:01,910 我可以刷新 頁面,並獲得新的時間。 152 00:08:01,910 --> 00:08:02,420 --41。 153 00:08:02,420 --> 00:08:07,240 我要去刷新頁面 並獲得新的時間,44,46,47。 154 00:08:07,240 --> 00:08:10,490 >> 所以,我顯然不是 改變任何事情我自己。 155 00:08:10,490 --> 00:08:11,720 我在這裡刷新頁面。 156 00:08:11,720 --> 00:08:13,711 所以,我不能回到那裡編輯它。 157 00:08:13,711 --> 00:08:15,710 我向你保證,我不 有什麼同黨 158 00:08:15,710 --> 00:08:18,230 誰正在編輯的文件 以我的名義就在身邊。 159 00:08:18,230 --> 00:08:21,260 >> 我只是使用PHP函數, 時間,生成的時間,我 160 00:08:21,260 --> 00:08:22,340 自動。 161 00:08:22,340 --> 00:08:24,800 所以,即使我睡著了, 和我的Web服務器正在運行, 162 00:08:24,800 --> 00:08:28,884 誰訪問該網頁仍然是用戶 要得到完全相同的當前時間。 163 00:08:28,884 --> 00:08:29,800 所以,這是相當不錯的。 164 00:08:29,800 --> 00:08:33,609 我做了我的網站更具活力 有沒有太多的PHP代碼。 165 00:08:33,609 --> 00:08:36,650 這只是兩行代碼,然後 print語句的一點點。 166 00:08:36,650 --> 00:08:38,441 而且我已經有一個 更加動態的網站 167 00:08:38,441 --> 00:08:42,750 比第一個例子中我們看到了 在視頻的開頭。 168 00:08:42,750 --> 00:08:46,660 >> 因此,從PHP語法視頻回顧 該PHP解釋器運行時 169 00:08:46,660 --> 00:08:50,000 我們的程序,它會忽略一切 這不是PHP的分隔符內, 170 00:08:50,000 --> 00:08:51,500 吐了出來。 171 00:08:51,500 --> 00:08:54,410 在該示例中,東西什麼 它被吐出了HTML。 172 00:08:54,410 --> 00:08:58,080 這意味著我可以現在 點綴HTML和PHP在一起。 173 00:08:58,080 --> 00:09:01,920 由於翻譯只會 忽略HTML和字面上把它輸出。 174 00:09:01,920 --> 00:09:04,140 這是很好的,對不對? 175 00:09:04,140 --> 00:09:06,100 >> 因為據推測, 在一天結束時, 176 00:09:06,100 --> 00:09:08,360 我想我的網站 的HTML構成。 177 00:09:08,360 --> 00:09:12,880 使得任何web瀏覽器可以解釋 它,或理解頁面上的HTML 178 00:09:12,880 --> 00:09:17,270 並使它的東西,我們 實際上可以理解為人類。 179 00:09:17,270 --> 00:09:19,430 而我只能用PHP 我的網站的部分 180 00:09:19,430 --> 00:09:23,390 在需要活力,需要我 有東西不斷更新。 181 00:09:23,390 --> 00:09:26,630 所述靜態信息 可以保持不變。 182 00:09:26,630 --> 00:09:27,540 >> 好了,這很好。 183 00:09:27,540 --> 00:09:28,540 但是,為什麼要這樣做呢? 184 00:09:28,540 --> 00:09:30,400 為什麼我會混合使用HTML和PHP? 185 00:09:30,400 --> 00:09:33,850 我可以只打印出所有的 HTML,使用PHP打印功能。 186 00:09:33,850 --> 00:09:35,870 我為什麼不這樣做呢? 187 00:09:35,870 --> 00:09:37,100 想想看一秒鐘。 188 00:09:37,100 --> 00:09:41,220 >> 為什麼,當我可以只打印out--我 可能有PHP的線條,只是說, 189 00:09:41,220 --> 00:09:43,841 打印HTML標記,打印頭。 190 00:09:43,841 --> 00:09:44,840 我為什麼不這樣做呢? 191 00:09:44,840 --> 00:09:48,230 為什麼我混合PHP和HTML嗎? 192 00:09:48,230 --> 00:09:50,080 >> 好吧,如果你認為 它一秒鐘。 193 00:09:50,080 --> 00:09:52,824 PHP的解釋有 來解釋它認為。 194 00:09:52,824 --> 00:09:54,990 所以,這將有 要執行的代碼行。 195 00:09:54,990 --> 00:09:56,450 打印出的HTML。 196 00:09:56,450 --> 00:09:57,700 打印出開放的頭標記。 197 00:09:57,700 --> 00:09:58,969 打印出開放的標題標籤。 198 00:09:58,969 --> 00:10:00,760 這將有 執行和解釋 199 00:10:00,760 --> 00:10:02,671 該方式的每一步。 200 00:10:02,671 --> 00:10:04,670 為什麼不只是讓 解釋只是掩飾 201 00:10:04,670 --> 00:10:06,878 事情不明白 並自動做到這一點? 202 00:10:06,878 --> 00:10:11,365 這將節省我很多時間 混合我的HTML和我的PHP在一起。 203 00:10:11,365 --> 00:10:16,220 >> 所以這就是為什麼我們不這樣做 只需打開PHP定界符 204 00:10:16,220 --> 00:10:19,450 然後只需打印出整個 我們網頁的內容,一個巨大的PHP 205 00:10:19,450 --> 00:10:24,330 調用的功能,打印,然後 關閉PHP的分隔符,我們就大功告成了。 206 00:10:24,330 --> 00:10:27,620 所以這就是為什麼我們將它們混合在一起。 207 00:10:27,620 --> 00:10:32,345 >> 到目前為止,我們還沒有看到太多的 從一般的PHP語法的差異。 208 00:10:32,345 --> 00:10:33,720 它是非常簡單的。 209 00:10:33,720 --> 00:10:35,553 我們已經看到了 問號,平等的。 210 00:10:35,553 --> 00:10:39,012 我們看到了一些新的函數調用, 但沒有什麼花哨的事情。 211 00:10:39,012 --> 00:10:40,720 我們也許做的事情 一個小票友。 212 00:10:40,720 --> 00:10:44,360 如果我們想傳遞的信息 不同的PHP文件之間, 213 00:10:44,360 --> 00:10:47,280 所以,也許用戶可以 提交信息給我。 214 00:10:47,280 --> 00:10:50,230 然後我可以做一些事情 它另一頁上。 215 00:10:50,230 --> 00:10:52,990 >> 因此,PHP有支持 所謂超級全球 216 00:10:52,990 --> 00:10:55,297 變量,這聽起來相當真棒。 217 00:10:55,297 --> 00:10:57,130 他們真的只是 巨大的關聯數組 218 00:10:57,130 --> 00:10:59,900 能夠幫助實現這個 路過的功能 219 00:10:59,900 --> 00:11:05,010 PHP文件之間的信息 在我們現有的Web服務器上。 220 00:11:05,010 --> 00:11:07,760 >> 其中的第一個超級 全局變量被稱為$ _GET。 221 00:11:07,760 --> 00:11:10,140 而且它可能是 最簡單的理​​解。 222 00:11:10,140 --> 00:11:12,430 與$ _GET,會發生什麼? 223 00:11:12,430 --> 00:11:16,240 好了,基本上,用戶 要輸入額外的信息 224 00:11:16,240 --> 00:11:18,390 在我們的URL的結尾。 225 00:11:18,390 --> 00:11:21,460 而無論他們輸入,假設 它的格式以特定的方式 226 00:11:21,460 --> 00:11:25,830 稱為查詢串,這僅僅是 一組鍵值對分離 227 00:11:25,830 --> 00:11:27,810 由&符號。 228 00:11:27,810 --> 00:11:32,362 這些鍵值對會 存儲在$ _GET關聯數組。 229 00:11:32,362 --> 00:11:34,070 而從我們的視頻 PHP語法,我們知道 230 00:11:34,070 --> 00:11:40,080 如何一起工作 關聯數組了。 231 00:11:40,080 --> 00:11:44,090 因此,這裡是一個例子 一些PHP,在那裡也許我 232 00:11:44,090 --> 00:11:50,180 提取所有鍵值對 URL中提供的用戶。 233 00:11:50,180 --> 00:11:51,970 所以,我有我打開PHP的分隔符。 234 00:11:51,970 --> 00:11:53,410 我有一個foreach循環。 235 00:11:53,410 --> 00:11:57,410 我對面的超級迭代 全球陣列稱為$ _GET。 236 00:11:57,410 --> 00:12:00,160 >> 而且我希望能夠參考 兩者的鍵和值。 237 00:12:00,160 --> 00:12:02,410 而我只是將它們打印 出,每一個上明顯 238 00:12:02,410 --> 00:12:03,780 在這裡它自己的段落標記。 239 00:12:03,780 --> 00:12:07,620 我打印了一些HTML 和內插的值 240 00:12:07,620 --> 00:12:12,900 的鍵和值到了語句。 241 00:12:12,900 --> 00:12:16,980 >> 因此,讓我們來看看如何 實際上在我們的IDE工作。 242 00:12:16,980 --> 00:12:18,980 也許這將幫助 說明一點點 243 00:12:18,980 --> 00:12:21,880 什麼GET實際上在做什麼。 244 00:12:21,880 --> 00:12:23,610 所以,我回到我的Web根目錄。 245 00:12:23,610 --> 00:12:25,318 我會放大一 點點向您展示 246 00:12:25,318 --> 00:12:28,620 我有一個稱為文件,get1.php。 247 00:12:28,620 --> 00:12:31,830 >> 因此,讓我們點擊get1.php。 248 00:12:31,830 --> 00:12:36,600 而且我沒有看到任何內容。 249 00:12:36,600 --> 00:12:38,390 這是奇怪的,對不對? 250 00:12:38,390 --> 00:12:39,740 嗯,不是真的實際。 251 00:12:39,740 --> 00:12:42,030 因為我沒有提供 任何在URL中。 252 00:12:42,030 --> 00:12:46,270 我要去get1.php,但我 沒有提供任何鍵值對 253 00:12:46,270 --> 00:12:47,450 作為我的查詢字符串的一部分。 254 00:12:47,450 --> 00:12:50,510 因此,讓我們添加一個查詢字符串 看看這個文件可以做到。 255 00:12:50,510 --> 00:12:53,040 >> 首先查詢字符串您 只需鍵入問號。 256 00:12:53,040 --> 00:13:00,820 那麼也許我會說的名字=道格 - 年= 2015年。 257 00:13:00,820 --> 00:13:02,914 然後,我會按Enter鍵。 258 00:13:02,914 --> 00:13:04,080 現在可以看到發生了什麼。 259 00:13:04,080 --> 00:13:05,480 我仍然在get1.php。 260 00:13:05,480 --> 00:13:08,445 但現在我已經提供 鍵值對,我 261 00:13:08,445 --> 00:13:14,940 打印出來的自己 paragraph--名稱,Doug--年,2015年。 262 00:13:14,940 --> 00:13:17,970 這也正是代碼,我們只是 剛才看到的幻燈片。 263 00:13:17,970 --> 00:13:22,290 >> 如果我想也許再添 鍵值對,與類= CS50。 264 00:13:22,290 --> 00:13:25,325 265 00:13:25,325 --> 00:13:27,580 現在我有另一個關鍵價值 該集團的印刷出對 266 00:13:27,580 --> 00:13:30,025 當我再次重溫URL。 267 00:13:30,025 --> 00:13:31,900 現在,也許這不是 格式化的非常好。 268 00:13:31,900 --> 00:13:33,660 所以,我有另一個版本get.php的。 269 00:13:33,660 --> 00:13:36,350 這是get2.php。 270 00:13:36,350 --> 00:13:39,070 >> 在此差 一個是我的CSS文件, 271 00:13:39,070 --> 00:13:41,690 它格式化東西 多一點很好地適合我。 272 00:13:41,690 --> 00:13:43,940 這也許不是最 美麗的CSS的世界。 273 00:13:43,940 --> 00:13:45,650 但它這樣做的另一種方式。 274 00:13:45,650 --> 00:13:52,840 所以,我仍然可以訪問 使用$ _GET我的變量。 275 00:13:52,840 --> 00:13:56,610 在這種情況下,我只是種 使CSS多一點花哨。 276 00:13:56,610 --> 00:13:58,360 如果我們突然過來 我的IDE一秒鐘, 277 00:13:58,360 --> 00:14:06,870 我會告訴你在我的PHP網站 目錄在這裡,get2.php。 278 00:14:06,870 --> 00:14:10,010 我們將在這裡打開它,一些HTML。 279 00:14:10,010 --> 00:14:13,220 顯然,我鏈接入 CSS文件我在說什麼。 280 00:14:13,220 --> 00:14:14,570 我打開表的標籤。 281 00:14:14,570 --> 00:14:15,970 然後這裡是我的foreach循環。 282 00:14:15,970 --> 00:14:18,450 >> 這裡是什麼我 顯示之前的幻燈片。 283 00:14:18,450 --> 00:14:21,007 唯一不同的是我 有這個鍵和值CSS 284 00:14:21,007 --> 00:14:22,340 造型是我申請到它。 285 00:14:22,340 --> 00:14:25,622 但是,這是我做的,是我 跨$ _GET迭代來獲取所有 286 00:14:25,622 --> 00:14:26,580 的鍵值對。 287 00:14:26,580 --> 00:14:28,890 >> 而我打印出來的表格。 288 00:14:28,890 --> 00:14:33,230 而且,很明顯,我格式化鍵 以一種方式,與 00:14:40,057 因此很明顯,適用於一些 類選擇在我的CSS文件GET.CSS。 290 00:14:40,057 --> 00:14:42,890 而且,很明顯,我打印出 我的價值觀完全不同的方法。 291 00:14:42,890 --> 00:14:45,530 這是相當多的 我們在這裡看到,在這裡 292 00:14:45,530 --> 00:14:47,710 我們的價值觀被印 藍色背景, 293 00:14:47,710 --> 00:14:49,969 與我們的鑰匙被印 黃色背景。 294 00:14:49,969 --> 00:14:52,010 所以這是我應得 這些不同的風格。 295 00:14:52,010 --> 00:14:54,054 因為我使用的是不同的CSS類。 296 00:14:54,054 --> 00:14:55,470 但是,這幾乎是它為GET。 297 00:14:55,470 --> 00:14:58,380 像我剛才提取信息。 298 00:14:58,380 --> 00:15:01,000 在這種情況下,我只是 它打印到屏幕上。 299 00:15:01,000 --> 00:15:04,310 我得到它的URL, 而這正是GET為我們做。 300 00:15:04,310 --> 00:15:06,470 >> 你看到的可能 問題就在這裡,雖然? 301 00:15:06,470 --> 00:15:11,720 為什麼我們也許 不想使用$ _GET? 302 00:15:11,720 --> 00:15:15,440 如果有什麼,也許,我正在此查詢? 303 00:15:15,440 --> 00:15:18,000 --to get3.php,我 沒有在我的IDE。 304 00:15:18,000 --> 00:15:19,640 這只是一個假設性的文件。 305 00:15:19,640 --> 00:15:22,187 但是請注意,在這裡,顯然 通過我的密碼研究。 306 00:15:22,187 --> 00:15:23,770 也許我的密碼是尷尬。 307 00:15:23,770 --> 00:15:28,070 或者,也許我不希望人們 知道我的密碼,正確的。 308 00:15:28,070 --> 00:15:33,140 >> 如果我如果我在使用它傳遞though-- 在$ _ GET方法,會發生什麼情況是, 309 00:15:33,140 --> 00:15:34,970 這將是在URL中。 310 00:15:34,970 --> 00:15:39,890 所以一些惡意用戶可能 能看到我在做什麼。 311 00:15:39,890 --> 00:15:42,040 我可以將它們傳遞 敏感信息。 312 00:15:42,040 --> 00:15:43,310 或者,也許它甚至不是一個惡意用戶。 313 00:15:43,310 --> 00:15:45,790 也許這只是你的朋友誰 站在你的肩膀。 314 00:15:45,790 --> 00:15:47,650 而現在,他們知道密碼 你的Facebook帳戶。 315 00:15:47,650 --> 00:15:49,483 >> 也許他們不會 用它做任何事情。 316 00:15:49,483 --> 00:15:53,749 但是,如果你的密碼是 通過$ _GET向Facebook提交, 317 00:15:53,749 --> 00:15:55,290 現在他們知道你的Facebook密碼。 318 00:15:55,290 --> 00:15:59,000 因為它是正確的,在該網址 當你完成提交信息。 319 00:15:59,000 --> 00:16:01,887 >> 所以,也許這是不是最好的 的方式來傳遞敏感信息。 320 00:16:01,887 --> 00:16:04,470 這是傳遞信息的好方法 我們不特別 321 00:16:04,470 --> 00:16:05,886 在乎的是過於敏感。 322 00:16:05,886 --> 00:16:09,347 因為GET是蠻快的, 相對於其它超級全局 323 00:16:09,347 --> 00:16:10,430 我們要談論的話題。 324 00:16:10,430 --> 00:16:13,330 但也許不是最好的工具 敏感信息。 325 00:16:13,330 --> 00:16:15,990 >> 為此,我們可能要 使用一種叫做$ _ POST, 326 00:16:15,990 --> 00:16:18,560 這是另一種超級全局變量。 327 00:16:18,560 --> 00:16:20,750 它的另一個關聯數組。 328 00:16:20,750 --> 00:16:23,240 因此,它的工作原理非常 完全一樣的GET。 329 00:16:23,240 --> 00:16:26,850 除,而不是提取 從URL信息, 330 00:16:26,850 --> 00:16:29,870 它通過HTTP標頭的東西。 331 00:16:29,870 --> 00:16:32,080 因此,從回顧我們 視頻HTTP,我們聊 332 00:16:32,080 --> 00:16:34,850 有關如何瀏覽器,服務器, 與客戶溝通。 333 00:16:34,850 --> 00:16:38,070 而信息傳遞回 來回的HTTP標頭。 334 00:16:38,070 --> 00:16:43,330 >> 隨著$ _ POST,信息通常是 通過這些HTTP頭發送。 335 00:16:43,330 --> 00:16:49,770 我們將最常用看到$ _ POST在 提交的HTML形式的情況下。 336 00:16:49,770 --> 00:16:52,390 您仍然可以使用HTML表單 提交事情就搞定了。 337 00:16:52,390 --> 00:16:56,120 但是,它們通常使用 在開機自檢的範圍內。 338 00:16:56,120 --> 00:17:00,280 >> 因此,這裡的HTML表單的例子。 339 00:17:00,280 --> 00:17:06,750 現在,我們已經見過這些,但我們有 沒有看到這部分,行動=“post.php中”。 340 00:17:06,750 --> 00:17:10,756 因此,當我們談到的形式在 HTML的背景下,我有一個提交按鈕。 341 00:17:10,756 --> 00:17:13,630 如果你還記得,我會點擊提交 然後頁面只是刷新, 342 00:17:13,630 --> 00:17:14,660 什麼也沒做。 343 00:17:14,660 --> 00:17:18,250 >> 在這種情況下,我提交 無論我請在這種形式下, 344 00:17:18,250 --> 00:17:20,750 名為post.php中的PHP文件。 345 00:17:20,750 --> 00:17:25,810 而且,很明顯,該辦法,我這樣做, 在這種形式使用POST方法。 346 00:17:25,810 --> 00:17:29,040 所以每一條信息 我鍵入此表 347 00:17:29,040 --> 00:17:31,470 將提交 通過HTTP標頭。 348 00:17:31,470 --> 00:17:36,440 >> 這將是在post.php中訪問, 因為這是我的窗體的動作。 349 00:17:36,440 --> 00:17:39,811 這將是可訪問的 通過將$ _ POST。 350 00:17:39,811 --> 00:17:42,310 而且很顯然,這樣,我就可以 獲得在每個單獨的元素 351 00:17:42,310 --> 00:17:44,765 與該關聯數組 與這個屬性, 352 00:17:44,765 --> 00:17:48,130 我們的輸入標籤的名稱屬性。 353 00:17:48,130 --> 00:17:53,540 >> 因此很明顯,我可以說,$ _ POST方 括號中的名字讓任何用戶 354 00:17:53,540 --> 00:17:55,440 輸入的第一個字段。 355 00:17:55,440 --> 00:18:01,030 而$ _ POST密碼,偽線相當, 得到在任何用戶輸入 356 00:18:01,030 --> 00:18:03,650 在第二個字段。 357 00:18:03,650 --> 00:18:06,414 >> 因此,讓我們一起來看看 這種過度的CS50 IDE。 358 00:18:06,414 --> 00:18:08,330 所以我們在這裡,我會 放大一秒鐘。 359 00:18:08,330 --> 00:18:12,380 我們有一個叫做post.html文件。 360 00:18:12,380 --> 00:18:13,690 我點擊post.html。 361 00:18:13,690 --> 00:18:16,300 在最高層在這裡我有 一個非常簡單的Web表單。 362 00:18:16,300 --> 00:18:18,750 這是我們剛才看到的形式 在幻燈片上一秒鐘前。 363 00:18:18,750 --> 00:18:25,610 >> 我可以打字,道格,我可以 輸入我的密碼,我們都 364 00:18:25,610 --> 00:18:27,340 知道squadgoals。 365 00:18:27,340 --> 00:18:30,100 我會點擊提交。 366 00:18:30,100 --> 00:18:32,290 而且很顯然,這 提交到post.php中。 367 00:18:32,290 --> 00:18:33,810 而我顯然是打印的。 368 00:18:33,810 --> 00:18:36,490 所以我擺脫所有的安全性 這個職位給我,只需打印出 369 00:18:36,490 --> 00:18:37,720 的用戶名和密碼。 370 00:18:37,720 --> 00:18:38,960 >> 用戶的名字是道格。 371 00:18:38,960 --> 00:18:40,810 用戶的密碼是squadgoals。 372 00:18:40,810 --> 00:18:42,480 我是如何做到這一點? 373 00:18:42,480 --> 00:18:44,800 好吧,流行過來的IDE 再一秒鐘。 374 00:18:44,800 --> 00:18:51,340 我們將向下滾動拿 看看post.php中,這是 375 00:18:51,340 --> 00:18:54,040 我用行動來這裡提交。 376 00:18:54,040 --> 00:18:55,739 那是我的HTML表單的動作。 377 00:18:55,739 --> 00:18:56,780 而這一切,我在幹什麼。 378 00:18:56,780 --> 00:19:01,370 用戶的名字是什麼,我就是印刷 出$ _ POST“名”的內容。 379 00:19:01,370 --> 00:19:04,660 然後將用戶的密碼 為$ _ POST“密碼”。 380 00:19:04,660 --> 00:19:08,920 所以我得到的信息 通過提交HTML表單。 381 00:19:08,920 --> 00:19:13,790 我可以用$ _ POST現在提取它 因為我用來傳輸方法 382 00:19:13,790 --> 00:19:17,470 與表單數據是POST方法。 383 00:19:17,470 --> 00:19:20,640 >> 現在,它可能不是 所以great--我要去 384 00:19:20,640 --> 00:19:24,510 回去一秒鐘 我們設定這裡 - 385 00:19:24,510 --> 00:19:30,120 它可能沒有那麼大,如果我 與POST提交信息, 386 00:19:30,120 --> 00:19:32,532 這是表面上更安全。 387 00:19:32,532 --> 00:19:34,740 它可能不是那麼大 如果我這樣做,然後 388 00:19:34,740 --> 00:19:36,470 打印出該用戶的口令。 389 00:19:36,470 --> 00:19:38,540 這應該是更安全的。 390 00:19:38,540 --> 00:19:40,870 >> OK,但它不是完全安全的。 391 00:19:40,870 --> 00:19:42,910 所以在這一點 片段在這裡我想 392 00:19:42,910 --> 00:19:46,410 只是請你注意一些 數據安全問題,只是一些 393 00:19:46,410 --> 00:19:51,200 想想,你是 工作或使用互聯網。 394 00:19:51,200 --> 00:19:53,890 這僅僅是要考慮的事情。 395 00:19:53,890 --> 00:19:57,980 >> 我告訴你信息 通過HTTP頭提交 396 00:19:57,980 --> 00:19:59,724 當您使用POST方法。 397 00:19:59,724 --> 00:20:01,390 這意味著他們並不是完全安全的。 398 00:20:01,390 --> 00:20:05,610 他們很難找到比 使用GET方法,其中 399 00:20:05,610 --> 00:20:06,882 它只是在正確的URL。 400 00:20:06,882 --> 00:20:08,340 不過,還是有辦法找到它。 401 00:20:08,340 --> 00:20:10,423 而我只是想展示 你這一點,你也許 402 00:20:10,423 --> 00:20:12,940 開始思考這個問題 為你工作,或者使用 403 00:20:12,940 --> 00:20:14,560 網站和提交 密碼,也許使用 404 00:20:14,560 --> 00:20:16,518 在一個相同的密碼 很多不同的地方。 405 00:20:16,518 --> 00:20:22,060 要知道,是還是實際上相當 不難看出別人的密碼。 406 00:20:22,060 --> 00:20:25,190 >> 所以在這裡,我要去 去post2.html。 407 00:20:25,190 --> 00:20:28,850 而隨著post2.html的區別 和post2.php是相當微妙的。 408 00:20:28,850 --> 00:20:31,420 所不同的是只 我不打印出來 409 00:20:31,420 --> 00:20:33,520 密碼,當我提交表單。 410 00:20:33,520 --> 00:20:35,260 >> 所以,我要鍵入,道格。 411 00:20:35,260 --> 00:20:38,365 而且我會打字 在,squadgoals,甚至 412 00:20:38,365 --> 00:20:40,770 儘管我們知道這就是密碼。 413 00:20:40,770 --> 00:20:42,540 在我提交 形式,雖然,我要去 414 00:20:42,540 --> 00:20:45,864 開拓開發工具,只是 告訴你什麼會發生在這裡。 415 00:20:45,864 --> 00:20:47,530 因此,在Chrome瀏覽器,我只是打F12。 416 00:20:47,530 --> 00:20:54,120 417 00:20:54,120 --> 00:20:57,230 這是怎麼回事打開我的 開發工具的右手邊。 418 00:20:57,230 --> 00:20:59,480 我還沒有提交表單呢。 419 00:20:59,480 --> 00:21:02,680 現在,我要揍提交關於我的形式。 420 00:21:02,680 --> 00:21:05,370 而且很顯然,我做了一個 打電話,或我提出的要求 421 00:21:05,370 --> 00:21:07,620 到post2.php,這是有道理的。 422 00:21:07,620 --> 00:21:10,040 我要點擊的。 423 00:21:10,040 --> 00:21:13,802 >> 那麼在這裡,我要去 點擊標題。 424 00:21:13,802 --> 00:21:15,410 有很多東西會在這裡的。 425 00:21:15,410 --> 00:21:21,310 但是,如果我向下滾動到非常 底部,權通知那裡 - 我的日曆 426 00:21:21,310 --> 00:21:25,180 已阻止它的second--權 在最底層角落裡, 427 00:21:25,180 --> 00:21:27,386 name--道格,pw-- squadgoals。 428 00:21:27,386 --> 00:21:30,010 所以,即使我使用POST 方法,這是更安全的, 429 00:21:30,010 --> 00:21:33,570 要知道,當你這樣做的話, 你還在傳遞信息 430 00:21:33,570 --> 00:21:34,430 通過HTTP。 431 00:21:34,430 --> 00:21:36,770 而且它仍然可以 被對手發現。 432 00:21:36,770 --> 00:21:39,270 這只是一些我們要 有應付真的。 433 00:21:39,270 --> 00:21:41,980 也許有一些方法來加密我們 密碼之前,我們寄過去, 434 00:21:41,980 --> 00:21:44,410 這將是一個更好的, 而我不是在這裡做。 435 00:21:44,410 --> 00:21:47,010 >> 但要知道,在POST 方法有其局限性太大。 436 00:21:47,010 --> 00:21:49,801 這是在改進GET 術語是立即可見。 437 00:21:49,801 --> 00:21:51,280 但它不是一個完整的修補程序。 438 00:21:51,280 --> 00:21:53,280 所以這裡有一個例子 一個快速的在家裡鍛煉 439 00:21:53,280 --> 00:21:56,350 你可以用它來得到一些 練習用PHP工作。 440 00:21:56,350 --> 00:21:58,300 創建以下對網頁。 441 00:21:58,300 --> 00:22:00,960 首先應該只是一個很簡單的 形成具有單一字段和提交 442 00:22:00,960 --> 00:22:01,460 按鈕。 443 00:22:01,460 --> 00:22:04,070 所以非常類似於我們 只是做與post.html。 444 00:22:04,070 --> 00:22:07,450 >> 然後第二 文件,你應該創建 445 00:22:07,450 --> 00:22:11,687 是一個文件,一個PHP文件時, 通過POST期待的輸入, 446 00:22:11,687 --> 00:22:14,770 和基於什麼用戶輸入,其 可以假定為一個整數。 447 00:22:14,770 --> 00:22:16,160 你不必做任何 錯誤檢查或類似物。 448 00:22:16,160 --> 00:22:18,284 你可以假設用戶 將鍵入一個整數值, 449 00:22:18,284 --> 00:22:22,230 或者類似的解釋的 PHP作為一個整數,到​​該形式。 450 00:22:22,230 --> 00:22:24,790 你只是想創建一個 由N乘法表。 451 00:22:24,790 --> 00:22:28,480 >> 因此,如果用戶提交10,我們希望 有10×10乘法表。 452 00:22:28,480 --> 00:22:31,832 如果用戶提交一個12,我們希望 12 12乘法表。 453 00:22:31,832 --> 00:22:33,790 只是讓你可以看到什麼 我們驅車在這裡, 454 00:22:33,790 --> 00:22:36,040 我們就來看看 這個文件在我的IDE。 455 00:22:36,040 --> 00:22:38,080 >> 所以在這裡的IDE,我有mult_form.html。 456 00:22:38,080 --> 00:22:41,370 457 00:22:41,370 --> 00:22:43,100 我會點擊它。 458 00:22:43,100 --> 00:22:46,020 所有我想要做的就是提交的值。 459 00:22:46,020 --> 00:22:47,590 在10個類型,點擊提交。 460 00:22:47,590 --> 00:22:51,190 而顯然,mult_table.php,這 我們可以在頂部在URL看到有, 461 00:22:51,190 --> 00:22:53,970 我是一個10×10創造 乘法表。 462 00:22:53,970 --> 00:22:59,365 >> 如果我輸入15,並點擊提交,現在我 有15 15乘法表。 463 00:22:59,365 --> 00:23:02,240 林,當然不會顯示 你mult_table.php的內容, 464 00:23:02,240 --> 00:23:04,781 因為,將採取的樂趣 出了這家練習。 465 00:23:04,781 --> 00:23:07,480 但是,這是一個偉大的方式來得到一些 練習用PHP循環工作 466 00:23:07,480 --> 00:23:10,889 與POST方法很簡單,希望 強調自由的例子,只是 467 00:23:10,889 --> 00:23:12,180 做練習一點點。 468 00:23:12,180 --> 00:23:16,540 我也有一個小的CSS怎麼回事 在這裡,使我的個人的表 469 00:23:16,540 --> 00:23:19,710 只是種細胞突然掀起了 點點,看起來多了幾分 470 00:23:19,710 --> 00:23:22,205 像乘法表, 而不僅僅是文字只 471 00:23:22,205 --> 00:23:23,261 樣的坐在那裡。 472 00:23:23,261 --> 00:23:26,260 最後一個超級全局,我們來談談 在這段視頻中被稱為什麼 473 00:23:26,260 --> 00:23:27,597 $ _SESSION。 474 00:23:27,597 --> 00:23:29,930 也許這實際上是 某事的最佳典範 475 00:23:29,930 --> 00:23:31,700 我們會考慮全球性的。 476 00:23:31,700 --> 00:23:33,189 這是另一個數組。 477 00:23:33,189 --> 00:23:34,480 它的另一個關聯數組。 478 00:23:34,480 --> 00:23:40,580 但它是通過每一個訪問 存在我們的系統上的PHP文件。 479 00:23:40,580 --> 00:23:43,410 >> 我們沒有提出 信息一頁的時間 480 00:23:43,410 --> 00:23:45,400 像我們做的GET和POST用。 481 00:23:45,400 --> 00:23:46,380 它總是在那裡。 482 00:23:46,380 --> 00:23:50,040 所以,這是偉大的一頁 你在哪裡登錄,例如, 483 00:23:50,040 --> 00:23:53,120 你希望你的登錄信息 從頁面到堅持到一頁一頁。 484 00:23:53,120 --> 00:23:58,180 >> 你可以只啟動一個會話,然後 使用$ _SESSION保存之類的東西 485 00:23:58,180 --> 00:24:02,320 的用戶的名稱,或者用戶的 ID信息,等等。 486 00:24:02,320 --> 00:24:07,600 並且,該信息會保留在 $ _SESSION,直到你摧毀了會議 487 00:24:07,600 --> 00:24:09,550 一點點以後。 488 00:24:09,550 --> 00:24:12,375 >> 寫作與動態網站 PHP使他們好多了。 489 00:24:12,375 --> 00:24:14,250 你的網站變得很 動態的,而你不知道 490 00:24:14,250 --> 00:24:17,670 所要做的比得更多的是什麼 否則你會做只是 491 00:24:17,670 --> 00:24:18,920 與HTML這樣做。 492 00:24:18,920 --> 00:24:21,630 但它需要實踐, 大量的實踐。 493 00:24:21,630 --> 00:24:26,897 >> 你已經知道如何用C工作, 所以跳躍到PHP是不是太靠譜。 494 00:24:26,897 --> 00:24:28,730 什麼是也許有點 有些棘手的工作 495 00:24:28,730 --> 00:24:33,180 用GET和POST的新思路, 也許混合HTML和你的PHP 496 00:24:33,180 --> 00:24:34,220 在一起。 497 00:24:34,220 --> 00:24:37,570 但也意識到,互聯網 是信息的一個巨大的資源庫。 498 00:24:37,570 --> 00:24:41,670 和PHP的文檔可 在很多地方,但也許是最 499 00:24:41,670 --> 00:24:43,354 標準地在php.net。 500 00:24:43,354 --> 00:24:45,520 你可以找到在那裡, 很多不同的功能, 501 00:24:45,520 --> 00:24:48,330 並使用的情況下,和實施例 當例子,在例子。 502 00:24:48,330 --> 00:24:51,340 在那裡,如果你想嘗試和數字 如何做一些事情,賠率是, 503 00:24:51,340 --> 00:24:52,964 之前,有人可能是做到了。 504 00:24:52,964 --> 00:24:55,840 你可以用它們作為 靈感來實現什麼 505 00:24:55,840 --> 00:24:58,230 這是你要實現了。 506 00:24:58,230 --> 00:24:59,230 >> 我是道格·勞埃德。 507 00:24:59,230 --> 00:25:01,210 這是CS50。 508 00:25:01,210 --> 00:25:02,608