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] [Universiti Harvard] 3 00:00:04,000 --> 00:00:07,000 [Ini adalah CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Selamat kembali. 5 00:00:09,000 --> 00:00:11,000 Ini adalah CS50, dan ini adalah permulaan 8 minggu. 6 00:00:11,000 --> 00:00:14,000 Beberapa peluang minggu ini, 7 00:00:14,000 --> 00:00:17,000 di kalangan mereka ini bercakap di sini, di mana sesetengah makanan akan dihidangkan. 8 00:00:17,000 --> 00:00:20,000 Untuk maklumat lanjut lihat slaid yang berada dalam talian. 9 00:00:20,000 --> 00:00:24,000 Dan juga satu lagi acara minggu ini oleh Thomas Carriero kita sendiri. 10 00:00:24,000 --> 00:00:27,000 Beliau adalah salah satu daripada felo bekas CS50 pengajaran kepala yang kini berada di Dropbox, 11 00:00:27,000 --> 00:00:29,000 dan dia lelaki yang ketagih kita dengan anda tahu apa, 12 00:00:29,000 --> 00:00:36,000 jadi jika anda mahu lebih kepala itu ceramah mereka petang ini untuk Dropbox dan banyak lagi. 13 00:00:36,000 --> 00:00:38,000 CS50 makan tengah hari Jumaat ini. 14 00:00:38,000 --> 00:00:41,000 Adakah menyertai kami jika anda mampu, 1:15, seperti biasa, di Bomba dan Ais. 15 00:00:41,000 --> 00:00:45,000 >> Dan sekarang kita menyelam ke dalam sesuatu yang dipanggil Seminar. 16 00:00:45,000 --> 00:00:49,000 Seminar CS50 kami, ingat, ini kelas pilihan yang diketuai oleh felo pengajaran 17 00:00:49,000 --> 00:00:51,000 kursus pembantu dan rakan-rakan kursus, 18 00:00:51,000 --> 00:00:55,000 orang dari kumpulan di kampus dipanggil ABCD, yang merupakan kumpulan 19 00:00:55,000 --> 00:00:58,000 technophiles di kampus, serta kumpulan yang dipanggil HCS, 20 00:00:58,000 --> 00:01:02,000 Persatuan Harvard Komputer, mahasiswa yang sama berminat dalam pengkomputeran. 21 00:01:02,000 --> 00:01:08,000 Jadual seminar tahun ini termasuk seminar mengenai Android dan IOS dan JavaScript 22 00:01:08,000 --> 00:01:13,000 dan PHP, Unix, Vim, dan banyak lagi, jadi sedar bahawa seminar ini akan datang. 23 00:01:13,000 --> 00:01:16,000 Jika anda ingin RSVP untuk mana-mana mereka pergi ke URL bahawa terdapat. 24 00:01:16,000 --> 00:01:20,000 Kami kemudian akan posting di laman web kursus masa dan tempat apabila mereka dimuktamadkan. 25 00:01:20,000 --> 00:01:26,000 Tetapi tahu bernilai ada 5 tahun seminar terdahulu boleh didapati dalam talian, 26 00:01:26,000 --> 00:01:29,000 ramai yang masih sangat banyak semasa dari segi teknologi anda mungkin 27 00:01:29,000 --> 00:01:36,000 mahu bermain dengan untuk projek akhir anda, jadi kepala di sana untuk beberapa video yang tersedia daripadanya. 28 00:01:36,000 --> 00:01:39,000 >> CSS, anda yang biasa dengan CSS sudah, 29 00:01:39,000 --> 00:01:42,000 apakah ia secara ringkas? 30 00:01:42,000 --> 00:01:45,000 Apakah CSS? 31 00:01:45,000 --> 00:01:48,000 Ia melata style sheet, dan apakah itu bermakna? 32 00:01:48,000 --> 00:01:53,000 Apakah yang lakukan untuk kita, CSS? 33 00:01:53,000 --> 00:01:57,000 Baiklah, mari kita memanaskan dengan satu yang lebih mudah, HTML, bahasa tokokan hiperteks. 34 00:01:57,000 --> 00:02:01,000 Apakah yang lakukan untuk kita? 35 00:02:01,000 --> 00:02:04,000 Sesiapa di semua? 36 00:02:04,000 --> 00:02:07,000 Ia semakin benar-benar janggal bertanya soalan-soalan ini. 37 00:02:07,000 --> 00:02:11,000 HTML, bahasa tokokan hiperteks. 38 00:02:11,000 --> 00:02:14,000 Ya? Tidak? 39 00:02:14,000 --> 00:02:17,000 [Sambutan pelajar didengar] 40 00:02:17,000 --> 00:02:20,000 Okay, baik, ia membolehkan kita untuk menandakan teks untuk dipaparkan dalam pelayar web. 41 00:02:20,000 --> 00:02:22,000 Ia bukan satu bahasa pengaturcaraan. 42 00:02:22,000 --> 00:02:25,000 Ia sememangnya bahasa markup, yang bermakna ia mengarahkan pelayar bagaimana untuk memaparkan 43 00:02:25,000 --> 00:02:28,000 maklumat, jadi penjelmaan mudah ini seperti yang kita telah melihat 44 00:02:28,000 --> 00:02:32,000 adalah sesuatu yang super mudah seperti boldfacing, terbuka kurungan b tertutup kurungan mengatakan 45 00:02:32,000 --> 00:02:36,000 membuat teks ini berani, dan itulah sebenarnya hanya salah satu daripada banyak cara 46 00:02:36,000 --> 00:02:39,000 di mana kita boleh berbuat demikian, dan sesungguhnya, hari ini pendekatan yang lebih baik 47 00:02:39,000 --> 00:02:42,000 stylizing laman web anda, membuat perkara yang berani dan italik 48 00:02:42,000 --> 00:02:47,000 dan berpusat dan dibenarkan dan sebagainya, tidak dilakukan melalui tag HTML sahaja 49 00:02:47,000 --> 00:02:51,000 tetapi dengan teknik yang dipanggil CSS, melata style sheet. 50 00:02:51,000 --> 00:02:53,000 Ini adalah satu bahasa kepada dirinya. 51 00:02:53,000 --> 00:02:55,000 Ia juga tidak merupakan bahasa pengaturcaraan tetapi- 52 00:02:55,000 --> 00:02:58,000 semua orang, ini adalah Dan, yang menyimpan menyertai kami hari ini. 53 00:02:58,000 --> 00:03:01,000 Beberapa masalah teknikal. Tidak menjadi masalah. 54 00:03:01,000 --> 00:03:04,000 >> CSS membolehkan kami untuk menyesuaikan dgn mode halaman 55 00:03:04,000 --> 00:03:07,000 dengan menetapkan apa yang dipanggil hartanah, jadi mari kita lihat ini 56 00:03:07,000 --> 00:03:09,000 dengan cara beberapa contoh asas. 57 00:03:09,000 --> 00:03:12,000 Biar saya pergi ke dalam perkakas hari ini. 58 00:03:12,000 --> 00:03:15,000 Saya mempunyai sumber 8 Isnin direktori di sini, 59 00:03:15,000 --> 00:03:18,000 dan saya akan pergi ke direktori yang dipanggil CSS di mana kita mempunyai sekumpulan keseluruhan 60 00:03:18,000 --> 00:03:21,000 fail yang menunggu kita di sini, 61 00:03:21,000 --> 00:03:27,000 dan dalam folder ini kita mempunyai, misalnya, search0.html dari masa lalu. 62 00:03:27,000 --> 00:03:31,000 Sekarang, ingat dengan search0 kami meninggalkan nota ini 63 00:03:31,000 --> 00:03:35,000 oleh jenis melaksanakan Google atau benar-benar hanya akhir hadapan untuk seminggu atau lebih yang lalu, 64 00:03:35,000 --> 00:03:38,000 dan notis bahawa kita mempunyai beberapa tag baru di sana. 65 00:03:38,000 --> 00:03:41,000 Kami mempunyai h1 untuk tajuk besar, berani, 66 00:03:41,000 --> 00:03:45,000 bentuk, yang membolehkan kita untuk benar-benar mempunyai bentuk HTML untuk input pengguna. 67 00:03:45,000 --> 00:03:48,000 Tindakan, apa makna atribut tindakan 68 00:03:48,000 --> 00:03:52,000 tag bentuk HTML? 69 00:03:52,000 --> 00:03:58,000 Apa makna 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 Tindakan adalah destinasi untuk mana borang itu akan diserahkan. 72 00:04:03,000 --> 00:04:07,000 Hakikat bahawa yang mengatakan tindakan = "google.com / carian" 73 00:04:07,000 --> 00:04:10,000 bermakna bahawa apabila pengguna mengklik butang Hantar atau setaraf 74 00:04:10,000 --> 00:04:14,000 apa-apa jua bentuk bidang yang mereka mengisi borang akan dihantar tidak kepada pelayan kami 75 00:04:14,000 --> 00:04:17,000 atau perkakas kita tetapi untuk URL yang tertentu di Google. 76 00:04:17,000 --> 00:04:19,000 Dan kaedah ia akan menggunakan dipanggil mendapatkan, 77 00:04:19,000 --> 00:04:25,000 dan mendapatkan, untuk sekarang, hanya satu teknik untuk lulus maklumat bersama-sama untuk pelayan web 78 00:04:25,000 --> 00:04:29,000 dengan cara URL, jadi mari kita lihat cepat kembali pada bagaimana kerja-kerja ini. 79 00:04:29,000 --> 00:04:31,000 >> Perhatikan bahawa terdapat input yang namanya q 80 00:04:31,000 --> 00:04:35,000 jenis yang teks dan kemudian input kedua jenis mengemukakan 81 00:04:35,000 --> 00:04:39,000 nilai yang CS50 Cari, dan sesungguhnya, jika kita membuka fail ini di sini, 82 00:04:39,000 --> 00:04:42,000 search0.html, ia adalah satu bentuk mudah super, 83 00:04:42,000 --> 00:04:45,000 dan jika saya mencari sesuatu seperti sains komputer 84 00:04:45,000 --> 00:04:50,000 dan kemudian tekan enter atau klik pada CS50 Search 85 00:04:50,000 --> 00:04:53,000 melihat bahawa apa yang berlaku adalah di luar untuk mendapatkan Google 86 00:04:53,000 --> 00:04:56,000 Saya telah khusus berakhir pada URL ini di atas, 87 00:04:56,000 --> 00:05:01,000 google.com / search? q = komputer + sains, 88 00:05:01,000 --> 00:05:04,000 dan sains komputer adalah jelas apa yang saya menaip masuk 89 00:05:04,000 --> 00:05:06,000 + Hanya bermakna yang mana aksara ruang, 90 00:05:06,000 --> 00:05:10,000 dan ia dilakukan oleh pelayar hanya untuk memastikan bahawa tidak ada 91 00:05:10,000 --> 00:05:13,000 kekeliruan dan ruang putih di URL sebenar. 92 00:05:13,000 --> 00:05:15,000 Dan kemudian q, sudah tentu, adalah nama parameter. 93 00:05:15,000 --> 00:05:20,000 Kami tidak pernah melihat bagaimana kita, pengaturcara, sebenarnya boleh mengakses q lagi. 94 00:05:20,000 --> 00:05:23,000 Kita boleh menganggap bahawa Google tahu apa yang perlu dilakukan dengan ini di sini, 95 00:05:23,000 --> 00:05:25,000 tetapi kita akan sampai ke sana dalam masa yang sewajarnya hari ini. 96 00:05:25,000 --> 00:05:30,000 >> Tetapi izinkan saya mengambil lihat sebaliknya pada search1.html, 97 00:05:30,000 --> 00:05:34,000 yang kelihatan sedikit berbeza kerana saya memutuskan bahawa borang ini di sini adalah hanya sedikit tempang. 98 00:05:34,000 --> 00:05:36,000 Maksud saya, ia adalah di sebelah kiri atas. 99 00:05:36,000 --> 00:05:40,000 Ada benar-benar tidak estetika ia, dan jadi saya mahu 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 walaupun anda mungkin tidak melawat yang kerap, kelihatan seperti ini hari ini pada Halloween. 102 00:05:47,000 --> 00:05:53,000 Jika kita sebaliknya membuka versi 1 fail ini, 1.html search, saya telah berpusat. 103 00:05:53,000 --> 00:05:57,000 Masih cantik hodoh, tetapi sekurang-kurangnya sekarang saya telah mula untuk mengawal estetika halaman ini, 104 00:05:57,000 --> 00:06:00,000 bukan sahaja menandakan daripadanya. 105 00:06:00,000 --> 00:06:04,000 Mari kita lihat di search 1, dan ada benar-benar hanya satu perbezaan 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 tetapi apa garis satu atau coretan perbezaan? 108 00:06:11,000 --> 00:06:14,000 >> Ada sifat ini gaya, jadi ia ternyata bahawa dalam HTML 109 00:06:14,000 --> 00:06:19,000 kebanyakan unsur, kebanyakan tags boleh mempunyai atribut gaya kepada mereka, 110 00:06:19,000 --> 00:06:23,000 dan dalam atribut gaya yang adalah rentetan dipetik, 111 00:06:23,000 --> 00:06:26,000 dan bahawa rentetan dipetik adalah CSS. 112 00:06:26,000 --> 00:06:29,000 Anda boleh meletakkan lembaran gaya melata di sana 113 00:06:29,000 --> 00:06:32,000 dengan menyatakan ia sebagai nama harta 114 00:06:32,000 --> 00:06:34,000 diikuti oleh kolon diikuti oleh nilai. 115 00:06:34,000 --> 00:06:37,000 Ini adalah jenis keputusan reka bentuk malang beberapa tahun lalu 116 00:06:37,000 --> 00:06:40,000 CSS adalah bahasa kepada dirinya, 117 00:06:40,000 --> 00:06:43,000 tetapi syntactically ia sangat berbeza dari HTML. 118 00:06:43,000 --> 00:06:46,000 Dalam kes ini, kita lihat bahawa di dalam laman web, saya yang ditulis dalam HTML, 119 00:06:46,000 --> 00:06:51,000 Saya mempunyai CSS di dalam petikan ini, dan konvensyen untuk CSS 120 00:06:51,000 --> 00:06:55,000 adalah bahawa anda mempunyai apa yang dipanggil harta yang diikuti oleh, sekali lagi, kolon, 121 00:06:55,000 --> 00:06:58,000 diikuti oleh nilai harta itu, jadi tidak ada tanda yang sama. 122 00:06:58,000 --> 00:07:00,000 Tiada petikan tambahan. 123 00:07:00,000 --> 00:07:03,000 Ia hanya nilai ini kolon dipisahkan pasangan kunci, 124 00:07:03,000 --> 00:07:05,000 dan garis teks tidak apa yang dikatakan. 125 00:07:05,000 --> 00:07:09,000 Ia menjajarkan teks dalam badan halaman, yang benar-benar berani halaman, 126 00:07:09,000 --> 00:07:11,000 di tengah-tengah. 127 00:07:11,000 --> 00:07:13,000 >> Okay, keputusan akhir maka, perlu jelas, ini. 128 00:07:13,000 --> 00:07:17,000 Tidak semua seksi itu, tetapi sekurang-kurangnya ia berpusat dan sedikit lebih seperti Google sebenar. 129 00:07:17,000 --> 00:07:21,000 Tetapi bagaimana jika saya bukannya membuka versi 2 ini 130 00:07:21,000 --> 00:07:25,000 dan menunjukkan turun di sini tag baru sama sekali? 131 00:07:25,000 --> 00:07:30,000 Sekarang di kepala halaman saya, yang sebelum ini hanya mempunyai yang tag 132 00:07:30,000 --> 00:07:32,000 dalam semua contoh-contoh terdahulu? 133 00:07:32,000 --> 00:07:34,000 Ia hanya mempunyai ini, tajuk. 134 00:07:34,000 --> 00:07:38,000 Sebentar ago tag kepala kelihatan seperti ini. 135 00:07:38,000 --> 00:07:40,000 Sekarang sebaliknya ia mempunyai dalam tag gaya, 136 00:07:40,000 --> 00:07:44,000 dan ini juga, saya memohon maaf, syntactically kelihatan sangat berbeza dari HTML, 137 00:07:44,000 --> 00:07:47,000 tetapi anda mendapat digunakan untuk ia, di mana di dalam tag gaya 138 00:07:47,000 --> 00:07:50,000 Saya kini boleh faktor apa yang seketika lalu 139 00:07:50,000 --> 00:07:54,000 sifat, atribut gaya, dan saya boleh meletakkan ia di bahagian paling atas halaman saya. 140 00:07:54,000 --> 00:07:56,000 >> Mengapa? 141 00:07:56,000 --> 00:08:00,000 Nah, ini adalah satu langkah ke arah pembersihan perkara, sama seperti dalam penulisan kod C 142 00:08:00,000 --> 00:08:04,000 kadang-kadang kita akan menulis fungsi faktor fungsi biasa. 143 00:08:04,000 --> 00:08:07,000 Ia hanya pembersih yang sedikit untuk memulakan pemfaktoran keluar perkara-perkara seperti estetika 144 00:08:07,000 --> 00:08:11,000 kepada satu lokasi pusat bukannya mempunyai semua menyebar di seluruh HTML anda. 145 00:08:11,000 --> 00:08:14,000 Ini juga melakukan apa yang ia berkata, walaupun terdapat sedikit sintaks baru. 146 00:08:14,000 --> 00:08:19,000 Ini sini adalah pemilih, dan badan hanya bermakna pilih unsur badan 147 00:08:19,000 --> 00:08:21,000 dan memohon sifat berikut kepada ia. 148 00:08:21,000 --> 00:08:23,000 Nah, harta itu adalah sama. 149 00:08:23,000 --> 00:08:25,000 Untuk mengukur baik saya telah ditambah dengan koma bernoktah di hujung, 150 00:08:25,000 --> 00:08:29,000 yang cenderung untuk menjadi konvensyen, dan saya telah dibalut seluruh harta 151 00:08:29,000 --> 00:08:33,000 pendakap kerinting kerana saya sebenarnya boleh mempunyai perkara yang berbeza di sini. 152 00:08:33,000 --> 00:08:39,000 Saya sebenarnya boleh mengatakan sesuatu seperti warna: biru; 153 00:08:39,000 --> 00:08:42,000 >> Sekarang ini juga tidak akan menjadi satu langkah ke arah apa-apa semua yang cantik, 154 00:08:42,000 --> 00:08:47,000 tetapi jika saya kini kembali ke versi 2 saya sekurang-kurangnya sekarang membuat badan saya 155 00:08:47,000 --> 00:08:49,000 halaman teks biru semua. 156 00:08:49,000 --> 00:08:51,000 Butang tetap sama kerana itulah input. Ia bukan teks tulen. 157 00:08:51,000 --> 00:08:56,000 Tetapi segala-galanya yang teks, seperti CS50 Cari top up, adalah dalam biru fakta. 158 00:08:56,000 --> 00:09:01,000 Sekali lagi, semua yang kita lakukan sekarang adalah membuang dari tag tubuh, notis, 159 00:09:01,000 --> 00:09:04,000 atribut gaya, dan kita telah difaktorkan it out di sini. 160 00:09:04,000 --> 00:09:08,000 Ini bukan satu peningkatan yang besar, tetapi jika kita mengambil langkah ini satu lagi 161 00:09:08,000 --> 00:09:10,000 notis apa yang boleh kita lakukan dalam versi ketiga ini di sini. 162 00:09:10,000 --> 00:09:14,000 >> Pada search3.html laman web adalah hampir sama 163 00:09:14,000 --> 00:09:17,000 kecuali untuk apa yang tag baru sekarang? 164 00:09:17,000 --> 00:09:20,000 Link, jadi yang satu ini tidak sangat tepat dinamakan 165 00:09:20,000 --> 00:09:24,000 kerana anda tidak menghubungkan dalam erti hyperlink diklik. 166 00:09:24,000 --> 00:09:28,000 Sebaliknya, anda apapun melakukan bersamaan # termasuk dalam C 167 00:09:28,000 --> 00:09:31,000 mana link tag dengan sifat href 168 00:09:31,000 --> 00:09:34,000 dan atribut rel mengatakan pergi ke hadapan 169 00:09:34,000 --> 00:09:39,000 dan salinan tampal kandungan fail yang dipanggil search3.css di sini, pada asasnya. 170 00:09:39,000 --> 00:09:42,000 Ia tidak cukup berbuat demikian, tetapi itulah semangat ia. 171 00:09:42,000 --> 00:09:45,000 Ia mengatakan pergi terbuka yang fail, search3.css, 172 00:09:45,000 --> 00:09:49,000 dan merawat ia seolah-olah pengguna telah ditaip betul di sini di kepala halaman 173 00:09:49,000 --> 00:09:51,000 hanya seperti yang saya lakukan dalam contoh sebelum ini. 174 00:09:51,000 --> 00:09:54,000 Search3.css Sementara itu, adalah agak mudah. 175 00:09:54,000 --> 00:09:58,000 Ia benar-benar hanya mengandungi tepat apa yang seketika lalu 176 00:09:58,000 --> 00:10:03,000 tag gaya, tetapi saya telah difaktorkan ia keluar di sini untuk fail tersendiri. 177 00:10:03,000 --> 00:10:07,000 >> Walaupun kita telah tidak menghabiskan banyak masa pada semua dalam HTML atau pengaturcaraan web 178 00:10:07,000 --> 00:10:11,000 hanya intuitif apa motivasi, mungkin, untuk pemfaktoran keluar 179 00:10:11,000 --> 00:10:14,000 coretan kecil walaupun CSS ke dalam fail tersendiri 180 00:10:14,000 --> 00:10:19,000 dan kemudian termasuk dengan tag pautan ini di sini? 181 00:10:19,000 --> 00:10:21,000 [Sambutan pelajar didengar] 182 00:10:21,000 --> 00:10:25,000 Okay, ia adalah lebih mudah untuk membaca dalam erti kata bahawa anda mempunyai CSS anda dalam fail CSS. 183 00:10:25,000 --> 00:10:28,000 Anda mempunyai HTML anda dalam fail HTML anda, jadi ia adalah lebih mudah dibaca dalam erti kata itu. 184 00:10:28,000 --> 00:10:30,000 Apa lagi yang mungkin menarik? Yeah. 185 00:10:30,000 --> 00:10:32,000 [Sambutan pelajar didengar] 186 00:10:32,000 --> 00:10:35,000 Ya, jadi anda boleh termasuk ia banyak kali, jadi sekarang kita melakukan ini 187 00:10:35,000 --> 00:10:38,000 contoh asas dengan fail individu, tetapi andaikan anda sebenarnya membuat 188 00:10:38,000 --> 00:10:42,000 sebuah laman web yang sebenar seperti anda akan untuk pset 7 atau projek akhir anda mungkin, 189 00:10:42,000 --> 00:10:45,000 dan anda mahu mempunyai pelbagai laman web, seperti yang sudah pasti biasa pada 190 00:10:45,000 --> 00:10:48,000 Dunia sebenar Wide Web, dan ia akan menjadi jenis tempang 191 00:10:48,000 --> 00:10:52,000 perlu salin dan tampal warna biru yang sama 192 00:10:52,000 --> 00:10:56,000 dan teks yang sama sejajar pusat dalam setiap satu daripada halaman tersebut. 193 00:10:56,000 --> 00:10:59,000 Sebaliknya, ia masuk akal yang lebih faktor, sama seperti kita telah dilakukan dalam C 194 00:10:59,000 --> 00:11:02,000 dengan fail h, meletakkan ia di satu tempat pusat, 195 00:11:02,000 --> 00:11:06,000 dalam kes ini search3.css, dan kemudian membenarkan sebarang fail 196 00:11:06,000 --> 00:11:11,000 di laman web anda untuk benar-benar termasuk fail tersebut dengan cara tag ini di sini dalam 16 baris. 197 00:11:11,000 --> 00:11:14,000 Seperti biasanya kes itu, kita bermula dengan versi 0, yang jenis kerja 198 00:11:14,000 --> 00:11:18,000 tetapi tidak semestinya yang terbaik, dan dengan setiap langkah, 199 00:11:18,000 --> 00:11:21,000 1 search, search 2, dan kini carian 3 kita telah mengambil langkah-langkah bayi 200 00:11:21,000 --> 00:11:26,000 ke arah reka bentuk yang pembersih sedikit dan lebih persediaan 201 00:11:26,000 --> 00:11:30,000 muka surat yang lebih kompleks yang kita boleh lakukan di hujung jalan. 202 00:11:30,000 --> 00:11:33,000 >> Izinkan saya membuka satu contoh lepas di sini hanya untuk menunjukkan 203 00:11:33,000 --> 00:11:36,000 halaman yang lebih bergaya, tetapi pada mulanya, mari kita melihat HTML. 204 00:11:36,000 --> 00:11:41,000 Ini adalah search4.html, dan notis bahawa struktur ia adalah 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 pembahagian halaman. 207 00:11:48,000 --> 00:11:51,000 Anda boleh berfikir ini sebagai segi empat tepat yang tidak kelihatan. 208 00:11:51,000 --> 00:11:54,000 Ia semacam mewujudkan petak kawasan di dalam laman web 209 00:11:54,000 --> 00:11:56,000 bahawa anda boleh menyesuaikan dgn mode semua sekali gus. 210 00:11:56,000 --> 00:11:58,000 Apa yang saya lakukan di sini adalah seperti berikut. 211 00:11:58,000 --> 00:12:01,000 Dalam tag badan saya, yang telah berada di sana sepanjang, 212 00:12:01,000 --> 00:12:05,000 Saya katakan mewujudkan satu bahagian halaman di sini melalui talian 45 melalui 47, 213 00:12:05,000 --> 00:12:09,000 dan ini bermakna asasnya memberi saya sebuah segiempat tepat yang tidak dapat dilihat di sepanjang bahagian atas halaman. 214 00:12:09,000 --> 00:12:14,000 Kemudian memberi saya sebuah segiempat tepat yang kedua, walaupun tidak dapat dilihat, di bawah bahawa, 215 00:12:14,000 --> 00:12:16,000 dan mengenal pasti dengan kandungan nama, dan kemudian akhir sekali, 216 00:12:16,000 --> 00:12:19,000 berikan saya bahagian ketiga halaman di bawah 217 00:12:19,000 --> 00:12:21,000 dipanggil ID. 218 00:12:21,000 --> 00:12:23,000 Kita akan melihat mengapa saya telah melakukan ini dalam hanya seketika, 219 00:12:23,000 --> 00:12:26,000 tetapi konsep saya mempunyai satu bahagian header. 220 00:12:26,000 --> 00:12:30,000 Saya mempunyai satu bahagian kandungan, dan saya mempunyai satu bahagian footer halaman 221 00:12:30,000 --> 00:12:32,000 walaupun ini adalah hanya dalam markup. 222 00:12:32,000 --> 00:12:35,000 Pengguna tidak akan melihat 3 segiempat tepat, 223 00:12:35,000 --> 00:12:37,000 tetapi jenis struktur sana di sebalik tabir 224 00:12:37,000 --> 00:12:39,000 mereka sebenarnya hadir. 225 00:12:39,000 --> 00:12:41,000 >> Sekarang, siapa peduli? Mengapa sebenarnya melakukan ini? 226 00:12:41,000 --> 00:12:43,000 Segala-galanya pada halaman yang sama seperti yang kita telah melihat sebelum ini. 227 00:12:43,000 --> 00:12:47,000 Berikut adalah borang saya. Berikut adalah input saya, input saya, satu baris dan sebagainya. 228 00:12:47,000 --> 00:12:50,000 Berikut adalah imej, walaupun, jadi kita akan melihat di mana ini datang dari dalam hanya seketika. 229 00:12:50,000 --> 00:12:52,000 Berikut adalah kaki, yang baru, hanya kerana saya mahu memperkenalkan 230 00:12:52,000 --> 00:12:54,000 beberapa kandungan lanjut di sini. 231 00:12:54,000 --> 00:12:58,000 Jika kita tatal ke atas notis bahawa ID div ini adalah header. 232 00:12:58,000 --> 00:13:02,000 ID div ini adalah kandungan, dan ID yang satu ini adalah footer. 233 00:13:02,000 --> 00:13:05,000 Dan seperti namanya, apabila anda mempunyai sifat ID 234 00:13:05,000 --> 00:13:09,000 dalam HTML, oleh definisi ia unik mesti mengenal pasti 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 sepenuhnya pada anda untuk ingat bahawa anda mempunyai ID pengepala sudah. 237 00:13:16,000 --> 00:13:19,000 Anda mempunyai pengaki. Anda mempunyai ID kandungan sudah. 238 00:13:19,000 --> 00:13:22,000 Komputer tidak akan memikirkan apa ID yang ada adalah untuk anda, 239 00:13:22,000 --> 00:13:27,000 jadi anda secara tidak sengaja boleh memberi 2 tag ID header, 240 00:13:27,000 --> 00:13:29,000 dan yang hanya akan menjadi salah. 241 00:13:29,000 --> 00:13:31,000 >> Anda perlu ingat apa yang anda telah mencipta, 242 00:13:31,000 --> 00:13:34,000 tetapi sebaik sahaja anda telah dilakukan bahawa notis apa yang kita boleh lakukan di sini. 243 00:13:34,000 --> 00:13:38,000 Saya kini boleh menentukan di tag gaya saya di atas 244 00:13:38,000 --> 00:13:41,000 atau sebandingnya dalam fail CSS saya, jika saya masih menggunakan versi itu, 245 00:13:41,000 --> 00:13:46,000 Saya boleh mengatakan # header, dan apa yang bermakna adalah bahawa apa sahaja tag 246 00:13:46,000 --> 00:13:49,000 di dalam laman web ini mempunyai ID header 247 00:13:49,000 --> 00:13:53,000 dan #, hanya dengan konvensyen manusia, mewakili ID. 248 00:13:53,000 --> 00:13:56,000 Tanda tajam atau paun tanda mewakili ID. 249 00:13:56,000 --> 00:13:58,000 Header adalah nama yang saya berikan. 250 00:13:58,000 --> 00:14:01,000 Ini bermakna memohon harta CSS 251 00:14:01,000 --> 00:14:04,000 apa jua tag dalam halaman ini menanggung ID header. 252 00:14:04,000 --> 00:14:06,000 Perjanjian yang sama di sini. 253 00:14:06,000 --> 00:14:09,000 Memohon ini harta, yang berlaku untuk menjadi sama, pada sebarang elemen 254 00:14:09,000 --> 00:14:11,000 yang ID adalah kandungan, dan kemudian turun di sini 255 00:14:11,000 --> 00:14:14,000 notis saya mendapat sedikit penjaga dengan nota kaki. 256 00:14:14,000 --> 00:14:18,000 Apa-apa unsur yang ID adalah pengaki, yang ada boleh hanya satu mengikut definisi, 257 00:14:18,000 --> 00:14:21,000 pergi ke hadapan dan membuat saiz fon yang kecil, 258 00:14:21,000 --> 00:14:24,000 berani font berat, margin 20 piksel. 259 00:14:24,000 --> 00:14:26,000 >> Apa maksudnya? 260 00:14:26,000 --> 00:14:28,000 Ia hanya margin pada bahagian atas, bawah, dan kiri dan kanan. 261 00:14:28,000 --> 00:14:31,000 Ini bermakna memberi saya margin 20 pixel tidak kelihatan di sekelilingnya 262 00:14:31,000 --> 00:14:35,000 hanya untuk menolak segala-galanya dari sedikit, seperti yang anda mungkin lakukan dalam Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word atau Pages atau sebagainya. 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 kami akan kembali sehingga satu coretan baki CSS sana. 266 00:14:43,000 --> 00:14:48,000 Ini adalah versi 4, terakhir kami untuk contoh carian, dan ia banyak, seksi banyak. 267 00:14:48,000 --> 00:14:54,000 Kini, dalam keadilan, saya hanya Googled "google font logo penjana." 268 00:14:54,000 --> 00:14:58,000 Dan yang membenarkan saya untuk membuat GIF, format imej, yang kelihatan seperti bahawa terdapat. 269 00:14:58,000 --> 00:15:00,000 Malah, anda boleh melakukan ini juga. 270 00:15:00,000 --> 00:15:03,000 Kami mempunyai "google fon logo penjana." 271 00:15:03,000 --> 00:15:05,000 >> Mari kita lihat jika kita boleh lakukan ini. 272 00:15:05,000 --> 00:15:07,000 Okay, saya fikir ini adalah laman web saya digunakan. 273 00:15:07,000 --> 00:15:11,000 Kita boleh mengatakan Ec 10, misalnya, dan membuat mereka sendiri. 274 00:15:11,000 --> 00:15:13,000 Anda boleh bermain dengan hari ini semua lama dan kemudian klik kanan pada 275 00:15:13,000 --> 00:15:16,000 dan kemudian memuat turun GIF sebenar, yang adalah semua yang saya telah lakukan. 276 00:15:16,000 --> 00:15:19,000 Dan sesungguhnya, itulah sebabnya dalam HTML saya, ingat, di sini 277 00:15:19,000 --> 00:15:22,000 Saya mempunyai tag imej, yang kita lihat secara ringkas minggu lepas 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 mempunyai sifat ini alt, 280 00:15:28,000 --> 00:15:31,000 sifat ini alternatif? 281 00:15:31,000 --> 00:15:33,000 Yeah. 282 00:15:33,000 --> 00:15:35,000 [Sambutan pelajar didengar] 283 00:15:35,000 --> 00:15:37,000 Baik, jadi 2 sebab benar-benar, jika pelayar tidak boleh tarik sehingga imej 284 00:15:37,000 --> 00:15:40,000 kerana anda mempunyai sambungan rangkaian perlahan atau imej rosak 285 00:15:40,000 --> 00:15:44,000 atau sesuatu seperti itu sekurang-kurangnya manusia boleh melihat "CS50 carian," 286 00:15:44,000 --> 00:15:46,000 dan kemudian juga atas sebab-sebab kemudahan. 287 00:15:46,000 --> 00:15:48,000 Jika anda mempunyai pengguna yang buta dan menggunakan pembaca skrin 288 00:15:48,000 --> 00:15:50,000 dan oleh itu jelas tidak boleh melihat imej mereka boleh sekurang-kurangnya 289 00:15:50,000 --> 00:15:52,000 mendengar teks jika komputer mereka bercakap kepada mereka. 290 00:15:52,000 --> 00:15:56,000 >> Secara umum, ini adalah yang terbaik mengamalkan apabila ia datang kepada akses halaman 291 00:15:56,000 --> 00:16:00,000 supaya pengguna walaupun dalam keadaan yang boleh mendengar atau melihat, jadi untuk bercakap, 292 00:16:00,000 --> 00:16:03,000 apa yang ia adalah bahawa pada halaman anda. 293 00:16:03,000 --> 00:16:05,000 Ada satu perkara lain yang saya lakukan di sini 294 00:16:05,000 --> 00:16:09,000 yang sedikit menarik, dan kita akan melihat lebih lanjut mengenai ini dalam masalah menetapkan 7 295 00:16:09,000 --> 00:16:12,000 melalui salah satu seluar pendek yang diketuai oleh salah seorang daripada felo pengajaran. 296 00:16:12,000 --> 00:16:15,000 Tetapi # kandungan merujuk kepada tag 297 00:16:15,000 --> 00:16:20,000 yang ID adalah kandungan, tetapi kemudian ada watak ruang, dan kemudian ada input perkataan. 298 00:16:20,000 --> 00:16:25,000 Nah, apa yang menarik tentang CSS adalah bahawa anda boleh 299 00:16:25,000 --> 00:16:29,000 merujuk kepada tag dalam jenis halaman hierarki, 300 00:16:29,000 --> 00:16:33,000 dan apa coretan cara CSS adalah mencari tag 301 00:16:33,000 --> 00:16:37,000 yang ID adalah kandungan, dan kemudian memohon sifat berikut 302 00:16:37,000 --> 00:16:42,000 semua tag input yang keturunan kandungan, 303 00:16:42,000 --> 00:16:44,000 itulah yang dilekukan di dalamnya. 304 00:16:44,000 --> 00:16:48,000 Indentasi, sekali lagi, adalah hanya penting untuk komputer, tidak kepada manusia, 305 00:16:48,000 --> 00:16:51,000 tetapi oleh konvensyen kita inden perkara seperti yang kita pergi lebih jauh ke dalam halaman, 306 00:16:51,000 --> 00:16:54,000 jadi ini bermakna memohon margin 5 piksel kepada mana-mana elemen input 307 00:16:54,000 --> 00:16:57,000 itulah tempat di dalam atau bersarang di dalam 308 00:16:57,000 --> 00:16:59,000  elemen yang ID kandungan. 309 00:16:59,000 --> 00:17:01,000 >> Siapa yang yang diguna pakai? 310 00:17:01,000 --> 00:17:03,000 Nah, terdapat sebenarnya hanya 2 guys di sini. 311 00:17:03,000 --> 00:17:05,000 Perhatikan bahawa dalam borang ada adalah 2 input, 312 00:17:05,000 --> 00:17:07,000 sebagai telah ada untuk semua contoh-contoh ini. 313 00:17:07,000 --> 00:17:11,000 Tetapi notis bahawa mereka 2 input berlaku akan bersarang di dalam, 314 00:17:11,000 --> 00:17:13,000 walaupun sedikit mendalam, lapisan beberapa lekukan, 315 00:17:13,000 --> 00:17:16,000 dalam tag ID yang merupakan kandungan. 316 00:17:16,000 --> 00:17:18,000 Apa maknanya? 317 00:17:18,000 --> 00:17:21,000 Jika kita pergi ke pelayar sini anda boleh melihat pernah jadi sedikit- 318 00:17:21,000 --> 00:17:23,000 izinkan saya zoom dalam bahawa terdapat sedikit padding antara butang 319 00:17:23,000 --> 00:17:25,000 dan antara medan teks. 320 00:17:25,000 --> 00:17:27,000 >> Biar saya mematikan buat sementara waktu itu. 321 00:17:27,000 --> 00:17:30,000 Biar saya pergi sehingga CSS saya, dan biarlah saya pergi ke hadapan dan hanya 322 00:17:30,000 --> 00:17:34,000 menukar margin dari 5 piksel 0 piksel. 323 00:17:34,000 --> 00:17:37,000 Biar saya pergi ke hadapan dan kemudian menyimpan fail, pergi balik ke enjin carian 324 00:17:37,000 --> 00:17:40,000 dan menambah nilai, dan menonton pertengahan halaman. 325 00:17:40,000 --> 00:17:43,000 Semuanya mendapat dimampatkan bersama-sama, dan apabila saya mula-mula disebat contoh ini 326 00:17:43,000 --> 00:17:46,000 Saya fikir yang kelihatan bodoh dengan medan teks dan kemudian butang di bawah. 327 00:17:46,000 --> 00:17:50,000 Saya mahu ke pad sedikit, jadi saya memperkenalkan margin. 328 00:17:50,000 --> 00:17:55,000 Apa yang kita tidak akan melakukan dalam kuliah pergi melalui sedozen beberapa 329 00:17:55,000 --> 00:17:58,000 CSS sifat yang wujud kerana, sekali lagi, terdapat perkara-perkara seperti saiz fon, 330 00:17:58,000 --> 00:18:02,000 berat fon, margin, teks menyelaraskan, dan beberapa dozen yang lain, 331 00:18:02,000 --> 00:18:06,000 dan kami akan merujuk anda dalam masalah menetapkan 7 tutorial pelbagai talian 332 00:18:06,000 --> 00:18:08,000 dan rujukan yang membolehkan anda untuk memilih perkara-perkara ini sehingga. 333 00:18:08,000 --> 00:18:10,000 Tetapi apa yang benar-benar penting pada akhir hari 334 00:18:10,000 --> 00:18:12,000 >> adalah untuk memahami bagaimana perkara-perkara ini digunakan. 335 00:18:12,000 --> 00:18:15,000 Sekali lagi, jika kita mempunyai tag gaya dalam mana 336 00:18:15,000 --> 00:18:19,000 boleh pergi selectors, jenis pengenalan yang menentukan 337 00:18:19,000 --> 00:18:21,000 siapakah anda ingin memohon sifat-sifat, 338 00:18:21,000 --> 00:18:24,000 dan kemudian anda meletakkan harta sebagai sepasang nilai utama 339 00:18:24,000 --> 00:18:28,000 dipisahkan oleh noktah bertindih dan kemudian berakhir dengan semicolon, 340 00:18:28,000 --> 00:18:32,000 atau anda boleh rip semua daripada itu dan memasukkannya ke dalam fail CSS yang berasingan 341 00:18:32,000 --> 00:18:35,000 kepada dirinya. 342 00:18:35,000 --> 00:18:39,000 Baiklah, apa-apa soalan mengenai konsep 343 00:18:39,000 --> 00:18:41,000 atau gambar besar CSS? 344 00:18:41,000 --> 00:18:43,000 Anda sekali lagi akan melihat lebih daripada itu dalam pset 7, 345 00:18:43,000 --> 00:18:47,000 tetapi kita akan menyimpan ia secara amnya agak mudah. 346 00:18:47,000 --> 00:18:49,000 Tidak? Semua hak. 347 00:18:49,000 --> 00:18:51,000 Ia adalah masa untuk bahasa pengaturcaraan sebenar, 348 00:18:51,000 --> 00:18:54,000 dan kita akan kembali kepada sedikit CSS dalam bentuk contoh. 349 00:18:54,000 --> 00:18:58,000 PHP adalah sebenarnya bahasa yang hebat diakses 350 00:18:58,000 --> 00:19:02,000 bahawa ia adalah syntactically hampir bersamaan dengan C. 351 00:19:02,000 --> 00:19:06,000 Dalam erti kata lain, jika anda tahu C, anda tahu untuk PHP sebahagian besar, 352 00:19:06,000 --> 00:19:08,000 dengan sekurang-kurangnya syntactically, walaupun terdapat beberapa ciri-ciri baru 353 00:19:08,000 --> 00:19:10,000 dan beberapa konsep baru yang kita akan perlu untuk melihat. 354 00:19:10,000 --> 00:19:13,000 >> Tetapi bagi sebahagian besar, sekarang bahawa kita peralihan dari C PHP 355 00:19:13,000 --> 00:19:16,000 kebanyakan barangan yang baru adalah benar-benar dalam gambaran yang lebih besar, 356 00:19:16,000 --> 00:19:19,000 bagaimana anda menggunakan bahasa untuk program di Web yang bertentangan dengan 357 00:19:19,000 --> 00:19:23,000 pada baris arahan atau segera berkelip seperti yang kita telah lakukan setakat ini. 358 00:19:23,000 --> 00:19:27,000 Untuk rujukan, terutamanya dengan pset 7 dan seterusnya projek akhir, 359 00:19:27,000 --> 00:19:31,000 jangan mengambil kesempatan daripada URL ini di sini jika anda ingin untuk membaca sehingga pada formaliti PHP. 360 00:19:31,000 --> 00:19:34,000 Ia sebenarnya suka buku teks dalam talian percuma dengan berkesan, 361 00:19:34,000 --> 00:19:37,000 dan anda juga akan mendapati bahawa apa yang benar-benar baik tentang PHP 362 00:19:37,000 --> 00:19:41,000 adalah bahawa terdapat beratus-ratus fungsi yang datang dengan ia, 363 00:19:41,000 --> 00:19:44,000 manakala di C anda tidak semestinya mempunyai akses kepada 364 00:19:44,000 --> 00:19:47,000 lebih fungsi daripada berada di perpustakaan matematik, perpustakaan CS50. 365 00:19:47,000 --> 00:19:51,000 Dalam PHP dan banyak bahasa moden, Python dan Ruby di kalangan mereka, 366 00:19:51,000 --> 00:19:54,000 anda mendapat akses kepada supaya fungsi yang lebih banyak, yang bermakna anda mendapat untuk menulis 367 00:19:54,000 --> 00:19:57,000 banyak kod yang kurang kerana anda boleh berdiri di atas bahu orang lain 368 00:19:57,000 --> 00:19:59,000 yang telah menulis perkara-perkara tertentu untuk anda. 369 00:19:59,000 --> 00:20:03,000 >> Mari kita mengambil pelancongan cepat sintaks PHP dan kemudian menulis beberapa contoh. 370 00:20:03,000 --> 00:20:06,000 Apa yang baik tentang PHP pertama dan utama 371 00:20:06,000 --> 00:20:08,000 yang ada tiada fungsi utama. 372 00:20:08,000 --> 00:20:10,000 Jika anda mahu menulis program dalam PHP anda hanya mula menulis kod, 373 00:20:10,000 --> 00:20:12,000 dan anda tidak perlu bimbang tentang utama. 374 00:20:12,000 --> 00:20:14,000 Ada int tidak. Ada pulangan tidak. 375 00:20:14,000 --> 00:20:17,000 Tiada argv, argc yang diperlukan apabila anda menulis program. 376 00:20:17,000 --> 00:20:20,000 Sebaliknya anda hanya boleh mula menulis kod, dan ini adalah sebahagian 377 00:20:20,000 --> 00:20:23,000 kerana PHP adalah apa yang dipanggil bahasa ditafsirkan. 378 00:20:23,000 --> 00:20:26,000 C telah disusun, dan ia disusun dalam erti kata bahawa anda mula 379 00:20:26,000 --> 00:20:29,000 dengan kod sumber, jalankan melalui dilafaz, yang adalah pengkompil, 380 00:20:29,000 --> 00:20:33,000 dan akhirnya selepas beberapa beberapa langkah-langkah yang anda akan mendapat kod objek, 0 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 pelbagai jenis bahasa yang anda tidak menyusunnya. 383 00:20:39,000 --> 00:20:42,000 Anda tidak pergi dari kod sumber untuk 0 dan 1s. 384 00:20:42,000 --> 00:20:45,000 Anda hanya menjalankan kod sumber, dan anda menjalankan kod sumber 385 00:20:45,000 --> 00:20:49,000 dengan bertulis dalam fail teks biasa, berakhir. php dalam kes ini 386 00:20:49,000 --> 00:20:53,000 bukan c, dan apa program tidak pada komputer anda 387 00:20:53,000 --> 00:20:57,000 ia benar-benar menafsirkan garis kod anda oleh baris demi baris. 388 00:20:57,000 --> 00:21:00,000 >> Dalam erti kata lain, bukannya menulis program dan menjalankan program 389 00:21:00,000 --> 00:21:04,000 langsung anda dan bukannya menulis program dengan fail yang berakhir dalam php. 390 00:21:04,000 --> 00:21:09,000 Kemudian anda menjalankan program sebenar dipanggil php.exe, jika anda pada Windows, 391 00:21:09,000 --> 00:21:12,000 atau hanya PHP jika anda berada pada Mac OS atau Linux, 392 00:21:12,000 --> 00:21:17,000 dan anda berikan sebagai input kepada program PHP kod sumber anda sendiri, 393 00:21:17,000 --> 00:21:20,000 dan tujuan dalam hidup adalah untuk membaca atas kod anda ke bawah, kiri ke kanan, 394 00:21:20,000 --> 00:21:23,000 dan melakukan apa sahaja yang anda telah memberitahu ia lakukan. 395 00:21:23,000 --> 00:21:25,000 >> Mari kita lihat apa ini akan bermakna syntactically. 396 00:21:25,000 --> 00:21:27,000 Dalam PHP kita mempunyai keadaan. 397 00:21:27,000 --> 00:21:29,000 Slaid ini adalah sama dengan apa yang anda lihat kembali dalam 1 minggu 398 00:21:29,000 --> 00:21:33,000 kerana syntactically syarat, IFS dan IFS lain dan lain dalam PHP 399 00:21:33,000 --> 00:21:35,000 kelihatan sama seperti ini. 400 00:21:35,000 --> 00:21:38,000 Apabila ia datang kepada ungkapan boolean mereka pergi untuk melihat sama seperti ini. 401 00:21:38,000 --> 00:21:43,000 Apabila ia datang kepada Anding perkara-perkara bersama-sama sebagai booleans ia akan kelihatan sama seperti ini. 402 00:21:43,000 --> 00:21:46,000 Beralih kelihatan sama, dan anda mendapat manfaat tambahan dalam PHP 403 00:21:46,000 --> 00:21:51,000 bahawa suis dalam C hanya boleh menukar pada char atau int. 404 00:21:51,000 --> 00:21:53,000 Anda tidak boleh menghidupkan nilai rentetan. 405 00:21:53,000 --> 00:21:55,000 Dalam PHP anda sebenarnya boleh mempunyai satu ungkapan 406 00:21:55,000 --> 00:21:58,000 yang merupakan pembolehubah yang kandungannya adalah rentetan, 407 00:21:58,000 --> 00:22:01,000 dan anda sebenarnya boleh melakukan perbandingan rentetan dalam cara intuitif yang sebenar, 408 00:22:01,000 --> 00:22:06,000 tidak penunjuk perbandingan, untuk memutuskan sama ada untuk melakukan kes i atau j atau sesuatu yang lain. 409 00:22:06,000 --> 00:22:09,000 Kita akan melihat yang berpotensi sebelum panjang. 410 00:22:09,000 --> 00:22:11,000 >> Gelung terlalu hebat adalah sama. 411 00:22:11,000 --> 00:22:15,000 Untuk gelung mempunyai pengawalan, keadaan, dan beberapa bilangan update. 412 00:22:15,000 --> 00:22:18,000 Walaupun gelung juga wujud dalam PHP. 413 00:22:18,000 --> 00:22:21,000 Adakah manakala gelung juga wujud dalam PHP, 414 00:22:21,000 --> 00:22:26,000 dan array wujud dalam PHP, tetapi di sini mana sintaks bermula untuk mendapatkan sedikit berbeza, 415 00:22:26,000 --> 00:22:29,000 tetapi konsep adalah sama, dan konsep yang benar-benar adalah sama 416 00:22:29,000 --> 00:22:32,000 kerana mereka berada dalam 0 Minggu dengan Scratch. 417 00:22:32,000 --> 00:22:34,000 Pertama sekali ialah tanda $. 418 00:22:34,000 --> 00:22:37,000 Ini adalah keputusan reka bentuk dalam PHP di mana sebarang pemboleh ubah 419 00:22:37,000 --> 00:22:41,000 dalam PHP oleh reka bentuk bermula dengan tanda $. 420 00:22:41,000 --> 00:22:46,000 Tiada X, Y, lebih Z. Ia kini $ X, $ Y, $ Z hanya kerana. 421 00:22:46,000 --> 00:22:49,000 Ia adalah sesuatu yang perlu diingat, dan kini pada sebelah kanan 422 00:22:49,000 --> 00:22:52,000 ini kelihatan serupa dengan array, 423 00:22:52,000 --> 00:22:54,000 tetapi kita menggunakan kurungan persegi di sini. 424 00:22:54,000 --> 00:22:57,000 Dalam PHP dan JavaScript, kerana akhirnya kita akan melihat, 425 00:22:57,000 --> 00:23:01,000 untuk mengisytiharkan array anda lakukan kurungan persegi terbuka dan tertutup kurungan persegi, 426 00:23:01,000 --> 00:23:04,000 dan kemudian anda mempunyai senarai dipisahkan koma nilai, sama ada ints 427 00:23:04,000 --> 00:23:09,000 atau tali atau aksara, apa sahaja yang anda mahu, dalam ungkapan bahawa terdapat. 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 Apakah sintaks untuk statik mengisytiharkan pelbagai nombor diketahui? 430 00:23:16,000 --> 00:23:19,000 Ia adalah pendakap kerinting, perbezaan begitu kecil di sini, tetapi dalam kedua-dua PHP 431 00:23:19,000 --> 00:23:22,000 dan akhirnya hidupkan ia hanya menggunakan kurungan persegi, jadi benar-benar 432 00:23:22,000 --> 00:23:25,000 detail hanya menarik di sini adalah tanda $ bagi nama pembolehubah 433 00:23:25,000 --> 00:23:28,000 dan juga kurungan persegi, dan ada satu perkara yang ingin tahu 434 00:23:28,000 --> 00:23:32,000 yang telah ditinggalkan serta di sebelah kiri tanda =. 435 00:23:32,000 --> 00:23:36,000 Apa yang hilang bahawa kita telah menghendaki untuk minggu sekarang? Yeah. 436 00:23:36,000 --> 00:23:38,000 [Sambutan pelajar didengar] 437 00:23:38,000 --> 00:23:41,000 Saiz, jadi tidak ada menyebut saiz array. 438 00:23:41,000 --> 00:23:45,000 Terus terang, tiada menyebut kurungan persegi di sebelah kiri 439 00:23:45,000 --> 00:23:47,000 tanda =, dan apa lagi hilang dari garisan? 440 00:23:47,000 --> 00:23:49,000 Yeah. >> [Sambutan pelajar didengar] 441 00:23:49,000 --> 00:23:52,000 Jenis, jadi apa yang menarik dalam tertentu mengenai PHP 442 00:23:52,000 --> 00:23:56,000 adalah bahawa ia bukan merupakan bahasa yang amat ditaip sebagai C, 443 00:23:56,000 --> 00:23:58,000 dan itu sangat ditaip dalam erti kata bahawa anda mesti mengatakan char, 444 00:23:58,000 --> 00:24:00,000 anda mesti mengatakan int, anda mesti mengatakan apungan. 445 00:24:00,000 --> 00:24:03,000 >> Bila-bila masa anda mahu pembolehubah anda perlu memberitahu dilafaz apa jenis. 446 00:24:03,000 --> 00:24:05,000 PHP adalah sedikit lazier. 447 00:24:05,000 --> 00:24:08,000 Ia longgar ditaip dalam erti kata yang 448 00:24:08,000 --> 00:24:11,000 anda boleh mempunyai terapung dan aksara dan rentetan 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 meletakkan di dalam pembolehubah. 451 00:24:17,000 --> 00:24:20,000 Anda tidak perlu untuk memaklumkan terlebih dahulu apa jenis data 452 00:24:20,000 --> 00:24:22,000 akan dalam pembolehubah. 453 00:24:22,000 --> 00:24:24,000 Ia terpulang kepada anda, jadi ini adalah bagus 454 00:24:24,000 --> 00:24:27,000 bahawa anda tidak perlu bimbang kerana banyak tentang menaip data 455 00:24:27,000 --> 00:24:29,000 dan bimbang apa hujah anda dan sebagainya. 456 00:24:29,000 --> 00:24:32,000 Ini juga bermakna akhirnya fungsi dalam PHP akan dapat kembali 457 00:24:32,000 --> 00:24:36,000 sama ada int an kebanyakan masa, dan mungkin sekali-sekala 458 00:24:36,000 --> 00:24:40,000 mereka akan kembali bool, palsu boolean, misalnya, untuk menandakan bahawa sesuatu yang silapnya. 459 00:24:40,000 --> 00:24:44,000 Ini memberikan kita beberapa upsides, tetapi ia juga akan menjadikan kita jenis oleh reka bentuk 460 00:24:44,000 --> 00:24:47,000 sedikit lazier apabila ia datang untuk menaip data. 461 00:24:47,000 --> 00:24:50,000 >> Apa lagi yang ada perlu diingat di sini? 462 00:24:50,000 --> 00:24:54,000 Pembolehubah kelihatan agak seperti ini, jadi $ s = "hello, dunia." 463 00:24:54,000 --> 00:24:57,000 Itulah mungkin inferable daripada contoh sebelumnya, 464 00:24:57,000 --> 00:24:59,000 dan kita mempunyai satu lagi jenis gelung. 465 00:24:59,000 --> 00:25:02,000 Yang satu ini kita sebenarnya akan melihat sekali-sekala kerana ia agak berguna, 466 00:25:02,000 --> 00:25:04,000 foreach membina. 467 00:25:04,000 --> 00:25:11,000 Dalam kes ini, gelung foreach mengambil dalam kurungan 3 perkataan biasanya, 468 00:25:11,000 --> 00:25:16,000 $ Sesuatu yang pertama, yang adalah apa yang pelbagai yang anda mahu untuk melelar lebih daripada ahli-ahli, 469 00:25:16,000 --> 00:25:19,000 maka benar-benar kata kunci sebagai, dan kemudian akhir sekali, 470 00:25:19,000 --> 00:25:21,000 ubah nama lain yang anda dapat untuk memilih. 471 00:25:21,000 --> 00:25:23,000 Ia boleh menjadi foo, bar, atau unsur, 472 00:25:23,000 --> 00:25:26,000 dan apa yang membina ini tidak 473 00:25:26,000 --> 00:25:29,000 jika array $ mengandungi 10 unsur 474 00:25:29,000 --> 00:25:34,000 pada setiap lelaran ini pelbagai-maaf, pada setiap lelaran gelung ini 475 00:25:34,000 --> 00:25:37,000 elemen pembolehubah yang dipanggil akan perlu dikemaskini 476 00:25:37,000 --> 00:25:40,000 untuk menjadi elemen pertama dalam array, maka elemen kedua dalam array, 477 00:25:40,000 --> 00:25:44,000 maka unsur ketiga array, sekali gus obviating keperluan 478 00:25:44,000 --> 00:25:46,000 untuk melakukan notasi kurungan persegi sedikit menjengkelkan dan 479 00:25:46,000 --> 00:25:49,000 $ I dalam untuk indeks ke dalam array. 480 00:25:49,000 --> 00:25:53,000 PHP melakukan semua kerja itu untuk anda dan pada setiap lelaran 481 00:25:53,000 --> 00:25:55,000 hanya tangan anda Elemen seterusnya dari pelbagai 482 00:25:55,000 --> 00:26:01,000 tanpa anda perlu tahu tentang atau mengambil berat tentang lokasi indeks angka. 483 00:26:01,000 --> 00:26:04,000 >> Dan kemudian akhir sekali, untuk sekarang, ada satu ciri lain PHP 484 00:26:04,000 --> 00:26:08,000 yang akan menjadi sangat berguna, terutamanya apabila kita mula pengaturcaraan di Web, 485 00:26:08,000 --> 00:26:10,000 dan yang dikenali sebagai array bersekutu. 486 00:26:10,000 --> 00:26:13,000 Array yang kita tahu setakat 20 saat yang lalu 487 00:26:13,000 --> 00:26:17,000 dan untuk 8 minggu yang lalu berangka diindeks array, 488 00:26:17,000 --> 00:26:20,000 jenis tatasusunan tradisional di mana indeks adalah ints, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, semua cara sehingga. 490 00:26:23,000 --> 00:26:25,000 Array bersekutu adalah banyak lebih berkuasa. 491 00:26:25,000 --> 00:26:28,000 Mereka membenarkan anda untuk mempunyai kunci yang sewenang-wenangnya, 492 00:26:28,000 --> 00:26:31,000 indeks sewenang-wenangnya dan nilai-nilai yang sewenang-wenangnya. 493 00:26:31,000 --> 00:26:34,000 Manakala dalam pelbagai tradisional ia adalah 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 dalam pelbagai bersekutu anda boleh mempunyai indeks 495 00:26:37,000 --> 00:26:41,000 atau kekunci foo mana nilainya adalah bar. 496 00:26:41,000 --> 00:26:46,000 Anda kemudiannya boleh mempunyai satu lagi kunci yang namanya Baz dan yang nilai qux. 497 00:26:46,000 --> 00:26:49,000 >> Sekali lagi, bodoh sains komputer generik nama pemboleh ubah di sini, 498 00:26:49,000 --> 00:26:55,000 tetapi persoalannya adalah bahawa pelbagai ini tidak mempunyai kurungan 0 atau pendakap 1. 499 00:26:55,000 --> 00:26:59,000 Ia sebaliknya akan mempunyai pendakap foo dan pendakap Baz. 500 00:26:59,000 --> 00:27:03,000 Ini adalah banyak lebih versatil bahawa kita akan dapat mengaitkan 501 00:27:03,000 --> 00:27:07,000 perkataan dengan perkataan lain, kunci dengan nilai sepenuhnya sewenang-wenangnya, 502 00:27:07,000 --> 00:27:12,000 dan kita akan dapat untuk mendapatkan nilai-nilai kembali dalam masa yang berterusan 503 00:27:12,000 --> 00:27:14,000 kerana di bawah hood apa pelbagai bersekutu 504 00:27:14,000 --> 00:27:16,000 benar-benar adalah jadual hash. 505 00:27:16,000 --> 00:27:20,000 Ingatlah bahawa jadual hash membolehkan anda untuk dimasukkan ke dalam beberapa input 506 00:27:20,000 --> 00:27:25,000 suka meletakkan di David perkataan jika anda mahu memasukkan Daud ke dalam beberapa jenis 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 kes ejaan, benar atau palsu. 509 00:27:29,000 --> 00:27:33,000 Daud atau apa sahaja perkataan di dalam atau tidak ada di dalam kamus. 510 00:27:33,000 --> 00:27:36,000 Pelbagai bersekutu adalah benar-benar hanya satu jadual hash, 511 00:27:36,000 --> 00:27:38,000 tetapi ia adalah penjelmaan pengguna yang lebih mesra. 512 00:27:38,000 --> 00:27:41,000 Seperti yang kita akan lihat, ia akan membolehkan kita untuk melakukan beberapa perkara 513 00:27:41,000 --> 00:27:43,000 sangat, sangat mudah. 514 00:27:43,000 --> 00:27:45,000 >> Mari kita lihat pada beberapa asas PHP 515 00:27:45,000 --> 00:27:47,000 contoh dan lihat apa yang kita boleh lakukan dengan bahasa ini. 516 00:27:47,000 --> 00:27:51,000 Biar saya pergi ke hadapan dan membuka dalam direktori sumber kami hari ini 517 00:27:51,000 --> 00:27:54,000 fail dipanggil hello1.php. 518 00:27:54,000 --> 00:27:57,000 Fail ini komen lebih daripada ia adalah kod sebenar, 519 00:27:57,000 --> 00:28:00,000 jadi biarlah saya sebenarnya membuang semua komen dari fail 520 00:28:00,000 --> 00:28:05,000 dan sekarang anda mungkin program PHP yang paling mudah di sini. 521 00:28:05,000 --> 00:28:07,000 5 baris, dan beberapa daripada mereka adalah ruang putih, 522 00:28:07,000 --> 00:28:09,000 jadi notis beberapa perbezaan utama di sini. 523 00:28:09,000 --> 00:28:12,000 Fail dipanggil hello1.php. 524 00:28:12,000 --> 00:28:16,000 Barisan pertama, walaupun, adalah 00:28:18,000 Serupa dalam semangat kepada HTML, 526 00:28:18,000 --> 00:28:21,000 bahawa jujukan aksara memberitahu komputer 527 00:28:21,000 --> 00:28:25,000 "Hei, komputer, di sini datang program kita berada di dalam PHP." 528 00:28:25,000 --> 00:28:28,000 Ia membuat pasti ia tidak keliru bahawa ia adalah beberapa bahasa lain. 529 00:28:28,000 --> 00:28:30,000 Line 2 adalah ruang putih yang menarik. 530 00:28:30,000 --> 00:28:32,000 Baris 3 adalah kawan lama kita 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 mempunyai versi tersendiri printf yang berkelakuan sama, 533 00:28:37,000 --> 00:28:39,000 jadi ini hanya akan mencetak "hello, dunia." 534 00:28:39,000 --> 00:28:46,000 Dan kemudian tag ini bertentangan di sini,>, bermakna itulah ia untuk kod PHP saya. 535 00:28:46,000 --> 00:28:48,000 >> Mari kita lihat bagaimana untuk menjalankan ini. 536 00:28:48,000 --> 00:28:50,000 Saya akan kembali ke tetingkap terminal saya di sini. 537 00:28:50,000 --> 00:28:52,000 Saya akan pergi ke dalam direktori PHP saya. 538 00:28:52,000 --> 00:28:56,000 Perhatikan bahawa kita mempunyai sekumpulan keseluruhan fail, salah satu yang pertama adalah hello.php. 539 00:28:56,000 --> 00:29:01,000 Biar saya pergi ke hadapan dan menjalankan ini hello1.php,, masukkan. 540 00:29:01,000 --> 00:29:03,000 Kebenaran ditolak. Okay. 541 00:29:03,000 --> 00:29:06,000 Bagaimanakah kita perkara-perkara seperti ini tetap pada masa lalu? 542 00:29:06,000 --> 00:29:08,000 Apa itu? >> [Sambutan pelajar didengar] 543 00:29:08,000 --> 00:29:11,000 Kita perlu membaca dan menulis, tetapi biarlah saya melakukan ls-l. 544 00:29:11,000 --> 00:29:14,000 Ingat ini output agak samar di mana hello1 545 00:29:14,000 --> 00:29:17,000 seolah-olah boleh dibaca dan ditulis oleh saya 546 00:29:17,000 --> 00:29:19,000 tetapi dibaca oleh orang lain. 547 00:29:19,000 --> 00:29:22,000 Ia ternyata ini sebenarnya tidak merupakan satu langkah ke arah yang betul. 548 00:29:22,000 --> 00:29:25,000 Perbezaan, sekali lagi, dengan bahasa yang ditafsirkan 549 00:29:25,000 --> 00:29:27,000 anda tidak menjalankan program secara langsung. 550 00:29:27,000 --> 00:29:30,000 Anda bukannya menjalankan jurubahasa dan bawanya ke kod 551 00:29:30,000 --> 00:29:33,000 bahawa anda telah ditulis supaya ia boleh mentafsirkan ia baris demi baris. 552 00:29:33,000 --> 00:29:36,000 Dalam kes ini, jurubahasa atau program Saya sebenarnya mahu menjalankan 553 00:29:36,000 --> 00:29:38,000 adalah benar-benar dipanggil PHP. 554 00:29:38,000 --> 00:29:41,000 >> Di suatu tempat pada cakera keras ini perkakas terdapat program 555 00:29:41,000 --> 00:29:45,000 orang lain wrote dipanggil PHP, atau pada Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Apa yang saya akan lakukan di sini adalah saya akan sebenarnya menjalankan PHP 557 00:29:48,000 --> 00:29:51,000 tetapi memberi ia sebagai hujah baris arahan kod yang saya tulis, 558 00:29:51,000 --> 00:29:54,000 dan kemudian saya akan zum keluar dan tekan enter. 559 00:29:54,000 --> 00:29:58,000 Ia berjalan program saya untuk saya, atas ke bawah, kiri ke kanan. 560 00:29:58,000 --> 00:30:01,000 Biar saya pergi ke hadapan dan membuka varians sedikit ini. 561 00:30:01,000 --> 00:30:05,000 Dalam notis hello2.php bahawa ini terlalu 562 00:30:05,000 --> 00:30:08,000 kebanyakannya komen, jadi biarlah saya menghilangkan mereka sebagai gangguan, 563 00:30:08,000 --> 00:30:13,000 dan apa yang jelas berbeza sekarang mengenai fail ini? 564 00:30:13,000 --> 00:30:15,000 Ada ini barisan baru, agak samar di atas. 565 00:30:15,000 --> 00:30:20,000 Dalam baris 1 #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin adalah satu konvensyen pada Linux dan Mac OS binari, 567 00:30:24,000 --> 00:30:27,000 jadi / bin bermakna ini adalah folder yang mengandungi sekumpulan binari 568 00:30:27,000 --> 00:30:29,000 yang diprogramkan, salah satu daripadanya ialah PHP. 569 00:30:29,000 --> 00:30:32,000 The #! digelar shebang, 570 00:30:32,000 --> 00:30:35,000 yang merupakan cara yang cepat untuk mengatakan ia, dan apa ini bermakna 571 00:30:35,000 --> 00:30:40,000 adalah bahawa apabila anda menjalankan program ini kini terdapat petunjuk di atas fail 572 00:30:40,000 --> 00:30:44,000 yang memberitahu komputer apa jurubahasa untuk menggunakan. 573 00:30:44,000 --> 00:30:47,000 >> Ia mendapat sedikit menjengkelkan jika anda terpaksa untuk memberitahu pengguna anda dan pelanggan anda 574 00:30:47,000 --> 00:30:50,000 "Hei, kita menulis program ini dipanggil hello1.php." 575 00:30:50,000 --> 00:30:54,000 Apa yang anda perlu lakukan adalah selama-lamanya menjalankan PHP dan kemudian nama program ini. 576 00:30:54,000 --> 00:30:58,000 Terus terang, ia hanya akan menjadi lebih bagus untuk menjalankan hello1.php, 577 00:30:58,000 --> 00:31:00,000 dan sememangnya, kita boleh jika kita melakukan perkara-perkara berikut. 578 00:31:00,000 --> 00:31:05,000 Biar saya pergi ke hadapan dan melakukan ls-l, dan notis dalam hello2 ia masih hanya membaca menulis 579 00:31:05,000 --> 00:31:10,000 dan kemudian membaca membaca, jadi saya tidak boleh lagi melakukan ini, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Tetapi kita memperkenalkan pernah begitu ringkas masa lepas, arahan chmod. 581 00:31:15,000 --> 00:31:20,000 Jika saya lakukan chmod x +, yang bermaksud semua executability ditambah, 582 00:31:20,000 --> 00:31:26,000 dan kemudian hello2.php dan kemudian ls-l lagi notis apa yang berubah. 583 00:31:26,000 --> 00:31:29,000 Satu, Linux menunjukkan saya nama fail hijau untuk menyampaikan idea 584 00:31:29,000 --> 00:31:32,000 bahawa ia laku, tetapi yang lebih penting, di sebelah kiri 585 00:31:32,000 --> 00:31:36,000 melihat bahawa sedikit yang mewakili x bagi laksana kini telah ditetapkan. 586 00:31:36,000 --> 00:31:42,000 Apa ini sekarang bermakna saya boleh berlari ./hello2.php seperti biasa, 587 00:31:42,000 --> 00:31:45,000 tekan enter, dan kerana shebang di atas fail 588 00:31:45,000 --> 00:31:48,000 itulah petunjuk, sekali lagi, untuk Linux yang mengatakan 589 00:31:48,000 --> 00:31:51,000 menggunakan jurubahasa ini untuk menjalankan fail ini. 590 00:31:51,000 --> 00:31:54,000 Jangan bimbang tentang memaksa pengguna untuk sebenarnya menaip. 591 00:31:54,000 --> 00:31:57,000 >> Dan apa yang bagus sekarang ialah ia jenis tidak relevan kepada pelanggan saya atau rakan-rakan saya 592 00:31:57,000 --> 00:32:01,000 apa bahasa saya menulis program ini, jadi saya boleh pergi ke hadapan dengan mv 593 00:32:01,000 --> 00:32:04,000 dan menamakan semula perkara ini untuk hello2, misalnya. 594 00:32:04,000 --> 00:32:07,000 Dan kini jika saya lakukan ./hello2 595 00:32:07,000 --> 00:32:10,000 dan zum keluar program saya terus berjalan. 596 00:32:10,000 --> 00:32:13,000 Ini sambungan fail konvensyen manusia yang perlu 597 00:32:13,000 --> 00:32:15,000 untuk sesuatu seperti dilafaz dan Buat yang mencari mereka. 598 00:32:15,000 --> 00:32:18,000 Tetapi untuk PHP, saya boleh panggil ini apa-apa lanjutan fail yang saya mahu. 599 00:32:18,000 --> 00:32:22,000 Saya boleh menipu dunia ke dalam pemikiran bahawa saya benar-benar baik di Ruby, 600 00:32:22,000 --> 00:32:25,000 dan saya boleh menulis hello2.rb dan kemudian jalankan ini, 601 00:32:25,000 --> 00:32:28,000 dan Voilà, sekarang saya mempunyai versi Ruby, yang adalah satu pembohongan yang lengkap. 602 00:32:28,000 --> 00:32:30,000 Tetapi sambungan fail adalah tidak bermakna 603 00:32:30,000 --> 00:32:35,000 jika fail boleh laksana dan ini tanda-tanda khas pada bahagian atas fail. 604 00:32:35,000 --> 00:32:38,000 >> Kini, sebagai mengetepikan, biar saya tunjukkan anda dengan cepat versi 3, 605 00:32:38,000 --> 00:32:40,000 yang jenis helah berguna untuk mengetahui. 606 00:32:40,000 --> 00:32:45,000 Dalam hello3 saya melakukan sesuatu yang sedikit salah 607 00:32:45,000 --> 00:32:47,000 bahawa saya akan mengemaskini kod sumber dalam talian. 608 00:32:47,000 --> 00:32:50,000 Dalam 3 versi ternyata bahawa pada kebanyakan komputer Linux 609 00:32:50,000 --> 00:32:53,000 ada satu program yang dipanggil plates untuk alam sekitar, 610 00:32:53,000 --> 00:32:56,000 dan apa yang anda boleh lakukan di sini adalah jika anda tidak mempunyai idea di mana PHP 611 00:32:56,000 --> 00:33:00,000 dipasang pada hard drive tempatan, kerana sesungguhnya ia boleh berbeza berdasarkan pada komputer 612 00:33:00,000 --> 00:33:03,000 bahawa seseorang itu menggunakan, plates hanya berkata dijalankan plates, 613 00:33:03,000 --> 00:33:07,000 yang adalah pada sistem yang paling, dan memikirkan di mana PHP adalah. 614 00:33:07,000 --> 00:33:11,000 Hanya helah biasa supaya anda tidak perlu bimbang tentang mencari mana program. 615 00:33:11,000 --> 00:33:14,000 Tetapi jika anda melakukan penjagaan untuk mengetahui mana program dan anda tidak dijaga setakat 616 00:33:14,000 --> 00:33:16,000 anda boleh menggunakan arahan yang. 617 00:33:16,000 --> 00:33:19,000 >> Izinkan saya zoom out dan jenis yang php, 618 00:33:19,000 --> 00:33:23,000 dan notis ia memberitahu saya ia sebenarnya dalam usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 Ia adalah jenis satu pembohongan. Ia juga dalam bin. 620 00:33:25,000 --> 00:33:27,000 Ia hanya menunjukkan saya hit pertamanya. 621 00:33:27,000 --> 00:33:31,000 Jika anda pernah tertanya-tanya mana dilafaz, yang dilafaz, itulah di usr / bin / dilafaz, 622 00:33:31,000 --> 00:33:34,000 yang membuat, usr / bin / membuat, dan apa yang bermakna adalah semua masa ini 623 00:33:34,000 --> 00:33:38,000 anda mungkin telah menaip usr / bin / dilafaz memasuki untuk menjalankan dilafaz, 624 00:33:38,000 --> 00:33:41,000 tetapi ia jenis membosankan untuk berbuat demikian, jadi beberapa folder 625 00:33:41,000 --> 00:33:44,000 seperti usr / bin dan bin dianggap mungkir 626 00:33:44,000 --> 00:33:50,000 jadi komputer tahu untuk melihat di dalamnya untuk anda. 627 00:33:50,000 --> 00:33:53,000 Sebarang pertanyaan mengenai penulisan program, Dunia super super Hello mudah 628 00:33:53,000 --> 00:33:55,000 dalam PHP dan kemudian berjalan? 629 00:33:55,000 --> 00:33:59,000 Kerana sekarang kita akan mula 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 ini kita telah melihat sebenarnya mereka semua sebelum. 632 00:34:03,000 --> 00:34:07,000 >> Jika saya membuka, sebagai contoh, mari kita buat beer1.php, 633 00:34:07,000 --> 00:34:09,000 kita tidak akan pergi melalui beberapa versi ini, tetapi apa yang saya lakukan 634 00:34:09,000 --> 00:34:13,000 saya duduk dan ia dicurahkan atau ditukar 635 00:34:13,000 --> 00:34:15,000 kod C saya untuk kod PHP di sini. 636 00:34:15,000 --> 00:34:18,000 Kebanyakan bahagian atas fail adalah komen di sini. 637 00:34:18,000 --> 00:34:20,000 Ia ternyata terdapat satu fungsi baru kita perlu dipanggil readline. 638 00:34:20,000 --> 00:34:23,000 GetString, ingat, dari seterusnya Minggu 0 adalah satu perkara yang CS50. 639 00:34:23,000 --> 00:34:27,000 PHP datang dengan fungsi tersendiri mesra pengguna dipanggil readline 640 00:34:27,000 --> 00:34:30,000 yang mengambil masa 1 hujah yang menyatakan prompt 641 00:34:30,000 --> 00:34:33,000 yang anda mahu untuk menunjukkan kepada pengguna, dan apa readline tidak 642 00:34:33,000 --> 00:34:35,000 ia kembali apa-apa jenis pengguna. 643 00:34:35,000 --> 00:34:39,000 Dalam kes ini, saya mengisytiharkan pembolehubah yang dipanggil $ n. 644 00:34:39,000 --> 00:34:42,000 Saya menyimpan di dalamnya nilai pulangan readline 645 00:34:42,000 --> 00:34:44,000 selepas menyebabkan pengguna dengan rentetan ini. 646 00:34:44,000 --> 00:34:47,000 Hanya untuk sandaran, untuk benar-benar menjalankan perkara ini, izinkan saya pergi ke hadapan 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 hanya melakukan 2 kali ini. 649 00:34:53,000 --> 00:34:55,000 Enter. Itu semua. 650 00:34:55,000 --> 00:34:59,000 >> Program ini berfungsi sama dengan versi C dari minggu lalu. 651 00:34:59,000 --> 00:35:01,000 Tetapi syntactically mari kita lihat apa yang berbeza. 652 00:35:01,000 --> 00:35:05,000 Selepas saya mendapat int dari notis pengguna bahawa saya melakukan beberapa semakan ralat, 653 00:35:05,000 --> 00:35:08,000 dan jika n adalah kurang daripada 1 saya berhenti dan saya hendak mencetak keluar 654 00:35:08,000 --> 00:35:11,000 mesej maaf kepada pengguna dan keluar dengan 1. 655 00:35:11,000 --> 00:35:13,000 Ini juga adalah sedikit berbeza. 656 00:35:13,000 --> 00:35:16,000  Dalam C apa yang kita lakukan? Dalam C kita kembali 1. 657 00:35:16,000 --> 00:35:20,000 Dalam PHP anda keluar dengan 1, yang terus-terang saya fikir sedikit lebih intuitif 658 00:35:20,000 --> 00:35:22,000 kerana anda benar-benar keluar program. 659 00:35:22,000 --> 00:35:25,000 Semua hak, dan kemudian turun di sini lagu menjengkelkan adalah sama syntactically 660 00:35:25,000 --> 00:35:29,000 kecuali bagi pemboleh ubah, jadi di sini selaras 24 seterusnya 661 00:35:29,000 --> 00:35:31,000 notis saya untuk gelung adalah hampir sama, 662 00:35:31,000 --> 00:35:34,000 tetapi saya mempunyai $ di hadapan i dan n, 663 00:35:34,000 --> 00:35:37,000 dan apa juga hilang daripada 26 baris yang kita telah pada masa lalu 664 00:35:37,000 --> 00:35:39,000 apabila mengisytiharkan i ubah? 665 00:35:39,000 --> 00:35:41,000 Ada jenis no. 666 00:35:41,000 --> 00:35:43,000 Ia adalah betul dalam PHP untuk mengatakan int. 667 00:35:43,000 --> 00:35:45,000 Anda hanya tidak perlu untuk berbuat demikian. 668 00:35:45,000 --> 00:35:48,000 Komputer, jurubahasa PHP adalah cukup bijak untuk menyedari 669 00:35:48,000 --> 00:35:51,000 bahawa jika anda meletakkan nombor dalam $ saya ia akan merawat ia 670 00:35:51,000 --> 00:35:53,000 sebagai nombor untuk anda. 671 00:35:53,000 --> 00:35:57,000 Dan kemudian turun di sini kita palam dalam $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Semua itu adalah sama, dan kemudian turun di sini kita lakukan "Wow, itu menjengkelkan" 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, Fleet di sini adalah bahawa walaupun kita akan menghabiskan agak 675 00:36:05,000 --> 00:36:09,000 sedikit masa pada PHP, sudah tentu berbanding apa yang kita lakukan pada C, 676 00:36:09,000 --> 00:36:12,000 ia adalah hampir sama, dan sebagainya apa yang kita akan lakukan hari ini dan minggu depan 677 00:36:12,000 --> 00:36:14,000 dan seterusnya memberi tumpuan benar-benar pada beberapa idea-idea baru. 678 00:36:14,000 --> 00:36:17,000 Hanya untuk melihat bahawa satu perkara lain tidak menterjemahkan lebih dari C, 679 00:36:17,000 --> 00:36:20,000 ini adalah program super mudah kita lakukan dalam 1 Minggu 680 00:36:20,000 --> 00:36:22,000 atau 2 yang cubed nilai. 681 00:36:22,000 --> 00:36:25,000 Tetapi apa yang menarik pada masa tentang program ini adalah bahawa ia 682 00:36:25,000 --> 00:36:28,000 memperkenalkan konsep fungsi adat bertulis bahawa kita menulis. 683 00:36:28,000 --> 00:36:31,000 Sintaks dalam PHP adalah hampir sama. 684 00:36:31,000 --> 00:36:33,000 Berikut adalah program saya top up. 685 00:36:33,000 --> 00:36:35,000 Notis lagi hadir adalah apa-apa tanggapan utama. 686 00:36:35,000 --> 00:36:39,000 Saya mula menulis kod, dan ini adalah apa yang akan disempurnakan oleh jurubahasa. 687 00:36:39,000 --> 00:36:42,000 Saya hendak mencetak keluar x ialah kini 2, mungkin. 688 00:36:42,000 --> 00:36:44,000 Kemudian saya menuntut cubing ... 689 00:36:44,000 --> 00:36:47,000 Kemudian saya memanggil fungsi kiub dan lulus dalam $ x 690 00:36:47,000 --> 00:36:50,000 dan memberikan nilai pulangan kepada $ x. 691 00:36:50,000 --> 00:36:53,000 Kemudian saya mendakwa bahawa ia cubed, dan kemudian saya katakan ini, yang diharapkan 692 00:36:53,000 --> 00:36:55,000 akan mengatakan x kini 8. 693 00:36:55,000 --> 00:36:59,000 Sintaks untuk fungsi dalam PHP pernah jadi sedikit berbeza. 694 00:36:59,000 --> 00:37:01,000 Sekali lagi hilang adalah jenis pulangan. 695 00:37:01,000 --> 00:37:05,000 Sekali lagi hilang adalah jenis pulangan dan juga hilang apa jenis lain? 696 00:37:05,000 --> 00:37:07,000 [Sambutan pelajar didengar] 697 00:37:07,000 --> 00:37:10,000 Well, okay, yang baik. Mari kita kembali di tempat kedua. 698 00:37:10,000 --> 00:37:12,000 >> Kami tidak mempunyai, misalnya, int sini. 699 00:37:12,000 --> 00:37:15,000 Kami tidak, misalnya, telah int sini kerana, sekali lagi, dalam PHP 700 00:37:15,000 --> 00:37:18,000 anda hanya tidak perlu dan tidak perlu berbuat demikian, 701 00:37:18,000 --> 00:37:20,000 tetapi terdapat kata kunci ini baru yang dipanggil fungsi. 702 00:37:20,000 --> 00:37:23,000 Dalam PHP ia adalah hampir jelas sedikit kerana apabila anda mahu fungsi 703 00:37:23,000 --> 00:37:26,000 anda benar-benar mengatakan fungsi, anda memberikan nama dan kemudian senarai dipisahkan koma 704 00:37:26,000 --> 00:37:28,000 jika mana-mana hujah. 705 00:37:28,000 --> 00:37:32,000 Tidak perlu untuk mengatakan batal atau apa-apa seperti itu, dan kemudian pulangan adalah sama, 706 00:37:32,000 --> 00:37:35,000 $ * $ * $ A. 707 00:37:35,000 --> 00:37:38,000 Apa juga hilang? Sammy menunjukkan ini di sini. 708 00:37:38,000 --> 00:37:43,000 Pada bahagian atas fail sepenuhnya hadir dalam PHP juga adalah prototaip. 709 00:37:43,000 --> 00:37:45,000 Ini juga adalah oleh reka bentuk. 710 00:37:45,000 --> 00:37:48,000 Bahasa dan jurubahasa seperti PHP adalah lebih bijak daripada C pernah berada 711 00:37:48,000 --> 00:37:50,000 dalam penyusun seperti dilafaz. 712 00:37:50,000 --> 00:37:53,000 >> Recall dilafaz bahawa, jika anda tidak memberitahu bahawa kiub wujud, 713 00:37:53,000 --> 00:37:56,000 jika anda tidak beritahu yang printf wujud dengan prototaip 714 00:37:56,000 --> 00:38:00,000 atau dengan # include, baik, ia akan menjerit pada anda dan tidak juga menyusun kod anda. 715 00:38:00,000 --> 00:38:03,000 PHP dan lebih bahasa moden banyak yang lebih bijak apabila ia datang kepada ini. 716 00:38:03,000 --> 00:38:07,000 Mereka akan mengambil ia ke atas diri mereka untuk membaca melalui semua kod anda 717 00:38:07,000 --> 00:38:11,000 dan kemudian menjerit pada anda hanya jika ia mendapati mana-mana kiub. 718 00:38:11,000 --> 00:38:15,000 Ia tidak kisah jika kiub adalah di bahagian bawah atau atas atau walaupun dalam fail beberapa berasingan. 719 00:38:15,000 --> 00:38:18,000 Bahasa PHP dan serupa kini cukup pintar untuk melihat ke hadapan 720 00:38:18,000 --> 00:38:26,000 pada segala-galanya sebelum deeming anda setelah membuat kesilapan. 721 00:38:26,000 --> 00:38:28,000 Di manakah yang meninggalkan kita? 722 00:38:28,000 --> 00:38:32,000 >> Mari kita buat satu contoh lepas di sini dalam keadaan, 723 00:38:32,000 --> 00:38:35,000 dan jika saya membuka notis conditions2.php terlalu 724 00:38:35,000 --> 00:38:37,000 sintaks sini adalah hampir sama. 725 00:38:37,000 --> 00:38:40,000 Saya menggunakan readline bukannya GetString, tetapi garis yang sama seperti sebelum ini, 726 00:38:40,000 --> 00:38:42,000 "Saya ingin integer sila." 727 00:38:42,000 --> 00:38:45,000 Saya kemudian mempunyai keadaan jika, else if, dan kemudian lain, 728 00:38:45,000 --> 00:38:48,000 tetapi fungsi program ini adalah juga sama dengan apa yang kita lakukan minggu lalu, 729 00:38:48,000 --> 00:38:51,000 jadi jika saya menghadapi perkara ini, php-conditions2, 730 00:38:51,000 --> 00:38:54,000 dan saya memberikan nombor seperti 23 - 731 00:38:54,000 --> 00:38:57,000 Saya mengambil nombor positif. Jika saya memberikan ia -1 saya memilih nombor negatif. 732 00:38:57,000 --> 00:39:00,000 Jika saya memberikan ia 0 sesungguhnya aku mengambil 0. 733 00:39:00,000 --> 00:39:02,000 Jadi yang mengambil berat tentang semua ini? 734 00:39:02,000 --> 00:39:06,000 Nah, salah satu jenis yang menyeronokkan senaman di sini 735 00:39:06,000 --> 00:39:10,000 bagi saya sekurang-kurangnya adalah untuk kembali dan lihat berapa cepat saya boleh melaksanakan pset 5, 736 00:39:10,000 --> 00:39:12,000 pset ejaan. 737 00:39:12,000 --> 00:39:15,000 Ingat bahawa terdapat fail ini dipanggil speller.c, 738 00:39:15,000 --> 00:39:17,000 dan terdapat fail yang dipanggil dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Apa yang saya lakukan ialah saya jenis menghabiskan beberapa minit dan saya ditukar kod C 740 00:39:20,000 --> 00:39:23,000 kod PHP, dan kita tidak akan menghabiskan banyak masa di pengeja 741 00:39:23,000 --> 00:39:26,000 kerana seperti dalam pset 5 anda tidak benar-benar perlu 742 00:39:26,000 --> 00:39:29,000 banyak menghabiskan masa di pengeja sendiri kerana perhatian anda adalah pada kamus. 743 00:39:29,000 --> 00:39:32,000 >> Cukup untuk mengatakan bahawa jika anda membaca melalui pengeja, 744 00:39:32,000 --> 00:39:35,000 fail ini di sini, ia adalah cukup banyak bersamaan dengan kod 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 sahaja menambah beberapa $ di tempat-tempat. 747 00:39:39,000 --> 00:39:43,000 Saya telah menukar nama fungsi tertentu jika mereka tidak wujud dalam PHP. 748 00:39:43,000 --> 00:39:45,000 Ada satu perkara tambahan di sini, preg_match, 749 00:39:45,000 --> 00:39:48,000 yang merupakan cara yang sedikit penjaga melakukan sesuatu, tetapi kita akan kembali yang akhirnya. 750 00:39:48,000 --> 00:39:51,000 Tetapi dalam jangka pendek, pengeja hampir sama, dan jika anda melihat pada bahagian bawah sangat 751 00:39:51,000 --> 00:39:54,000 apa yang ia akhirnya memuntahkannya keluar adalah ini di sini, 752 00:39:54,000 --> 00:39:57,000 perkataan silap eja, perkataan di dalam kamus, perkataan dalam teks. 753 00:39:57,000 --> 00:40:00,000 Baiklah, jadi apa yang menarik sekarang adalah seperti berikut. 754 00:40:00,000 --> 00:40:05,000 Pada bahagian atas fail saya saya memerlukan dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Sama seperti C # include PHP mempunyai fungsi khas yang dipanggil memerlukan 756 00:40:09,000 --> 00:40:14,000 yang cukup banyak melakukan perkara yang sama, memerlukan fail dipanggil dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Bagaimana saya boleh pergi tentang melaksanakan pset 5? 758 00:40:18,000 --> 00:40:21,000 Biar saya pergi ke hadapan dan membuka fail di sini. 759 00:40:21,000 --> 00:40:24,000 Izinkan saya mengambil rujukan sedikit di sini. 760 00:40:24,000 --> 00:40:29,000 Dan biarlah saya mencipta fail baru dan mula memanggil dictionary.php ini. 761 00:40:29,000 --> 00:40:31,000 Izinkan saya meletakkan ia dalam folder lain supaya kita boleh lakukan ini hidup. 762 00:40:31,000 --> 00:40:33,000 Dan sekarang saya akan zum masuk 763 00:40:33,000 --> 00:40:37,000 Saya akan memulakan fail PHP saya dengan kurungan terbuka php ditutup kurungan. 764 00:40:37,000 --> 00:40:40,000 Dan kemudian di sini terdapat beberapa fungsi yang saya perlu untuk melaksanakan untuk pset 5, 765 00:40:40,000 --> 00:40:42,000 jadi biarlah saya mula melaksanakan beberapa orang, 766 00:40:42,000 --> 00:40:47,000 jadi cek fungsi, yang terpaksa mengambil perkataan dalam sebagai hujah. 767 00:40:47,000 --> 00:40:49,000 Kami akan berbuat demikian dan datang kembali ke dalam seketika. 768 00:40:49,000 --> 00:40:53,000 >> Terdapat beban fungsi, yang mengambil dalam apa sebagai hujah? 769 00:40:53,000 --> 00:40:56,000 Kamus, jadi fail bahawa saya sebenarnya mahu beban. 770 00:40:56,000 --> 00:41:00,000 Terdapat saiz fungsi, yang tidak mengambil apa-apa hujah 771 00:41:00,000 --> 00:41:04,000 dan terdapat fungsi-apa yang lain? 772 00:41:04,000 --> 00:41:06,000 Membongkar, yang tidak mengambil apa-apa hujah yang sama ada. 773 00:41:06,000 --> 00:41:10,000 Ini adalah 4 fungsi yang saya perlu kini melaksanakan dalam PHP, 774 00:41:10,000 --> 00:41:13,000 dan apa yang saya akan lakukan adalah pergi ke hadapan dan melakukan ini. 775 00:41:13,000 --> 00:41:16,000 Banyak anda menggunakan jadual hash di pset 5, 776 00:41:16,000 --> 00:41:21,000 jadi biarlah saya pergi ke hadapan dan membuat jadual hash dalam PHP. 777 00:41:21,000 --> 00:41:23,000 Selesai. 778 00:41:23,000 --> 00:41:25,000 Itu memberikan saya jadual hash. Nah, mengapa? 779 00:41:25,000 --> 00:41:30,000 Satu, pembolehubah dipanggil $ jadual, hanya nampak idea jadual hash. 780 00:41:30,000 --> 00:41:34,000 Kurungan persegi, walaupun, ingat, mewakili apa? 781 00:41:34,000 --> 00:41:37,000 Array, tetapi dalam tatasusunan PHP tidak perlu berangka diindeks. 782 00:41:37,000 --> 00:41:41,000 Mereka juga boleh menjadi array bersekutu, 783 00:41:41,000 --> 00:41:44,000 yang bermakna anda boleh mempunyai kunci sewenang-wenangnya dan nilai-nilai. 784 00:41:44,000 --> 00:41:49,000 >> Banyak seperti dalam pset 5, orang-orang yang melakukan pelaksanaan jadual hash 785 00:41:49,000 --> 00:41:53,000 anda mungkin dimasukkan perkataan dan kemudian dimasukkan ke dalam rantaian senarai yang dipautkan, 786 00:41:53,000 --> 00:41:56,000 atau anda disimpan nilai suatu tempat yang benar atau sesuatu yang bermaksud sedemikian. 787 00:41:56,000 --> 00:41:59,000 Anda entah bagaimana teringat hakikat bahawa perkataan berada di sana. 788 00:41:59,000 --> 00:42:01,000 Buat masa sekarang, yang akan menjadi jadual hash saya, 789 00:42:01,000 --> 00:42:06,000 dan sebagainya sekarang untuk pergi tentang melaksanakan fungsi cek 790 00:42:06,000 --> 00:42:09,000 Saya hanya perlu melihat di dalam jadual yang hash 791 00:42:09,000 --> 00:42:11,000 dan lihat jika perkataan ada. 792 00:42:11,000 --> 00:42:15,000 Apa yang saya akan lakukan adalah saya akan katakan jika- 793 00:42:15,000 --> 00:42:20,000 katakan isset, yang merupakan fungsi PHP yang benar-benar hanya bermakna adalah set utama, 794 00:42:20,000 --> 00:42:24,000 jadi isset ($ jadual [$ perkataan], 795 00:42:24,000 --> 00:42:29,000 dan jika demikian kembali benar. 796 00:42:29,000 --> 00:42:32,000 Itu sahaja. Itulah pset 5 dalam PHP. 797 00:42:32,000 --> 00:42:34,000 Nah, dalam keadilan, okay. 798 00:42:34,000 --> 00:42:37,000 Lain kembali palsu, jadi ia tidak ada. 799 00:42:37,000 --> 00:42:39,000 Apa yang benar-benar berlaku di sini? 800 00:42:39,000 --> 00:42:42,000 Nah, jika jadual-atau jadual hash sini lebih amnya 801 00:42:42,000 --> 00:42:46,000 adalah pelbagai bersekutu yang bermakna anda boleh indeks ke dalamnya 802 00:42:46,000 --> 00:42:50,000 dengan perkataan seperti "perkataan," dan anda perlu untuk mendapatkan kembali beberapa nilai. 803 00:42:50,000 --> 00:42:52,000 >> Kami jenis mendapatkan satu langkah di hadapan diri kita. 804 00:42:52,000 --> 00:42:56,000 Ia akan menjadi jenis bagus jika kita sebenarnya dimuatkan fail yang pertama, 805 00:42:56,000 --> 00:42:58,000 jadi beban tidak cukup sebagai mudah, tetapi biarlah saya pergi ke hadapan dan menyiapkan 806 00:42:58,000 --> 00:43:00,000  pelaksanaan yang benar-benar cepat beban. 807 00:43:00,000 --> 00:43:07,000 Biar saya pergi ke hadapan dan mengatakan perkataan mendapat kamus fail. 808 00:43:07,000 --> 00:43:10,000 Fungsi fail dalam PHP membuka fail 809 00:43:10,000 --> 00:43:12,000 dan pulangan kepada anda pelbagai semua perkataan dalam fail itu, 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 sakit yang besar juga, tidak ia? 812 00:43:16,000 --> 00:43:21,000 Sekarang foreach, ini adalah membina baru kami, foreach ($ perkataan $ perkataan). 813 00:43:21,000 --> 00:43:25,000 Gelung ini akan untuk memulakan iterating lebih perkataan pelbagai 814 00:43:25,000 --> 00:43:30,000 dan menyerahhak kepada pembolehubah $ perkataan setiap perkataan dalam fail 815 00:43:30,000 --> 00:43:32,000 dari yang pertama kedua ketiga keempat sepanjang jalan 816 00:43:32,000 --> 00:43:35,000 jadi saya tidak perlu untuk melakukan yang menjengkelkan [i] notasi dan sebagainya. 817 00:43:35,000 --> 00:43:38,000 Dan apa yang saya akan lakukan untuk setiap kata-kata 818 00:43:38,000 --> 00:43:43,000 menyimpannya dalam jadual saya dengan mengindeks ke dalam jadual 819 00:43:43,000 --> 00:43:47,000 dan kemudian melakukan benar kerana untuk ingat 820 00:43:47,000 --> 00:43:50,000 bahawa perkataan di dalam kamus saya semua saya benar-benar perlu lakukan 821 00:43:50,000 --> 00:43:55,000 jenis flip sedikit dan mengatakan perkataan ini dalam jadual hash saya ada, benar. 822 00:43:55,000 --> 00:43:58,000 Dan jika ia tidak ada, saya tidak perlu jelas meletakkan palsu, 823 00:43:58,000 --> 00:44:01,000 sebaliknya saya perlu meletakkan palsu untuk semua kata-kata yang mungkin dalam alam semesta. 824 00:44:01,000 --> 00:44:05,000 >> Ia mencukupi bagi saya hanya untuk menetapkan nilai indeks 825 00:44:05,000 --> 00:44:09,000 kepada true jika perkataan sebenarnya dalam jadual hash saya. 826 00:44:09,000 --> 00:44:12,000 Sekarang, saya memotong beberapa sudut di sini bahawa saya akan gelombang tangan saya pada sekarang, 827 00:44:12,000 --> 00:44:15,000 tetapi kini fungsi beban dilakukan. 828 00:44:15,000 --> 00:44:18,000 Saya memuatkan semua perkataan dari fail ke array. 829 00:44:18,000 --> 00:44:21,000 Saya melelar lebih array bahawa, dan untuk setiap perkataan dalam pelbagai 830 00:44:21,000 --> 00:44:24,000 Saya palamkan ia ke dalam jadual hash saya dengan 1 baris kod. 831 00:44:24,000 --> 00:44:26,000 Ini adalah menyeronokkan. Anda tahu bagaimana kita boleh melaksanakan saiz sekarang? 832 00:44:26,000 --> 00:44:28,000 Nah, saiz sentiasa cukup mudah, dalam keadilan. 833 00:44:28,000 --> 00:44:32,000 Di sini kita hanya boleh melakukan kembali kiraan jadual. 834 00:44:32,000 --> 00:44:34,000 Itu agak mudah juga, mengira bilangan perkara dalam jadual. 835 00:44:34,000 --> 00:44:36,000 Itulah sebenarnya jenis bukan yang paling berkesan. 836 00:44:36,000 --> 00:44:39,000 Saya mungkin perlu mempunyai saiz yang berubah-ubah yang dipanggil supaya kita boleh melakukannya 837 00:44:39,000 --> 00:44:41,000 dalam masa yang berterusan, tetapi itu cukup mudah. 838 00:44:41,000 --> 00:44:45,000 Oh, dan kemudian memunggah, jika kita benar-benar mahu menjadi dubur sini 839 00:44:45,000 --> 00:44:47,000 kita boleh mengatakan bahawa bagaimana anda memunggah sesuatu. 840 00:44:47,000 --> 00:44:49,000 Anda hanya menetapkan pembolehubah yang sama kepada pelbagai kosong, 841 00:44:49,000 --> 00:44:51,000 dan ia menghilangkan segala-galanya yang berada di sana. 842 00:44:51,000 --> 00:44:53,000 Tidak perlu untuk memanggil bebas. 843 00:44:53,000 --> 00:44:56,000 >> Sekali lagi, saya telah memotong beberapa sudut, dan saya memohon maaf kerana set masalah menyerahhakkan 5 844 00:44:56,000 --> 00:45:00,000 mungkin dalam C, tetapi jika kita kini pergi ke hadapan dan menjalankan ini, 845 00:45:00,000 --> 00:45:02,000 Saya akan benar-benar menjalankan versi yang saya tulis terlebih dahulu 846 00:45:02,000 --> 00:45:05,000 hanya supaya saya tidak membuat apa-apa kesilapan sintaksis jua. 847 00:45:05,000 --> 00:45:08,000 Biar saya pergi ke hadapan dan menjalankan pengeja. Penggunaan adalah sama. 848 00:45:08,000 --> 00:45:12,000 Berikut adalah fail kamus yang hanya mengandungi perkataan foo. 849 00:45:12,000 --> 00:45:15,000 Berikut adalah fail teks yang hanya mengandungi foo bar. 850 00:45:15,000 --> 00:45:19,000 Mari kita semak ejaan ini, jadi pengeja, dengan menggunakan fail ini kamus pada fail teks ini. 851 00:45:19,000 --> 00:45:21,000 Ada satu perkataan silap eja, bar, dan Voilà. 852 00:45:21,000 --> 00:45:23,000 Selesai dengan pset 5. 853 00:45:23,000 --> 00:45:30,000 Mari kita rehat 5-minit di sini, dan kita akan 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 tidak membenci saya untuk seketika. 856 00:45:34,000 --> 00:45:37,000 Mari kita kini sebenarnya melihat jika ini tidak positif 857 00:45:37,000 --> 00:45:39,000 sebenarnya melaksanakan perkara ini dalam PHP. 858 00:45:39,000 --> 00:45:43,000 Diberikan, ia mengambil masa 45 saat untuk melaksanakan. 859 00:45:43,000 --> 00:45:45,000 >> Tetapi mari kita teruskan sekarang dan menjalankan perkara. 860 00:45:45,000 --> 00:45:49,000 Biar saya pergi ke hadapan dan menjalankan versi C 861 00:45:49,000 --> 00:45:52,000 ejaan, dan kami akan menjalankan pada salah satu fail terbesar, 862 00:45:52,000 --> 00:45:54,000 yang merupakan Bible King James. 863 00:45:54,000 --> 00:45:57,000 Dan bahawa di sini adalah dalam mari kita pergi ke folder C kami, 864 00:45:57,000 --> 00:46:01,000 pengeja on King James 5. 865 00:46:01,000 --> 00:46:03,000 Banyak perkataan silap eja. 866 00:46:03,000 --> 00:46:06,000 Okay, jadi itulah output anda mungkin mendapat walaupun masa adalah sedikit berbeza, 867 00:46:06,000 --> 00:46:09,000 jika anda mendapat segala-galanya berfungsi dengan betul, dan jadi masa dalam jumlah semak ejaan 868 00:46:09,000 --> 00:46:13,000 Bible King James adalah 0,38 saat, jadi cukup baik menggunakan pelaksanaan yang. 869 00:46:13,000 --> 00:46:16,000 Sekarang izinkan saya pergi ke versi PHP, yang kita hanya menulis. 870 00:46:16,000 --> 00:46:18,000 Biar saya menjalankan pengeja pada Raja James. 871 00:46:18,000 --> 00:46:21,000 Oop, mengabaikan kesilapan itu. Saya dalam direktori salah. 872 00:46:21,000 --> 00:46:24,000 Speller on King James 5. 873 00:46:46,000 --> 00:46:48,000 Hampir selesai. 874 00:46:48,000 --> 00:46:51,000 >> Okay, pemerhati bijak akan menyedari bahawa adalah lebih daripada 3 saat di sana. 875 00:46:51,000 --> 00:46:54,000 Itu adalah masa yang benar berjalan. 876 00:46:54,000 --> 00:46:58,000 Ia ternyata bahawa ia mengambil masa untuk meludah banyak teks keluar 877 00:46:58,000 --> 00:47:00,000 kerana buffering isu, tetapi cerita panjang pendek, 878 00:47:00,000 --> 00:47:04,000 yang adalah 3.15 saat mesin masa, masa CPU, 879 00:47:04,000 --> 00:47:07,000 berbanding apa yang ia seketika lalu? 880 00:47:07,000 --> 00:47:09,000 Seperti 0,3. 881 00:47:09,000 --> 00:47:11,000 Maksud saya, ia adalah suatu perintah magnitud lebih perlahan, jadi di mana adalah bahawa 882 00:47:11,000 --> 00:47:14,000 kelembapan tidak masuk akal yang datang dari? 883 00:47:14,000 --> 00:47:17,000 Well, seperti yang telah terjadi dengan keputusan reka bentuk yang paling mana-mana kita telah membuat 884 00:47:17,000 --> 00:47:21,000 dalam kelas sejak 9 minggu yang lalu terdapat hampir sentiasa tradeoff ini. 885 00:47:21,000 --> 00:47:24,000 Kadang-kadang antara ruang hanya, kadang-kadang antara ruang dan masa, 886 00:47:24,000 --> 00:47:27,000 ruang, masa dan usaha pembangunan, dan sesungguhnya di sini, walaupun 887 00:47:27,000 --> 00:47:31,000 kita menyelamatkan sejumlah besar masa, mungkin berpotensi 10-20-30 jam 888 00:47:31,000 --> 00:47:34,000 masa pembangunan melaksanakan pemeriksa ejaan 889 00:47:34,000 --> 00:47:36,000 dengan sebat sehingga ia dalam hanya 45 saat dengan bahasa ini 890 00:47:36,000 --> 00:47:40,000 harga yang kita bayar adalah bahawa ia adalah suatu perintah magnitud lebih perlahan akibat, 891 00:47:40,000 --> 00:47:43,000 dan ini adalah umumnya kes dengan bahasa yang paling mana-mana ditafsirkan, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl atau lain-lain di mana 893 00:47:46,000 --> 00:47:49,000 jika anda mahu untuk menjalankan melalui seorang jurubahasa dan mempunyai ia membaca kod 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 yang tengah akan mengambil sedikit masa sendiri, 896 00:47:55,000 --> 00:47:59,000 dan apa yang anda rasa di sini dalam 3 saat sebagai bertentangan dengan 0,3 saat 897 00:47:59,000 --> 00:48:02,000 adalah hakikat bahawa terdapat ini tengah yang telah benar-benar mentafsir kod kami 898 00:48:02,000 --> 00:48:05,000 baris demi baris, dan Allah melarang jika anda berada di dalam gelung 899 00:48:05,000 --> 00:48:08,000 dengan fail yang besar yang mengandungi beratus-ratus beribu-ribu perkataan. 900 00:48:08,000 --> 00:48:11,000 >> Itu overhed akan menambah dan menambah dan menambah dan menambah. 901 00:48:11,000 --> 00:48:16,000 Bagi alat seperti ini ia mungkin tidak bahasa yang terbaik untuk digunakan untuk melaksanakan 902 00:48:16,000 --> 00:48:20,000 pemeriksa ejaan jika mendesaknya adalah kepentingan kepada pengguna anda dan kepada anda. 903 00:48:20,000 --> 00:48:23,000 Tetapi kemewahan yang kita ada dalam seketika ialah jika anda 904 00:48:23,000 --> 00:48:27,000 menggunakan bahasa seperti PHP atau banyak bahasa yang ditafsirkan 905 00:48:27,000 --> 00:48:30,000 dalam konteks Web, untuk perkara itu, anda mempunyai faedah 906 00:48:30,000 --> 00:48:34,000 bahawa internet adalah lebih perlahan daripada komputer yang paling. 907 00:48:34,000 --> 00:48:38,000 Anda mempunyai CPU GHz dalam komputer anda, 2 GHz, mungkin lebih hari ini. 908 00:48:38,000 --> 00:48:41,000 Tetapi realitinya di internet terdapat satu jumlah yang tinggi kependaman 909 00:48:41,000 --> 00:48:45,000 mana pelayar untuk bercakap kepada pelayan, walaupun kita melihat minggu lepas 910 00:48:45,000 --> 00:48:47,000 bahawa yang agak cepat, setengah milisaat atau lebih, 911 00:48:47,000 --> 00:48:51,000 itu juga menambah sehingga, dan jika anda memuat turun perkara-perkara seperti imej 912 00:48:51,000 --> 00:48:54,000 atau gambar Facebook atau mendapat mesej segera melalui perbualan Facebook, 913 00:48:54,000 --> 00:48:57,000 GChat atau sebagainya, semua ini kali pusingan perjalanan 914 00:48:57,000 --> 00:49:00,000 antara pelayar dan permulaan pelayan untuk menambah, 915 00:49:00,000 --> 00:49:03,000 yang membuat pilihan tertentu anda bahasa dalam banyak kes 916 00:49:03,000 --> 00:49:07,000 tidak semua yang berkaitan, jadi anda denda menggunakan bahasa yang agak perlahan 917 00:49:07,000 --> 00:49:10,000 seperti PHP atau Python atau Ruby 918 00:49:10,000 --> 00:49:13,000 tetapi yang terdapat upsides besar untuk anda dan rakan-rakan anda 919 00:49:13,000 --> 00:49:17,000 dan rakan-rakan anda kerana anda boleh melaksanakan perkara-perkara yang demikian, jadi lebih cepat. 920 00:49:17,000 --> 00:49:20,000 Dan lebih-lebih lagi, anda mempunyai risiko yang lebih kurang kelemahan keselamatan tertentu. 921 00:49:20,000 --> 00:49:22,000 Terdapat tiada petunjuk dalam PHP. 922 00:49:22,000 --> 00:49:25,000 Tiada kesilapan seg bahawa anda boleh dengan mudah mendorong 923 00:49:25,000 --> 00:49:27,000 dengan cara yang sama anda boleh dalam C. 924 00:49:27,000 --> 00:49:29,000 Dengan C anda sangat dekat dengan perkakasan. 925 00:49:29,000 --> 00:49:33,000 Dengan bahasa PHP dan sama anda jenis peringkat yang lebih tinggi, jadi untuk bercakap, 926 00:49:33,000 --> 00:49:37,000 dengan banyak pertahanan di antara anda dan apa yang sebenarnya berlaku di 927 00:49:37,000 --> 00:49:39,000 di dalam mesin, dan ia adalah hanya satu tradeoff. 928 00:49:39,000 --> 00:49:42,000 >> Kami telah mendapat ke titik mempunyai ini lebih moden, bahasa tahap tinggi 929 00:49:42,000 --> 00:49:47,000 seperti PHP kerana pengajaran dalam bahasa seperti PHP di C. 930 00:49:47,000 --> 00:49:50,000 Tetapi jika anda tidak memahami apa yang telah berlaku di bawah hood semua masa ini 931 00:49:50,000 --> 00:49:53,000 anda pastinya tidak boleh membuat keputusan reka bentuk yang betul, 932 00:49:53,000 --> 00:49:56,000 dan sudah tentu apabila ia datang untuk bekerja di tempat seperti Facebook atau Google 933 00:49:56,000 --> 00:49:59,000 atau mana-mana tempat-tempat yang semakin bermain dengan data yang besar set 934 00:49:59,000 --> 00:50:01,000 walaupun anda kembali dan jangan premed dan bekerja dengan MD beberapa 935 00:50:01,000 --> 00:50:04,000 pada beberapa data yang besar menetapkan melibatkan pesakit dan doktor 936 00:50:04,000 --> 00:50:08,000 dan seperti menggunakan alat yang betul adalah sangat menarik 937 00:50:08,000 --> 00:50:11,000 kerana jika tidak, analisis anda beberapa set data mungkin mengambil masa beberapa saat, 938 00:50:11,000 --> 00:50:14,000 atau ia benar-benar mungkin mengambil jam. 939 00:50:14,000 --> 00:50:17,000 Ini adalah hanya satu contoh, tidak mengecewakan anda dengan usaha berapa banyak lagi 940 00:50:17,000 --> 00:50:21,000 ia adalah dalam C tetapi untuk membantu anda menghargai bahawa apabila anda melaksanakan sesuatu dalam C 941 00:50:21,000 --> 00:50:24,000 anda benar-benar memahami, atau dalam teori, benar-benar memahami 942 00:50:24,000 --> 00:50:28,000 bagaimana segala-galanya adalah atau perlu bekerja, dan anda mempunyai kawalan hampir penuh 943 00:50:28,000 --> 00:50:31,000 atas apa yang berlaku di bawah hood, dan dengan bahasa ini di peringkat yang lebih tinggi 944 00:50:31,000 --> 00:50:34,000 anda perlu untuk melepaskan lebih banyak kawalan kepada orang-orang yang mencipta mereka 945 00:50:34,000 --> 00:50:37,000 dan lebih tertakluk kepada keputusan reka bentuk mereka daripada anda. 946 00:50:37,000 --> 00:50:41,000 Tetapi jika kita mengambil untuk diberikan bahawa prestasi 947 00:50:41,000 --> 00:50:44,000 tidak cukup sebagai penting di Web kerana isu-isu lain, 948 00:50:44,000 --> 00:50:47,000 kelajuan rangkaian hanya sedikit perlahan daripada kelajuan CPU anyway, 949 00:50:47,000 --> 00:50:50,000 supaya kita boleh menyusun mampu untuk menggunakan bahasa yang agak perlahan 950 00:50:50,000 --> 00:50:55,000 jika upsides kita boleh membangunkan perkara-perkara yang 10 kali lebih cepat atau lebih. 951 00:50:55,000 --> 00:50:57,000 >> Mari kita lihat bagaimana kita boleh mula menggunakan ini. 952 00:50:57,000 --> 00:51:00,000 Biar saya pergi ke folder 953 00:51:00,000 --> 00:51:03,000 antara contoh hari ini dipanggil frosh.ims, 954 00:51:03,000 --> 00:51:06,000 dan ini sebenarnya sendiri didorong oleh fakta bahawa perkara yang sangat pertama 955 00:51:06,000 --> 00:51:10,000 Saya menulis untuk Web tahun lalu selepas mengambil CS50 dan CS51 956 00:51:10,000 --> 00:51:14,000 adalah sebuah laman web untuk program IM Frosh, sukan bayat di antara dinding, 957 00:51:14,000 --> 00:51:16,000 yang pada masa ini adalah cukup tahun lalu bahawa pada masa 958 00:51:16,000 --> 00:51:19,000 tiada laman web untuk program ini, walaupun terdapat Web, 959 00:51:19,000 --> 00:51:22,000 dan sebaliknya terdapat pengawas mahasiswa di Wigglesworth mana jika anda mahu 960 00:51:22,000 --> 00:51:26,000 mendaftar untuk bola tampar atau bola sepak atau apa sahaja yang anda akan mengisi sekeping kertas. 961 00:51:26,000 --> 00:51:28,000 Anda kemudian akan berjalan di seluruh kawasan itu. 962 00:51:28,000 --> 00:51:31,000 Anda kemudiannya akan mengetuk pintu dan slaid mereka di pintu atau tangan mereka untuk proctor 963 00:51:31,000 --> 00:51:34,000 sehelai kertas dengan nama anda di atasnya, sama ada atau tidak anda mahu menjadi seorang kapten pasukan, 964 00:51:34,000 --> 00:51:37,000 apa sukan yang anda mahu lakukan, dan apa asrama anda masuk 965 00:51:37,000 --> 00:51:39,000 Ia adalah jenis cara sekolah lama melakukan sesuatu, dan ini adalah perdana 966 00:51:39,000 --> 00:51:41,000 peluang untuk mengautomasikan banyak proses ini. 967 00:51:41,000 --> 00:51:43,000 Anda hanya pergi ke laman web. Anda menaip sesuatu. 968 00:51:43,000 --> 00:51:46,000 Anda akan mendapat pengesahan e-mel, dan ledakan, anda selesai. 969 00:51:46,000 --> 00:51:49,000 >> Ini adalah perkara pertama yang saya lakukan, walaupun dalam bahasa yang dipanggil Pearl, 970 00:51:49,000 --> 00:51:52,000 tetapi ia adalah agak mudah untuk melakukan dalam PHP, dan ini adalah jenis wakil 971 00:51:52,000 --> 00:51:55,000 masalah anda boleh mula menyelesaikan apabila anda boleh meluahkan diri anda 972 00:51:55,000 --> 00:51:58,000 programatik dan tidak perlu bergantung kepada perkara-perkara seperti laman Google 973 00:51:58,000 --> 00:52:01,000 atau Excel atau alat yang diserahkan kepada anda. 974 00:52:01,000 --> 00:52:03,000 Kalian kini mempunyai keupayaan untuk melakukan perkara-perkara seperti ini. 975 00:52:03,000 --> 00:52:06,000 Ini adalah versi super hodoh bentuk, 976 00:52:06,000 --> 00:52:09,000 tetapi mari kita hanya menggunakannya untuk permulaan perbualan di mana ini adalah 977 00:52:09,000 --> 00:52:12,000 kira-kira apa bentuk kelihatan seperti tahun yang lalu untuk kita 978 00:52:12,000 --> 00:52:14,000 untuk membolehkan orang-orang di Web untuk mendaftar untuk Frosh IM. 979 00:52:14,000 --> 00:52:18,000 Kami meminta untuk satu nama, checkbox untuk sama ada atau tidak mereka mahu menjadi kapten, 980 00:52:18,000 --> 00:52:21,000 lelaki atau perempuan, dan kemudian apa asrama mereka berada dalam, 981 00:52:21,000 --> 00:52:23,000 dan kemudian mereka akan menyerahkan borang ini. 982 00:52:23,000 --> 00:52:27,000 Mari kita lihat pertama di bawah hood pada HTML yang mewakili laman web ini. 983 00:52:27,000 --> 00:52:31,000 Mari saya pergi ke froshims0, 984 00:52:31,000 --> 00:52:35,000 dan sebagai diketepikan, untuk pset 7 Saya mengambil untuk diberikan 985 00:52:35,000 --> 00:52:37,000 direktori dan folder yang saya meletakkan sesuatu masuk 986 00:52:37,000 --> 00:52:40,000 Kami akan membimbing anda melalui betul-betul di mana barangan untuk pergi ke dalam perkakas, 987 00:52:40,000 --> 00:52:43,000 arahan arena yang anda perlu menjalankan, jadi jangan bimbang tentang semua 988 00:52:43,000 --> 00:52:46,000 butiran bodoh Menyegerakkan dari sini mendapat-pergi. 989 00:52:46,000 --> 00:52:49,000 >> Baiklah, di sini adalah froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Biar saya tatal ke bawah, dan apa yang tertanya-tanya di sini, 991 00:52:52,000 --> 00:52:56,000 ini adalah fail PHP, tetapi apa yang di dalamnya, jelas? 992 00:52:56,000 --> 00:52:59,000 Ia banyak seluruh HTML, dan sesungguhnya, asal PHP 993 00:52:59,000 --> 00:53:02,000 benar-benar adalah untuk menjadi bahasa-centric Web. 994 00:53:02,000 --> 00:53:04,000 Satu masa lalu kita digunakan untuk melaksanakan contoh bir, 995 00:53:04,000 --> 00:53:07,000 syarat contoh, contoh hello, dan itulah denda. 996 00:53:07,000 --> 00:53:11,000 Anda boleh menggunakan PHP sebagai bahasa skrip 997 00:53:11,000 --> 00:53:15,000 mana skrip adalah benar-benar hanya tatanama yang diberikan kepada program cepat dan kotor 998 00:53:15,000 --> 00:53:19,000 atau sesuatu yang anda menulis dalam bahasa berskrip atau lebih amnya ditafsirkan. 999 00:53:19,000 --> 00:53:22,000 PHP adalah sangat berguna untuk itu kerana anda telah melihat berapa cepat 1000 00:53:22,000 --> 00:53:24,000 agak kita boleh menyiapkan program dalam PHP. 1001 00:53:24,000 --> 00:53:27,000 Tetapi ia telah benar-benar direka untuk digunakan untuk Web, 1002 00:53:27,000 --> 00:53:31,000 dan direka untuk Web dalam erti kata bahawa notis di sini di atas fail 1003 00:53:31,000 --> 00:53:34,000 Saya tidak bermula dengan 00:53:38,000 Kemudian saya mempunyai sekumpulan komen sia-sia, yang diberikan, tetapi kemudian saya menutup mod PHP. 1005 00:53:38,000 --> 00:53:41,000 Tetapi kemudian saya jatuh ke dalam mod HTML. 1006 00:53:41,000 --> 00:53:45,000 >> Apa yang menarik tentang PHP adalah walaupun fail berakhir dengan. Php 1007 00:53:45,000 --> 00:53:48,000 ia biasanya bertujuan untuk bersama-bercampur dengan HTML, 1008 00:53:48,000 --> 00:53:50,000 beberapa kod PHP, HTML beberapa. 1009 00:53:50,000 --> 00:53:53,000 Dan kita akhirnya akan melihat bahawa kita boleh mula untuk mengusik mereka selain 1010 00:53:53,000 --> 00:53:56,000 dan menyimpan berasingan HTML kita dari PHP kami sama sekali, 1011 00:53:56,000 --> 00:53:59,000 tetapi asal-usul PHP benar-benar memberi anda fleksibiliti ini, 1012 00:53:59,000 --> 00:54:02,000 bahawa jika anda mahu HTML sesetengah hanya menulis, dan yang akan 1013 00:54:02,000 --> 00:54:04,000 meludah keluar sepercaman kepada pelayar. 1014 00:54:04,000 --> 00:54:07,000 Tetapi jika anda memerlukan beberapa teknik pengaturcaraan, 1015 00:54:07,000 --> 00:54:12,000 beberapa kod pengaturcaraan, anda juga boleh meletakkan ia ke dalam fail yang tepat yang sama, seperti yang kita akan melihat. 1016 00:54:12,000 --> 00:54:14,000 Berikut adalah HTML saya. 1017 00:54:14,000 --> 00:54:16,000 Saya telah mendapat tajuk ini untuk Frosh IM. 1018 00:54:16,000 --> 00:54:20,000 Saya telah mendapat tag badan yang telah mendapat beberapa CSS di atasnya dengan semua pusat di tengah-tengah, 1019 00:54:20,000 --> 00:54:23,000 dan kemudian turun di sini saya mempunyai satu bentuk yang nampaknya akan dikemukakan 1020 00:54:23,000 --> 00:54:27,000 fail baru yang dipanggil register0.php, jadi kita akan melihat bahawa dalam seketika. 1021 00:54:27,000 --> 00:54:31,000 Ia menggunakan kaedah yang dipanggil pos, yang kita akan kembali juga. 1022 00:54:31,000 --> 00:54:34,000 Maka saya mempunyai beberapa input bentuk, satu nama dipanggil, yang jenis teks, 1023 00:54:34,000 --> 00:54:37,000 yang namanya adalah kapten, yang jenis kotak semak, 1024 00:54:37,000 --> 00:54:40,000 dan ini, kita tidak melihat ia sebelum ini, tetapi ia tidak betul-betul apa yang dikatakannya. 1025 00:54:40,000 --> 00:54:42,000 Anda akan mendapat kotak semak bukannya kotak teks. 1026 00:54:42,000 --> 00:54:46,000 Down sini anda mempunyai butang radio, yang merupakan salah satu dari orang-orang butang bulat 1027 00:54:46,000 --> 00:54:48,000 bahawa anda boleh memilih sama ada ini salah atau bahawa salah. 1028 00:54:48,000 --> 00:54:52,000 >> Perhatikan ia sengaja yang saya berikan kedua-dua butang radio nama jantina. 1029 00:54:52,000 --> 00:54:55,000 Ini adalah bagaimana anda mendapat pengecualian bersama di mana anda mesti klik 1030 00:54:55,000 --> 00:54:58,000 sama ada ini satu atau yang satu, dan dengan mengklik lain 1031 00:54:58,000 --> 00:55:01,000 ia unchecks yang lain, jadi anda perlu memberikan mereka nama yang sama 1032 00:55:01,000 --> 00:55:03,000 jika anda mahu mereka untuk menjadi saling eksklusif seperti itu. 1033 00:55:03,000 --> 00:55:07,000 Dan kemudian untuk asrama, saya tidak fikir kita telah melihat ini lagi, tetapi ia adalah menu pilih, menu drop-down. 1034 00:55:07,000 --> 00:55:09,000 Tag yang 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 mempunyai sekumpulan keseluruhan pilihan ini. 1037 00:55:13,000 --> 00:55:16,000 Yang pertama, hanya untuk estetika, adalah rentetan kosong. 1038 00:55:16,000 --> 00:55:20,000 Saya hanya mahu drop down untuk menjadi kosong secara lalai, 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 notis dikotomi di sini. 1041 00:55:24,000 --> 00:55:27,000 Pilihan dalam drop down mempunyai nilai, 1042 00:55:27,000 --> 00:55:30,000 tetapi kemudian ia mempunyai nama yang mesra manusia, yang dalam contoh ini 1043 00:55:30,000 --> 00:55:33,000 adalah sama, tetapi jika kita benar-benar mahu menjadi dubur kita boleh mempunyai 1044 00:55:33,000 --> 00:55:36,000 nilai penurunan ini ke bawah hanya menjadi versi pendek, 1045 00:55:36,000 --> 00:55:39,000 Grays, tetapi kita benar-benar boleh mengatakan Grays Dewan bahawa manusia sebenarnya melihat, 1046 00:55:39,000 --> 00:55:43,000 tetapi itu tidak semua yang menarik, jadi saya hanya disimpan ia mudah dan menjadikan mereka serupa. 1047 00:55:43,000 --> 00:55:46,000 Kemudian turun di bawah kita mempunyai butang submit 1048 00:55:46,000 --> 00:55:49,000 yang telah kita lihat sebelum ini, tetapi notis saya hanya memberikan ia satu perkataan yang berbeza. 1049 00:55:49,000 --> 00:55:53,000 Sebaliknya CS50 carian saya berikan label "Daftar." 1050 00:55:53,000 --> 00:55:56,000 >> Keputusan akhir adalah laman web ini di sini, dan sekali lagi, 1051 00:55:56,000 --> 00:56:00,000 di mana ini dapat diserahkan kepada? 1052 00:56:00,000 --> 00:56:04,000 Ia akan diserahkan kepada fail sesetengah orang, nilai atribut tindakan, 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 sebenarnya yang berlaku di sini. 1055 00:56:09,000 --> 00:56:13,000 Biar saya pergi ke hadapan dan mengisi borang ini, mengatakan David, 1056 00:56:13,000 --> 00:56:16,000 lelaki, Matthews, dan kemudian saya akan katakan mendaftar. 1057 00:56:16,000 --> 00:56:18,000 Biar saya zoom out dan klik mendaftar. 1058 00:56:18,000 --> 00:56:22,000 Okay, jadi jenis sia-sia, tetapi mari kita lihat apa yang sebenarnya berlaku. 1059 00:56:22,000 --> 00:56:26,000 Perhatikan bahawa URL telah berubah menjadi register0.php. 1060 00:56:26,000 --> 00:56:34,000 Apakah aneh hadir URL, walaupun, walaupun kita hanya mengemukakan borang? 1061 00:56:34,000 --> 00:56:37,000 [Sambutan pelajar didengar] 1062 00:56:37,000 --> 00:56:39,000 Okay, itu hanya mesra pengguna Chrome hari ini. 1063 00:56:39,000 --> 00:56:42,000 Itulah sebenarnya di sana. Mereka hanya menyembunyikan ia untuk menjimatkan ruang. 1064 00:56:42,000 --> 00:56:44,000 Tetapi pemikiran yang baik, pemikiran yang baik. 1065 00:56:44,000 --> 00:56:46,000 Ke arah akhir lain URL, walaupun, apa yang hilang? Yeah. 1066 00:56:46,000 --> 00:56:48,000 [Pelajar] string query. 1067 00:56:48,000 --> 00:56:51,000 String query, jadi ingat dari contoh carian mudah kami Google. 1068 00:56:51,000 --> 00:56:54,000 Sebaik sahaja saya klik butang submit URL 1069 00:56:54,000 --> 00:57:00,000 membawa saya ke Google, tetapi kemudian ada? q = sains komputer atau apa yang saya telah ditaip masuk 1070 00:57:00,000 --> 00:57:04,000 Itu kerana kami menggunakan kaedah get dengan contoh carian. 1071 00:57:04,000 --> 00:57:06,000 >> Kali ini kami menggunakan apa kaedah dan bukannya? 1072 00:57:06,000 --> 00:57:10,000 Pos, dan salah satu perbezaan serta-merta 1073 00:57:10,000 --> 00:57:14,000 antara mendapatkan dan hantar kiriman yang tidak meletakkan input pengguna dalam URL. 1074 00:57:14,000 --> 00:57:16,000 Ia menyembunyikan ia. Ia masih menghantarnya. 1075 00:57:16,000 --> 00:57:19,000 Malah, apa yang kita lihat dalam pelayar sini, seperti yang kita akan mendedahkan dalam masa 1076 00:57:19,000 --> 00:57:22,000 dengan melihat register0, saya hanya melihat kandungan 1077 00:57:22,000 --> 00:57:25,000 array yang telah dikemukakan dari pelayar ke pelayan. 1078 00:57:25,000 --> 00:57:29,000 Tetapi URL tidak mempunyai?, Tidak mempunyai apa-apa kata kunci 1079 00:57:29,000 --> 00:57:31,000 atau nilai-nilai di dalamnya, dan mengapa? 1080 00:57:31,000 --> 00:57:35,000 Nah, selepas membenarkan anda masih mengemukakan data dari bentuk kepada pelayan, 1081 00:57:35,000 --> 00:57:38,000 tetapi ia tidak meletakkan ia dalam URL, jadi apa jenis maklumat adalah pos 1082 00:57:38,000 --> 00:57:41,000 amat sesuai untuk mungkin apabila anda meminta pengguna untuk 1083 00:57:41,000 --> 00:57:44,000 menaip input kepada satu bentuk? 1084 00:57:44,000 --> 00:57:48,000 Sesuatu seperti kata laluan, sesuatu seperti apa lagi? 1085 00:57:48,000 --> 00:57:50,000 Nombor kad kredit. 1086 00:57:50,000 --> 00:57:53,000 Apa sahaja yang sedikit sensitif anda mungkin tidak mahu berakhir di URL 1087 00:57:53,000 --> 00:57:56,000 jika hanya kerana ia bermakna rakan sebilik anda atau ahli keluarga hanya boleh menaja melalui 1088 00:57:56,000 --> 00:57:59,000 sejarah internet anda dan kemudian benar-benar melihat kata laluan anda, 1089 00:57:59,000 --> 00:58:02,000 benar-benar melihat nombor kad kredit anda kerana kebanyakan pelayar 1090 00:58:02,000 --> 00:58:05,000 ingat dalam sejarah apa jua URL yang anda telah di, 1091 00:58:05,000 --> 00:58:09,000 jadi jika hanya kerana itu akan menjadi idea yang buruk. 1092 00:58:09,000 --> 00:58:11,000 Menggunakan menyembunyikan pos yang terperinci dari pengguna. 1093 00:58:11,000 --> 00:58:14,000 >> Juga, bagaimana anda upload gambar ke Facebook? 1094 00:58:14,000 --> 00:58:17,000 Nah, hanya 2 mekanisme anda benar-benar boleh menggunakan, 1095 00:58:17,000 --> 00:58:21,000 walaupun terdapat beberapa yang lain yang lebih batin, mendapatkan dan hantar. 1096 00:58:21,000 --> 00:58:26,000 Bagaimana anda mungkin memuat naik gambar melalui URL? 1097 00:58:26,000 --> 00:58:28,000 Anda sebenarnya boleh melakukannya. 1098 00:58:28,000 --> 00:58:30,000 Anda boleh mengambil JPEG atau bitmap atau GIF dan anda boleh mewakili dalam perenambelasan 1099 00:58:30,000 --> 00:58:32,000 atau sesuatu yang dipanggil asas 64. 1100 00:58:32,000 --> 00:58:35,000 Daripada 16 asas anda menggunakan 64 asas, yang pada dasarnya kelihatan seperti 1101 00:58:35,000 --> 00:58:38,000 Aksara ASCII, dan anda sebenarnya boleh upload gambar melalui URL 1102 00:58:38,000 --> 00:58:41,000 selepas tanda tanya, tetapi umumnya terdapat had saiz. 1103 00:58:41,000 --> 00:58:44,000 Kebanyakan pelayar memaksa URL untuk menjadi tidak lebih daripada 1,000 aksara, 1104 00:58:44,000 --> 00:58:47,000 mungkin 2,000 aksara atau sebagainya, jadi anda tidak boleh memuat naik 1105 00:58:47,000 --> 00:58:50,000 10 MB Facebook foto. 1106 00:58:50,000 --> 00:58:54,000 Untuk yang anda gunakan pos juga, jadi sekarang meletakkan parameter dalam URL, 1107 00:58:54,000 --> 00:58:57,000 yang bagus dan berguna kadang-kadang, tetapi untuk apa-apa yang sensitif atau besar 1108 00:58:57,000 --> 00:58:59,000 pos adalah cara untuk pergi. 1109 00:58:59,000 --> 00:59:02,000 Apa yang register0 sebenarnya lakukan di sini? 1110 00:59:02,000 --> 00:59:05,000 Nah, jika saya membuka register0 notis bahawa ini adalah halaman super mudah, 1111 00:59:05,000 --> 00:59:09,000 tetapi ia menunjukkan hakikat bahawa saya dapat bersama-bergaul, untuk lebih baik atau untuk lebih teruk, 1112 00:59:09,000 --> 00:59:12,000 HTML dengan PHP. 1113 00:59:12,000 --> 00:59:15,000 Keseluruhan fail ini, kecuali bagi komen-komen di atas, adalah HTML 1114 00:59:15,000 --> 00:59:19,000 kecuali lelaki ini di sini. 1115 00:59:19,000 --> 00:59:22,000 >> Notis di tengah-tengah kod PHP saya, 1116 00:59:22,000 --> 00:59:26,000 di tengah-tengah HTML saya, saya mempunyai jenis sementara 1117 00:59:26,000 --> 00:59:28,000 memasuki mod PHP. 1118 00:59:28,000 --> 00:59:31,000 Saya memanggil fungsi khas yang dipanggil cetak r. 1119 00:59:31,000 --> 00:59:34,000 Ia bermakna mencetak rekursi, dan apa yang ia adalah ia rekursif mencetak 1120 00:59:34,000 --> 00:59:38,000 apa pembolehubah anda bawanya ke, koma bertitik, keluar mod PHP. 1121 00:59:38,000 --> 00:59:40,000 Dan tag pra memberikan anda pra-diformat teks, 1122 00:59:40,000 --> 00:59:43,000 teks mono ruang supaya setiap ruang anda sebenarnya melihat ia. 1123 00:59:43,000 --> 00:59:46,000 Ia tidak hilang. Apakah jawatan? 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 bahawa apabila anda menyerahkan borang menggunakan mendapatkan atau pos 1126 00:59:52,000 --> 00:59:56,000 apa-apa yang dikemukakan kepada anda oleh pelayar 1127 00:59:56,000 --> 01:00:00,000 PHP sendiri angka keluar apa yang mereka pasangan nilai utama, 1128 01:00:00,000 --> 01:00:02,000 angka jika terdapat tanda-tanda yang sama, angka keluar jika terdapat tanda tanya. 1129 01:00:02,000 --> 01:00:07,000 Ia melakukan semua kerja keras untuk anda, dan kemudian ia tangan anda pelbagai bersekutu 1130 01:00:07,000 --> 01:00:10,000 mengandungi segala-galanya yang pengguna ditaip ke dalam bentuk. 1131 01:00:10,000 --> 01:00:12,000 Nah, apa bidang borang ini mempunyai? 1132 01:00:12,000 --> 01:00:14,000 >> Ia mempunyai 4 bidang. 1133 01:00:14,000 --> 01:00:16,000 Satu adalah medan teks dipanggil nama. 1134 01:00:16,000 --> 01:00:18,000 Satu adalah satu checkbox yang dipanggil kapten. 1135 01:00:18,000 --> 01:00:22,000 Satu adalah butang radio dipanggil jantina, 1136 01:00:22,000 --> 01:00:24,000 dan satu menu drop-down dipanggil asrama, 1137 01:00:24,000 --> 01:00:27,000 jadi notis apabila saya mencetak rekursif 1138 01:00:27,000 --> 01:00:29,000 kandungan pembolehubah istimewa ini. 1139 01:00:29,000 --> 01:00:34,000 Ini adalah pembolehubah khas global dipanggil literal $ _POST, dalam semua topi. 1140 01:00:34,000 --> 01:00:39,000 Ini adalah pembolehubah khas global bahawa PHP hanya mencipta untuk anda 1141 01:00:39,000 --> 01:00:42,000 dan tangan kepada anda supaya anda boleh mengakses segala-galanya 1142 01:00:42,000 --> 01:00:45,000 yang telah diserahkan melalui borang oleh pengguna. 1143 01:00:45,000 --> 01:00:48,000 Dan dengan memanggil r cetak di atasnya anda tidak akan melakukan ini dalam permohonan biasa. 1144 01:00:48,000 --> 01:00:50,000 Kami melakukan ini untuk melihat dalam pembolehubah 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, jadi untuk bercakap, 1147 01:00:56,000 --> 01:00:59,000 nama, kapten, jantina, asrama, dan kemudian nilai yang pengguna 1148 01:00:59,000 --> 01:01:01,000 ditaip dengan satu pengecualian. 1149 01:01:01,000 --> 01:01:03,000 Saya pula jenis D-A-V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Saya memeriksa kotak, walaupun, untuk lelaki, yang nampaknya diserahkan nilai 1151 01:01:05,000 --> 01:01:07,000 hanya m menjadi ringkas. 1152 01:01:07,000 --> 01:01:10,000 >> Apabila saya memilih Matthews itulah nilai yang mendapat dipilih, 1153 01:01:10,000 --> 01:01:12,000 dan yang satu ini adalah sedikit bodoh, tetapi ia adalah konvensyen itu. 1154 01:01:12,000 --> 01:01:17,000 Apabila saya memeriksa kotak, nilai pada, "," mendapat dikemukakan untuk checkbox. 1155 01:01:17,000 --> 01:01:21,000 Jika saya telah tidak diperiksa, tiada nilai akan dihantar sekalipun. 1156 01:01:21,000 --> 01:01:26,000 Ini hanya memberi kita wawasan ke dalam apa yang di dalam pembolehubah global ini khas, 1157 01:01:26,000 --> 01:01:29,000 dan ia begitu istimewa bahawa ia dipanggil pembolehubah global super. 1158 01:01:29,000 --> 01:01:33,000 Ia wujud di mana-mana untuk anda dalam kod anda supaya anda sebenarnya boleh mengaksesnya. 1159 01:01:33,000 --> 01:01:36,000 Ini tidak begitu menarik, jadi mari kita sebenarnya menggunakan global super 1160 01:01:36,000 --> 01:01:38,000 dan sebenarnya cuba untuk mendaftarkan seseorang. 1161 01:01:38,000 --> 01:01:41,000 Dalam froshims1 saya 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 saya melakukan satu perkara lain. 1164 01:01:46,000 --> 01:01:48,000 Saya jenis malu dengan kualiti laman web saya di sana. 1165 01:01:48,000 --> 01:01:52,000 Ia cukup mengerikan, jujur, jadi ia ternyata 1166 01:01:52,000 --> 01:01:56,000 yang anda boleh gunakan sangat mudah di Web 1167 01:01:56,000 --> 01:01:59,000 kod JavaScript orang lain, CSS orang lain 1168 01:01:59,000 --> 01:02:02,000 bahawa mereka telah ditulis dan sumber terbuka dan disediakan sebagai perpustakaan, 1169 01:02:02,000 --> 01:02:06,000 jadi untuk bercakap, dan sebagai contoh, di sini saya menggunakan perpustakaan bebas yang ada, 1170 01:02:06,000 --> 01:02:08,000 sekumpulan kod bahawa orang lain menulis. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter berlaku untuk menulis kod ini, dan ia dipanggil perpustakaan Bootstrap, 1172 01:02:11,000 --> 01:02:15,000 dan ia hanya sekumpulan style sheet CSS, sekumpulan fail css 1173 01:02:15,000 --> 01:02:19,000 seseorang yang lain menulis dan digambarkan bagaimana untuk mendapatkan segala-galanya baik dan cantik 1174 01:02:19,000 --> 01:02:22,000 supaya orang seperti kita boleh bimbang sedikit kurang tentang estetika dan memberikan tumpuan lebih 1175 01:02:22,000 --> 01:02:24,000 pada logik dan pengaturcaraan sebenar. 1176 01:02:24,000 --> 01:02:30,000 Dengan mengaitkannya dengan tag itu, yang merupakan tag yang sama saya ingat digunakan untuk styles3.css awal, 1177 01:02:30,000 --> 01:02:34,000 Saya kini mempunyai akses kepada fail yang dipanggil bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min hanya bermakna mereka telah minified dan mereka telah mendapat menghapuskan semua ruang putih dan sebagainya 1179 01:02:37,000 --> 01:02:40,000 hanya untuk memastikan mereka tidak menghantar saya bytes lebih daripada saya benar-benar perlu. 1180 01:02:40,000 --> 01:02:45,000 Tetapi di sana adalah sekumpulan keseluruhan CSS, jadi jika saya kini membuka versi 1 daripada Frosh IM 1181 01:02:45,000 --> 01:02:49,000 perhatian bahawa fail saya memang cantik. 1182 01:02:49,000 --> 01:02:54,000 Sekarang ia masih hanya hitam dan putih, tetapi melihat bahawa dengan hanya menggunakan lembaran gaya mereka 1183 01:02:54,000 --> 01:02:58,000 dan menggunakan ciri-ciri tertentu pada borang saya ia tidak menakjubkan, 1184 01:02:58,000 --> 01:03:01,000 tetapi ia pasti lebih bersih berbanding sebelum ia, dan projektor tidak melakukan keadilan. 1185 01:03:01,000 --> 01:03:05,000 Terdapat sedikit garisan kelabu sekitar butang dan sekitar medan teks di sini, 1186 01:03:05,000 --> 01:03:07,000 tetapi ia pasti lebih bersih berbanding sebelum ia. 1187 01:03:07,000 --> 01:03:09,000 >> Sekarang, dalam keadilan, saya tidak perlu untuk menukar markup saya sedikit. 1188 01:03:09,000 --> 01:03:12,000 Ini adalah versi 1, dan notis bahawa saya telah menggunakan beberapa tag baru, 1189 01:03:12,000 --> 01:03:17,000 dan jujur, saya tidak tahu bagaimana untuk melakukan ini sehingga saya membaca dokumentasi 1190 01:03:17,000 --> 01:03:20,000 untuk perpustakaan Bootstrap Twitter, dan mereka memberitahu saya jika anda mahu menggunakan perpustakaan kami 1191 01:03:20,000 --> 01:03:23,000 menggunakan elemen fieldset di dalam borang anda, 1192 01:03:23,000 --> 01:03:27,000 meletakkan perkataan yang anda mahu untuk menunjukkan di sebelah dalam bidang tag label, 1193 01:03:27,000 --> 01:03:30,000 kemudian memberi input anda nama, sama seperti sebelum, 1194 01:03:30,000 --> 01:03:34,000 dan kemudian untuk checkbox, bukan sahaja adakah anda balut dalam elemen label, 1195 01:03:34,000 --> 01:03:36,000 anda menggunakan sesuatu yang dipanggil kelas, jadi kami tidak pernah melihat sebelum ini, 1196 01:03:36,000 --> 01:03:39,000 tetapi anda akan melihat ini dalam satu seluar pset 7 ini. 1197 01:03:39,000 --> 01:03:43,000 Satu kelas dalam CSS membolehkan anda melakukan sesuatu yang sangat serupa dengan ID, 1198 01:03:43,000 --> 01:03:46,000 tetapi sebelum apabila kita mempunyai ID dengan simbol # 1199 01:03:46,000 --> 01:03:48,000 itu adalah untuk satu dan hanya satu unsur. 1200 01:03:48,000 --> 01:03:51,000 Apa yang baik tentang kelas adalah bahawa unsur-unsur yang pelbagai boleh mempunyai kelas yang sama 1201 01:03:51,000 --> 01:03:54,000 atau barangan CSS yang sama digunakan untuk ia. 1202 01:03:54,000 --> 01:03:57,000 >> Tetapi sekali lagi, lebih kepada mereka dalam jangka pendek, dan lain ini hanya salin dan tampal 1203 01:03:57,000 --> 01:04:00,000 dari dokumentasi mereka di mana saya telah menambah label di sana sini. 1204 01:04:00,000 --> 01:04:03,000 Dan pada akhirnya, kerana saya telah menyertakan tag pautan di atas, 1205 01:04:03,000 --> 01:04:06,000 segala-galanya kelihatan cantik secara automatik 1206 01:04:06,000 --> 01:04:10,000 dengan hanya ditanda halaman saya dengan cara yang 1207 01:04:10,000 --> 01:04:12,000 Twitter dijangka, dan terdapat begitu banyak cara yang berbeza 1208 01:04:12,000 --> 01:04:14,000 melakukan ini, dan ini memang sangat sesuai. 1209 01:04:14,000 --> 01:04:17,000 Pada ketika ini dalam semester, kerana anda akan melihat dalam spec pset 7 ini, 1210 01:04:17,000 --> 01:04:20,000 Googling sekitar, membaca sehingga pada perpustakaan, menggunakan CSS orang lain 1211 01:04:20,000 --> 01:04:23,000 dan JavaScript untuk menyelesaikan masalah sampingan 1212 01:04:23,000 --> 01:04:26,000 set masalah sendiri sememangnya digalakkan dan merupakan cara 1213 01:04:26,000 --> 01:04:29,000 Web dibina hari ini, dengan berdiri di atas bahu orang lain 1214 01:04:29,000 --> 01:04:32,000 supaya anda benar-benar boleh memberi tumpuan kepada masalah yang baru dan menarik. 1215 01:04:32,000 --> 01:04:34,000 Tetapi biarlah kini memberi tumpuan kepada, sekali lagi, logik. 1216 01:04:34,000 --> 01:04:38,000 >> Itu adalah melencong cepat pada estetika hanya menunjukkan anda arah di mana anda boleh pergi. 1217 01:04:38,000 --> 01:04:40,000 Saya akan kembali kepada yang uglier satu untuk saat hanya kerana 1218 01:04:40,000 --> 01:04:44,000 tidak ada gangguan dengan barangan Twitter, dan biarlah saya pergi ke hadapan dan membuka 1219 01:04:44,000 --> 01:04:51,000 froshims2, yang, sekali lagi, hanya berbeza dalam tindakan, register2.php, 1220 01:04:51,000 --> 01:04:55,000 dan mari kita melihat apa kesan adalah di sini. 1221 01:04:55,000 --> 01:04:57,000 Biar saya pergi ke hadapan dan menaip Daud. 1222 01:04:57,000 --> 01:04:59,000 Saya tidak akan menjadi kapten masa ini. 1223 01:04:59,000 --> 01:05:01,000 Saya akan mengatakan lelaki, Matthews, daftar. 1224 01:05:01,000 --> 01:05:05,000 Sialan. Okay, itu skru pada bahagian saya. 1225 01:05:05,000 --> 01:05:07,000 Berdiri. 1226 01:05:07,000 --> 01:05:17,000 Register2, line 22, jika kosong atau maaf. 1227 01:05:17,000 --> 01:05:19,000 Mari kita tambah nilai. 1228 01:05:19,000 --> 01:05:22,000 Okay, apabila mengemukakan borang ini apa yang hanya berlaku? 1229 01:05:22,000 --> 01:05:25,000 Saya menaip di David, diperiksa lelaki, klik Matthews, daftar. 1230 01:05:25,000 --> 01:05:27,000 Anda berdaftar. (Well, tidak benar-benar.) 1231 01:05:27,000 --> 01:05:32,000 Ini adalah jelas satu langkah di luar hanya mencetak kandungan pembolehubah beberapa, 1232 01:05:32,000 --> 01:05:34,000 tetapi apa yang fail ini sebenarnya melakukan? 1233 01:05:34,000 --> 01:05:37,000 Dalam register2.php 1234 01:05:37,000 --> 01:05:40,000 melihat bahawa saya mempunyai beberapa kod baru. 1235 01:05:40,000 --> 01:05:44,000 Dalam tag badan saya, saya mempunyai asasnya jika lain membina, 1236 01:05:44,000 --> 01:05:47,000 tetapi kerana saya bersama-bergaul ini dengan beberapa HTML 1237 01:05:47,000 --> 01:05:51,000 Saya perlu untuk masuk dan keluar mod PHP belakang dan sebagainya, jadi mari kita lihat apa yang saya lakukan. 1238 01:05:51,000 --> 01:05:55,000 >> Dalam baris pertama di sini saya mengatakan jika ia adalah kes 1239 01:05:55,000 --> 01:06:00,000 bahawa super post global kosong untuk kunci nama, 1240 01:06:00,000 --> 01:06:04,000 jadi dalam erti kata lain, jika pengguna tidak memberikan saya nilai untuk nama dalam bentuk, 1241 01:06:04,000 --> 01:06:07,000 maka kosong akan kembali benar kerana nilai kosong. 1242 01:06:07,000 --> 01:06:11,000 Atau notis menegak bar jika jantina kosong 1243 01:06:11,000 --> 01:06:15,000 di dalam ini super khas global, yang, sekali lagi, mewakili isi borang, 1244 01:06:15,000 --> 01:06:19,000 atau asrama adalah kosong, maka saya akan pergi ke hadapan dan menjerit pada pengguna. 1245 01:06:19,000 --> 01:06:22,000 Bagaimana? Nah, notis saya akan mengatakan anda mesti memberikan nama anda, jantina, dan asrama. 1246 01:06:22,000 --> 01:06:24,000 Mari kita sebenarnya mendorong kesilapan itu. 1247 01:06:24,000 --> 01:06:27,000 Izinkan saya kembali kepada bentuk saya. Biar saya tambah nilai untuk membersihkan ia. 1248 01:06:27,000 --> 01:06:30,000 Dan saya hanya akan memberi mereka David, dan mereka tidak perlu tahu di mana saya tinggal. 1249 01:06:30,000 --> 01:06:33,000 Mendaftar. Rupa-rupanya saya tidak perlu untuk memberitahu mereka di mana saya tinggal. 1250 01:06:33,000 --> 01:06:35,000 Anda mesti memberi nama anda, jantina dan asrama. Kembali. 1251 01:06:35,000 --> 01:06:39,000 >> Dan saya boleh klik untuk kembali ke bentuk itu, tetapi mengapa? 1252 01:06:39,000 --> 01:06:43,000 Nah, dalam nama kes itu tidak kosong, tetapi gender merupakan, dan asrama adalah, 1253 01:06:43,000 --> 01:06:47,000 jadi ini ungkapan keseluruhan dinilai untuk benar, dan walaupun sintaks adalah sedikit baru, 1254 01:06:47,000 --> 01:06:51,000 sekali lagi, kita memasuki mod PHP, biasa jika kenyataan, 1255 01:06:51,000 --> 01:06:54,000 tetapi bahagian baru di sini hanya kolon ini, dan saya telah diskru dengan tidak kurungan 1256 01:06:54,000 --> 01:06:57,000 oleh kemalangan, tetapi notis kolon, dan ini bermakna 1257 01:06:57,000 --> 01:07:00,000 walaupun kita keluar semua mod PHP 1258 01:07:00,000 --> 01:07:03,000 yang berikut harus meludah keluar kata demi kata pelayar 1259 01:07:03,000 --> 01:07:07,000 sehingga anda lihat blok lain, seperti yang kita lakukan di sini, 1260 01:07:07,000 --> 01:07:10,000 di mana anda sepatutnya meludah ini keluar 1261 01:07:10,000 --> 01:07:13,000 sehingga anda melihat endif, jadi beberapa sedikit sintaks baru 1262 01:07:13,000 --> 01:07:16,000 yang membolehkan saya untuk bertukar-tukar antara HTML dan PHP. 1263 01:07:16,000 --> 01:07:19,000 Kita boleh membersihkan ini akhirnya, tetapi untuk sekarang, 1264 01:07:19,000 --> 01:07:22,000 ia adalah sejenis cara menarik kesilapan memeriksa bentuk. 1265 01:07:22,000 --> 01:07:25,000 >> Sekarang, saya katakan anda tidak benar-benar didaftarkan kerana jelas kita telah melakukan apa-apa tetapi data, 1266 01:07:25,000 --> 01:07:28,000 jadi mari kita sebenarnya cuba untuk melakukan sesuatu yang sejuk. 1267 01:07:28,000 --> 01:07:33,000 Dalam froshims3 perbezaan hanya saya akan mengemukakan kepada register3, 1268 01:07:33,000 --> 01:07:35,000 jadi HTML terdapat adalah sama. 1269 01:07:35,000 --> 01:07:38,000 Pada register3 notis ini. 1270 01:07:38,000 --> 01:07:40,000 Ini adalah jenis seksi. 1271 01:07:40,000 --> 01:07:44,000 Di bahagian atas saya menggunakan kenyataan yang memerlukan, jadi ini adalah seperti # include. 1272 01:07:44,000 --> 01:07:46,000 Kali ini ia bukan stdio.h atau apa-apa seperti itu. 1273 01:07:46,000 --> 01:07:50,000 Ia adalah sebuah perpustakaan PHP, dan satu ini dipanggil PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Bagaimana saya tahu termasuk tepat disebut rentetan ini? 1275 01:07:53,000 --> 01:07:56,000 Saya membaca dalam dokumentasi, jadi apabila mereka memberitahu saya meletakkan ini di atas fail 1276 01:07:56,000 --> 01:08:00,000 jika anda mahu menggunakan sebuah perpustakaan khas dipanggil PHPMailer yang melakukan apa yang dikatakannya. 1277 01:08:00,000 --> 01:08:03,000 Ia membolehkan anda untuk menghantar e-mel melalui PHP. 1278 01:08:03,000 --> 01:08:05,000 Sekarang mari kita skrol ke bawah lagi. 1279 01:08:05,000 --> 01:08:08,000 >> Notis untuk memulakan Saya dalam mod PHP ini sepanjang masa, 1280 01:08:08,000 --> 01:08:11,000 jadi sekarang perasan ke sini selepas mengimport perpustakaan yang, 1281 01:08:11,000 --> 01:08:13,000  jadi untuk bercakap, saya melakukan beberapa cek kewarasan. 1282 01:08:13,000 --> 01:08:16,000 Jika ia adalah kes bahawa nama tidak kosong 1283 01:08:16,000 --> 01:08:19,000 dan jantina tidak kosong notis seru mata- 1284 01:08:19,000 --> 01:08:24,000 dan asrama adalah tidak kosong, maka pengguna telah logiknya mengisi borang, sekurang-kurangnya cukup. 1285 01:08:24,000 --> 01:08:28,000 Saya tidak peduli jika mereka kapten atau tidak. Saya hanya perlu nama mereka, jantina, dan asrama. 1286 01:08:28,000 --> 01:08:31,000 Jika mereka telah mengisi mereka supaya tiada medan kosong 1287 01:08:31,000 --> 01:08:33,000 ini adalah sedikit sintaks baru. 1288 01:08:33,000 --> 01:08:36,000 PHP, sebagai diketepikan, adalah bahasa pengaturcaraan berorientasikan objek 1289 01:08:36,000 --> 01:08:39,000 mana beberapa anda semua boleh ingat dari APC atau sebagainya. 1290 01:08:39,000 --> 01:08:42,000 Untuk sekarang, jika tidak dikenali, hanya tahu bahawa untuk menggunakan perpustakaan ini 1291 01:08:42,000 --> 01:08:45,000 anda perlu untuk menulis satu baris kod seperti ini menggunakan kata kunci baru, 1292 01:08:45,000 --> 01:08:47,000 benar-benar kata kunci baru yang dipanggil baru. 1293 01:08:47,000 --> 01:08:50,000 Tetapi lebih dari itu, kita mempunyai beberapa sintaks biasa. 1294 01:08:50,000 --> 01:08:54,000 Ia adalah pengendali panah, yang serupa dengan apa yang kita digunakan untuk structs dalam konteks petunjuk. 1295 01:08:54,000 --> 01:08:57,000 Untuk hari ini PHP tidak mempunyai petunjuk, 1296 01:08:57,000 --> 01:09:01,000 tetapi tahu sekarang bahawa dalam pembolehubah mel 1297 01:09:01,000 --> 01:09:05,000 asasnya adalah jenis penunjuk perpustakaan khas 1298 01:09:05,000 --> 01:09:08,000 bahawa orang lain menulis, dan jika saya mahu untuk mengakses fungsi tertentu 1299 01:09:08,000 --> 01:09:12,000 di dalam perpustakaan itu saya lakukan, seperti dalam C, menggunakan pengendali anak panah, 1300 01:09:12,000 --> 01:09:14,000 walaupun ini bukan sebenarnya petunjuk. 1301 01:09:14,000 --> 01:09:16,000 Ia adalah jenis versi PHP sendiri daripadanya. 1302 01:09:16,000 --> 01:09:20,000 Ini bermakna pergi ke perpustakaan dan memanggil fungsi IsSMTP. 1303 01:09:20,000 --> 01:09:23,000 SMTP, ingat, dari Pahlawan kami Net merujuk kepada e-mel, 1304 01:09:23,000 --> 01:09:28,000 dan yang hanya bermakna menggunakan pelayan e-mel ini Frosh IM pendaftaran. 1305 01:09:28,000 --> 01:09:30,000 >> Apakah tuan rumah yang saya mahu untuk digunakan? 1306 01:09:30,000 --> 01:09:34,000 Nah, Harvard, jika anda Google sekeliling, mempunyai pelayan e-mel yang dipanggil smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Jika anda bermain bersama-sama di rumah atau anda tinggal di rangkaian Comcast 1308 01:09:37,000 --> 01:09:40,000 ia mungkin sesuatu seperti smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 Ia benar-benar bergantung di mana anda tinggal dan yang ISP anda adalah. 1310 01:09:43,000 --> 01:09:47,000 Selepas itu saya akan menetapkan saya dari alamat sewenang-wenangnya menjadi jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Saya kemudian pergi untuk menetapkan untuk menangani menjadi jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 Satu-satunya cara saya tahu bahawa fungsi-fungsi ini dipanggil SetFrom dan AddAddress 1313 01:09:55,000 --> 01:09:57,000 , sekali lagi, saya membaca dokumentasi. 1314 01:09:57,000 --> 01:09:59,000 Ini bukan jenis ajaib dikenali kepada semua pengaturcara. 1315 01:09:59,000 --> 01:10:02,000 Kemudian saya tetapkan tertakluk kepada "pendaftaran." 1316 01:10:02,000 --> 01:10:07,000 Dan kini garis ini adalah sedikit hodoh kerana apakah pengendali dot bermakna dalam PHP? 1317 01:10:07,000 --> 01:10:09,000 Sesiapa yang tahu? 1318 01:10:09,000 --> 01:10:11,000 Menyatukan. 1319 01:10:11,000 --> 01:10:14,000 Dalam C ia adalah sakit di leher untuk menyatukan 2 tali bersama-sama. 1320 01:10:14,000 --> 01:10:17,000 Anda perlu berurusan dengan malloc atau realloc atau semua barangan yang 1321 01:10:17,000 --> 01:10:20,000 hanya untuk melanjutkan panjang rentetan. 1322 01:10:20,000 --> 01:10:22,000 Dalam PHP, JavaScript dan bahasa-bahasa lain 1323 01:10:22,000 --> 01:10:24,000 biasanya anda boleh melakukan ini dengan watak tunggal. 1324 01:10:24,000 --> 01:10:28,000 Dalam kes ini, dot bermakna mengambil rentetan ini di sini 1325 01:10:28,000 --> 01:10:30,000 dan melampirkan kepada rentetan ini. 1326 01:10:30,000 --> 01:10:32,000 >> Oh, dan dengan cara itu, melampirkan ia rentetan ini, 1327 01:10:32,000 --> 01:10:34,000 yang berlaku untuk menjadi dalam pembolehubah bahawa global super. 1328 01:10:34,000 --> 01:10:37,000 Kemudian melampirkan pada baris baru, jadi semua ini titik hanya bermakna 1329 01:10:37,000 --> 01:10:39,000 terus membuat rentetan yang lebih besar dan lebih besar dan lebih besar, 1330 01:10:39,000 --> 01:10:43,000 dan anda tidak perlu untuk menjaga semua tentang malloc atau seperti dalam bahasa seperti ini, 1331 01:10:43,000 --> 01:10:46,000 dan ada cara lain untuk melakukan ini, tetapi ini adalah salah satu yang paling cepat 1332 01:10:46,000 --> 01:10:48,000 cara-cara untuk meletakkan ia keluar. 1333 01:10:48,000 --> 01:10:50,000 Apakah ini lakukan? 1334 01:10:50,000 --> 01:10:55,000 Ia mewujudkan satu badan e-mel yang akan mengatakan Nama: Kapten: Jantina: Dorm: 1335 01:10:55,000 --> 01:10:58,000 semua pada baris yang berasingan, dan kemudian akhir sekali, 1336 01:10:58,000 --> 01:11:00,000 satu baris kod, dan saya akan mengabaikan ini sekarang. 1337 01:11:00,000 --> 01:11:02,000 Jika == palsu hanya bermakna jika sesuatu silapnya, 1338 01:11:02,000 --> 01:11:04,000 tetapi keajaiban berlaku di sini. 1339 01:11:04,000 --> 01:11:08,000 Mail menghantar bermakna menghantar e-mel ini. 1340 01:11:08,000 --> 01:11:10,000 Mari kita lihat apa hasil bersih. 1341 01:11:10,000 --> 01:11:13,000 Di bawah fail, notis ia akan mengatakan anda berdaftar benar-benar 1342 01:11:13,000 --> 01:11:15,000 jika saya mendapat yang jauh. 1343 01:11:15,000 --> 01:11:18,000 Jika, walaupun, pengguna skru, notis bahawa kita mula ini 1344 01:11:18,000 --> 01:11:21,000 jika keadaan di sini, jika ia tidak kosong dan tidak kosong 1345 01:11:21,000 --> 01:11:24,000 dan tidak mengosongkan kita menghantar mel. 1346 01:11:24,000 --> 01:11:27,000 Jika tidak kita akan untuk menghantar ini selaras kod, 1347 01:11:27,000 --> 01:11:30,000 yang akan mempunyai kesan, seperti yang anda akan lihat dalam pset 7, mengalihkan pengguna 1348 01:11:30,000 --> 01:11:35,000 kembali ke mana mereka datang froshims3.php,. 1349 01:11:35,000 --> 01:11:38,000 >> Jari bersilang, sebaliknya ini akan menjadi demo yang paling mengecewakan pada hari ini. 1350 01:11:38,000 --> 01:11:40,000 Di sini kita pergi. 1351 01:11:40,000 --> 01:11:42,000 Izinkan saya membuka peti masuk e-mel saya untuk jharvard dalam Gmail. 1352 01:11:42,000 --> 01:11:44,000 Tiada e-mel sekarang. Semua hak. 1353 01:11:44,000 --> 01:11:53,000 Sekarang mari saya membuka froshims3, yang adalah contoh yang ketiga dan terakhir kita akan melihat di sini. 1354 01:11:53,000 --> 01:11:55,000 Okay, di sini kita pergi. 1355 01:11:55,000 --> 01:12:00,000 Nate, dia akan menjadi kapten, lelaki, daripada, katakan, Apley. 1356 01:12:00,000 --> 01:12:04,000 Mendaftar. Okay, anda berdaftar benar-benar. 1357 01:12:04,000 --> 01:12:07,000 Sekarang jika saya tatal ke e-mel saya, oh, Tuhan saya. 1358 01:12:07,000 --> 01:12:09,000 Saya baru sahaja dinamik menghantar e-mel di Web. 1359 01:12:09,000 --> 01:12:11,000 >> Mari kita meninggalkan pada nota itu. 1360 01:12:11,000 --> 01:12:16,000 Video A akan datang untuk kuliah kita terlepas. Jumpa anda minggu depan. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]