1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Minggu 8] 2 00:00:02,000 --> 00:00:04,000 [David J Malan] [Harvard University] 3 00:00:04,000 --> 00:00:07,000 [Ini adalah CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Selamat datang kembali. 5 00:00:09,000 --> 00:00:11,000 Ini adalah CS50, dan ini adalah awal minggu 8. 6 00:00:11,000 --> 00:00:14,000 Beberapa peluang minggu ini, 7 00:00:14,000 --> 00:00:17,000 di antara mereka ini bicara di sini, di mana beberapa makanan akan disajikan. 8 00:00:17,000 --> 00:00:20,000 Untuk lebih jelasnya memeriksa slide yang sedang online. 9 00:00:20,000 --> 00:00:24,000 Dan juga acara lain minggu ini oleh kita sendiri Thomas Carriero. 10 00:00:24,000 --> 00:00:27,000 Dia salah satu rekan mantan CS50 kepala pengajaran yang sekarang di Dropbox, 11 00:00:27,000 --> 00:00:29,000 dan dia orang yang mengaitkan kami dengan Anda tahu apa, 12 00:00:29,000 --> 00:00:36,000 jadi jika Anda ingin lebih kepala itu untuk pembicaraan mereka sore ini untuk Dropbox dan banyak lagi. 13 00:00:36,000 --> 00:00:38,000 CS50 makan siang Jumat ini. 14 00:00:38,000 --> 00:00:41,000 Apakah bergabung dengan kami jika Anda mampu, 1:15, seperti biasa, di Fire and Ice. 15 00:00:41,000 --> 00:00:45,000 >> Dan sekarang kita menyelam ke dalam sesuatu yang disebut Seminar. 16 00:00:45,000 --> 00:00:49,000 CS50 kami Seminar, recall, adalah kelas-kelas opsional dipimpin oleh rekan-rekan mengajar 17 00:00:49,000 --> 00:00:51,000 dan tentu saja asisten dan teman-teman tentu saja, 18 00:00:51,000 --> 00:00:55,000 orang-orang dari sebuah kelompok di kampus disebut ABCD, yang merupakan kelompok 19 00:00:55,000 --> 00:00:58,000 technophiles di kampus, serta kelompok yang disebut HCS, 20 00:00:58,000 --> 00:01:02,000 Harvard Computer Society, mahasiswa yang sama tertarik pada komputasi. 21 00:01:02,000 --> 00:01:08,000 Daftar tahun ini meliputi seminar seminar tentang Android dan iOS dan JavaScript 22 00:01:08,000 --> 00:01:13,000 dan PHP, Unix, Vim, dan banyak lagi, sehingga menyadari bahwa seminar yang datang. 23 00:01:13,000 --> 00:01:16,000 Jika Anda ingin RSVP untuk salah satu dari mereka menuju ke URL yang ada. 24 00:01:16,000 --> 00:01:20,000 Kami kemudian akan posting di website kursus ini waktu dan tempat setelah mereka diselesaikan. 25 00:01:20,000 --> 00:01:26,000 Tapi tahu senilai masih ada 5 tahun dari seminar sebelumnya tersedia secara online, 26 00:01:26,000 --> 00:01:29,000 banyak yang masih sangat banyak saat ini dalam hal teknologi Anda mungkin 27 00:01:29,000 --> 00:01:36,000 ingin bermain dengan untuk proyek akhir Anda, jadi kepala di sana untuk beberapa video yang tersedia daripadanya. 28 00:01:36,000 --> 00:01:39,000 >> CSS, bagi Anda yang terbiasa dengan CSS sudah, 29 00:01:39,000 --> 00:01:42,000 apa itu secara singkat? 30 00:01:42,000 --> 00:01:45,000 Apa itu CSS? 31 00:01:45,000 --> 00:01:48,000 Ini cascading style sheets, dan apa artinya? 32 00:01:48,000 --> 00:01:53,000 Apa artinya itu lakukan untuk kita, CSS? 33 00:01:53,000 --> 00:01:57,000 Baiklah, mari kita pemanasan dengan satu lebih mudah, HTML, hypertext markup language. 34 00:01:57,000 --> 00:02:01,000 Apa artinya itu lakukan untuk kita? 35 00:02:01,000 --> 00:02:04,000 Siapa pun? 36 00:02:04,000 --> 00:02:07,000 Sudah mulai benar-benar canggung mengajukan pertanyaan-pertanyaan. 37 00:02:07,000 --> 00:02:11,000 HTML, hypertext markup language. 38 00:02:11,000 --> 00:02:14,000 Ya? Tidak ada? 39 00:02:14,000 --> 00:02:17,000 [Respon siswa tidak terdengar] 40 00:02:17,000 --> 00:02:20,000 Oke, baik, memungkinkan kita untuk mark up teks untuk menampilkan dalam browser web. 41 00:02:20,000 --> 00:02:22,000 Ini bukan bahasa pemrograman. 42 00:02:22,000 --> 00:02:25,000 Ini memang bahasa markup, yang berarti menginstruksikan browser bagaimana menampilkan 43 00:02:25,000 --> 00:02:28,000 informasi, sehingga inkarnasi sederhana ini seperti yang kita lihat 44 00:02:28,000 --> 00:02:32,000 adalah sesuatu yang super sederhana seperti boldfacing, terbuka braket braket b tertutup mengatakan 45 00:02:32,000 --> 00:02:36,000 membuat teks tebal ini, dan itu sebenarnya hanya satu dari banyak cara 46 00:02:36,000 --> 00:02:39,000 di mana kita bisa melakukan itu, dan memang, hari ini pendekatan yang lebih baik 47 00:02:39,000 --> 00:02:42,000 untuk stylizing halaman web Anda, membuat hal-hal tebal dan miring 48 00:02:42,000 --> 00:02:47,000 dan terpusat dan dibenarkan dan sejenisnya, tidak dilakukan melalui tag HTML saja 49 00:02:47,000 --> 00:02:51,000 melainkan dengan teknik yang disebut CSS, Cascading style sheet. 50 00:02:51,000 --> 00:02:53,000 Ini adalah bahasa tersendiri. 51 00:02:53,000 --> 00:02:55,000 Ini juga bukan bahasa pemrograman tapi- 52 00:02:55,000 --> 00:02:58,000 semua orang, ini adalah Dan, yang terus bergabung dengan kami hari ini. 53 00:02:58,000 --> 00:03:01,000 Beberapa kesulitan teknis. Tidak masalah. 54 00:03:01,000 --> 00:03:04,000 >> CSS memungkinkan kita untuk menyesuaikan dgn mode halaman 55 00:03:04,000 --> 00:03:07,000 dengan menetapkan apa yang disebut sifat, jadi mari kita lihat ini 56 00:03:07,000 --> 00:03:09,000 dengan cara beberapa contoh dasar. 57 00:03:09,000 --> 00:03:12,000 Biarkan aku pergi ke dalam alat ini. 58 00:03:12,000 --> 00:03:15,000 Saya memiliki sumber 8 direktori Senin sini, 59 00:03:15,000 --> 00:03:18,000 dan aku akan pergi ke sebuah direktori yang disebut CSS di mana kita memiliki sejumlah 60 00:03:18,000 --> 00:03:21,000 file menunggu kami di sini, 61 00:03:21,000 --> 00:03:27,000 dan dalam folder ini kita miliki, misalnya, search0.html dari terakhir kali. 62 00:03:27,000 --> 00:03:31,000 Sekarang, ingat dengan search0 kami meninggalkan pada catatan ini 63 00:03:31,000 --> 00:03:35,000 dengan menerapkan semacam Google atau benar-benar hanya ujung depan untuk itu seminggu yang lalu, 64 00:03:35,000 --> 00:03:38,000 dan perhatikan bahwa kita memiliki beberapa tag baru di sana. 65 00:03:38,000 --> 00:03:41,000 Kami memiliki h1 untuk judul, besar tebal, 66 00:03:41,000 --> 00:03:45,000 Bentuk, yang memungkinkan kita untuk benar-benar memiliki bentuk HTML untuk input pengguna. 67 00:03:45,000 --> 00:03:48,000 Aksi, apa arti dari atribut aksi 68 00:03:48,000 --> 00:03:52,000 pada tag form HTML? 69 00:03:52,000 --> 00:03:58,000 Apa arti dari tindakan ini,? 70 00:03:58,000 --> 00:04:00,000 Saya hanya akan melakukan ini hari ini. 71 00:04:00,000 --> 00:04:03,000 Aksi adalah tujuan ke mana formulir akan disampaikan. 72 00:04:03,000 --> 00:04:07,000 Fakta bahwa yang mengatakan tindakan = "google.com / search" 73 00:04:07,000 --> 00:04:10,000 berarti bahwa ketika pengguna mengklik tombol submit atau setara 74 00:04:10,000 --> 00:04:14,000 apapun kolom formulir yang mereka mengisi akan dikirim ke server kami tidak 75 00:04:14,000 --> 00:04:17,000 atau alat kami melainkan dengan URL tertentu di Google. 76 00:04:17,000 --> 00:04:19,000 Dan metode itu akan digunakan disebut dapatkan, 77 00:04:19,000 --> 00:04:25,000 dan mendapatkan, untuk saat ini, hanya teknik untuk menyampaikan informasi bersama ke server web 78 00:04:25,000 --> 00:04:29,000 dengan cara URL, jadi mari kita lihat kembali bagaimana ini bekerja. 79 00:04:29,000 --> 00:04:31,000 >> Perhatikan bahwa ada sebuah masukan yang namanya q 80 00:04:31,000 --> 00:04:35,000 Jenis yang adalah teks dan kemudian masukan kedua jenis menyerahkan 81 00:04:35,000 --> 00:04:39,000 Nilai yang merupakan CS50 Cari, dan memang, jika kita membuka file ini di sini, 82 00:04:39,000 --> 00:04:42,000 search0.html, itu bentuk super sederhana, 83 00:04:42,000 --> 00:04:45,000 dan jika saya mencari sesuatu seperti ilmu komputer 84 00:04:45,000 --> 00:04:50,000 dan kemudian tekan enter atau klik CS50 Cari 85 00:04:50,000 --> 00:04:53,000 melihat bahwa apa yang terjadi di luar sampai ke Google 86 00:04:53,000 --> 00:04:56,000 Saya telah secara khusus berakhir di URL ini di atas, 87 00:04:56,000 --> 00:05:01,000 google.com / search q =? komputer + ilmu, 88 00:05:01,000 --> 00:05:04,000 dan ilmu komputer jelas apa yang saya diketik masuk 89 00:05:04,000 --> 00:05:06,000 + Hanya berarti bahwa di mana karakter spasi itu, 90 00:05:06,000 --> 00:05:10,000 dan itu dilakukan oleh browser hanya untuk memastikan bahwa tidak ada 91 00:05:10,000 --> 00:05:13,000 kebingungan dan spasi dalam URL yang sebenarnya. 92 00:05:13,000 --> 00:05:15,000 Dan kemudian q, tentu saja, adalah nama parameter. 93 00:05:15,000 --> 00:05:20,000 Kami belum melihat bagaimana kita, programmer, benar-benar dapat mengakses q belum. 94 00:05:20,000 --> 00:05:23,000 Kita bisa berasumsi bahwa Google tahu apa yang harus dilakukan dengan ini di sini, 95 00:05:23,000 --> 00:05:25,000 tapi kita akan sampai di sana pada waktunya saat ini. 96 00:05:25,000 --> 00:05:30,000 >> Tapi biarkan aku mengambil melihat sebaliknya di search1.html, 97 00:05:30,000 --> 00:05:34,000 yang terlihat sedikit berbeda karena saya memutuskan bahwa bentuk di sini adalah hanya sedikit lumpuh. 98 00:05:34,000 --> 00:05:36,000 Maksudku, itu di bagian kiri atas. 99 00:05:36,000 --> 00:05:40,000 Ada benar-benar tidak ada estetika untuk itu, dan jadi saya ingin menyesuaikan dgn mode ini 100 00:05:40,000 --> 00:05:43,000 sedikit lebih seperti Google, yang homepage, ingat, 101 00:05:43,000 --> 00:05:47,000 meskipun Anda mungkin tidak mengunjungi yang sering, terlihat seperti ini saat ini di Halloween. 102 00:05:47,000 --> 00:05:53,000 Jika kita bukannya membuka versi 1 dari file ini, cari 1.html, saya sudah berpusat itu. 103 00:05:53,000 --> 00:05:57,000 Masih cukup jelek, tapi setidaknya sekarang aku sudah mulai mengontrol estetika halaman ini, 104 00:05:57,000 --> 00:06:00,000 bukan hanya menandai daripadanya. 105 00:06:00,000 --> 00:06:04,000 Mari kita lihat pencarian 1, dan ada benar-benar hanya satu perbedaan di sini, 106 00:06:04,000 --> 00:06:06,000 yang mungkin melompat keluar pada Anda, atau mungkin tidak, 107 00:06:06,000 --> 00:06:11,000 tapi apa satu baris atau potongan perbedaan? 108 00:06:11,000 --> 00:06:14,000 >> Ada ini atribut style, sehingga ternyata bahwa dalam HTML 109 00:06:14,000 --> 00:06:19,000 unsur yang paling, tag yang paling dapat memiliki atribut style pada mereka, 110 00:06:19,000 --> 00:06:23,000 dan dalam bahwa atribut gaya adalah string dikutip, 111 00:06:23,000 --> 00:06:26,000 dan bahwa string dikutip adalah CSS. 112 00:06:26,000 --> 00:06:29,000 Anda dapat menempatkan cascading style sheet di sana 113 00:06:29,000 --> 00:06:32,000 dengan menetapkan sebagai nama properti 114 00:06:32,000 --> 00:06:34,000 diikuti oleh titik dua diikuti oleh nilai. 115 00:06:34,000 --> 00:06:37,000 Ini adalah jenis keputusan desain disayangkan beberapa tahun yang lalu 116 00:06:37,000 --> 00:06:40,000 bahwa CSS adalah bahasa tersendiri, 117 00:06:40,000 --> 00:06:43,000 tapi sintaksis itu sangat berbeda dari HTML. 118 00:06:43,000 --> 00:06:46,000 Dalam kasus ini, kita melihat bahwa dalam halaman web saya, yang ditulis dalam HTML, 119 00:06:46,000 --> 00:06:51,000 Saya memiliki CSS dalam kutipan ini, dan konvensi untuk CSS 120 00:06:51,000 --> 00:06:55,000 adalah bahwa Anda memiliki apa yang disebut properti diikuti, sekali lagi, titik dua, 121 00:06:55,000 --> 00:06:58,000 diikuti oleh nilai properti itu, sehingga tidak ada tanda sama. 122 00:06:58,000 --> 00:07:00,000 Tidak ada kutipan tambahan. 123 00:07:00,000 --> 00:07:03,000 Hanya saja pasangan ini usus nilai dipisahkan kunci, 124 00:07:03,000 --> 00:07:05,000 dan baris teks tidak persis apa yang dikatakannya. 125 00:07:05,000 --> 00:07:09,000 Ini sejalan teks dalam badan halaman, yang benar-benar keberanian halaman, 126 00:07:09,000 --> 00:07:11,000 di tengah. 127 00:07:11,000 --> 00:07:13,000 >> Oke, hasil akhirnya itu, harus jelas, ini. 128 00:07:13,000 --> 00:07:17,000 Tidak semua seksi itu, tapi setidaknya itu berpusat dan sedikit lebih seperti Google yang sebenarnya. 129 00:07:17,000 --> 00:07:21,000 Tapi bagaimana kalau saya bukan membuka versi 2 ini 130 00:07:21,000 --> 00:07:25,000 dan menunjukkan ke sini tag baru sama sekali? 131 00:07:25,000 --> 00:07:30,000 Sekarang di kepala halaman saya, yang sebelumnya hanya memiliki tag yang 132 00:07:30,000 --> 00:07:32,000 dalam semua contoh sebelumnya? 133 00:07:32,000 --> 00:07:34,000 Itu hanya memiliki ini, judul. 134 00:07:34,000 --> 00:07:38,000 Sesaat lalu tag kepala tampak seperti ini. 135 00:07:38,000 --> 00:07:40,000 Sekarang bukan memiliki dalam tag gaya itu, 136 00:07:40,000 --> 00:07:44,000 dan ini juga, saya minta maaf, sintaksis terlihat sangat berbeda dari HTML, 137 00:07:44,000 --> 00:07:47,000 tetapi Anda terbiasa untuk itu, dimana dalam tag gaya 138 00:07:47,000 --> 00:07:50,000 Saya sekarang dapat faktor luar apa yang beberapa saat yang lalu 139 00:07:50,000 --> 00:07:54,000 atribut, atribut gaya, dan saya bisa meletakkannya di bagian paling atas halaman saya. 140 00:07:54,000 --> 00:07:56,000 >> Kenapa? 141 00:07:56,000 --> 00:08:00,000 Nah, ini adalah langkah menuju membersihkan semuanya, seperti dalam menulis kode C 142 00:08:00,000 --> 00:08:04,000 kadang-kadang kita akan menulis fungsi untuk faktor luar fungsi umum. 143 00:08:04,000 --> 00:08:07,000 Ini hanya sedikit bersih untuk memulai anjak hal-hal seperti estetika 144 00:08:07,000 --> 00:08:11,000 satu lokasi pusat daripada memiliki itu semua menyelingi seluruh HTML Anda. 145 00:08:11,000 --> 00:08:14,000 Hal ini juga melakukan apa yang dikatakannya, meskipun ada sedikit sintaks baru. 146 00:08:14,000 --> 00:08:19,000 Ini di sini adalah selector, dan tubuh hanya berarti pilih elemen body 147 00:08:19,000 --> 00:08:21,000 dan menerapkan sifat-sifat berikut untuk itu. 148 00:08:21,000 --> 00:08:23,000 Nah, properti adalah persis sama. 149 00:08:23,000 --> 00:08:25,000 Untuk mengukur baik saya telah menambahkan titik koma di akhir, 150 00:08:25,000 --> 00:08:29,000 yang cenderung konvensi, dan saya sudah dibungkus ini seluruh properti 151 00:08:29,000 --> 00:08:33,000 dalam kurung kurawal karena saya benar-benar bisa memiliki hal-hal yang berbeda di sini. 152 00:08:33,000 --> 00:08:39,000 Aku benar-benar bisa mengatakan sesuatu seperti warna: biru; 153 00:08:39,000 --> 00:08:42,000 >> Sekarang ini juga tidak akan menjadi langkah menuju sesuatu yang semua yang cantik, 154 00:08:42,000 --> 00:08:47,000 tetapi jika aku sekarang kembali ke versi 2 saya setidaknya sekarang membuat tubuh saya 155 00:08:47,000 --> 00:08:49,000 halaman teks biru semua. 156 00:08:49,000 --> 00:08:51,000 Tombol tetap sama karena itulah input. Ini bukan teks murni. 157 00:08:51,000 --> 00:08:56,000 Tetapi segala sesuatu yang adalah teks, seperti CS50 Cari di bagian atas, adalah biru sebenarnya. 158 00:08:56,000 --> 00:09:01,000 Sekali lagi, semua kita lakukan sekarang adalah menghapus dari tag body, pemberitahuan, 159 00:09:01,000 --> 00:09:04,000 atribut style, dan kami sudah itu diperhitungkan di sini. 160 00:09:04,000 --> 00:09:08,000 Ini bukan perbaikan besar, tetapi jika kita mengambil satu langkah lebih jauh 161 00:09:08,000 --> 00:09:10,000 perhatikan apa yang bisa kita lakukan dalam versi ketiga di sini. 162 00:09:10,000 --> 00:09:14,000 >> Pada search3.html halaman web hampir identik 163 00:09:14,000 --> 00:09:17,000 kecuali apa yang tag baru sekarang? 164 00:09:17,000 --> 00:09:20,000 Link, jadi yang satu ini tidak sangat aptly bernama 165 00:09:20,000 --> 00:09:24,000 karena Anda tidak menghubungkan dalam arti hyperlink diklik. 166 00:09:24,000 --> 00:09:28,000 Sebaliknya, Anda semacam melakukan setara dengan # include di C 167 00:09:28,000 --> 00:09:31,000 dimana tag link dengan atribut href 168 00:09:31,000 --> 00:09:34,000 dan atribut rel mengatakan pergi ke depan 169 00:09:34,000 --> 00:09:39,000 dan copy paste isi dari file bernama search3.css di sini, pada dasarnya. 170 00:09:39,000 --> 00:09:42,000 Ini tidak cukup melakukan itu, tapi itulah semangat itu. 171 00:09:42,000 --> 00:09:45,000 Ia mengatakan pergi terbuka file, search3.css, 172 00:09:45,000 --> 00:09:49,000 dan memperlakukannya seolah-olah pengguna telah mengetik di sini, di kepala halaman 173 00:09:49,000 --> 00:09:51,000 seperti yang saya lakukan pada contoh sebelumnya. 174 00:09:51,000 --> 00:09:54,000 Search3.css, sementara itu, cukup sederhana. 175 00:09:54,000 --> 00:09:58,000 Ini benar-benar hanya berisi apa yang beberapa saat yang lalu 176 00:09:58,000 --> 00:10:03,000 dalam tag gaya, tapi aku itu faktor sini untuk file sendiri. 177 00:10:03,000 --> 00:10:07,000 >> Meskipun kita tidak menghabiskan banyak waktu sama sekali dalam HTML atau pemrograman web 178 00:10:07,000 --> 00:10:11,000 hanya intuitif apa motivasi, mungkin, untuk anjak keluar 179 00:10:11,000 --> 00:10:14,000 ini potongan kecil bahkan dari CSS ke file sendiri 180 00:10:14,000 --> 00:10:19,000 dan kemudian memasukkannya dengan tag link di sini? 181 00:10:19,000 --> 00:10:21,000 [Respon siswa tidak terdengar] 182 00:10:21,000 --> 00:10:25,000 Oke, akan lebih mudah untuk membaca dalam arti bahwa Anda memiliki CSS Anda dalam file CSS. 183 00:10:25,000 --> 00:10:28,000 Anda memiliki HTML Anda dalam file HTML Anda, sehingga lebih mudah dibaca dalam pengertian itu. 184 00:10:28,000 --> 00:10:30,000 Apa lagi yang mungkin menarik? Ya. 185 00:10:30,000 --> 00:10:32,000 [Respon siswa tidak terdengar] 186 00:10:32,000 --> 00:10:35,000 Ya, sehingga Anda dapat memasukkannya berkali-kali, jadi sekarang kita lakukan ini 187 00:10:35,000 --> 00:10:38,000 contoh dasar dengan file individual, tapi rasa Anda benar-benar membuat 188 00:10:38,000 --> 00:10:42,000 sebuah situs yang sebenarnya seperti Anda akan untuk pset 7 atau proyek akhir Anda mungkin, 189 00:10:42,000 --> 00:10:45,000 dan Anda ingin memiliki beberapa halaman web, seperti yang tentu umum pada 190 00:10:45,000 --> 00:10:48,000 Web Dunia yang sebenarnya lebar, dan itu akan menjadi semacam lumpuh 191 00:10:48,000 --> 00:10:52,000 harus menyalin dan menyisipkan warna biru yang sama 192 00:10:52,000 --> 00:10:56,000 dan teks yang sama selaras pusat dalam setiap salah satu halaman. 193 00:10:56,000 --> 00:10:59,000 Melainkan lebih masuk akal untuk faktor luar, seperti sudah kita lakukan di C 194 00:10:59,000 --> 00:11:02,000 dengan file h., taruh di satu tempat pusat, 195 00:11:02,000 --> 00:11:06,000 dalam hal ini search3.css kasus, dan kemudian memungkinkan file apapun 196 00:11:06,000 --> 00:11:11,000 dalam situs web Anda untuk benar-benar menyertakan file yang dengan cara ini tag di sini di baris 16. 197 00:11:11,000 --> 00:11:14,000 Seperti biasanya terjadi, kami mulai dengan versi 0, yang jenis karya 198 00:11:14,000 --> 00:11:18,000 tetapi belum tentu yang terbaik, dan dengan setiap langkah, 199 00:11:18,000 --> 00:11:21,000 pencarian 1, pencarian 2, dan sekarang pencarian 3 kami telah mengambil langkah-langkah bayi 200 00:11:21,000 --> 00:11:26,000 terhadap desain yang sedikit lebih bersih dan lebih persiapan 201 00:11:26,000 --> 00:11:30,000 untuk halaman yang lebih kompleks yang bisa kita lakukan di jalan. 202 00:11:30,000 --> 00:11:33,000 >> Mari saya membuka salah satu contoh terakhir di sini hanya untuk menunjukkan 203 00:11:33,000 --> 00:11:36,000 halaman bahkan lebih bergaya, tapi pertama-tama mari kita lihat HTML. 204 00:11:36,000 --> 00:11:41,000 Ini adalah search4.html, dan melihat bahwa secara struktural hampir sama 205 00:11:41,000 --> 00:11:44,000 kecuali untuk pengenalan tag baru, div. 206 00:11:44,000 --> 00:11:48,000 Div adalah tag yang memperkenalkan pembagian halaman. 207 00:11:48,000 --> 00:11:51,000 Anda dapat menganggap ini sebagai persegi panjang tak terlihat. 208 00:11:51,000 --> 00:11:54,000 Ini semacam menciptakan petak daerah di halaman web 209 00:11:54,000 --> 00:11:56,000 bahwa Anda dapat menyesuaikan dgn mode sekaligus. 210 00:11:56,000 --> 00:11:58,000 Apa yang saya lakukan di sini adalah sebagai berikut. 211 00:11:58,000 --> 00:12:01,000 Dalam tag tubuh saya, yang telah ada selama ini, 212 00:12:01,000 --> 00:12:05,000 Saya katakan menciptakan sebuah divisi dari halaman sini melalui jalur 45 melalui 47, 213 00:12:05,000 --> 00:12:09,000 dan itu berarti pada dasarnya memberi saya sebuah persegi panjang terlihat di sepanjang bagian atas halaman. 214 00:12:09,000 --> 00:12:14,000 Kemudian memberi saya sebuah persegi panjang kedua, meskipun tak terlihat, di bawah itu, 215 00:12:14,000 --> 00:12:16,000 dan mengidentifikasi dengan isi nama, dan kemudian terakhir, 216 00:12:16,000 --> 00:12:19,000 memberi saya sebuah divisi ketiga halaman di bagian bawah 217 00:12:19,000 --> 00:12:21,000 disebut ID. 218 00:12:21,000 --> 00:12:23,000 Kita akan melihat mengapa saya sudah melakukan ini hanya dalam beberapa saat, 219 00:12:23,000 --> 00:12:26,000 tetapi secara konseptual saya memiliki divisi header. 220 00:12:26,000 --> 00:12:30,000 Saya memiliki divisi konten, dan saya memiliki divisi footer halaman 221 00:12:30,000 --> 00:12:32,000 meskipun ini hanya di markup. 222 00:12:32,000 --> 00:12:35,000 Pengguna tidak akan melihat 3 persegi panjang, 223 00:12:35,000 --> 00:12:37,000 tapi semacam struktural ada di belakang layar 224 00:12:37,000 --> 00:12:39,000 mereka benar-benar hadir. 225 00:12:39,000 --> 00:12:41,000 >> Sekarang, siapa yang peduli? Mengapa benar-benar melakukan ini? 226 00:12:41,000 --> 00:12:43,000 Segala sesuatu yang lain pada halaman yang sama seperti yang telah kita lihat sebelumnya. 227 00:12:43,000 --> 00:12:47,000 Ini formulir saya. Berikut masukan saya, masukan saya, satu baris dan sebagainya. 228 00:12:47,000 --> 00:12:50,000 Berikut gambar, meskipun, jadi kita akan melihat di mana ini berasal dari hanya dalam beberapa saat. 229 00:12:50,000 --> 00:12:52,000 Berikut adalah footer, yang baru, hanya karena saya ingin memperkenalkan 230 00:12:52,000 --> 00:12:54,000 lagi konten di sini. 231 00:12:54,000 --> 00:12:58,000 Jika kita gulir ke atas melihat bahwa ID dari div ini adalah header. 232 00:12:58,000 --> 00:13:02,000 ID dari div ini adalah konten, dan ID satu ini footer. 233 00:13:02,000 --> 00:13:05,000 Dan seperti namanya, bila Anda memiliki atribut ID 234 00:13:05,000 --> 00:13:09,000 dalam HTML, menurut definisi itu unik harus mengidentifikasi 235 00:13:09,000 --> 00:13:12,000 salah satu elemen, salah satu tag dalam halaman Anda. 236 00:13:12,000 --> 00:13:16,000 Beban benar-benar pada Anda untuk mengingat bahwa Anda memiliki ID sundulan sudah. 237 00:13:16,000 --> 00:13:19,000 Anda memiliki catatan kaki. Anda memiliki ID konten yang sudah. 238 00:13:19,000 --> 00:13:22,000 Komputer tidak akan mencari tahu apa ID yang tersedia untuk Anda, 239 00:13:22,000 --> 00:13:27,000 sehingga Anda secara tidak sengaja bisa memberikan 2 tag ID header, 240 00:13:27,000 --> 00:13:29,000 dan itu hanya akan salah. 241 00:13:29,000 --> 00:13:31,000 >> Anda harus ingat apa yang telah Anda buat, 242 00:13:31,000 --> 00:13:34,000 tetapi sekali Anda telah melakukan bahwa pemberitahuan apa yang bisa kita lakukan di sini. 243 00:13:34,000 --> 00:13:38,000 Saya sekarang dapat menentukan dalam tag gaya saya di atas 244 00:13:38,000 --> 00:13:41,000 atau ekuivalen dalam file CSS saya, jika saya masih menggunakan versi itu, 245 00:13:41,000 --> 00:13:46,000 Saya dapat mengatakan # header, dan apa artinya adalah bahwa apa pun tag 246 00:13:46,000 --> 00:13:49,000 di halaman web ini memiliki ID header 247 00:13:49,000 --> 00:13:53,000 dan #, hanya dengan konvensi manusia, mewakili ID. 248 00:13:53,000 --> 00:13:56,000 Tanda tajam atau pon tanda mewakili ID. 249 00:13:56,000 --> 00:13:58,000 Header adalah nama yang saya berikan itu. 250 00:13:58,000 --> 00:14:01,000 Ini berarti menerapkan properti CSS 251 00:14:01,000 --> 00:14:04,000 untuk apa pun tag di halaman ini dikenakan ID header. 252 00:14:04,000 --> 00:14:06,000 Sama kesepakatan di sini. 253 00:14:06,000 --> 00:14:09,000 Terapkan properti, yang kebetulan sama, untuk setiap elemen 254 00:14:09,000 --> 00:14:11,000 mana ID adalah konten, dan kemudian di sini 255 00:14:11,000 --> 00:14:14,000 perhatikan saya mendapat sedikit lebih menarik dengan footer. 256 00:14:14,000 --> 00:14:18,000 Setiap elemen yang memiliki ID footer, yang ada mungkin hanya satu menurut definisi, 257 00:14:18,000 --> 00:14:21,000 pergi ke depan dan membuat ukuran font yang lebih kecil, 258 00:14:21,000 --> 00:14:24,000 nya huruf tebal berat, marjin 20 piksel. 259 00:14:24,000 --> 00:14:26,000 >> Apa artinya? 260 00:14:26,000 --> 00:14:28,000 Hanya saja margin di atas, bawah, dan kiri dan kanan. 261 00:14:28,000 --> 00:14:31,000 Ini berarti memberikan margin 20-pixel terlihat di sekitarnya 262 00:14:31,000 --> 00:14:35,000 hanya untuk mendorong segala sesuatu yang lain jauh dari itu sedikit, seperti yang mungkin Anda lakukan dalam Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word atau Pages atau sejenisnya. 264 00:14:37,000 --> 00:14:39,000 Dan kemudian teks menyelaraskan pusat. 265 00:14:39,000 --> 00:14:43,000 Mari kita lihat hasil akhir, dan kemudian kita akan kembali ke potongan yang tersisa dari CSS sana. 266 00:14:43,000 --> 00:14:48,000 Ini adalah versi 4, terakhir kami untuk contoh pencarian, dan itu jauh, lebih seksi banyak. 267 00:14:48,000 --> 00:14:54,000 Sekarang, dalam keadilan, saya hanya Googled "google Generator huruf logo." 268 00:14:54,000 --> 00:14:58,000 Dan yang memungkinkan saya untuk membuat GIF, format gambar, yang terlihat seperti itu ada. 269 00:14:58,000 --> 00:15:00,000 Bahkan, Anda dapat melakukan hal ini juga. 270 00:15:00,000 --> 00:15:03,000 Kami memiliki "google Generator font logo." 271 00:15:03,000 --> 00:15:05,000 >> Mari kita lihat apakah kita bisa melakukan hal ini. 272 00:15:05,000 --> 00:15:07,000 Oke, saya pikir ini adalah website saya digunakan. 273 00:15:07,000 --> 00:15:11,000 Kita dapat mengatakan Ec 10, misalnya, dan membuat mereka sendiri. 274 00:15:11,000 --> 00:15:13,000 Anda dapat bermain dengan ini sepanjang hari dan kemudian klik kanan di atasnya 275 00:15:13,000 --> 00:15:16,000 dan kemudian men-download GIF yang sebenarnya, yang adalah semua yang saya lakukan. 276 00:15:16,000 --> 00:15:19,000 Dan memang, itulah sebabnya dalam HTML saya, ingat, di sini 277 00:15:19,000 --> 00:15:22,000 Aku punya tag gambar, yang kita lihat sebentar minggu lalu 278 00:15:22,000 --> 00:15:24,000 yang sumber logo.gif. 279 00:15:24,000 --> 00:15:28,000 Dan apa lagi adalah motivasi untuk memiliki atribut alt, 280 00:15:28,000 --> 00:15:31,000 ini atribut alternatif? 281 00:15:31,000 --> 00:15:33,000 Ya. 282 00:15:33,000 --> 00:15:35,000 [Respon siswa tidak terdengar] 283 00:15:35,000 --> 00:15:37,000 Baik, jadi 2 alasan benar, jika browser tidak dapat menarik gambar 284 00:15:37,000 --> 00:15:40,000 karena Anda memiliki koneksi jaringan yang lambat atau gambar yang rusak 285 00:15:40,000 --> 00:15:44,000 atau sesuatu seperti itu setidaknya manusia bisa melihat "CS50 pencarian," 286 00:15:44,000 --> 00:15:46,000 dan kemudian juga untuk alasan aksesibilitas. 287 00:15:46,000 --> 00:15:48,000 Jika Anda memiliki pengguna yang buta dan menggunakan pembaca layar 288 00:15:48,000 --> 00:15:50,000 dan karena itu jelas tidak dapat melihat gambar mereka setidaknya bisa 289 00:15:50,000 --> 00:15:52,000 mendengar teks jika komputer mereka berbicara kepada mereka. 290 00:15:52,000 --> 00:15:56,000 >> Secara umum, ini adalah yang terbaik berlatih ketika datang ke aksesibilitas halaman 291 00:15:56,000 --> 00:16:00,000 sehingga pengguna bahkan dalam situasi yang bisa mendengar atau melihat, sehingga untuk berbicara, 292 00:16:00,000 --> 00:16:03,000 apa yang ada di halaman Anda. 293 00:16:03,000 --> 00:16:05,000 Ada satu hal lain yang saya lakukan di sini 294 00:16:05,000 --> 00:16:09,000 yang sedikit menarik, dan kita akan melihat lebih banyak tentang hal ini dalam masalah set 7 295 00:16:09,000 --> 00:16:12,000 melalui salah satu dari celana pendek yang dipimpin oleh salah satu rekan mengajar. 296 00:16:12,000 --> 00:16:15,000 Tapi # isi mengacu pada tag 297 00:16:15,000 --> 00:16:20,000 mana ID adalah konten, tapi kemudian ada karakter spasi, dan kemudian ada masukan kata. 298 00:16:20,000 --> 00:16:25,000 Nah, apa yang menarik tentang CSS adalah bahwa Anda dapat 299 00:16:25,000 --> 00:16:29,000 mengacu pada tag di semacam halaman hierarkis, 300 00:16:29,000 --> 00:16:33,000 dan apa ini berarti potongan CSS adalah menemukan tag 301 00:16:33,000 --> 00:16:37,000 mana ID adalah konten, dan kemudian menerapkan sifat berikut 302 00:16:37,000 --> 00:16:42,000 untuk semua masukan tag yang keturunan konten, 303 00:16:42,000 --> 00:16:44,000 itu adalah yang menjorok di dalamnya. 304 00:16:44,000 --> 00:16:48,000 Indentasi, sekali lagi, ini hanya penting ke komputer, bukan untuk manusia, 305 00:16:48,000 --> 00:16:51,000 tetapi oleh konvensi yang kita indent hal-hal seperti kita pergi lebih dalam ke halaman, 306 00:16:51,000 --> 00:16:54,000 jadi ini berarti menerapkan margin 5 pixel untuk setiap elemen input 307 00:16:54,000 --> 00:16:57,000 itu suatu tempat dalam atau bersarang dalam 308 00:16:57,000 --> 00:16:59,000  elemen mana ID adalah konten. 309 00:16:59,000 --> 00:17:01,000 >> Siapa yang yang berlaku untuk? 310 00:17:01,000 --> 00:17:03,000 Nah, sebenarnya ada hanya ini 2 orang di sini. 311 00:17:03,000 --> 00:17:05,000 Perhatikan bahwa dalam bentuk ada 2 input, 312 00:17:05,000 --> 00:17:07,000 karena ada sudah untuk semua contoh. 313 00:17:07,000 --> 00:17:11,000 Tetapi perhatikan bahwa mereka 2 input kebetulan bersarang di dalam, 314 00:17:11,000 --> 00:17:13,000 meskipun sedikit mendalam, lapisan beberapa lekukan, 315 00:17:13,000 --> 00:17:16,000 dalam tag mana ID adalah konten. 316 00:17:16,000 --> 00:17:18,000 Apa artinya ini? 317 00:17:18,000 --> 00:17:21,000 Jika kita pergi ke browser di sini Anda dapat melihat pernah jadi sedikit- 318 00:17:21,000 --> 00:17:23,000 biar tampilannya di-bahwa ada sedikit padding antara tombol 319 00:17:23,000 --> 00:17:25,000 dan antara kolom teks. 320 00:17:25,000 --> 00:17:27,000 >> Biarkan saya sementara matikan. 321 00:17:27,000 --> 00:17:30,000 Biarkan aku pergi ke CSS saya, dan biarkan aku pergi ke depan dan hanya 322 00:17:30,000 --> 00:17:34,000 mengubah marjin ini dari 5 pixel ke 0 piksel. 323 00:17:34,000 --> 00:17:37,000 Biarkan aku pergi ke depan dan kemudian menyimpan file tersebut, kembali ke mesin pencari 324 00:17:37,000 --> 00:17:40,000 dan kembali, dan menonton tengah halaman. 325 00:17:40,000 --> 00:17:43,000 Semuanya mendapat dikompresi bersama-sama, dan ketika saya pertama kali melecut contoh ini sampai 326 00:17:43,000 --> 00:17:46,000 Saya pikir yang tampak bodoh dengan bidang teks dan kemudian tombol langsung di bawahnya. 327 00:17:46,000 --> 00:17:50,000 Saya ingin pad itu sedikit, jadi saya memperkenalkan margin. 328 00:17:50,000 --> 00:17:55,000 Apa yang kita tidak akan dilakukan di kuliah adalah pergi melalui beberapa lusin 329 00:17:55,000 --> 00:17:58,000 CSS properti yang ada karena, sekali lagi, ada hal-hal seperti ukuran font, 330 00:17:58,000 --> 00:18:02,000 font yang berat, margin, teks menyelaraskan, dan lain-lain beberapa lusin, 331 00:18:02,000 --> 00:18:06,000 dan kami akan merujuk Anda dalam masalah set 7 untuk tutorial online berbagai 332 00:18:06,000 --> 00:18:08,000 dan referensi yang memungkinkan Anda untuk mengambil hal-hal ini. 333 00:18:08,000 --> 00:18:10,000 Tapi apa yang benar-benar penting pada akhir hari 334 00:18:10,000 --> 00:18:12,000 >> adalah untuk memahami bagaimana hal-hal ini diterapkan. 335 00:18:12,000 --> 00:18:15,000 Sekali lagi, jika kita memiliki dalam tag gaya yang 336 00:18:15,000 --> 00:18:19,000 bisa pergi pemilih, jenis pengidentifikasi yang menentukan 337 00:18:19,000 --> 00:18:21,000 kepada siapa Anda ingin menerapkan properti, 338 00:18:21,000 --> 00:18:24,000 dan kemudian Anda meletakkan properti sebagai pasangan nilai kunci 339 00:18:24,000 --> 00:18:28,000 dipisahkan oleh titik dua, dan kemudian berakhir dengan titik koma, 340 00:18:28,000 --> 00:18:32,000 atau Anda dapat rip semua keluar itu dan memasukkannya ke dalam sebuah file CSS terpisah 341 00:18:32,000 --> 00:18:35,000 tersendiri. 342 00:18:35,000 --> 00:18:39,000 Baiklah, pertanyaan pada konsep 343 00:18:39,000 --> 00:18:41,000 atau gambaran besar dari CSS? 344 00:18:41,000 --> 00:18:43,000 Anda lagi akan melihat lebih banyak dari itu di pset 7, 345 00:18:43,000 --> 00:18:47,000 tapi kami akan tetap umumnya cukup sederhana. 346 00:18:47,000 --> 00:18:49,000 Tidak ada? Baiklah. 347 00:18:49,000 --> 00:18:51,000 Sudah waktunya untuk bahasa pemrograman yang sebenarnya, 348 00:18:51,000 --> 00:18:54,000 dan kami akan kembali ke sedikit CSS dalam bentuk contoh. 349 00:18:54,000 --> 00:18:58,000 PHP sebenarnya bahasa yang luar biasa diakses 350 00:18:58,000 --> 00:19:02,000 dalam hal sintaksis hampir setara dengan C. 351 00:19:02,000 --> 00:19:06,000 Dengan kata lain, jika Anda tahu C, Anda tahu untuk PHP sebagian besar, 352 00:19:06,000 --> 00:19:08,000 setidaknya sintaksis, meskipun ada beberapa fitur baru 353 00:19:08,000 --> 00:19:10,000 dan beberapa konsep baru kita harus melihat. 354 00:19:10,000 --> 00:19:13,000 >> Tapi bagi sebagian besar, sekarang kita transisi dari C ke PHP 355 00:19:13,000 --> 00:19:16,000 sebagian besar barang baru benar-benar dalam gambaran besar, 356 00:19:16,000 --> 00:19:19,000 bagaimana Anda menggunakan bahasa untuk program di Web sebagai lawan 357 00:19:19,000 --> 00:19:23,000 pada baris perintah atau dalam berkedip cepat seperti yang kita telah lakukan sejauh ini. 358 00:19:23,000 --> 00:19:27,000 Untuk referensi, terutama dengan pset 7 dan seterusnya tugas akhir, 359 00:19:27,000 --> 00:19:31,000 jangan mengambil keuntungan dari URL ini di sini jika Anda ingin membaca tentang formalitas dari PHP. 360 00:19:31,000 --> 00:19:34,000 Ini benar-benar seperti sebuah buku teks online gratis efektif, 361 00:19:34,000 --> 00:19:37,000 dan Anda juga akan menemukan bahwa apa yang benar-benar baik tentang PHP 362 00:19:37,000 --> 00:19:41,000 adalah bahwa ada ratusan fungsi yang datang dengan itu, 363 00:19:41,000 --> 00:19:44,000 sedangkan di C Anda tidak selalu memiliki akses ke 364 00:19:44,000 --> 00:19:47,000 fungsi lebih dari berada di perpustakaan matematika, perpustakaan CS50. 365 00:19:47,000 --> 00:19:51,000 Dalam PHP dan banyak bahasa modern, Python dan Ruby antara mereka, 366 00:19:51,000 --> 00:19:54,000 Anda mendapatkan akses ke fungsi sehingga lebih banyak, yang berarti Anda bisa menulis 367 00:19:54,000 --> 00:19:57,000 banyak kode kurang karena Anda dapat berdiri di atas bahu orang lain 368 00:19:57,000 --> 00:19:59,000 yang telah menulis hal-hal tertentu bagi Anda. 369 00:19:59,000 --> 00:20:03,000 >> Mari kita mengambil tur singkat dari sintaks PHP dan kemudian menulis beberapa contoh. 370 00:20:03,000 --> 00:20:06,000 Apa yang baik tentang PHP pertama dan terutama 371 00:20:06,000 --> 00:20:08,000 adalah tidak ada fungsi utama. 372 00:20:08,000 --> 00:20:10,000 Jika Anda ingin menulis sebuah program di PHP Anda hanya mulai menulis kode, 373 00:20:10,000 --> 00:20:12,000 dan Anda tidak perlu khawatir tentang utama. 374 00:20:12,000 --> 00:20:14,000 Ada int ada. Ada tidak kembali. 375 00:20:14,000 --> 00:20:17,000 Tidak ada argv, argc yang diperlukan bila Anda menulis program. 376 00:20:17,000 --> 00:20:20,000 Sebaliknya Anda hanya dapat mulai menulis kode, dan ini adalah bagian 377 00:20:20,000 --> 00:20:23,000 karena PHP adalah apa yang disebut bahasa ditafsirkan. 378 00:20:23,000 --> 00:20:26,000 C dikompilasi, dan itu disusun dalam arti bahwa Anda mulai 379 00:20:26,000 --> 00:20:29,000 dengan kode sumber, jalankan melalui dentang, yang merupakan kompilator, 380 00:20:29,000 --> 00:20:33,000 dan akhirnya setelah beberapa jumlah langkah Anda mendapatkan kode objek, 0s dan 1s. 381 00:20:33,000 --> 00:20:36,000 PHP dan Python dan Ruby dan Pearl dan lain-lain 382 00:20:36,000 --> 00:20:39,000 berbagai jenis bahasa yang Anda tidak kompilasi mereka. 383 00:20:39,000 --> 00:20:42,000 Anda tidak pergi dari kode sumber untuk 0s dan 1s. 384 00:20:42,000 --> 00:20:45,000 Anda hanya menjalankan kode sumber, dan Anda menjalankan kode sumber 385 00:20:45,000 --> 00:20:49,000 dengan menulis dalam sebuah file teks biasa, berakhir. php dalam hal ini 386 00:20:49,000 --> 00:20:53,000 bukannya c,. dan program apa yang tidak pada komputer Anda 387 00:20:53,000 --> 00:20:57,000 yang secara harfiah menafsirkan baris kode dengan baris demi baris. 388 00:20:57,000 --> 00:21:00,000 >> Dengan kata lain, daripada menulis program dan menjalankan program 389 00:21:00,000 --> 00:21:04,000 Anda malah langsung menulis sebuah program dengan file yang berakhir dengan. php. 390 00:21:04,000 --> 00:21:09,000 Kemudian Anda menjalankan program yang sebenarnya disebut php.exe, jika Anda berada di Windows, 391 00:21:09,000 --> 00:21:12,000 atau hanya PHP jika Anda berada di Mac OS atau Linux, 392 00:21:12,000 --> 00:21:17,000 dan Anda berikan sebagai masukan untuk program PHP kode sumber Anda sendiri, 393 00:21:17,000 --> 00:21:20,000 dan tujuan dalam hidup adalah untuk membaca atas kode Anda ke bawah, kiri ke kanan, 394 00:21:20,000 --> 00:21:23,000 dan melakukan apa pun yang Anda sudah mengatakan hal itu dapat dilakukan. 395 00:21:23,000 --> 00:21:25,000 >> Mari kita lihat apa ini akan berarti sintaksis. 396 00:21:25,000 --> 00:21:27,000 Dalam PHP kita memiliki kondisi. 397 00:21:27,000 --> 00:21:29,000 Slide ini identik dengan apa yang Anda lihat kembali dalam seminggu 1 398 00:21:29,000 --> 00:21:33,000 karena kondisi sintaksis, ifs dan ifs lain dan lain di PHP 399 00:21:33,000 --> 00:21:35,000 terlihat persis seperti ini. 400 00:21:35,000 --> 00:21:38,000 Ketika datang ke ekspresi boolean mereka akan terlihat persis seperti ini. 401 00:21:38,000 --> 00:21:43,000 Ketika datang ke anding sesuatu bersama-sama sebagai boolean itu akan terlihat persis seperti ini. 402 00:21:43,000 --> 00:21:46,000 Switch terlihat sama, dan Anda mendapatkan manfaat tambahan di PHP 403 00:21:46,000 --> 00:21:51,000 bahwa switch dalam C hanya bisa beralih pada char atau int. 404 00:21:51,000 --> 00:21:53,000 Anda tidak bisa beralih pada nilai string. 405 00:21:53,000 --> 00:21:55,000 Dalam PHP Anda benar-benar dapat memiliki ekspresi 406 00:21:55,000 --> 00:21:58,000 yang merupakan variabel yang isinya adalah string, 407 00:21:58,000 --> 00:22:01,000 dan Anda benar-benar dapat melakukan perbandingan string dalam cara intuitif yang nyata, 408 00:22:01,000 --> 00:22:06,000 bukan perbandingan pointer, dalam rangka untuk memutuskan apakah akan melakukan kasus saya atau j atau sesuatu yang lain. 409 00:22:06,000 --> 00:22:09,000 Kita akan melihat yang berpotensi sebelum lama. 410 00:22:09,000 --> 00:22:11,000 >> Loops terlalu mengagumkan adalah sama. 411 00:22:11,000 --> 00:22:15,000 Untuk loop memiliki inisialisasi, kondisi, dan beberapa jumlah update. 412 00:22:15,000 --> 00:22:18,000 Sementara loop juga ada di PHP. 413 00:22:18,000 --> 00:22:21,000 Lakukan sementara loop juga ada di PHP, 414 00:22:21,000 --> 00:22:26,000 dan array ada di PHP, tapi di sini adalah di mana sintaks mulai mendapatkan sedikit berbeda, 415 00:22:26,000 --> 00:22:29,000 namun konsep yang sama, dan konsep benar-benar sama 416 00:22:29,000 --> 00:22:32,000 karena mereka berada di 0 Minggu dengan Scratch. 417 00:22:32,000 --> 00:22:34,000 Pertama dan terpenting adalah tanda $. 418 00:22:34,000 --> 00:22:37,000 Ini adalah keputusan desain di PHP dimana setiap variabel 419 00:22:37,000 --> 00:22:41,000 di PHP dengan desain dimulai dengan tanda $. 420 00:22:41,000 --> 00:22:46,000 Tidak ada X, Y, Z. Ini lebih sekarang $ X, Y $, $ Z hanya karena. 421 00:22:46,000 --> 00:22:49,000 Ini adalah sesuatu yang perlu diingat, dan sekarang di sisi kanan 422 00:22:49,000 --> 00:22:52,000 ini terlihat mirip dengan array, 423 00:22:52,000 --> 00:22:54,000 tapi kami menggunakan kurung siku di sini. 424 00:22:54,000 --> 00:22:57,000 Dalam PHP dan JavaScript, seperti yang kita akhirnya akan melihat, 425 00:22:57,000 --> 00:23:01,000 untuk mendeklarasikan array Anda lakukan braket persegi terbuka dan tertutup braket persegi, 426 00:23:01,000 --> 00:23:04,000 dan kemudian Anda memiliki daftar dipisahkan koma dari nilai-nilai, apakah ints 427 00:23:04,000 --> 00:23:09,000 atau string atau karakter, apa pun yang Anda inginkan, dalam ekspresi yang ada. 428 00:23:09,000 --> 00:23:11,000 >> Sekarang, bagaimana kita melakukan sesuatu seperti ini di C? 429 00:23:11,000 --> 00:23:16,000 Apa sintaks untuk mendeklarasikan array statis nomor dikenal? 430 00:23:16,000 --> 00:23:19,000 Itu kurung kurawal, perbedaan sangat kecil di sini, tapi di kedua PHP 431 00:23:19,000 --> 00:23:22,000 dan akhirnya JavaScript itu hanya menggunakan kurung siku, sehingga benar-benar 432 00:23:22,000 --> 00:23:25,000 detail hanya menarik di sini adalah tanda $ untuk nama variabel 433 00:23:25,000 --> 00:23:28,000 dan juga tanda kurung siku, dan ada satu hal yang aneh 434 00:23:28,000 --> 00:23:32,000 yang telah dihilangkan serta di sisi kiri tanda =. 435 00:23:32,000 --> 00:23:36,000 Apa yang hilang bahwa kita telah membutuhkan selama berminggu-minggu sekarang? Ya. 436 00:23:36,000 --> 00:23:38,000 [Respon siswa tidak terdengar] 437 00:23:38,000 --> 00:23:41,000 Ukuran, sehingga tidak ada menyebutkan ukuran array. 438 00:23:41,000 --> 00:23:45,000 Terus terang, tidak ada menyebutkan tanda kurung siku di sisi kiri 439 00:23:45,000 --> 00:23:47,000 dari tanda =, dan apa lagi yang hilang dari garis? 440 00:23:47,000 --> 00:23:49,000 Ya >> [respon siswa tidak terdengar]. 441 00:23:49,000 --> 00:23:52,000 Jenis, sehingga apa yang menarik khususnya tentang PHP 442 00:23:52,000 --> 00:23:56,000 adalah bahwa hal itu bukan bahasa diketik kuat sebagai C adalah, 443 00:23:56,000 --> 00:23:58,000 dan itu sangat diketik dalam arti bahwa Anda harus mengatakan char, 444 00:23:58,000 --> 00:24:00,000 Anda harus mengatakan int, Anda harus mengatakan mengambang. 445 00:24:00,000 --> 00:24:03,000 >> Setiap kali Anda ingin sebuah variabel Anda harus memberitahu dentang jenis adalah. 446 00:24:03,000 --> 00:24:05,000 PHP adalah sedikit malas. 447 00:24:05,000 --> 00:24:08,000 Ini longgar diketik dalam arti bahwa 448 00:24:08,000 --> 00:24:11,000 Anda dapat memiliki mengapung dan karakter dan string 449 00:24:11,000 --> 00:24:14,000 dan ints dan sebagainya, tetapi bahasa itu sendiri 450 00:24:14,000 --> 00:24:17,000 tidak benar-benar peduli apa yang Anda masukkan dalam variabel. 451 00:24:17,000 --> 00:24:20,000 Anda tidak harus memberitahukannya terlebih dahulu apa tipe data 452 00:24:20,000 --> 00:24:22,000 akan dalam variabel. 453 00:24:22,000 --> 00:24:24,000 Itu sepenuhnya terserah Anda, jadi ini bagus 454 00:24:24,000 --> 00:24:27,000 karena Anda tidak perlu khawatir karena banyak tentang data yang mengetik 455 00:24:27,000 --> 00:24:29,000 dan mengkhawatirkan apa argumen Anda dan sebagainya. 456 00:24:29,000 --> 00:24:32,000 Ini juga berarti akhirnya fungsi dalam PHP akan dapat kembali 457 00:24:32,000 --> 00:24:36,000 baik sebagai int sebagian besar waktu, dan mungkin sesekali 458 00:24:36,000 --> 00:24:40,000 mereka akan kembali, bool palsu boolean, misalnya, untuk menandakan sesuatu yang tidak beres. 459 00:24:40,000 --> 00:24:44,000 Ini memberikan kita beberapa upsides, tetapi juga akan membuat kita semacam dengan desain 460 00:24:44,000 --> 00:24:47,000 sedikit malas ketika datang ke mengetik data. 461 00:24:47,000 --> 00:24:50,000 >> Apa lagi yang perlu diingat di sini? 462 00:24:50,000 --> 00:24:54,000 Variabel terlihat cukup seperti ini, sehingga $ s = "halo, dunia." 463 00:24:54,000 --> 00:24:57,000 Itu mungkin inferable dari contoh sebelumnya, 464 00:24:57,000 --> 00:24:59,000 dan kami memiliki jenis lain dari loop. 465 00:24:59,000 --> 00:25:02,000 Ini yang kita benar-benar akan melihat sekali-sekali karena itu sangat berguna, 466 00:25:02,000 --> 00:25:04,000 foreach membangun. 467 00:25:04,000 --> 00:25:11,000 Dalam kasus ini, loop foreach mengambil dalam 3 nya kata kurung biasanya, 468 00:25:11,000 --> 00:25:16,000 $ Pertama sesuatu, apa yang array yang Anda ingin iterate atas anggota, 469 00:25:16,000 --> 00:25:19,000 kemudian harfiah kata kunci sebagai, dan kemudian terakhir, 470 00:25:19,000 --> 00:25:21,000 nama lain variabel yang Anda bisa memilih. 471 00:25:21,000 --> 00:25:23,000 Hal ini dapat foo, bar, atau elemen, 472 00:25:23,000 --> 00:25:26,000 dan apa yang membangun ini tidak 473 00:25:26,000 --> 00:25:29,000 adalah jika array $ berisi 10 unsur 474 00:25:29,000 --> 00:25:34,000 pada setiap iterasi dari array-maaf, pada setiap iterasi dari loop ini 475 00:25:34,000 --> 00:25:37,000 elemen yang disebut variabel akan diperbarui 476 00:25:37,000 --> 00:25:40,000 menjadi elemen pertama dalam array, maka unsur kedua dalam array, 477 00:25:40,000 --> 00:25:44,000 maka elemen ketiga dari array, sehingga menghindarkan kebutuhan 478 00:25:44,000 --> 00:25:46,000 untuk melakukan notasi braket sedikit mengganggu persegi dan 479 00:25:46,000 --> 00:25:49,000 $ I untuk indeks ke array. 480 00:25:49,000 --> 00:25:53,000 PHP melakukan semua pekerjaan itu untuk Anda dan pada setiap iterasi 481 00:25:53,000 --> 00:25:55,000 hanya tangan Anda elemen berikutnya dari array 482 00:25:55,000 --> 00:26:01,000 tanpa Anda harus tahu tentang atau peduli tentang lokasi indeks numerik. 483 00:26:01,000 --> 00:26:04,000 >> Dan kemudian terakhir, untuk saat ini, ada satu keistimewaan lain dari PHP 484 00:26:04,000 --> 00:26:08,000 itu akan menjadi sangat berguna, terutama ketika kita mulai pemrograman di Web, 485 00:26:08,000 --> 00:26:10,000 dan itu dikenal sebagai array asosiatif. 486 00:26:10,000 --> 00:26:13,000 Array yang kita kenal sejauh ini per 20 detik yang lalu 487 00:26:13,000 --> 00:26:17,000 dan selama 8 minggu terakhir secara numerik array diindeks, 488 00:26:17,000 --> 00:26:20,000 semacam array tradisional di mana indeks adalah ints, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, sepanjang jalan ke atas. 490 00:26:23,000 --> 00:26:25,000 Array asosiatif jauh lebih kuat. 491 00:26:25,000 --> 00:26:28,000 Mereka memungkinkan Anda untuk memiliki kunci sewenang-wenang, 492 00:26:28,000 --> 00:26:31,000 sewenang-wenang indeks dan nilai-nilai sewenang-wenang. 493 00:26:31,000 --> 00:26:34,000 Sedangkan dalam array tradisional itu 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 dalam array asosiatif Anda dapat memiliki indeks 495 00:26:37,000 --> 00:26:41,000 atau kunci foo yang nilainya bar. 496 00:26:41,000 --> 00:26:46,000 Anda kemudian dapat memiliki kunci lain yang namanya baz dan yang nilainya qux. 497 00:26:46,000 --> 00:26:49,000 >> Sekali lagi, ilmu komputer bodoh nama variabel generik di sini, 498 00:26:49,000 --> 00:26:55,000 tapi intinya adalah bahwa array ini tidak memiliki braket 0 atau 1 braket. 499 00:26:55,000 --> 00:26:59,000 Ini bukannya akan memiliki braket foo dan braket baz. 500 00:26:59,000 --> 00:27:03,000 Ini jauh lebih fleksibel dalam bahwa kita akan dapat mengaitkan 501 00:27:03,000 --> 00:27:07,000 kata dengan kata lain, kunci dengan nilai-nilai benar-benar sewenang-wenang, 502 00:27:07,000 --> 00:27:12,000 dan kita akan bisa mendapatkan nilai-nilai kembali dalam waktu konstan 503 00:27:12,000 --> 00:27:14,000 karena di bawah kap apa array asosiatif 504 00:27:14,000 --> 00:27:16,000 benar-benar adalah adalah tabel hash. 505 00:27:16,000 --> 00:27:20,000 Ingat bahwa tabel hash memungkinkan Anda untuk dimasukkan ke dalam beberapa masukan 506 00:27:20,000 --> 00:27:25,000 seperti dimasukkan ke dalam kata David jika Anda ingin memasukkan David menjadi semacam kamus, 507 00:27:25,000 --> 00:27:27,000 dan kemudian Anda mendapatkan kembali beberapa nilai biasanya. 508 00:27:27,000 --> 00:27:29,000 Dalam kasus ejaan, benar atau salah. 509 00:27:29,000 --> 00:27:33,000 David atau kata apa saja dalam atau tidak dalam kamus. 510 00:27:33,000 --> 00:27:36,000 Array asosiatif adalah benar-benar hanya sebuah tabel hash, 511 00:27:36,000 --> 00:27:38,000 tapi itu inkarnasi jauh lebih user friendly dari itu. 512 00:27:38,000 --> 00:27:41,000 Seperti yang akan kita lihat, itu akan memungkinkan kita untuk melakukan beberapa hal 513 00:27:41,000 --> 00:27:43,000 sangat, sangat mudah. 514 00:27:43,000 --> 00:27:45,000 >> Mari kita lihat beberapa dasar PHP 515 00:27:45,000 --> 00:27:47,000 contoh dan melihat apa yang bisa kita lakukan dengan bahasa ini. 516 00:27:47,000 --> 00:27:51,000 Biarkan aku pergi ke depan dan membuka dalam direktori sumber kami hari ini 517 00:27:51,000 --> 00:27:54,000 file bernama hello1.php. 518 00:27:54,000 --> 00:27:57,000 File ini adalah komentar lebih dari itu adalah kode aktual, 519 00:27:57,000 --> 00:28:00,000 jadi biar benar-benar menghapus semua komentar dari file 520 00:28:00,000 --> 00:28:05,000 dan hadir untuk Anda mungkin sederhana PHP program yang tepat di sini. 521 00:28:05,000 --> 00:28:07,000 5 baris, dan beberapa dari mereka adalah ruang putih, 522 00:28:07,000 --> 00:28:09,000 jadi melihat beberapa perbedaan kunci di sini. 523 00:28:09,000 --> 00:28:12,000 File ini disebut hello1.php. 524 00:28:12,000 --> 00:28:16,000 Baris pertama, meskipun, adalah 00:28:18,000 Semangat yang sama HTML, 526 00:28:18,000 --> 00:28:21,000 bahwa urutan karakter memberitahu komputer 527 00:28:21,000 --> 00:28:25,000 "Hei, komputer, inilah program kami di dalam PHP." 528 00:28:25,000 --> 00:28:28,000 Itu membuat yakin itu tidak bingung bahwa itu beberapa bahasa lainnya. 529 00:28:28,000 --> 00:28:30,000 Jalur 2 adalah sebuah ruang putih yang menarik. 530 00:28:30,000 --> 00:28:32,000 Jalur 3 adalah teman lama kami printf, 531 00:28:32,000 --> 00:28:34,000 kali ini dalam konteks PHP. 532 00:28:34,000 --> 00:28:37,000 PHP memiliki versi sendiri printf yang berperilaku persis sama, 533 00:28:37,000 --> 00:28:39,000 jadi ini hanya akan mencetak "halo, dunia." 534 00:28:39,000 --> 00:28:46,000 Dan kemudian tag ini berlawanan di sini,>,? Berarti itu saja untuk kode PHP saya. 535 00:28:46,000 --> 00:28:48,000 >> Mari kita lihat bagaimana menjalankan ini. 536 00:28:48,000 --> 00:28:50,000 Aku akan kembali ke jendela terminal saya di sini. 537 00:28:50,000 --> 00:28:52,000 Aku akan masuk ke direktori PHP saya. 538 00:28:52,000 --> 00:28:56,000 Perhatikan bahwa kita memiliki sejumlah besar file, yang pertama dari yang hello.php. 539 00:28:56,000 --> 00:29:01,000 Biarkan aku pergi ke depan dan menjalankan hello1.php,, masukkan. 540 00:29:01,000 --> 00:29:03,000 Izin ditolak. Oke. 541 00:29:03,000 --> 00:29:06,000 Bagaimana kita tetap hal-hal seperti ini di masa lalu? 542 00:29:06,000 --> 00:29:08,000 Apa itu >> [respon siswa tidak terdengar]? 543 00:29:08,000 --> 00:29:11,000 Kita perlu membaca dan menulis, tapi biarkan aku melakukan ls-l. 544 00:29:11,000 --> 00:29:14,000 Ingat output ini agak samar dimana hello1 545 00:29:14,000 --> 00:29:17,000 tampaknya dapat dibaca dan ditulis oleh saya 546 00:29:17,000 --> 00:29:19,000 tapi dapat dibaca oleh orang lain. 547 00:29:19,000 --> 00:29:22,000 Ternyata ini sebenarnya bukan merupakan langkah dalam arah yang benar. 548 00:29:22,000 --> 00:29:25,000 Bedanya, sekali lagi, dengan bahasa ditafsirkan 549 00:29:25,000 --> 00:29:27,000 adalah Anda tidak menjalankan program secara langsung. 550 00:29:27,000 --> 00:29:30,000 Anda malah menjalankan penerjemah dan menyerahkannya kode 551 00:29:30,000 --> 00:29:33,000 bahwa Anda telah menulis sehingga dapat menafsirkan baris demi baris. 552 00:29:33,000 --> 00:29:36,000 Dalam hal ini, penafsir atau program saya benar-benar ingin menjalankan 553 00:29:36,000 --> 00:29:38,000 secara harfiah disebut PHP. 554 00:29:38,000 --> 00:29:41,000 >> Di suatu tempat pada hard drive alat ada program 555 00:29:41,000 --> 00:29:45,000 orang lain aja disebut PHP, atau pada Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Apa yang akan saya lakukan di sini adalah aku akan benar-benar menjalankan PHP 557 00:29:48,000 --> 00:29:51,000 tapi memberikannya sebagai argumen baris perintah kode yang saya tulis, 558 00:29:51,000 --> 00:29:54,000 dan kemudian saya akan tampilannya keluar dan tekan enter. 559 00:29:54,000 --> 00:29:58,000 Ini berjalan program saya untuk saya, atas ke bawah, kiri ke kanan. 560 00:29:58,000 --> 00:30:01,000 Biarkan aku pergi ke depan dan membuka varians sedikit ini. 561 00:30:01,000 --> 00:30:05,000 Dalam pemberitahuan hello2.php bahwa ini juga 562 00:30:05,000 --> 00:30:08,000 sebagian besar komentar, jadi biar menyingkirkan mereka sebagai selingan, 563 00:30:08,000 --> 00:30:13,000 dan apa yang jelas berbeda sekarang tentang file ini? 564 00:30:13,000 --> 00:30:15,000 Ada baris baru, agak samar di bagian atas. 565 00:30:15,000 --> 00:30:20,000 Sejalan 1 itu #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin adalah sebuah konvensi di Linux dan Mac OS untuk biner, 567 00:30:24,000 --> 00:30:27,000 sehingga / bin berarti ini adalah folder yang berisi sekelompok binari 568 00:30:27,000 --> 00:30:29,000 yang diprogram, salah satunya adalah PHP. 569 00:30:29,000 --> 00:30:32,000 The #! dijuluki shebang, 570 00:30:32,000 --> 00:30:35,000 yang merupakan cara cepat untuk mengatakan hal itu, dan apa ini berarti 571 00:30:35,000 --> 00:30:40,000 adalah bahwa ketika Anda menjalankan program ini sekarang ada petunjuk di bagian atas file 572 00:30:40,000 --> 00:30:44,000 yang memberitahu komputer apa interpreter untuk digunakan. 573 00:30:44,000 --> 00:30:47,000 >> Ia mendapat sedikit mengganggu jika Anda harus memberitahu pengguna Anda dan pelanggan Anda 574 00:30:47,000 --> 00:30:50,000 "Hei, kita menulis program ini disebut hello1.php." 575 00:30:50,000 --> 00:30:54,000 Semua harus Anda lakukan adalah selamanya menjalankan PHP dan kemudian nama dari program ini. 576 00:30:54,000 --> 00:30:58,000 Terus terang, itu hanya akan lebih baik untuk menjalankan hello1.php, 577 00:30:58,000 --> 00:31:00,000 dan memang, kita bisa jika kita melakukan hal berikut. 578 00:31:00,000 --> 00:31:05,000 Biarkan aku pergi ke depan dan melakukan ls-l, dan pemberitahuan di hello2 itu masih saja membaca menulis 579 00:31:05,000 --> 00:31:10,000 dan kemudian membaca membaca, jadi saya belum bisa melakukan hal ini, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Tapi kami memperkenalkan pernah begitu singkat terakhir kali, perintah chmod. 581 00:31:15,000 --> 00:31:20,000 Jika saya melakukan chmod a + x, yang berarti semua executability ditambah, 582 00:31:20,000 --> 00:31:26,000 dan kemudian hello2.php dan kemudian melakukan ls-l lagi melihat apa yang berubah. 583 00:31:26,000 --> 00:31:29,000 Satu, Linux adalah menunjukkan kepada saya nama file di hijau untuk menyampaikan ide 584 00:31:29,000 --> 00:31:32,000 bahwa eksekusi itu, tetapi yang lebih penting, di sisi kiri 585 00:31:32,000 --> 00:31:36,000 perhatikan bahwa bit mewakili x untuk dieksekusi kini telah ditetapkan. 586 00:31:36,000 --> 00:31:42,000 Apa ini berarti sekarang adalah saya bisa menjalankan ./hello2.php seperti biasa, 587 00:31:42,000 --> 00:31:45,000 tekan enter, dan karena shebang di bagian paling atas dari file 588 00:31:45,000 --> 00:31:48,000 itu petunjuk, lagi, untuk Linux yang mengatakan 589 00:31:48,000 --> 00:31:51,000 menggunakan penerjemah ini untuk menjalankan file ini. 590 00:31:51,000 --> 00:31:54,000 Jangan khawatir tentang memaksa pengguna untuk benar-benar mengetiknya. 591 00:31:54,000 --> 00:31:57,000 >> Dan apa yang bagus sekarang adalah itu agak tidak relevan kepada pelanggan saya atau teman-teman saya 592 00:31:57,000 --> 00:32:01,000 bahasa apa saya menulis program ini, jadi aku bisa pergi ke depan dengan mv 593 00:32:01,000 --> 00:32:04,000 dan mengubah nama hal ini untuk hello2, misalnya. 594 00:32:04,000 --> 00:32:07,000 Dan sekarang jika saya lakukan ./hello2 595 00:32:07,000 --> 00:32:10,000 dan zoom out program saya terus berjalan. 596 00:32:10,000 --> 00:32:13,000 Ini ekstensi file adalah konvensi manusia yang diperlukan 597 00:32:13,000 --> 00:32:15,000 untuk sesuatu seperti dentang dan Membuat yang mencari mereka. 598 00:32:15,000 --> 00:32:18,000 Tapi untuk PHP, saya bisa menyebutnya apa ekstensi file yang saya inginkan. 599 00:32:18,000 --> 00:32:22,000 Aku bisa menipu dunia dengan berpikir bahwa aku benar-benar baik di Ruby, 600 00:32:22,000 --> 00:32:25,000 dan aku bisa menulis hello2.rb dan kemudian menjalankan ini, 601 00:32:25,000 --> 00:32:28,000 dan voila, sekarang saya memiliki versi Ruby, yang merupakan kebohongan yang lengkap. 602 00:32:28,000 --> 00:32:30,000 Tapi ekstensi file yang berarti 603 00:32:30,000 --> 00:32:35,000 jika file executable dan memiliki petunjuk ini khusus di bagian atas file. 604 00:32:35,000 --> 00:32:38,000 >> Sekarang, sebagai samping, mari saya tunjukkan cepat versi 3, 605 00:32:38,000 --> 00:32:40,000 yang merupakan semacam trik berguna untuk mengetahui. 606 00:32:40,000 --> 00:32:45,000 Pada hello3 Saya melakukan sesuatu yang sedikit salah 607 00:32:45,000 --> 00:32:47,000 bahwa saya akan memperbarui kode sumber secara online. 608 00:32:47,000 --> 00:32:50,000 Dalam versi 3 ternyata pada komputer Linux yang paling 609 00:32:50,000 --> 00:32:53,000 ada program yang disebut env untuk lingkungan, 610 00:32:53,000 --> 00:32:56,000 dan apa yang dapat Anda lakukan di sini adalah jika Anda tidak tahu di mana PHP 611 00:32:56,000 --> 00:33:00,000 diinstal pada hard drive lokal, karena memang bisa bervariasi berdasarkan komputer 612 00:33:00,000 --> 00:33:03,000 bahwa seseorang menggunakan, env hanya mengatakan menjalankan env, 613 00:33:03,000 --> 00:33:07,000 yang pada kebanyakan sistem, dan mencari tahu di mana PHP adalah. 614 00:33:07,000 --> 00:33:11,000 Hanya trik umum sehingga Anda tidak perlu khawatir tentang mencari tahu di mana program ini. 615 00:33:11,000 --> 00:33:14,000 Tetapi jika Anda melakukan perawatan untuk mencari tahu di mana program ini dan Anda belum peduli sejauh 616 00:33:14,000 --> 00:33:16,000 Anda dapat menggunakan perintah yang. 617 00:33:16,000 --> 00:33:19,000 >> Biarkan saya zoom out dan jenis yang php, 618 00:33:19,000 --> 00:33:23,000 dan perhatikan ia memberitahu saya itu sebenarnya di usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 Ini semacam kebohongan. Hal ini juga di bin. 620 00:33:25,000 --> 00:33:27,000 Ini hanya menunjukkan kepada saya hit pertama. 621 00:33:27,000 --> 00:33:31,000 Jika Anda pernah bertanya-tanya di mana dentang adalah, yang dentang, yang di usr / bin / dentang, 622 00:33:31,000 --> 00:33:34,000 yang membuat, usr / bin / membuat, dan apa artinya itu semua saat ini 623 00:33:34,000 --> 00:33:38,000 Anda bisa saja mengetik usr / bin / dentang masuk untuk menjalankan dentang, 624 00:33:38,000 --> 00:33:41,000 tapi itu agak membosankan untuk melakukan itu, sehingga beberapa folder 625 00:33:41,000 --> 00:33:44,000 seperti usr / bin dan bin diasumsikan default 626 00:33:44,000 --> 00:33:50,000 sehingga komputer tahu untuk mencari di dalamnya untuk Anda. 627 00:33:50,000 --> 00:33:53,000 Setiap pertanyaan tentang menulis sebuah program, Dunia super super sederhana Hello 628 00:33:53,000 --> 00:33:55,000 di PHP dan kemudian menjalankannya? 629 00:33:55,000 --> 00:33:59,000 Karena sekarang kita akan mulai memperkenalkan sintaks lebih menarik. 630 00:33:59,000 --> 00:34:01,000 Baiklah, di sini kita pergi. 631 00:34:01,000 --> 00:34:03,000 Program-program yang telah kita lihat sebenarnya semua dari mereka sebelumnya. 632 00:34:03,000 --> 00:34:07,000 >> Jika saya membuka, misalnya, mari kita lakukan beer1.php, 633 00:34:07,000 --> 00:34:09,000 kami tidak akan pergi melalui beberapa versi ini, tapi apa yang saya lakukan 634 00:34:09,000 --> 00:34:13,000 Aku sedang duduk dan menuangkan atau dikonversi 635 00:34:13,000 --> 00:34:15,000 saya C kode untuk kode PHP di sini. 636 00:34:15,000 --> 00:34:18,000 Sebagian besar atas file yang komentar di sini. 637 00:34:18,000 --> 00:34:20,000 Ternyata ada satu fungsi baru kita perlu disebut readline. 638 00:34:20,000 --> 00:34:23,000 GetString, recall, dari Minggu 0 seterusnya adalah hal CS50. 639 00:34:23,000 --> 00:34:27,000 PHP datang dengan sendiri fungsinya user-friendly disebut readline 640 00:34:27,000 --> 00:34:30,000 yang mengambil 1 argumen yang menentukan prompt 641 00:34:30,000 --> 00:34:33,000 bahwa Anda ingin menunjukkan kepada pengguna, dan apa yang tidak readline 642 00:34:33,000 --> 00:34:35,000 apakah mengembalikan apa pun pengguna jenis masuk 643 00:34:35,000 --> 00:34:39,000 Dalam kasus ini, saya mendeklarasikan variabel yang disebut $ n. 644 00:34:39,000 --> 00:34:42,000 Saya menyimpan di dalamnya nilai kembalinya readline 645 00:34:42,000 --> 00:34:44,000 setelah mendorong pengguna dengan string ini. 646 00:34:44,000 --> 00:34:47,000 Hanya untuk cadangan, untuk benar-benar menjalankan hal ini, biarkan aku pergi ke depan 647 00:34:47,000 --> 00:34:50,000 dan menjalankan beer1.php php. 648 00:34:50,000 --> 00:34:53,000 Berapa banyak botol akan ada? Mari kita lakukan 2 kali ini. 649 00:34:53,000 --> 00:34:55,000 Enter. Itu saja. 650 00:34:55,000 --> 00:34:59,000 >> Program ini secara fungsional identik dengan versi C dari minggu lalu. 651 00:34:59,000 --> 00:35:01,000 Tapi sintaksis mari kita lihat apa yang berbeda. 652 00:35:01,000 --> 00:35:05,000 Setelah saya mendapatkan int dari pemberitahuan pengguna bahwa aku melakukan beberapa pengecekan error, 653 00:35:05,000 --> 00:35:08,000 dan jika n kurang dari 1 saya berhenti dan saya mencetak 654 00:35:08,000 --> 00:35:11,000 pesan maaf kepada pengguna dan keluar dengan 1. 655 00:35:11,000 --> 00:35:13,000 Ini juga sedikit berbeda. 656 00:35:13,000 --> 00:35:16,000  Dalam C apa yang kita lakukan? Dalam C kami kembali 1. 657 00:35:16,000 --> 00:35:20,000 Dalam PHP Anda keluar dengan 1, yang terus terang saya pikir adalah sedikit lebih intuitif 658 00:35:20,000 --> 00:35:22,000 karena Anda benar-benar keluar dari program. 659 00:35:22,000 --> 00:35:25,000 Baiklah, dan kemudian turun di sini lagu menjengkelkan identik sintaksis 660 00:35:25,000 --> 00:35:29,000 kecuali untuk variabel, sehingga di sini di baris 24 dan seterusnya 661 00:35:29,000 --> 00:35:31,000 perhatikan saya untuk loop hampir sama, 662 00:35:31,000 --> 00:35:34,000 tapi aku punya $ di depan i dan n, 663 00:35:34,000 --> 00:35:37,000 dan apa juga hilang dari baris 26 yang kita punya di masa lalu 664 00:35:37,000 --> 00:35:39,000 ketika mendeklarasikan variabel saya? 665 00:35:39,000 --> 00:35:41,000 Ada tipe no. 666 00:35:41,000 --> 00:35:43,000 Hal ini tidak benar dalam PHP untuk mengatakan int. 667 00:35:43,000 --> 00:35:45,000 Anda hanya tidak perlu melakukan itu. 668 00:35:45,000 --> 00:35:48,000 Komputer, PHP interpreter cukup pintar untuk menyadari 669 00:35:48,000 --> 00:35:51,000 bahwa jika Anda memasukkan nomor di $ Saya akan memperlakukannya 670 00:35:51,000 --> 00:35:53,000 sebagai nomor Anda. 671 00:35:53,000 --> 00:35:57,000 Dan kemudian turun di sini kita pasang di $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Semua itu adalah sama, dan kemudian turun di sini kita melakukan "Wow, itu mengganggu" printf 673 00:36:00,000 --> 00:36:02,000 dan kemudian keluar (0). 674 00:36:02,000 --> 00:36:05,000 >> Sekali lagi, takeaway di sini adalah bahwa meskipun kita akan menghabiskan relatif 675 00:36:05,000 --> 00:36:09,000 sedikit waktu pada PHP, tentu versus apa yang kami lakukan pada C, 676 00:36:09,000 --> 00:36:12,000 itu hampir sama, dan sebagainya yang akan kita lakukan hari ini dan minggu depan 677 00:36:12,000 --> 00:36:14,000 dan seterusnya adalah fokus benar-benar pada beberapa ide-ide baru. 678 00:36:14,000 --> 00:36:17,000 Hanya untuk melihat bahwa satu hal lain yang tidak menerjemahkan lebih dari C, 679 00:36:17,000 --> 00:36:20,000 ini adalah sebuah program super sederhana yang kita lakukan di Minggu 1 680 00:36:20,000 --> 00:36:22,000 atau 2 potong dadu yang nilai. 681 00:36:22,000 --> 00:36:25,000 Tapi apa yang menarik pada saat tentang program ini adalah bahwa hal itu 682 00:36:25,000 --> 00:36:28,000 memperkenalkan konsep fungsi kustom tertulis bahwa kita sendiri menulis. 683 00:36:28,000 --> 00:36:31,000 Sintaks dalam PHP hampir sama. 684 00:36:31,000 --> 00:36:33,000 Berikut program saya di bagian atas. 685 00:36:33,000 --> 00:36:35,000 Perhatikan lagi absen adalah setiap gagasan utama. 686 00:36:35,000 --> 00:36:39,000 Saya mulai menulis kode, dan ini adalah apa yang akan dieksekusi oleh interpreter. 687 00:36:39,000 --> 00:36:42,000 Saya mencetak x sekarang 2, mungkin. 688 00:36:42,000 --> 00:36:44,000 Lalu aku mengklaim cubing ... 689 00:36:44,000 --> 00:36:47,000 Lalu aku memanggil fungsi kubus dan lulus dalam $ x 690 00:36:47,000 --> 00:36:50,000 dan menetapkan nilai kembali ke $ x. 691 00:36:50,000 --> 00:36:53,000 Kemudian saya mengklaim bahwa itu potong dadu, dan kemudian saya mengatakan ini, yang mudah-mudahan 692 00:36:53,000 --> 00:36:55,000 akan mengatakan x sekarang 8. 693 00:36:55,000 --> 00:36:59,000 Sintaks untuk fungsi di PHP pernah jadi sedikit berbeda. 694 00:36:59,000 --> 00:37:01,000 Sekali lagi hilang adalah jenis kembali. 695 00:37:01,000 --> 00:37:05,000 Sekali lagi hilang adalah jenis kembali dan juga hilang adalah jenis lainnya? 696 00:37:05,000 --> 00:37:07,000 [Respon siswa tidak terdengar] 697 00:37:07,000 --> 00:37:10,000 Well, oke, itu bagus. Mari kita kembali ke bahwa dalam kedua. 698 00:37:10,000 --> 00:37:12,000 >> Kami tidak memiliki, misalnya, int sini. 699 00:37:12,000 --> 00:37:15,000 Kami tidak, misalnya, telah int sini karena, sekali lagi, di PHP 700 00:37:15,000 --> 00:37:18,000 Anda hanya tidak perlu dan tidak harus melakukan itu, 701 00:37:18,000 --> 00:37:20,000 melainkan ada kata kunci ini baru yang disebut fungsi. 702 00:37:20,000 --> 00:37:23,000 Di PHP itu hampir sedikit lebih jelas karena ketika Anda ingin fungsi 703 00:37:23,000 --> 00:37:26,000 Anda benar-benar mengatakan fungsi, Anda memberikan nama dan kemudian daftar dipisahkan koma 704 00:37:26,000 --> 00:37:28,000 jika ada argumen. 705 00:37:28,000 --> 00:37:32,000 Tidak perlu mengatakan batal atau sesuatu seperti itu, dan kemudian kembali adalah sama, 706 00:37:32,000 --> 00:37:35,000 $ * A * a $ $ a. 707 00:37:35,000 --> 00:37:38,000 Yang juga hilang? Sammy menunjukkan hal ini di sini. 708 00:37:38,000 --> 00:37:43,000 Pada bagian atas dari file-benar absen di PHP juga merupakan prototipe. 709 00:37:43,000 --> 00:37:45,000 Ini juga adalah dengan desain. 710 00:37:45,000 --> 00:37:48,000 Bahasa dan interpreter seperti PHP lebih pintar dari C pernah ada 711 00:37:48,000 --> 00:37:50,000 dalam kompiler seperti dentang. 712 00:37:50,000 --> 00:37:53,000 >> Ingat dentang itu, jika Anda tidak memberitahu bahwa ada kubus, 713 00:37:53,000 --> 00:37:56,000 jika Anda tidak memberitahu bahwa ada sebagai printf dengan prototipe 714 00:37:56,000 --> 00:38:00,000 atau dengan # include, baik, itu akan berteriak pada Anda dan bahkan tidak mengkompilasi kode Anda. 715 00:38:00,000 --> 00:38:03,000 PHP dan bahasa yang lebih modern yang jauh lebih cerdas ketika datang ke ini. 716 00:38:03,000 --> 00:38:07,000 Mereka akan mengambil itu atas diri untuk membaca semua kode Anda 717 00:38:07,000 --> 00:38:11,000 dan kemudian berteriak pada Anda hanya jika menemukan tempat kubus. 718 00:38:11,000 --> 00:38:15,000 Tidak masalah jika kubus di bagian bawah atau atas atau bahkan dalam beberapa file terpisah. 719 00:38:15,000 --> 00:38:18,000 Bahasa PHP dan sejenis sekarang cukup cerdas untuk melihat ke depan 720 00:38:18,000 --> 00:38:26,000 segala sesuatu sebelum deeming Anda sebagai telah membuat kesalahan. 721 00:38:26,000 --> 00:38:28,000 Mana yang meninggalkan kita? 722 00:38:28,000 --> 00:38:32,000 >> Mari kita lakukan salah satu contoh terakhir di sini dalam kondisi, 723 00:38:32,000 --> 00:38:35,000 dan jika saya membuka pemberitahuan conditions2.php terlalu 724 00:38:35,000 --> 00:38:37,000 sintaks di sini adalah hampir sama. 725 00:38:37,000 --> 00:38:40,000 Saya menggunakan readline bukan GetString, tapi garis yang sama seperti sebelumnya, 726 00:38:40,000 --> 00:38:42,000 "Saya ingin integer silakan." 727 00:38:42,000 --> 00:38:45,000 Saya kemudian memiliki kondisi jika, else if, dan kemudian yang lain, 728 00:38:45,000 --> 00:38:48,000 tetapi secara fungsional program ini juga identik dengan apa yang kami lakukan minggu lalu, 729 00:38:48,000 --> 00:38:51,000 jadi jika saya menjalankan hal ini, php dari conditions2, 730 00:38:51,000 --> 00:38:54,000 dan saya memberikan nomor seperti 23 - 731 00:38:54,000 --> 00:38:57,000 Aku mengambil angka positif. Jika saya memberikan -1 saya memilih angka negatif. 732 00:38:57,000 --> 00:39:00,000 Jika saya memberikan 0 Saya memang memilih 0. 733 00:39:00,000 --> 00:39:02,000 Jadi siapa yang peduli tentang semua ini? 734 00:39:02,000 --> 00:39:06,000 Nah, salah satu jenis latihan yang menyenangkan di sini 735 00:39:06,000 --> 00:39:10,000 bagi saya setidaknya adalah untuk kembali dan melihat seberapa cepat saya bisa menerapkan pset 5, 736 00:39:10,000 --> 00:39:12,000 yang pset salah ejaan. 737 00:39:12,000 --> 00:39:15,000 Ingat bahwa ada file ini disebut speller.c, 738 00:39:15,000 --> 00:39:17,000 dan ada file bernama dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Apa yang saya lakukan adalah saya agak menghabiskan beberapa menit dan saya dikonversi kode C 740 00:39:20,000 --> 00:39:23,000 untuk kode PHP, dan kami tidak akan menghabiskan banyak waktu di ejaan 741 00:39:23,000 --> 00:39:26,000 karena seperti di pset 5 Anda tidak benar-benar perlu 742 00:39:26,000 --> 00:39:29,000 menghabiskan banyak waktu di ejaan sendiri karena perhatian Anda berada di kamus. 743 00:39:29,000 --> 00:39:32,000 >> Cukuplah untuk mengatakan bahwa jika Anda membaca ejaan, 744 00:39:32,000 --> 00:39:35,000 file ini di sini, itu cukup banyak setara dengan kode C 745 00:39:35,000 --> 00:39:37,000 kami memberikan Anda untuk pset 5. 746 00:39:37,000 --> 00:39:39,000 Saya baru saja menambahkan beberapa $ di tempat. 747 00:39:39,000 --> 00:39:43,000 Aku sudah berubah nama fungsi tertentu jika mereka tidak ada di PHP. 748 00:39:43,000 --> 00:39:45,000 Ada satu hal tambahan di sini, preg_match, 749 00:39:45,000 --> 00:39:48,000 yang merupakan cara sedikit lebih menarik dari melakukan sesuatu, tapi kami akan kembali ke yang akhirnya. 750 00:39:48,000 --> 00:39:51,000 Tapi singkatnya, ejaan hampir identik, dan jika Anda melihat di bagian paling bawah 751 00:39:51,000 --> 00:39:54,000 apa yang akhirnya meludah keluar ini di sini, 752 00:39:54,000 --> 00:39:57,000 kata yang salah eja, kata-kata dalam kamus, kata-kata dalam teks. 753 00:39:57,000 --> 00:40:00,000 Baiklah, jadi apa yang menarik saat ini adalah sebagai berikut. 754 00:40:00,000 --> 00:40:05,000 Pada bagian atas file saya, saya membutuhkan dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Sama seperti C # telah termasuk PHP memiliki fungsi khusus yang disebut membutuhkan 756 00:40:09,000 --> 00:40:14,000 yang cukup banyak melakukan hal yang sama, memerlukan file bernama dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Bagaimana saya bisa pergi tentang pelaksanaan pset 5? 758 00:40:18,000 --> 00:40:21,000 Biarkan aku pergi ke depan dan membuka file di sini. 759 00:40:21,000 --> 00:40:24,000 Biarkan aku mengambil referensi kecil di sini. 760 00:40:24,000 --> 00:40:29,000 Dan biarkan aku membuat file baru dan mulai memanggil dictionary.php ini. 761 00:40:29,000 --> 00:40:31,000 Biarkan aku memasukkannya ke dalam folder lain sehingga kita bisa melakukan ini hidup. 762 00:40:31,000 --> 00:40:33,000 Dan sekarang aku akan zoom in 763 00:40:33,000 --> 00:40:37,000 Aku akan memulai file PHP saya dengan braket terbuka php ditutup braket. 764 00:40:37,000 --> 00:40:40,000 Dan kemudian di sini ada beberapa fungsi yang saya butuhkan untuk mengimplementasikan untuk pset 5, 765 00:40:40,000 --> 00:40:42,000 jadi biar mulai menerapkan beberapa dari mereka, 766 00:40:42,000 --> 00:40:47,000 sehingga fungsi cek, yang harus mengambil sebuah kata dalam sebagai argumen. 767 00:40:47,000 --> 00:40:49,000 Kami akan melakukan itu dan kembali ke sana dalam sekejap. 768 00:40:49,000 --> 00:40:53,000 >> Ada fungsi beban, yang mengambil dalam apa sebagai argumen? 769 00:40:53,000 --> 00:40:56,000 Kamus, sehingga file yang saya benar-benar ingin untuk memuat. 770 00:40:56,000 --> 00:41:00,000 Ada fungsi ukuran, yang tidak mengambil argumen 771 00:41:00,000 --> 00:41:04,000 dan ada fungsi-apa yang lain? 772 00:41:04,000 --> 00:41:06,000 Membongkar, yang tidak mengambil argumen baik. 773 00:41:06,000 --> 00:41:10,000 Ini adalah 4 fungsi bahwa saya akan perlu untuk mengimplementasikan sekarang di PHP, 774 00:41:10,000 --> 00:41:13,000 dan apa yang akan saya lakukan adalah pergi ke depan dan melakukan hal ini. 775 00:41:13,000 --> 00:41:16,000 Banyak dari Anda menggunakan tabel hash di pset 5, 776 00:41:16,000 --> 00:41:21,000 jadi biarkan aku pergi ke depan dan membuat tabel hash di PHP. 777 00:41:21,000 --> 00:41:23,000 Selesai. 778 00:41:23,000 --> 00:41:25,000 Itu memberi saya sebuah tabel hash. Nah, mengapa? 779 00:41:25,000 --> 00:41:30,000 Satu, variabel disebut $ meja, hanya untuk menyulap ide tabel hash. 780 00:41:30,000 --> 00:41:34,000 Tanda kurung persegi, meskipun, mengingat, mewakili apa? 781 00:41:34,000 --> 00:41:37,000 Array, tetapi dalam array PHP tidak harus diindeks secara numerik. 782 00:41:37,000 --> 00:41:41,000 Mereka juga bisa menjadi array asosiatif, 783 00:41:41,000 --> 00:41:44,000 yang berarti Anda dapat memiliki kunci sewenang-wenang dan nilai-nilai. 784 00:41:44,000 --> 00:41:49,000 >> Banyak seperti di pset 5, Anda yang melakukan implementasi tabel hash 785 00:41:49,000 --> 00:41:53,000 Anda mungkin dimasukkan kata dan kemudian dimasukkan ke dalam rantai daftar terhubung, 786 00:41:53,000 --> 00:41:56,000 atau Anda menyimpan nilai suatu tempat benar atau sesuatu seperti itu. 787 00:41:56,000 --> 00:41:59,000 Anda entah bagaimana mengingat fakta bahwa kata itu ada. 788 00:41:59,000 --> 00:42:01,000 Untuk saat ini, itu akan menjadi tabel hash saya, 789 00:42:01,000 --> 00:42:06,000 dan jadi sekarang untuk pergi tentang pelaksanaan fungsi cek 790 00:42:06,000 --> 00:42:09,000 Saya hanya perlu melihat ke dalam itu tabel hash 791 00:42:09,000 --> 00:42:11,000 dan melihat apakah kata ada. 792 00:42:11,000 --> 00:42:15,000 Apa yang akan saya lakukan adalah aku akan mengatakan jika- 793 00:42:15,000 --> 00:42:20,000 katakanlah isset, yang merupakan fungsi PHP yang benar-benar hanya berarti adalah set kunci, 794 00:42:20,000 --> 00:42:24,000 sehingga isset ($ table [$ word], 795 00:42:24,000 --> 00:42:29,000 dan jika demikian kembali benar. 796 00:42:29,000 --> 00:42:32,000 Itu saja. Itu pset 5 di PHP. 797 00:42:32,000 --> 00:42:34,000 Nah, dalam keadilan, oke. 798 00:42:34,000 --> 00:42:37,000 Lain kembali palsu, sehingga tidak ada. 799 00:42:37,000 --> 00:42:39,000 Apa yang sebenarnya terjadi di sini? 800 00:42:39,000 --> 00:42:42,000 Nah, jika tabel-tabel hash atau di sini lebih umum- 801 00:42:42,000 --> 00:42:46,000 adalah array asosiatif yang berarti Anda dapat mengindeks ke dalamnya 802 00:42:46,000 --> 00:42:50,000 dengan kata seperti "kata," dan Anda harus mendapatkan kembali beberapa nilai. 803 00:42:50,000 --> 00:42:52,000 >> Kami agak mendapatkan selangkah lebih maju dari diri kita sendiri. 804 00:42:52,000 --> 00:42:56,000 Ini akan menjadi baik jika kita benar-benar dimuat file pertama, 805 00:42:56,000 --> 00:42:58,000 sehingga beban tidak cukup sederhana, tapi biarkan aku pergi ke depan dan menyiapkan 806 00:42:58,000 --> 00:43:00,000  implementasi sangat cepat dari beban. 807 00:43:00,000 --> 00:43:07,000 Biarkan aku pergi ke depan dan mengatakan kata-kata mendapat kamus file. 808 00:43:07,000 --> 00:43:10,000 Fungsi file dalam PHP membuka file 809 00:43:10,000 --> 00:43:12,000 dan kembali kepada Anda sebuah array dari semua kata-kata dalam file tersebut, 810 00:43:12,000 --> 00:43:14,000 hanya tangan mereka kepada Anda. 811 00:43:14,000 --> 00:43:16,000 Itu adalah rasa sakit besar juga, bukan? 812 00:43:16,000 --> 00:43:21,000 Sekarang foreach, ini adalah membangun baru, foreach ($ kata-kata $ kata). 813 00:43:21,000 --> 00:43:25,000 Loop ini akan mulai iterasi kata Array 814 00:43:25,000 --> 00:43:30,000 dan menetapkan ke variabel $ kata setiap kata dalam file 815 00:43:30,000 --> 00:43:32,000 dari pertama ke kedua ke ketiga dengan cara seluruh keempat 816 00:43:32,000 --> 00:43:35,000 jadi saya tidak perlu melakukan notasi [i] menjengkelkan dan sejenisnya. 817 00:43:35,000 --> 00:43:38,000 Dan apa yang saya hanya akan lakukan untuk masing-masing kata 818 00:43:38,000 --> 00:43:43,000 adalah menyimpannya di meja saya dengan pengindeksan ke dalam tabel 819 00:43:43,000 --> 00:43:47,000 dan kemudian melakukan benar karena untuk mengingat 820 00:43:47,000 --> 00:43:50,000 bahwa kata dalam kamus saya semua saya benar-benar harus melakukan 821 00:43:50,000 --> 00:43:55,000 adalah jenis melempar sedikit dan mengatakan kata ini dalam tabel hash saya ada di sana, benar. 822 00:43:55,000 --> 00:43:58,000 Dan jika itu tidak ada, saya tidak harus secara eksplisit menempatkan palsu, 823 00:43:58,000 --> 00:44:01,000 kalau tidak saya akan harus meletakkan palsu untuk semua kata yang mungkin di alam semesta. 824 00:44:01,000 --> 00:44:05,000 >> Cukuplah bagi saya hanya untuk menetapkan nilai indeks 825 00:44:05,000 --> 00:44:09,000 true jika kata sebenarnya dalam tabel hash saya. 826 00:44:09,000 --> 00:44:12,000 Sekarang, aku memotong beberapa sudut di sini bahwa saya akan melambaikan tangan saya di untuk saat ini, 827 00:44:12,000 --> 00:44:15,000 tapi sekarang fungsi beban dilakukan. 828 00:44:15,000 --> 00:44:18,000 Saya memuat semua kata-kata dari file ke dalam array. 829 00:44:18,000 --> 00:44:21,000 Aku iterate atas array, dan untuk setiap kata dalam array 830 00:44:21,000 --> 00:44:24,000 Saya pasang ke dalam tabel hash saya dengan 1 baris kode. 831 00:44:24,000 --> 00:44:26,000 Ini menyenangkan. Anda tahu bagaimana kita dapat menerapkan ukuran sekarang? 832 00:44:26,000 --> 00:44:28,000 Nah, ukuran selalu cukup mudah, dalam keadilan. 833 00:44:28,000 --> 00:44:32,000 Di sini kita hanya dapat melakukan mengembalikan hitungan meja. 834 00:44:32,000 --> 00:44:34,000 Itu cukup mudah juga, menghitung jumlah hal dalam tabel. 835 00:44:34,000 --> 00:44:36,000 Itu sebenarnya semacam bukan yang paling efisien. 836 00:44:36,000 --> 00:44:39,000 Saya mungkin harus memiliki ukuran yang disebut variabel sehingga kita bisa melakukannya 837 00:44:39,000 --> 00:44:41,000 dalam waktu yang konstan, tapi itu cukup mudah. 838 00:44:41,000 --> 00:44:45,000 Oh, dan kemudian membongkar, jika kita benar-benar ingin menjadi anal sini 839 00:44:45,000 --> 00:44:47,000 kita dapat mengatakan bahwa cara Anda membongkar sesuatu. 840 00:44:47,000 --> 00:44:49,000 Anda hanya mengatur variabel sama dengan array kosong, 841 00:44:49,000 --> 00:44:51,000 dan itu akan menyingkirkan segala sesuatu yang ada di sana. 842 00:44:51,000 --> 00:44:53,000 Tidak perlu menelepon gratis. 843 00:44:53,000 --> 00:44:56,000 >> Sekali lagi, saya telah memotong beberapa sudut, dan saya mohon maaf atas sejumlah masalah menugaskan 5 844 00:44:56,000 --> 00:45:00,000 mungkin di C, tetapi jika kita sekarang pergi ke depan dan menjalankan ini, 845 00:45:00,000 --> 00:45:02,000 Aku akan benar-benar menjalankan versi yang saya tulis di muka 846 00:45:02,000 --> 00:45:05,000 hanya agar aku tidak membuat kesalahan sintaksis apapun. 847 00:45:05,000 --> 00:45:08,000 Biarkan aku pergi ke depan dan menjalankan ejaan. Penggunaan adalah sama. 848 00:45:08,000 --> 00:45:12,000 Berikut adalah file kamus yang hanya berisi kata foo. 849 00:45:12,000 --> 00:45:15,000 Berikut adalah file teks yang hanya berisi foo bar. 850 00:45:15,000 --> 00:45:19,000 Mari kita periksa ejaan ini, sehingga ejaan, menggunakan file kamus pada file teks. 851 00:45:19,000 --> 00:45:21,000 Ada satu kata yang salah eja, bar, dan voila. 852 00:45:21,000 --> 00:45:23,000 Selesai dengan pset 5. 853 00:45:23,000 --> 00:45:30,000 Mari kita istirahat 5 menit di sini, dan kami akan datang kembali dan lebih pada PHP. 854 00:45:30,000 --> 00:45:32,000 Baiklah, kita kembali. 855 00:45:32,000 --> 00:45:34,000 Mari kita lakukan-membenci saya untuk sementara waktu. 856 00:45:34,000 --> 00:45:37,000 Mari kita sekarang benar-benar melihat apakah ini bukan positif 857 00:45:37,000 --> 00:45:39,000 benar-benar menerapkan hal ini di PHP. 858 00:45:39,000 --> 00:45:43,000 Memang, butuh waktu 45 detik untuk melaksanakan. 859 00:45:43,000 --> 00:45:45,000 >> Tapi mari kita lanjutkan sekarang dan menjalankan hal-hal. 860 00:45:45,000 --> 00:45:49,000 Biarkan aku pergi ke depan dan menjalankan versi C 861 00:45:49,000 --> 00:45:52,000 dari ejaan, dan kami akan menjalankannya pada salah satu file terbesar, 862 00:45:52,000 --> 00:45:54,000 yang merupakan King James Bible. 863 00:45:54,000 --> 00:45:57,000 Dan bahwa di sini adalah di-mari kita masuk ke folder C kami, 864 00:45:57,000 --> 00:46:01,000 ejaan pada King James tanggal 5. 865 00:46:01,000 --> 00:46:03,000 Banyak kata yang salah eja. 866 00:46:03,000 --> 00:46:06,000 Oke, jadi itu output Anda mungkin punya bahkan jika waktu yang sedikit berbeda, 867 00:46:06,000 --> 00:46:09,000 jika Anda mendapatkan semua yang bekerja dengan benar, sehingga secara total waktu untuk memeriksa ejaan 868 00:46:09,000 --> 00:46:13,000 Alkitab King James adalah .38 detik, sehingga cukup baik menggunakan implementasi tersebut. 869 00:46:13,000 --> 00:46:16,000 Sekarang biarkan aku pergi ke versi PHP, yang kita baru saja menulis. 870 00:46:16,000 --> 00:46:18,000 Biarkan saya jalankan ejaan pada King James. 871 00:46:18,000 --> 00:46:21,000 Whoops, mengabaikan kesalahan itu. Saya di direktori yang salah. 872 00:46:21,000 --> 00:46:24,000 Speller di King James tanggal 5. 873 00:46:46,000 --> 00:46:48,000 Hampir selesai. 874 00:46:48,000 --> 00:46:51,000 >> Oke, pengamat yang cerdik akan menyadari bahwa itu lebih dari 3 detik di sana. 875 00:46:51,000 --> 00:46:54,000 Itu adalah waktu yang berjalan benar. 876 00:46:54,000 --> 00:46:58,000 Ternyata bahwa dibutuhkan waktu untuk meludah banyak teks keluar 877 00:46:58,000 --> 00:47:00,000 karena buffer masalah, tapi cerita panjang pendek, 878 00:47:00,000 --> 00:47:04,000 itu 3,15 detik dari waktu mesin, CPU time, 879 00:47:04,000 --> 00:47:07,000 versus apa itu beberapa saat yang lalu? 880 00:47:07,000 --> 00:47:09,000 Seperti .3. 881 00:47:09,000 --> 00:47:11,000 Maksudku, itu urutan besarnya lebih lambat, jadi di mana adalah bahwa 882 00:47:11,000 --> 00:47:14,000 perlambatan konyol datang dari? 883 00:47:14,000 --> 00:47:17,000 Nah, seperti yang telah terjadi dengan sebagian besar keputusan desain yang kita buat 884 00:47:17,000 --> 00:47:21,000 di kelas selama 9 minggu terakhir hampir selalu ada tradeoff ini. 885 00:47:21,000 --> 00:47:24,000 Kadang-kadang hanya ruang antara, kadang-kadang antara ruang dan waktu, 886 00:47:24,000 --> 00:47:27,000 ruang, waktu dan usaha pengembangan, dan memang di sini, meskipun 887 00:47:27,000 --> 00:47:31,000 kami menyelamatkan sejumlah besar waktu, mungkin berpotensi 10-20-30 jam 888 00:47:31,000 --> 00:47:34,000 waktu pengembangan menerapkan spell checker 889 00:47:34,000 --> 00:47:36,000 oleh kambing itu hanya dalam 45 detik dengan bahasa ini 890 00:47:36,000 --> 00:47:40,000 harga yang kami bayar adalah bahwa itu adalah urutan besarnya lebih lambat sebagai hasilnya, 891 00:47:40,000 --> 00:47:43,000 dan ini umumnya terjadi dengan hampir semua bahasa ditafsirkan, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl atau orang lain dimana 893 00:47:46,000 --> 00:47:49,000 jika Anda akan menjalankannya melalui seorang penerjemah dan memilikinya membaca kode Anda 894 00:47:49,000 --> 00:47:52,000 baris demi baris, atas ke bawah, kiri ke kanan, 895 00:47:52,000 --> 00:47:55,000 bahwa perantara akan mengambil beberapa waktu sendiri, 896 00:47:55,000 --> 00:47:59,000 dan apa yang Anda rasakan di sini di 3 detik sebagai lawan .3 detik 897 00:47:59,000 --> 00:48:02,000 adalah kenyataan bahwa ada perantara ini yang harus benar-benar menginterpretasikan kode kita 898 00:48:02,000 --> 00:48:05,000 baris demi baris, dan Allah melarang jika Anda dalam lingkaran 899 00:48:05,000 --> 00:48:08,000 dengan file besar yang berisi ratusan ribu kata. 900 00:48:08,000 --> 00:48:11,000 >> Itu overhead akan menambah dan menambah dan menambah dan menambah. 901 00:48:11,000 --> 00:48:16,000 Untuk alat seperti ini mungkin bukan bahasa terbaik untuk menggunakan untuk melaksanakan 902 00:48:16,000 --> 00:48:20,000 spell checker jika kedekatan yang menarik bagi pengguna Anda dan untuk Anda. 903 00:48:20,000 --> 00:48:23,000 Tapi mewah yang kita miliki dalam beberapa saat adalah jika Anda 904 00:48:23,000 --> 00:48:27,000 menggunakan bahasa seperti PHP atau banyak bahasa ditafsirkan 905 00:48:27,000 --> 00:48:30,000 dalam konteks Web, dalam hal ini, Anda memiliki manfaat 906 00:48:30,000 --> 00:48:34,000 bahwa internet jauh lebih lambat dari kebanyakan komputer. 907 00:48:34,000 --> 00:48:38,000 Anda memiliki CPU GHz di komputer Anda, 2 GHz, bahkan mungkin lebih hari ini. 908 00:48:38,000 --> 00:48:41,000 Tetapi kenyataannya adalah di internet ada sejumlah tinggi latency 909 00:48:41,000 --> 00:48:45,000 dimana untuk browser untuk berbicara dengan server, meskipun kita lihat minggu lalu 910 00:48:45,000 --> 00:48:47,000 bahwa itu cukup cepat, setengah milidetik atau lebih, 911 00:48:47,000 --> 00:48:51,000 itu juga menambahkan sampai, dan jika Anda men-download hal-hal seperti gambar 912 00:48:51,000 --> 00:48:54,000 atau foto atau Facebook mendapatkan pesan instan melalui obrolan Facebook, 913 00:48:54,000 --> 00:48:57,000 GChat atau sejenisnya, semua round-trip kali 914 00:48:57,000 --> 00:49:00,000 antara browser dan mulai server untuk menambah, 915 00:49:00,000 --> 00:49:03,000 yang membuat pilihan tertentu Anda bahasa dalam banyak kasus 916 00:49:03,000 --> 00:49:07,000 tidak semua yang relevan, sehingga Anda baik-baik saja menggunakan bahasa yang sedikit lebih lambat 917 00:49:07,000 --> 00:49:10,000 seperti PHP atau Python atau Ruby 918 00:49:10,000 --> 00:49:13,000 tapi untuk yang ada upsides besar untuk Anda dan rekan Anda 919 00:49:13,000 --> 00:49:17,000 dan teman-teman Anda karena Anda dapat menerapkan hal-hal begitu, jauh lebih cepat. 920 00:49:17,000 --> 00:49:20,000 Dan selain itu, Anda memiliki risiko jauh lebih sedikit dari kelemahan keamanan tertentu. 921 00:49:20,000 --> 00:49:22,000 Tidak ada pointer di PHP. 922 00:49:22,000 --> 00:49:25,000 Tidak ada kesalahan seg bahwa Anda dengan mudah dapat menginduksi 923 00:49:25,000 --> 00:49:27,000 dengan cara yang sama Anda bisa di C. 924 00:49:27,000 --> 00:49:29,000 Dengan C Anda super dekat dengan perangkat keras. 925 00:49:29,000 --> 00:49:33,000 Dengan bahasa PHP dan mirip Anda semacam tingkat yang lebih tinggi, sehingga untuk berbicara, 926 00:49:33,000 --> 00:49:37,000 dengan banyak pertahanan antara Anda dan apa yang sebenarnya terjadi 927 00:49:37,000 --> 00:49:39,000 dalam mesin, dan itu hanya sebuah tradeoff. 928 00:49:39,000 --> 00:49:42,000 >> Kami telah sampai pada titik memiliki ini, lebih modern bahasa tingkat tinggi 929 00:49:42,000 --> 00:49:47,000 seperti PHP karena pelajaran dalam bahasa seperti PHP di C. 930 00:49:47,000 --> 00:49:50,000 Tapi jika Anda tidak mengerti apa yang telah terjadi di bawah tenda sepanjang waktu ini 931 00:49:50,000 --> 00:49:53,000 Anda pasti tidak dapat membuat keputusan desain yang tepat, 932 00:49:53,000 --> 00:49:56,000 dan tentu ketika datang untuk bekerja di tempat seperti Facebook atau Google 933 00:49:56,000 --> 00:49:59,000 atau tempat-tempat yang semakin bermain dengan set data besar 934 00:49:59,000 --> 00:50:01,000 bahkan jika Anda kembali dan jangan premed dan bekerja dengan MD beberapa 935 00:50:01,000 --> 00:50:04,000 pada beberapa data yang besar yang melibatkan pasien dan dokter 936 00:50:04,000 --> 00:50:08,000 dan seperti menggunakan alat yang tepat adalah sangat menarik 937 00:50:08,000 --> 00:50:11,000 karena jika analisis Anda dari beberapa kumpulan data mungkin mengambil detik, 938 00:50:11,000 --> 00:50:14,000 atau secara harfiah mungkin memakan waktu beberapa jam. 939 00:50:14,000 --> 00:50:17,000 Ini hanyalah satu contoh, tidak untuk menggagalkan Anda dengan usaha berapa banyak lagi 940 00:50:17,000 --> 00:50:21,000 itu di C tetapi untuk membantu Anda menghargai bahwa ketika Anda menerapkan sesuatu di C 941 00:50:21,000 --> 00:50:24,000 Anda benar-benar mengerti, atau dalam teori, benar-benar memahami 942 00:50:24,000 --> 00:50:28,000 bagaimana segala sesuatu atau harus bekerja, dan Anda memiliki kontrol hampir penuh 943 00:50:28,000 --> 00:50:31,000 atas apa yang terjadi di bawah kap mesin, dan dengan bahasa tingkat tinggi 944 00:50:31,000 --> 00:50:34,000 Anda harus melepaskan kontrol lebih kepada orang-orang yang menemukan mereka 945 00:50:34,000 --> 00:50:37,000 dan tunduk lebih untuk keputusan desain mereka dari Anda. 946 00:50:37,000 --> 00:50:41,000 Tetapi jika kita mengambil begitu saja bahwa kinerja 947 00:50:41,000 --> 00:50:44,000 tidak cukup penting di Web karena isu-isu lainnya, 948 00:50:44,000 --> 00:50:47,000 hanya kecepatan jaringan yang sedikit lebih lambat dari kecepatan CPU pula, 949 00:50:47,000 --> 00:50:50,000 sehingga kita bisa semacam mampu menggunakan bahasa sedikit lebih lambat 950 00:50:50,000 --> 00:50:55,000 jika upsides kita dapat mengembangkan hal-hal 10 kali lebih cepat atau bahkan lebih. 951 00:50:55,000 --> 00:50:57,000 >> Mari kita lihat bagaimana kita bisa mulai menggunakan ini. 952 00:50:57,000 --> 00:51:00,000 Biarkan aku pergi ke folder 953 00:51:00,000 --> 00:51:03,000 salah satu contoh saat ini disebut frosh.ims, 954 00:51:03,000 --> 00:51:06,000 dan ini benar-benar secara pribadi termotivasi oleh fakta bahwa hal pertama 955 00:51:06,000 --> 00:51:10,000 Saya menulis untuk Web tahun lalu setelah mengambil CS50 CS51 dan 956 00:51:10,000 --> 00:51:14,000 adalah sebuah website untuk program IM Frosh, mahasiswa olahraga intramural, 957 00:51:14,000 --> 00:51:16,000 yang pada saat ini adalah tahun yang cukup lalu bahwa pada saat 958 00:51:16,000 --> 00:51:19,000 tidak ada website untuk program ini, meskipun ada sebuah web, 959 00:51:19,000 --> 00:51:22,000 dan sebaliknya ada pengawas di Wigglesworth dimana jika Anda ingin 960 00:51:22,000 --> 00:51:26,000 untuk mendaftar untuk voli atau sepak bola atau apa pun yang Anda akan mengisi secarik kertas. 961 00:51:26,000 --> 00:51:28,000 Anda kemudian akan berjalan melintasi halaman. 962 00:51:28,000 --> 00:51:31,000 Anda kemudian akan mengetuk pintu mereka dan geser di pintu mereka atau tangan untuk pengawas 963 00:51:31,000 --> 00:51:34,000 secarik kertas dengan nama Anda di atasnya, apakah Anda ingin menjadi kapten tim, 964 00:51:34,000 --> 00:51:37,000 apa olahraga Anda ingin lakukan, dan apa asrama Anda masuk 965 00:51:37,000 --> 00:51:39,000 Itu adalah semacam cara sekolah tua dalam melakukan sesuatu, dan ini adalah perdana 966 00:51:39,000 --> 00:51:41,000 kesempatan untuk mengotomatisasi banyak proses ini. 967 00:51:41,000 --> 00:51:43,000 Anda hanya pergi ke situs web. Anda mengetik sesuatu masuk 968 00:51:43,000 --> 00:51:46,000 Anda mendapatkan email konfirmasi, dan boom, Anda sudah selesai. 969 00:51:46,000 --> 00:51:49,000 >> Ini adalah hal pertama yang saya lakukan, meskipun dalam bahasa yang disebut Pearl, 970 00:51:49,000 --> 00:51:52,000 tapi itu relatif mudah untuk dilakukan di PHP, dan ini adalah semacam perwakilan 971 00:51:52,000 --> 00:51:55,000 dari masalah yang Anda dapat mulai memecahkan ketika Anda dapat mengekspresikan diri 972 00:51:55,000 --> 00:51:58,000 pemrograman dan tidak harus bergantung pada hal-hal seperti situs Google 973 00:51:58,000 --> 00:52:01,000 atau Excel atau alat yang diberikan kepada Anda. 974 00:52:01,000 --> 00:52:03,000 Kalian sekarang memiliki kemampuan untuk melakukan hal-hal seperti ini. 975 00:52:03,000 --> 00:52:06,000 Ini adalah versi jelek super formulir, 976 00:52:06,000 --> 00:52:09,000 tetapi mari kita hanya menggunakannya untuk awal percakapan dimana hal ini 977 00:52:09,000 --> 00:52:12,000 kira-kira apa bentuk tampak seperti tahun yang lalu bagi kita 978 00:52:12,000 --> 00:52:14,000 untuk memungkinkan orang di Web untuk mendaftar Frosh IM. 979 00:52:14,000 --> 00:52:18,000 Kami meminta nama, kotak centang untuk apakah atau tidak mereka ingin menjadi kapten, 980 00:52:18,000 --> 00:52:21,000 laki-laki atau perempuan, dan kemudian apa yang mereka berada di asrama, 981 00:52:21,000 --> 00:52:23,000 dan kemudian mereka akan mengirimkan formulir ini. 982 00:52:23,000 --> 00:52:27,000 Mari kita melihat pertama di bawah kap pada HTML yang mewakili halaman web ini. 983 00:52:27,000 --> 00:52:31,000 Biarkan aku pergi ke froshims0, 984 00:52:31,000 --> 00:52:35,000 dan sebagai samping, untuk pset 7 saya mengambil untuk diberikan 985 00:52:35,000 --> 00:52:37,000 direktori dan folder yang saya meletakkan hal-hal masuk 986 00:52:37,000 --> 00:52:40,000 Kami akan memandu Anda melalui persis di mana barang-barang harus pergi pada alat, 987 00:52:40,000 --> 00:52:43,000 yang perintah mod Anda harus menjalankan, jadi jangan khawatir tentang semua 988 00:52:43,000 --> 00:52:46,000 rincian bodoh sinkronisasi dalam dari get-pergi di sini. 989 00:52:46,000 --> 00:52:49,000 >> Baiklah, inilah froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Biarkan saya scroll ke bawah, dan apa yang ingin tahu di sini, 991 00:52:52,000 --> 00:52:56,000 ini adalah file PHP, tapi apa di dalamnya, jelas? 992 00:52:56,000 --> 00:52:59,000 Ini banyak seluruh HTML, dan memang, PHP asal 993 00:52:59,000 --> 00:53:02,000 benar-benar adalah untuk menjadi bahasa web-sentris. 994 00:53:02,000 --> 00:53:04,000 Sesaat lalu kita menggunakannya untuk mengimplementasikan contoh bir, 995 00:53:04,000 --> 00:53:07,000 kondisi contoh, contoh halo, dan itu baik-baik saja. 996 00:53:07,000 --> 00:53:11,000 Anda dapat menggunakan PHP sebagai bahasa scripting 997 00:53:11,000 --> 00:53:15,000 di mana script benar-benar hanya nomenklatur yang diberikan kepada program cepat dan kotor 998 00:53:15,000 --> 00:53:19,000 atau sesuatu yang Anda menulis dalam bahasa yang ditulis atau lebih umumnya ditafsirkan. 999 00:53:19,000 --> 00:53:22,000 PHP super berguna untuk itu karena Anda telah melihat seberapa cepat 1000 00:53:22,000 --> 00:53:24,000 relatif kita dapat menyiapkan program di PHP. 1001 00:53:24,000 --> 00:53:27,000 Tapi itu benar-benar dirancang untuk digunakan untuk Web, 1002 00:53:27,000 --> 00:53:31,000 dan dirancang untuk Web dalam arti bahwa perhatikan di sini di bagian atas file 1003 00:53:31,000 --> 00:53:34,000 Saya mulai dengan 00:53:38,000 Lalu aku memiliki banyak komentar berguna, diberikan, tapi kemudian aku menutup modus PHP. 1005 00:53:38,000 --> 00:53:41,000 Tapi kemudian saya jatuh ke modus HTML. 1006 00:53:41,000 --> 00:53:45,000 >> Yang menarik dari PHP adalah meskipun file berakhiran. Php 1007 00:53:45,000 --> 00:53:48,000 itu umumnya dimaksudkan untuk menjadi co-bercampur dengan HTML, 1008 00:53:48,000 --> 00:53:50,000 beberapa kode PHP, HTML beberapa. 1009 00:53:50,000 --> 00:53:53,000 Dan kita akan melihat bahwa pada akhirnya kita dapat mulai menggoda mereka terpisah 1010 00:53:53,000 --> 00:53:56,000 dan tetap terpisah HTML kami dari PHP kami sama sekali, 1011 00:53:56,000 --> 00:53:59,000 tetapi asal-usul PHP benar-benar adalah untuk memberikan fleksibilitas ini, 1012 00:53:59,000 --> 00:54:02,000 bahwa jika Anda ingin beberapa HTML hanya menulis, dan itu akan 1013 00:54:02,000 --> 00:54:04,000 meludahkan identik ke browser. 1014 00:54:04,000 --> 00:54:07,000 Tapi jika Anda membutuhkan beberapa teknik pemrograman, 1015 00:54:07,000 --> 00:54:12,000 beberapa kode pemrograman, Anda juga dapat memasukkannya ke dalam file yang sama persis, seperti yang kita akan segera melihat. 1016 00:54:12,000 --> 00:54:14,000 Berikut HTML saya. 1017 00:54:14,000 --> 00:54:16,000 Aku punya judul ini untuk Frosh IM. 1018 00:54:16,000 --> 00:54:20,000 Aku punya tag tubuh yang telah mendapat beberapa CSS di atasnya untuk semua pusat di tengah, 1019 00:54:20,000 --> 00:54:23,000 dan kemudian turun di sini saya memiliki bentuk yang tampaknya akan disampaikan 1020 00:54:23,000 --> 00:54:27,000 ke file baru yang disebut register0.php, jadi kita akan melihat bahwa dalam sekejap. 1021 00:54:27,000 --> 00:54:31,000 Ini menggunakan metode yang disebut pos, yang kita akan kembali ke juga. 1022 00:54:31,000 --> 00:54:34,000 Lalu aku memiliki input beberapa bentuk, satu nama yang disebut, yang jenis teks, 1023 00:54:34,000 --> 00:54:37,000 yang namanya adalah kapten, yang jenis kotak centang, 1024 00:54:37,000 --> 00:54:40,000 dan ini, kami belum melihat itu sebelumnya, tapi itu tidak persis apa yang dikatakannya. 1025 00:54:40,000 --> 00:54:42,000 Anda akan mendapatkan kotak centang bukan kotak teks. 1026 00:54:42,000 --> 00:54:46,000 Di sini Anda memiliki tombol radio, yang merupakan salah satu dari tombol-tombol melingkar 1027 00:54:46,000 --> 00:54:48,000 bahwa Anda juga dapat memilih ini atau yang itu. 1028 00:54:48,000 --> 00:54:52,000 >> Perhatikan itu disengaja yang saya berikan kedua tombol radio nama gender. 1029 00:54:52,000 --> 00:54:55,000 Ini adalah bagaimana Anda mendapatkan mutual exclusion dimana Anda harus mengklik 1030 00:54:55,000 --> 00:54:58,000 baik ini atau yang itu, dan dengan mengklik yang lain 1031 00:54:58,000 --> 00:55:01,000 itu unchecks yang lain, sehingga Anda harus memberi mereka nama yang sama 1032 00:55:01,000 --> 00:55:03,000 jika Anda ingin mereka menjadi saling eksklusif seperti itu. 1033 00:55:03,000 --> 00:55:07,000 Dan kemudian untuk asrama, saya tidak berpikir kita pernah melihat ini, tapi itu adalah menu pilih, menu drop-down. 1034 00:55:07,000 --> 00:55:09,000 Tag untuk itu adalah pilih. 1035 00:55:09,000 --> 00:55:11,000 Anda kemudian memberikan menu drop-down nama, 1036 00:55:11,000 --> 00:55:13,000 dan kemudian Anda memiliki sejumlah besar pilihan ini. 1037 00:55:13,000 --> 00:55:16,000 Yang pertama, hanya untuk estetika, adalah string kosong. 1038 00:55:16,000 --> 00:55:20,000 Saya hanya ingin drop down menjadi kosong secara default, 1039 00:55:20,000 --> 00:55:22,000 dan kemudian ada Apley, Canaday, Grays, dan sebagainya. 1040 00:55:22,000 --> 00:55:24,000 Dan perhatikan dikotomi di sini. 1041 00:55:24,000 --> 00:55:27,000 Pilihan dalam menu drop down memiliki nilai, 1042 00:55:27,000 --> 00:55:30,000 tapi kemudian ia memiliki nama manusia-ramah, yang dalam contoh ini 1043 00:55:30,000 --> 00:55:33,000 adalah identik, tetapi jika kita benar-benar ingin menjadi anal kita bisa memiliki 1044 00:55:33,000 --> 00:55:36,000 nilai penurunan ini turun hanya menjadi versi singkat, 1045 00:55:36,000 --> 00:55:39,000 Abu-abu, tapi kami benar-benar bisa mengatakan Grays Balai bahwa manusia benar-benar melihat, 1046 00:55:39,000 --> 00:55:43,000 tapi itu tidak semua yang menarik, jadi aku hanya terus itu sederhana dan membuat mereka identik. 1047 00:55:43,000 --> 00:55:46,000 Kemudian turun di bawah kita memiliki tombol submit 1048 00:55:46,000 --> 00:55:49,000 yang telah kita lihat sebelumnya, tapi perhatikan aku hanya memberikannya sebuah kata yang berbeda. 1049 00:55:49,000 --> 00:55:53,000 Alih-alih CS50 pencarian saya berikan label "Daftar." 1050 00:55:53,000 --> 00:55:56,000 >> Hasil akhirnya adalah halaman web ini di sini, dan lagi, 1051 00:55:56,000 --> 00:56:00,000 di mana hal ini bisa diserahkan kepada? 1052 00:56:00,000 --> 00:56:04,000 Ini akan disampaikan kepada beberapa file, nilai atribut aksi, 1053 00:56:04,000 --> 00:56:07,000 yang register0.php. 1054 00:56:07,000 --> 00:56:09,000 Mari kita lihat apa yang sebenarnya terjadi di sini. 1055 00:56:09,000 --> 00:56:13,000 Biarkan aku pergi ke depan dan mengisi formulir ini, mengatakan David, 1056 00:56:13,000 --> 00:56:16,000 laki-laki, Matthews, dan kemudian aku akan mengatakan mendaftar. 1057 00:56:16,000 --> 00:56:18,000 Biarkan saya zoom out dan klik mendaftar. 1058 00:56:18,000 --> 00:56:22,000 Oke, jadi agak tidak berguna, tapi mari kita lihat apa yang sebenarnya terjadi. 1059 00:56:22,000 --> 00:56:26,000 Perhatikan bahwa URL telah berubah menjadi register0.php. 1060 00:56:26,000 --> 00:56:34,000 Apa anehnya absen dari URL, meskipun, meskipun kita hanya mengajukan formulir? 1061 00:56:34,000 --> 00:56:37,000 [Respon siswa tidak terdengar] 1062 00:56:37,000 --> 00:56:39,000 Oke, itu hanya menjadi pengguna Chrome ramah hari ini. 1063 00:56:39,000 --> 00:56:42,000 Itu benar-benar ada. Mereka hanya menyembunyikannya untuk menghemat ruang. 1064 00:56:42,000 --> 00:56:44,000 Tapi baik pikiran, pikiran yang baik. 1065 00:56:44,000 --> 00:56:46,000 Menjelang ujung URL, meskipun, apa yang hilang? Ya. 1066 00:56:46,000 --> 00:56:48,000 [Mahasiswa] The string query. 1067 00:56:48,000 --> 00:56:51,000 Query string, jadi ingat dari contoh sederhana kami pencarian Google. 1068 00:56:51,000 --> 00:56:54,000 Segera setelah saya klik tombol submit URL 1069 00:56:54,000 --> 00:57:00,000 membawa saya ke Google, tapi kemudian ada q =? ilmu komputer atau apa pun yang saya telah diketik masuk 1070 00:57:00,000 --> 00:57:04,000 Itu karena kami menggunakan metode get dengan contoh pencarian. 1071 00:57:04,000 --> 00:57:06,000 >> Kali ini kita menggunakan metode apa, bukan? 1072 00:57:06,000 --> 00:57:10,000 Posting, dan salah satu perbedaan langsung 1073 00:57:10,000 --> 00:57:14,000 antara mendapatkan dan posting adalah posting yang tidak menempatkan masukan pengguna dalam URL. 1074 00:57:14,000 --> 00:57:16,000 Ia menyembunyikan hal itu. Masih mengirimkannya. 1075 00:57:16,000 --> 00:57:19,000 Pada kenyataannya, apa yang kita lihat dalam browser di sini, seperti yang kita akan mengungkapkan dalam beberapa saat 1076 00:57:19,000 --> 00:57:22,000 dengan melihat register0, adalah aku hanya melihat isi 1077 00:57:22,000 --> 00:57:25,000 dari array yang diajukan dari browser ke server. 1078 00:57:25,000 --> 00:57:29,000 Tetapi URL tidak memiliki? Yang, tidak memiliki kata kunci 1079 00:57:29,000 --> 00:57:31,000 atau nilai-nilai di dalamnya, dan mengapa demikian? 1080 00:57:31,000 --> 00:57:35,000 Nah, posting memungkinkan Anda untuk tetap mengirimkan data dari formulir ke server, 1081 00:57:35,000 --> 00:57:38,000 tetapi tidak memasukkannya ke dalam URL, jadi apa jenis informasi adalah posting 1082 00:57:38,000 --> 00:57:41,000 sangat cocok untuk mungkin ketika Anda meminta pengguna untuk 1083 00:57:41,000 --> 00:57:44,000 ketik masukan ke form? 1084 00:57:44,000 --> 00:57:48,000 Sesuatu seperti password, sesuatu seperti apa lagi? 1085 00:57:48,000 --> 00:57:50,000 Nomor kartu kredit. 1086 00:57:50,000 --> 00:57:53,000 Apa pun yang agak sensitif Anda mungkin tidak ingin berakhir di URL 1087 00:57:53,000 --> 00:57:56,000 jika hanya karena itu berarti teman sekamar Anda atau anggota keluarga hanya bisa troll melalui 1088 00:57:56,000 --> 00:57:59,000 Anda sejarah internet dan kemudian benar-benar melihat password Anda, 1089 00:57:59,000 --> 00:58:02,000 harfiah melihat nomor kartu kredit Anda karena kebanyakan browser 1090 00:58:02,000 --> 00:58:05,000 ingat dalam sejarah apapun URL Anda sudah berada di, 1091 00:58:05,000 --> 00:58:09,000 jadi jika hanya karena itu akan menjadi ide yang buruk. 1092 00:58:09,000 --> 00:58:11,000 Menggunakan menyembunyikan posting yang detail dari pengguna. 1093 00:58:11,000 --> 00:58:14,000 >> Juga, bagaimana Anda meng-upload foto ke Facebook? 1094 00:58:14,000 --> 00:58:17,000 Nah, hanya 2 mekanisme Anda benar-benar dapat digunakan, 1095 00:58:17,000 --> 00:58:21,000 meskipun ada beberapa yang lebih misterius lainnya, adalah mendapatkan dan posting. 1096 00:58:21,000 --> 00:58:26,000 Bagaimana Anda mungkin meng-upload foto melalui URL? 1097 00:58:26,000 --> 00:58:28,000 Anda benar-benar bisa melakukannya. 1098 00:58:28,000 --> 00:58:30,000 Anda dapat mengambil JPEG atau bitmap atau GIF dan Anda dapat mewakili dalam heksadesimal 1099 00:58:30,000 --> 00:58:32,000 atau sesuatu yang disebut basis 64. 1100 00:58:32,000 --> 00:58:35,000 Alih-alih basis 16 menggunakan basis 64, yang pada dasarnya terlihat seperti 1101 00:58:35,000 --> 00:58:38,000 Karakter ASCII, dan Anda benar-benar dapat meng-upload foto melalui URL 1102 00:58:38,000 --> 00:58:41,000 setelah tanda tanya, tapi biasanya ada batas ukuran. 1103 00:58:41,000 --> 00:58:44,000 Kebanyakan browser memaksa URL menjadi tidak lebih dari 1.000 karakter, 1104 00:58:44,000 --> 00:58:47,000 mungkin 2.000 karakter atau sejenisnya, sehingga Anda tidak dapat meng-upload 1105 00:58:47,000 --> 00:58:50,000 10 MB Facebook foto. 1106 00:58:50,000 --> 00:58:54,000 Untuk itu Anda menggunakan pos juga, jadi untuk saat ini mendapatkan menempatkan parameter dalam URL, 1107 00:58:54,000 --> 00:58:57,000 yang bagus dan berguna kadang-kadang, tapi untuk sesuatu yang sensitif atau besar 1108 00:58:57,000 --> 00:58:59,000 posting adalah cara untuk pergi. 1109 00:58:59,000 --> 00:59:02,000 Apa yang sebenarnya register0 lakukan di sini? 1110 00:59:02,000 --> 00:59:05,000 Nah, jika saya membuka register0 pemberitahuan bahwa ini adalah halaman super sederhana, 1111 00:59:05,000 --> 00:59:09,000 tapi itu menunjukkan fakta bahwa saya bisa bersama-berbaur, untuk lebih baik atau lebih buruk, 1112 00:59:09,000 --> 00:59:12,000 HTML dengan PHP. 1113 00:59:12,000 --> 00:59:15,000 Ini seluruh file, kecuali untuk komentar di atas, adalah HTML 1114 00:59:15,000 --> 00:59:19,000 kecuali untuk orang ini di sini. 1115 00:59:19,000 --> 00:59:22,000 >> Perhatikan di tengah-tengah kode PHP saya, 1116 00:59:22,000 --> 00:59:26,000 di tengah-tengah HTML saya, saya memiliki semacam sementara 1117 00:59:26,000 --> 00:59:28,000 memasuki modus PHP. 1118 00:59:28,000 --> 00:59:31,000 Saya memanggil fungsi khusus yang disebut cetak r. 1119 00:59:31,000 --> 00:59:34,000 Ini berarti mencetak rekursif, dan apa yang dilakukannya itu rekursif mencetak 1120 00:59:34,000 --> 00:59:38,000 apapun variabel yang Anda serahkan, koma, keluar PHP modus. 1121 00:59:38,000 --> 00:59:40,000 Dan tag pre memberikan pra-diformat teks, 1122 00:59:40,000 --> 00:59:43,000 mono teks ruang sehingga setiap ruang Anda benar-benar melihatnya. 1123 00:59:43,000 --> 00:59:46,000 Itu tidak hilang. Apa posting? 1124 00:59:46,000 --> 00:59:48,000 Nah, apa yang menarik dan menarik tentang PHP 1125 00:59:48,000 --> 00:59:52,000 adalah bahwa setiap kali Anda mengirimkan formulir menggunakan get atau post 1126 00:59:52,000 --> 00:59:56,000 apa pun yang disampaikan kepada Anda oleh browser 1127 00:59:56,000 --> 01:00:00,000 PHP sendiri angka apa yang pasangan nilai kunci, 1128 01:00:00,000 --> 01:00:02,000 angka keluar jika ada tanda-tanda yang sama, angka tahu apakah ada tanda tanya. 1129 01:00:02,000 --> 01:00:07,000 Ia melakukan semua kerja keras untuk Anda, dan kemudian tangan Anda sebuah array asosiatif 1130 01:00:07,000 --> 01:00:10,000 mengandung segala sesuatu yang diketik pengguna ke dalam formulir. 1131 01:00:10,000 --> 01:00:12,000 Nah, bidang apa yang formulir ini miliki? 1132 01:00:12,000 --> 01:00:14,000 >> Itu 4 bidang. 1133 01:00:14,000 --> 01:00:16,000 Salah satunya adalah kolom teks yang disebut nama. 1134 01:00:16,000 --> 01:00:18,000 Salah satunya adalah kotak centang yang disebut kapten. 1135 01:00:18,000 --> 01:00:22,000 Salah satunya adalah tombol radio yang disebut gender, 1136 01:00:22,000 --> 01:00:24,000 dan satu adalah menu drop-down yang disebut asrama, 1137 01:00:24,000 --> 01:00:27,000 jadi perhatikan ketika saya mencetak rekursif 1138 01:00:27,000 --> 01:00:29,000 isi dari variabel khusus. 1139 01:00:29,000 --> 01:00:34,000 Ini adalah variabel global khusus yang disebut harfiah $ _POST, dalam semua topi. 1140 01:00:34,000 --> 01:00:39,000 Ini adalah variabel global PHP khusus yang hanya menciptakan untuk Anda 1141 01:00:39,000 --> 01:00:42,000 dan tangan Anda sehingga Anda dapat mengakses segalanya 1142 01:00:42,000 --> 01:00:45,000 yang disampaikan melalui bentuk oleh pengguna. 1143 01:00:45,000 --> 01:00:48,000 Dan dengan menelepon r cetak pada hal-Anda tidak akan melakukan hal ini dalam aplikasi normal. 1144 01:00:48,000 --> 01:00:50,000 Kami melakukan ini untuk melihat dalam variabel ini, 1145 01:00:50,000 --> 01:00:53,000 dan apa yang di dalamnya, baik, 4 kunci, 1146 01:00:53,000 --> 01:00:56,000 4 http parameter, sehingga untuk berbicara, 1147 01:00:56,000 --> 01:00:59,000 Nama, kapten, jenis kelamin, asrama, dan kemudian nilai-nilai bahwa pengguna 1148 01:00:59,000 --> 01:01:01,000 diketik dengan satu pengecualian. 1149 01:01:01,000 --> 01:01:03,000 Aku tipe D-A-V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Aku memeriksa kotak, meskipun, untuk laki-laki, yang tampaknya mengajukan nilai 1151 01:01:05,000 --> 01:01:07,000 hanya m menjadi ringkas. 1152 01:01:07,000 --> 01:01:10,000 >> Ketika saya memilih Matthews itulah nilai yang mendapat dipilih, 1153 01:01:10,000 --> 01:01:12,000 dan yang satu ini sedikit bodoh, tapi itu konvensi tersebut. 1154 01:01:12,000 --> 01:01:17,000 Ketika saya memeriksa kotak, nilai pada, "pada," diajukan untuk mendapat kotak centang. 1155 01:01:17,000 --> 01:01:21,000 Jika saya tidak memeriksa itu, tidak ada nilai akan dikirim apapun. 1156 01:01:21,000 --> 01:01:26,000 Ini hanya memberi kita wawasan ke dalam apa yang ada di dalamnya dari variabel global khusus, 1157 01:01:26,000 --> 01:01:29,000 dan itu begitu istimewa bahwa itu disebut variabel global super. 1158 01:01:29,000 --> 01:01:33,000 Itu ada di mana-mana untuk Anda dalam kode Anda sehingga Anda benar-benar dapat mengaksesnya. 1159 01:01:33,000 --> 01:01:36,000 Ini bukan yang menarik, jadi mari kita benar-benar menggunakan global Super 1160 01:01:36,000 --> 01:01:38,000 dan benar-benar mencoba untuk mendaftarkan seseorang. 1161 01:01:38,000 --> 01:01:41,000 Pada froshims1 Aku akan membuat satu perubahan. 1162 01:01:41,000 --> 01:01:44,000 Saya mengubah tindakan menjadi register1.php, 1163 01:01:44,000 --> 01:01:46,000 dan aku melakukan satu hal lainnya. 1164 01:01:46,000 --> 01:01:48,000 Aku agak malu oleh kualitas halaman web saya di sana. 1165 01:01:48,000 --> 01:01:52,000 Ini cukup mengerikan, jujur, jadi ternyata 1166 01:01:52,000 --> 01:01:56,000 yang dapat Anda gunakan dengan sangat mudah di Web 1167 01:01:56,000 --> 01:01:59,000 orang lain kode JavaScript, orang lain CSS 1168 01:01:59,000 --> 01:02:02,000 bahwa mereka telah menulis dan open source dan tersedia sebagai perpustakaan, 1169 01:02:02,000 --> 01:02:06,000 sehingga untuk berbicara, dan misalnya, di sini saya menggunakan perpustakaan tersedia secara bebas, 1170 01:02:06,000 --> 01:02:08,000 sekelompok kode yang orang lain menulis. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter terjadi untuk menulis kode ini, dan itu disebut perpustakaan bootstrap, 1172 01:02:11,000 --> 01:02:15,000 dan itu hanya sekelompok style sheet CSS, sekelompok. file css 1173 01:02:15,000 --> 01:02:19,000 bahwa orang lain menulis dan menemukan cara untuk mendapatkan semuanya bagus dan cantik 1174 01:02:19,000 --> 01:02:22,000 sehingga orang-orang seperti kita bisa khawatir sedikit kurang tentang estetika dan fokus lebih 1175 01:02:22,000 --> 01:02:24,000 pada logika dan pemrograman yang sebenarnya. 1176 01:02:24,000 --> 01:02:30,000 Dengan menghubungkan dalam dengan tag, yang merupakan tag yang sama saya gunakan untuk ingat styles3.css sebelumnya, 1177 01:02:30,000 --> 01:02:34,000 Saya sekarang memiliki akses ke file bernama bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min hanya berarti mereka telah minified dan mereka telah membebaskan semua ruang putih dan sebagainya 1179 01:02:37,000 --> 01:02:40,000 hanya untuk memastikan mereka tidak mengirimkan saya byte lagi daripada yang saya benar-benar membutuhkan. 1180 01:02:40,000 --> 01:02:45,000 Tapi di sana adalah sejumlah besar CSS, jadi jika sekarang saya membuka versi 1 dari Frosh IM 1181 01:02:45,000 --> 01:02:49,000 melihat bahwa file saya pasti cantik. 1182 01:02:49,000 --> 01:02:54,000 Sekarang itu masih hanya hitam dan putih, tetapi perhatikan bahwa dengan hanya menggunakan lembar gaya mereka 1183 01:02:54,000 --> 01:02:58,000 dan menggunakan fitur tertentu pada formulir saya itu tidak luar biasa, 1184 01:02:58,000 --> 01:03:01,000 tapi itu pasti lebih bersih daripada sebelumnya, dan proyektor tidak melakukannya keadilan. 1185 01:03:01,000 --> 01:03:05,000 Ada garis-garis abu-abu kecil di sekitar tombol dan sekitar kolom teks di sini, 1186 01:03:05,000 --> 01:03:07,000 tapi itu pasti lebih bersih daripada sebelumnya. 1187 01:03:07,000 --> 01:03:09,000 >> Sekarang, dalam keadilan, saya harus mengubah markup saya sedikit. 1188 01:03:09,000 --> 01:03:12,000 Ini adalah versi 1, dan melihat bahwa saya telah menggunakan tag baru beberapa, 1189 01:03:12,000 --> 01:03:17,000 dan jujur, aku tidak tahu bagaimana melakukan ini sampai saya membaca dokumentasi 1190 01:03:17,000 --> 01:03:20,000 untuk perpustakaan bootstrap Twitter, dan mereka mengatakan kepada saya jika Anda ingin menggunakan perpustakaan kami 1191 01:03:20,000 --> 01:03:23,000 menggunakan elemen fieldset dalam formulir Anda, 1192 01:03:23,000 --> 01:03:27,000 menempatkan kata yang Anda ingin menunjukkan sebelah dalam bidang tag label, 1193 01:03:27,000 --> 01:03:30,000 kemudian memberikan masukan nama Anda, seperti sebelumnya, 1194 01:03:30,000 --> 01:03:34,000 dan kemudian untuk kotak centang, anda tidak hanya membungkusnya dalam elemen label, 1195 01:03:34,000 --> 01:03:36,000 Anda menggunakan sesuatu yang disebut kelas, jadi kami belum melihat ini sebelumnya, 1196 01:03:36,000 --> 01:03:39,000 tetapi Anda akan melihat ini di salah satu celana pendek pset 7 itu. 1197 01:03:39,000 --> 01:03:43,000 Sebuah kelas di CSS memungkinkan Anda melakukan sesuatu yang sangat mirip dengan ID, 1198 01:03:43,000 --> 01:03:46,000 tapi sebelum ketika kita memiliki ID dengan simbol # 1199 01:03:46,000 --> 01:03:48,000 itu untuk satu dan hanya satu elemen. 1200 01:03:48,000 --> 01:03:51,000 Apa yang baik tentang kelas adalah bahwa beberapa elemen dapat memiliki kelas yang sama 1201 01:03:51,000 --> 01:03:54,000 atau hal-hal CSS yang sama diterapkan untuk itu. 1202 01:03:54,000 --> 01:03:57,000 >> Tapi sekali lagi, lebih pada mereka dalam jangka pendek, dan sisanya dari ini hanya copy dan paste 1203 01:03:57,000 --> 01:04:00,000 dari dokumentasi mereka di mana saya telah menambahkan label di sana-sini. 1204 01:04:00,000 --> 01:04:03,000 Dan pada akhirnya, karena saya telah menyertakan tag link di atas, 1205 01:04:03,000 --> 01:04:06,000 semuanya terlihat cantik otomatis 1206 01:04:06,000 --> 01:04:10,000 dengan hanya memiliki mark up halaman saya dengan cara yang 1207 01:04:10,000 --> 01:04:12,000 Twitter diharapkan, dan ada berbagai cara 1208 01:04:12,000 --> 01:04:14,000 melakukan hal ini, dan ini memang sangat tepat. 1209 01:04:14,000 --> 01:04:17,000 Pada titik ini dalam semester, seperti yang Anda akan melihat di spec pset 7 ini, 1210 01:04:17,000 --> 01:04:20,000 Googling sekitar, membaca di perpustakaan, menggunakan orang lain CSS 1211 01:04:20,000 --> 01:04:23,000 dan JavaScript untuk memecahkan masalah tambahan 1212 01:04:23,000 --> 01:04:26,000 untuk sejumlah masalah sendiri tentu didorong dan jalan 1213 01:04:26,000 --> 01:04:29,000 Web dibangun hari ini, dengan berdiri di atas bahu orang lain 1214 01:04:29,000 --> 01:04:32,000 sehingga Anda dapat benar-benar fokus pada masalah baru dan menarik. 1215 01:04:32,000 --> 01:04:34,000 Tapi mari kita sekarang fokus pada, sekali lagi, logika. 1216 01:04:34,000 --> 01:04:38,000 >> Itu jalan memutar cepat pada estetika hanya untuk menunjukkan arah di mana Anda dapat pergi. 1217 01:04:38,000 --> 01:04:40,000 Aku akan kembali ke yang jelek satu untuk sekarang hanya karena 1218 01:04:40,000 --> 01:04:44,000 tidak ada gangguan dengan barang-barang Twitter, dan biarkan aku pergi ke depan dan membuka 1219 01:04:44,000 --> 01:04:51,000 froshims2, yang, sekali lagi, hanya berbeda dalam register2.php, tindakan, 1220 01:04:51,000 --> 01:04:55,000 dan mari kita lihat apa efeknya di sini. 1221 01:04:55,000 --> 01:04:57,000 Biarkan aku pergi ke depan dan ketik di David. 1222 01:04:57,000 --> 01:04:59,000 Saya tidak akan menjadi kapten saat ini. 1223 01:04:59,000 --> 01:05:01,000 Aku akan mengatakan laki-laki, Matthews, mendaftar. 1224 01:05:01,000 --> 01:05:05,000 Sialan. Oke, itu sebuah sekrup di bagian saya. 1225 01:05:05,000 --> 01:05:07,000 Stand by. 1226 01:05:07,000 --> 01:05:17,000 Register2, baris 22, jika kosong atau-maaf. 1227 01:05:17,000 --> 01:05:19,000 Mari kita ulang. 1228 01:05:19,000 --> 01:05:22,000 Oke, setelah mengirimkan formulir ini apa yang baru saja terjadi? 1229 01:05:22,000 --> 01:05:25,000 Saya mengetik David, diperiksa pria, diklik Matthews, mendaftar. 1230 01:05:25,000 --> 01:05:27,000 Anda terdaftar. (Yah, tidak benar-benar.) 1231 01:05:27,000 --> 01:05:32,000 Ini jelas merupakan langkah lebih hanya mencetak isi dari beberapa variabel, 1232 01:05:32,000 --> 01:05:34,000 tapi apa yang benar-benar melakukan file ini? 1233 01:05:34,000 --> 01:05:37,000 Dalam register2.php 1234 01:05:37,000 --> 01:05:40,000 melihat bahwa saya memiliki beberapa kode baru. 1235 01:05:40,000 --> 01:05:44,000 Dalam tag tubuh saya, saya memiliki dasarnya jika lain membangun, 1236 01:05:44,000 --> 01:05:47,000 tapi karena aku co-berbaur ini dengan beberapa HTML 1237 01:05:47,000 --> 01:05:51,000 Aku harus masuk dan keluar dari mode PHP bolak-balik, jadi mari kita lihat apa yang saya lakukan. 1238 01:05:51,000 --> 01:05:55,000 >> Pada baris pertama di sini saya katakan jika itu terjadi 1239 01:05:55,000 --> 01:06:00,000 bahwa pos super global kosong untuk kunci nama, 1240 01:06:00,000 --> 01:06:04,000 jadi dengan kata lain, jika pengguna tidak memberikan nilai untuk nama dalam bentuk, 1241 01:06:04,000 --> 01:06:07,000 kemudian kosong akan kembali benar karena nilai kosong. 1242 01:06:07,000 --> 01:06:11,000 Atau-perhatikan vertikal bar-jika gender kosong 1243 01:06:11,000 --> 01:06:15,000 dalam hal ini global yang super khusus, yang, sekali lagi, merupakan isi formulir, 1244 01:06:15,000 --> 01:06:19,000 atau asrama kosong, maka aku akan pergi ke depan dan berteriak pada pengguna. 1245 01:06:19,000 --> 01:06:22,000 Bagaimana? Nah, perhatikan aku akan mengatakan Anda harus mencantumkan nama, jenis kelamin, dan asrama. 1246 01:06:22,000 --> 01:06:24,000 Mari kita benar-benar menimbulkan kesalahan itu. 1247 01:06:24,000 --> 01:06:27,000 Biarkan aku pergi kembali ke bentuk saya. Mari saya ulang untuk membersihkannya. 1248 01:06:27,000 --> 01:06:30,000 Dan aku hanya akan memberi mereka David, dan mereka tidak perlu tahu di mana aku tinggal. 1249 01:06:30,000 --> 01:06:33,000 Daftar. Ternyata saya harus memberitahu mereka di mana saya tinggal. 1250 01:06:33,000 --> 01:06:35,000 Anda harus mencantumkan nama, jenis kelamin, dan asrama. Kembali. 1251 01:06:35,000 --> 01:06:39,000 >> Dan saya bisa klik untuk kembali ke bentuk itu, tapi kenapa begitu? 1252 01:06:39,000 --> 01:06:43,000 Nah, dalam kasus bahwa nama itu tidak kosong, tapi gender, dan asrama itu, 1253 01:06:43,000 --> 01:06:47,000 jadi ini seluruh ekspresi dievaluasi ke true, dan meskipun sintaks yang sedikit baru, 1254 01:06:47,000 --> 01:06:51,000 lagi, kita memasuki modus PHP, akrab jika pernyataan, 1255 01:06:51,000 --> 01:06:54,000 tetapi bagian baru di sini hanya usus ini, dan saya telah mengacaukan dengan menghilangkan kurung 1256 01:06:54,000 --> 01:06:57,000 oleh kecelakaan, tetapi perhatikan usus besar, dan itu berarti 1257 01:06:57,000 --> 01:07:00,000 meskipun kita sedang keluar semua modus PHP 1258 01:07:00,000 --> 01:07:03,000 yang mengikuti harus meludahkan verbatim ke browser 1259 01:07:03,000 --> 01:07:07,000 sampai Anda melihat blok yang lain, seperti yang kita lakukan di sini, 1260 01:07:07,000 --> 01:07:10,000 dalam hal ini Anda malah harus meludah keluar ini 1261 01:07:10,000 --> 01:07:13,000 sampai Anda melihat endif, sehingga beberapa sintaks yang sedikit baru 1262 01:07:13,000 --> 01:07:16,000 yang memungkinkan saya untuk beralih antara HTML dan PHP. 1263 01:07:16,000 --> 01:07:19,000 Kita dapat membersihkan ini akhirnya, tetapi untuk sekarang, 1264 01:07:19,000 --> 01:07:22,000 itu semacam cara menarik kesalahan memeriksa formulir. 1265 01:07:22,000 --> 01:07:25,000 >> Sekarang, saya mengatakan Anda tidak benar-benar terdaftar karena jelas kami telah melakukan apa-apa kecuali data, 1266 01:07:25,000 --> 01:07:28,000 jadi mari kita benar-benar mencoba untuk melakukan sesuatu yang keren. 1267 01:07:28,000 --> 01:07:33,000 Pada froshims3 satunya perbedaan adalah aku akan tunduk register3, 1268 01:07:33,000 --> 01:07:35,000 sehingga HTML yang ada adalah sama. 1269 01:07:35,000 --> 01:07:38,000 Pada register3 melihat ini. 1270 01:07:38,000 --> 01:07:40,000 Ini adalah jenis seksi. 1271 01:07:40,000 --> 01:07:44,000 Di bagian atas saya menggunakan pernyataan membutuhkan, jadi ini seperti # include. 1272 01:07:44,000 --> 01:07:46,000 Kali ini bukan stdio.h atau sesuatu seperti itu. 1273 01:07:46,000 --> 01:07:50,000 Ini adalah perpustakaan PHP, dan yang satu ini disebut PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Bagaimana saya tahu untuk menyertakan justru string yang dikutip? 1275 01:07:53,000 --> 01:07:56,000 Saya membacanya dalam dokumentasi, jadi ketika mereka mengatakan kepada saya menempatkan ini di bagian atas file 1276 01:07:56,000 --> 01:08:00,000 jika Anda ingin menggunakan sebuah perpustakaan khusus yang disebut PHPMailer yang melakukan apa yang dikatakannya. 1277 01:08:00,000 --> 01:08:03,000 Hal ini memungkinkan Anda untuk mengirim email melalui PHP. 1278 01:08:03,000 --> 01:08:05,000 Sekarang mari kita gulir turun lebih lanjut. 1279 01:08:05,000 --> 01:08:08,000 >> Perhatikan untuk memulai aku dalam mode PHP ini sepanjang waktu, 1280 01:08:08,000 --> 01:08:11,000 jadi sekarang perhatikan di sini setelah mengimpor perpustakaan itu, 1281 01:08:11,000 --> 01:08:13,000  sehingga untuk berbicara, saya melakukan beberapa pemeriksaan. 1282 01:08:13,000 --> 01:08:16,000 Jika itu terjadi bahwa nama tidak kosong 1283 01:08:16,000 --> 01:08:19,000 dan jenis kelamin tidak kosong-perhatikan tanda seru- 1284 01:08:19,000 --> 01:08:24,000 dan asrama tidak kosong, maka pengguna telah logis mengisi formulir, setidaknya cukup. 1285 01:08:24,000 --> 01:08:28,000 Saya tidak peduli jika mereka kapten atau tidak. Aku hanya perlu nama, jenis kelamin, dan asrama. 1286 01:08:28,000 --> 01:08:31,000 Jika mereka telah mengisi mereka sehingga tidak ada bidang-bidang yang kosong 1287 01:08:31,000 --> 01:08:33,000 ini sedikit sintaks baru. 1288 01:08:33,000 --> 01:08:36,000 PHP, sebagai samping, adalah bahasa pemrograman berorientasi obyek 1289 01:08:36,000 --> 01:08:39,000 yang sebagian dari kalian mungkin ingat dari APCS atau sejenisnya. 1290 01:08:39,000 --> 01:08:42,000 Untuk saat ini, jika asing, hanya tahu bahwa untuk menggunakan perpustakaan ini 1291 01:08:42,000 --> 01:08:45,000 Anda harus menulis baris kode seperti ini menggunakan kata kunci baru, 1292 01:08:45,000 --> 01:08:47,000 harfiah kata kunci baru yang disebut baru. 1293 01:08:47,000 --> 01:08:50,000 Tapi lebih dari itu, kami memiliki beberapa sintaks akrab. 1294 01:08:50,000 --> 01:08:54,000 Ini operator panah, yang mirip dengan apa yang kita digunakan untuk structs dalam konteks pointer. 1295 01:08:54,000 --> 01:08:57,000 Untuk saat ini PHP tidak memiliki pointer, 1296 01:08:57,000 --> 01:09:01,000 tapi tahu sekarang bahwa dalam variabel email 1297 01:09:01,000 --> 01:09:05,000 pada dasarnya jenis pointer ke perpustakaan khusus 1298 01:09:05,000 --> 01:09:08,000 bahwa orang lain menulis, dan jika saya ingin mengakses fungsi tertentu 1299 01:09:08,000 --> 01:09:12,000 dalam perpustakaan yang saya lakukan, seperti di C, gunakan operator panah, 1300 01:09:12,000 --> 01:09:14,000 meskipun hal ini tidak benar-benar pointer. 1301 01:09:14,000 --> 01:09:16,000 Ini semacam versi sendiri PHP daripadanya. 1302 01:09:16,000 --> 01:09:20,000 Ini berarti pergi ke perpustakaan dan memanggil fungsi IsSMTP. 1303 01:09:20,000 --> 01:09:23,000 SMTP, recall, dari Laskar kami Net mengacu pada email, 1304 01:09:23,000 --> 01:09:28,000 dan itu hanya berarti menggunakan server email untuk Frosh IM pendaftaran. 1305 01:09:28,000 --> 01:09:30,000 >> Apa host yang ingin saya gunakan? 1306 01:09:30,000 --> 01:09:34,000 Nah, Harvard, jika Anda Google sekitar, memiliki server email yang disebut smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Jika Anda bermain bersama di rumah atau Anda tinggal di jaringan Comcast 1308 01:09:37,000 --> 01:09:40,000 mungkin sesuatu seperti smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 Ini benar-benar tergantung pada tempat Anda tinggal dan siapa ISP Anda. 1310 01:09:43,000 --> 01:09:47,000 Setelah itu aku akan mengatur saya dari alamat sewenang-wenang menjadi jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Saya kemudian akan mengatur untuk mengatasi menjadi jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 Satu-satunya cara saya tahu bahwa fungsi-fungsi yang disebut SetFrom dan AddAddress 1313 01:09:55,000 --> 01:09:57,000 adalah, sekali lagi, saya membaca dokumentasi. 1314 01:09:57,000 --> 01:09:59,000 Ini bukan semacam ajaib diketahui semua programmer. 1315 01:09:59,000 --> 01:10:02,000 Lalu aku menetapkan tunduk "pendaftaran." 1316 01:10:02,000 --> 01:10:07,000 Dan sekarang baris ini agak jelek karena apa dot operator berarti di PHP? 1317 01:10:07,000 --> 01:10:09,000 Ada yang tahu? 1318 01:10:09,000 --> 01:10:11,000 Menggabungkan. 1319 01:10:11,000 --> 01:10:14,000 Dalam C itu adalah rasa sakit di leher untuk menggabungkan 2 string bersama-sama. 1320 01:10:14,000 --> 01:10:17,000 Anda harus berurusan dengan malloc atau realloc atau semua dari hal-hal yang 1321 01:10:17,000 --> 01:10:20,000 hanya untuk memperpanjang panjang string. 1322 01:10:20,000 --> 01:10:22,000 Dalam PHP, dalam JavaScript dan bahasa lainnya 1323 01:10:22,000 --> 01:10:24,000 Anda biasanya dapat melakukan ini dengan satu karakter. 1324 01:10:24,000 --> 01:10:28,000 Dalam hal ini, titik berarti mengambil string ini di sini 1325 01:10:28,000 --> 01:10:30,000 dan menambahkan untuk itu string ini. 1326 01:10:30,000 --> 01:10:32,000 >> Oh, dan omong-omong, harus menambahkannya string ini, 1327 01:10:32,000 --> 01:10:34,000 yang akan terjadi di dalam variabel itu global yang super. 1328 01:10:34,000 --> 01:10:37,000 Kemudian tambahkan untuk itu baris baru, sehingga semua titik hanya berarti 1329 01:10:37,000 --> 01:10:39,000 terus membuat string yang lebih besar dan lebih besar dan lebih besar, 1330 01:10:39,000 --> 01:10:43,000 dan Anda tidak perlu peduli sama sekali tentang malloc atau sejenisnya dalam bahasa seperti ini, 1331 01:10:43,000 --> 01:10:46,000 dan ada cara lain untuk melakukan hal ini, tapi ini adalah salah satu yang tercepat 1332 01:10:46,000 --> 01:10:48,000 cara untuk berbaring keluar. 1333 01:10:48,000 --> 01:10:50,000 Apa ini lakukan? 1334 01:10:50,000 --> 01:10:55,000 Ini menciptakan sebuah badan email yang akan mengatakan Nama: Kapten: Kelamin: Dorm: 1335 01:10:55,000 --> 01:10:58,000 semua pada baris yang terpisah, dan kemudian terakhir, 1336 01:10:58,000 --> 01:11:00,000 satu baris kode, dan aku akan mengabaikan ini untuk saat ini. 1337 01:11:00,000 --> 01:11:02,000 Jika == false hanya berarti jika sesuatu yang tidak beres, 1338 01:11:02,000 --> 01:11:04,000 tapi keajaiban terjadi di sini. 1339 01:11:04,000 --> 01:11:08,000 Mail kirim berarti mengirim email ini. 1340 01:11:08,000 --> 01:11:10,000 Mari kita lihat apa hasil bersih adalah. 1341 01:11:10,000 --> 01:11:13,000 Di bagian bawah file, perhatikan itu akan mengatakan Anda benar-benar terdaftar 1342 01:11:13,000 --> 01:11:15,000 jika saya mendapatkan yang jauh. 1343 01:11:15,000 --> 01:11:18,000 Jika, meskipun, pengguna sekrup atas, perhatikan bahwa kita memulai ini 1344 01:11:18,000 --> 01:11:21,000 jika kondisi di sini, jika tidak kosong dan tidak kosong 1345 01:11:21,000 --> 01:11:24,000 dan tidak mengosongkan kita mengirim surat. 1346 01:11:24,000 --> 01:11:27,000 Kalau tidak kita akan mengirimkan baris kode, 1347 01:11:27,000 --> 01:11:30,000 yang akan memiliki efek, seperti yang akan Anda lihat dalam pset 7, untuk mengarahkan pengguna 1348 01:11:30,000 --> 01:11:35,000 kembali ke tempat mereka datang, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Semoga, sebaliknya ini akan menjadi demo paling mengecewakan saat ini. 1350 01:11:38,000 --> 01:11:40,000 Di sini kita pergi. 1351 01:11:40,000 --> 01:11:42,000 Mari saya membuka inbox email saya untuk jharvard di Gmail. 1352 01:11:42,000 --> 01:11:44,000 Tidak ada email sekarang. Baiklah. 1353 01:11:44,000 --> 01:11:53,000 Sekarang biarkan aku membuka froshims3, yang merupakan contoh ketiga dan terakhir kita akan melihat di sini. 1354 01:11:53,000 --> 01:11:55,000 Oke, di sini kita pergi. 1355 01:11:55,000 --> 01:12:00,000 Nate, dia akan menjadi kapten, laki-laki, dari, katakanlah, Apley. 1356 01:12:00,000 --> 01:12:04,000 Daftar. Oke, Anda benar-benar terdaftar. 1357 01:12:04,000 --> 01:12:07,000 Sekarang jika saya gulir ke email saya, oh, Tuhan. 1358 01:12:07,000 --> 01:12:09,000 Saya baru saja dinamis mengirim email di Web. 1359 01:12:09,000 --> 01:12:11,000 >> Mari kita tinggalkan pada catatan. 1360 01:12:11,000 --> 01:12:16,000 Sebuah video yang datang untuk kuliah kita tidak terjawab. Sampai jumpa minggu depan. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]