1 00:00:00,000 --> 00:00:03,920 >> [MUSIK BERMAIN] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> DAVID J. MALAN: Baiklah. 4 00:00:13,800 --> 00:00:15,640 Ini adalah CS50. 5 00:00:15,640 --> 00:00:17,620 Ini adalah awal minggu lapan. 6 00:00:17,620 --> 00:00:22,440 Dan anda masih ingat bahawa kita berhenti Kali terakhir melihat bahasa baru 7 00:00:22,440 --> 00:00:23,240 sama sekali. 8 00:00:23,240 --> 00:00:25,905 Bahkan, salah satu yang cukup ringan dan ia tidak bahkan 9 00:00:25,905 --> 00:00:26,940 bahasa pengaturcaraan. 10 00:00:26,940 --> 00:00:31,100 Ini adalah bahasa markup yang memungkinkan kita sebenarnya struktur dan membuat laman web. 11 00:00:31,100 --> 00:00:33,350 Dan apabila sesuatu yang lain anda sempena this-- 12 00:00:33,350 --> 00:00:35,670 atau anda tidak lama lagi akan, jika Anda tidak sudah. 13 00:00:35,670 --> 00:00:38,530 Kami akan menggunakan Cascading Style Sheets, atau CSS, yang 14 00:00:38,530 --> 00:00:40,971 adalah satu lagi jenis bahasa dengan ciri-ciri dan nilai-nilai 15 00:00:40,971 --> 00:00:43,220 yang akan membiarkan kita berbuat hal-hal seperti menukar warna 16 00:00:43,220 --> 00:00:46,010 dan mengubah kedudukan dan jenis-jenis tweak. 17 00:00:46,010 --> 00:00:49,940 Tetapi hari ini dan seterusnya, kita mula fokus pada bahasa yang lebih kuat, 18 00:00:49,940 --> 00:00:52,810 bahasa pengaturcaraan yang sebenarnya seperti PHP. 19 00:00:52,810 --> 00:00:54,880 >> Jadi PHP telah wujud untuk beberapa waktu. 20 00:00:54,880 --> 00:00:56,810 Dan seperti yang anda akan lihat, dirancang terutama 21 00:00:56,810 --> 00:01:00,280 awal untuk sebenar digunakan dalam pembangunan web 22 00:01:00,280 --> 00:01:02,360 dan benar-benar menghasilkan laman web. 23 00:01:02,360 --> 00:01:04,849 Jadi apa jenis ciri tidak bahasa 24 00:01:04,849 --> 00:01:10,040 perlukan untuk membuat web halaman dinamik dengan itu? 25 00:01:10,040 --> 00:01:14,760 >> Dalam erti kata lain, jika anda mahu untuk menghasilkan dynamically-- kandungan seperti Facebook 26 00:01:14,760 --> 00:01:19,480 Newsfeed, yang berubah terus-menerus, atau mesej segera yang muncul dari semasa 27 00:01:19,480 --> 00:01:21,872 untuk time-- seperti apa sekeping utama fungsi 28 00:01:21,872 --> 00:01:24,580 Anda perlukan dalam bahasa pengaturcaraan yang akan membiarkan anda secara dinamik 29 00:01:24,580 --> 00:01:28,070 mencetak maklumat baru ke skrin? 30 00:01:28,070 --> 00:01:28,685 >> PELAJAR: Kod. 31 00:01:28,685 --> 00:01:29,560 DAVID J. MALAN: Kod. 32 00:01:29,560 --> 00:01:30,440 OK. 33 00:01:30,440 --> 00:01:31,995 Kami akan mengambil. 34 00:01:31,995 --> 00:01:35,310 Sedikit lebih tepat. 35 00:01:35,310 --> 00:01:37,639 Maksud saya, kita boleh melakukannya ini dengan C, terus terang. 36 00:01:37,639 --> 00:01:38,930 Ia akan menjadi sakit di leher. 37 00:01:38,930 --> 00:01:41,045 Tapi-- adalah komitmen ini? 38 00:01:41,045 --> 00:01:41,895 >> PELAJAR: Ya. 39 00:01:41,895 --> 00:01:42,677 Pembolehubah, mungkin? 40 00:01:42,677 --> 00:01:43,760 DAVID J. MALAN: Pembolehubah. 41 00:01:43,760 --> 00:01:44,160 OK, pasti. 42 00:01:44,160 --> 00:01:45,740 Pembolehubah pasti boleh membantu kami. 43 00:01:45,740 --> 00:01:47,020 Dan sesuatu yang lebih sederhana. 44 00:01:47,020 --> 00:01:50,640 Kita menggunakannya dalam yang pertama program hari pertama 45 00:01:50,640 --> 00:01:55,686 apabila kita benar-benar mengatakan "hello world." 46 00:01:55,686 --> 00:01:56,570 >> PELAJAR: Cetak. 47 00:01:56,570 --> 00:01:57,778 >> DAVID J. MALAN: Cetak, kan? 48 00:01:57,778 --> 00:02:01,050 Cetak, atau printf dalam dunia C. Jadi selama ini, 49 00:02:01,050 --> 00:02:03,362 kami sudah di kami pelupusan language-- C, 50 00:02:03,362 --> 00:02:05,570 di particular-- dan bahkan Awal dalam hal ini bahawa 51 00:02:05,570 --> 00:02:07,400 dapat menghasilkan rentetan teks. 52 00:02:07,400 --> 00:02:11,090 >> Nah, jika HTML, seperti yang kita lihat minggu lepas, adalah hanya sejumlah besar dari rentetan teks 53 00:02:11,090 --> 00:02:14,692 meskipun dengan kurungan terbuka dan tertutup kurungan dan beberapa jenis sajak 54 00:02:14,692 --> 00:02:16,650 dan alasan di balik itu, dengan baik maka kita dapat benar-benar 55 00:02:16,650 --> 00:02:20,440 mula menjana laman web sama ada secara manual dengan menaip mereka keluar di gedit 56 00:02:20,440 --> 00:02:23,870 atau dalam Microsoft Word, untuk itu masalah-kami hanya memerlukan editor teks. 57 00:02:23,870 --> 00:02:26,830 >> Atau kita boleh menulis kod, untuk cadangan anda 58 00:02:26,830 --> 00:02:30,435 sebelum ini, yang akan membiarkan kita dinamis menghasilkan HTML, 59 00:02:30,435 --> 00:02:32,560 dan itulah yang kita akan untuk mulai melakukan dengan PHP 60 00:02:32,560 --> 00:02:34,900 dan akhirnya walaupun dengan bahasa yang disebut JavaScript, 61 00:02:34,900 --> 00:02:37,910 adalah menggunakan satu bahasa untuk menghasilkan lain. 62 00:02:37,910 --> 00:02:40,720 Dan sesungguhnya, ini adalah apa yang Facebook dan banyak, banyak laman web lain 63 00:02:40,720 --> 00:02:44,530 lakukan untuk benar-benar dinamik memaparkan maklumat baru kepada anda. 64 00:02:44,530 --> 00:02:47,117 >> Jadi mari kita mulai dengan this-- garis samar mencari, tetapi satu 65 00:02:47,117 --> 00:02:48,450 itu sebenarnya cukup kuat. 66 00:02:48,450 --> 00:02:51,210 Setakat ini, kami telah menggunakan C, iaitu bahasa yang disusun. 67 00:02:51,210 --> 00:02:55,050 Dan hanya recap-- cepat yang disusun bahasa mempunyai ciri-ciri apa? 68 00:02:55,050 --> 00:02:59,050 Anda jelas perlu menyusun itu, tetapi apa artinya? 69 00:02:59,050 --> 00:03:00,505 Ya? 70 00:03:00,505 --> 00:03:02,940 >> PELAJAR: Ia perlu dirakit menjadi kod mesin. 71 00:03:02,940 --> 00:03:03,060 >> DAVID J. MALAN: OK. 72 00:03:03,060 --> 00:03:04,530 Ia perlu dipasang kepada kod mesin. 73 00:03:04,530 --> 00:03:07,340 Jadi, anda mengambil kod sumber anda, yang merupakan semacam Inggeris-suka. 74 00:03:07,340 --> 00:03:09,270 Anda menukar bahawa untuk sesuatu tahap yang lebih rendah, 75 00:03:09,270 --> 00:03:11,590 yang akhirnya disebut objek code-- 0 dan 1. 76 00:03:11,590 --> 00:03:14,830 Dan itu mereka 0 dan 1 yang CPU, seperti yang dibuat oleh Intel, 77 00:03:14,830 --> 00:03:16,110 benar-benar mengerti. 78 00:03:16,110 --> 00:03:19,690 >> Sekarang, PHP dan Python dan Ruby dan JavaScript dan tandan lain 79 00:03:19,690 --> 00:03:23,190 bahasa tidak disusun bahasa tetapi ditafsirkan bahasa, 80 00:03:23,190 --> 00:03:26,630 yang bermaksud anda hanya perlu menaip mereka dan kemudian anda tidak mengubahnya menjadi 0 dan 1. 81 00:03:26,630 --> 00:03:30,790 Anda bukan hanya memberi kemudian sebagai input kepada program orang lain, 82 00:03:30,790 --> 00:03:32,080 dipanggil jurubahasa. 83 00:03:32,080 --> 00:03:34,460 Dan orang itu program telah dirancang 84 00:03:34,460 --> 00:03:38,280 untuk memahami apa yang masing-masing dan setiap simbol dalam Python atau PHP 85 00:03:38,280 --> 00:03:42,650 atau Ruby atau apa-apa bilangan bahasa lain bermakna. 86 00:03:42,650 --> 00:03:44,760 >> Dan sehingga semua yang kita perlukan adalah sesuatu seperti ini. 87 00:03:44,760 --> 00:03:46,350 Jadi sebenarnya, saya akan pergi ke perkakas 88 00:03:46,350 --> 00:03:48,100 di sini, hanya apa-apa jendela lama, dan kami 89 00:03:48,100 --> 00:03:52,580 akan pergi ke depan dan terbuka fail yang dipanggil, berkata, khabar. 90 00:03:52,580 --> 00:03:55,780 Sekarang sebelum ini, saya mungkin telah menyelamatkan ini walaupun dengan sambungan fail, 91 00:03:55,780 --> 00:03:57,910 tetapi saya akan melakukan sesuatu yang lebih sederhana di sini. 92 00:03:57,910 --> 00:04:02,450 Saya akan pergi ke depan dan mula fail ini dengan sintaks samar ini. 93 00:04:02,450 --> 00:04:06,310 Jadi "pengguna, bin, plates, alam sekitar, php. " 94 00:04:06,310 --> 00:04:10,670 >> Ini semata-mata satu baris kod yang akan memberitahu sistem operasi saya, 95 00:04:10,670 --> 00:04:13,730 pergi mencari di tempat anda lingkungan apapun itu, 96 00:04:13,730 --> 00:04:18,149 di mana pun PHP is-- interpreter-- yang dan pergi ke depan dan menggunakan jurubahasa yang 97 00:04:18,149 --> 00:04:20,589 untuk mentafsir kod berikut. 98 00:04:20,589 --> 00:04:22,760 Sekarang, ini adalah jenis ciri-ciri jelek dari PHP. 99 00:04:22,760 --> 00:04:24,980 Tetapi dalam bahasa ini, mana-mana kali anda menulis kod PHP, 100 00:04:24,980 --> 00:04:29,200 Anda perlu memiliki salah satu dari ini hodoh Tag PHP-batas permulaan 101 00:04:29,200 --> 00:04:32,220 Anda code-- 00:04:37,430 >> Tetapi di bawah sini, saya kini boleh melakukan sesuatu agak mudah, seperti printf hello koma 103 00:04:37,430 --> 00:04:40,922 dunia backslash n dekat kutipan, kurung tutup. 104 00:04:40,922 --> 00:04:42,630 Dan kemudian hanya untuk kebaikan langkah, saya akan 105 00:04:42,630 --> 00:04:45,380 untuk terus maju dan dekat tag php saya di sini 106 00:04:45,380 --> 00:04:47,390 sehingga terlihat semua baik cukup dicetak. 107 00:04:47,390 --> 00:04:50,780 >> Dan sebaik sahaja saya klik Simpan, gedit cukup sebenarnya pintar 108 00:04:50,780 --> 00:04:54,620 untuk melihat bahawa baris pertama dan sedar, oh, anda menulis kod PHP. 109 00:04:54,620 --> 00:04:56,710 Biarkan saya sorot sintaks dengan warna-warna 110 00:04:56,710 --> 00:04:58,690 di sini sehingga berdiri keluar lebih sedikit. 111 00:04:58,690 --> 00:05:01,300 Tapi sekarang aku akan pergi ke tetingkap terminal saya. 112 00:05:01,300 --> 00:05:02,340 Saya akan mengezum masuk. 113 00:05:02,340 --> 00:05:06,860 >> Program ini dipanggil "hello," jadi saya akan melakukan palang dot hello, 114 00:05:06,860 --> 00:05:07,990 tetapi kebenaran ditolak. 115 00:05:07,990 --> 00:05:08,490 Dan Bash. 116 00:05:08,490 --> 00:05:10,610 Kami benar-benar mendengar bahawa Perkara beberapa minggu yang lalu 117 00:05:10,610 --> 00:05:13,140 dalam konteks shellshock, salah seorang daripada mereka bug. 118 00:05:13,140 --> 00:05:16,240 >> Tetapi kebenaran menafikan kita telah melihat sebelumnya, mungkin dalam konteks yang berbeza. 119 00:05:16,240 --> 00:05:19,060 Apakah ada yang masih ingat bagaimana Anda mungkin menetapkan sesuatu 120 00:05:19,060 --> 00:05:22,100 jika kebenaran ditolak seperti ini? 121 00:05:22,100 --> 00:05:23,490 Apa perintah, sekurang-kurangnya? 122 00:05:23,490 --> 00:05:24,159 >> PELAJAR: chmod. 123 00:05:24,159 --> 00:05:26,700 DAVID J. MALAN: Ya, chmod, untuk menukar mod fail. 124 00:05:26,700 --> 00:05:30,171 Dan anda akan mendapat semua lebih digunakan untuk ini minggu depan dengan masalah seterusnya 125 00:05:30,171 --> 00:05:30,670 ditetapkan. 126 00:05:30,670 --> 00:05:33,211 Tetapi buat masa ini, saya akan mengubah mod tidak boleh dibaca, 127 00:05:33,211 --> 00:05:36,650 tetapi untuk memberikan setiap orang executeability keistimewaan, kemampuan 128 00:05:36,650 --> 00:05:37,710 untuk menjalankan fail ini. 129 00:05:37,710 --> 00:05:40,360 Dan saya akan menetapkan yang ke fail khabar. 130 00:05:40,360 --> 00:05:45,150 >> Jika saya kini melakukan slash dot hello masuk, anda lihat, sebenarnya, program saya, hello world. 131 00:05:45,150 --> 00:05:48,760 Dan apa langkah yang saya lakukan jelas melangkau sama sekali? 132 00:05:48,760 --> 00:05:49,520 Kompilasi. 133 00:05:49,520 --> 00:05:51,680 Jadi saya hanya menjalankan program ini cukup sederhana. 134 00:05:51,680 --> 00:05:55,690 >> Dan ternyata anda boleh melakukan ini dengan banyak sintaks mengingatkan C. 135 00:05:55,690 --> 00:06:03,400 Biar saya pergi ke kod hari ini, yang saya dimasukkan ke dalam direktori vhost saya 136 00:06:03,400 --> 00:06:05,250 di sini, atas sebab-sebab yang nyata kami akan kembali ke. 137 00:06:05,250 --> 00:06:09,350 Dan saya akan pergi ke dalam, katakanlah, keadaan 1. 138 00:06:09,350 --> 00:06:12,450 >> Dan anda akan lihat di sini, yang pertama dan sekali, sejumlah besar komen. 139 00:06:12,450 --> 00:06:15,240 Tetapi ini adalah benar-benar penciptaan semula dalam PHP 140 00:06:15,240 --> 00:06:18,960 program yang kami lakukan pada minggu satu keadaan yang disebut 1.c 141 00:06:18,960 --> 00:06:20,690 mana maksud yang masa program ini 142 00:06:20,690 --> 00:06:22,950 rupanya untuk meminta pengguna untuk integer 143 00:06:22,950 --> 00:06:25,270 dan kemudian melakukan beberapa kembang analisa ke atasnya di mana 144 00:06:25,270 --> 00:06:29,510 Anda katakan jika itu positif atau negatif atau sama dengan sifar. 145 00:06:29,510 --> 00:06:34,220 Dan saya membawa hal ini hanya kerana, kecuali mungkin satu detail sedikit, 146 00:06:34,220 --> 00:06:37,150 itu tidak dapat dibezakan begitu jauh dari C. 147 00:06:37,150 --> 00:06:39,930 >> Apakah ciri-ciri yang di sini bahawa mungkin melompat keluar 148 00:06:39,930 --> 00:06:41,410 pada anda sebagai berbeza sedikit? 149 00:06:41,410 --> 00:06:42,160 Mungkin dua perkara. 150 00:06:42,160 --> 00:06:42,660 Ya? 151 00:06:42,660 --> 00:06:44,070 >> PELAJAR: Dolar tanda n? 152 00:06:44,070 --> 00:06:44,944 >> DAVID J. MALAN: Ya. 153 00:06:44,944 --> 00:06:46,210 Jadi tanda dolar n hadir. 154 00:06:46,210 --> 00:06:48,120 Dan tanda-tanda dolar, sebagai kita akan melihat, akan 155 00:06:48,120 --> 00:06:51,460 menjadi fix untuk permulaan mana-mana pembolehubah dalam PHP. 156 00:06:51,460 --> 00:06:54,250 Ia adalah kedua-dua yang baik baik dan bad-- di bahawa itu semacam jelas apa yang 157 00:06:54,250 --> 00:06:56,797 yang berubah-ubah, tidak baik dalam bahawa itu namun hal lain untuk menaip. 158 00:06:56,797 --> 00:06:58,630 Dan ada yang lain perkara yang kita tidak mempunyai cukup 159 00:06:58,630 --> 00:07:00,876 lihat, sekurang-kurangnya oleh ejaan ini. yeah? 160 00:07:00,876 --> 00:07:01,630 >> PELAJAR: Readline. 161 00:07:01,630 --> 00:07:02,671 >> DAVID J. MALAN: Readline. 162 00:07:02,671 --> 00:07:06,550 Readline kami tidak melihat, per se, di C, walaupun di sana ada sesuatu yang 163 00:07:06,550 --> 00:07:09,530 sama, tetapi kita telah menggunakan GetString, dan ini adalah rekan. 164 00:07:09,530 --> 00:07:12,950 Jadi jika saya pergi ke ini direktori, yang kebetulan, 165 00:07:12,950 --> 00:07:18,030 yang akan saya jelaskan dalam sedikit di vhost saya direktori dan sumber saya direktori A, 166 00:07:18,030 --> 00:07:22,730 dan saya pergi ke depan dan melakukan slash dot conditions-- whoops-- dot slash 167 00:07:22,730 --> 00:07:26,710 syarat-syarat 1, anda akan melihat, sekali lagi, kebenaran issue-- yang sama dinafikan. 168 00:07:26,710 --> 00:07:33,610 >> Jadi, saya mengezum masuk dan melakukan chmod ditambah x kepada keadaan, keadaan slash titik. 169 00:07:33,610 --> 00:07:35,222 Saya suka integer, sila, 50. 170 00:07:35,222 --> 00:07:36,930 Dan kita boleh memainkan ini permainan sepanjang hari. 171 00:07:36,930 --> 00:07:39,140 Ia akan bertindak dengan tepat seperti yang berlaku pada minggu satu. 172 00:07:39,140 --> 00:07:42,860 >> OK jadi tidak semua yang berbeza, kecuali tidak hanya yang sedikit sedikit sintaks, 173 00:07:42,860 --> 00:07:45,490 tetapi di atas, saya sekali lagi mempunyai garis ini yang 174 00:07:45,490 --> 00:07:49,760 memungkinkan saya untuk membuat sesuatu yang kelihatan seperti program C dipanggil halo, 175 00:07:49,760 --> 00:07:51,150 disebut syarat 1. 176 00:07:51,150 --> 00:07:54,520 Tetapi ia bukan 0 dan orang-orang Saya melaksanakan secara langsung. 177 00:07:54,520 --> 00:07:57,620 Ia bukan menjalankan ini penterjemah yang namanya 178 00:07:57,620 --> 00:07:59,440 kebetulan sama dengan bahasa. 179 00:07:59,440 --> 00:08:04,970 Program ini disebut PHP dan kod saya di bawah garis satu sedang berlalu ke dalamnya. 180 00:08:04,970 --> 00:08:07,740 >> Kita boleh melakukan yang lain agak mudah contoh mengingatkan sesuatu 181 00:08:07,740 --> 00:08:09,240 kita lakukan minggu lalu. 182 00:08:09,240 --> 00:08:12,020 Sekali lagi, ini adalah semacam sebahagian sewenang-wenang kod 183 00:08:12,020 --> 00:08:14,000 yang ternyata tidak apa apabila anda menjalankannya? 184 00:08:14,000 --> 00:08:15,625 Apa yang ini siap dicetak, mungkin? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Jadi pada awalnya pada baris 16, itu akan mengatakan x sekarang 2, mungkin. 187 00:08:28,250 --> 00:08:30,920 % D adalah sama dengan $ i untuk printf. 188 00:08:30,920 --> 00:08:33,460 Jadi maka itu cubing, titik, dot, dot, sejajar 17. 189 00:08:33,460 --> 00:08:36,299 Dan kemudian garis 18 muncul untuk memanggil fungsi dadu. 190 00:08:36,299 --> 00:08:37,600 Dan di mana dadu ditakrifkan? 191 00:08:37,600 --> 00:08:40,319 >> Nah, ia kelihatan seperti dalam talian 25, supaya bukan semua yang berbeza. 192 00:08:40,319 --> 00:08:42,610 Saya telah mendapat beberapa komen di atas itu, tetapi bagi sebahagian besar, 193 00:08:42,610 --> 00:08:45,370 ia adalah cukup jelas port atau penukaran 194 00:08:45,370 --> 00:08:48,470 daripada program C untuk versi PHP. 195 00:08:48,470 --> 00:08:52,670 Tetapi kini terdapat beberapa perbezaan yang mungkin perlu melompat keluar. 196 00:08:52,670 --> 00:08:56,100 Apa lagi yang berbeza tentang bagaimana anda mungkin menulis ini program yang sama di C? 197 00:08:56,100 --> 00:08:57,900 >> PELAJAR: [didengar]. 198 00:08:57,900 --> 00:09:00,070 >> DAVID J. MALAN: Ada ada prototaip atas. 199 00:09:00,070 --> 00:09:03,210 Jadi PHP-- dan terus terang, banyak Languages-- moden 200 00:09:03,210 --> 00:09:06,920 adalah jauh lebih cerdas dan lebih bermanfaat daripada C penyusun dalam bahawa anda 201 00:09:06,920 --> 00:09:09,740 boleh meletakkan fungsi tersebut di sini, anda boleh meletakkan satu majlis di sini, 202 00:09:09,740 --> 00:09:12,740 dan jurubahasa akan untuk melakukan anda nikmat membaca 203 00:09:12,740 --> 00:09:16,010 keseluruhan fail sebelum memutuskan bahawa beberapa fungsi tidak wujud. 204 00:09:16,010 --> 00:09:17,970 Jadi perbaikan baik tahun kemudian. 205 00:09:17,970 --> 00:09:22,126 Tetapi ada juga sesuatu lain yang berbeza atau tidak ada di sini. 206 00:09:22,126 --> 00:09:22,626 Ya? 207 00:09:22,626 --> 00:09:25,084 >> PELAJAR: [didengar]. 208 00:09:25,084 --> 00:09:27,750 DAVID J. MALAN: Kami tidak perlu menyatakan jenis-jenis pembolehubah, 209 00:09:27,750 --> 00:09:31,780 jadi kita akan melihat bahawa tidak lama terdapat pelbagai jenis dalam PHP, 210 00:09:31,780 --> 00:09:34,970 tetapi anda tidak perlu menentukan mereka, yang juga merupakan kedua-dua baik dan buruk. 211 00:09:34,970 --> 00:09:36,623 Dan ada satu hal yang hilang yang lain. 212 00:09:36,623 --> 00:09:37,430 >> PELAJAR: Tidak ada perpustakaan. 213 00:09:37,430 --> 00:09:38,630 >> DAVID J. MALAN: Tidak ada perpustakaan. 214 00:09:38,630 --> 00:09:39,350 OK, jadi itu bagus. 215 00:09:39,350 --> 00:09:40,540 Kami mendapatkan lebih banyak di luar kotak. 216 00:09:40,540 --> 00:09:43,373 Jadi sebenarnya ada banyak lagi perkara daripada yang saya fikir adalah berbeza. 217 00:09:43,373 --> 00:09:44,350 Bagaimana cara di belakang? 218 00:09:44,350 --> 00:09:46,032 Apa itu? 219 00:09:46,032 --> 00:09:46,740 Mengatakan ia sekali lagi? 220 00:09:46,740 --> 00:09:47,960 >> PELAJAR: pointer. 221 00:09:47,960 --> 00:09:49,270 >> DAVID J. MALAN: Tidak ada petunjuk. 222 00:09:49,270 --> 00:09:51,280 OK, sekurang-kurangnya dalam contoh ini, tidak. 223 00:09:51,280 --> 00:09:52,070 Itu wajar. 224 00:09:52,070 --> 00:09:55,090 Jadi tidak ada petunjuk dalam PHP sebenarnya pada umumnya. 225 00:09:55,090 --> 00:09:58,730 Ada sesuatu yang dipanggil rujukan, tetapi kita tidak akan menghabiskan terlalu banyak masa di sana. 226 00:09:58,730 --> 00:09:59,520 Dan apa lagi? 227 00:09:59,520 --> 00:10:00,185 >> PELAJAR: Utama. 228 00:10:00,185 --> 00:10:01,060 DAVID J. MALAN: Main. 229 00:10:01,060 --> 00:10:02,768 Jadi ini adalah masalah besar yang Saya memikirkan bahawa dalam. 230 00:10:02,768 --> 00:10:04,660 Perhatikan tidak ada pintu masuk utama. 231 00:10:04,660 --> 00:10:06,525 Anda hanya perlu mula menulis kod anda. 232 00:10:06,525 --> 00:10:08,400 Dan ini sebenarnya akan menguntungkan 233 00:10:08,400 --> 00:10:10,560 apabila kita beralih sebentar untuk benar-benar menggunakan 234 00:10:10,560 --> 00:10:13,980 ini bahasa yang sama untuk web-based pengaturcaraan, yang kami 235 00:10:13,980 --> 00:10:16,580 tidak mahu mempunyai hanya satu pintu masuk. 236 00:10:16,580 --> 00:10:19,980 Kita mungkin ingin memiliki banyak URL, sekumpulan fail yang berbeza 237 00:10:19,980 --> 00:10:22,930 semua mengambil dalam input pengguna dan menghasilkan output. 238 00:10:22,930 --> 00:10:27,130 >> Tetapi di sini adalah sangat mengecewakan contoh yang saya janjikan masa lalu, 239 00:10:27,130 --> 00:10:30,130 iaitu dalam folder ini di sini, salah ejaan. 240 00:10:30,130 --> 00:10:33,680 Jadi dalam ejaan fail ini, yang kita tidak akan menghabiskan terlalu banyak masa di, ada 241 00:10:33,680 --> 00:10:37,870 dasarnya adalah porting-- P-O-R-T. Ia hanya satu perkataan yang diberi apabila, berkata, 242 00:10:37,870 --> 00:10:40,800 anda menukar dari satu bahasa kepada yang lain secara manual biasanya. 243 00:10:40,800 --> 00:10:45,680 >> Ini adalah port dari PC versi ejaan dari Serangga 5. 244 00:10:45,680 --> 00:10:48,856 Dan saya pada dasarnya cuba untuk menukar baris demi baris sebagai rapat seperti yang saya boleh. 245 00:10:48,856 --> 00:10:51,730 Jadi, jika anda suka jenis benda, ia sebenarnya bernilai pada satu ketika 246 00:10:51,730 --> 00:10:54,229 menarik mereka berdua sebelah sisi dan melihat apa yang yang sama 247 00:10:54,229 --> 00:10:55,230 dan apa yang berbeza. 248 00:10:55,230 --> 00:10:57,510 Tapi mereka cukup darn sama. 249 00:10:57,510 --> 00:11:00,110 Jika anda masih ingat apa yang ejaan bahkan kelihatan seperti, 250 00:11:00,110 --> 00:11:02,110 walaupun anda tidak perlu menukar fail ini, 251 00:11:02,110 --> 00:11:04,860 ia agak sama struktur dengan hanya beberapa 252 00:11:04,860 --> 00:11:06,200 perubahan di sana sini. 253 00:11:06,200 --> 00:11:10,140 >> Jadi, ini adalah hanya untuk mengatakan bahawa ia cukup mudah untuk menukar ejaan 254 00:11:10,140 --> 00:11:12,000 dari C ke PHP. 255 00:11:12,000 --> 00:11:15,390 Tetapi di dalam kamus, ada sesuatu yang lebih menarik. 256 00:11:15,390 --> 00:11:19,270 Biar saya pergi ke hadapan dan membuat fail dictionary.php saya sendiri. 257 00:11:19,270 --> 00:11:24,010 Jadi sedikit berbeza dalam bahawa kita akan menyebutnya .php bukan .c. 258 00:11:24,010 --> 00:11:26,980 Oleh kerana ini adalah file PHP, saya do-- sedikit annoyingly-- mempunyai 259 00:11:26,980 --> 00:11:30,132 untuk memulakan fail dengan tag php seperti itu. 260 00:11:30,132 --> 00:11:32,340 Dan saya akan pergi ke depan dan menetapkan fungsi beberapa. 261 00:11:32,340 --> 00:11:35,770 Fungsi yang disebut cek, yang merupakan akan mengambil dalam kata seperti sebelumnya. 262 00:11:35,770 --> 00:11:37,520 Tetapi ini pendapat yang berbeda akan mempunyai satu dolar 263 00:11:37,520 --> 00:11:39,840 menandatangani karena kita, sekali lagi, dengan menggunakan PHP. 264 00:11:39,840 --> 00:11:42,350 Satu lagi fungsi dari dictionary.c adalah beban 265 00:11:42,350 --> 00:11:47,120 dan ia mengambil masa dalam nama kamus, jadi saya akan mendapatkan bahwa fungsi siap untuk pergi. 266 00:11:47,120 --> 00:11:50,920 >> Satu lagi di dictionary.c adalah apa? 267 00:11:50,920 --> 00:11:54,580 Ukuran adalah salah satu yang paling baik, di kurangnya jika anda menyimpan beberapa pembolehubah sekitar. 268 00:11:54,580 --> 00:11:57,830 sehingga ukuran hanya perlu kembali variabel. 269 00:11:57,830 --> 00:11:59,090 Dan kemudian ada membongkar. 270 00:11:59,090 --> 00:12:02,830 >> Jadi ada empat fungsi dalam masalah set 5 271 00:12:02,830 --> 00:12:06,770 bahawa anda perlu untuk melaksanakan dengan beberapa struktur data atau struktur. 272 00:12:06,770 --> 00:12:10,170 Oleh itu, saya berjanji bahawa dalam PHP, kita boleh menyatakan 273 00:12:10,170 --> 00:12:14,490 jadual hash, misalnya, apa yang lebih mudah. 274 00:12:14,490 --> 00:12:17,377 Malah, jika saya ingin meja goreng, Saya hanya akan pergi seperti yang 275 00:12:17,377 --> 00:12:18,460 dan ada jadual hash saya. 276 00:12:18,460 --> 00:12:21,555 Dan itu nota, mengecilkan hati, yang kita tinggalkan pada masa lalu. 277 00:12:21,555 --> 00:12:23,930 Dan anda tahu apa, jika saya ingin pembolehubah untuk ukuran, baik, 278 00:12:23,930 --> 00:12:25,867 yang satu ini bukan semua yang berbeza daripada C, 279 00:12:25,867 --> 00:12:27,450 tetapi saya akan pergi ke depan dan melakukan itu. 280 00:12:27,450 --> 00:12:28,630 Dan perhatikan tidak ada jenis data. 281 00:12:28,630 --> 00:12:31,180 Dan aku akan kembali nanti dan sebenarnya menambah beberapa komen di sini. 282 00:12:31,180 --> 00:12:32,480 Tetapi bagaimana pula dengan beban? 283 00:12:32,480 --> 00:12:35,780 >> Jika tanda dolar kamus adalah nama fail saya 284 00:12:35,780 --> 00:12:39,600 dan saya benar-benar ingin memuat perkataan ke dalam jadual ini sekarang, 285 00:12:39,600 --> 00:12:42,360 Saya sebenarnya boleh melakukan sesuatu yang cukup mudah. 286 00:12:42,360 --> 00:12:44,880 Satu-- dan ini adalah minorly annoying-- dalam PHP, 287 00:12:44,880 --> 00:12:47,710 Anda harus menentukan di dalam dari suatu fungsi jika anda 288 00:12:47,710 --> 00:12:51,060 ingin mengakses beberapa global variabel yang didefinisikan di luar. 289 00:12:51,060 --> 00:12:53,530 >> Tetapi itu bukan terutama menarik sekarang. 290 00:12:53,530 --> 00:12:57,920 Apa yang lebih menarik ialah ini untuk masing-masing membina yang saya sebutkan dahulu. 291 00:12:57,920 --> 00:13:01,880 Dan ternyata bahawa PHP mempunyai fungsi yang dipanggil fail yang tujuannya dalam kehidupan 292 00:13:01,880 --> 00:13:05,550 adalah untuk membuka fail dan dibaca semua lini ke dalam array 293 00:13:05,550 --> 00:13:06,840 dan diserahkan kembali kepada. 294 00:13:06,840 --> 00:13:12,170 >> Atau dengan kata lain yang boleh saya lakukan kamus sehingga yang kini berkesan apabila saya sebut fail, 295 00:13:12,170 --> 00:13:15,472 ini akan tangan saya kembali pelbagai kata-kata dari fail. 296 00:13:15,472 --> 00:13:16,430 Ia bukan semua yang baik. 297 00:13:16,430 --> 00:13:20,130 Ia masih akan menjadi garis kata-kata, sesuatu yang linear. 298 00:13:20,130 --> 00:13:23,880 Tetapi saya boleh pergi ke depan dan beralih atas setiap kata-kata dengan menggunakan 299 00:13:23,880 --> 00:13:25,710 sintaks yang kita lihat secara ringkas masa lalu. 300 00:13:25,710 --> 00:13:27,940 Dan anda akan melihat ia lebih di Serangga yang akan datang. 301 00:13:27,940 --> 00:13:32,070 >> Tetapi sekarang saya mempunyai iterasi gelung lebih setiap perkataan di dalam kamus. 302 00:13:32,070 --> 00:13:36,100 Dan pada setiap iterasi, ingat saya memanggil perkataan semasa "dengan perkataan." 303 00:13:36,100 --> 00:13:39,790 Dan semua itu akan diambil untuk menaruh perkataan ke dalam kamus 304 00:13:39,790 --> 00:13:43,530 akan menjadi kata tekaan "benar." 305 00:13:43,530 --> 00:13:44,740 Itulah fungsi insert saya. 306 00:13:44,740 --> 00:13:46,661 Itulah fungsi beban saya kamus saya. 307 00:13:46,661 --> 00:13:49,410 Sekarang ini adalah sedikit menipu kerana, Anda tahu apa, sebenarnya ada 308 00:13:49,410 --> 00:13:52,920 garis miring terbalik n di akhir perkataan bahawa saya mungkin harus menyingkirkan, 309 00:13:52,920 --> 00:13:56,380 tetapi itu bukan masalah kerana PHP mempunyai fungsi yang disebut cop yang secara harfiah 310 00:13:56,380 --> 00:13:58,480 daging dari salah satu watak di akhir sangat. 311 00:13:58,480 --> 00:13:59,400 Jadi tidak ada masalah di sana. 312 00:13:59,400 --> 00:14:02,199 Kami telah pergi ke depan dan benar-benar singkat yang adil ini. 313 00:14:02,199 --> 00:14:05,240 Dan sekarang saya mungkin perlu menjejaki saiz, jadi mari kita sekurang-kurangnya melakukan this-- 314 00:14:05,240 --> 00:14:05,835 saiz ++. 315 00:14:05,835 --> 00:14:07,339 Boleh saya berbuat demikian seperti sebelumnya. 316 00:14:07,339 --> 00:14:10,380 Dan maka ini mungkin akan bekerja dengan baik, supaya kita kembali benar. 317 00:14:10,380 --> 00:14:10,930 Selesai. 318 00:14:10,930 --> 00:14:11,797 Serangga 5. 319 00:14:11,797 --> 00:14:13,545 >> [Ketawa] 320 00:14:13,545 --> 00:14:14,420 >> DAVID J. MALAN: OK. 321 00:14:14,420 --> 00:14:16,628 Kami akan melakukannya lagi dengan Serangga seterusnya juga. 322 00:14:16,628 --> 00:14:18,730 Jadi bagaimana pula dengan saiz? 323 00:14:18,730 --> 00:14:22,080 Nah, yang ini mudah-mudahan kira-kira seperti yang Anda harapkan masa lalu, 324 00:14:22,080 --> 00:14:24,460 walaupun saya perlu lakukan ini perkara global bodoh. 325 00:14:24,460 --> 00:14:26,610 Ini hanya sebuah artifak dari reka bentuk bahasa itu. 326 00:14:26,610 --> 00:14:28,450 >> Tetapi cek adalah sedikit lebih menarik. 327 00:14:28,450 --> 00:14:31,420 Jadi jika saya lulus dalam dolar menandatangani kata, saya mula-mula 328 00:14:31,420 --> 00:14:34,060 ingin mempunyai akses kepada bahawa jadual pembolehubah global. 329 00:14:34,060 --> 00:14:36,700 Dan jika saya mahu memeriksa apakah perkataan yang ada, 330 00:14:36,700 --> 00:14:44,350 Saya hanya boleh mengatakan jika ia adalah benar bahawa berikut yang ditetapkan dalam jadual, 331 00:14:44,350 --> 00:14:49,957 kemudian pergi ke depan dan pulangan benar; lain, kembali palsu. 332 00:14:49,957 --> 00:14:51,180 Selesai. 333 00:14:51,180 --> 00:14:52,440 Sisi lain Serangga 5. 334 00:14:52,440 --> 00:14:54,540 >> Baiklah, jadi lagi, aku memotong sudut beberapa. 335 00:14:54,540 --> 00:14:56,831 Dalam keadilan, saya harus mungkin menghabiskan beberapa saat 336 00:14:56,831 --> 00:14:58,300 mengenai pelaksanaan ini. 337 00:14:58,300 --> 00:15:01,860 Dan aku mungkin tidak harus tiruan semua jam anda memakai Serangga yang begitu banyak. 338 00:15:01,860 --> 00:15:04,045 Jadi strtolower adalah fungsi. 339 00:15:04,045 --> 00:15:06,670 Sesuatu eksistensialis sama dalam bahasa C, sekurang-kurangnya untuk aksara, 340 00:15:06,670 --> 00:15:08,560 tetapi PHP mendapat versi yang keseluruhannya. 341 00:15:08,560 --> 00:15:11,226 >> Itu akan memaksa semua huruf kecil, yang ada di antara kamu 342 00:15:11,226 --> 00:15:14,944 mungkin telah melakukan canonicalize apa Anda telah meletakkan di dalam kamus anda. 343 00:15:14,944 --> 00:15:16,360 Dan kini anda boleh melakukan ini dalam bahasa C, juga. 344 00:15:16,360 --> 00:15:17,780 Ini tidak ada kaitan dengan PHP. 345 00:15:17,780 --> 00:15:20,260 >> Tapi bila-bila masa anda mempunyai satu keadaan Boolean, 346 00:15:20,260 --> 00:15:22,680 seperti sesuatu di talian 10 ada, yang hanya 347 00:15:22,680 --> 00:15:27,145 akan menilai kepada benar atau palsu, dan anda jika lain jelas 348 00:15:27,145 --> 00:15:33,620 kembali benar atau salah, saya boleh hanya benar-benar membuat lebih seksi ini 349 00:15:33,620 --> 00:15:38,360 dan hanya melakukan sesuatu seperti ini. 350 00:15:38,360 --> 00:15:40,500 Sehingga ada fungsi cek saya. 351 00:15:40,500 --> 00:15:42,560 Benar, jika Boolean mengembalikan benar atau palsu, 352 00:15:42,560 --> 00:15:44,630 mari kita kembalikan langsung. 353 00:15:44,630 --> 00:15:47,340 >> Dan ada beberapa tweak lain Saya boleh membuat di sana sini. 354 00:15:47,340 --> 00:15:51,380 Membongkar Load--, dengan cara itu, itu selesai. 355 00:15:51,380 --> 00:15:52,850 Tiada apa-apa untuk dilakukan di sana. 356 00:15:52,850 --> 00:15:55,840 Karena semua memori yang PHP dan bahasa-bahasa lain 357 00:15:55,840 --> 00:15:57,570 sebenarnya berjaya untuk anda. 358 00:15:57,570 --> 00:16:00,330 Jadi manakala dalam C, Anda telah belajar menyakitkan, 359 00:16:00,330 --> 00:16:04,700 apa sahaja yang anda malloc atau calloc atau realloc, anda perlu membebaskan diri. 360 00:16:04,700 --> 00:16:08,770 Apa sahaja yang anda fopen, anda perlu fclose, supaya sumber pada akhirnya dibebaskan 361 00:16:08,770 --> 00:16:11,690 dan alat-alat seperti Valgrind tidak melihat dan tidak mengeluh, 362 00:16:11,690 --> 00:16:13,570 yang merupakan satu perkara yang baik untuk menjalankan pada mereka. 363 00:16:13,570 --> 00:16:16,190 >> Tapi pasti, harus ada ada beberapa tangkapan, kan? 364 00:16:16,190 --> 00:16:19,400 Jika tidak, kita semacam sia-sia sejumlah besar minggu. 365 00:16:19,400 --> 00:16:23,270 Jadi ada apa-apa sebab mengapa kita semacam mengambil sasaran ini, 366 00:16:23,270 --> 00:16:24,440 tapi ada trade-off. 367 00:16:24,440 --> 00:16:25,820 Benar, ini telah tematik. 368 00:16:25,820 --> 00:16:29,690 >> Jadi apa yang mungkin trade-off di sini bergerak, dari C ke PHP? 369 00:16:29,690 --> 00:16:33,250 Terasa seperti semua menang setakat ini selain daripada sedikit keburukan di sini atau di sana. 370 00:16:33,250 --> 00:16:34,040 Yeah. 371 00:16:34,040 --> 00:16:34,700 Apa itu? 372 00:16:34,700 --> 00:16:36,064 >> PELAJAR: [didengar] memori. 373 00:16:36,064 --> 00:16:36,980 DAVID J. MALAN: cepat. 374 00:16:36,980 --> 00:16:37,479 OK. 375 00:16:37,479 --> 00:16:40,720 Nah, kelajuan saya cukup cepat. 376 00:16:40,720 --> 00:16:42,020 Betul? 377 00:16:42,020 --> 00:16:44,320 Tetapi kelajuan pelaksanaan program ini? 378 00:16:44,320 --> 00:16:45,580 OK, jadi itu adalah titik yang adil. 379 00:16:45,580 --> 00:16:50,930 >> Jadi kerana ia akan berlaku, saya terlebih dahulu cued sehingga kedua-dua penyelesaian cuba saya, yang 380 00:16:50,930 --> 00:16:53,510 Saya telah di papan besar adalah penyelesaian berasaskan-cuba, 381 00:16:53,510 --> 00:16:55,510 dan saya mempunyai bahawa dalam direktori ini di sini. 382 00:16:55,510 --> 00:16:58,510 Jadi saya sebentar lagi, saya boleh pergi ke depan dan menjalankan ini dari King James Bible, 383 00:16:58,510 --> 00:16:59,657 menekan Enter. 384 00:16:59,657 --> 00:17:01,990 Dan ini mudah-mudahan betul pelaksanaan di akhir, 385 00:17:01,990 --> 00:17:05,109 memberi saya masa dalam jumlah dari 0.38 saat untuk yang 386 00:17:05,109 --> 00:17:07,270 satu contoh yang agak sewenang-wenang. 387 00:17:07,270 --> 00:17:09,270 >> Dan jika sekarang saya pergi ke ini tetingkap terminal kedua 388 00:17:09,270 --> 00:17:14,569 di sini di mana saya pertama kali membuka gedit, mari saya masuk ke code-- hari ini yang, sekali lagi, 389 00:17:14,569 --> 00:17:19,650 adalah dalam direktori ini dan di sini- biarlah saya pergi ke hadapan dan menjalankan ejaan. 390 00:17:19,650 --> 00:17:23,470 Jadi, untuk menjadi jelas, ini adalah versi PHP. 391 00:17:23,470 --> 00:17:25,170 Saya hanya menunjukkan bahagian atas di sini. 392 00:17:25,170 --> 00:17:32,020 >> Jadi jika saya lakukan ejaan dari tilde CS50 Serangga 5 teks, King James, masukkan. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 Ia masih lebih cepat daripada menulis di C, tetapi jumlah masa yang 395 00:17:43,050 --> 00:17:47,650 adalah, notis, 0.93, sedangkan saya Pelaksanaan berdasarkan C-adalah 0.38. 396 00:17:47,650 --> 00:17:49,110 Jadi ini adalah perbedaan yang tidak remeh. 397 00:17:49,110 --> 00:17:51,100 >> Dan ini hanya pada satu fail. 398 00:17:51,100 --> 00:17:53,480 Jika anda untuk menjalankan dua program berbanding papan besar 399 00:17:53,480 --> 00:17:56,510 dan mempunyai sejumlah besar input diuji, ini pasti akan bertambah. 400 00:17:56,510 --> 00:18:00,310 Dan jika kita mempunyai set data yang lebih besar, ini juga akan menambah sehingga semua lebih. 401 00:18:00,310 --> 00:18:04,820 Jadi ya, membayar harga beberapa kelajuan memang kes itu. 402 00:18:04,820 --> 00:18:05,470 Apa lagi? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Ya? 405 00:18:08,860 --> 00:18:10,340 >> PELAJAR: Jumlah penggunaan RAM. 406 00:18:10,340 --> 00:18:11,756 >> DAVID J. MALAN: Jumlah penggunaan RAM. 407 00:18:11,756 --> 00:18:15,380 Jadi saya tidak memberikan satu saat fikir semasa menulis PHP ini 408 00:18:15,380 --> 00:18:17,300 versi untuk berapa banyak memori saya gunakan. 409 00:18:17,300 --> 00:18:22,080 Aku benar-benar menunda yang ke PHP itu sendiri dan siapa pun yang menulis program itu. 410 00:18:22,080 --> 00:18:24,500 Dan itu mungkin OK, tetapi jika saya benar-benar benar-benar 411 00:18:24,500 --> 00:18:28,420 mengambil berat tentang memerah prestasi sebanyak daripada program saya atau daripada laman web saya 412 00:18:28,420 --> 00:18:31,150 atau daripada apa sahaja alat Aku sedang membangun, mungkin 413 00:18:31,150 --> 00:18:33,310 PHP, memang, bukan bahasa yang betul. 414 00:18:33,310 --> 00:18:36,330 >> Dan sebenarnya, itulah sebabnya, untuk Misalnya, banyak web servers-- 415 00:18:36,330 --> 00:18:38,980 program sebenar yang menyampaikan web content-- 416 00:18:38,980 --> 00:18:41,810 tidak ditulis dalam PHP atau dengan Python atau Ruby. 417 00:18:41,810 --> 00:18:44,630 Mereka ditulis, seperti Anda sekarang akan melakukan dengan Serangga 6, 418 00:18:44,630 --> 00:18:48,120 di C supaya anda boleh memerah setiap bit prestasi dari itu 419 00:18:48,120 --> 00:18:50,780 dan benar-benar menjalankan kawalan-butiran halus lebih apa yang 420 00:18:50,780 --> 00:18:52,980 terjadi di bawah tudung dan tidak hanya mengambil 421 00:18:52,980 --> 00:18:54,890 untuk diberikan beberapa yang lebih tinggi struktur data peringkat. 422 00:18:54,890 --> 00:18:58,071 >> Perhatikan, selepas semua, sesiapa dalam PHP dilaksanakan 423 00:18:58,071 --> 00:19:00,070 bahawa gagasan hash table-- itu sebenarnya lebih 424 00:19:00,070 --> 00:19:04,260 betul disebut array-- asosiatif apakah ia mempunyai apa-apa idea apa jenis 425 00:19:04,260 --> 00:19:07,090 input anda akan menjadi memasukkan ke dalam struktur? 426 00:19:07,090 --> 00:19:08,260 Jadi jelas tidak, kan? 427 00:19:08,260 --> 00:19:10,340 Ini alat generik dalam toolkit itu 428 00:19:10,340 --> 00:19:13,430 diberikan kepada sesiapa sahaja yang ingin untuk menggunakannya, dan sebagainya pasti ia 429 00:19:13,430 --> 00:19:17,680 tidak dapat dioptimalkan akhirnya untuk apa yang anda mahu lakukan. 430 00:19:17,680 --> 00:19:21,180 >> Jadi masa pembangunan offs-- perdagangan mungkin berbeza, prestasi mungkin berbeza, 431 00:19:21,180 --> 00:19:23,120 kerumitan atau penggunaan memori mungkin berbeza. 432 00:19:23,120 --> 00:19:24,820 Jadi, apa yang anda dapati semakin ialah ada 433 00:19:24,820 --> 00:19:26,570 akan menjadi berbeza alat untuk perdagangan. 434 00:19:26,570 --> 00:19:31,160 Dan sebenarnya bagi kebanyakan super tugas akhir rakyat dalam kelas ini, 435 00:19:31,160 --> 00:19:34,360 percaya atau tidak, C tidak akan untuk menjadi bahasa yang tepat untuk digunakan. 436 00:19:34,360 --> 00:19:37,880 >> Dan sebenarnya, salah satu bawa pulang akhirnya untuk mana-mana golongan seperti ini 437 00:19:37,880 --> 00:19:40,510 adalah untuk mendapatkan anda berfikir tentang, baik, apa yang anda perlu menarik dari 438 00:19:40,510 --> 00:19:42,710 rak yang anda hendak untuk menyelesaikan beberapa masalah. 439 00:19:42,710 --> 00:19:46,720 Dan demi sesungguhnya, kami akan merentasi jambatan ini lebih seperti yang kita lihat lebih banyak bahasa 440 00:19:46,720 --> 00:19:47,920 bahkan di luar hari ini. 441 00:19:47,920 --> 00:19:50,530 >> Jadi mari kita peralihan sekarang untuk mungkin konteks yang lebih akrab 442 00:19:50,530 --> 00:19:52,480 untuk menggunakan bahasa seperti PHP. 443 00:19:52,480 --> 00:19:56,720 Ini agak biasa untuk menggunakan sekurang- baris arahan, menulis skrip 444 00:19:56,720 --> 00:19:59,050 seperti yang saya lakukan, tetapi ia jauh, jauh lebih umum. 445 00:19:59,050 --> 00:20:02,350 Dan ia telah dicadangkan untuk digunakan dalam bentuk fail yang biasanya berakhir 446 00:20:02,350 --> 00:20:05,060 di .php-- tetapi itu tidak prerequisite-- yang 447 00:20:05,060 --> 00:20:07,990 bahawa diri mereka menghasilkan kandungan web. 448 00:20:07,990 --> 00:20:11,310 >> Jadi, saya pergi ke depan dan membuka beberapa contoh saya dipersiapkan sebelumnya. 449 00:20:11,310 --> 00:20:15,100 Dan ini sebenarnya semacam benar cerita dalam bahawa salah satu perkara pertama yang 450 00:20:15,100 --> 00:20:18,200 Pernah saya lakukan sendiri setelah menyelesaikan CS50 dan mungkin, saya fikir, 451 00:20:18,200 --> 00:20:21,350 CS51 tahun yang lalu adalah saya rakan sebilik dan saya telah membantu 452 00:20:21,350 --> 00:20:24,320 untuk menjalankan antara dinding mahasiswa baru program sukan, yang, pada masa itu, 453 00:20:24,320 --> 00:20:28,610 telah mahasiswa baru mendaftar untuk pelbagai sukan dengan mengisi sehelai kertas, 454 00:20:28,610 --> 00:20:31,800 seperti yang disebut, berjalan melintasi halaman untuk Wigglesworth, 455 00:20:31,800 --> 00:20:34,030 dan menjatuhkannya di beberapa penurunan pintu pengawas itu. 456 00:20:34,030 --> 00:20:37,210 Dan kemudian dia akan pergi melalui mereka dan kemudian benar-benar email kami secara manual 457 00:20:37,210 --> 00:20:39,140 yang kami telah didaftarkan untuk beberapa sukan. 458 00:20:39,140 --> 00:20:41,166 >> Jadi jelas, peluang untuk perbaikan. 459 00:20:41,166 --> 00:20:44,040 Hari-hari ini, anda mungkin berubah hanya Borang Google, tetapi kembali pada hari, 460 00:20:44,040 --> 00:20:46,914 kita harus benar-benar mencapai bagi- ini tidak mencapai lebih lama ago-- 461 00:20:46,914 --> 00:20:49,410 untuk pengaturcaraan yang bahasa yang tidak PHP. 462 00:20:49,410 --> 00:20:51,200 Pada masa itu, ia adalah sesuatu yang disebut Perl, 463 00:20:51,200 --> 00:20:52,890 yang telah keluar dari mode sejak. 464 00:20:52,890 --> 00:20:54,160 Tetapi idea adalah sama. 465 00:20:54,160 --> 00:20:58,940 >> Dan saya pada dasarnya duduk untuk cuba ke pelabuhan pergi versi Perl untuk PHP, 466 00:20:58,940 --> 00:21:03,710 tetapi dalam penafian penuh, tidak memberikan apa-apa dianggap estetika dulu. 467 00:21:03,710 --> 00:21:04,960 Jadi di sini adalah laman web. 468 00:21:04,960 --> 00:21:05,670 Ini adalah fail. 469 00:21:05,670 --> 00:21:09,470 Jika saya memperbesar, rupanya yang disebut froshim0.php 470 00:21:09,470 --> 00:21:12,060 hanya kerana itu adalah kami pertama Contohnya seperti di dalam siri ini. 471 00:21:12,060 --> 00:21:15,970 Dan perhatikan bahawa ia mempunyai apa yang kelihatan menjadi bentuk HTML yang sangat hodoh, 472 00:21:15,970 --> 00:21:18,680 tetapi bentuk yang menarik kerana ia membolehkan 473 00:21:18,680 --> 00:21:21,910 saya untuk memberikan input pengguna ke browser. 474 00:21:21,910 --> 00:21:27,730 >> Sekarang sebelum ini, jika kita mempunyai bentuk, untuk siapakah yang telah kami sampaikan parameter permintaan kami, 475 00:21:27,730 --> 00:21:30,450 parameter barisan seperti yang disebut? 476 00:21:30,450 --> 00:21:31,330 Jadi untuk Google, bukan? 477 00:21:31,330 --> 00:21:34,090 Kami benar-benar punted pada gagasan melakukan apa-apa dengan input itu. 478 00:21:34,090 --> 00:21:36,160 >> Tetapi hari ini, kita mula menghasilkan output. 479 00:21:36,160 --> 00:21:39,420 Dan tingkah laku yang saya akan melihat di sini pada mulanya sangat sepele. 480 00:21:39,420 --> 00:21:42,980 David, saya akan memanggil satu jantina di sini, berkata Matthews di sini. 481 00:21:42,980 --> 00:21:43,800 Saya tidak akan menjadi kapten. 482 00:21:43,800 --> 00:21:45,410 Saya akan klik Register. 483 00:21:45,410 --> 00:21:50,720 Dan melihat bahawa URL mempunyai berubah untuk mendaftar-0.php, 484 00:21:50,720 --> 00:21:52,310 dan kemudian ada teks jelek ini di sini. 485 00:21:52,310 --> 00:21:54,460 Saya tidak memikirkan untuk format ini. 486 00:21:54,460 --> 00:21:59,900 >> Tetapi apa yang menarik ialah tiga nilai-nilai yang telah diluluskan pada rupanya. 487 00:21:59,900 --> 00:22:02,960 Ini adalah semacam PHP dari setara dengan printf-- 488 00:22:02,960 --> 00:22:06,330 kita akan melihat apa yang ia benar-benar dipanggil dalam bit-- yang hanya mencetak 489 00:22:06,330 --> 00:22:08,300 apa yang berlalu ke dalamnya. 490 00:22:08,300 --> 00:22:11,414 Jadi ini menunjukkan bahawa bentuk yang mempunyai sekurang-kurangnya tiga bidang kepadanya, 491 00:22:11,414 --> 00:22:12,580 dan anda melihat saya menaipnya dalam. 492 00:22:12,580 --> 00:22:15,739 Satu adalah nama saya, satu jantina, satu asrama. 493 00:22:15,739 --> 00:22:18,780 Dan kapten bahkan tidak dapat dihantar ke server kerana saya tidak check it. 494 00:22:18,780 --> 00:22:22,150 >> Jadi ini adalah untuk mengatakan nampaknya, apabila anda menyerahkan perkara di web, 495 00:22:22,150 --> 00:22:26,830 bukan sahaja tidak URL kadang-kadang change-- kadang-kadang tidak. 496 00:22:26,830 --> 00:22:30,330 Malah, nama fail berubah, tetapi apa yang tidak ada di URL 497 00:22:30,330 --> 00:22:32,861 bahawa kita melihat masa lalu dengan Google. 498 00:22:32,861 --> 00:22:33,360 Ya? 499 00:22:33,360 --> 00:22:34,380 >> PELAJAR: Tiada rentetan pertanyaan 500 00:22:34,380 --> 00:22:35,220 >> DAVID J. MALAN: Tidak ada rentetan pertanyaan. 501 00:22:35,220 --> 00:22:37,270 Tidak ada tanda tanya sesuatu. 502 00:22:37,270 --> 00:22:40,050 Tidak ada tanda tanya q sama dengan kucing, seperti yang kita lakukan masa lalu. 503 00:22:40,050 --> 00:22:42,170 Dan ada pasti tidak ada nama tanda tanya sama 504 00:22:42,170 --> 00:22:46,310 Daud atau asrama sama Matthews, jadi di mana adalah bahawa semua akan pergi? 505 00:22:46,310 --> 00:22:51,290 >> Baiklah, biar saya kembali ke sini gedit dan membuka yang pertama dari fail-fail 506 00:22:51,290 --> 00:22:57,020 di vhost saya, tuan rumah tempatan, orang ramai direktori di sini dan masuk ke froshim0. 507 00:22:57,020 --> 00:23:02,060 Jadi ternyata bahawa hampir semua halaman ini hanya HTML. 508 00:23:02,060 --> 00:23:05,410 Dan ini mungkin asing bagi anda, tetapi ia tidak lama lagi akan lebih-lebih lagi dengan Serangga 6 509 00:23:05,410 --> 00:23:07,370 dan Serangga Serangga 7 dan 8. 510 00:23:07,370 --> 00:23:09,160 Tapi ini hanya dalam halaman HTML. 511 00:23:09,160 --> 00:23:12,400 >> Dan hal-hal yang menarik seolah-olah di sini. 512 00:23:12,400 --> 00:23:16,290 Tag bentuk tindakan yang atribut mempunyai nilai daftar 0. 513 00:23:16,290 --> 00:23:18,890 Itulah sebabnya apabila saya mengemukakan ini, ia pergi ke fail itu. 514 00:23:18,890 --> 00:23:20,620 Tetapi kaedah adalah posting today-- berbeza. 515 00:23:20,620 --> 00:23:23,120 Jadi ternyata di luar sana yang sekurang-kurangnya dua kaedah di web yang digunakan 516 00:23:23,120 --> 00:23:24,911 untuk menghantar maklumat dari pelayar ke pelayan. 517 00:23:24,911 --> 00:23:25,980 Dapatkan meletakkannya dalam URL. 518 00:23:25,980 --> 00:23:27,950 Post meletakkannya di tempat lain. 519 00:23:27,950 --> 00:23:30,570 Dan kapan dan mengapa anda mungkin benar-benar ingin laman web 520 00:23:30,570 --> 00:23:34,110 menggunakan jawatan ketika itu dan bukannya dari mendapatkan, hanya gerak hati? 521 00:23:34,110 --> 00:23:37,080 Mana-mana laman web. 522 00:23:37,080 --> 00:23:42,010 Jenis data yang harus dilalui hanya dengan kesimpulan sekarang melalui pos yang bertentangan 523 00:23:42,010 --> 00:23:45,184 untuk mendapatkan, jika kita telah melihat dua perbezaan? 524 00:23:45,184 --> 00:23:46,350 PELAJAR: [didengar] aman. 525 00:23:46,350 --> 00:23:47,790 DAVID J. MALAN: Jika anda ingin sesuatu yang selamat. 526 00:23:47,790 --> 00:23:50,360 Jadi, anda menaip kata laluan ke dalam laman web, kad kredit 527 00:23:50,360 --> 00:23:53,030 ke dalam laman web yang akan jenis ini suboptimal 528 00:23:53,030 --> 00:23:56,220 jika browser meletakkan bahawa nilai dalam URL. 529 00:23:56,220 --> 00:23:57,680 Mengapa? 530 00:23:57,680 --> 00:24:00,059 Anda melihatnya, yang tidak seolah-olah menjadi masalah besar, 531 00:24:00,059 --> 00:24:03,350 tetapi kemungkinan besar Anda cukup sering berjalan jauh dari komputer atau menggunakan komputer anda 532 00:24:03,350 --> 00:24:05,310 makmal dan sehingga seseorang lain atau bahkan teman sekamar 533 00:24:05,310 --> 00:24:08,220 dengan mudah dapat berjalan dan melihat bahawa maklumat peribadi. 534 00:24:08,220 --> 00:24:10,220 Apabila anda menghantar e-mel melalui laman web, anda mungkin 535 00:24:10,220 --> 00:24:12,350 tidak mahu itu akhir data di URL juga. 536 00:24:12,350 --> 00:24:15,266 Dan jadi tidak apa-apa sebab mengapa kita mungkin mahu meletakkan di sini. 537 00:24:15,266 --> 00:24:18,610 Bahkan dan kanan photos--, saya tidak boleh agak bayangkan bagaimana anda akan mengambil grafik, 538 00:24:18,610 --> 00:24:21,480 seperti JPEG, dan memasukkannya ke dalam URL. 539 00:24:21,480 --> 00:24:22,330 Anda boleh melakukannya. 540 00:24:22,330 --> 00:24:25,840 Ada cara untuk encoding, tetapi ia tidak mudah seperti itu. 541 00:24:25,840 --> 00:24:29,030 >> Jadi mendaftar 0 sebenarnya sangat underwhelming. 542 00:24:29,030 --> 00:24:31,610 Semua yang dikatakannya benar-benar adalah ini. 543 00:24:31,610 --> 00:24:35,910 Ia akan mencetak dalam beberapa HTML tag berikut. 544 00:24:35,910 --> 00:24:38,640 Saya telah mendapat tag PHP di sini bersarang dalam tag pra. 545 00:24:38,640 --> 00:24:42,300 "Pra" hanya bermaksud teks yang telah diformat, mono-jarak, seperti mesin taip. 546 00:24:42,300 --> 00:24:44,836 >> Printr adalah fungsi rekursif cetak. 547 00:24:44,836 --> 00:24:46,710 Dan kemudian ada ini Perkara yang menarik di sini. 548 00:24:46,710 --> 00:24:48,835 Dan kami akan kembali ke ini kerana ada orang lain, 549 00:24:48,835 --> 00:24:51,140 tetapi tanda dolar garis bawah jawatan tampaknya 550 00:24:51,140 --> 00:24:56,110 pembolehubah dalam PHP di mana apa-apa Anda kirim dari pelayar ke pelayan 551 00:24:56,110 --> 00:24:58,040 akan disimpan untuk anda. 552 00:24:58,040 --> 00:25:00,930 Dan kita akan melihat bagaimana untuk mendapatkan di maklumat yang tidak lama lagi. 553 00:25:00,930 --> 00:25:04,000 >> Tetapi pertama, mari kita kembali kepada contoh yang sedikit berbeza. 554 00:25:04,000 --> 00:25:09,050 Pergi ke register-- atau sebaliknya, froshims1.php, 555 00:25:09,050 --> 00:25:10,470 yang kelihatan sedikit berbeza. 556 00:25:10,470 --> 00:25:12,670 Saya mengambil lebih sedikit usaha dengan format, 557 00:25:12,670 --> 00:25:14,370 walaupun ia masih sangat jelek. 558 00:25:14,370 --> 00:25:16,990 Tetapi saya akan pergi ke depan dan ketik "David" sekarang. 559 00:25:16,990 --> 00:25:17,850 Laki-laki. 560 00:25:17,850 --> 00:25:19,360 Kami akan memeriksa "kapten" kali ini. 561 00:25:19,360 --> 00:25:20,660 Kami akan melakukan yang Matthews. 562 00:25:20,660 --> 00:25:22,430 Dan mendaftar. 563 00:25:22,430 --> 00:25:24,110 >> Dan kali ini ia berkata, hm, tidak juga. 564 00:25:24,110 --> 00:25:26,180 Baiklah, jadi apa yang mendaftar 1? 565 00:25:26,180 --> 00:25:30,509 Biar saya pergi ke terbuka mendaftar 1 hm dan-. 566 00:25:30,509 --> 00:25:32,300 Baiklah, jadi ini adalah menarik, dan ini 567 00:25:32,300 --> 00:25:34,880 adalah batu loncatan ke arah sekarang program yang lebih menarik. 568 00:25:34,880 --> 00:25:38,970 >> Perhatikan bahagian atas fail ini mempunyai PHP tag dan juga beberapa komen. 569 00:25:38,970 --> 00:25:42,590 Dan ini adalah, buat masa ini, gangguan jadi mari kita menyingkirkan mereka komen 570 00:25:42,590 --> 00:25:47,070 sama seperti mereka berada di C. Dan saya menuntut dengan potongan kod ini dengan komen 571 00:25:47,070 --> 00:25:49,280 bahawa kod ini mengesahkan penyerahan. 572 00:25:49,280 --> 00:25:51,690 >> Nah, ternyata bahawa pembolehubah seperti tanda dolar 573 00:25:51,690 --> 00:25:53,739 menggarisbawahi pos disebut GLOBALS super. 574 00:25:53,739 --> 00:25:55,530 Mereka seperti ini pembolehubah global khas 575 00:25:55,530 --> 00:25:58,840 yang hanya omni-kini yang terdapat di dalam program anda. 576 00:25:58,840 --> 00:26:03,870 Dan anda boleh menggunakan notasi braket persegi kepada indeks ke dalam mereka tidak menggunakan nombor 577 00:26:03,870 --> 00:26:07,460 seperti 0, 1, 2, 3, tetapi kata-kata yang sebenarnya. 578 00:26:07,460 --> 00:26:12,100 >> Jadi, anda boleh memikirkan tanda dolar menggarisbawahi jawatan sebagai semacam jadual hash 579 00:26:12,100 --> 00:26:15,920 bahawa anda boleh lulus kunci ke, sebuah pencarian perkataan di-antara tanda kurung siku, 580 00:26:15,920 --> 00:26:19,370 dan ia akan memberikan kembali nilai untuk setiap pengguna yang benar-benar memberikan. 581 00:26:19,370 --> 00:26:21,210 PHP mempunyai fungsi yang disebut kosong yang hanya 582 00:26:21,210 --> 00:26:23,720 mengatakan ya atau tidak, ini pembolehubah kosong atau tidak. 583 00:26:23,720 --> 00:26:27,250 Kami mempunyai kedua-dua bar, yang hanya berarti atau, seperti dalam C. 584 00:26:27,250 --> 00:26:31,740 >> Jadi pada dasarnya, garis 4 sahaja mengatakan jika pengguna tidak memberi nama 585 00:26:31,740 --> 00:26:36,540 atau tidak memberikan jantina atau tidak memberikan asrama, pergi ke depan dan mengarahkan dia 586 00:26:36,540 --> 00:26:38,184 -masing melalui talian ini di sini. 587 00:26:38,184 --> 00:26:40,600 Jadi, ini adalah sedikit samar, tetapi ini hanya bermaksud secara literal 588 00:26:40,600 --> 00:26:43,330 kembali ke lokasi ini, sehingga punts pengguna 589 00:26:43,330 --> 00:26:45,420 kembali ke mana pun dia berasal. 590 00:26:45,420 --> 00:26:47,880 Tetapi itu adalah janggal sedikit iaitu aku boleh dikodkan di dalam program itu. 591 00:26:47,880 --> 00:26:52,150 >> Tetapi bagaimana jika ini jika keadaan tidak menilai kepada benar? 592 00:26:52,150 --> 00:26:55,790 Bagaimana jika pengguna itu memberikan beliau atau nama dan asrama dan jantinanya? 593 00:26:55,790 --> 00:26:58,540 Bahwa jika keadaan tidak akan menilai kepada benar, 594 00:26:58,540 --> 00:27:00,650 jadi saya tidak memukul pintu keluar di baris 7. 595 00:27:00,650 --> 00:27:01,680 Jadi apa yang berlaku? 596 00:27:01,680 --> 00:27:03,880 Dan ini adalah apa yang menarik tentang PHP. 597 00:27:03,880 --> 00:27:07,470 >> Anda boleh jatuh ke dalam dan keluar dari mod PHP, jadi untuk bercakap. 598 00:27:07,470 --> 00:27:10,985 Jika anda ingin beberapa kod untuk melaksanakan, Anda boleh membuka dan menutup tag PHP 599 00:27:10,985 --> 00:27:13,010 dan meletakkan kod di sana seperti yang telah saya lakukan di sini. 600 00:27:13,010 --> 00:27:16,810 Sebaik sahaja anda menutup PHP tag, server 601 00:27:16,810 --> 00:27:19,407 hanya akan dimuntahkan apa sahaja yang anda diletakkan di sana. 602 00:27:19,407 --> 00:27:21,740 Dan sesungguhnya, ini adalah sebahagian daripada reka bentuk asal PHP, 603 00:27:21,740 --> 00:27:25,280 untuk lebih baik untuk lebih buruk, adalah ini percampuran kod dan markup 604 00:27:25,280 --> 00:27:25,920 bahasa. 605 00:27:25,920 --> 00:27:28,670 Dan kita akan melihat bahawa ini sangat cepat anaknya itu adalah turun ke dalam keadaan huru-hara. 606 00:27:28,670 --> 00:27:31,280 Dan dengan itu kita akan melakukan yang lebih baik daripada ini pada akhirnya, tetapi hanya 607 00:27:31,280 --> 00:27:35,620 melihat kemudahan yang saya sebenarnya mampu untuk melaksanakan logik beberapa. 608 00:27:35,620 --> 00:27:37,440 >> Tetapi masih sedikit underwhelming. 609 00:27:37,440 --> 00:27:41,210 Mari kita membuka versi dua daripada Frosh IM, yang 610 00:27:41,210 --> 00:27:44,270 nampaknya tunduk kepada register2.php. 611 00:27:44,270 --> 00:27:47,600 Jadi gambar ini benar-benar akan untuk melihat hampir sama. 612 00:27:47,600 --> 00:27:50,780 Saya akan pergi ke Frosh IM 2. 613 00:27:50,780 --> 00:27:53,050 Tetapi dalam Frosh IM 2, mari kita lihat apa yang berlaku. 614 00:27:53,050 --> 00:27:58,110 >> David, klik butang radio, sebagai ia dipanggil; Matthews, tidak ada kapten. 615 00:27:58,110 --> 00:27:59,230 Mendaftar. 616 00:27:59,230 --> 00:28:00,130 Anda didaftarkan. 617 00:28:00,130 --> 00:28:00,700 Tidak juga. 618 00:28:00,700 --> 00:28:02,574 Oh tunggu, kami hanya melakukan contoh itu, tidak kita? 619 00:28:02,574 --> 00:28:04,520 Baiklah, stand by. 620 00:28:04,520 --> 00:28:06,602 Kami akan melakukan tiga. 621 00:28:06,602 --> 00:28:08,560 Jelas ada sesuatu yang kira-kira berlaku dengan Gmail. 622 00:28:08,560 --> 00:28:09,600 Kami akan ke sana. 623 00:28:09,600 --> 00:28:11,900 >> Jadi Frosh IM 3 kelihatan seperti ini. 624 00:28:11,900 --> 00:28:13,050 Tidak berbeza. 625 00:28:13,050 --> 00:28:19,850 Tetapi apabila saya melakukan Daud, lelaki, Matthews, dan mendaftar, versi ketiga dan terakhir ini 626 00:28:19,850 --> 00:28:22,230 tuntutan, agak mudah, anda berdaftar benar-benar. 627 00:28:22,230 --> 00:28:23,560 Itu semacam tidak penting. 628 00:28:23,560 --> 00:28:25,600 Tetapi saya menuntut dengan ini versi ketiga dan terakhir 629 00:28:25,600 --> 00:28:30,610 Saya kini telah dicipta semula dengan tepat apa yang saya rakan sebilik dan saya dibina untuk IM Frosh 630 00:28:30,610 --> 00:28:31,731 program tahun lalu. 631 00:28:31,731 --> 00:28:32,480 Dan ia adalah mudah. 632 00:28:32,480 --> 00:28:34,330 Tidak ada pangkalan data, tidak Excel spreadsheet. 633 00:28:34,330 --> 00:28:36,450 Tetapi yang lebih penting, tidak ada kertas lebih 634 00:28:36,450 --> 00:28:42,520 kerana apa yang kita lakukan dengan program ini adalah untuk benar-benar email pengawas, yang 635 00:28:42,520 --> 00:28:44,530 sebelum menerima perkara-perkara ini melalui bentuk. 636 00:28:44,530 --> 00:28:48,890 >> Dan ternyata kita telah diprogram ini di apa-apa cara bahawa apabila seseorang mendaftar, 637 00:28:48,890 --> 00:28:52,470 E-mel akaun John Harvard yang proctor-- atau dirinya sendiri dalam hal ini, 638 00:28:52,470 --> 00:28:55,960 John Harvard-- dengan yang berikut text-- "Orang ini hanya berdaftar." 639 00:28:55,960 --> 00:29:00,560 Nama David, kapten kosong; jenis kelamin, laki-laki; dan asrama di Matthews. 640 00:29:00,560 --> 00:29:01,560 >> Jadi apa yang berlaku di sana? 641 00:29:01,560 --> 00:29:05,360 Nah, fail yang dipersoalkan di sini nampaknya register3.php. 642 00:29:05,360 --> 00:29:09,080 Dan jika saya membuka ini, anda akan melihat kedua-dua kuasa kod seperti ini 643 00:29:09,080 --> 00:29:12,380 dan juga, terus-terang, tidak selamat sistem seperti e-mel. 644 00:29:12,380 --> 00:29:16,290 Saya baru sahaja berkesan berpura-pura John Harvard dengan cara yang berikut. 645 00:29:16,290 --> 00:29:20,920 >> Saya mempunyai tag php terbuka di bagian atas, yang hanya mengatakan di sini datang beberapa kod PHP. 646 00:29:20,920 --> 00:29:23,155 Di sini, ternyata ada perpustakaan dalam PHP. 647 00:29:23,155 --> 00:29:26,410 Anda hanya tidak perlu termasuk fail header ganda. 648 00:29:26,410 --> 00:29:28,900 Anda akan mendapat lebih banyak dengan sinki dapur, jadi untuk bercakap. 649 00:29:28,900 --> 00:29:31,820 >> Tetapi kali ini di baris 4, saya mahu ke perpustakaan khusus yang disebut 650 00:29:31,820 --> 00:29:36,087 PHP mailer, yang adalah sesuatu yang anda boleh memasang secara percuma di banyak sistem. 651 00:29:36,087 --> 00:29:37,920 Di bawah sini saya mengesahkan penyerahan yang baru 652 00:29:37,920 --> 00:29:40,540 dengan memeriksa adakah pengguna memberikan saya nama, jenis kelamin, dan asrama. 653 00:29:40,540 --> 00:29:44,130 Dan jika demikian, pergi ke depan dan memberi contoh mailer. 654 00:29:44,130 --> 00:29:47,020 >> Anda boleh menganggap ini sebagai satu baris kod yang hanya memperuntukkan. 655 00:29:47,020 --> 00:29:48,950 Ia seperti malloc, tetapi itu adalah sedikit lebih seksi 656 00:29:48,950 --> 00:29:51,790 dalam bahawa anda tidak menyebutkan hanya malloc dan beberapa jumlah generik. 657 00:29:51,790 --> 00:29:55,030 Kamu katakan memberi saya salah satu dari ini, memberikan saya yang baru ini. 658 00:29:55,030 --> 00:29:57,950 >> Dan jika anda telah diprogramkan ke dalam Java atau C ++ atau bahasa-bahasa lain, 659 00:29:57,950 --> 00:29:59,130 Anda mungkin telah melihat ini. 660 00:29:59,130 --> 00:30:01,840 Tetapi pendek itu, jika asing, baris ini 661 00:30:01,840 --> 00:30:05,410 menempatkan ke mel tanda dolar struct khusus yang disebut 662 00:30:05,410 --> 00:30:08,731 objek yang telah terbina dalam fungsi e-mel. 663 00:30:08,731 --> 00:30:10,355 Dan sebenarnya, melihat dan sintaks yang sama. 664 00:30:10,355 --> 00:30:11,900 >> Ini bukan satu penunjuk, per se. 665 00:30:11,900 --> 00:30:13,990 PHP hanya menggunakan sintaks yang sama. 666 00:30:13,990 --> 00:30:17,660 Baris ini berkata penggunaan SMTP-- Pemindahan Mel Mudah 667 00:30:17,660 --> 00:30:20,900 Protokol, yang hanya Protokol yang digunakan untuk menghantar mel. 668 00:30:20,900 --> 00:30:24,240 Ini menyatakan penggunaan Pelayan SMTP Harvard, yang 669 00:30:24,240 --> 00:30:25,830 adalah suatu tempat di kampus. 670 00:30:25,830 --> 00:30:28,480 >> Ini mengatakan apa TCP pelabuhan nombor untuk bercakap dengan, 671 00:30:28,480 --> 00:30:31,650 dan saya membuat kesimpulan bahawa oleh Googling atau dengan bertanya meja bantuan. 672 00:30:31,650 --> 00:30:34,640 Dan kemudian kerana Harvard menggunakan beberapa sistem keselamatan di server-- mel 673 00:30:34,640 --> 00:30:37,060 sekurang-kurangnya untuk menyulitkan lalu lintas di antara anda dan ia, 674 00:30:37,060 --> 00:30:41,380 walaupun sesiapa sahaja boleh hantar ke itu-- Saya akan menghidupkan protokol TLS yang 675 00:30:41,380 --> 00:30:42,710 untuk menjaga ini selamat. 676 00:30:42,710 --> 00:30:44,730 >> Tetapi ini adalah di mana perkara-perkara mendapatkan sedikit menakutkan. 677 00:30:44,730 --> 00:30:47,970 Saya boleh hanya sewenang-wenangnya mengatakan bahawa saya jharvard, 678 00:30:47,970 --> 00:30:51,930 dan saya hanya boleh sewenang-wenangnya e-mel kepada diri saya di sini. 679 00:30:51,930 --> 00:30:55,650 Dan kemudian saya boleh menentukan tertakluk dengan garis ini di sini. 680 00:30:55,650 --> 00:30:58,460 >> Dan ini hanya kelihatan hodoh, tetapi ia hanya sekumpulan Rangkaian. 681 00:30:58,460 --> 00:31:04,480 Rupa-rupanya, PHP memiliki simbol super berguna, seperti beberapa bahasa, operator titik, 682 00:31:04,480 --> 00:31:07,340 yang hanya benar-benar concatenates tali selepas tali selepas tali, 683 00:31:07,340 --> 00:31:09,810 dan anda tidak perlu malloc atau angka daripada jumlah panjang tali. 684 00:31:09,810 --> 00:31:10,820 Anda hanya melakukannya. 685 00:31:10,820 --> 00:31:15,220 Dan memang, kerana saya concatenating dalam semua perkara-perkara ini dengan titik-titik ini, 686 00:31:15,220 --> 00:31:18,330 itu sebabnya saya e-mel yang dikirim kelihatan seperti yang terjadi. 687 00:31:18,330 --> 00:31:20,610 >> Kemudian akhir sekali di sini, saya menghantar mel. 688 00:31:20,610 --> 00:31:22,580 Jadi jika ini adalah palsu, Aku hanya akan mati, 689 00:31:22,580 --> 00:31:25,680 yang merupakan satu majlis yang hanya cetakan ke skrin beberapa mesej ralat. 690 00:31:25,680 --> 00:31:29,170 Tetapi ia adalah, sebenarnya, memanggil fungsi hantar. 691 00:31:29,170 --> 00:31:31,780 Jika tidak, jika semua ini gagal, ia pengalihan saya kembali ke sini. 692 00:31:31,780 --> 00:31:34,050 >> Dan sepatutnya saya melihat bahawa Saya benar-benar berdaftar? 693 00:31:34,050 --> 00:31:36,110 Well, ia berlaku di sini. 694 00:31:36,110 --> 00:31:38,170 Jadi saya membawa hal ini untuk beberapa sebab. 695 00:31:38,170 --> 00:31:41,542 >> Satu, ini adalah persis bagaimana jika anda membina beberapa laman web untuk projek akhir 696 00:31:41,542 --> 00:31:44,000 atau untuk dunia sebenar, ini adalah bagaimana anda menghantar e-mel peringatan 697 00:31:44,000 --> 00:31:45,924 kepada pelanggan anda atau pelanggan anda. 698 00:31:45,924 --> 00:31:47,590 Ini adalah bagaimana anda menghantar peringatan kata laluan. 699 00:31:47,590 --> 00:31:50,760 Ini adalah bagaimana anda menghantar orang pesan bahawa mereka mempunyai Facebook baru 700 00:31:50,760 --> 00:31:52,990 mesej yang belum selesai atau sesuatu seperti itu. 701 00:31:52,990 --> 00:31:55,010 >> Tetapi ia juga berbicara kepada hakikat bahawa ini boleh 702 00:31:55,010 --> 00:31:58,160 telah sangat baik dari Davin atau orang lain. 703 00:31:58,160 --> 00:32:00,567 Dan saya katakan seperti ini dengan senyuman kerana saya 704 00:32:00,567 --> 00:32:03,400 cukup yakin apa yang berlaku melalui beberapa di fikiran anda pada ketika ini. 705 00:32:03,400 --> 00:32:11,910 Tetapi ini adalah salah satu dari mereka melakukan seperti yang saya berkata, tidak seperti yang saya lakukan jenis perkara, 706 00:32:11,910 --> 00:32:14,480 kerana ia adalah kecil bagi menempa e-mel seperti ini. 707 00:32:14,480 --> 00:32:16,480 Tetapi seperti yang anda mungkin telah melihat atau baca di dalam Crimson, 708 00:32:16,480 --> 00:32:18,271 akhir-akhir ini ia juga cukup remeh bagi orang-orang 709 00:32:18,271 --> 00:32:20,050 untuk mengesan mereka kembali ke asal beberapa. 710 00:32:20,050 --> 00:32:23,790 Dan bertanya kepada saya beberapa waktu, mungkin di CS50 makan tengah hari, bagaimana saya mula-mula 711 00:32:23,790 --> 00:32:27,080 berkenalan rapat hampir ke tahun papan ed banyak 712 00:32:27,080 --> 00:32:30,890 lalu apabila saya dapati bagaimana internet bekerja. 713 00:32:30,890 --> 00:32:36,940 Jadi, dalam apa-apa case-- sedikit selepas papan ed lakukan. 714 00:32:36,940 --> 00:32:42,300 >> Jadi, dalam apa-apa hal, ada sejumlah besar GLOBALS super, 715 00:32:42,300 --> 00:32:45,960 sebagai mereka disebut di sini, satu daripadanya kita Saw jawatan dolar tanda garis bawah. 716 00:32:45,960 --> 00:32:49,530 Ada rakan sejawat yang dipanggil get, yang mana barang-barang dari URL 717 00:32:49,530 --> 00:32:50,690 berakhir akan. 718 00:32:50,690 --> 00:32:54,051 Dan ada sejumlah besar orang lain, sesi too-- dan pelayan dan cookies. 719 00:32:54,051 --> 00:32:55,800 Kami akan kembali ke Cookie suatu masa yang lain, 720 00:32:55,800 --> 00:33:01,340 tetapi sesi jenis dingin kerana hak sekarang-- sampai sekarang-- 721 00:33:01,340 --> 00:33:06,350 segala sesuatu yang kita lakukan dengan pelayar web adalah semacam tanpa negara, jadi untuk bercakap. 722 00:33:06,350 --> 00:33:10,060 Saya boleh klik di sekitar, akses fail pada pelayan, sesuatu 723 00:33:10,060 --> 00:33:13,500 berlaku pada skrin, tetapi maka sambungan ditutup. 724 00:33:13,500 --> 00:33:17,450 Internet Explorer atau Icon Firefox berhenti berputar 725 00:33:17,450 --> 00:33:20,340 dan anda hanya melihat apa yang bahawa laman Web tersebut. 726 00:33:20,340 --> 00:33:23,530 >> Jadi HTTP adalah tanpa negara di mana setelah membuat sambungan, 727 00:33:23,530 --> 00:33:25,050 mendapat beberapa data, itu sahaja. 728 00:33:25,050 --> 00:33:29,940 Sambungan tidak lebih, tidak seperti Skype, tidak seperti Facetime, GChat tidak seperti yang 729 00:33:29,940 --> 00:33:32,180 mempertahankan yang tetap sambungan ke pelayan. 730 00:33:32,180 --> 00:33:34,650 Web pada dasarnya terputus, walaupun kami akan 731 00:33:34,650 --> 00:33:36,630 melihat lama bagaimana kita dapat mensimulasikan perkara 732 00:33:36,630 --> 00:33:39,300 seperti chat Facebook dan GChat, yang menjaga illusion-- 733 00:33:39,300 --> 00:33:41,680 atau benar-benar melakukan mempertahankan hubungan konstan menggunakan 734 00:33:41,680 --> 00:33:43,270 teknologi yang lebih moden. 735 00:33:43,270 --> 00:33:49,000 >> Tetapi jika aku pergi ke, berkata, counter.php, ini adalah satu lagi contoh yang mudah, 736 00:33:49,000 --> 00:33:52,700 seperti yang akan kita lihat, pada masa ini difikirkan Saya melawat laman web ini masa sifar. 737 00:33:52,700 --> 00:33:56,790 Tetapi jika saya hanya memuatkan semula halaman, entah bagaimana tahu aku ada di sini sebelum ini. 738 00:33:56,790 --> 00:33:58,840 Jika saya menambah nilai lagi, tahu aku ada di sini sebelum ini. 739 00:33:58,840 --> 00:34:01,100 Dan sekali lagi dan lagi dan lagi dan lagi. 740 00:34:01,100 --> 00:34:03,610 >> Jadi ada beberapa plus-plussing berlaku, tetapi notis 741 00:34:03,610 --> 00:34:07,090 perkara yang sedikit berputar pernah jadi secara ringkas di bagian atas dan kemudian terputus, 742 00:34:07,090 --> 00:34:11,179 jadi ia tidak seperti saya mempunyai yang tetap sambungan ke alat saya. 743 00:34:11,179 --> 00:34:16,929 Nah, jika aku masuk ke counter.php, melihat bagaimana mudah ia adalah. 744 00:34:16,929 --> 00:34:19,080 Saya dakwahlah ini khas fungsi yang kita akan tidak lama lagi 745 00:34:19,080 --> 00:34:21,513 mula mengambil untuk diberikan dipanggil sesi permulaan. 746 00:34:21,513 --> 00:34:22,179 Mulai sesi. 747 00:34:22,179 --> 00:34:25,095 >> Dan sesi seterusnya adalah hanya akan menjadi ember, seperti membeli-belah yang 748 00:34:25,095 --> 00:34:28,120 kereta di mana anda boleh meletakkan nilai-nilai dan jenis amanah sebagai seorang programmer 749 00:34:28,120 --> 00:34:31,590 bahawa mereka akan berada di sana apabila pengguna yang datang back-- kedua 750 00:34:31,590 --> 00:34:35,670 kemudian, satu jam kemudian, bahkan setahun kemudian, selagi ia tidak jelas 751 00:34:35,670 --> 00:34:37,602 cookie mereka, seperti yang kita akhirnya akan melihat. 752 00:34:37,602 --> 00:34:39,310 Dan sekarang saya hanya perlu jika keadaan di sini. 753 00:34:39,310 --> 00:34:44,679 Jadi, jika kunci yang berikut, dipanggil counter, yang ditetapkan di dalam 754 00:34:44,679 --> 00:34:49,210 super ini global-- hash ini meja, jika anda will-- dipanggil sesi, 755 00:34:49,210 --> 00:34:53,350 kemudian pergi ke depan dan ambil nilai daripada think session-- 756 00:34:53,350 --> 00:34:55,250 ini sebagai membeli-belah yang cart-- dan menyimpannya 757 00:34:55,250 --> 00:34:57,680 dalam variabel sementara dipanggil kaunter. 758 00:34:57,680 --> 00:35:02,240 >> Jika tidak, jika itu kaunter nilai adalah tidak diatur dalam troli membeli-belah yang dipanggil, 759 00:35:02,240 --> 00:35:04,430 hanya memulakan ke 0. 760 00:35:04,430 --> 00:35:09,830 Akhir sekali, di sini, pergi dan dimasukkan kembali ke dalam shopping cart atau sesi 761 00:35:09,830 --> 00:35:13,000 nilai counter +1. 762 00:35:13,000 --> 00:35:16,730 Jadi ternyata bahawa ini sini-bekas khas 763 00:35:16,730 --> 00:35:20,355 yang, sekali lagi, adalah salah satu yang berkaitan array, array yang anda boleh Indeks 764 00:35:20,355 --> 00:35:25,010 dalam kata-kata bukan Numbers tetap ada bahkan setelah pengguna akan hilang. 765 00:35:25,010 --> 00:35:26,510 Sekali lagi, saya akan kembali ke halaman yang sekarang. 766 00:35:26,510 --> 00:35:28,400 Ia adalah satu minit atau lebih. 767 00:35:28,400 --> 00:35:31,300 Tetapi ia mengingat bahwa saya telah di sini 19 kali sebelum ini. 768 00:35:31,300 --> 00:35:32,740 Ini merupakan lawatan ke-20 saya. 769 00:35:32,740 --> 00:35:36,560 >> Dan sebagainya ini akan menjadi kunci kepada melaksanakan apa-apa laman web yang mengingat 770 00:35:36,560 --> 00:35:40,640 bahawa anda log masuk, anda meletakkan sesuatu literal dalam keranjang belanja anda 771 00:35:40,640 --> 00:35:43,902 untuk membeli atau anda mempunyai beberapa Bilangan mesej belum selesai. 772 00:35:43,902 --> 00:35:45,610 Bila-bila masa anda mahu mengingati maklumat, 773 00:35:45,610 --> 00:35:48,130 kita akan melihat bahawa PHP, seperti beberapa bahasa lain, 774 00:35:48,130 --> 00:35:53,640 memberikan kita ilusi ini negara walaupun, kerana anda akan melihat dalam Serangga 6, 775 00:35:53,640 --> 00:35:57,642 sebagai anda membuat permintaan HTTP dari client ke server, itu sahaja. 776 00:35:57,642 --> 00:35:59,850 Setelah anda mendapatkan belakang yang tindak balas, tidak ada yang lebih 777 00:35:59,850 --> 00:36:01,790 kembali dari pelayan secara lalai. 778 00:36:01,790 --> 00:36:03,820 Tetapi kita akan melihat bagaimana untuk bekerja di sekitar itu. 779 00:36:03,820 --> 00:36:07,430 >> Sekarang, mari kita cuba untuk membersihkan ini sedikit. 780 00:36:07,430 --> 00:36:09,470 Kami telah melihat beberapa contoh-contoh yang berbeza di sana. 781 00:36:09,470 --> 00:36:12,250 Oh, dan sebagai samping, untuk mereka yang biasa atau yang tidak dikenali, 782 00:36:12,250 --> 00:36:14,230 alasan bahwa Contoh Frosh IM pergi 783 00:36:14,230 --> 00:36:18,060 dari melihat benar-benar hodoh ke slightly-- baik, 784 00:36:18,060 --> 00:36:23,160 masih ugly-- untuk sedikit kurang hodoh walaupun masih hodoh 785 00:36:23,160 --> 00:36:25,230 kerana jika kita melihat pada kod sumber di sini, 786 00:36:25,230 --> 00:36:28,240 ternyata yang saya ada ini di bahagian paling atas fail. 787 00:36:28,240 --> 00:36:32,570 >> Ternyata bootstrap adalah salah satu daripada banyak perpustakaan boleh diperolehi secara percuma di luar sana 788 00:36:32,570 --> 00:36:37,140 yang tidak ada bagi bahasa pengaturcaraan biasa, tetapi untuk CSS atau JavaScript 789 00:36:37,140 --> 00:36:39,190 atau HTML atau beberapa bahasa. 790 00:36:39,190 --> 00:36:42,160 >> Dan orang-orang ini di sini- asalnya datang daripada 791 00:36:42,160 --> 00:36:44,730 dari Twitter-- hanya perlu sejumlah besar gaya. 792 00:36:44,730 --> 00:36:47,360 Ini adalah fail besar di sini bahawa seseorang menulis, 793 00:36:47,360 --> 00:36:51,020 atau seseorang menulis, dari masa ke masa yang menentukan warna dan format 794 00:36:51,020 --> 00:36:53,740 dan barang kecil supaya saya boleh jenis meminjam sintaks mereka 795 00:36:53,740 --> 00:36:56,157 dan tidak perlu memikirkan cara untuk meletakkan borang saya. 796 00:36:56,157 --> 00:36:57,990 Ini juga minified supaya komputer boleh 797 00:36:57,990 --> 00:37:00,560 memahaminya tetapi tidak semestinya manusia. 798 00:37:00,560 --> 00:37:03,050 Jadi itu hanya mengapa penyesuaian dgn mode ada berubah. 799 00:37:03,050 --> 00:37:05,450 >> Tetapi marilah kita buat yang lebih baik dari segi reka bentuk, 800 00:37:05,450 --> 00:37:07,490 kerana jika kita tetap di bawah jalan ini terlalu lama, 801 00:37:07,490 --> 00:37:11,290 kode kita akan berantakan dan berantakan. 802 00:37:11,290 --> 00:37:13,040 Jadi mari kita fokus pada contoh-contoh di sini. 803 00:37:13,040 --> 00:37:15,090 Yang terakhir untuk hari ini. 804 00:37:15,090 --> 00:37:18,720 >> Jadi di sini adalah super mudah versi 1.0 dari laman web CS50 ini. 805 00:37:18,720 --> 00:37:21,250 Hanya memiliki pautan kepada kuliah dan sukatan pelajaran, 806 00:37:21,250 --> 00:37:25,490 dan ia menggunakan senarai tidak tertib tag-- tag UL yang kita menggunakan masa lalu. 807 00:37:25,490 --> 00:37:28,800 Dan jika sebenarnya, jika saya membuka View Page Source, 808 00:37:28,800 --> 00:37:31,710 Anda akan melihat bahawa ini adalah benar-benar, benar-benar HTML sederhana. 809 00:37:31,710 --> 00:37:35,460 Dan sebenarnya, walaupun ini adalah file PHP di bawah hood, 810 00:37:35,460 --> 00:37:38,620 ia masih hanya meludah keluar hanya HTML untuk saat ini. 811 00:37:38,620 --> 00:37:41,312 >> Jadi jika saya klik pada Kuliah, kita melihat ini terjadi. 812 00:37:41,312 --> 00:37:43,020 Dan jika saya klik pada minggu sifar, kita lihat ini. 813 00:37:43,020 --> 00:37:44,920 Dan jika saya klik pada Rabu, kami melihat ini. 814 00:37:44,920 --> 00:37:47,900 Dan ini nampaknya adalah PDF slaid dari hari itu. 815 00:37:47,900 --> 00:37:52,020 Apa yang saya lakukan adalah pautan dengan tag anchor ke URL ini di sini. 816 00:37:52,020 --> 00:37:55,400 >> Jadi, ini adalah hanya untuk mengatakan ini adalah cukup versi sederhana dari laman web CS50 ini. 817 00:37:55,400 --> 00:37:56,790 Mari kita lihat bagaimana ia dilaksanakan. 818 00:37:56,790 --> 00:38:01,240 Jika saya pergi ke direktori mvc0 itu, kita akan melihat beberapa fail. 819 00:38:01,240 --> 00:38:03,250 Salah satunya adalah README, jadi jika Beberapa daripadanya adalah terlalu cepat, 820 00:38:03,250 --> 00:38:05,166 Anda hanya dapat melihat- lebih santai kemudian. 821 00:38:05,166 --> 00:38:07,930 Dan notis di sini adalah fail index.php. 822 00:38:07,930 --> 00:38:09,960 Ia ternyata bahawa jika anda sendiri, manusia, 823 00:38:09,960 --> 00:38:14,460 tidak menentukan nama akhir URL, pelayan web biasanya 824 00:38:14,460 --> 00:38:17,010 Kesimpulannya di sini, beberapa nama lalai untuk anda. 825 00:38:17,010 --> 00:38:20,060 Sebuah sesuatu indeks dot umumnya lalai. 826 00:38:20,060 --> 00:38:23,010 >> Jadi sebab itulah saat yang lalu apabila saya melawat URL ini di sini, 827 00:38:23,010 --> 00:38:26,750 tiada nama fail, tidak ada file pengembangan, ada masa dalam URL. 828 00:38:26,750 --> 00:38:29,710 Ia hanya tahu entah bagaimana ajaib mencari index.php. 829 00:38:29,710 --> 00:38:30,870 Ia hanya konvensi. 830 00:38:30,870 --> 00:38:32,360 Boleh dipanggil apa-apa. 831 00:38:32,360 --> 00:38:35,110 >> Jadi jika saya sekarang pergi ke index.php, anda akan melihat 832 00:38:35,110 --> 00:38:37,100 itu, mari kita indeed-- menyingkirkan komen 833 00:38:37,100 --> 00:38:39,500 di sini kerana ada benar-benar ada yang menarik untuk itu-- 834 00:38:39,500 --> 00:38:41,579 ini hanya sulit kode HTML. 835 00:38:41,579 --> 00:38:43,370 Jadi itulah yang konsisten, walaupun, dengan tuntutan saya 836 00:38:43,370 --> 00:38:45,230 bahawa anda boleh bercampur HTML dan PHP. 837 00:38:45,230 --> 00:38:48,060 Tidak ada yang sebenarnya pengaturcaraan logik di sini. 838 00:38:48,060 --> 00:38:51,030 >> Dan gambar-gambar yang lain cukup banyak hanya tidak menarik. 839 00:38:51,030 --> 00:38:56,240 Ia hanya satu minggu keras berkod di sini untuk minggu satu m dan minggu satu w, 840 00:38:56,240 --> 00:38:57,510 untuk hari Isnin dan Rabu. 841 00:38:57,510 --> 00:39:01,890 Dan kemudian jika saya membuka minggu sifar, notis itu hampir serupa. 842 00:39:01,890 --> 00:39:03,320 >> Dan itulah jenis takeaway kunci. 843 00:39:03,320 --> 00:39:06,180 Perhatikan betapa berlebihan ini. 844 00:39:06,180 --> 00:39:10,710 Fail-fail ini hampir tidak berubah, tetapi saya ditarik salah satu pekerjaan salin / tampal 845 00:39:10,710 --> 00:39:13,420 di mana saya mengambil satu file-- mungkin pada minggu zero-- disalin 846 00:39:13,420 --> 00:39:16,320 ketika minggu satu tiba, dan tweak beberapa nilai-nilai. 847 00:39:16,320 --> 00:39:18,590 Kita mungkin akan dapat untuk berbuat lebih baik daripada ini. 848 00:39:18,590 --> 00:39:21,800 >> Jadi mari kita kembali sehingga MVC dan pergi ke dalam versi satu. 849 00:39:21,800 --> 00:39:24,810 Dan perhatikan saya telah mendapat beberapa fail, kerana apa yang 850 00:39:24,810 --> 00:39:29,870 adalah umum untuk semua file-file hanya masa ago-- jika saya kembali ke versi 0, 851 00:39:29,870 --> 00:39:32,600 mari kita kembali ke dalam indeks, dan hanya postulate-- 852 00:39:32,600 --> 00:39:36,090 setelah saya menyingkirkan comments-- yang apa yang sebahagian daripada halaman ini 853 00:39:36,090 --> 00:39:40,072 adalah mungkin dalam setiap satu daripada fail-fail saya? 854 00:39:40,072 --> 00:39:40,780 Sebut saja keluar. 855 00:39:40,780 --> 00:39:44,620 Yang baris digandakan mungkin di semua laman-laman ini? 856 00:39:44,620 --> 00:39:45,120 Ya? 857 00:39:45,120 --> 00:39:46,110 >> PELAJAR: [didengar]. 858 00:39:46,110 --> 00:39:47,660 >> DAVID J. MALAN: 1 hingga 9. 859 00:39:47,660 --> 00:39:48,720 Ya, benar-benar. 860 00:39:48,720 --> 00:39:52,080 1 hingga 9, kecuali mungkin 8 berubah sedikit sebab CS50 861 00:39:52,080 --> 00:39:54,650 menjadi kuliah atau minggu sifar atau sesuatu. 862 00:39:54,650 --> 00:39:55,970 Tetapi hampir serupa. 863 00:39:55,970 --> 00:39:58,657 Jadi semua ini adalah hanya jenis disalin dan ditampal. 864 00:39:58,657 --> 00:40:00,490 Dan ada pasangan lain-lain talian saya boleh berfikir 865 00:40:00,490 --> 00:40:05,000 dari yang mungkin ada persamaan semua fail. 866 00:40:05,000 --> 00:40:06,315 >> PELAJAR: 12 dan 13. 867 00:40:06,315 --> 00:40:07,190 DAVID J. MALAN: Ya. 868 00:40:07,190 --> 00:40:11,220 Pasti, 12, 13, dan 14 mungkin, hanya kerana hal-hal yang menarik 869 00:40:11,220 --> 00:40:15,460 yang berlaku pada baris 11 dan 10, maka ia akan kelihatan. 870 00:40:15,460 --> 00:40:18,350 Jadi mari kita lihat versi 1, yang cuba untuk memperbaiki ini. 871 00:40:18,350 --> 00:40:24,020 Dalam versi 1 dari example-- MVC ini kita akan menjelaskan apa cara MVC dalam moment-- yang 872 00:40:24,020 --> 00:40:27,420 jika saya pergi ke dalam indeks, jenis kelihatan sedikit membingungkan sekarang. 873 00:40:27,420 --> 00:40:28,880 Ia bukan semudah seperti sebelumnya. 874 00:40:28,880 --> 00:40:30,906 >> Tetapi apabila anda mula membacanya dengan hati-hati, itu 875 00:40:30,906 --> 00:40:32,530 cukup jelas apa yang dilakukannya. 876 00:40:32,530 --> 00:40:34,397 Rupa-rupanya baris 1 dan baris 8 telah menggantikan 877 00:40:34,397 --> 00:40:37,230 semua barang-barang yang anda hanya identified-- walaupun hanya sebagai tambahan, 878 00:40:37,230 --> 00:40:41,900 Saya meninggalkan ULS sana hanya dalam kes beberapa hari tidak mempunyai senarai perkara. 879 00:40:41,900 --> 00:40:47,860 Dan sebagainya memerlukan adalah jenis seperti pound termasuk di C. Ini salinan dan Pes 880 00:40:47,860 --> 00:40:50,470 kandungan secara berkesan di sini ke dalam fail ini. 881 00:40:50,470 --> 00:40:53,650 >> Jadi dalam header.php, kerana anda mungkin membuat kesimpulan dari namanya, 882 00:40:53,650 --> 00:40:55,330 akan menjadi header halaman. 883 00:40:55,330 --> 00:40:57,110 Ini semacam yatim di sini. 884 00:40:57,110 --> 00:41:01,820 Ia hanya mempunyai bahagian atas untuk itu, tetapi tidak ada kandungan yang lebih bawah. 885 00:41:01,820 --> 00:41:05,070 >> Dan jika saya melihat footer sementara itu, yang fail lain mentioned-- 886 00:41:05,070 --> 00:41:08,830 yang satu ini walaupun kurang menarik, tetapi sekali lagi, itu umum untuk segala-galanya. 887 00:41:08,830 --> 00:41:10,250 Jadi, ini adalah footer. 888 00:41:10,250 --> 00:41:11,300 Ini adalah header. 889 00:41:11,300 --> 00:41:13,950 Ini adalah fail itu berubah-ubah, jadi mengapa tidak 890 00:41:13,950 --> 00:41:18,140 cuba untuk faktor luar persamaan secara dengan kedua-dua baris di sini? 891 00:41:18,140 --> 00:41:20,090 >> Tetapi kita dapat membersihkan ini sehingga sedikit lagi. 892 00:41:20,090 --> 00:41:23,260 Saya akan pergi ke depan dan membuka versi dua di mana 893 00:41:23,260 --> 00:41:27,106 kita akan melihat bahawa terdapat fail baru, myspace.png. 894 00:41:27,106 --> 00:41:28,610 Kita akan lihat apa yang ada di dalam seketika. 895 00:41:28,610 --> 00:41:30,930 Mari kita pergi ke indeks, sebagai pintu masuk seperti sebelumnya. 896 00:41:30,930 --> 00:41:35,230 >> Dan kini melihat saya memerlukan myspace.png, bukan header atau footer. 897 00:41:35,230 --> 00:41:41,720 Tetapi pembantu adalah jenis seperti helpers.c dan helpers.h dari Serangga 2 898 00:41:41,720 --> 00:41:46,150 atau Serangga 3 lama dahulu apabila anda benar-benar adakah mencari dan menemukan Serangga untuk itu, 899 00:41:46,150 --> 00:41:50,950 dan anda mempunyai semua kod anda untuk pengisihan dan mencari dalam fail yang berasingan. 900 00:41:50,950 --> 00:41:52,510 Itulah apa yang berlaku di sini. 901 00:41:52,510 --> 00:41:54,390 >> Dan kini baris 3 kelihatan sedikit berbeza. 902 00:41:54,390 --> 00:41:55,920 Dan itu hanya satu baris. 903 00:41:55,920 --> 00:41:57,950 Untuk membuat ini lebih jelas, saya hanya boleh 904 00:41:57,950 --> 00:42:01,820 adakah ini menjadi Gaya konsisten dengan segala sesuatu yang lain yang telah kami lakukan. 905 00:42:01,820 --> 00:42:04,130 Tetapi itu bukan benar-benar mengubah fungsi tersebut. 906 00:42:04,130 --> 00:42:05,880 Ia hanya satu baris kod sebenar. 907 00:42:05,880 --> 00:42:09,010 >> Rupa-rupanya, ada fungsi di suatu tempat yang dipanggil membuat header, 908 00:42:09,010 --> 00:42:11,420 dan ini adalah di mana perkara-perkara mendapatkan cukup kuat. 909 00:42:11,420 --> 00:42:17,040 Perhatikan bahawa dalam tanda kurung nya adalah apa yang bahagian lain dari sintaks? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 Ia mungkin agak sukar untuk mengatakan, tetapi melihat there's-- Saya akan meletakkan beberapa putih 912 00:42:23,350 --> 00:42:24,300 ruang. 913 00:42:24,300 --> 00:42:25,530 Ada tanda kurung siku. 914 00:42:25,530 --> 00:42:29,700 >> Dan tanda kurung siku kita lihat sedikit yang lalu dalam konteks array bersekutu, 915 00:42:29,700 --> 00:42:31,580 yang, sekali lagi, seperti jadual hash. 916 00:42:31,580 --> 00:42:36,230 Dan jika anda berfikir sekarang untuk C, urutan hujah ke fungsi 917 00:42:36,230 --> 00:42:37,570 harus selalu sama. 918 00:42:37,570 --> 00:42:41,146 Anda perlu ingat apa yang memerintahkan is-- x, y, z atau z, y, x-- 919 00:42:41,146 --> 00:42:44,020 dan anda perlu sentiasa menyediakan mereka dalam perintah yang sama atau melihat mereka 920 00:42:44,020 --> 00:42:45,100 jika anda terlupa. 921 00:42:45,100 --> 00:42:51,140 >> Tetapi ini seolah-olah menjadi cara yang pintar lulus nilai kunci sewenang-wenangnya 922 00:42:51,140 --> 00:42:55,840 pasangan mana tajuk adalah nama yang dari hujah dalam kes ini 923 00:42:55,840 --> 00:42:58,334 dan CS50 adalah nilainya. 924 00:42:58,334 --> 00:43:00,250 Dan fakta yang saya ada ini tanda kurung siku 925 00:43:00,250 --> 00:43:02,560 di sini bermakna bahawa saya boleh juga lulus dalam sesuatu 926 00:43:02,560 --> 00:43:07,550 seperti seminggu adalah 1 atau 0 atau 2 atau 3. 927 00:43:07,550 --> 00:43:10,550 Jadi kami telah parameter fungsi ini dalam apa-apa cara yang 928 00:43:10,550 --> 00:43:15,180 bahwa ia dapat mengambil beberapa input, tetapi buat masa ini ia hanya satu. 929 00:43:15,180 --> 00:43:20,060 >> Jika saya sekarang masuk ke myspace.png, melihat apa yang dilakukannya. 930 00:43:20,060 --> 00:43:22,030 Ini adalah sedikit fungsi baru, 931 00:43:22,030 --> 00:43:24,190 tetapi buat masa ini hanya mengambil pada kepercayaan bahawa ini adalah 932 00:43:24,190 --> 00:43:26,570 sintaks yang anda menetapkan fungsi dalam PHP. 933 00:43:26,570 --> 00:43:27,840 Anda benar-benar mengatakan fungsi. 934 00:43:27,840 --> 00:43:30,090 Anda tidak menentukan pulangan yang menaip, dan itulah yang konsisten 935 00:43:30,090 --> 00:43:33,880 dengan butiran yang berubah-ubah lebih awal di mana anda tidak benar-benar sangat menaip. 936 00:43:33,880 --> 00:43:35,650 >> Ini hanya menentukan bahawa, secara lalai, ini 937 00:43:35,650 --> 00:43:37,460 mengambil asosiatif sebuah array sebagai hujah. 938 00:43:37,460 --> 00:43:38,210 Dan anda tahu apa? 939 00:43:38,210 --> 00:43:41,450 Jika pengguna tidak lulus satu dalam, menganggap nilai default. 940 00:43:41,450 --> 00:43:44,680 >> Ini adalah ciri yang C tidak mempunyai bagi kita, yang baik, kerana sekarang 941 00:43:44,680 --> 00:43:46,430 data, walaupun anda tidak memberikan apa-apa, 942 00:43:46,430 --> 00:43:49,300 akan menjadi satu pelbagai tetapi yang kosong. 943 00:43:49,300 --> 00:43:51,860 Dan sebagai samping, ekstrak hanya melakukan sesuatu yang funky 944 00:43:51,860 --> 00:43:56,380 di mana ia mengambil semua kunci dari ini associative array, semua perkara 945 00:43:56,380 --> 00:43:59,950 anda boleh dimasukkan ke dalam tanda kurung siku, dan mencipta pembolehubah daripada mereka 946 00:43:59,950 --> 00:44:06,270 sehingga kita akhirnya dapat mempunyai akses kepada mereka dalam footet.php dan header.php. 947 00:44:06,270 --> 00:44:08,950 Itu satu abstrak sedikit, jadi biar menunjukkan ini. 948 00:44:08,950 --> 00:44:12,990 >> Dalam index.php, perhatikan bahawa saya lewat di suatu nilai pasangan kunci tajuk 949 00:44:12,990 --> 00:44:14,850 dengan nilai CS50. 950 00:44:14,850 --> 00:44:18,660 Jika saya lihat sekarang myspace.png, melihat bahawa RenderHeader 951 00:44:18,660 --> 00:44:23,870 adalah penggalian bahawa data yang saya lulus dalam, dan kemudian memerlukan header.php. 952 00:44:23,870 --> 00:44:27,970 Apa yang saya lakukan adalah semacam orang miskin perlaksanaan sekarang yang berikut. 953 00:44:27,970 --> 00:44:31,720 >> Jika saya membuka header.php, notis bahawa saya telah tidak lagi keras 954 00:44:31,720 --> 00:44:34,890 berkod CS50 perkataan dalam fail header ini. 955 00:44:34,890 --> 00:44:39,310 Saya telah meletakkan ini diakui atrociously bernama fungsi, HTML aksara khas, 956 00:44:39,310 --> 00:44:40,170 di sana. 957 00:44:40,170 --> 00:44:41,640 Tetapi melihat apa yang saya lakukan. 958 00:44:41,640 --> 00:44:44,240 Saya ada HTML terbuka. 959 00:44:44,240 --> 00:44:47,420 Saya kemudian mempunyai kepala terbuka dan tajuk terbuka. 960 00:44:47,420 --> 00:44:52,380 >> Dan kemudian di dalam tajuk ini terbuka dan tag penutup, saya mempunyai sedikit kod PHP. 961 00:44:52,380 --> 00:44:56,670 Dan ini adalah baik tetapi sintaksis, yang hanya berarti echo keluar. 962 00:44:56,670 --> 00:44:59,840 Secara harfiah berarti this-- echo following-- yang 963 00:44:59,840 --> 00:45:01,910 tetapi ini adalah lebih seksi untuk menulis. 964 00:45:01,910 --> 00:45:05,000 Echo keluar tajuk yang telah diluluskan pada. 965 00:45:05,000 --> 00:45:07,560 >> Tetapi apa yang anda berfikir HTML char khas adalah semua tentang, 966 00:45:07,560 --> 00:45:10,590 terutamanya jika anda mempunyai pengalaman HTML terlebih dahulu? 967 00:45:10,590 --> 00:45:14,050 Apa aksara mungkin berbahaya untuk lulus dalam ke halaman 968 00:45:14,050 --> 00:45:17,980 di mana anda secara dinamik menghasilkan Laman web dengan kod seperti ini? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Biar saya pergi ke fail ini, versi dua, dan melihat apakah saya tidak boleh menyebabkan ini. 971 00:45:24,650 --> 00:45:26,210 >> Versi kedua adalah ini. 972 00:45:26,210 --> 00:45:28,510 Dan memperhatikan segala sesuatu adalah baik, bekerja dengan baik. 973 00:45:28,510 --> 00:45:35,280 Namun bolehkah saya masuk ke index.php dan Saya ditentukan bahwa judul halaman saya 974 00:45:35,280 --> 00:45:36,630 bukan CS50. 975 00:45:36,630 --> 00:45:44,930 Ia adalah kurungan terbuka skrip amaran hello world, kutip dekat, 976 00:45:44,930 --> 00:45:49,740 kurung dekat, titik koma, kurungan terbuka, skrip palang. 977 00:45:49,740 --> 00:45:51,897 >> Script, seperti yang akan kita akhirnya lihat, tag 978 00:45:51,897 --> 00:45:54,480 bahawa anda boleh gunakan untuk penggunaan lain bahasa pengaturcaraan yang dikenali sebagai 979 00:45:54,480 --> 00:45:56,330 JavaScript dalam halaman web. 980 00:45:56,330 --> 00:45:57,960 Dan kini melihat logik di sini. 981 00:45:57,960 --> 00:45:59,840 Berikut adalah kunci yang dipanggil tajuk. 982 00:45:59,840 --> 00:46:02,690 Berikut adalah nilai itu lama gila sekarang. 983 00:46:02,690 --> 00:46:07,840 >> Tetapi jika saya pergi ke pembantu page- atau lebih tepatnya, halaman tajuk, 984 00:46:07,840 --> 00:46:11,310 Saya memanggil fungsi ini pada tajuk yang pertama. 985 00:46:11,310 --> 00:46:15,250 Jadi jika saya sekarang muat semula laman ini, saya melihat ini, yang kelihatan tidak masuk akal, 986 00:46:15,250 --> 00:46:16,110 tapi aman. 987 00:46:16,110 --> 00:46:17,310 Ia hanya kelihatan bodoh. 988 00:46:17,310 --> 00:46:20,320 >> Tetapi kira bukan Saya sudah lupa ini. 989 00:46:20,320 --> 00:46:24,660 Dan tandakan kata-kata saya, beberapa bukan sifar Anda akan lupa untuk melakukan ini 990 00:46:24,660 --> 00:46:27,790 dan anda akan mendapat beberapa rajin pelajar atau rakan datang 991 00:46:27,790 --> 00:46:31,540 kepada anda di pameran CS50 atau tanpa nama pada waktu malam mengaduk-aduk di laman web anda 992 00:46:31,540 --> 00:46:35,300 dan pada dasarnya suntikan kod tanpa pengetahuan anda ke laman web anda 993 00:46:35,300 --> 00:46:35,800 entah bagaimana. 994 00:46:35,800 --> 00:46:39,000 >> Kerana jika saya hanya meludah keluar tajuk di sini dan tajuk 995 00:46:39,000 --> 00:46:44,330 besar-- baik, jika tajuk harfiah kelihatan seperti ini dan PHP 996 00:46:44,330 --> 00:46:47,660 sebagai bahasa yang boleh meludah daripada bahasa teks yang lain, 997 00:46:47,660 --> 00:46:50,650 ini benar-benar akan untuk menggantikan tag ini dengan, 998 00:46:50,650 --> 00:46:53,010 sudah tentu, apa yang saya meletakkan di tempat lain. 999 00:46:53,010 --> 00:46:57,640 >> Jadi jika saya sekarang pergi di sini dan kembali selepas kehancuran mekanisme-mekanisme keselamatan, 1000 00:46:57,640 --> 00:46:59,982 sekarang saya mempunyai hello dunia di sini. 1001 00:46:59,982 --> 00:47:02,690 Sekarang bukan semua yang besar dari berurusan, tetapi anda boleh melakukan sesuatu 1002 00:47:02,690 --> 00:47:05,119 sedikit lebih berbahaya di sini, seperti ada 1003 00:47:05,119 --> 00:47:08,410 tags-- lain seperti yang kita akan melihat sekali kita berbelanja lebih banyak masa di JavaScript-- seperti lokasi 1004 00:47:08,410 --> 00:47:14,910 dot href mendapat, kutipan, tanda kutip, HTTP business.com, tetapi yang bertentangan dengan yang 1005 00:47:14,910 --> 00:47:15,950 dari hari yang lain. 1006 00:47:15,950 --> 00:47:20,120 Dan kini anda boleh mendorong web halaman untuk benar-benar pergi segera 1007 00:47:20,120 --> 00:47:21,190 ke laman web ini di sini. 1008 00:47:21,190 --> 00:47:23,000 >> Dan sebenarnya, saya tidak mahu bahkan pergi ke business.com 1009 00:47:23,000 --> 00:47:24,749 kerana saya tidak mahu tahu apa itu. 1010 00:47:24,749 --> 00:47:28,710 Tetapi ini juga akan mencetuskan kod yang akan disuntik ke dalam halaman ini. 1011 00:47:28,710 --> 00:47:32,680 Jadi, ini adalah hanya untuk mengatakan bahawa walaupun kami memperkenalkan super awal pada beberapa 1012 00:47:32,680 --> 00:47:36,800 struktur ini lebih kompleks, itu semua bagi suatu tujuan untuk memastikan 1013 00:47:36,800 --> 00:47:39,320 bahawa kod anda tidak dieksploitasi. 1014 00:47:39,320 --> 00:47:40,960 >> Jadi sekarang versi yang ketiga di sini. 1015 00:47:40,960 --> 00:47:42,470 Ini semakin lebih menarik sedikit. 1016 00:47:42,470 --> 00:47:44,875 Saya tidak benar-benar like-- bahagian dubur saya 1017 00:47:44,875 --> 00:47:47,750 semakin sedikit terganggu oleh Ternyata aku telah fungsi yang dipanggil 1018 00:47:47,750 --> 00:47:51,940 RenderHeader dan RenderFooter yang hampir sama. 1019 00:47:51,940 --> 00:47:55,400 Jadi ia berlaku kepada saya, mengapa tidak melakukan Saya parameterize fungsi-fungsi ini 1020 00:47:55,400 --> 00:47:59,180 menjadi hanya satu yang disebut menyebabkan, telah ia mengambil hujah kedua 1021 00:47:59,180 --> 00:48:04,420 seperti nama template, final untuk render-- sama ada header atau footer? 1022 00:48:04,420 --> 00:48:07,160 Dan kemudian pilihan, jika saya ingin untuk lulus dalam beberapa pasangan nilai kunci 1023 00:48:07,160 --> 00:48:10,580 seperti yang saya lakukan untuk judul untuk header tetapi tidak untuk footer, 1024 00:48:10,580 --> 00:48:11,800 Saya boleh melakukan itu. 1025 00:48:11,800 --> 00:48:16,510 >> Dan sekarang jika saya masuk ke myspace.png, itu kompleks yang lebih sedikit. 1026 00:48:16,510 --> 00:48:19,670 Dan aku akan melambai tangan saya di butiran, tetapi ia hanya satu fungsi. 1027 00:48:19,670 --> 00:48:21,890 Jadi itu adalah satu langkah ke arah reka bentuk yang lebih baik. 1028 00:48:21,890 --> 00:48:23,360 >> Kita boleh mengambil langkah ini satu lagi. 1029 00:48:23,360 --> 00:48:28,890 Jika saya pergi ke keempat saya versi ini, perhatikan sekarang 1030 00:48:28,890 --> 00:48:31,320 bahawa aku melakukan sesuatu yang baik bahkan lebih samar. 1031 00:48:31,320 --> 00:48:33,230 Dan saya tahu ini adalah banyak untuk menyerap sekaligus, 1032 00:48:33,230 --> 00:48:35,080 tetapi kami hanya jenis dari membersihkan keadaan. 1033 00:48:35,080 --> 00:48:38,550 Kini saya meletakkan penolong-penolongku file ke dalam folder yang dinamakan 1034 00:48:38,550 --> 00:48:41,190 termasuklah- hanya sewenang-wenangnya nama di mana saya ingin menempatkan barang-barang 1035 00:48:41,190 --> 00:48:44,300 yang saya mahu dan kemudian termasuk- sisa ini adalah sama. 1036 00:48:44,300 --> 00:48:47,140 >> Tetapi jika saya melihat sekarang dalam gedit, notis bahawa saya telah mendapat menghapuskan 1037 00:48:47,140 --> 00:48:51,940 semua fail-fail yang lain dan saya sudah menggerakkan mereka, sebagai contoh, ke sini. 1038 00:48:51,940 --> 00:48:55,110 Dan kemudian dalam template, Saya mempunyai ini di sini, juga. 1039 00:48:55,110 --> 00:48:59,292 Dan jadi ini semua sekarang ke arah langkah yang menggunakan corak reka bentuk yang lebih baik. 1040 00:48:59,292 --> 00:49:01,000 Dan kami sangat cepat akan menjauh 1041 00:49:01,000 --> 00:49:03,870 daripada fungsi default PHP, yang kita mulai di sini dengan, 1042 00:49:03,870 --> 00:49:07,655 di mana anda hanya bercampur PHP, dan HTML, dan CSS anda, 1043 00:49:07,655 --> 00:49:09,780 dan anda hanya meludah keluar dan anda pergi tentang cara anda. 1044 00:49:09,780 --> 00:49:11,404 Ia tidak akan menjadi sangat dipertahankan. 1045 00:49:11,404 --> 00:49:14,481 Sama seperti dalam C, kita mula menggunakan beberapa fail dan beberapa fungsi 1046 00:49:14,481 --> 00:49:15,730 dan perkara-perkara pemfaktoran yang keluar. 1047 00:49:15,730 --> 00:49:16,688 Kami akan melakukan perkara yang sama di sini. 1048 00:49:16,688 --> 00:49:19,970 Dan sebenarnya, dalam kelima dan terakhir versi di sini, saya telah melakukan satu perkara yang lain. 1049 00:49:19,970 --> 00:49:23,710 Anda juga boleh menggunakan dot dot, yang, lagi, hanya dalam direktori induk. 1050 00:49:23,710 --> 00:49:28,260 Untuk keselamatan yang lebih sedar, kerana jika saya melihat mendengar 1051 00:49:28,260 --> 00:49:32,450 di sini untuk kelima dan versi terakhir, notis bahawa saya mempunyai satu direktori di sini disebut 1052 00:49:32,450 --> 00:49:35,180 awam, dan kemudian pada tahap yang sama, boleh dikatakan, 1053 00:49:35,180 --> 00:49:38,490 Saya ada termasuk dan template dan kemudian fail teks readme. 1054 00:49:38,490 --> 00:49:41,130 >> Dan sebab saya telah terstruktur ia suka this-- dan begitu banyak web 1055 00:49:41,130 --> 00:49:44,330 tuan rumah, terutama yang $ 5 yang bulan atau orang $ 10 per bulan, 1056 00:49:44,330 --> 00:49:47,170 jika anda pernah mempunyai salah satu dari ini services-- apa yang begitu banyak dari mereka 1057 00:49:47,170 --> 00:49:50,690 adalah mereka hanya mengharapkan anda untuk membuang semua fail anda ke dalam satu direktori, 1058 00:49:50,690 --> 00:49:53,640 seperti yang kami lakukan sudah dengan ini contoh yang pertama. 1059 00:49:53,640 --> 00:49:56,740 >> Tetapi sebaik sahaja anda mula membina lebih laman web canggih yang hanya menyimpan 1060 00:49:56,740 --> 00:50:00,480 data yang anda mahu ketahui dan fail anda mahu ketahui sebenarnya mengatur hal-hal 1061 00:50:00,480 --> 00:50:05,060 benar dan dengan keselamatan yang lebih kesedaran dalam fikiran boleh 1062 00:50:05,060 --> 00:50:07,927 kita mula mempertahankan terhadap semua rakan-rakan 1063 00:50:07,927 --> 00:50:10,135 bahawa anda mempunyai sama ada di dalam atau di luar dari kelas ini yang, 1064 00:50:10,135 --> 00:50:12,510 sebaik sahaja anda mula membuat program sendiri di web, 1065 00:50:12,510 --> 00:50:15,140 akan memulakan memetik kepadamu dan kepada mereka. 1066 00:50:15,140 --> 00:50:17,420 >> Dan dengan itu kita akan melihat akhirnya pada reka bentuk ini. 1067 00:50:17,420 --> 00:50:20,010 Ini hanya gambar yang menggambarkan berikut. 1068 00:50:20,010 --> 00:50:22,897 Kami akan meletakkan semua kami pengaturcaraan logik dalam satu atau lebih fail, 1069 00:50:22,897 --> 00:50:25,230 dan kita akan hanya mula memanggil orang-orang pengawal. 1070 00:50:25,230 --> 00:50:28,022 Ia adalah di mana otak laman web kami adalah benar-benar. 1071 00:50:28,022 --> 00:50:29,730 Kemudian kita akan mempunyai pandangan, dan pandangan 1072 00:50:29,730 --> 00:50:32,480 adalah seperti mudah kerana hanya terpisah files-- disebut template, sering. 1073 00:50:32,480 --> 00:50:34,410 Mereka hanya mempunyai estetika halaman saya, 1074 00:50:34,410 --> 00:50:37,020 apa yang saya ingin halaman untuk melihat like-- warna dan susun atur 1075 00:50:37,020 --> 00:50:38,870 dan kedudukan semua variabel. 1076 00:50:38,870 --> 00:50:41,120 >> Dan kemudian lebih menarik bahawa kita akhirnya akan sampai ke 1077 00:50:41,120 --> 00:50:45,420 adalah model, yang akan menjadi hanya perkataan kita menampar pada teknologi lain 1078 00:50:45,420 --> 00:50:47,771 yang kita bawa ke dalam gambar, seperti pangkalan data sebenar, 1079 00:50:47,771 --> 00:50:49,520 supaya apabila anda mahu untuk menyimpan maklumat, 1080 00:50:49,520 --> 00:50:52,140 Anda tidak hanya menghantar e-mel kepada pengawas atau kepada diri sendiri, 1081 00:50:52,140 --> 00:50:57,350 Anda benar-benar menyimpan dalam database menggunakan bahasa yang lain yang dikenali sebagai SQL. 1082 00:50:57,350 --> 00:51:00,450 Dan dengan itu kita akan meninggalkan di sini hari ini dan memilih dengan ini pada hari Rabu 1083 00:51:00,450 --> 00:51:02,990 dan memperkenalkan pangkalan data itu. 1084 00:51:02,990 --> 00:51:06,940 >> [MUSIK BERMAIN] 1085 00:51:06,940 --> 00:54:24,555