1 00:00:00,000 --> 00:00:04,410 >> [音樂播放] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> 揚聲器1:這是CS50和 這是七週的端部。 4 00:00:15,770 --> 00:00:20,240 今天也許是我們 真的教你的語言。 5 00:00:20,240 --> 00:00:24,100 我們在過去的介紹 週HTML和CSS,這兩者都不 6 00:00:24,100 --> 00:00:25,240 是編程語言。 7 00:00:25,240 --> 00:00:28,600 事實上,即使我們沒有 看幾乎所有的標籤 8 00:00:28,600 --> 00:00:33,410 該HTML配備了幾乎所有的 該CSS自帶的性能, 9 00:00:33,410 --> 00:00:35,007 這是一種它的HTML和CSS。 10 00:00:35,007 --> 00:00:36,840 我們只是一般 開始假設你 11 00:00:36,840 --> 00:00:39,545 了解總體思路 的標籤和屬性, 12 00:00:39,545 --> 00:00:41,850 和發送頁面 從客戶端到服務器。 13 00:00:41,850 --> 00:00:45,280 >> 因為今天我們先來看看 另一種編程語言,PHP。 14 00:00:45,280 --> 00:00:47,110 我們要做這個超級快。 15 00:00:47,110 --> 00:00:50,910 我們不是要教你的PHP本身, 就像我們不嚮往來教你 16 00:00:50,910 --> 00:00:52,670 C,本身,而是編程。 17 00:00:52,670 --> 00:00:55,088 事實上,之一 本課程的目標 18 00:00:55,088 --> 00:00:57,820 是不是要教你C, 或HTML,或CSS或PHP, 19 00:00:57,820 --> 00:01:00,370 或任何數目的其他的 時髦的詞或縮寫, 20 00:01:00,370 --> 00:01:03,097 而計算機科學 如何從根本上編程。 21 00:01:03,097 --> 00:01:05,930 事實上,今天我們開始採取 這些培訓輪子掉所有的 22 00:01:05,930 --> 00:01:10,600 進一步通過一個飛 語言叫做PHP,如下所示。 23 00:01:10,600 --> 00:01:13,640 >> 以下是這門語言的樣子。 24 00:01:13,640 --> 00:01:17,790 事實證明,沒有必要對 程序中的主要功能寫 25 00:01:17,790 --> 00:01:19,470 在一個叫做PHP語言。 26 00:01:19,470 --> 00:01:22,585 所以這已經聽起來有點簡單 比C,與我們熟悉。 27 00:01:22,585 --> 00:01:25,370 事實證明,如果你 要聲明一個變量, 28 00:01:25,370 --> 00:01:29,470 你做了幾乎相同C.但 有明顯的一個區別在這裡 29 00:01:29,470 --> 00:01:31,850 當我宣布一個字符串, 或者兩個的差異。 30 00:01:31,850 --> 00:01:32,725 什麼樣子有什麼不同? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> 聽眾:美元符號。 33 00:01:37,160 --> 00:01:39,951 >> 揚聲器1:是的,有美元 簽署,這是我們從來沒有見過的。 34 00:01:39,951 --> 00:01:41,451 而缺少什麼? 35 00:01:41,451 --> 00:01:41,950 是嗎? 36 00:01:41,950 --> 00:01:42,820 >> 聽眾:[聽不清] 37 00:01:42,820 --> 00:01:44,403 >> 揚聲器1:是啊,有沒有數據類型。 38 00:01:44,403 --> 00:01:48,410 所以,事實證明,PHP是我們 調用一個鬆散類型的語言,在這裡 39 00:01:48,410 --> 00:01:49,959 C的強類型。 40 00:01:49,959 --> 00:01:52,500 弱類型只是意味著 有不同的數據類型, 41 00:01:52,500 --> 00:01:54,470 有字符串,整數和浮點數。 42 00:01:54,470 --> 00:01:56,330 但是,計算機的數字表示出來。 43 00:01:56,330 --> 00:01:58,664 您人類程序員 沒有弄明白。 44 00:01:58,664 --> 00:02:00,580 因此,所有你需要做的 聲明一個變量 45 00:02:00,580 --> 00:02:03,220 美元符號,名稱您 變量,然後,例如, 46 00:02:03,220 --> 00:02:04,760 報價引文結束,世界你好。 47 00:02:04,760 --> 00:02:07,662 >> 嗯,這是什麼 情況看起來像在PHP。 48 00:02:07,662 --> 00:02:08,328 任何差異? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 第 51 00:02:11,150 --> 00:02:12,540 因此,原來這些是相同的。 52 00:02:12,540 --> 00:02:14,665 你可能有少 分支機構或多個分支, 53 00:02:14,665 --> 00:02:16,557 但是語法匝 出完全一樣。 54 00:02:16,557 --> 00:02:18,390 布爾表達式可以 一起訂購。 55 00:02:18,390 --> 00:02:20,400 布爾表達式 可相與在一起。 56 00:02:20,400 --> 00:02:21,430 你還有開關。 57 00:02:21,430 --> 00:02:23,790 即使您沒有使用 這些,這些確實存在用C 58 00:02:23,790 --> 00:02:26,020 而且他們在功能 相當於在PHP。 59 00:02:26,020 --> 00:02:28,260 >> 而事實上,在PHP他們 更厲害一點。 60 00:02:28,260 --> 00:02:32,540 在C語言中,你只能比較特定的 像整數和字符數據類型, 61 00:02:32,540 --> 00:02:36,320 而在PHP中,你可以實際的比較 全功能完善的字符串,而無需 62 00:02:36,320 --> 00:02:38,460 擔心指針等。 63 00:02:38,460 --> 00:02:39,430 所以這裡有一個for循環。 64 00:02:39,430 --> 00:02:41,270 這僅僅是偽 代碼,如果你願意。 65 00:02:41,270 --> 00:02:43,400 但在結構上是相同的C. 66 00:02:43,400 --> 00:02:47,520 >> 這裡有一個while循環,偽 therefore--相同C. 67 00:02:47,520 --> 00:02:49,390 這裡有一個做,而loop--相同。 68 00:02:49,390 --> 00:02:51,390 所以有一種 這種模式在這裡,由此 69 00:02:51,390 --> 00:02:54,400 還有一些其他的語法 特點我們確實要看到。 70 00:02:54,400 --> 00:02:57,340 事實上,這裡是一個很好的 在PHP藉此方式, 71 00:02:57,340 --> 00:02:59,350 如果你想要遍歷 一個數組,你 72 00:02:59,350 --> 00:03:02,309 不希望跳躍通過 有心理和語法箍 73 00:03:02,309 --> 00:03:05,178 INT I等於0,我少 小於n,我加plus--這 74 00:03:05,178 --> 00:03:07,040 只是很多煩人的語法。 75 00:03:07,040 --> 00:03:10,654 你可以說多一點 流暢每個號碼 76 00:03:10,654 --> 00:03:13,320 作為數字,其中在這種情況下, 美元符號的數字,我假設, 77 00:03:13,320 --> 00:03:15,400 就像是一個數組被叫號碼。 78 00:03:15,400 --> 00:03:18,810 然後,我假設數, 奇異的,將是一個變量。 79 00:03:18,810 --> 00:03:22,940 >> 什麼PHP會為我做,因為我遍歷 移到該循環是,在每次迭代中, 80 00:03:22,940 --> 00:03:28,450 它會更新變量數 在數字的第i個元素,複數。 81 00:03:28,450 --> 00:03:30,060 所以它只是處理了這一切對我來說。 82 00:03:30,060 --> 00:03:32,750 沒有方括號,無 美元符號,沒有分號。 83 00:03:32,750 --> 00:03:34,117 這只是一個簡單一點。 84 00:03:34,117 --> 00:03:35,950 好吧,如果你想要一個 陣列,原來你 85 00:03:35,950 --> 00:03:38,908 可以做一些非常相似 C.語法是有點不同。 86 00:03:38,908 --> 00:03:41,000 但在這裡就是所謂的數組 美元符號數。 87 00:03:41,000 --> 00:03:44,261 而且我用的,在PHP中,方 括號,事實證明。 88 00:03:44,261 --> 00:03:47,260 而且我們將再次看到這些 在JavaScript--又一語言。 89 00:03:47,260 --> 00:03:49,968 我只是用方括號 有一個逗號分隔的列表 90 00:03:49,968 --> 00:03:51,530 的整數,在這種情況下。 91 00:03:51,530 --> 00:03:53,010 但是,這給了我一個陣列。 92 00:03:53,010 --> 00:03:56,270 >> 但是,即使在PHP更加強大, 我們也有一般有哪些 93 00:03:56,270 --> 00:03:57,640 所謂的關聯數組。 94 00:03:57,640 --> 00:03:59,540 和很多語言 有這些為好。 95 00:03:59,540 --> 00:04:03,810 關於C數組的事情 是,索引 96 00:04:03,810 --> 00:04:06,940 一個數組,東西你 在方括號中使用,通過該 97 00:04:06,940 --> 00:04:08,600 您訪問的元素,一定是什麼呢? 98 00:04:08,600 --> 00:04:10,620 >> 聽眾:[聽不清] 99 00:04:10,620 --> 00:04:14,220 >> 揚聲器1:他們必須是數字或 整數,特別是從零就到了。 100 00:04:14,220 --> 00:04:17,140 那麼,在PHP和,事實證明 出,在其他語言中, 101 00:04:17,140 --> 00:04:20,820 你可以開始有 索引是不是數字。 102 00:04:20,820 --> 00:04:23,880 但他們實際上是詞或 短語,使得而非 103 00:04:23,880 --> 00:04:27,070 盡量記住一些東西 是,或者存儲在變量i, 104 00:04:27,070 --> 00:04:31,720 你其實可以用一句話說 that--你能說這樣的話。 105 00:04:31,720 --> 00:04:34,730 >> 因此,美元符號報價是 變量這裡命名。 106 00:04:34,730 --> 00:04:39,360 這是一個有點時髦的語法 這是相關聯的兩個關鍵值 107 00:04:39,360 --> 00:04:41,250 對這個變量。 108 00:04:41,250 --> 00:04:45,490 具體而言,這是給我 一個數組的長度為2。 109 00:04:45,490 --> 00:04:47,660 但索引不是0和1。 110 00:04:47,660 --> 00:04:51,250 該指標是報價引文結束 符號和報價引文結束的價格。 111 00:04:51,250 --> 00:04:55,990 而這些指標的值, 分別是FB對於Facebook 112 00:04:55,990 --> 00:05:00,360 和$ 79.53,當我最後 查了代價。 113 00:05:00,360 --> 00:05:01,210 >> 這是什麼意思? 114 00:05:01,210 --> 00:05:04,136 嗯,這意味著, 而不是編寫代碼 115 00:05:04,136 --> 00:05:09,612 這樣,在這裡我用來做什麼 像美元sign--或者更確切地說,在C 116 00:05:09,612 --> 00:05:11,070 我甚至不會有一個美元符號。 117 00:05:11,070 --> 00:05:13,490 我會做一些 比如單引號,然後 118 00:05:13,490 --> 00:05:18,410 我會做支架我得到一些 任意數字索引值。 119 00:05:18,410 --> 00:05:21,430 從今天開始在PHP中,如果你 想獲得一些價值, 120 00:05:21,430 --> 00:05:24,742 樣的,我們有更多的 語義表現力。 121 00:05:24,742 --> 00:05:27,450 的說法只是一個奇特的方式,我們可以 只需要調用的東西是什麼。 122 00:05:27,450 --> 00:05:29,800 >> 如果你想獲得 在一些符號, 123 00:05:29,800 --> 00:05:32,180 現在你從字面上做 引用引文結束符號 124 00:05:32,180 --> 00:05:34,910 在方括號 這不只是數。 125 00:05:34,910 --> 00:05:36,450 所以這是一個很好的便利。 126 00:05:36,450 --> 00:05:38,140 這就是那種現在它。 127 00:05:38,140 --> 00:05:40,240 有一束束 在PHP中的其他功能。 128 00:05:40,240 --> 00:05:43,180 事實上,PHP中有 眾所周知的廚房水槽。 129 00:05:43,180 --> 00:05:48,640 幾十,幾百的功能配備 PHP--這麼多的超過帶著C. 130 00:05:48,640 --> 00:05:51,360 >> 而這還不打算 壓倒而是幫助 131 00:05:51,360 --> 00:05:53,900 你知道,我們沒有 不再需要編寫代碼 132 00:05:53,900 --> 00:05:55,590 這是那種到這裡概念。 133 00:05:55,590 --> 00:05:58,465 現在我們可以開始利用 遠更先進的功能 134 00:05:58,465 --> 00:05:59,920 像PHP語言都有。 135 00:05:59,920 --> 00:06:02,630 所以我們不必擔心 在內存中移動周圍的事物。 136 00:06:02,630 --> 00:06:05,338 我們不擔心的malloc 而所有這些較低的水平, 137 00:06:05,338 --> 00:06:09,390 強大的細節,你會摔跤 有,如果不與,pset5鬥爭, 138 00:06:09,390 --> 00:06:13,380 但你可以開始 很快理所當然的。 139 00:06:13,380 --> 00:06:17,770 >> 事實上,讓我們寫一個超級 在PHP中簡單的程序,如下所示。 140 00:06:17,770 --> 00:06:21,550 我要去的頭到CS50 IDE在這裡,我要怎麼做 141 00:06:21,550 --> 00:06:29,370 是創建一個新的文件,這很簡單 將被稱為你好點PHP。 142 00:06:29,370 --> 00:06:31,860 因此,而不是C點,它的 將被稱為點的PHP。 143 00:06:31,860 --> 00:06:34,260 然後在這個文件中, 我可以開始輸入。 144 00:06:34,260 --> 00:06:36,960 但事實是, 有一件事我必須知道 145 00:06:36,960 --> 00:06:41,470 是,一般而言,任何PHP文件,需要 開始與一些特殊的語法。 146 00:06:41,470 --> 00:06:44,570 類似的精神,HTML,但同樣, PHP是一種編程語言,而不是 147 00:06:44,570 --> 00:06:45,590 的標記語言。 148 00:06:45,590 --> 00:06:48,700 >> 因此,每一個文件,它的排序 愚蠢的樣子,我得承認。 149 00:06:48,700 --> 00:06:50,480 打開支架,問號,PHP。 150 00:06:50,480 --> 00:06:53,060 而這僅僅是 說法語的方式, 151 00:06:53,060 --> 00:06:58,400 哎,計算機這裡來一些代碼 寫在一個叫做PHP語言。 152 00:06:58,400 --> 00:07:01,900 然後在文件的最後, 你做種排序相反的。 153 00:07:01,900 --> 00:07:04,860 你不寫一遍PHP,你只 做問號,尖括號。 154 00:07:04,860 --> 00:07:08,500 然後,任何你把裡面的 這兩個標籤,可以這麼說, 155 00:07:08,500 --> 00:07:11,490 將,或者應該是,PHP代碼。 156 00:07:11,490 --> 00:07:13,180 >> 因此,讓我們做一些超級簡單。 157 00:07:13,180 --> 00:07:19,370 我要繼續前進,做打印 閃避,世界你好,反斜杠N,保存。 158 00:07:19,370 --> 00:07:27,310 而現在,在我的提示下,我要去 這樣做,使hello--不,我要做的事情, 159 00:07:27,310 --> 00:07:28,726 點斜線打招呼。 160 00:07:28,726 --> 00:07:31,250 不,點斜線,HM。 161 00:07:31,250 --> 00:07:32,990 因此就不同了。 162 00:07:32,990 --> 00:07:36,920 事實上,這是一個關鍵的區別 PHP和語言如C C的差別 163 00:07:36,920 --> 00:07:38,730 是所謂的編譯型語言。 164 00:07:38,730 --> 00:07:40,929 這是什麼意思對C進行編譯? 165 00:07:40,929 --> 00:07:41,970 是什麼寓意? 166 00:07:41,970 --> 00:07:42,898 是啊。 167 00:07:42,898 --> 00:07:45,220 >> 聽眾:把它寫進機器代碼 因此它可以由計算機來運行。 168 00:07:45,220 --> 00:07:46,011 >> 揚聲器1:沒錯。 169 00:07:46,011 --> 00:07:49,075 我們必須首先把它轉換成 所謂機器代碼,0和1 170 00:07:49,075 --> 00:07:51,950 之前,它實際上是可執行 和理解由計算機。 171 00:07:51,950 --> 00:07:52,840 英特爾內部。 172 00:07:52,840 --> 00:07:54,530 由計算機內部的CPU。 173 00:07:54,530 --> 00:07:58,170 PHP,相反,是所謂 一種解釋型語言,這 174 00:07:58,170 --> 00:08:02,230 意味著你沒有編譯 成零和一,機器碼 175 00:08:02,230 --> 00:08:04,360 你,而不是把它作為源代碼。 176 00:08:04,360 --> 00:08:08,130 而你,而不是把它作為輸入 一個程序,一個解釋 177 00:08:08,130 --> 00:08:11,960 別人寫的 年前能理解它 178 00:08:11,960 --> 00:08:14,310 一行行,一個字符一個字符。 179 00:08:14,310 --> 00:08:16,120 因此,換句話說, 人類在那裡寫了 180 00:08:16,120 --> 00:08:19,670 一個程序,將看 在一行代碼行, 181 00:08:19,670 --> 00:08:21,680 並找出什麼 電腦應該做的, 182 00:08:21,680 --> 00:08:25,960 不轉換 直接向零和一。 183 00:08:25,960 --> 00:08:28,370 >> 如果它看到一個for循環因此, 這個所謂的解釋器 184 00:08:28,370 --> 00:08:30,630 將是一樣,沒事的,我應該 一遍又一遍,再做些什麼。 185 00:08:30,630 --> 00:08:31,150 我該怎麼辦? 186 00:08:31,150 --> 00:08:32,159 讓我看看下一行。 187 00:08:32,159 --> 00:08:33,367 讓我看看下一行。 188 00:08:33,367 --> 00:08:35,350 它真正的逐行解釋它行。 189 00:08:35,350 --> 00:08:37,220 因此,要執行它,我不使用化妝。 190 00:08:37,220 --> 00:08:39,409 我不使用點斜杠在這種情況下。 191 00:08:39,409 --> 00:08:43,530 我不是做PHP的,這是 的一個程序,也稱為名稱 192 00:08:43,530 --> 00:08:46,562 一個解釋,那就是 預裝CS50 IDE, 193 00:08:46,562 --> 00:08:48,770 現在我需要通過一個 命令行參數,這 194 00:08:48,770 --> 00:08:52,290 是的很簡單的名字 文件我想詮釋。 195 00:08:52,290 --> 00:08:54,740 或者更隨便,我想運行。 196 00:08:54,740 --> 00:08:57,000 如果我敲回車,在那裡,我們有它。 197 00:08:57,000 --> 00:08:57,825 世界,你好。 198 00:08:57,825 --> 00:08:59,950 現在事實證明,我 用過的打印清晰度故意 199 00:08:59,950 --> 00:09:01,600 從C彌合我們的PHP。 200 00:09:01,600 --> 00:09:05,150 大多數PHP程序員,你會看到, 甚至沒有理會使用打印清晰度。 201 00:09:05,150 --> 00:09:08,290 他們只是用一個調用的函數 打印,這Ç沒有。 202 00:09:08,290 --> 00:09:11,390 所以,如果我重新運行,現在,它實際上 行為功能上是相同。 203 00:09:11,390 --> 00:09:13,730 我不能用百分比小號 和百分比i和等等, 204 00:09:13,730 --> 00:09:16,250 但也有其他的方法 在這樣做的PHP。 205 00:09:16,250 --> 00:09:18,100 但是這僅僅是對 說語法, 206 00:09:18,100 --> 00:09:21,850 比一些奇怪的事情了其他 頂部和一些奇怪的字符下降 207 00:09:21,850 --> 00:09:25,960 在底部,該概念現在的 在這個其他語言編程 208 00:09:25,960 --> 00:09:27,860 將要完全相同。 209 00:09:27,860 --> 00:09:30,120 >> 事實上,讓我們做另外一個例子。 210 00:09:30,120 --> 00:09:32,520 所以我要繼續前進 並關閉該文件。 211 00:09:32,520 --> 00:09:37,740 讓我再創建一個 我會打電話給條件1點PHP。 212 00:09:37,740 --> 00:09:40,770 因此,沒有零,因為我做了什麼 是我回頭一看,幾個星期前, 213 00:09:40,770 --> 00:09:43,490 我們有一個名為 條件1點C.什麼 214 00:09:43,490 --> 00:09:47,590 我所做的就是將它轉換我 頭,並在這裡對紙, 215 00:09:47,590 --> 00:09:51,290 並很快在球場上的 網站,一行行到PHP。 216 00:09:51,290 --> 00:09:55,520 >> 所以在C版本中,我們做了一些 像字符串s得到得到的字符串。 217 00:09:55,520 --> 00:09:58,200 所以這是一個有點不同 要做到這一點在PHP。 218 00:09:58,200 --> 00:10:01,390 相反,我只是去 這樣做,或者說,我 219 00:10:01,390 --> 00:10:05,870 可能做INT n得到得到 整型,在前面這個例子。 220 00:10:05,870 --> 00:10:12,600 而不是說那麼,我該怎麼辦ñ 被讀取,行,我想一個整數, 221 00:10:12,600 --> 00:10:13,670 請。 222 00:10:13,670 --> 00:10:15,110 所以,這只是我的提示。 223 00:10:15,110 --> 00:10:17,260 所以,事實證明,以及 我只知道這個 224 00:10:17,260 --> 00:10:20,480 從看過或見過的功能 之前,閱讀功能在PHP線 225 00:10:20,480 --> 00:10:23,810 需要一個參數是一個提示 對於人,其人生目的 226 00:10:23,810 --> 00:10:26,220 是讀一行文本 他或她在類型。 227 00:10:26,220 --> 00:10:29,160 然後將其存儲了 文成變量n。 228 00:10:29,160 --> 00:10:32,200 >> 現在,我可能想要做的事 像我一樣星期前,像週 229 00:10:32,200 --> 00:10:33,290 其中一個班的。 230 00:10:33,290 --> 00:10:36,600 如果n大於 零,那麼,我會 231 00:10:36,600 --> 00:10:42,930 借用剛才我們看到的語法, 打印閃避,你挑一個正數, 232 00:10:42,930 --> 00:10:44,360 反斜線ñ。 233 00:10:44,360 --> 00:10:49,990 否則,如果n等於等於零,我 要繼續前進,並說,打印清晰度, 234 00:10:49,990 --> 00:10:54,090 你選擇了零反斜杠ñ。 235 00:10:54,090 --> 00:10:56,830 否則,這裡的情況應該 當然可以,打印清晰度, 236 00:10:56,830 --> 00:10:58,620 你選擇了一個負數。 237 00:10:58,620 --> 00:11:00,970 >> 我們當然可以實現 這件事情的邏輯 238 00:11:00,970 --> 00:11:03,390 在一堆不同 的方式,但這裡的要點 239 00:11:03,390 --> 00:11:07,210 是語法, 幾乎沒有任何東西是新的。 240 00:11:07,210 --> 00:11:09,830 這只是美元符號和 一個新的功能和讀線。 241 00:11:09,830 --> 00:11:12,090 但是從根本上,有什麼新 現在我解釋這一點。 242 00:11:12,090 --> 00:11:13,910 我把它當作輸入 到其他程序。 243 00:11:13,910 --> 00:11:16,620 所以,如果我想,如果要運行它, 我沒有犯任何錯誤, 244 00:11:16,620 --> 00:11:20,140 我要去的運行PHP, 條件1點PHP,回車, 245 00:11:20,140 --> 00:11:23,440 我會在50號輸入, 讓我們假設現在它的作品。 246 00:11:23,440 --> 00:11:25,940 因為邏輯是 同樣的東西,一個星期。 247 00:11:25,940 --> 00:11:28,020 >> 好了,所以這是很 給人留下深刻印象,對不對? 248 00:11:28,020 --> 00:11:30,240 我們可以在任何這樣做 語言的數量。 249 00:11:30,240 --> 00:11:33,200 讓我們做一些事情的方式更強大。 250 00:11:33,200 --> 00:11:35,610 讓我們來完成習題集五位。 251 00:11:35,610 --> 00:11:37,370 所以,我要繼續前進,做到這一點。 252 00:11:37,370 --> 00:11:42,920 我要創建一個文件 所謂字典點PHP, 253 00:11:42,920 --> 00:11:45,424 和傾斜的,你可能會 要搶下來很多的筆記, 254 00:11:45,424 --> 00:11:47,340 票據只會幫助 你如果你被允許 255 00:11:47,340 --> 00:11:48,923 實現問題在PHP中設置五位。 256 00:11:48,923 --> 00:11:52,706 但是,我們將看到如何迅速,現在我們 可以實現同樣的問題集。 257 00:11:52,706 --> 00:11:56,830 >> 因此,在字典點PHP,我會 假定已經有 258 00:11:56,830 --> 00:11:58,514 在世界上一個名為的拼寫。 259 00:11:58,514 --> 00:12:01,430 事實上,我提前做了這個, 我們不會通過這條線走 260 00:12:01,430 --> 00:12:03,596 按行,但如果你 好奇後來真想 261 00:12:03,596 --> 00:12:06,250 環繞在你的心 C和PHP之間的差異, 262 00:12:06,250 --> 00:12:09,030 從字面上比較這文件, 拼寫檢查,從今天的源代碼 263 00:12:09,030 --> 00:12:11,190 我們稍後將發布 今天,對p將 264 00:12:11,190 --> 00:12:15,309 5拼寫​​檢查C點,我們給你, 和它的幾乎相同的線,由線。 265 00:12:15,309 --> 00:12:16,600 這裡也有一些更多的美元符號。 266 00:12:16,600 --> 00:12:18,330 一對夫婦功能 有一點不同。 267 00:12:18,330 --> 00:12:20,038 但它是一個很好的方式, 排序的看到如何 268 00:12:20,038 --> 00:12:22,740 你翻譯一種語言到另一種。 269 00:12:22,740 --> 00:12:24,812 這幾乎相同的行線。 270 00:12:24,812 --> 00:12:27,770 但我會假設, 存在,就是我要在這裡做 271 00:12:27,770 --> 00:12:31,310 是試圖炸毀你的 通過重新實現介意 272 00:12:31,310 --> 00:12:36,210 問題的全部設置五路 比你快一直在做迄今。 273 00:12:36,210 --> 00:12:39,330 因此,舉例來說,我會第一 聲明呼籲大小全局變量, 274 00:12:39,330 --> 00:12:40,444 並設置它等於零。 275 00:12:40,444 --> 00:12:41,610 現在,沒有太多的積蓄。 276 00:12:41,610 --> 00:12:44,170 可能你實現 大小幾乎相同, 277 00:12:44,170 --> 00:12:48,440 或暗示暗示將於今晚或明天, 只使用一個叫做全局變量 278 00:12:48,440 --> 00:12:49,900 大小,並且將其設置為零。 279 00:12:49,900 --> 00:12:52,660 這不是一個特別 驚人的擾流板。 280 00:12:52,660 --> 00:12:57,180 >> 那麼,什麼是你的數據結構 選擇,你們誰也跳入水中 281 00:12:57,180 --> 00:13:02,170 並讀取規格,什麼數據結構 有你們中的大多數已經使用? 282 00:13:02,170 --> 00:13:06,840 哈希表或嘗試,也許 一些變體。 283 00:13:06,840 --> 00:13:10,490 這樣至少執行哈希表, 是種了很多行代碼, 284 00:13:10,490 --> 00:13:10,990 對不對? 285 00:13:10,990 --> 00:13:13,700 而且不是所有的人都可能是 官能此時的一周中, 286 00:13:13,700 --> 00:13:14,366 但是這很好。 287 00:13:14,366 --> 00:13:19,300 因為在PHP中,如果我 想要一個哈希表,完成。 288 00:13:19,300 --> 00:13:20,260 對嗎? 289 00:13:20,260 --> 00:13:22,610 所以,我已經該變量 剛剛宣布顯然是 290 00:13:22,610 --> 00:13:26,180 所謂的美元符號表, 每出台之前。 291 00:13:26,180 --> 00:13:28,902 >> 但我真的只是想,在 在一天結束時,一個陣列。 292 00:13:28,902 --> 00:13:31,610 但不是一個數字索引 陣列,因為那就像2週 293 00:13:31,610 --> 00:13:33,440 的東西,當我們談到數組。 294 00:13:33,440 --> 00:13:34,850 我想要一個哈希表。 295 00:13:34,850 --> 00:13:38,070 但是一個哈希表是真的 的說法只是一種具體的方式, 296 00:13:38,070 --> 00:13:40,190 你想一個關聯數組。 297 00:13:40,190 --> 00:13:43,270 你想成為能夠 準鍵與值。 298 00:13:43,270 --> 00:13:44,200 鍵與值。 299 00:13:44,200 --> 00:13:45,640 什麼是一本字典,真的嗎? 300 00:13:45,640 --> 00:13:47,080 那麼它是一個整體一串鑰匙。 301 00:13:47,080 --> 00:13:50,320 話像蘋果,梨,香蕉, 而所有這些英語單詞 302 00:13:50,320 --> 00:13:51,490 我們交給你。 303 00:13:51,490 --> 00:13:54,820 >> 而價值觀,你是有效的 插入到你的字典 304 00:13:54,820 --> 00:13:57,790 要么是真的,還是沒有,假的。 305 00:13:57,790 --> 00:14:00,540 換句話說,你要插入 一大堆的鍵值對, 306 00:14:00,540 --> 00:14:03,720 蘋果,真的,梨,真實,香蕉,真實。 307 00:14:03,720 --> 00:14:07,446 所以,當您檢索或看 在您的哈希表的數據 308 00:14:07,446 --> 00:14:10,070 與你的檢查功能,你 要么得到一個答案, 309 00:14:10,070 --> 00:14:13,260 是的,我發現它在我的複雜 哈希表,或者沒有,它不存在, 310 00:14:13,260 --> 00:14:14,540 所以你返回false。 311 00:14:14,540 --> 00:14:19,440 >> 因此,要做到這一點,我需要的是數據 像我以前的結構建議。 312 00:14:19,440 --> 00:14:22,050 我只需要能夠 要的話聯繫起來 313 00:14:22,050 --> 00:14:25,570 像,報價引文結束,符​​號, 用一個值一樣,真實的。 314 00:14:25,570 --> 00:14:27,090 因此,有我的哈希表。 315 00:14:27,090 --> 00:14:28,180 讓我們實際使用它。 316 00:14:28,180 --> 00:14:30,310 因此,有一些功能 我需要實現。 317 00:14:30,310 --> 00:14:33,300 我要繼續前進,咬 關閉一個函數調用的大小。 318 00:14:33,300 --> 00:14:34,390 它不帶任何參數。 319 00:14:34,390 --> 00:14:36,660 我沒有打擾 這個詞的,無效的,在PHP。 320 00:14:36,660 --> 00:14:38,770 我只是要回的大小。 321 00:14:38,770 --> 00:14:41,287 >> 而作為一個不談,PHP有 這minorly惱人的細節, 322 00:14:41,287 --> 00:14:44,620 其中,如果事情是全球性的,你要 在告訴你正在使用的功能 323 00:14:44,620 --> 00:14:46,220 這,哎,這是一個全局變量。 324 00:14:46,220 --> 00:14:49,330 因此,小的愚蠢,但你 有仍然做到這一點。 325 00:14:49,330 --> 00:14:50,920 >> 那麼,關於負荷? 326 00:14:50,920 --> 00:14:52,990 我要去實現 一個函數調用的負載 327 00:14:52,990 --> 00:14:56,790 這需要在字典中的名稱, 就像在問題設置五位。 328 00:14:56,790 --> 00:14:59,554 而在我開始之前, 請注意,我沒有 329 00:14:59,554 --> 00:15:00,970 打字已完全一樣的東西。 330 00:15:00,970 --> 00:15:06,060 有什麼明顯的不同在PHP約 你如何定義一個函數對C? 331 00:15:06,060 --> 00:15:06,616 是啊。 332 00:15:06,616 --> 00:15:07,490 聽眾:[聽不清] 333 00:15:07,490 --> 00:15:08,573 喇叭1:沒有返回類型。 334 00:15:08,573 --> 00:15:12,350 而事實上,這樣的話,PHP 只要它是鬆散類型, 335 00:15:12,350 --> 00:15:14,190 也是在這個意義上一點不馬虎。 336 00:15:14,190 --> 00:15:17,680 你不指定作為編程 這是什麼函數返回。 337 00:15:17,680 --> 00:15:20,490 你將不得不實際上看起來 在代碼中找出答案。 338 00:15:20,490 --> 00:15:22,670 或者閱讀評論 或文檔中。 339 00:15:22,670 --> 00:15:24,870 因此長處和的利弊吧 這類決定。 340 00:15:24,870 --> 00:15:26,750 但是,我不得不說 關鍵字,功能。 341 00:15:26,750 --> 00:15:28,360 而當我們學習 JavaScript的在幾個星期 342 00:15:28,360 --> 00:15:31,026 我們將看到同樣的事情 再次,但它同樣的想法。 343 00:15:31,026 --> 00:15:34,220 該函數的名稱,它的參數 或參數或缺乏,現在 344 00:15:34,220 --> 00:15:35,630 這裡是執行。 345 00:15:35,630 --> 00:15:38,860 >> 所以我要去只是削減一些角落 是戲劇性的只是一瞬間。 346 00:15:38,860 --> 00:15:40,485 但我要繼續前進,並說這一點。 347 00:15:40,485 --> 00:15:44,890 這就是我可以加載 一個文件到一個數組。 348 00:15:44,890 --> 00:15:47,580 有一個在PHP函數調用的文件。 349 00:15:47,580 --> 00:15:49,300 你把它的文件的名稱。 350 00:15:49,300 --> 00:15:53,950 它遞給你回一個數組,裡面 這是每一行的文件。 351 00:15:53,950 --> 00:15:56,480 從零個,一個,上向上 到n減去1行。 352 00:15:56,480 --> 00:15:57,210 就是這樣,對嗎? 353 00:15:57,210 --> 00:15:57,990 有沒有F讀。 354 00:15:57,990 --> 00:15:58,826 有沒有F GET秒。 355 00:15:58,826 --> 00:15:59,700 有沒有百分之秒。 356 00:15:59,700 --> 00:16:00,420 有沒有頭痛。 357 00:16:00,420 --> 00:16:01,220 有沒有的feof。 358 00:16:01,220 --> 00:16:03,950 所有的東西與 你一直在摔跤也許, 359 00:16:03,950 --> 00:16:06,550 與對置四,五,消失。 360 00:16:06,550 --> 00:16:09,450 >> 所以,我剛才讀的那些行成 該文件,然後你知道嗎? 361 00:16:09,450 --> 00:16:15,510 如果我想遍歷這些話, 我能做的,每個行的行。 362 00:16:15,510 --> 00:16:19,992 請記住,這是種聰明 迭代的一個數組,索引的方式 363 00:16:19,992 --> 00:16:25,090 由指數,並在每次迭代主叫 當前行,美元符號線。 364 00:16:25,090 --> 00:16:31,560 而且在這裡我會去 說表,支架,線,得到真實的。 365 00:16:31,560 --> 00:16:35,880 >> 換句話說,這就是我 插入到PHP中我的哈希表。 366 00:16:35,880 --> 00:16:38,740 我說,美元符號表, 是我的關聯數組,這是 367 00:16:38,740 --> 00:16:40,690 空每個代碼向上線之上。 368 00:16:40,690 --> 00:16:42,790 然後我索引到它 不是,使用號碼, 369 00:16:42,790 --> 00:16:45,300 但是從字面上使用 關鍵字,我在乎。 370 00:16:45,300 --> 00:16:47,730 也許這是蘋果或梨 或香蕉也好, 371 00:16:47,730 --> 00:16:51,645 但具體我索引 進入它就像我剛才提出的。 372 00:16:51,645 --> 00:16:53,770 我取的名字我 關聯數組,然後我 373 00:16:53,770 --> 00:16:56,450 使用報價引文結束在 方括號中有一個字符串, 374 00:16:56,450 --> 00:16:58,490 代替實際數目。 375 00:16:58,490 --> 00:17:00,250 >> 所以,就是這樣。 376 00:17:00,250 --> 00:17:01,720 負載功能完成。 377 00:17:01,720 --> 00:17:05,119 一旦這個循環迭代,我已經把 萬事成哈希表。 378 00:17:05,119 --> 00:17:07,810 現在小的免責聲明,有一個 兩件事情我也需要修復。 379 00:17:07,810 --> 00:17:10,030 和版本,我會在網上發布 將所有的細微差別, 380 00:17:10,030 --> 00:17:12,670 但它大多只是一些將要 錯誤檢查和一些小的調整。 381 00:17:12,670 --> 00:17:14,044 但是,這確實是它的要點。 382 00:17:14,044 --> 00:17:16,750 如果我現在想實現 調用的函數 383 00:17:16,750 --> 00:17:19,869 檢查,這需要一個 字作為其參數, 384 00:17:19,869 --> 00:17:22,099 怎麼可能我去這樣做? 385 00:17:22,099 --> 00:17:30,020 好吧,我只是會說,如果 我的表裡面,在位置的話, 386 00:17:30,020 --> 00:17:30,652 如果已設置。 387 00:17:30,652 --> 00:17:32,360 因此,如果有is-- 其實,你知道嗎? 388 00:17:32,360 --> 00:17:34,830 我要做到這一點在 有些偽代碼。 389 00:17:34,830 --> 00:17:36,020 但這個想法是一樣的。 390 00:17:36,020 --> 00:17:41,640 如果等於true,返回true。 391 00:17:41,640 --> 00:17:43,890 好的。 392 00:17:43,890 --> 00:17:46,851 那種Else--你能看到 這是going--返回false。 393 00:17:46,851 --> 00:17:47,350 完成。 394 00:17:47,350 --> 00:17:49,640 檢查完成。 395 00:17:49,640 --> 00:17:50,940 >> 相當不錯的,對不對? 396 00:17:50,940 --> 00:17:52,560 所以,這是什麼真正的意思嗎? 397 00:17:52,560 --> 00:17:53,680 這也太,我切一些角落。 398 00:17:53,680 --> 00:17:56,020 看版上線 對於所有的細微細微差別的。 399 00:17:56,020 --> 00:17:57,103 但是,這是它的要點。 400 00:17:57,103 --> 00:17:59,080 指數到您的 關聯數組,又名 401 00:17:59,080 --> 00:18:02,910 哈希表,看看是否有一個值 還有,如果它設置為true,如果是的話, 402 00:18:02,910 --> 00:18:03,930 返回true。 403 00:18:03,930 --> 00:18:05,819 因此,我們削成下降 所有的複雜性。 404 00:18:05,819 --> 00:18:07,110 所以,那種心靈的吹了吧? 405 00:18:07,110 --> 00:18:09,680 我不會打擾卸載完成它, 因為在fact--哦,你知道嗎? 406 00:18:09,680 --> 00:18:11,620 是啊,讓我們與卸載完成它。 407 00:18:11,620 --> 00:18:18,940 >> 卸載在哈希表看起來 像功能卸載,返回。 408 00:18:18,940 --> 00:18:19,930 確定這樣的卸載。 409 00:18:19,930 --> 00:18:21,350 因為沒有什麼 卸載,對不對? 410 00:18:21,350 --> 00:18:22,170 有沒有malloc的。 411 00:18:22,170 --> 00:18:24,280 我沒有明確要求 操作系統的任何事情。 412 00:18:24,280 --> 00:18:25,571 我剛開始使用的變量。 413 00:18:25,571 --> 00:18:30,510 所以,這也是的一種表現 更高層次的語言特點。 414 00:18:30,510 --> 00:18:32,940 如此反复,大多數這個詞 我們一直在處理這兒 415 00:18:32,940 --> 00:18:34,280 與C超低水平。 416 00:18:34,280 --> 00:18:35,980 你可以看到計算機的內存。 417 00:18:35,980 --> 00:18:38,440 你可以觸摸任何你 希望在您的計算機的RAM, 418 00:18:38,440 --> 00:18:39,440 是好還是壞。 419 00:18:39,440 --> 00:18:41,760 >> 在這裡,我們將 放棄權力。 420 00:18:41,760 --> 00:18:44,730 但是,我的上帝,看看如何 更少的代碼我寫的。 421 00:18:44,730 --> 00:18:47,660 事實上,如果我不說話 並討論了我的打字, 422 00:18:47,660 --> 00:18:50,190 我們已經進行 這個例子五分鐘前。 423 00:18:50,190 --> 00:18:52,150 那麼什麼是價格被支付? 424 00:18:52,150 --> 00:18:54,100 那麼讓我們一起來看看。 425 00:18:54,100 --> 00:18:55,340 讓我們一起來看看。 426 00:18:55,340 --> 00:18:59,340 我要繼續前進並運行CS50。 427 00:18:59,340 --> 00:19:02,160 讓我先進入 今天的例子, 428 00:19:02,160 --> 00:19:03,970 我像以前一樣有文本的目錄。 429 00:19:03,970 --> 00:19:08,520 我要運行的解決方案, 它與問題設置5名為 430 00:19:08,520 --> 00:19:11,190 拼寫,這是在CS50的帳戶。 431 00:19:11,190 --> 00:19:14,040 >> 而我要的東西運行 大像國王詹姆斯聖經, 432 00:19:14,040 --> 00:19:16,547 只是讓我們真正把 員工的解決方案測試。 433 00:19:16,547 --> 00:19:19,130 現在有時互聯網的一個 慢一點,快一點, 434 00:19:19,130 --> 00:19:20,338 可能需要一段時間來滾動。 435 00:19:20,338 --> 00:19:23,730 但它總共0.56秒花 拼寫檢查國王詹姆斯 436 00:19:23,730 --> 00:19:25,150 用聖經的工作人員解決方案。 437 00:19:25,150 --> 00:19:25,620 因此,相當不錯。 438 00:19:25,620 --> 00:19:27,786 你的可能要慢得多, 而這完全罰款。 439 00:19:27,786 --> 00:19:30,090 但它是正確的在這裡。 440 00:19:30,090 --> 00:19:32,440 所以這是工作人員的解決方案。 441 00:19:32,440 --> 00:19:34,785 如果我進去收拾PHP版本。 442 00:19:34,785 --> 00:19:36,990 而我會做一個小 像烘焙展的事情。 443 00:19:36,990 --> 00:19:39,720 我們將採取我寫的代碼 此前,所以這是完全正確的。 444 00:19:39,720 --> 00:19:42,678 因為我寫的代碼是不會 是完全正確的剛才。 445 00:19:42,678 --> 00:19:47,310 但是,如果我運行PHP版本, 我有什麼,今天放棄了? 446 00:19:47,310 --> 00:19:49,980 我花了五分鐘 實施P設定五,我要求。 447 00:19:49,980 --> 00:19:51,770 我已付出什麼樣的代價? 448 00:19:51,770 --> 00:19:52,270 是啊。 449 00:19:52,270 --> 00:19:52,937 >> 聽眾:速度。 450 00:19:52,937 --> 00:19:53,645 揚聲器1:速度。 451 00:19:53,645 --> 00:19:54,380 你是什​​麼意思? 452 00:19:54,380 --> 00:19:55,230 >> 聽眾:這將需要更長的時間。 453 00:19:55,230 --> 00:19:55,660 >> 揚聲器1:所有權利。 454 00:19:55,660 --> 00:19:56,160 讓我們來看看。 455 00:19:56,160 --> 00:19:59,590 這將需要更長的時間, 不寫,但要運行它。 456 00:19:59,590 --> 00:20:00,090 是啊。 457 00:20:00,090 --> 00:20:00,960 因此,讓我們試試這個。 458 00:20:00,960 --> 00:20:05,720 所以在這裡我要繼續前進,做 PHP拼寫的,並且因為該文件的 459 00:20:05,720 --> 00:20:06,360 所謂的拼寫。 460 00:20:06,360 --> 00:20:07,580 所以我沒有運行 字典,召回, 461 00:20:07,580 --> 00:20:09,204 我跑叫拼寫檢查程序。 462 00:20:09,204 --> 00:20:12,450 我要通過在同一 文件中,國王詹姆斯的五分之一。 463 00:20:12,450 --> 00:20:14,377 它飛過。 464 00:20:14,377 --> 00:20:17,210 這可能僅僅是網速, 所以不要過度解讀成。 465 00:20:17,210 --> 00:20:21,680 但它確實感覺不再是肯定的。 466 00:20:21,680 --> 00:20:23,280 1.26秒。 467 00:20:23,280 --> 00:20:25,150 >> 現在,仍然是相當 該死的快,不是嗎? 468 00:20:25,150 --> 00:20:28,140 這感覺就像唯一的理由 更像三個或四個或五個 469 00:20:28,140 --> 00:20:30,515 秒,這只是因為 互聯網是正在緩慢。 470 00:20:30,515 --> 00:20:33,980 花費的計算機時間為1.26 秒,相比之下,我認為0.56。 471 00:20:33,980 --> 00:20:35,880 這樣的兩倍以上的速度慢。 472 00:20:35,880 --> 00:20:39,170 現在,這還是相當不錯的 速度快,但它是一個體現 473 00:20:39,170 --> 00:20:40,860 ,果然,那具體價格。 474 00:20:40,860 --> 00:20:43,460 >> 因為我們解釋 在由行代碼行, 475 00:20:43,460 --> 00:20:46,740 並且該程序PHP正在讀我的 代碼從上到下,從左到右, 476 00:20:46,740 --> 00:20:47,940 它有做多思路。 477 00:20:47,940 --> 00:20:50,430 它有一種轉換 它本身內部 478 00:20:50,430 --> 00:20:53,464 到相應的機 在飛行中的代碼,可以這麼說, 479 00:20:53,464 --> 00:20:55,380 即使力學 有一點不同。 480 00:20:55,380 --> 00:20:59,430 而不是只供給到對 英特爾CPU的原始零和一 481 00:20:59,430 --> 00:21:00,930 它理解本身。 482 00:21:00,930 --> 00:21:04,110 >> 那麼絕對,相傳, 我們已經付出了代價。 483 00:21:04,110 --> 00:21:09,120 和代碼編寫的語言 PHP之類往往要慢一些。 484 00:21:09,120 --> 00:21:10,050 但是,我的上帝。 485 00:21:10,050 --> 00:21:12,740 所以現在當我拼寫檢查我 文件,我花了一個額外的0.7 486 00:21:12,740 --> 00:21:17,280 秒左右VS 20小時以實現 更快的拼寫檢查,對吧? 487 00:21:17,280 --> 00:21:18,397 這是怎樣的一個權衡的。 488 00:21:18,397 --> 00:21:20,980 如果你是剛剛啟動P 置5,可能不會20小時。 489 00:21:20,980 --> 00:21:22,188 可能遠高於更少。 490 00:21:22,188 --> 00:21:23,600 但是,這是一個權衡,真的。 491 00:21:23,600 --> 00:21:27,820 如果你是在真正的大運行的代碼 數據集,或者在更老的硬件, 492 00:21:27,820 --> 00:21:32,650 這些種的差異 當然可以積少成多。 493 00:21:32,650 --> 00:21:34,880 >> 如有任何問題迄今? 494 00:21:34,880 --> 00:21:35,617 是啊。 495 00:21:35,617 --> 00:21:36,492 >> 聽眾:[聽不清] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 揚聲器1:對不起,能 你說這一次? 498 00:21:39,978 --> 00:21:40,853 聽眾:[聽不清] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 揚聲器1:你放棄自己的時間。 501 00:21:44,700 --> 00:21:45,283 好了,所以是。 502 00:21:45,283 --> 00:21:47,322 您節省時間 不必編譯它, 503 00:21:47,322 --> 00:21:48,530 如果這就是你在問什麼。 504 00:21:48,530 --> 00:21:50,710 事實上,在CS50, 大多數的節目, 505 00:21:50,710 --> 00:21:53,668 儘管他們可能需要一段時間 寫,他們是比較短的。 506 00:21:53,668 --> 00:21:56,860 幾十個,幾百行代碼, 所以他們編譯很快。 507 00:21:56,860 --> 00:21:58,470 但是當你開始 寫一些大一點的程序, 508 00:21:58,470 --> 00:22:01,511 就像如果你是微軟或者你 谷歌和寫作真正的大計劃 509 00:22:01,511 --> 00:22:05,360 在C或C ++或類似方式進行編譯 語言,可能需要數秒, 510 00:22:05,360 --> 00:22:08,577 甚至幾分鐘或更長的時間,以 編譯數百萬行代碼。 511 00:22:08,577 --> 00:22:10,660 還有一點,就是 差別是要增加。 512 00:22:10,660 --> 00:22:12,840 >> 而事實上,一旦我們 今天的過渡,當天 513 00:22:12,840 --> 00:22:15,910 今天,以網絡編程 使用PHP,你 514 00:22:15,910 --> 00:22:18,460 會發現它只是這麼多 更愉快編寫代碼 515 00:22:18,460 --> 00:22:21,501 如果你沒有做這些愚蠢的 樣變到終端的步驟 516 00:22:21,501 --> 00:22:24,202 窗口中,鍵入make你好,重 運行它,重新加載窗口。 517 00:22:24,202 --> 00:22:25,910 只是這麼多愚蠢 機械步驟 518 00:22:25,910 --> 00:22:28,480 剛剛獲得這樣做的方式 有趣的,好玩的工作。 519 00:22:28,480 --> 00:22:31,450 事實上,我們扔掉這些用PHP。 520 00:22:31,450 --> 00:22:34,960 我們可以互動 與它更迅速。 521 00:22:34,960 --> 00:22:35,495 是啊。 522 00:22:35,495 --> 00:22:36,370 聽眾:[聽不清] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 揚聲器1:當然。 525 00:22:40,960 --> 00:22:42,876 我能澄清什麼 裝置將被解釋? 526 00:22:42,876 --> 00:22:45,870 當您編譯語言 像C,它的股價下跌 527 00:22:45,870 --> 00:22:48,140 因為我們機器說: 碼,零和一。 528 00:22:48,140 --> 00:22:51,860 而Intel決定年前 零和一的某些模式 529 00:22:51,860 --> 00:22:56,220 代表此外,或減法, 或打印,或其它基本操作。 530 00:22:56,220 --> 00:23:00,250 在解釋型語言的世界 如PHP或JavaScript,或者Python, 531 00:23:00,250 --> 00:23:03,120 或Ruby,或串 其他人,而不是一個人 532 00:23:03,120 --> 00:23:05,120 寫了一本 interpreter--在這種情況下, 533 00:23:05,120 --> 00:23:09,770 它也被稱為PHP,等同於 在language--的名字,基本上 534 00:23:09,770 --> 00:23:13,840 有一個大循環中它的迭代 在所有代碼的行 535 00:23:13,840 --> 00:23:18,170 我給它的輸入,像招呼 點PHP,或字典點PHP。 536 00:23:18,170 --> 00:23:21,760 >> 然後你可以把他們的大的 環路有很多的條件。 537 00:23:21,760 --> 00:23:26,340 而這些條件說,如果 人寫的關鍵字, 538 00:23:26,340 --> 00:23:28,470 開始做他或她的 代碼連連。 539 00:23:28,470 --> 00:23:31,360 或者,如果該人具有 寫的代碼行, 540 00:23:31,360 --> 00:23:34,880 如果只執行自己 下一行條件。 541 00:23:34,880 --> 00:23:37,740 因此,它是真正喜歡解釋 它在一個人的感覺,線 542 00:23:37,740 --> 00:23:39,660 由線,那只是時間問題。 543 00:23:39,660 --> 00:23:41,340 這需要開銷。 544 00:23:41,340 --> 00:23:44,189 所以這是一個price-- 良好的問題 - 我們付出。 545 00:23:44,189 --> 00:23:46,480 因此,讓我們做的是另演示 這是一個有點戲劇性。 546 00:23:46,480 --> 00:23:51,160 還有就是,我會說,一個大概這在 可怕的失敗的概率為90%, 547 00:23:51,160 --> 00:23:53,869 但你會驚奇地發現 用10%的概率。 548 00:23:53,869 --> 00:23:55,660 所以每年我們嘗試 要做到這一點,因此我們 549 00:23:55,660 --> 00:23:59,061 試著寫一個程序,經過 問題設置為零,用於表示已 550 00:23:59,061 --> 00:24:02,060 提交你的電話號碼和一個 許多其他的人口統計信息, 551 00:24:02,060 --> 00:24:06,030 我們編程 送你一條短信。 552 00:24:06,030 --> 00:24:08,540 然後,每個人的手機 開始發出蜂鳴聲或振動, 553 00:24:08,540 --> 00:24:11,460 它只是令人驚訝的,因為 好了,看看電腦能做到。 554 00:24:11,460 --> 00:24:13,840 >> 這很少正常工作 看來,在很大程度上 555 00:24:13,840 --> 00:24:16,800 因為我通常得到列入黑名單 通過Gmail或其他服務 556 00:24:16,800 --> 00:24:19,630 對於真正想這樣做的規模。 557 00:24:19,630 --> 00:24:24,940 但有趣的是太多,因為我們 今天沒有在座的每一位, 558 00:24:24,940 --> 00:24:27,690 有趣的是我們最後一次 兩年前試過, 559 00:24:27,690 --> 00:24:30,870 我想,我寫了一個程序 是坐在一個循環迭代 560 00:24:30,870 --> 00:24:34,040 在所有的學生在課堂上, 和他們每個的文本消息的, 561 00:24:34,040 --> 00:24:37,534 它是這樣說, 為什麼不是你的演講? 562 00:24:37,534 --> 00:24:39,170 愛,CS50機器人。 563 00:24:39,170 --> 00:24:42,580 >> 你不知道有多少歉意 而那種痛苦的電子郵件 564 00:24:42,580 --> 00:24:46,970 我在從接收的響應 ñ零下100人誰不在這裡 565 00:24:46,970 --> 00:24:47,960 那一天。 566 00:24:47,960 --> 00:24:52,116 而更有趣,更可恥story-- 你知道,我們把它放在那裡。 567 00:24:52,116 --> 00:24:53,740 它已經在的視頻在幾年前。 568 00:24:53,740 --> 00:24:56,810 所以,你很快就會看到我 其中寫一個for循環, 569 00:24:56,810 --> 00:25:00,640 這是很容易寫的,一個錯誤 for循環,使得在第一時間 570 00:25:00,640 --> 00:25:02,800 通過循環,則 發送一個短信。 571 00:25:02,800 --> 00:25:06,190 >> 通過循環我第二次 早該送多了一個短信, 572 00:25:06,190 --> 00:25:08,250 然後多一個文本 消息,和一個更多。 573 00:25:08,250 --> 00:25:11,490 但事實證明,如果你犯了一個錯字 在編程時,有時你 574 00:25:11,490 --> 00:25:14,460 可以編寫發送一個程序 短信,然後兩條短信, 575 00:25:14,460 --> 00:25:18,742 然後3條短信給大家 誰是已經收到了一條短信。 576 00:25:18,742 --> 00:25:21,450 如你所知,做什麼, 加的東西,再加上一些東西, 577 00:25:21,450 --> 00:25:25,910 加的東西,是很多大O 短信,或N的平方, 578 00:25:25,910 --> 00:25:29,830 或$ 0.10短信,$ 20,000。 579 00:25:29,830 --> 00:25:33,700 >> 值得慶幸的是我打控制-C在此之前, 事情發生了,但我沒有欠至少一 580 00:25:33,700 --> 00:25:37,550 你的前任為$ 20的 200一些奇怪的文字消息, 581 00:25:37,550 --> 00:25:40,450 不僅去了他的電話,但 同時它像一個老翻蓋手機 582 00:25:40,450 --> 00:25:43,520 所以喜歡排擠出他 每個內存等個人文本 583 00:25:43,520 --> 00:25:45,930 消息他實際上得到。 584 00:25:45,930 --> 00:25:49,250 因此,我們有一個目標 今天,不要那樣做。 585 00:25:49,250 --> 00:25:50,620 也許打開飛行模式。 586 00:25:50,620 --> 00:25:51,120 好的。 587 00:25:51,120 --> 00:25:56,590 因此,讓我們進入一個 計劃在這裡callled-- 588 00:25:56,590 --> 00:25:59,060 我會打電話給文本點PHP。 589 00:25:59,060 --> 00:26:01,074 而在前進,我有兩個文件在這裡。 590 00:26:01,074 --> 00:26:06,030 我做的只是工作人員的文件,這是有 所有員工的信息,所有的名字 591 00:26:06,030 --> 00:26:07,260 從課程的網站。 592 00:26:07,260 --> 00:26:09,756 然後現在我只是把 一些假號碼555-1212。 593 00:26:09,756 --> 00:26:11,380 因此,這些不會真的去任何地方。 594 00:26:11,380 --> 00:26:15,140 但是請注意這個CSV文件裡面, 我們之前談到簡要 595 00:26:15,140 --> 00:26:16,540 在文件IO的上下文中。 596 00:26:16,540 --> 00:26:18,730 >> 什麼是CSV文件? 597 00:26:18,730 --> 00:26:19,970 逗號分隔的變量。 598 00:26:19,970 --> 00:26:24,400 這是一種像極 輕量級的數據庫,如果你願意。 599 00:26:24,400 --> 00:26:28,650 還有一種類四列 在這個文件中,且有鋸齒, 600 00:26:28,650 --> 00:26:32,400 但逗號本質 代表在該文件中的列。 601 00:26:32,400 --> 00:26:35,400 第一列是對TF或CA的名稱。 602 00:26:35,400 --> 00:26:37,800 第二列是他們的姓氏。 603 00:26:37,800 --> 00:26:39,820 第三列是他們的電話號碼。 604 00:26:39,820 --> 00:26:44,760 第四列顯然is-- 第四列顯然是什麼呢? 605 00:26:44,760 --> 00:26:45,870 好了,這是他們的運營商。 606 00:26:45,870 --> 00:26:47,180 因此,Verizon公司,或衝刺,或什麼不是。 607 00:26:47,180 --> 00:26:48,620 如果我前面misspoke,CSV。 608 00:26:48,620 --> 00:26:51,800 逗號分隔值是CSV在這裡。 609 00:26:51,800 --> 00:26:54,260 >> 因此,我可以做這個? 610 00:26:54,260 --> 00:26:56,940 嗯,這只是一個大的文本文件, 並且它是一種長的,對不對? 611 00:26:56,940 --> 00:26:58,690 像這樣的打算 是種討厭。 612 00:26:58,690 --> 00:27:03,510 而事實證明,但是,如果我 要發送一條短信到,讓我們 613 00:27:03,510 --> 00:27:05,180 亞歷克斯說這裡。 614 00:27:05,180 --> 00:27:09,690 讓我進入我的瀏覽器 和退出全屏模式 615 00:27:09,690 --> 00:27:11,660 只是這樣我就可以來回切換。 616 00:27:11,660 --> 00:27:20,280 事實證明,讓我們來看看,如果我去的 在這裡,並登錄到Gmail中,所有的權利。 617 00:27:20,280 --> 00:27:22,950 別看這部分。 618 00:27:22,950 --> 00:27:23,880 只要我能看到。 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 當然livestream可以 仍然可以看到我在做什麼。 621 00:27:28,800 --> 00:27:29,360 好的。 622 00:27:29,360 --> 00:27:31,850 >> 因此,這裡僅僅是Gmail的使用 約翰·哈佛的賬戶。 623 00:27:31,850 --> 00:27:34,000 所以,如果我想發送 短信亞歷克斯, 624 00:27:34,000 --> 00:27:35,530 我當然可以撰寫郵件。 625 00:27:35,530 --> 00:27:38,410 而事實證明,我已經 與亞歷克斯測試之前,在這裡, 626 00:27:38,410 --> 00:27:42,260 這樣你就可以添加特定域 名人們的電話號碼, 627 00:27:42,260 --> 00:27:45,850 因為世界上存在 東西叫做短信電子郵件網關。 628 00:27:45,850 --> 00:27:50,000 這是說,所有的一個奇特的方式 我們誰擁有那款手機 629 00:27:50,000 --> 00:27:53,200 當然有電話號碼, 有可能是你的運營商, 630 00:27:53,200 --> 00:27:56,840 一定後綴像在 Vtext.com為Verizon短信 631 00:27:56,840 --> 00:28:00,320 點com,你可以添加到您的 自己的個人電話號碼,然後 632 00:28:00,320 --> 00:28:03,540 您或朋友,或者你的父母會 文字你在那個特定的地址。 633 00:28:03,540 --> 00:28:07,380 >> 和Verizon擁有一台服務器,電子郵件 服務器,即在收到這封郵件, 634 00:28:07,380 --> 00:28:11,180 著眼於數字部分,然後 採用任何特殊行業的魔法 635 00:28:11,180 --> 00:28:14,540 他們必須真正發送出去了 電波您的特定細胞 636 00:28:14,540 --> 00:28:15,040 手機。 637 00:28:15,040 --> 00:28:18,030 現在,這是很好的,因為我不知道 真的知道如何發送短信 638 00:28:18,030 --> 00:28:20,460 或者寫的代碼,但 我的手機, 639 00:28:20,460 --> 00:28:23,580 你可能做到這些的 最終的項目,但現在所有的 640 00:28:23,580 --> 00:28:24,770 我已經是我的筆記本電腦在這裡。 641 00:28:24,770 --> 00:28:29,830 所以我想遍歷該CSV 文件,線,由線,由線,由線, 642 00:28:29,830 --> 00:28:35,160 抓住每一個員工的電話號碼, 和它們的載體和編程, 643 00:28:35,160 --> 00:28:39,770 串聯,也就是連接手機 用適當的域名數 644 00:28:39,770 --> 00:28:40,820 然後發送電子郵件。 645 00:28:40,820 --> 00:28:41,940 >> 所以這是一個很大的步驟。 646 00:28:41,940 --> 00:28:45,530 祝你好運這樣做,在C. 這是一種情況噩夢 647 00:28:45,530 --> 00:28:48,350 打開文件,讀它 線,由線,由線,為你 648 00:28:48,350 --> 00:28:51,100 看到,也可以很快看到 有問題的設置五,如果不 649 00:28:51,100 --> 00:28:53,560 問題設4,然後 動態地串聯 650 00:28:53,560 --> 00:28:57,020 兩個字符串,因為在C, 採取兩個字符串,並結合他們, 651 00:28:57,020 --> 00:29:00,900 你是什​​麼微創 最需要做的可能? 652 00:29:00,900 --> 00:29:03,020 需要聲明更多的內存,對不對? 653 00:29:03,020 --> 00:29:04,710 而問,malloc的,我可以有更多的內存? 654 00:29:04,710 --> 00:29:07,060 因此,我可以把一半的 這裡,一半的在這裡。 655 00:29:07,060 --> 00:29:08,150 這只是這麼多的步驟。 656 00:29:08,150 --> 00:29:10,310 而到那個時候,你已經失去了 在愚蠢的小演示的興趣 657 00:29:10,310 --> 00:29:11,851 在這裡你使大家的手機蜂鳴聲。 658 00:29:11,851 --> 00:29:14,590 讓我們做這樣的PHP 風格,因此我們只 659 00:29:14,590 --> 00:29:16,210 開始使用更多的廚房水槽。 660 00:29:16,210 --> 00:29:18,050 >> 而天馬行空 基本上是相同的, 661 00:29:18,050 --> 00:29:20,710 但我們也不必太擔心 很多關於更低的水平。 662 00:29:20,710 --> 00:29:22,950 所以,讓我們來看看我怎麼可能 去這樣做。 663 00:29:22,950 --> 00:29:26,664 而只是讓我不 重複過去的錯誤, 664 00:29:26,664 --> 00:29:28,330 我在這裡寫一些筆記自己。 665 00:29:28,330 --> 00:29:31,070 而讓我們看看我能走我們 通過一些基本步驟, 666 00:29:31,070 --> 00:29:33,861 然後換時間的緣故,我們將 也許是切到最後一些彎道。 667 00:29:33,861 --> 00:29:38,007 我要繼續前進,做開放 支架PHP來啟動該文件。 668 00:29:38,007 --> 00:29:39,590 而且我要繼續前進,做到這一點。 669 00:29:39,590 --> 00:29:41,490 文件句柄,你會 很快就會看到,其實 670 00:29:41,490 --> 00:29:44,790 調用名為f開功能。 671 00:29:44,790 --> 00:29:46,280 請記住這將打開一個文件。 672 00:29:46,280 --> 00:29:48,800 而報價,引文結束, R代表什麼,再? 673 00:29:48,800 --> 00:29:49,800 只要打開它進行讀取。 674 00:29:49,800 --> 00:29:51,210 現在,在對p設置,你這樣做。 675 00:29:51,210 --> 00:29:54,500 和處理可以是任何東西, 富,酒吧,BAS,任何變量名。 676 00:29:54,500 --> 00:29:57,470 但一般的計算機 科學家稱之為一個打開的文件, 677 00:29:57,470 --> 00:30:00,962 給你一個文件句柄, 一些守住這麼說。 678 00:30:00,962 --> 00:30:02,670 我只是打算做 一些錯誤檢查。 679 00:30:02,670 --> 00:30:07,260 因此,如果手柄是假的,就像 在C,我會做這樣的事, 680 00:30:07,260 --> 00:30:09,545 無法打開文件,反斜杠ñ。 681 00:30:09,545 --> 00:30:11,420 然後,我只是去 繼續前進並退出。 682 00:30:11,420 --> 00:30:14,340 而事實證明,在PHP中, 我不是一個函數內部。 683 00:30:14,340 --> 00:30:16,160 有沒有主要的功能在這裡。 684 00:30:16,160 --> 00:30:17,450 所以,我不回,本身。 685 00:30:17,450 --> 00:30:18,120 我退出。 686 00:30:18,120 --> 00:30:19,619 這是本質上是一回事。 687 00:30:19,619 --> 00:30:22,510 而我離開一個Y可能。 688 00:30:22,510 --> 00:30:24,220 一個僅僅意味著某種類型的錯誤。 689 00:30:24,220 --> 00:30:25,580 這是不為零,所以這是一個錯誤。 690 00:30:25,580 --> 00:30:30,220 >> 好吧,如果我下來,現在這裡 在我的節目,我已經打開了該文件。 691 00:30:30,220 --> 00:30:34,250 我要繼續前進,並宣布 叫地址的數組, 692 00:30:34,250 --> 00:30:38,610 而在C中我會知道 提前數組的大小,對不對? 693 00:30:38,610 --> 00:30:41,910 或者,我需要聲明這個 是一個指針,然後使用malloc。 694 00:30:41,910 --> 00:30:44,720 然後我每次讀 通過在文件中的另一行, 695 00:30:44,720 --> 00:30:46,620 我將需要對malloc 更多的內存,malloc的內存。 696 00:30:46,620 --> 00:30:47,703 這是在頸部疼痛。 697 00:30:47,703 --> 00:30:50,950 而幸運的是,PHP和Ruby, 和Python和JavaScript,它們 698 00:30:50,950 --> 00:30:53,880 會增加你的陣列 自動為您。 699 00:30:53,880 --> 00:30:54,830 沒有更多的malloc。 700 00:30:54,830 --> 00:30:56,227 沒有更多的內存管理。 701 00:30:56,227 --> 00:30:57,560 筆記本計算機在處理這件事。 702 00:30:57,560 --> 00:31:00,330 但價格你付出代價。 703 00:31:00,330 --> 00:31:01,350 這是一個有點慢。 704 00:31:01,350 --> 00:31:03,190 而對於這樣的程序 我們不會注意到。 705 00:31:03,190 --> 00:31:04,720 我們將發送100條短信。 706 00:31:04,720 --> 00:31:06,136 舉例來說不會感覺它。 707 00:31:06,136 --> 00:31:08,430 這真的只是開始 不管你選擇的語言 708 00:31:08,430 --> 00:31:11,490 當您的數據或程序 得到真的,真的相當大的, 709 00:31:11,490 --> 00:31:14,120 如將是這種情況更是這樣 我們基於Web的東西。 710 00:31:14,120 --> 00:31:15,450 >> 但現在,讓我們奮進。 711 00:31:15,450 --> 00:31:20,120 雖然它原來有一個 在C函數所謂的F獲得CSV。 712 00:31:20,120 --> 00:31:24,570 文件拿到CSV,採用一個 文件句柄作為參數, 713 00:31:24,570 --> 00:31:28,810 並前進然後,行,由 行,由行,讀成一排。 714 00:31:28,810 --> 00:31:30,964 所以它只是讀取一行 從該文件的文本。 715 00:31:30,964 --> 00:31:34,130 但是,什麼是好的關於這個功能, 它不只是遞給我了一行字。 716 00:31:34,130 --> 00:31:37,320 它看起來對那些逗號, 並分析了線。 717 00:31:37,320 --> 00:31:41,740 並解析行的意思分裂 它在這方面的某些值。 718 00:31:41,740 --> 00:31:45,510 >> 換句話說,美元符號 行是一個變量這是 719 00:31:45,510 --> 00:31:47,010 要給我一堆指標。 720 00:31:47,010 --> 00:31:49,635 這將是對 在我的CSV第一列。 721 00:31:49,635 --> 00:31:52,510 這將是第二 列,這將是第三次, 722 00:31:52,510 --> 00:31:53,968 這將是第四次。 723 00:31:53,968 --> 00:31:57,440 由於召回和Excel的不 配合我們最後一次這樣做, 724 00:31:57,440 --> 00:32:03,350 但如果我下載的工作人員點CSV。 725 00:32:03,350 --> 00:32:04,940 哎呦,不要重命名。 726 00:32:04,940 --> 00:32:09,120 如果我下載的工作人員點 CSV,並嘗試打開它, 727 00:32:09,120 --> 00:32:12,510 我已經registered--哦,我 因為上次沒有更新Excel中。 728 00:32:12,510 --> 00:32:15,880 你會看到,工作人員點 CSV,我有四列。 729 00:32:15,880 --> 00:32:18,720 所以,當我閱讀 對於艾比第一排位置, 730 00:32:18,720 --> 00:32:23,582 美元符號0行是艾比, 美元符號排的是里昂, 731 00:32:23,582 --> 00:32:27,740 美元符號排二是她的號碼, 然後她的電話的運營商。 732 00:32:27,740 --> 00:32:28,410 >> 所以這就是所有。 733 00:32:28,410 --> 00:32:30,740 這是很好的,因為我 不必現在找出 734 00:32:30,740 --> 00:32:32,800 其中,所有這些逗號實際上是。 735 00:32:32,800 --> 00:32:35,300 所以,我要繼續前進, 做到這一點,因為定義, 736 00:32:35,300 --> 00:32:38,960 我會說,她的名字是 行支架零的承諾。 737 00:32:38,960 --> 00:32:41,150 而且我要grab--和 其實,你知道嗎? 738 00:32:41,150 --> 00:32:42,780 我不會擔心 她的名字,在這種情況下。 739 00:32:42,780 --> 00:32:43,988 我要保持它的簡單。 740 00:32:43,988 --> 00:32:48,610 我會做她的號碼是 行支架二,我想。 741 00:32:48,610 --> 00:32:50,510 而她的載體在哪裡? 742 00:32:50,510 --> 00:32:53,405 連續三年,一個比。 743 00:32:53,405 --> 00:32:54,280 所以沒有什麼新的存在。 744 00:32:54,280 --> 00:32:56,770 這只是零的索引到一個數組。 745 00:32:56,770 --> 00:32:58,760 >> 而現在,我要做到以下幾點。 746 00:32:58,760 --> 00:33:03,930 如果承運人等於等於AT&T-- 我只是有一個loop-- 747 00:33:03,930 --> 00:33:06,790 我想創建一個電子郵件 地址看起來是這樣的。 748 00:33:06,790 --> 00:33:12,320 這將是617-555-1212 在,它是什麼,text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 就是我想做的事情。 750 00:33:13,490 --> 00:33:15,260 那麼,如何做到這一點? 751 00:33:15,260 --> 00:33:16,730 我要做到以下幾點。 752 00:33:16,730 --> 00:33:22,460 她的地址將是她的號碼, 現在,讓我繼續前進,做到這一點。 753 00:33:22,460 --> 00:33:23,760 這是一些時髦的語法。 754 00:33:23,760 --> 00:33:27,250 我所能做的百分比把戲, 但我可以真正地做到這一點。 755 00:33:27,250 --> 00:33:29,900 >> 因此,這是一個PHP的事情,但 讓我們來看看我在做什麼。 756 00:33:29,900 --> 00:33:31,630 美元簽下地址 左,只是一個變量。 757 00:33:31,630 --> 00:33:32,300 給我一個變量。 758 00:33:32,300 --> 00:33:33,390 我沒有指定類型。 759 00:33:33,390 --> 00:33:34,570 PHP會看著辦吧。 760 00:33:34,570 --> 00:33:36,580 在右手側, 什麼是數據類型 761 00:33:36,580 --> 00:33:38,399 在這整個事情 右手邊? 762 00:33:38,399 --> 00:33:40,190 看起來像一個字符串, 因為有雙 763 00:33:40,190 --> 00:33:42,280 報價在最左邊和最右邊。 764 00:33:42,280 --> 00:33:44,210 現在有在這裡一些時髦的新語法。 765 00:33:44,210 --> 00:33:47,550 還有的花括號, 美元符號數。 766 00:33:47,550 --> 00:33:52,860 不過,要猜測那是什麼語法 大概告訴PHP為我做? 767 00:33:52,860 --> 00:33:53,360 是啊。 768 00:33:53,360 --> 00:33:54,630 只需插入值出現。 769 00:33:54,630 --> 00:33:55,530 因此,沒有百分之秒。 770 00:33:55,530 --> 00:33:58,160 我們可以使用打印樓或s 打印F或類似的東西, 771 00:33:58,160 --> 00:34:00,070 但是PHP和大量的 更高層次的語言, 772 00:34:00,070 --> 00:34:03,070 你會看到,你可以 做同樣的事情在功能上,也許 773 00:34:03,070 --> 00:34:04,019 六種不同的方式。 774 00:34:04,019 --> 00:34:06,310 因此它開始成為 設計或風格的問題。 775 00:34:06,310 --> 00:34:09,902 所以,這只是一個神秘的尋找方法 的說法,給我一個電子郵件地址, 776 00:34:09,902 --> 00:34:12,110 但是插件中的數目 這些大括號之間。 777 00:34:12,110 --> 00:34:15,440 而且大括號不會 最終在最後地址。 778 00:34:15,440 --> 00:34:18,010 >> 現在我們可以跳過一些 這些線路時間的緣故。 779 00:34:18,010 --> 00:34:21,210 因此,如果在載體等於 等於verHorizo​​n--哎呦, 780 00:34:21,210 --> 00:34:24,989 Verizon--我想要做的事 非常相似的,其中的地址獲取, 781 00:34:24,989 --> 00:34:27,569 報價,引文結束,數以text.ATT.net。 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 然後,我可以做同樣的 為載流子的其餘部分的事情。 784 00:34:35,050 --> 00:34:37,090 不過,我只是做點,點,點了吧。 785 00:34:37,090 --> 00:34:43,050 現在讓我們假設 我想補充陣,推。 786 00:34:43,050 --> 00:34:45,969 我想添加到 陣列,稱為地址。 787 00:34:45,969 --> 00:34:50,409 >> 這個地址,你這是怎麼 添加的東西在PHP中的數組。 788 00:34:50,409 --> 00:34:51,610 你並不需要做的malloc。 789 00:34:51,610 --> 00:34:53,068 你不必調整數組。 790 00:34:53,068 --> 00:34:54,259 你剛才說的陣列,推動。 791 00:34:54,259 --> 00:34:57,300 你怎麼想push--什麼陣 你要推的東西上? 792 00:34:57,300 --> 00:34:58,000 地址。 793 00:34:58,000 --> 00:34:59,550 要推到地址是什麼? 794 00:34:59,550 --> 00:35:00,350 地址。 795 00:35:00,350 --> 00:35:02,430 而事實上,如果你 真的要聰明一點, 796 00:35:02,430 --> 00:35:05,610 一些語法糖 為此,可以這麼說, 797 00:35:05,610 --> 00:35:10,230 這只是意味著你怎麼能做到這一點的 越漂亮的方式,將做到這一點。 798 00:35:10,230 --> 00:35:14,060 這也有越來越多的影響 地址數組的大小之一, 799 00:35:14,060 --> 00:35:17,130 然後撲通額外 電子郵件地址進去。 800 00:35:17,130 --> 00:35:17,630 是啊。 801 00:35:17,630 --> 00:35:19,730 >> 聽眾:[聽不清] 802 00:35:19,730 --> 00:35:22,520 >> 揚聲器1:上一個錯字 其他if--哦,載體。 803 00:35:22,520 --> 00:35:23,070 這是確定的。 804 00:35:23,070 --> 00:35:26,971 它也不會喜歡我的失敗 實施這一計劃的一部分, 805 00:35:26,971 --> 00:35:27,470 以後。 806 00:35:27,470 --> 00:35:28,810 不過謝謝你的追趕。 807 00:35:28,810 --> 00:35:30,671 還有一個錯誤。 808 00:35:30,671 --> 00:35:31,170 謝謝。 809 00:35:31,170 --> 00:35:33,746 我們希望這是Vtext.com。 810 00:35:33,746 --> 00:35:34,340 是。 811 00:35:34,340 --> 00:35:34,839 好的。 812 00:35:34,839 --> 00:35:36,330 那麼,這給我們? 813 00:35:36,330 --> 00:35:38,224 我們已經寫打開文件的代碼。 814 00:35:38,224 --> 00:35:40,390 我們有一個循環迭代 在文件中的行。 815 00:35:40,390 --> 00:35:43,650 我們有增加的代碼我 陣,一個在一時間,正確地 816 00:35:43,650 --> 00:35:44,790 格式的電子郵件地址。 817 00:35:44,790 --> 00:35:48,480 因此,所有真正的仍然是送 一個電子郵件給這些人。 818 00:35:48,480 --> 00:35:52,830 >> 所以,我已經先行一步,並 準備好自己如下。 819 00:35:52,830 --> 00:35:59,580 我打算在這裡做is--,讓我們 繼續前進,跳到一些實際的代碼, 820 00:35:59,580 --> 00:36:00,620 它看起來像這樣。 821 00:36:00,620 --> 00:36:02,950 因此,這裡的預焙 版本我前面寫的。 822 00:36:02,950 --> 00:36:04,700 並注意我完成 實施衝刺。 823 00:36:04,700 --> 00:36:06,130 我完成了實施T-Mobile公司。 824 00:36:06,130 --> 00:36:08,020 我完成了實施維珍移動。 825 00:36:08,020 --> 00:36:09,622 我會提前道歉。 826 00:36:09,622 --> 00:36:12,080 有幾個運營商的 一些學生在課堂上有 827 00:36:12,080 --> 00:36:14,640 我沒有打擾枚舉 在if條件在這裡。 828 00:36:14,640 --> 00:36:16,015 所以,不是所有的文本都將熄滅。 829 00:36:16,015 --> 00:36:17,556 但是讓我們看看還有什麼我需要做的。 830 00:36:17,556 --> 00:36:19,660 我關閉文件,只需 像P設定四人。 831 00:36:19,660 --> 00:36:20,835 >> 這是新的語法。 832 00:36:20,835 --> 00:36:22,710 我們會看到一個小 這一點隨著時間的推移, 833 00:36:22,710 --> 00:36:24,450 尤其是與對置七,八。 834 00:36:24,450 --> 00:36:28,140 但是,這是語法創建 一種特殊類型的結構。 835 00:36:28,140 --> 00:36:31,490 原來,有一個庫, 自帶PHP,稱為PHP的郵件。 836 00:36:31,490 --> 00:36:33,840 其在生活中的目的是 編程方式發送電子郵件。 837 00:36:33,840 --> 00:36:36,840 它的代碼別人寫的 使得它更容易為我們發送電子郵件, 838 00:36:36,840 --> 00:36:39,131 所以我們沒有保持 來回到Gmail, 839 00:36:39,131 --> 00:36:41,151 並粘貼在人們的電子郵件地址。 840 00:36:41,151 --> 00:36:44,150 有一大堆線在這裡 那說實話,我只是種複製 841 00:36:44,150 --> 00:36:45,660 並粘貼在文檔。 842 00:36:45,660 --> 00:36:47,409 而事實上,如果你 好奇,我將所有 843 00:36:47,409 --> 00:36:50,550 文件的網址 在代碼中,我們將在以後發布。 844 00:36:50,550 --> 00:36:52,360 並注意中 的事情我做 845 00:36:52,360 --> 00:36:55,710 是的,我要告訴這個庫, 使用Gmail的服務器,對不對? 846 00:36:55,710 --> 00:36:59,360 SMTP我們短暫交談了解我們的時候 是在耶魯大學關於是簡單的郵件 847 00:36:59,360 --> 00:37:00,110 傳輸協議。 848 00:37:00,110 --> 00:37:02,920 這是協議 用於發送郵件的服務器, 849 00:37:02,920 --> 00:37:05,150 和that's--的Gmail擁有其中的一個。 850 00:37:05,150 --> 00:37:07,290 端口,這是TCP端口號。 851 00:37:07,290 --> 00:37:09,630 這是很好,如果你 還沒有看到587之前。 852 00:37:09,630 --> 00:37:11,420 只是知道,從文檔。 853 00:37:11,420 --> 00:37:12,250 這是我的用戶名。 854 00:37:12,250 --> 00:37:13,670 我將使用CF50機器人。 855 00:37:13,670 --> 00:37:16,690 而就在那一刻,我只是要 輸入機器人的實際密碼。 856 00:37:16,690 --> 00:37:18,690 然後到這裡,發現剩下。 857 00:37:18,690 --> 00:37:22,840 >> 我從地址設為我 在CS50.net進行BOT。 858 00:37:22,840 --> 00:37:26,240 我想我不會後悔發送 短信800人的 859 00:37:26,240 --> 00:37:30,590 說,想你,愛CS50機器人,也許 對於那些誰今天來不了了。 860 00:37:30,590 --> 00:37:33,160 然後在第76行,我該怎麼辦? 861 00:37:33,160 --> 00:37:39,010 這種看起來像C的所以對我 等於0,N equals--現在算上是新的。 862 00:37:39,010 --> 00:37:42,077 事實證明,如果你想獲得 事情在一個陣列的數量, 863 00:37:42,077 --> 00:37:43,660 你不必再記住它。 864 00:37:43,660 --> 00:37:45,370 你可以只問 函數調用次數, 865 00:37:45,370 --> 00:37:48,320 它會告訴你有多少 地址是在該陣列。 866 00:37:48,320 --> 00:37:53,210 >> 然後,我要補充 地址的電子郵件。 867 00:37:53,210 --> 00:37:55,090 我知道這個來自 使用的文檔。 868 00:37:55,090 --> 00:37:56,900 有一個附加地址的功能。 869 00:37:56,900 --> 00:37:58,980 現在發現有 是一塊語法。 870 00:37:58,980 --> 00:38:01,470 我們以前見過這個 在C類似的精神。 871 00:38:01,470 --> 00:38:04,100 你可以認為美元符號 郵件作為一個變量,它是。 872 00:38:04,100 --> 00:38:08,100 但它的內部結構 這不僅屬性, 873 00:38:08,100 --> 00:38:09,400 變量,如果你願意。 874 00:38:09,400 --> 00:38:13,480 但事實證明,在PHP中,這 是一個面向對象的編程 875 00:38:13,480 --> 00:38:16,520 語言,像Java如果你把APCS。 876 00:38:16,520 --> 00:38:21,420 >> 美元符號的郵件,如果你想用於: 它也有功能在它的內部, 877 00:38:21,420 --> 00:38:22,380 或方法。 878 00:38:22,380 --> 00:38:24,720 因此,這是說 特殊的PHP郵件 879 00:38:24,720 --> 00:38:29,280 庫,如果我有一個變量物, 如果我要調用一個函數, 880 00:38:29,280 --> 00:38:31,559 帶有該庫, 對於今天的目的, 881 00:38:31,559 --> 00:38:33,100 只知道你使用的箭頭符號。 882 00:38:33,100 --> 00:38:34,150 有沒有點符號。 883 00:38:34,150 --> 00:38:35,220 這只是箭頭。 884 00:38:35,220 --> 00:38:36,380 但是,這不是一個指針。 885 00:38:36,380 --> 00:38:38,680 這只是從C的語法借來的。 886 00:38:38,680 --> 00:38:43,620 於是呼裡面添加地址 這個庫的對象或變量。 887 00:38:43,620 --> 00:38:44,440 >> 好的。 888 00:38:44,440 --> 00:38:45,570 這就是神奇的線。 889 00:38:45,570 --> 00:38:46,740 這就是我如何發送電子郵件。 890 00:38:46,740 --> 00:38:50,040 這是開放的等效 Gmail的,打字出來,並擊中發送。 891 00:38:50,040 --> 00:38:54,870 但它會代替發 通過電子郵件發送到這個地址,這身搭配, 892 00:38:54,870 --> 00:38:57,120 從CS50機器人。 893 00:38:57,120 --> 00:38:58,710 現在重點線。 894 00:38:58,710 --> 00:39:03,130 這條線是缺席像2011 當我想到我上次嘗試這個。 895 00:39:03,130 --> 00:39:05,640 當然,這條線出現, 清除地址。 896 00:39:05,640 --> 00:39:07,920 因此,從邏輯上講,如果我 不清除地址 897 00:39:07,920 --> 00:39:11,740 每次迭代後,第一 電子郵件或短信去愛麗絲, 898 00:39:11,740 --> 00:39:14,320 第二次去 Alice和Bob,第三 899 00:39:14,320 --> 00:39:17,870 去Alice和Bob和Charlie, 因此非常昂貴的錯誤 900 00:39:17,870 --> 00:39:18,760 我做了一年。 901 00:39:18,760 --> 00:39:21,080 >> 所以,讓我們來看看。 902 00:39:21,080 --> 00:39:24,200 有什麼問題 之前,我們向您發送的所有文字 903 00:39:24,200 --> 00:39:28,210 有10%的概率消息? 904 00:39:28,210 --> 00:39:28,940 有問題嗎? 905 00:39:28,940 --> 00:39:30,330 好的。 906 00:39:30,330 --> 00:39:36,100 讓我走在這裡的變化 密碼是什麼應該工作, 907 00:39:36,100 --> 00:39:37,780 將有可能獲得通過的Gmail列入黑名單。 908 00:39:37,780 --> 00:39:39,821 因此,他們可能不會都去 出來,因為他們可能 909 00:39:39,821 --> 00:39:42,960 不喜歡我們送800電子郵件 在fo​​r循環中的一次。 910 00:39:42,960 --> 00:39:45,140 因為這不是 特別是人的行為。 911 00:39:45,140 --> 00:39:47,460 >> 哦,我要改變一件事。 912 00:39:47,460 --> 00:39:50,850 在最頂端,我要去sent-- 更改文件給學生點CSV。 913 00:39:50,850 --> 00:39:55,420 我不會開這一點,但是這是一個 相同的CSV文件,沒有員工100人, 914 00:39:55,420 --> 00:39:58,970 但800名學生,剛 來自哈佛,耶魯,因為 915 00:39:58,970 --> 00:40:00,207 有月休會這個星期。 916 00:40:00,207 --> 00:40:03,290 它似乎是那種一個混蛋的事 做文字所有的人,為什麼 917 00:40:03,290 --> 00:40:04,750 他們不是在度假類。 918 00:40:04,750 --> 00:40:05,250 這是確定的。 919 00:40:05,250 --> 00:40:08,310 只是哈佛的學生 今天該文件的內部。 920 00:40:08,310 --> 00:40:12,320 現在,讓我們回到 我的終端窗口。 921 00:40:12,320 --> 00:40:13,710 我有點緊張。 922 00:40:13,710 --> 00:40:22,000 >> 行,所以現在我要進入 目錄,和PHP文本點PHP。 923 00:40:22,000 --> 00:40:24,950 如何約一勇敢的志願者? 924 00:40:24,950 --> 00:40:26,690 所以,我不希望這在我身上。 925 00:40:26,690 --> 00:40:28,410 好了,上來吧。 926 00:40:28,410 --> 00:40:29,162 你叫什麼名字? 927 00:40:29,162 --> 00:40:29,662 MAYA:瑪雅。 928 00:40:29,662 --> 00:40:30,328 揚聲器1:瑪雅。 929 00:40:30,328 --> 00:40:31,610 上來吧,瑪雅。 930 00:40:31,610 --> 00:40:34,120 好的。 931 00:40:34,120 --> 00:40:35,389 讓我們來看看,如果這個工程。 932 00:40:35,389 --> 00:40:38,430 我把我自己的電子郵件地址,在 file--文件在我自己的電話號碼, 933 00:40:38,430 --> 00:40:40,110 讓希望我會得到一個為好。 934 00:40:40,110 --> 00:40:40,819 認識你很高興。 935 00:40:40,819 --> 00:40:41,443 MAYA:同樣。 936 00:40:41,443 --> 00:40:44,510 揚聲器1:所以你需要做的就是 按回車鍵發送800條短信, 937 00:40:44,510 --> 00:40:45,466 如果我沒有搞砸。 938 00:40:45,466 --> 00:40:51,106 939 00:40:51,106 --> 00:40:51,606 美觀大方。 940 00:40:51,606 --> 00:40:55,556 941 00:40:55,556 --> 00:40:58,430 可能需要一段時間,統計學, 直到我們得到一個電子郵件addr​​ess-- 942 00:40:58,430 --> 00:41:00,573 一個短信說的 在房間裡現在。 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 讓我們流連忘返,看看。 945 00:41:05,390 --> 00:41:06,940 >> 聽眾:[呼嘯] 946 00:41:06,940 --> 00:41:08,270 >> 揚聲器1:哦,是的。 947 00:41:08,270 --> 00:41:09,230 >> 聽眾:哦,疑難雜症。 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> 揚聲器1:For循環are--這 是不是因為PHP慢。 950 00:41:19,180 --> 00:41:21,810 這是緩慢的,因為Gmail的 節流是美國,而不是 951 00:41:21,810 --> 00:41:25,170 讓我們比派遣更多 像每秒一個電子郵件。 952 00:41:25,170 --> 00:41:26,300 什麼? 953 00:41:26,300 --> 00:41:29,990 這是一個很難的事情對我來說,測試在 家裡只有我和我一個電話,就這樣。 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 那是希望的機器人? 956 00:41:41,111 --> 00:41:41,610 是嗎? 957 00:41:41,610 --> 00:41:42,110 沒有? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 說是的。 960 00:41:46,620 --> 00:41:47,479 沒有? 961 00:41:47,479 --> 00:41:49,374 這是從一個朋友? 962 00:41:49,374 --> 00:41:49,874 尷尬。 963 00:41:49,874 --> 00:41:50,374 確定。 964 00:41:50,374 --> 00:41:56,580 965 00:41:56,580 --> 00:42:00,090 很肯定它的工作雖然。 966 00:42:00,090 --> 00:42:00,910 嗯哦。 967 00:42:00,910 --> 00:42:03,190 他們black--哦,等一下。 968 00:42:03,190 --> 00:42:04,280 哦,你知道嗎? 969 00:42:04,280 --> 00:42:06,100 請稍等。 970 00:42:06,100 --> 00:42:07,802 只有Maya和我 - 米婭,是嗎? 971 00:42:07,802 --> 00:42:08,301 MAYA:瑪雅。 972 00:42:08,301 --> 00:42:12,110 揚聲器1:瑪雅,要 知道我做錯了什麼在這裡。 973 00:42:12,110 --> 00:42:14,890 哦,等一下。 974 00:42:14,890 --> 00:42:23,320 我想我只是送100 短信555-1212。 975 00:42:23,320 --> 00:42:24,346 待機。 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 我不能贏得任何一年。 978 00:42:29,270 --> 00:42:30,180 確定。 979 00:42:30,180 --> 00:42:30,680 瑪雅? 980 00:42:30,680 --> 00:42:33,530 981 00:42:33,530 --> 00:42:36,219 修復了後期製作。 982 00:42:36,219 --> 00:42:36,718 該死! 983 00:42:36,718 --> 00:42:39,430 984 00:42:39,430 --> 00:42:40,390 從地址之後。 985 00:42:40,390 --> 00:42:41,301 OK,支持。 986 00:42:41,301 --> 00:42:41,800 抱歉。 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 這是痛苦的,每年。 989 00:42:47,080 --> 00:42:48,640 OK,一個瞬間。 990 00:42:48,640 --> 00:42:50,530 這是好事。 991 00:42:50,530 --> 00:42:54,010 我不是要做到這一點。 992 00:42:54,010 --> 00:42:55,470 打印地址。 993 00:42:55,470 --> 00:42:56,030 OK,支持。 994 00:42:56,030 --> 00:43:01,340 打印地址,支架我。 995 00:43:01,340 --> 00:43:02,710 是的,我喜歡這樣。 996 00:43:02,710 --> 00:43:10,220 美元sign--好吧,我會解釋什麼,我 在做了一會兒,我已經運行此之後。 997 00:43:10,220 --> 00:43:11,670 每年。 998 00:43:11,670 --> 00:43:13,125 OK,我們開始吧。 999 00:43:13,125 --> 00:43:15,750 我有just--,我不希望 展現每個人的電話號碼, 1000 00:43:15,750 --> 00:43:17,740 但是瑪雅人可以確認 與點頭, 1001 00:43:17,740 --> 00:43:20,800 她認為每個人的 在類的電話號碼 1002 00:43:20,800 --> 00:43:26,750 我要去複製到 一個名為Gmail中。 1003 00:43:26,750 --> 00:43:30,860 如果在Gmail中,有什麼事我們想說的? 1004 00:43:30,860 --> 00:43:32,137 想你。 1005 00:43:32,137 --> 00:43:33,220 Love--那不是我。 1006 00:43:33,220 --> 00:43:35,230 我還沒有打送呢。 1007 00:43:35,230 --> 00:43:39,450 因此,讓我們繼續前進,做 這一點,如果我可以進行放大。 1008 00:43:39,450 --> 00:43:40,300 確定。 1009 00:43:40,300 --> 00:43:42,480 所以我使用了一個名為Gmail的,現在的程序。 1010 00:43:42,480 --> 00:43:44,490 如果瑪雅人,你想 單擊發送按鈕, 1011 00:43:44,490 --> 00:43:46,970 我們將模擬什麼 代碼應該做的。 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> 什麼? 1014 00:43:55,254 --> 00:43:56,062 >> [BEEPS] 1015 00:43:56,062 --> 00:43:56,870 >> 聽眾:是的。 1016 00:43:56,870 --> 00:43:58,030 >> 揚聲器1:是? 1017 00:43:58,030 --> 00:43:59,210 救贖? 1018 00:43:59,210 --> 00:44:00,427 >> 聽眾:是的。 1019 00:44:00,427 --> 00:44:01,260 揚聲器1:小姐你。 1020 00:44:01,260 --> 00:44:02,718 而我要送出去休息。 1021 00:44:02,718 --> 00:44:06,060 我送出了一半,因為我沒想到 Gmail的將讓那些經歷。 1022 00:44:06,060 --> 00:44:12,410 所以只記得,就在今天 你知道我可以使用Gmail。 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 這是可怕的。 1025 00:44:15,810 --> 00:44:17,140 一個大的掌聲瑪雅。 1026 00:44:17,140 --> 00:44:18,980 謝謝。 1027 00:44:18,980 --> 00:44:21,280 好吧,就這樣。 1028 00:44:21,280 --> 00:44:22,210 什麼 1029 00:44:22,210 --> 00:44:23,140 >> [BEEPS] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> 我們得到了幾個聲,是嗎? 1032 00:44:26,580 --> 00:44:27,080 好的。 1033 00:44:27,080 --> 00:44:30,590 現在,我要得到700真 不幸的電子郵件從同學回來。 1034 00:44:30,590 --> 00:44:32,400 所以,至少我們會看到 如果這是值得的。 1035 00:44:32,400 --> 00:44:33,300 那麼問題出在哪裡? 1036 00:44:33,300 --> 00:44:35,300 我會想出了什麼 事後錯了, 1037 00:44:35,300 --> 00:44:38,340 但只是看多麼容易 它是做在PHP。 1038 00:44:38,340 --> 00:44:44,598 那麼,我們能不能做到,現在 我們有這個表現的PHP。 1039 00:44:44,598 --> 00:44:45,970 這was--這是可怕的。 1040 00:44:45,970 --> 00:44:46,480 好的。 1041 00:44:46,480 --> 00:44:48,430 所以這是我應該出去了。 1042 00:44:48,430 --> 00:44:52,770 這是我今天早上測試我的 手機,我的手機的實際截圖。 1043 00:44:52,770 --> 00:44:56,180 >> 但是,現在讓我們來看看為什麼 我們實際上引入 1044 00:44:56,180 --> 00:44:57,840 所有這些東西擺在首位。 1045 00:44:57,840 --> 00:45:01,625 所以目標不是 寫這些程序 1046 00:45:01,625 --> 00:45:03,250 寫在命令行,對吧? 1047 00:45:03,250 --> 00:45:05,000 所以我寫了一個簡單 你好程序,我寫的 1048 00:45:05,000 --> 00:45:09,155 一個小程序,它條件語句, 和使用的讀取線等等。 1049 00:45:09,155 --> 00:45:11,530 而從理論上講,我只是寫 一個程序發送出去 1050 00:45:11,530 --> 00:45:14,290 800條短信,給予或採取800。 1051 00:45:14,290 --> 00:45:16,830 並且該程序是所有 還是在命令行中運行。 1052 00:45:16,830 --> 00:45:18,538 這當然是 沒有網絡,對不對? 1053 00:45:18,538 --> 00:45:22,160 現在的目標是開始使用 什麼我要求是一個更容易使用 1054 00:45:22,160 --> 00:45:24,720 語言,敢說更 強大的語言來講 1055 00:45:24,720 --> 00:45:27,104 的功能 隨之而來,開始 1056 00:45:27,104 --> 00:45:29,850 編寫生成網頁代碼。 1057 00:45:29,850 --> 00:45:33,248 >> 所以,最後一次和最後一周, 我們談到了HTTP和HTML。 1058 00:45:33,248 --> 00:45:36,350 什麼是好的關於HTML 是,它只是單純的文字。 1059 00:45:36,350 --> 00:45:38,220 而文字是肯定 東西,你可以 1060 00:45:38,220 --> 00:45:42,040 按字面調用打印打印 f函數,或打印功能。 1061 00:45:42,040 --> 00:45:46,160 事實上,這就是PHP是 現在要允許我們這樣做。 1062 00:45:46,160 --> 00:45:48,610 所以這些例子中,我們 在今天的源代碼, 1063 00:45:48,610 --> 00:45:51,610 除了一些代碼 我把那裡剛才, 1064 00:45:51,610 --> 00:45:55,440 我們有這樣的實例程序。 1065 00:45:55,440 --> 00:45:58,760 Froshims,或新生 校內體育活動,竟是 1066 00:45:58,760 --> 00:46:01,500 第課外活動之一 我參與與年前。 1067 00:46:01,500 --> 00:46:03,750 而我和我的室友,與 一些其他的孩子在校園裡, 1068 00:46:03,750 --> 00:46:05,280 用於運行froshims程序。 1069 00:46:05,280 --> 00:46:07,420 我收到我的短信了。 1070 00:46:07,420 --> 00:46:14,030 >> 現在,所以我們,早在一天,所以這 是1996年左右,有一個互聯網, 1071 00:46:14,030 --> 00:46:17,395 但沒有process--有 沒有網站froshims。 1072 00:46:17,395 --> 00:46:20,270 所以,如果你想報名參加 足球或排球也好, 1073 00:46:20,270 --> 00:46:22,240 您填寫這件事 稱為一張紙, 1074 00:46:22,240 --> 00:46:25,060 你會穿過哈佛走 院子裡,你會滑動 1075 00:46:25,060 --> 00:46:29,230 到郵件插槽監考官,誰 在威格爾斯沃,宿舍之一。 1076 00:46:29,230 --> 00:46:31,270 這是你註冊的。 1077 00:46:31,270 --> 00:46:33,570 他或她會再 撰寫一封電子郵件給您 1078 00:46:33,570 --> 00:46:36,514 手動,很像我 只是在這裡做與Maya, 1079 00:46:36,514 --> 00:46:38,930 然後你會得到證實 為已被註冊。 1080 00:46:38,930 --> 00:46:40,840 >> 因此,這就像低 掛果樹,可以這麼說。 1081 00:46:40,840 --> 00:46:42,930 這是一種愚蠢的 我們使用紙本。 1082 00:46:42,930 --> 00:46:45,024 我希望我們能 只是去一個網站上, 1083 00:46:45,024 --> 00:46:47,440 或有新生去一個 網站,註冊為體育, 1084 00:46:47,440 --> 00:46:50,398 而只是自動完成很多東西 通過把他們的名字和電子郵件 1085 00:46:50,398 --> 00:46:51,850 等等到數據庫中。 1086 00:46:51,850 --> 00:46:56,510 而事實上,在第一個版本 該網站,使用超級難看的HTML, 1087 00:46:56,510 --> 00:46:58,195 可能看起來是這樣的。 1088 00:46:58,195 --> 00:47:01,070 它實際上是具有諷刺意味,更 尷尬的看著比這回 1089 00:47:01,070 --> 00:47:01,460 然後。 1090 00:47:01,460 --> 00:47:02,890 但我用的編程語言。 1091 00:47:02,890 --> 00:47:06,060 而不是PHP,而是叫Perl中, 這是一個較舊的語言, 1092 00:47:06,060 --> 00:47:07,251 但在精神上非常相似。 1093 00:47:07,251 --> 00:47:09,000 而我只是完全 教給自己。 1094 00:47:09,000 --> 00:47:12,208 我花了一段時間來弄明白, 問很多朋友的問題。 1095 00:47:12,208 --> 00:47:14,080 但是想法有 是完全一樣的。 1096 00:47:14,080 --> 00:47:18,050 因為什麼PHP真的設計 對於未在命令行的東西 1097 00:47:18,050 --> 00:47:20,450 我們只是打了, 但對於Web編程。 1098 00:47:20,450 --> 00:47:24,960 >> 這真是綁在它的功能 設置為Web,如下。 1099 00:47:24,960 --> 00:47:26,370 這是froshims。 1100 00:47:26,370 --> 00:47:28,720 如果我想 以這種形式註冊, 1101 00:47:28,720 --> 00:47:30,930 這是相當難看, 當然,還讓我繼續前進 1102 00:47:30,930 --> 00:47:34,440 並且是一個不太舒服的學生, 和任何運動的馬修斯, 1103 00:47:34,440 --> 00:47:35,630 點擊註冊。 1104 00:47:35,630 --> 00:47:39,780 我想要的是能夠做的就是 從表單提交的信息, 1105 00:47:39,780 --> 00:47:42,400 沒有谷歌的服務器一樣 我們做了最後一次,完全 1106 00:47:42,400 --> 00:47:47,100 通過使用他們的後端欺騙,我 要實現自己的後端代碼。 1107 00:47:47,100 --> 00:47:51,410 這意味著寫PHP 即住在一個URL編碼 1108 00:47:51,410 --> 00:47:54,180 這種形式的數據可以提交到。 1109 00:47:54,180 --> 00:47:57,510 >> 然後你的代碼, 用PHP編寫的一台服務器上, 1110 00:47:57,510 --> 00:47:59,400 然後可以響應該用戶輸入。 1111 00:47:59,400 --> 00:48:03,287 就像他或她的名字,還是舒適程度, 或宿舍,然後用它做什麼。 1112 00:48:03,287 --> 00:48:05,120 在這種情況下,我只 愣神打印出來 1113 00:48:05,120 --> 00:48:06,750 為文本,這是不是所有的漂亮。 1114 00:48:06,750 --> 00:48:09,590 但是,你當然可以 想像一下,如果你知道HTML, 1115 00:48:09,590 --> 00:48:13,010 你很快就會知道如何產生 HTML與打印f和打印, 1116 00:48:13,010 --> 00:48:16,500 和類似的功能,你當然可以 生成一個漂亮的網頁,上面寫著: 1117 00:48:16,500 --> 00:48:17,929 嘿大衛,你現在註冊。 1118 00:48:17,929 --> 00:48:20,220 你是一個不太舒服 學生從馬修斯,對不對? 1119 00:48:20,220 --> 00:48:23,880 >> 你可以只用一大堆%SES的, 或大括號和美元符號 1120 00:48:23,880 --> 00:48:27,750 符號我用剛才,以 生成文本更人性化 1121 00:48:27,750 --> 00:48:28,567 莫過於此。 1122 00:48:28,567 --> 00:48:30,150 因此,讓我們來看看這個文件。 1123 00:48:30,150 --> 00:48:34,666 Froshim零點PHP看起來是這樣的。 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 當我重新加載CS50 IDE, froshim零看起來是這樣的。 1126 00:48:43,500 --> 00:48:45,700 這是froshim零點PHP。 1127 00:48:45,700 --> 00:48:47,730 而且你注意到你看這個文件? 1128 00:48:47,730 --> 00:48:49,506 >> 聽眾:[聽不清] 1129 00:48:49,506 --> 00:48:50,922 揚聲器1:對不起,大聲一點好嗎? 1130 00:48:50,922 --> 00:48:53,250 聽眾:[聽不清]這一切都在HTML。 1131 00:48:53,250 --> 00:48:57,130 而事實上,這是因為 有趣的關於PHP 1132 00:48:57,130 --> 00:48:58,880 是,它被設計 是,為了更好的 1133 00:48:58,880 --> 00:49:02,110 不論好壞,間雜 與HTML代碼。 1134 00:49:02,110 --> 00:49:05,850 而事實上,即使這 文件,froshim零點PHP, 1135 00:49:05,850 --> 00:49:11,470 在頂部一個PHP評論 它,這一切都只是HTML。 1136 00:49:11,470 --> 00:49:17,655 但相反的,如果我打開了,讓我們 比方說,登記零點PHP,這 1137 00:49:17,655 --> 00:49:19,550 只是在頂部一個很大的評論。 1138 00:49:19,550 --> 00:49:26,500 這也看起來幾乎完全 如HTML,但為了什麼? 1139 00:49:26,500 --> 00:49:29,350 行,有什麼,21顯得有些怪異。 1140 00:49:29,350 --> 00:49:32,739 >> 但是請注意,我進入PHP模式 與開放式支架問號PHP。 1141 00:49:32,739 --> 00:49:33,780 然後,我已經得到了一些東西。 1142 00:49:33,780 --> 00:49:36,724 然後在該行的末尾 幾乎我有,問號PHP。 1143 00:49:36,724 --> 00:49:38,390 這就是我所說的混合體。 1144 00:49:38,390 --> 00:49:41,910 你可以寫HTML,你只是 希望服務器吐了出來。 1145 00:49:41,910 --> 00:49:45,090 但是,如果你想要做的事 通過頁面動態中途, 1146 00:49:45,090 --> 00:49:47,699 像插入我的名字, 宿舍還是舒適度, 1147 00:49:47,699 --> 00:49:49,490 我可以用一個函數 像打印內容R,這是 1148 00:49:49,490 --> 00:49:52,492 打印遞歸的,這只是意味著 打印出這個變量,格式化 1149 00:49:52,492 --> 00:49:53,200 不過你想要的。 1150 00:49:53,200 --> 00:49:55,880 這真的不是 人類的目的,它只是 1151 00:49:55,880 --> 00:49:58,290 進行調試或診斷的目的。 1152 00:49:58,290 --> 00:49:59,460 所以這就是我是怎麼做的。 1153 00:49:59,460 --> 00:50:06,100 >> 如果我不是去froshims雙點PHP, 請注意,這種形式的操作 1154 00:50:06,100 --> 00:50:09,680 未註冊零點PHP作為 old--前一個卻呈。 1155 00:50:09,680 --> 00:50:11,222 但它註冊了兩個點PHP。 1156 00:50:11,222 --> 00:50:13,680 因此,讓我們看看這個怎麼一 行為方式略有不同。 1157 00:50:13,680 --> 00:50:15,140 如果我去成兩個版本。 1158 00:50:15,140 --> 00:50:20,430 如果在這裡,如果我註冊為大衛少 舒適,從馬修斯的宿舍, 1159 00:50:20,430 --> 00:50:21,480 註冊。 1160 00:50:21,480 --> 00:50:23,770 所以這個時候它說,你 註冊,不是真的。 1161 00:50:23,770 --> 00:50:25,370 讓我們來看看我在這裡做。 1162 00:50:25,370 --> 00:50:29,760 如果我看註冊兩個點 PHP,這有一些更多的PHP代碼。 1163 00:50:29,760 --> 00:50:35,410 這是一個有點清潔劑,雖然它 仍然包裹在這條線有點長。 1164 00:50:35,410 --> 00:50:36,260 注意這裡。 1165 00:50:36,260 --> 00:50:40,300 我打印出我的HTML標記,我的頭標籤, 我的標題標籤,頭部,身體。 1166 00:50:40,300 --> 00:50:45,410 >> 然後我開始說 像進入PHP模式。 1167 00:50:45,410 --> 00:50:48,540 而這樣的標籤,打開支架 PHP--問號PHP說, 1168 00:50:48,540 --> 00:50:53,460 哎,服務器,execute--解釋 下面的東西,PHP 1169 00:50:53,460 --> 00:50:55,030 直到看到結束標記。 1170 00:50:55,030 --> 00:50:58,590 而且即使你可能不知道的任何 其他PHP比你見過迄今為止, 1171 00:50:58,590 --> 00:51:01,290 那種你可以閱讀 它非常直觀。 1172 00:51:01,290 --> 00:51:10,670 如果名稱為空,或舒適性 空,或宿舍是空的,我該怎麼辦? 1173 00:51:10,670 --> 00:51:12,830 我說什麼給用戶? 1174 00:51:12,830 --> 00:51:15,330 您必須提供您的姓名, 舒適度,和宿舍,等等。 1175 00:51:15,330 --> 00:51:17,750 否則,我說你是 註冊,這不是真的。 1176 00:51:17,750 --> 00:51:19,190 >> 我說的不是真的 因為沒有數據庫。 1177 00:51:19,190 --> 00:51:20,200 我不這樣做與數據的任何東西。 1178 00:51:20,200 --> 00:51:22,408 我只是把它扔了 出於演示的目的。 1179 00:51:22,408 --> 00:51:24,320 現在我有點skimped超過22行。 1180 00:51:24,320 --> 00:51:26,400 還有更多的語法 有,但美元符號 1181 00:51:26,400 --> 00:51:28,320 強調文章是一種有趣的。 1182 00:51:28,320 --> 00:51:30,300 這是什麼好的關於PHP。 1183 00:51:30,300 --> 00:51:35,610 在PHP中,你有什麼被稱為 幾個超級全局變量。 1184 00:51:35,610 --> 00:51:38,430 他們是那種更 比全局變量非常重要的。 1185 00:51:38,430 --> 00:51:41,370 而這些,所有的資本 正因為如此,配備了PHP。 1186 00:51:41,370 --> 00:51:44,550 所以,如果你有一台服務器,有一個 Web服務器安裝,如Apache, 1187 00:51:44,550 --> 00:51:49,390 你安裝的語言 對於PHP,突然支持你 1188 00:51:49,390 --> 00:51:52,250 可以開始使用這些超級 在代碼中的全局變量。 1189 00:51:52,250 --> 00:51:54,330 >> 什麼是好的關於 PHP是,如果你只是 1190 00:51:54,330 --> 00:51:57,540 寫在點結尾的文件 PHP,把它放在一個Web服務器上, 1191 00:51:57,540 --> 00:52:01,260 然後提交表單給它 通過這一行動標籤和一個表單標籤, 1192 00:52:01,260 --> 00:52:05,110 在該action屬性 表單標籤,PHP和Web 1193 00:52:05,110 --> 00:52:09,360 完全計算出如何抓住 所有這些鍵值對了 1194 00:52:09,360 --> 00:52:11,633 類似問題的URL 馬克Q等於貓, 1195 00:52:11,633 --> 00:52:14,782 它會找出如何q和貓。 1196 00:52:14,782 --> 00:52:17,710 如果您提交的照片,或用戶名, 或口令喜歡的Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP會找出適合你 其中所有的數據都是。 1198 00:52:21,360 --> 00:52:23,821 它會剛剛到手 你一個關聯數組 1199 00:52:23,821 --> 00:52:27,560 所謂的美元符號下劃線後, 或美元符號下劃線得到, 1200 00:52:27,560 --> 00:52:30,590 這取決於你是否是 使用GET或POST提交。 1201 00:52:30,590 --> 00:52:32,950 而且它只會交給你 一個超級全局變量, 1202 00:52:32,950 --> 00:52:37,254 因此,如果你想獲得的名字 用戶通過該網絡提交 1203 00:52:37,254 --> 00:52:41,894 表單,你真的只是說這個名字 超級全局變量,報價, 1204 00:52:41,894 --> 00:52:43,380 引文結束,名稱。 1205 00:52:43,380 --> 00:52:46,144 和報價,引文結束的舒適度, 和報價,引文結束的宿舍。 1206 00:52:46,144 --> 00:52:48,810 而且我們要能夠做到 這和這麼多用PHP。 1207 00:52:48,810 --> 00:52:50,540 即使這是 一陣旋風在它一眼, 1208 00:52:50,540 --> 00:52:51,980 我們將更加下週深入研究。 1209 00:52:51,980 --> 00:52:54,247 我們就為大家介紹一個數據庫 這樣你實際上是 1210 00:52:54,247 --> 00:52:56,816 將開始實施 自己的電子交易based-- 1211 00:52:56,816 --> 00:52:59,150 喜歡的網站,在短短一個星期的時間。 1212 00:52:59,150 --> 00:53:02,750 所以我們會看到你下一次,和 希望你有短信。 1213 00:53:02,750 --> 00:53:05,450 再見。 1214 00:53:05,450 --> 00:53:06,950 >> [音樂播放] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [門框] 1217 00:53:12,950 --> 00:53:14,475 >> 揚聲器2:嘿。 1218 00:53:14,475 --> 00:53:15,350 揚聲器3:這是怎麼回事? 1219 00:53:15,350 --> 00:53:17,750 揚聲器2:你在做什麼? 1220 00:53:17,750 --> 00:53:19,850 揚聲器3:一個問題工作組。 1221 00:53:19,850 --> 00:53:21,050 揚聲器2:好的。 1222 00:53:21,050 --> 00:53:22,550 高五。 1223 00:53:22,550 --> 00:53:23,150 >> [高五] 1224 00:53:23,150 --> 00:53:25,584 >> 什麼are--呃,你在這裡做什麼? 1225 00:53:25,584 --> 00:53:26,750 揚聲器3:只是掛出。 1226 00:53:26,750 --> 00:53:28,134 剛從健身房回來。 1227 00:53:28,134 --> 00:53:30,050 我不由得 注意,當我們高擊掌相慶, 1228 00:53:30,050 --> 00:53:32,450 你有很粗糙的手。 1229 00:53:32,450 --> 00:53:33,950 你去健身房? 1230 00:53:33,950 --> 00:53:35,150 >> 揚聲器2:否。 1231 00:53:35,150 --> 00:53:36,650 第 1232 00:53:36,650 --> 00:53:38,450 >> 揚聲器3:哥們,你看上去蠻大的。 1233 00:53:38,450 --> 00:53:45,950 這是不好的,因為每個人都知道 8球是大男人在校園裡。 1234 00:53:45,950 --> 00:53:48,050 擊掌。 1235 00:53:48,050 --> 00:53:49,550 >> 揚聲器2:哦,不。 1236 00:53:49,550 --> 00:53:50,450 不,我想我很好。 1237 00:53:50,450 --> 00:53:52,300 我覺得我很好。 1238 00:53:52,300 --> 00:53:54,097