>> SPEAKER 1: Semua, betul mengalu-alukan kembali.
Ini adalah CS50.
Dan ini adalah permulaan minggu sembilan.
Dan ini adalah permulaan yang lain masa anda di CS50, di mana kita
peralihan sekarang, akhirnya, untuk web aspek kursus, di mana anda akan
mendapati bahawa banyak asas-asas yang kita telah mengeksport selama beberapa minggu
masih kembali untuk melawat, atau menghantui, kita.
Tetapi sekarang, anda akan mendapati bahawa ia adalah satu perintah magnitud lebih mudah untuk
melaksanakan tugas-tugas tertentu dan menyelesaikan masalah-masalah tertentu -
sehinggakan walaupun anda fikir set masalah tertentu yang menyeronokkan di mereka
cara sendiri, saya berfikir bahawa anda akan menemui p yang ditetapkan 7, p menetapkan 8, dan kemudian,
akhirnya, projek akhir akan semua lebih memuaskan kerana anda akan
mendapati bahawa kita mula mengambil mudah kini perkara-perkara seperti pengurusan ingatan, dan
petunjuk, dan apa yang berlaku di bawah hood.
Dan sekali lagi, tema, semua di seluruh semester telah lapisan ini
dan lapisan.
Dan sekarang kita jenis sehingga di sini, berdiri di atas
bahu minggu lalu.
>> Sekarang, ingat dari masa lepas bahawa kita bercakap tentang bagaimana internet bekerja.
Dan ini mungkin merupakan satu melampaui batas, tetapi ingat bahawa
setiap komputer di dunia mempunyai IP menangani, walaupun itu sedikit daripada
batas masih.
Dan orang-orang alamat digunakan untuk unik mengenal pasti mesin supaya
apabila anda menghantar maklumat, atau paket, jadi untuk bercakap, mereka boleh mempunyai sumber yang
alamat dan alamat destinasi.
Dan orang-orang alamat IP yang sama boleh digunakan kedua-dua yang baik dan juga untuk kejahatan,
untuk mengesan anda, misalnya.
Malah, setiap seorang daripada anda dengan komputer riba membuka sekarang, atau telefon dalam anda
poket, mempunyai alamat IP pada rangkaian Harvard.
Dan bukan semua yang sukar untuk mengaitkan bahawa siapa dan di mana anda
adalah hari ini.
Tetapi lebih kepada yang mungkin pada masa hadapan.
>> Sekarang saya fikir saya akan membawa balik beberapa kenangan [? meningkatkan?] dan memberi anda
klip lain dari persembahan anda mungkin mendapati biasa.
Jika kita boleh meredupkan hanya beberapa saat.
The Numb3rs menunjukkan.
>> SPEAKER 2: Ia adalah satu alamat IPP4 32-bit.
>> SPEAKER 3: IPP, seperti dalam internet?
>> SPEAKER 2: rangkaian persendirian.
Untuk rangkaian persendirian Amita ini.
Dia begitu menakjubkan.
>> SPEAKER 3: Datang pada, Charlie.
>> SPEAKER 2: Ia.
Satu alamat IP cermin.
Dia membiarkan kita melihat apa yang dia lakukan dalam masa nyata.
>> SPEAKER 1: OK, jadi beberapa perkara kena dengan gambar ini.
Jadi satu, dan yang satu ini boleh diterima, ini sebenarnya
bukan alamat IP yang sah.
Satu alamat IP yang sah telah menjadi nombor bentuk w.x.y.z, di mana setiap
surat yang adalah 0 hingga 255.
Tetapi itu halus kerana hanya seperti filem di mana mereka nombor telefon palsu,
mereka palsu alamat IP.
Anda sebenarnya tidak memukul pelayan sebenar.
>> Tetapi fikiran anda, ini adalah pelayar.
Dan pelayar tidak mula keluarkan kod komputer seperti ini.
Dan jika kita melihat sedikit lebih mendalam, notis bahawa bahasa yang mereka lihat
pada skrin adalah bahasa yang dipanggil Objektif C, yang merupakan bahasa
aplikasi iPhone yang ditulis, khususnya yang melibatkan
krayon, seperti yang anda boleh lihat dari kod sumber di sini.
>> OK, saya fikir ini adalah lucu.
Jadi potongan kod ini telah benar-benar tiada kaitan dengan apa-apa ini
episod tertentu adalah kira-kira.
Jadi jenaka adalah jenis kepada orang mengambil ini diberikan.
Tetapi ini tidak semua yang sukar untuk mendapatkan butir-butir teknikal yang betul.
Dan saya akan menggalakkan anda.
Dan sebenarnya, 50 sangat baik mungkin merosakkan banyak rancangan TV dan filem atau anda
kerana anda akan mendapati bahawa ia hanya tidak mungkin apa yang mereka
lakukan pada skrin.
Tetapi sesungguhnya, ini adalah kod yang anda mungkin melihat ia dalam aplikasi iPhone
atau Mac OS permohonan.
Ia mempunyai apa-apa pada semua kaitan dengan keselamatan.
Jadi memerhatikan keluar untuk lebih perkara yang menyeronokkan seperti seperti itu.
>> Tetapi hari ini kita mula menyelam di benar-benar mendalam untuk pelbagai bahasa.
Satu sesungguhnya, salah satu yang menyeluruh takeaways bahagian ini daripada
Sudah tentu tidak belajar bagaimana untuk program dalam PHP, tidak belajar SQL per se, tidak
belajar JavaScript per se, tetapi sebaliknya untuk mengajar diri sendiri bagaimana untuk mengajar
diri bahasa baru kerana, sesungguhnya, kita mula mengambil kini
roda latihan luar supaya selepas akhir kursus ini, anda tidak menjangkakan 20
spesifikasi halaman untuk memberitahu anda bagaimana untuk melaksanakan beberapa program.
Anda mempunyai bahan-bahan yang cukup dalam anda fikiran, dan alat-alat yang cukup dalam alat anda
kit, dengan yang mula membina penyelesaian kepada masalah yang menarik minat
anda bagi kumpulan sesetengah pelajar, bagi sesetengah projek penyelidikan, atau benar-benar apa-apa
menarik minat anda.
>> Jadi ke arah itu, ingat bahawa ini adalah gambar kita menarik masa lalu.
Dan ini adalah dua buah komputer, pelanggan dan memutuskan, bercakap dengan satu sama lain.
Dan protokol, bahasa, jadi untuk bercakap, bahawa kedua-dua komputer berlaku
untuk bercakap dipanggil HTTP.
Dan itu hanya protokol yang digunakan oleh komputer untuk memindahkan maklumat melalui
web di seluruh dunia.
Web, sudah tentu, adalah hanya salah satu perkhidmatan yang berjalan di atas
yang dipanggil internet.
Apakah perkhidmatan yang lain boleh didapati di atas internet hari ini?
Sesetengah protokol lain atau - apa itu?
>> PENONTON: FTP.
>> SPEAKER 1: FTP.
Jadi File Transfer Protocol adalah satu lagi.
Kebanyakan anda mungkin tidak menggunakannya.
Tetapi kebanyakan anda mungkin telah digunakan perkara-perkara seperti GChat, atau segera
mesej lebih amnya, pasti e-mel.
Dan orang-orang, juga, adalah perkhidmatan yang berjalan pada atas internet kerana, pada
akhir hari, internet itu sendiri benar-benar hanya mendapatkan data dari titik A ke
titik B. Dan ia menggunakan beberapa zarah itu sendiri, salah seorang daripada mereka atau dua
daripada mereka yang paling umumnya dipanggil TCP / IP, yang mengatakan bahawa salah satu komputer di
internet yang benar-benar boleh melakukan perkara yang berbeza, e-mel,
dan web, dan sebagainya.
Google melakukan banyak ini.
Jadi bagaimana perkhidmatan-perkhidmatan unik dikenal pasti, adakah kita katakan, pada komputer
yang mungkin sebenarnya melakukan pelbagai perkara?
>> Nombor port.
Dan ini adalah hanya manusia sewenang-wenangnya konvensyen seperti 80 adalah web, 443 adalah
web disulitkan, 25 adalah e-mel.
Dan terdapat tandan orang lain.
Dan orang-orang nombor hanya dimasukkan ke dalam paket maklumat mereka
sampul surat maya, yang benar-benar mengandungi permintaan atau jawapan.
>> Oleh itu, apabila anda kembali jawapan dari web, biasanya, anda tidak melihat apa-apa
nombor apa jua dari segi kod status sambutan.
Anda tidak benar-benar melihat mekanisme dalaman
paket yang kembali.
Tetapi 200 sememangnya bermakna OK.
Dan ini bermakna semua adalah baik.
Anda mungkin telah melihat sekumpulan ini.
Yang mungkin yang paling biasa anda telah melihat di web?
>> 404.
Ia hanya bermakna fail tidak dijumpai.
Ia bermakna seseorang kacau sehingga.
Anda lakukan dengan salah taip URL, atau seseorang lain lakukan dengan memberi anda
URL tidak sah, atau mereka dipadam fail dan URL yang masih
yang digunakan oleh orang-orang.
Jadi apa-apa bilangan sebab-sebab yang boleh menjelaskan mengapa fail tidak dijumpai.
Dan anda akan lihat, pada minggu-minggu akan datang, kod ralat yang lain, dan anda akan
mengambil kesempatan daripada beberapa daripada mereka.
Yang paling teruk adalah 500.
Jika anda mendapat ralat 500 dalam kod yang anda telah bertulis, memikirkan bahawa sebagai jenis yang
analog seg kerosakan dalam dunia pengaturcaraan web.
Ia tidak cukup sebagai buruk.
Tetapi ia hanya bermaksud bahawa, tempat, anda kacau sehingga.
Jadi sabar-sabar untuk mereka.
>> Tetapi mari kita lihat jika kita boleh melihat ini dalam konteks.
Biar saya pergi ke pelayar di sini dan melakukan yang berikut.
Jadi ini adalah Chrome, yang berlaku dipasang di dalam perkakas.
Tetapi yang paling setiap pelayar hari ini mempunyai beberapa fungsi yang sama.
Saya akan naik menu Chrome, dan pergi ke Tools, dan saya akan pergi
ke Alat Pemaju.
Dan anda akan melihat bahawa panel ini sedikit dibuka di bahagian bawah tingkap.
Jalan pintas yang lain, untuk bersikap jujur, bahawa saya biasanya menggunakan diri saya adalah untuk klik kanan
atau Kawalan klik mana-mana sahaja di web halaman dan hanya pergi ke Memeriksa Unsur.
Dan itu bukan sahaja akan membuka ini ada untuk anda.
Ia juga akan membuka, khususnya, Unsur-unsur bahagian pada
sebelah kiri.
>> Jadi kita sudah tentu melihat Google.
Mereka menukar logo mereka hari ini.
Tetapi pada jika saya tatal ke bawah di sini, notis Unsur-unsur yang bawah, anda lihat
apa yang dipanggil HTML, Hiperteks Markup Bahasa, dan ini adalah bahasa
ini dan semua laman web, benar-benar, akan ditulis masuk
Tetapi ia sebenarnya diformat untuk kita lebih banyak lagi readably
daripada ia biasanya adalah.
Malah, jika saya zum keluar, dan saya bukan hanya klik atau Kawalan Klik Kanan
klik pada halaman, dan kemudian pergi ke Lihat Page Source, ini adalah benar-benar apa yang
Google diturunkan kepada pelayar saya.
>> Jadi beberapa orang atau orang-orang menulis Google.com menggunakan kod sumber ini.
Kebanyakan ini tidak HTML.
Ini sebenarnya bahasa yang dipanggil JavaScript, yang
kami akan datang ke pada Rabu.
Tetapi apa Chrome, dan apa yang pelayar setiap boleh lakukan untuk kita, adalah jenis melihat
lalu semua gangguan daripada sintaks gila, dan masukkan semula ruang putih
bagi kami, dan juga menyerlahkan sintaks, atau Colorize perkara untuk kita.
Jadi, anda akan mendapati bahawa apa yang dipanggil alat pemaju yang dibina dalam pelayar
akan membuat hidup anda demikian, lebih mudah kerana anda boleh meneroka, melalui menu ini
muka, apa yang asas kod sumber adalah untuk
mana-mana laman di internet.
Dan sesungguhnya, ini adalah salah satu yang paling cara yang berkesan untuk mempelajari bagaimana untuk melakukan
sesuatu yang baru, sekurang-kurangnya jika halaman tidak begitu kompleks seperti untuk mengatasi, adalah
mula poking sekitar ia HTML, melihat di CSS yang dipanggil, yang kami akan datang
untuk sedikit juga, untuk mendapatkan memahami bagaimana programmer yang
melaksanakan beberapa tertentu ciri halaman.
>> Tetapi yang lebih teknikal yang betul menarik kini ia akan menjadi ini.
Jika saya pergi ke tab Network, mari kita kini jelas ini.
Saya akan klik sedikit simbol salib di sini, dan kemudian
pergi ke laman web yang lain.
Dan saya hanya akan menaip di Facebook.com.
Tiada HTTP, HTTPS tidak, tiada WWW.
Mari kita benar-benar melihat apa yang berlaku di sini.
>> Enter.
Sekarang notis sejumlah besar barangan hanya muncul di panel bawah ini,
Selain laman web yang terdapat di atas.
Saya akan meninjau kembali ke Tab Network di sini, dan saya akan
klik pada baris pertama.
Apakah alat ini akan mendedahkan kepada kita tiap-tiap seorang daripada permintaan HTTP
yang cepat hanya pergi ke belakang dan alik antara pelayar saya
dan pelayan Facebook.
Dan supaya setiap seorang daripada mereka baris merupakan salah satu permintaan itu atau
tindak balas, satu atau lebih daripada mereka sampul surat maya.
Atau lebih bersahaja, ia adalah seperti orang yang seperti orang, pelanggan di
restoran, meminta sesuatu sekali lagi, dan sekali lagi, dan lagi.
Dan pelayan terus membawa kembali pada satu masa.
>> Jadi sekarang, jika saya zoom di atas ini, notis dan ini akan menjadi perkara seperti
bahawa anda mengalu-alukan dan digalakkan untuk bermain dengan sendiri, kerana kita
tidak akan pergi melalui segala-galanya secara terperinci.
Tetapi notis terdapat beberapa tab kecil di sini -
Tajuk, Preview, Response, Cookies, dan masa.
Saya hanya akan melihat tajuk buat masa sekarang kerana ini adalah sedikit
bahan-bahan di dalam sampul surat yang data membantu mendapatkan ke dan dari tempat.
>> Jadi pertama, izinkan saya klik ini, Lihat Source sebelah Tajuk Permintaan.
Terdapat permintaan yang pelayar saya, Chrome, dalam kes ini, yang dihantar dalam
sampul surat yang maya.
Anda akan ingat minggu lepas saya ditaip sambil manual
berpura-pura menjadi pelayar.
Kemudian ia mengingatkan pelayan yang ia mencari tuan rumah yang dipanggil
Facebook.com.
Dan kemudian ada sedikit lebih batin maklumat yang kita akan melambai
tangan kita buat masa ini.
>> Tetapi jika saya mula tatal ke bawah kini dalam tetingkap ini, izinkan saya sampai ke
tajuk tindak balas.
Ini adalah apa yang ada di maya sampul surat yang pulang dari
Facebook.com.
Dan jika saya klik Lihat Sumber hanya untuk melihat teks mentah itu,
notis beberapa perkara.
Satu, Facebook juga bercakap yang sama protokol, versi 1.1 itu.
Jadi, itu bagus.
Tetapi kod status 301, bergerak selama-lamanya.
>> Nah, di mana palang pintu tidak Facebook pergi?
Apa yang ini cuba untuk menyampaikan kepada kami?
Well, melihat ke bawah di sini terdapat satu lagi header dipanggil Lokasi.
Jadi mengapa Facebook memberitahu saya bahawa mereka berpindah secara kekal ke URL yang
sebelah Lokasi?
Saya terlupa www.
>> Jadi itu adalah pilihan saya.
Malah, kebanyakan kita jarang, mungkin, menaip www.whatever.com hari ini.
Tetapi ternyata pentadbir sistem, seperti Facebook, boleh
mengkonfigurasi pelayan mereka dalam apa-apa cara yang yang sama ada Facebook.com berfungsi, atau
www.Facebook.com berfungsi, atau, benar-benar, mana-mana awalan seperti di hadapan mereka
nama domain.
Jadi mereka telah melakukan itu untuk kita.
Dan mereka mengubah hala kami, mungkin untuk beberapa teknikal,
beberapa sebab pemasaran.
Mereka hanya mahu canonicalize di www.Facebook.com.
>> Tetapi itu tidak cukup ia.
Jika saya tatal ke bawah di sini, mari kita melihat apa yang berlaku.
Ini memberitahu saya kita berpindah secara kekal ke
http://www.Facebook.com.
Jadi mari kita lihat di atas permintaan kedua bahawa pelayar saya menghantar.
Malangnya, ia kelihatan seperti Facebook telah berpindah lagi kerana kedua
permintaan, dengan memilih URL yang sebaliknya, mengatakan bahawa, terlalu, bergerak
selama-lamanya.
Dan biarlah saya tatal ke bawah di sini untuk tajuk tindak balas.
Jika telah Facebook pergi sekarang?
>> Jadi HTTPS.
Jadi sekarang Facebook telah bermula, terutamanya dalam cahaya semasa
peristiwa di bulan kebelakangan ini, khususnya dan juga dalam beberapa tahun yang lalu
untuk memaksa semua pengguna mereka, yang baik cara untuk menggunakan HTTPS, yang lebih
menjamin, walaupun tidak sepenuhnya selamat.
Dan sehingga kini halaman saya, pelayar saya akan meminta URL ketiga ini.
Dan kini, akhirnya, kita mendapat sebaliknya ghaib 200 OK.
>> Jadi apa yang di dunia atau semua baris ini yang lain di sini.
Saya benar-benar ditaip satu perkara, dan saya pelayar nampaknya telah diminta seperti
20 beberapa perkara ganjil.
Apakah itu?
>> PENONTON: Skrip?
>> SPEAKER 1: Skrip, fail jadi lain ditulis dalam bahasa yang dipanggil
JavaScript, yang, sekali lagi, kita akan melihat sedikit pada Rabu.
Apa lagi?
Gaya helaian.
Jadi sesuatu dalam bahasa yang dipanggil CSS, yang kita akan melihat dalam sedikit.
Gifs, dan JPEG, dan jumlah PNGS, dan imej, dan fail filem - apa sahaja laman web
telah kemungkinan besar dalam bentuk fail.
Dan supaya apa yang kita lihat di sebelah kiri sebelah ada semua fail-fail
bahawa Chrome mempunyai untuk memuat turun, Recursively, jika anda akan, untuk
mengarang keseluruhan halaman.
>> Jadi apa yang kita lihat masa lalu dengan Google, jika saya klik pada Elemen
tab, ini, pasti, HTML, yang bahasa yang dikomposisikan halaman ini.
Tetapi ada tandan perkara-perkara lain.
Terdapat logo.
Ada orang-orang biru-ish ikon di sana.
Dan ada unsur-unsur lain masih halaman yang diri mereka mungkin
fail berasingan.
>> Jadi apa yang baik tentang pelayar adalah bahawa ia kelihatan pada bahasa kita akan
untuk mula menulis, atau anda telah pun penulisan bermula pada P set 7, angka
di mana fail-fail hidup, dan pergi dan mengambil mereka juga.
Dan saya tidak boleh menekankan cukup, walaupun walaupun sesetengah ini mungkin kelihatan sedikit
batin atau besar pada pandangan pertama, belajar bagaimana untuk program
permohonan untuk web, ia adalah yang tidak ternilai untuk memahami bagaimana
alat sedikit bekerja.
Ini adalah jenis seperti GDB seperti alat, tetapi lebih mudah, akhirnya, untuk digunakan -
dan benar-benar memberi anda mata ke dalam apa kita telah mengambil untuk diberikan bagi
sekian lama kini.
>> Jadi apa yang boleh kita lakukan dengan maklumat ini?
Nah, mari kita sebenarnya kita lihat konsep asas HTML.
Dan kami akan menangguhkan, seperti yang kita sudah mempunyai, untuk bahagian minggu ini, kepada masalah
menetapkan 7 spesifikasi, bagi sesetengah orang yang lebih butir-butir bahasa ini.
Tetapi mari kita lihat jika kita tidak boleh cat gambar apa yang anda perlu memahami
keseluruhan di sini.
>> Jadi HTML, Hiperteks Markup Language, bukan bahasa pengaturcaraan.
Apa yang benar-benar bermakna?
Jadi HTML kelihatan seperti ini.
Dan sesetengah daripada anda sudah tahu ini.
Sebahagian daripada anda telah melakukan ini untuk beberapa ketika.
Tetapi mari kita lihat jika kita tidak boleh mengisi di beberapa tempat kosong juga.
Jadi notis beberapa perkara di sini.
Satu, ia hanya teks.
Jadi ia adalah sama seperti kod sumber dalam C, atau beberapa bahasa lain.
>> Perhatikan bahawa terdapat seolah-olah menjadi corak di sini.
Ada kasturi, tetapi secara teknikal lekukan hanya manusia
konvensyen.
A pelayar tidak peduli jika ada yang baru garis dan tab seperti kita lihat di sana.
Tetapi notis bahawa terdapat simetri di sini.
Ada apa yang saya akan memanggil, di bahagian atas fail ini, tag terbuka, atau permulaan
tag, dipanggil HTML.
Dan kemudian, turun ke bawah, sempurna berbaris up, sama seperti yang kita lakukan dengan pendakap kerinting,
kita lihat kurungan terbuka, ke hadapan slash, HTML, kurungan rapat.
Jadi yang dekat yang sama tag, atau akhir tag, untuk perkara itu.
>> Bersama-sama, semua bahagian dalam yang dipanggil tag terbuka dan tag penutup
mengarang apa yang kita akan memanggil unsur.
Dan kita akan melihat, dalam hanya seketika, ia benar-benar suka nod dalam pokok.
Kerana jika anda berfikir tentang kini lekukan itu tersirat di sini, anda
jenis mempunyai, seperti, nenek a nod dipanggil HTML.
Berapa ramai anak-anak anda mungkin berkata, berdasarkan pada gambar ini, elemen HTML mempunyai?
>> Jadi mungkin dua.
Satu adalah elemen kepala, nampaknya.
Dan salah satu adalah elemen badan.
Dan mengapa dua kanak-kanak?
Well, saya hanya jenis membuat kesimpulan bahawa jika Saya mempunyai tag kepala terbuka dan kemudian
tag kepala dekat, itulah unsur.
Dan kemudian, jika terdapat satu lagi badan terbuka tag dan tag badan yang rapat, yang seperti
elemen lain.
Jadi, dalam erti kata bahawa jika saya jenis putar gambar di sebelah, ia
seperti mempunyai tag HTML, dan kemudian tag kepala, dan kemudian tag badan dan
maka beberapa teks, hello dunia, tergantung kira tag badan itu sendiri.
>> Jadi kita boleh melukis gambar yang mungkin kelihatan seperti ini.
Bentuk yang sewenang-wenangnya.
Tetapi notis bahawa saya telah menggunakan jenis yang Bujur di atas untuk mewakili
dokumen itu sendiri.
Ternyata ada boleh menjadi barangan lain dalam sebuah laman web yang saya tidak telah
disediakan di sini.
Jadi kita akan juga menggantung HTML off nod nod dokumen kononnya.
Dan maka kita mempunyai kepala dan badan dan tajuk, notis,
yang bersarang lagi.
Saya tidak mengganggu meletakkan garis tambahan rehat dalam tag tajuk.
Ia hanya berasa seperti ia semakin terlalu sedikit lantung.
Jadi, saya meninggalkan ia dalam satu baris di sana, dengan tajuk terbuka, hello dunia, tajuk dekat.
Dan kemudian kita mempunyai beberapa teks tergantung kira di sini.
>> Jadi gambar ini akan kembali kepada kita apabila kita menyelam ke dalam JavaScript.
Dan memahami bahawa apabila anda menulis HTML seperti ini, apa yang
adalah pelayar lakukan?
Nah, kita tidak perlu bimbang tentang bagaimana ia berbuat demikian, atau dengan apa
algoritma, tetapi pada akhir hari, apabila pelayar menerima HTML seperti
bahawa, dari Facebook atau Google, ia mem-parsing , jadi untuk bercakap, ia membacanya,
dengan sesuatu seperti fread, atas ke bawah, kiri ke kanan, dan kerana ia
sedar, oh, tag terbuka, dan kemudian tutup tag, ia mula malloc, jadi untuk bercakap,
nod dalam pokok.
Dan apabila menghadapi, seperti yang kita telah tersirat di sini dengan kasturi, satu
nod kanak-kanak, ia mallocs nod bagi dan dilampirkan bahawa pokok itu.
>> Oleh itu, struktur pokok, pokok-pokok perduaan, pokok pertigaan, dan pokok-pokok yang lebih besar, yang
kita memandang pada satu atau dua minggu yang lalu, notis bahawa prinsip yang sama
datang kembali kepada kami.
Dan sesiapa yang dilaksanakan, Chrome apa pasukan melakukannya, mungkin mempunyai
untuk melaksanakan beberapa jenis struktur pokok di bawah hood.
Dan itu sendiri mungkin dalam bahasa seperti C atau C + +, atau yang lebih rendah
bahasa tahap yang kita akan kini menggunakan atas web.
>> Jadi sekarang, mungkin, ini akan lebih masuk akal.
Tatu sebenar dari beberapa lelaki yang mungkin menyesal akhirnya, jenis.
OK, semua hak, jadi banyak jenaka web.
Ia tidak benar-benar akan lebih begitu baik hari ini.
Oleh itu, kita akan bergerak ke atas.
Baiklah.
>> Jadi mari kita lihat sekarang di beberapa contoh.
Yang paling mudah perkara yang mungkin ini.
Saya akan pergi ke hadapan dan membuka dalam gedit fail yang dipanggil hello.php.
Dan di dalam sini, saya akan cepat hanya melakukan ini, printf, memetik
unquote, "hello dunia."
>> Jadi notis, dan saya akan melakukan n backslash saya, Saya tidak peduli untuk mengisytiharkan utama.
Ternyata, dalam php, dan banyak bahasa, anda tidak perlu utama
fungsi per se.
Anda hanya boleh mula menulis program anda.
Kini, apabila saya menyimpan fail ini, notis Saya akan perlu melakukan yang berikut.
Saya tidak akan menggunakan membuat, dan saya tidak akan menggunakan dilafaz kerana PHP, tidak seperti
C, bukan bahasa yang disusun.
Ia adalah apa yang dipanggil ditafsirkan bahasa, yang bermakna bahawa anda berjalan
sebagai input melalui program lain dipanggil jurubahasa.
Dan program yang membaca itu, atas ke bawah, kiri ke kanan, dan tidak
apa sahaja yang anda beritahu kepada lakukan.
>> Jadi dalam kes ini di sini saya mempunyai satu baris yang mengatakan printf.
Oleh itu, apabila saya menjalankan kod sumber ini, hello.php, walaupun program yang
berlaku, mudah, yang akan dipanggil PHP, bahawa program PHP akan membaca
fail ini, atas ke bawah, kiri ke kanan, dan ia akan melakukan apa yang saya
beritahu lakukan - melaksanakan kod, dan jika ia tidak mengiktiraf sesuatu, hanya
meludah keluar.
Jadi, saya akan pergi ke hadapan dan menjalankan PHP daripada hello.php.
Enter.
>> Dan itu tidak cukup apa yang saya dimaksudkan.
Nah, mengapa itu?
Nah, PHP adalah bahasa yang sebenarnya direka untuk menjadi agak
berkait rapat dengan web.
Apabila membuat laman web dengan bahasa ini PHP, seperti yang kita akan melihat, kita akan
mahu melakukan sesuatu seperti cetak keluar baris seperti ini.
>> Jadi, saya akan melakukan ini.
Kurungan terbuka, tanda tanya, PHP, dan sekarang saya hanya akan inden hanya untuk menjaga
perkara yang baik.
Dan sekarang saya akan melakukan satu soalan tanda kurungan rapat.
Jadi ada sedikit ketidakseimbangan di sini.
Anda tidak melakukan ini.
Dan anda tidak melakukan slash, jadi PHP adalah sedikit berbeza.
>> Tetapi sekarang, jika saya jalankan program ini, PHP hello.php, sekarang saya
sebenarnya mendapat Hello World.
Dan kita akan melihat mengapa ini adalah berharga.
Satu, ia membolehkan saya untuk menentukan, super jelas, ini adalah
kod, melaksanakan ini.
Dan bahawa sesungguhnya apa yang tag khas membayangkan di sini.
>> Tetapi ia juga bermakna bahawa jika saya hanya melakukan sesuatu seperti saya berhasrat di sini, bahawa
bermakna, secara literal, yang akan hanya dicetak tanpa perlu
sebenarnya panggilan printf, atau cetak, atau apa-apa fungsi yang sama.
Oleh itu, kita akan kembali kepada yang dalam hanya seketika.
>> Pertama, mari kita melakukan ini.
Dalam perkakas, kita mempunyai direktori dipanggil Vhosts, untuk maya
tuan rumah, mengurangkan host tempatan, mengurangkan awam.
Jadi ia adalah satu lantung bit, tetapi cerita lama pendek, perkakas tidak direka
sahaja untuk menyokong C. Ia juga direka untuk menyokong PHP.
Tetapi ia juga direka untuk menjadi web pelayan, dan pelayan pangkalan data.
Dan ia direka, dan benar-benar dikonfigurasikan, untuk mengingatkan mana-mana
komersial syarikat web hosting yang anda boleh membayar $ 5 sebulan bagi,
$ 100 sebulan untuk.
Apa sahaja perkhidmatan ini, ia dikonfigurasi menjadi sangat serupa dengan
sebenar server pengeluaran dunia.
>> Dan apa yang bermakna bahawa berjalan di perkakas perisian pelayan web.
Ia berlaku kepada dipanggil Apache.
Ia hanya percuma dan sumber terbuka, dan sangat popular.
Dan kita telah mengkonfigurasi Apache tahu bahawa jika saya melawat URL tertentu, dengan
Chrome atau mana-mana pelayar bahagian dalam perkakas, untuk melihat ke dalam direktori ini
untuk fail bahawa pengguna meminta.
>> Dalam erti kata lain, biarlah saya pergi ke hadapan dan melakukan ini.
Di dalam direktori awam saya, saya akan untuk pergi ke hadapan dan mencipta fail
dipanggil index.html.
Yang memberikan saya tab di sini.
Dan saya akan pergi dengan cepat dan pergi ke hadapan dan bang
program ini di sini.
DOCTYPE HTML, yang buat masa ini, hanya menganggap anda perlu menaip.
Ia hanya tag batin, yang tidak benar-benar sebuah tag HTML, yang menyatakan bahawa
di sini datang beberapa HTML.
>> Saya akan pergi ke hadapan dan mencipta apa yang kita lihat sebentar tadi.
Berikut adalah kepala halaman.
Di dalam kepala adalah -
jadi tajuk.
Oleh itu, kita akan bertanya khabar, dunia.
Dan kemudian turun di sini adalah tag badan.
Izinkan saya menutup tag badan.
Dan kemudian di sini saya juga akan berkata, hanya untuk kejelasan, hello dunia.
>> Jadi ini adalah, boleh dikatakan, yang paling mudah laman web yang mungkin anda
boleh membuat itu sah.
Ia sintaksis sah.
Semua itu dibuka ditutup.
Semuanya baik dalam gaya dan tersusun.
Jadi mari kita lihat sekarang bagaimana saya boleh mengakses fail ini.
>> Baiklah, biar saya pergi ke Chrome sini.
Dan biarlah saya pergi ke http://localhost/index.html.
Jadi apa yang tuan rumah tempatan?
Nah, mana-mana komputer yang paling di dunia, Linux, Mac OS, Windows, mempunyai nama samaran
dipanggil tuan rumah tempatan.
Jadi jika anda pernah mahu bercakap ke komputer anda sendiri -
walaupun, aneh reflexively -
anda memanggil diri anda tuan rumah tempatan.
Tidak kira apa yang komputer anda yang sebenarnya adalah dipanggil, sama ada ia adalah MacBook Daud
Udara, atau sesuatu yang lebih lantung seperti itu.
>> Jadi URL ini nampaknya akan menggunakan HTTP untuk bercakap dengan tuan rumah tempatan,
komputer yang sama, perkakas, dan ia akan meminta, hanya mengambil
rasa, apa yang fail?
Index.html.
Jadi perkakas telah ditetapkan di maju ke tahu bahawa jika saya meminta
untuk sesuatu seperti index.html, mencari dalam folder yang dipanggil Vhosts, dalam
folder dipanggil localhost, dalam folder dalamnya dipanggil awam.
Itulah di mana semua orang awam saya fail akan menjadi.
Jadi, saya kini akan tekan Enter.
>> Dan bodoh, ada yang dilarang mesej, atau dikenali sebagai 403, yang
kod angka untuk itu.
Jadi apa yang salah di sini?
Nah, ia tidak cukup untuk hanya meletakkan fail di dalam folder saya.
Saya perlu untuk benar-benar melakukan yang berikut.
>> Biar saya pergi ke direktori Vhosts saya, ke localhost, ke dalam orang ramai, dan membiarkan
saya melakukan ls melontarkan l.
Dan ada beberapa perkara lain di sini untuk tujuan hari ini.
Tetapi notis di sebelah kiri, akan datang untuk index.html, kita hanya melihat satu RW.
Dan pada masa lalu, apa yang telah RW berdiri?
>> Hanya membaca atau menulis.
Hakikat bahawa ia berkata rw di sebelah kiri bermakna saya, pemilik fail ini, boleh
membaca atau menulis.
Tetapi saya perlu memberitahu semua orang di dunia membaca ini, walaupun tidak menulisnya.
Jadi, saya akan mengubah cara yang fail, chmod, semua plus r untuk memberi
semua orang membaca kebenaran kepada fail yang dipanggil index.html.
>> Dan jika saya kini Taip semula ls melontarkan l, notis itu, di sini, ada yang lebih
R telah muncul.
Dan sekarang, spesifikasi pergi ke lebih terperinci.
Untuk P set 7, yang hanya bermakna semua orang kini boleh membaca fail ini.
Jika saya kembali ke penyemak imbas saya sekarang dan tambah nilai, Voilà.
Hello dunia.
>> Dan saya juga boleh membuka alat Chrome saya dan lihat, sama seperti dengan Google dan
Facebook yang ada HTML saya, diformat sedikit
berbeza dan berwarna.
Jika saya pergi ke tab rangkaian dan tambah nilai halaman, melihat bahawa ada mendapat
meminta Chrome menghantar pada perkakas.
Terdapat 200 bagi fail tertentu.
Jadi ringkasnya, ini adalah bagaimana semua ini pelbagai keping yang datang bersama-sama.
Ia hanya kebetulan bahawa pelayan web kita gunakan sekarang tidak jauh,
seperti Facebook.
Ia adalah betul-betul di komputer yang sama, yang betul-betul OK.
>> Jadi apa lagi yang boleh kita lakukan di laman web?
Nah, hanya, mari angin melalui beberapa perkara-perkara ini.
Tetapi biarlah saya pergi ke hadapan dan membuka semula Gedit dengan index.html.
Dan biarlah saya pergi ke hadapan dan bertanya khabar CS50, menyimpan fail ini, kembali ke
pelayar, perubahan benar-benar underwhelming.
>> Tetapi bagaimana jika kita mahu untuk benar-benar menghubungkan kepada sesuatu yang sekarang?
Jadi ia ternyata bahawa kita boleh mempunyai pautan dalam HTML yang hanya tag
diri mereka sendiri.
Ia berlaku yang dikenali sebagai tag anchor. href sama
https://www.cs50.net, www.cs50.net quote rapat, kurungan rapat.
Dan sekarang mari kita lihat apa lain datang akan datang.
>> Saya telah membuka tag.
Saya kini perlu memberikan frasa seperti CS50.
Izinkan saya menutup tag.
Dan notis beberapa perkara.
Walaupun ada perkara ini samar di sini, saya tidak berulang apabila anda
menutup tag.
Anda hanya menutup tag dengan namanya sahaja.
Dan ini adalah apa yang dikenali sebagai sifat dengan nilai.
Sifat-sifat hanya mengubah suai tingkah laku beberapa tag di dalam halaman.
>> Jadi ini menyatakan bahawa hyper rujukan, cara mewah untuk mengatakan
URL untuk anchor ini, kerana ini link, harus CS50.net.
Dan teks yang kita mahu untuk menunjukkan pengguna tidak adalah bahawa URL mentah, tetapi
yang CS50 perkataan.
>> Jadi jika sekarang saya tambah nilai, izinkan saya zoom dalam untuk kejelasan, izinkan saya memuatkan semula halaman,
melihat bahawa kita mempunyai sekolah lama ini biru yang digariskan link.
Dan jika saya di atasnya, dan ia akan menjadi sukar untuk melihat, di bahagian bawah kiri
sudut skrin, notis bahawa ia berkata URL yang
Saya akan pergi.
Dan jika saya klik di sana, Voilà, sekarang saya membuat laman web.
Dan kami telah membawa diri ke halaman rumah.
>> Tetapi notis apa yang berpotensi ini menawarkan kita.
Keselamatan adalah amat menjadi tren hari ini.
Bagaimana jika saya bukan mengatakan sesuatu seperti ini, dan saya bukannya pergi ke, katakan, mari kita
lihat, fakeCS50.net.
Muat semula laman ini.
>> OK, jadi melihat ia masih kelihatan seperti saya akan CS50, melainkan mata bijak
akan melihat saya akan CS50 palsu.
Saya meneka domain ini tidak diambil.
OK, jadi ia tidak ada.
Jadi itulah yang baik.
Tiada siapa yang benar-benar mempunyai domain tersebut.
>> Tetapi mari kita menjadi sedikit lebih berniat jahat kerana itulah jenis bodoh.
Bagaimana jika kita menukar ini kepada Paypal.
Dan apa yang jika kita memanggil ini, seperti, www.paypal.badguy.com,
apa sahaja domain itu.
Yang mungkin wujud.
Jadi sekarang biarlah saya memuat semula halaman.
Dan di sini kita mempunyai jenis phishing serangan, P-H-I-S-H-I-N-G, yang merupakan
perkataan bodoh diberikan untuk serangan yang cuba untuk maklumat ikan, atau, lebih baik
lagi, wang, daripada rakyat dengan pembodohan mereka ke dalam memberikan maklumat yang
mereka mungkin yang tidak dilakukan.
Ini kelihatan benar-benar legit, bukan?
Saya mesti mempunyai pautan ke sini untuk Paypal.com.
Dalam keadilan, jika saya sexed ia dengan beberapa grafik, kita boleh membuat ia kelihatan
lebih seperti PayPal.
Betul?
Kerana saya boleh, sebagai diketepikan, Saya boleh pergi ke Paypal.com.
Dan kita baru sahaja melihat bagaimana saya boleh melihat semua HTML mereka.
Saya hanya boleh menyalin dan mencipta estetika Paypal bukannya pergi
sekolah lama di sini.
Tetapi notis, sudah tentu, dan ia sedikit masih kecil, hanya di bawah
sudut kiri, dalam seperti titik 10 font, adakah anda melihat apa URL anda
sebenarnya akan membawa kepada.
>> Dan jadi jika anda pernah mendapat spam berkata pergi ke hadapan, dan anda akaun
telah dikompromi.
Sila klik pautan ini dan marilah kita tahu kata laluan anda supaya kita boleh memastikan anda
anda, tidak pernah berbuat demikian.
Perkara-perkara ini harus pergi tanpa berkata.
Tetapi ia adalah hebat lucu, dan tragis, bagaimana setiap tahun ini seolah-olah
berlaku kepada beberapa bukan sifar beberapa orang.
>> Dan itulah keindahan phishing serangan.
Anda boleh menghantar satu juta e-mel.
Dan walaupun 0.01% orang sebenarnya klik pada Paypal dan memberikan anda
kata laluan, yang masih nombor bukan sifar orang-orang yang baru sahaja memberikan
anda wang mereka.
Dan menghantar e-mel, sudah tentu, adalah agak mudah dan, pada dasarnya, percuma
hari ini.
>> Jadi cerita panjang pendek, hebat idea yang indah, bukan?
Tahun lalu, ini adalah yang terawal web, membolehkan web
hyperlink antara sumber.
Tetapi begitu cepat ia boleh menjadi digunakan untuk tujuan sakit.
Dan e-mel, memadai untuk mengatakan, ini hari, telah HTML tertanam dalam.
>> Baiklah, biar saya hanya satu perkara yang lain.
Dan kami akan menangguhkan sebahagian besarnya kepada seksyen dalam masalah menetapkan tujuh untuk membolehkan anda
meneroka butir-butir.
Tetapi biarlah saya pergi ke hadapan dan melakukan beberapa perkara di sini.
Saya akan masuk dan mengisytiharkan apa yang dipanggil div, atau
bahagian, halaman.
Izinkan saya menutup bahawa tag div.
>> Dan saya akan berkata sehingga di sini atas halaman.
Dan kemudian di bawah ini, saya akan melakukan sesuatu seperti span yang lain, menutup ini
tag, dan melakukan bahagian bawah halaman.
Dan mari kita menyimpannya.
>> Jadi sekarang mari kita kembali ke fail saya.
Sangat underwhelming.
Tetapi apa yang bahagian digunakan untuk, di bawah hood, ia sebenarnya
elemen struktur nice.
Ia tidak mempunyai apa-apa estetika setakat kita dapat lihat, selain daripada, nampaknya,
meletakkan sesuatu pada garis baru.
>> Tetapi notis, sebagai diketepikan, hanya memukul Masukkan tidak dipotong dalam HTML seperti ia
tidak di C. Anda mungkin berfikir bahawa itu akan meletakkan jurang yang besar di antara baik
bahagian atas dan bawah halaman.
Tetapi ia diabaikan.
Ruang putih pada asasnya diabaikan dalam laman web selain dari yang pertama
watak bar ruang, atau pulangan pengangkutan, yang anda memukul pada papan kekunci.
Jika anda ingin rehat talian lebih, anda perlu menentukan sendiri.
>> Jadi, saya akan melakukan beberapa perkara di sini untuk menunjukkan apa yang berlaku.
Saya akan menambah sifat yang wujud Dan sekali lagi, cara anda belajar
apa ciri-ciri wujud, apa yang tag wujud, benar-benar, adalah rujukan dalam talian.
HTML adalah jenis bahasa - ia bukan bahasa pengaturcaraan.
Ia adalah satu bahasa markup - bahawa selepas setengah jam baik, mungkin, satu jam dengan
, anda pasti akan memahami, yang paling mungkin, idea asas.
Dan kemudian carian Google jauh adalah tag mungkin bahawa anda mungkin
tertarik
Dan setiap spesifikasi, yang agak mengalu-alukan dan digalakkan di sini.
>> Jadi sekarang biarlah saya pergi ke hadapan dan melakukan sesuatu seperti ini.
Latar belakang warna.
Dan sekarang, saya akan melakukan sesuatu seperti merah, koma bertitik.
Dan anda boleh melakukan ini dalam beberapa cara yang berbeza.
Saya hanya jenis menaip sebagai super jelas yang mungkin.
>> Tetapi ternyata bahawa nilai ini di sini adalah apa yang dipanggil CSS, Cascading Style
Kepingan, yang merupakan satu lagi bahasa sama sekali.
CSS mempunyai apa-apa kaitan dengan membuka tag dan tag dekat.
Ia mempunyai kaitan dengan ciri-ciri.
>> Dan hartanah adalah nilai hanya utama pasangan, yang hanya bermaksud beberapa perkataan,
kolon, dan kemudian beberapa perkataan lain.
Dan jika anda mempunyai orang-orang yang pelbagai, atau hanya satu di sini, anda boleh berakhir dengan
koma bertitik, hanya untuk kejelasan.
Tetapi itu juga akan bekerja di sini.
>> Sekarang ini apa yang akan lakukan?
Anda mungkin boleh meneka.
Biar saya pergi ke hadapan dan muat semula laman ini.
Dan kini ia benar-benar datang bersama-sama.
Jadi atas halaman saya adalah merah.
Tetapi apa yang penting di sini ialah, saya nyatakan sebelum ini, p yang memberikan anda
satu bahagian di halaman.
Dan bahawa sesungguhnya apa yang ia.
Ia pada asasnya membahagikan halaman ke segi empat tepat yang anda boleh kemudian
memanipulasi.
>> Dan idea ini daripada segi empat tepat adalah jenis menarik dalam bahawa, jika anda berfikir
laman web yang paling mana-mana, tidak mungkin beberapa struktur kepadanya.
Kebanyakan anda mungkin jarang dilihat Laman Facebook jika anda log masuk
di sepanjang masa.
>> Tetapi di halaman rumah Facebook, terdapat beberapa jenis span di bahagian atas.
Dan ia mungkin tidak semudah sebagai salah satu div, tetapi ada
rantau segi empat tepat di sana.
Selebihnya halaman adalah seperti a div besar, seperti yang lebih
rantau segi empat tepat yang lebih besar.
Jadi cerita panjang pendek, hanya dengan mempunyai blok-blok bangunan yang sedikit,
keupayaan kepada perkara-perkara seperti model segi empat tepat, sama ada luas atau sempit, anda boleh juga
membuat tiang yang berpotensi, membolehkan anda untuk meletakkan muka surat, benar-benar, tetapi anda
ingin.
Kami benar-benar hanya menggaru permukaan di sini.
>> Malah, jika saya lakukan salah satu yang lain, izinkan saya pergi ke hadapan dan melakukan gaya,
latar belakang warna, kita akan melakukan sesuatu seperti biru, memetik dekat.
Mari kita tambah nilai ini.
Jadi sekarang ia semakin lebih uglier.
Tetapi sekarang saya boleh jenis menunjuk-nunjuk P saya meletakkan lima kemahiran, bukan?
Merah.
Ia mengingatkan saya kepada RGB, Red Green Blue tiga kali ganda.
Nah, ternyata dalam pengaturcaraan web, atau reka bentuk web, yang ini, kita telah
belum apa-apa yang diprogramkan per se, anda boleh sebenarnya
mempunyai kod perenambelasan.
Jadi sesuatu sesuatu, sesuatu sesuatu sesuatu sesuatu.
Jadi, anda boleh mempunyai enam perenambelasan watak-watak, atau tiga, dalam beberapa kes,
dan setiap daripada mereka tanda tanya telah menjadi digit perenambelasan,
sifar melalui f.
>> Jika saya ingin mempunyai banyak merah, dan tidak hijau, dan tidak biru, apa
bertentangan dengan sifar apabila menggunakan hex?
Ia f.
Jadi yang boleh saya lakukan seterusnya, sifar sifar, sifar sifar, menyelamatkan ini, dan kini datang ke sini.
Dan saya tidak benar-benar melihat perubahan.
Jadi quote unquote "merah" adalah jelas sinonim untuk semua merah,
tidak hijau, tidak biru.
Sementara itu, mari kita sengaja mengubah yang satu ini menjadi sesuatu
rawak, seperti ABCDF.
>> Mari kita lihat apa yang.
Ia adalah benar-benar bagus biru, sebenarnya, biru bayi.
Baiklah, jadi ini adalah tadi kombinasi agak rawak
watak-watak.
Oleh itu, kita tidak akan menjadi buntu di sini.
Tetapi sekali lagi, ini bercakap dengan ketepatan yang bahawa anda boleh mula
terpakai - walaupun anda sangat terharu oleh estetika.
Malah, jika anda benar-benar mahu menjadi kagum, izinkan saya pergi ke hadapan dan mengubah
saiz fon, misalnya.
Dan notis koma bertitik, yang adalah perlu di sana.
>> Saiz fon, kita boleh hanya tidak masuk akal di sini, 96 mata.
Simpan itu.
Wow, itu saiz fon yang besar.
Baiklah, jadi ia sangat mudah.
Dan sebenarnya, anda dasarnya melihat laman web pertama saya yang dibuat
tahun lalu, apabila saya mula-mula belajar barangan ini.
Ia amat mudah untuk membuat sangat perkara-perkara yang mengerikan dengan cepat.
>> Dan jika anda sudah biasa dengan Wayback Mesin di archive.org, anda
boleh menemui semua mengerikan saya laman web undergrad.
Satu mempunyai Kermit Katak di hadapan.
Saya pergi melalui fasa di mana saya fikir ia adalah sejuk untuk mengambil latar belakang
tirai merah, apabila saya belajar bagaimana anda boleh imej jubin sekali lagi, dan sekali lagi, dan
sekali lagi, untuk mengisi halaman dengan tirai merah lekat besar.
Dan kemudian, di atas ini, adalah ikon yang anda terpaksa klik untuk memasuki rumah saya
Laman kerana itu adalah sangat banyak dalam tren.
>> Dan kemudian program pertama saya, saya pernah menulis tidak berada di dalam PHP, tetapi dalam bahasa yang
dipanggil Pearl, menulis sebuah buku tetamu, yang adalah satu perkara yang benar-benar sejuk bahawa
Ramai orang mengharapkan anda mempunyai di halaman rumah.
Apabila anda sampai ke halaman, mereka mahu anda untuk mendaftar masuk, dan berkata, siapa anda,
dan mengapa anda berada di sana.
Ini sangat tahun 1990-an gaya reka bentuk web.
>> Tetapi hari ini, sudah tentu, kita telah datang banyak lebih jauh.
Dan anda akan melihat, di bahagian, dan juga dalam masalah yang ditetapkan tujuh, dengan
memanfaatkan perpustakaan pada hari ini, ia adalah lebih mudah untuk membuat
perkara-perkara yang cantik dengan cepat.
Benar-benar di sini, kami hanya menggaru permukaan apa yang boleh anda lakukan
stylistically.
>> Dan sebenarnya, sudah, biarlah saya menekankan ini sudah mendapat hodoh, tidak
hanya indah, tetapi dari segi gaya kod saya, atau
reka bentuk kod saya.
Saya kini comingled HTML, yang adalah tag terbuka kehijauan di sana, dengan
Hartanah CSS, yang benar-benar legit.
Ini benar-benar di mana bahasa mempunyai asal-usulnya.
>> Tetapi demi kepentingan reka bentuk yang bersih, sama seperti kita mula barangan pemfaktoran
keluar dari C fail ke. h fail, apatah saya benar-benar mengamalkan bahawa jenis
prinsip dan mula melakukan ini sebaliknya.
Izinkan saya meletakkan tag gaya di sini, yang juga wujud dalam HTML, dan biarlah saya
nyatakan yang berikut.
Biar saya memadam ini.
Warna latar belakang akan menjadi merah.
Saya akan memadam ini sepenuhnya.
Saya akan menghilangkan gaya sifat, dan saya akan unik
mengenalpasti div ini dengan kata -
sewenang-wenangnya, tetapi munasabah, quote unquote "atas." Dan id adalah khas
sifat yang unik mentakrifkan elemen HTML tertentu
sebagai mempunyai id itu.
>> Jika saya kini mahu bergaya itu, di sini di ketua halaman saya, di dalam satu
tag gaya, melihat bahawa Boleh saya lakukan atas hash.
Dan kemudian saya boleh meletakkan beberapa kerinting pendakap, mengingatkan C, dan biarkan
saya paste dalam penyesuaian dgn mode itu.
Dan biarlah saya pergi ke hadapan di sini dan menjangka di mana saya akan dengan ini.
Biarlah saya juga mewujudkan satu untuk div bawah.
Biar saya merebut kod ini mengerikan dari bawah di sini, meletakkan ia di sini, dan saya akan
lebih sedikit dubur sekarang dan diolah ia dengan hanya meletakkan sesuatu pada mereka sendiri
line, berakhir dengan koma bertitik.
Biar saya menghilangkan tag gaya.
>> Tetapi saya tidak dilakukan lagi.
Saya perlu untuk melakukan satu perkara yang lain.
Ya, id sama quote unquote, "bawah," atau apa sahaja id saya ingin
memberikan elemen itu.
Sekarang, mari saya kembali di sini.
Dan ini adalah kejam.
Saya tidak boleh berurusan dengan 96 mata.
Mari kita buat 24 mata.
Atau anda boleh menjadi lebih tepat.
Anda sebenarnya boleh menggunakan piksel, px, jadi bahawa anda benar-benar mendapatkan bijirin halus
kawalan ke atas halaman anda.
>> Sebagai mengetepikan, yang tidak semestinya perkara yang terbaik jika pengguna, untuk
sebab-sebab kemudahan, mahu dapat meningkatkan saiz.
Jadi sedar bahawa terdapat cara untuk berbuat perkara-perkara yang tidak semestinya
kod semua keras.
>> Baiklah, jadi ia adalah lebih besar, 24 mata, daripada apa yang lalai itu.
Tetapi sekarang ia adalah bersih sedikit.
Dan izinkan saya mengambil ini satu langkah lagi.
Sama seperti idea fail header, notis kita satu langkah lebih dekat untuk itu.
Saya kira, tetapi masih kiri, dalam halaman saya, kaedah-kaedah CSS.
Kenapa saya mahu mengambil satu langkah lagi, keluarkan ini sama sekali, dan
memasukkannya ke dalam fail yang berasingan?
>> Jadi saya boleh menggunakan semula ia, kan?
Ini adalah hanya jenis gerak hati sekarang.
Sebelum ini, saya mendakwa bahawa ia hanya semakin hodoh mempunyai gaya
sifat-sifat di dalam satu divs sendiri.
Tetapi hanya jenis berfikir bahawa melalui.
Sebagai halaman anda mendapat lagi dan lagi, jika anda meletakkan di sini, dan di sini, dan
di sini, dan di sini, semua ini berbeza warna, dan saiz fon, dan lain-lain
sifat-sifat, halaman anda adalah sangat cepat akan menjadi tidak terurus untuk anda.
>> Jika seseorang datang kepada kamu dan berkata, oh, anda tahu apa?
Saya benar-benar ingin menukar saiz fon oleh dua titik tambahan, anda
mungkin perlu pergi dan mencari dan menggantikan sejumlah besar baris kod.
Ia lebih menarik untuk memusatkan semua estetika seperti di sini.
Tetapi jika anda ingin menggunakan semula mereka estetika dalam laman-laman web, semua
lebih menarik untuk, Contohnya, buat file
dipanggil dengan mereka kandungan.
>> Dan biarlah saya melakukan ini.
Simpan fail ini.
Saya katakan styles.css, sewenang-wenangnya, tetapi konvensional.
Saya akan meletakkan di rumah John Harvard direktori sekarang untuk kesederhanaan.
Dan apa yang boleh saya lakukan di laman web saya adalah mendapatkan menghilangkan tag gaya sama sekali,
dan agak unintuitively, gunakan pautan tag, yang tidak memberi anda pautan dalam
hyperlink, rasa diklik, tetapi di mana saya katakan link, href sama
styles.css.
Dan hubungan yang elemen ini telah dengan laman web ini adalah untuk berkhidmat sebagai
lembaran gaya.
>> Jadi bagaimana saya tahu ini?
Satu, anda hanya membaca panduan ini, atau anda Google di sekitar, dan anda
melihat pelbagai sumber.
Maksud saya, yang benar-benar adalah bagaimana anda mengambil teknik seperti ini, dan, selaras
dengan idea ini pengajaran diri baru bahasa, sekali lagi, anda akan mendapati bahawa
hanya ada beberapa terhingga perkara kepada mana-mana bahasa itu, sebaik sahaja anda mendapat
mereka, anda akan mendapati bahawa ia mendapat cepat dan lebih cepat untuk menulis.
Malah, pembelajaran pengaturcaraan baru bahasa adalah begitu banyak lebih cepat daripada yang baru
bahasa yang digunakan kerana perkara-perkara adalah lebih kecil dan banyak lagi
tepat ditakrifkan.
>> Tetapi saya telah menekankan sedikit anomali di sini.
Mengapa saya menekankan ini italik di sini?
Kerana saya perlu menutup tag.
Saya perlu menutup tag.
Dan anda akan mencari sumber-sumber yang begitu banyak online yang tidak
semestinya tag dekat.
Dan realistik, ia tidak betul-betul perlu untuk teknikal dan terdapat
sebab realiti, pelayar hanya agak toleran kesilapan dalam web
muka surat, untuk lebih baik atau lebih teruk lagi, tetapi kebanyakannya lebih teruk.
>> Jadi ini di sini adalah hanya cara yang lebih bersih berkata sesuatu yang bodoh seperti ini,
di mana jika anda mahu membuka tag link tetapi menutup, ada benar-benar ada tanggapan
kandungan untuk tag link.
Ia hanya bermakna beban ini fail dan letakkan di sini.
Ia seperti tajam termasuk di C. Anda boleh membuka dan menutup tag sekaligus
dalam tag yang sama.
Dan ada contoh-contoh lain ini.
Ini bukan cara untuk melakukan ini, tetapi yang br tag, untuk berehat line, jika saya
benar-benar mahu mencapai apa yang saya cuba sebelum ini dengan menekan Enter, jika
Saya tegas mengatakan hentian baris, satu baris, hentian baris, satu baris, dan
muat semula laman ini, kini anda akan notis yang bawah halaman ini,
sesungguhnya, lebih jauh ke dalam bahagian bawah halaman.
Tetapi yang boleh dilakukan lebih bersih dengan CSS, dan dengan margin,
dan dengan yang lain seperti estetik teknik.
>> Jadi untuk sekarang, takeaways adalah ini.
Dalam HTML, kita mempunyai ini perkara-perkara yang dipanggil tag.
Dalam CSS, kita mempunyai perkara-perkara dipanggil hartanah.
Kami boleh comingle kedua-dua bahasa, sama ada dengan menggunakan sifat gaya,
atau tag gaya, atau terbaik lagi, pemfaktoran ia keluar sama sekali, seperti yang kita lakukan
dalam masalah yang ditetapkan 7.
Soalan, kemudian, kira-kira asas-asas konsep di sini?
>> PENONTON: Saya mempunyai satu soalan.
>> SPEAKER 1: Oh, maaf.
>> PENONTON: Mengapa tidak ia berwarna -
>> SPEAKER 1: Oh, dalam tab yang lain?
Ini di sini?
>> PENONTON: Tidak, ia seperti -
>> SPEAKER 1: Oh, itu kerana Saya telah menjadi ceroboh.
Saya meletakkan fail di tempat yang salah.
Jadi jika saya benar-benar meletakkan ia di sini, dan saya chmod, semua r + untuk styles.css, dan
kini memuatkan semula halaman, kini kita mendapatkan penyesuaian dgn mode belakang.
Dan kerana saiz fon yang yang berbeza, kita tidak melihat cukup banyak
ruang putih.
Kami bukannya melihat apa yang yang lalai adalah sebaliknya.
Baik soalan.
Ya?
>> PENONTON: Mengapa adalah pautan tag dalam kepala?
>> SPEAKER 1: Mengapa pautan tag dalam kepala -
jawapan pendek, hanya kerana.
Itulah apa yang telah diputuskan.
Itulah di mana tag link pergi apabila anda mempunyai apa yang dipanggil
lembaran gaya luaran.
Soalan-soalan lain?
>> Baiklah, mari kita juga melakukan ini.
Kami mempunyai menyeronokkan begitu banyak di hadapan kita hari ini.
Yang hanya menggaru permukaan CSS.
Mari kita melakukan ini.
Mari kita rehat minit lima di sini kerana, setiap e-mel saya, mari kita gantung di
di sana sehingga 02:30-ish hari ini.
Tetapi jika anda perlu cuti, itulah denda.
Tetapi kita akan melangkah ke hadapan selepas rehat lima minit.
Dan kita akan belajar sesuatu yang sedikit kira-kira PHP, MySQL, dan banyak lagi.
>> Baiklah, jadi mari kita cuba, sekarang, untuk mengikat beberapa idea-idea ini bersama-sama dan membuat,
berkata, enjin carian kami sendiri.
Saya perhatikan, sebaliknya ingin tahu, berikut.
Apabila anda berada di Google.com, anda biasanya di URL seperti ini di sini
dengan apa-apa selepas dot com.
Tetapi jika saya mencari sesuatu yang bodoh seperti kucing, dan tekan Enter, kita akan mendapat - tidak
bodoh, tetapi anda tahu.
>> OK, jadi perasan, di bahagian atas halaman, sekarang, URL telah, sudah tentu, berubah.
Dan ini tidak apa-apa baru kepada mana-mana daripada kita.
Anda klik link dan barangan berlaku di web.
Tetapi apa yang menarik di sini adalah seperti berikut.
Terdapat banyak keseluruhan kekusutan, tetapi biarlah saya buang barangan yang saya tidak
begitu faham atau tidak benar-benar kelihatan relevan.
>> Biar saya menghilangkan ini.
Biar saya menghilangkan ini.
Dan biarlah saya menghilangkan semua ini.
Dan kini melihat bahawa kucing adalah dalam URL, diikuti dengan q, maka yang sama
menandatangani di hadapannya.
Jadi ternyata ini ialah bagaimana Cara ia berfungsi apabila ia datang
untuk input dan output.
>> Kami telah lama bercakap tentang kotak hitam, bukan?
Jadi, jika ini adalah satu fungsi dilaksanakan di sini sebagai kotak hitam, ia mengambil input
dan menghasilkan output, baik, bermakna di mana anda memberi input kepada
laman web adalah dengan cara, selalunya, URL itu.
Anda hanya perlu meletakkan tanda tanya dan kemudian kunci sama nilai.
Dan kemudian mungkin satu Ampersand, dan kemudian utama yang lain sama dengan nilai, maka mungkin
Ampersand lain, masukkan sama dengan nilai.
Itulah bagaimana anda lulus dalam kunci dan nilai, pasang input.
>> Jadi jika saya tekan Enter sekarang, apa yang menarik tentang Google adalah bahawa semua
kekusutan yang saya dipadam tidak muncul dengan tegas perlu.
Apa yang saya perlu hantar ke Google adalah soalan tanda q sama kucing untuk mendapatkan
menyokong beberapa kucing.
Nah, implikasi itu, maka, adalah jika saya tarik sehingga gedit, saya telah memulakan
membuat enjin carian saya sendiri di sini dalam fail yang dipanggil seach0.html.
>> Dan biarlah saya pergi ke hadapan dan memadam satu baris lagi yang anda
tidak sepatutnya untuk melihat.
Dan sekarang, saya pergi ke dalam pelayar saya sendiri, supaya tidak Google, dan pergi ke
http://localhost.
Dan itu akan mendapat di jalan.
Jadi, kita akan mempunyai untuk mengucapkan selamat tinggal kepada buat masa sekarang, bergerak ini di sini,
oh, sekarang kita akan perlu mengucapkan selamat tinggal kepada fail tersebut.
>> Apabila anda mempunyai fail yang dipanggil index.html atau index.php dalam
direktori, jika pelayan web adalah dikonfigurasikan dengan cara ini, apa yang anda akan
lihat, secara lalai, adalah kandungan yang file bukannya satu senarai
direktori, kerana saya mahu di sini.
Lanjut mengenai ini dalam spesifikasi.
Anda tidak melihat bahawa.
>> Jadi ini adalah apa yang saya benar-benar mahu.
Tetapi masa yang lalu, terdapat fail di dalam folder ini dipanggil
index.html dan index.php.
Dan sebagainya pelayan web adalah menunjukkan saya fail-fail.
Sebaliknya, saya ingin direktori ini penyenaraian di sini.
>> Jadi, saya akan pergi ke CSS dan pergi ke search0.
Dan saya mendakwa bahawa ini adalah ia akan menjadi permulaan yang kompetitif saya sendiri
mencari enjin.
Dan untuk melakukan ini, saya akan pergi di sini, ke dalam CSS, dan membuka dengan
gedit, carian 0.
Tetapi malangnya, ada tidak banyak yang berlaku di sini.
Apa yang saya lakukan ialah menggunakan tag tajuk, yang berlaku akan dipanggil h1, yang
asasnya bermakna besar dan berani, dan itu sahaja.
Tetapi cara-cara yang kita boleh memberikan input adalah melalui ini
perkara-perkara yang dipanggil bentuk.
>> Jadi biarlah saya pergi ke hadapan dan membuka dan menutup, preemptively, tag borang di sana.
Dan biarlah saya pergi ke hadapan dan melakukan sesuatu seperti ini.
Input, jenis sama teks.
Dan kemudian mari kita menutup tag dalam kurungan diri mereka sendiri.
Saya tidak perlu untuk memulakan medan teks dan berhenti medan teks.
Ia hanya akan berada di sana atau tidak.
>> Dan kemudian di bawah itu, mari kita buat Jenis input sama hantar.
Simpan ini.
Dan sekarang mari kita hanya melakukan kewarasan cepat menyemak.
Mari kita tambah nilai.
>> OK, jadi ia tidak buruk.
Ia bukan gaya Google, tetapi ia cukup dekat.
Ada medan teks.
Saya boleh menaip beberapa barangan di dalam, tekan Enter, tetapi tiada apa yang berlaku lagi.
Dan itu kerana saya telah tidak dinyatakan tindakan untuk borang ini, jadi untuk bercakap.
Jadi, jika saya kembali ke bentuk elemen, Ternyata, dan saya tahu ini hanya
daripada mempunyai membaca dokumentasi, yang tag bentuk mengambil sifat
dipanggil tindakan yang URL laman web yang anda
ingin menghantar borang.
>> Saya tidak fikir kita mempunyai masa untuk melaksanakan kembali akhir keseluruhan untuk
enjin carian hari ini.
Oleh itu, kita hanya akan berkata, eh, pergi ke google.com / search.
Dan sekarang mari saya menutup petikan saya.
Dan biarlah saya terus menyatakan bahawa kaedah untuk menggunakan akan
akan dipanggil mendapatkan.
>> Long cerpen, ada dua cara, di kurangnya, bahawa anda boleh mengemukakan maklumat
dari pelayar untuk pelayan.
Satu mendapatkan, dan, untuk tujuan hari ini, yang hanya bermakna dalam URL.
Anda lihat betul-betul tanda soalan, sama dengan tanda-tanda, dan ampersands bahawa
kita lihat sebelum ini.
Atau ada yang dipanggil post alternatif.
Buat masa ini, tahu bahawa post sering digunakan apabila anda mahu memuat naik fail, seperti
imej dan sebagainya, atau apabila anda mahu mengemukakan maklumat kad kredit, atau
kata laluan, apa-apa yang ia tidak benar-benar masuk akal, konsep, atau
keselamatan bijak, berakhir di URL pelayar anda, di mana pengintipan ibu bapa,
atau sebilik, atau sesiapa yang mempunyai akses ke komputer anda mungkin melihat.
>> Jadi mari kita menyelamatkan di sini.
Dan saya perlu untuk melakukan satu perkara yang lain.
Ia tidak mencukupi hanya untuk berkata memberi saya medan teks.
Saya telah memberikan bidang itulah menghargai nama.
Jadi biarlah saya meminjam pilihan Google nama, q, dan menentukan bahawa kedua
sifat saya tidak benar-benar mengambil berat tentang nama butang Submit itu.
Apa yang saya mengambil berat tentang adalah mengemukakan apa jenis pengguna masuk
>> Dan sekarang ini adalah jenis hodoh.
Ia hanya berkata hantar.
Ternyata, dan saya tahu ini dari dokumentasi, saya benar-benar boleh mengatakan
nilai sama quote unquote "cs50 SEACH, "quote dekat.
Kemudian mari kita tambah lagi.
Jadi saya terus memukul Perintah-R, atau Kawalan-R pada papan kekunci saya untuk menambah nilai.
>> Sekarang kita mempunyai lebih menarik mencari enjin.
Ia tidak cukup kelihatan seperti Google lagi, walaupun.
Jadi mari kita pergi ke hadapan di sini dan melakukan rehat garis sedikit.
>> OK, jadi sekarang kita mempunyai Google.
Kami benar-benar hampir tidak mempunyai Google.
Jadi sekarang apa yang akan berlaku?
Saya akan menaip sesuatu seperti Kucing.
Dan pelayar yang akan menghurai bentuk yang saya ditetapkan.
Dan ia akan menghantar pengguna untuk URL tersebut.
Jadi kali ini, atas sebab ingin tahu, Saya mendapat lebih banyak maklumat tentang saham
daripada kira-kira kucing sebenar.
Tetapi itulah denda kerana notis kita masih berakhir di sini, q sama kucing.
>> Jadi cerita panjang pendek, ia kelihatan agak remeh untuk mendapatkan input daripada pengguna.
Dan untuk menjadi adil, terdapat tandan lain-lain jenis medan borang.
Ada kotak semak, dan sedikit saling butang radio eksklusif, dan
drop down menu, dan banyak lagi.
Tetapi semua mereka adalah sebagai agak mudah dilaksanakan
medan teks ini adalah.
Dan akhirnya, kita hanya perlu untuk membuat seseorang pasti yang mendengar di pihak yang lain
akhir baris untuk mendapatkan maklumat yang diproses, entah bagaimana, dan
memberikan kita kembali kucing kami.
>> Mari kita lihat sedikit lebih terlibat sebagai contoh.
Biar saya pergi ke direktori Vhost saya, ke tuan rumah tempatan, orang awam, dan di mana saya
meletakkan kod sumber hari ini.
Semua ini akan diberikan kepada kursus ini laman web untuk anda untuk bermain-main dengan.
Dan jika saya pergi ke froshims, izinkan saya membuka up file ini sekarang, froshim0.php.
Yang ini adalah lantung lebih sedikit, jadi kita tidak akan menulis ini dari awal.
Tetapi notis kini beberapa agak ciri-ciri biasa.
>> Satu, tag bentuk, tindakan yang berbeza.
Ia bukan satu URL penuh.
Kini, ia nampaknya untuk memfailkan dipanggil register0.php kerana, dalam seketika,
Saya akan mengajar diri saya sedikit sesuatu tentang PHP, pengaturcaraan
bahasa, kerana PHP boleh digunakan untuk melaksanakan apa yang Google dilaksanakan sebagai
hujung belakang enjin carian mereka.
>> Google, dalam realiti, mungkin menggunakan beberapa Python, beberapa C + +, dan
tandan bahasa lain.
Tetapi kita boleh melaksanakan carian keputusan menggunakan PHP jika kita mahu.
Tetapi untuk sekarang, kita akan pastikan ia mudah.
Dan ini sebenarnya mengingatkan salah satu satu laman web yang pertama yang lain saya
dibuat tahun lalu.
>> Kembali pada hari saya, anda mendaftar untuk sukan antara dinding sebagai bayat oleh
mengisi sehelai kertas, berjalan di halaman, dan menjatuhkan dalam
peti mel daripada Proctor di Wigglesworth, dan itu adalah bagaimana anda
didaftarkan.
Dan supaya projek saya sejurus selepas CS50, adalah untuk meletakkan itu, yang membuat sempurna
rasa, ke laman web, yang tidak seperti dalam tren maka seperti sekarang.
Tetapi semua kita terpaksa lakukan ialah membuat, pada dasarnya, bentuk HTML.
>> Dan bentuk yang kelihatan kira-kira seperti ini.
Saya mempunyai input untuk nama bayat itu.
Saya mempunyai kotak yang lain untuk sama ada atau atau tidak mereka mahu menjadi kapten, apa
jantina mereka itu, dan apa asrama mereka itu.
Dan kemudian saya dikodkan dalam perkara-perkara seperti Apley Mahkamah, dan Canaday,
Grays, dan sebagainya.
>> Jadi sekali lagi, tag baru.
Tidak pernah melihat sebelum ini, baru sifat-sifat, tetapi agak mudah.
Sebaik sahaja anda lihat contoh, anda boleh jenis daripada meminjam idea itu dan membuat penurunan
menu untuk apa-apa yang paling bawah.
Tetapi apa yang penting adalah bahawa setiap perkara-perkara ini mempunyai nama.
Dan di bahagian bawah borang ini, terdapat butang submit yang label,
atau nilai, adalah daftar.
>> Jadi mari kita pergi ke halaman ini.
Biar saya pergi kembali ke penyenaraian direktori.
Biar saya pergi ke froshims, dan pergi ke froshim0.php.
Jadi ia adalah mengerikan, untuk berlaku adil.
Jadi saya pasti dapat menyesuaikan dgn mode ini dengan beberapa CSS, saya boleh membuat beberapa
grafik, mungkin menambah beberapa warna, dan menjadikannya lebih cantik.
Tetapi fungsi, saya berpendapat bahawa ini sebenarnya cukup lengkap.
>> Malangnya, apabila saya mengisi ini keluar, David, Kapten, Male, kami akan memilih,
katakan Matthews, Register, semua yang berlaku adalah ini.
Tetapi notis beberapa takeaways.
Satu, apa yang fail kembali mereka keputusan, nampaknya?
Jadi ia adalah, sememangnya, register0.php.
Jadi hakikat yang kita lihat tindakan yang nilai masa lalu untuk register0, ini
menguatkan bahawa kita memang berakhir sehingga pada fail yang tertentu.
>> Sekarang ini hanya teks hodoh.
Tetapi melihat bahawa teks ini adalah datang dari tuan rumah tempatan,
yang dari perkakas.
Fikirkan perkakas sekarang kerana hanya pelayan web yang boleh di
Science Center.
Ia boleh berada di web sebenar.
Jadi ia boleh diakses secara terbuka.
>> Jadi jelas, terdapat beberapa cara untuk lulus membentuk bidang input kepada pelayan
supaya ia boleh melakukan sesuatu dengan mereka.
Malangnya, register0 agak bodoh.
Semua ia adalah mencetak array yang kelihatan seperti ini.
Dan ia tidak pelbagai dalam rasa yang kita tahu.
Rupa-rupanya, PHP itu, dan banyak bahasa, bukan sahaja berangka
array diindeks yang indeks pertama adalah sifar, maka satu, maka dua, maka titik,
dot, dot, n tolak 1.
>> Ini adalah apa yang dipanggil array bersekutu.
Pelbagai bersekutu adalah salah satu di mana anda boleh menyimpan nilai pasangan utama di mana
kunci tidak semestinya nombor.
Ia sebenarnya boleh menjadi tali, perkataan.
Dan sebagainya ini boleh dilaksanakan, di bawah hood, ternyata,
menggunakan struktur data yang dikenali sebagai?
Pemikiran sesuatu yang dramatik adalah kira-kira untuk berlaku -
jadual hash.
>> Jadi jadual hash, ingat, orang-orang di antara kamu siapa yang melakukannya untuk P set 6, atau menarik balik
, sekurang-kurangnya walaupun anda tidak cuba, a jadual hash, dalam penggunaan kita, telah digunakan untuk
hanya menyimpan kata-kata.
Tetapi benar-benar, anda telah menyimpan kunci dan nilai-nilai.
Jika anda melaksanakan jadual hash untuk P menetapkan 6 kamus, kunci adalah
kata-kata sendiri, dan nilai-nilai berkesan adalah benar atau palsu.
Ya, di sini, atau tersirat, tidak, bukan di sini.
>> Nah, kita boleh umum idea itu.
Dan kita boleh menggunakan data yang sama struktur untuk menyimpan tidak rentetan
sendiri sahaja dalam jadual hash anda, tetapi menganggap bahawa dalam setiap satu daripada hash anda
nod meja itu.
Dan anda juga boleh melakukan ini dengan cuba bukan hanya mempunyai bool.
Anda boleh mempunyai sesuatu yang lain.
Bagaimana jika kunci tidak maxwell, untuk contoh, tetapi quote unquote "nama" atau
quote unquote "kapten." Dan dalam struktur data C anda, anda meletakkan
nilai, bukan hanya Boolean, tetapi nilai seperti quote unquote "David," atau
"M," atau "Matthews," dan sebagainya.
>> Jadi orang-orang struktur data yang sama kita digunakan nampaknya wujud dalam bahasa-bahasa lain.
Dan saya berpendapat mereka sebenarnya banyak, lebih mudah untuk mengakses di sini.
Mari kita sebenarnya kita lihat kini di beberapa sintaks tersebut.
>> Saya akan pergi ke dalam direktori PHP.
Dan saya akan membuka lebih baik versi hello-0 daripada sebelum ini.
Perhatikan bahawa semua yang saya lakukan ialah menambah beberapa komen.
Oleh itu, kita boleh menghilangkan gangguan itu.
>> Dan program ini tidak benar-benar mencetak hello kerana saya telah dinyatakan antara
tag yang saya mahu untuk melaksanakan kod itu.
Sekarang, kita akan melihat dalam seketika mengapa ini adalah berguna.
Tetapi mari membuka satu contoh lain di sini.
Biar saya pergi ke hadapan dan membuka berkata, gedit keadaan satu.
>> Ini adalah cara kembali ke masa sekarang.
Tetapi minggu lalu, saya fikir, pada minggu satu atau dua minggu, kami mempunyai contoh yang dipanggil
conditions1.c.
Dan saya memutuskan untuk reimplement dalam PHP, hanya untuk jenis menekankan bahawa
PHP, sintaksis, adalah hampir sama C. Ini bukan satu perubahan besar
dari minggu lepas ini.
>> Notis di bahagian atas program ini, yang bermula, seperti sebelum ini, dengan beberapa
komen, yang saya akan menghilangkan sebagai gangguan.
Perhatikan bahawa saya dalam PHP mod dalam fail ini.
Jadi kod ini, kita akan melihat, akan mendapat dilaksanakan.
Perhatikan bahawa terdapat readline, yang mungkin
analog dalam PHP daripada getstring.
Notis ia sedikit berbeza.
Anda sebenarnya menentukan segera kepada fungsi dipanggil garis membaca, dan itulah
apa yang pengguna melihat.
Jadi anda tidak perlu printf manual.
Tetapi itu bukan satu masalah besar.
Saya akan menyimpan, dalam $ n, kembali nilai ini, jadi apa sahaja yang
jenis pengguna dalam adalah int mereka.
Dan di sini adalah rasa ingin tahu yang lain.
Rupa-rupanya, dalam PHP, apa-apa ubah hanya perlu awalan
dengan tanda dolar.
Ia sedikit menjengkelkan.
Tetapi melihat apa yang saya telah tidak dilakukan dalam PHP.
Apa yang hilang dari tangan kiri sisi tanda sama?
>> Tidak menyebut jenis.
Jadi ini adalah berbeza daripada C. Untuk lebih baik atau untuk lebih teruk, PHP adalah longgar
bahasa ditaip.
Ia tidak mempunyai nombor.
Ia tidak mempunyai tali.
Ia tidak mempunyai Booleans.
Dan ia mempunyai beberapa jenis data yang lain.
Tetapi anda, programmer, biasanya tidak perlu mengambil berat tentang mereka.
Yang terbalik ini adalah bahawa ia membuat ia sedikit lebih mudah untuk program.
Anda boleh berfikir sedikit kurang.
Kekangan yang timbul ialah ia juga membuka anda sehingga bug yang berpotensi jika anda secara tidak sengaja
merawat beberapa sebagai tali, tali sebagai nombor, berpotensi, tetapi juga
maka, PHP, dan banyak bahasa, cukup toleran.
Mereka akan menggunakan apa yang dipanggil pemutus tersirat.
Dan jika anda cuba menggunakan n dalam konteks keadaan yang angka, ia akan
menukar apa di sini akan menjadi satu tali, kerana jika jenis pengguna
sesuatu, dan anda mendapat hasil, seperti readline, atau mendapatkan tali,
itu akan kembali rentetan.
>> Tetapi notis, beberapa baris kemudian, saya memeriksa jika n adalah lebih besar daripada sifar.
Jadi PHP akan tersirat membuang saya "Rentetan" 123, atau apa sahaja yang turun
jenis dalam, ke dalam int an.
Jadi dalam jangka pendek, barangan hanya kerja-kerja lebih banyak intuitif.
Jadi, sekarang kita mula untuk berehat beberapa perkara-perkara yang kita lakukan pada masa lalu.
>> Banyak barangan ini adalah yang sama, walaupun.
Masih sama sama.
Sebagai mengetepikan PHP juga telah sama sama sama, tetapi lebih kepada yang, mungkin, dalam
masa hadapan.
Itu adalah satu.
Typo tetapi dua tanda sama ertinya sama perkara seperti sebelum ini, untuk perbandingan.
printf bermakna perkara yang sama seperti sebelum ini.
Garis sendeng terbalik n bermakna yang sama perkara seperti sebelum ini.
>> Jadi bagaimana saya menjalankan program ini?
Well, seperti sebelum ini, jika saya lakukan PHP, conditions1.php, dan taip
beberapa seperti 123.
Itulah nombor positif.
Jika saya menaip 0, saya memilih 0.
Dan jika saya menaip 123 negatif, saya mendapat menyokong nombor negatif, yang hanya
berkata, sintaksis, PHP super, sama super.
>> Jadi mengapa ini sekarang berguna dalam konteks web?
Nah, mari kita kembali ke froshims ini Sebagai contoh, yang kelihatan,
sekali lagi, seperti ini di sini.
Dan mari kita sebenarnya tarik sehingga laman web lagi, yang kelihatan seperti ini.
Apa yang kita boleh lakukan dengan data yang diserahkan?
>> Baiklah, biar saya membuka lebih baru versi ini.
Dan anda akan melihat bahawa masalah spesifikasi set berjalan anda
melalui beberapa ini.
Daripada bermula dengan sifar, mari kita lihat froshims3,
yang tidak sedikit lebih.
>> Notis pertama, sebenarnya, mari kita membuka sehingga apa yang adalah 0, jadi anda lihat
apa daftar 0 adalah.
Perhatikan apa daftar 0 lakukan.
Satu, saya mempunyai komen di atas.
Padam mereka dan memberi tumpuan hanya pada ini.
Kebanyakan kandungan register0.php adalah, jelas, bahasa apa?
Hanya PHP mentah.
>> Jadi notis, fail ini tidak bermula dengan, pada masa, kurungan terbuka,
tanda tanya, PHP.
PHP tidak membolehkan anda untuk bergaul Kod PHP dengan tag HTML.
Tetapi saya telah dilakukan bahawa di sini di dalam halaman di sini.
>> Kini, sekali lagi, anda akan hanya tahu ini dari setelah melihat pengguna. print_r,
Ternyata, adalah print_recursive. _recursive Dan ini adalah hanya berguna
fungsi utiliti yang hanya mencetak keluar, Recursively, apa sahaja yang anda serahkan.
Jika anda bawanya array, ia akan mencetak array.
Jika anda serahkan nombor, ia akan mencetak nombor.
Bawanya tali, ia akan mencetak rentetan.
Jika anda bawanya jadual hash, ia akan mencetak jadual hash.
Anda tidak perlu untuk menulis semua kod yang diri sendiri.
>> Sekarang notis bahawa saya memasuki Mod PHP di sini.
Saya keluar mod PHP di sini.
Oleh itu, apabila pelayan web membaca fail ini atas ke bawah, kiri ke kanan, kerana
ia berakhir dalam nama fail yang dipanggil. php, apa sahaja yang bukan di dalam tag PHP
hanya akan menjadi meludah keluar, seperti HTML mentah.
Tiada masalah besar.
Tetapi sebaik sahaja notis pelayan web ini, ia akan berkata, saya tidak perlu
meludah keluar, secara literal, print_r pos.
Saya perlu melaksanakan berikut baris kod.
>> Jadi soalan yang terakhir, maka, fail ini adalah, baik, apa yang palang pintu itu ini?
Ambil tekaan.
Apakah $ _POST, mungkin?
>> PENONTON: [didengar]
>> SPEAKER 1: Ya, data yang dihantar.
Ingat, mari kita tinjau kembali masa untuk seketika.
froshim0, sekali lagi, kelihatan seperti ini.
Majoriti super ini hanya HTML.
Sekali lagi, beberapa tag anda tidak mempunyai melihat lagi, atau dengan yang
anda sudah biasa.
Tetapi perkara yang menarik ialah ini.
Ini satu baris adalah apa yang benar-benar menghubungkan ia ke fail register0.php kami.
Saya mengemukakan melalui kaedah pos.
Dan ini bermakna bahawa parameter jenis pengguna dalam tidak
akan berakhir di mana.
>> Mereka tidak akan muncul dalam URL.
Mereka masih akan dihantar dari pelanggan, dari pelayar, kepada
pelayan, tetapi hanya melalui beberapa yang lain mekanisme yang kita akan mengetepikan tangan kita
pada hari ini, tetapi ia bukan dalam URL.
Tetapi notis hubungan sekarang dengan pos, yang, mengikut konvensyen, adalah
huruf kecil di sini.
>> Tetapi jika saya membuka register0.php, Saya nampaknya percetakan ini.
Jadi ini adalah jenis yang pelik menamakan konvensyen.
Tetapi apa yang baik dalam PHP ialah apabila menggunakan PHP dalam konteks web, tidak pada
baris arahan seperti yang saya lakukan masa lalu, apabila anda sebenarnya menggunakan ia dalam web
halaman, dalam direktori Vhost seperti kita, PHP secara automatik akan mengisi ini
perkara, yang pelbagai bersekutu, jadi untuk bercakap, jadual hash, dengan
semua pengguna ditaip masuk
>> Pendek kata, $ _POST dalam semua topi adalah berubah-ubah global yang hanya PHP
ajaib mencipta untuk anda apabila menggunakan PHP dalam konteks web.
Dan ia meletakkan di dalamnya semua nama-nama parameter dalam bentuk yang
telah diserahkan kepada fail ini dan semua nilai-nilai yang pengguna ditaip masuk
Jadi tangan kepada anda apa yang pengguna ditaip ke dalam bentuk yang.
>> Jadi sebelum ini, kami mendapat output benar-benar bodoh hanya melihat ini kerana semua yang saya lakukan
telah Recursively mencetak pelbagai ini.
Yang penting ialah nama, nilai adalah Daud.
Yang penting ialah Kapten.
Nilai dihidupkan.
Dan anak panah dua dan sudut kurungan di sana, ini hanya sewenang-wenangnya.
Ini bukan kod.
Ini hanyalah cara PHP ini menunjukkan anda apa nilai beberapa utama adalah.
>> Tetapi sekarang biarlah saya mencadangkan bahawa dalam froshIMs3, ia adalah hampir sama
kecuali ia mengemukakan ke fail ini.
Dan sekali lagi, kita akan hanya jenis pandang pada ini, hanya untuk melihat beberapa
sintaksis, tetapi notis apa fail ini tidak.
Ambil guess hanya berdasarkan garis kod, yang mungkin tidak kelihatan seperti
Yunani, untuk tahap tertentu, nampaknya lakukan.
>> Fail ini entah bagaimana yang berkaitan untuk mel, e-mel.
Jadi apa yang program ini lakukan?
Dalam versi ini, jika saya benar-benar mengisi borang ini - dan biarlah saya pergi ke
froshIMs3, tidak froshIMs0 -
bentuk kelihatan sama.
David, kapten, lelaki, asrama, Matthews.
Tetapi jika saya menyerahkan ini, fail ini akan pergi ke register3.php.
>> Dan saya mendakwa, dengan melihat ia kod sumber, ia akan
entah bagaimana melibatkan e-mel.
Biar saya pergi ke hadapan dan membuka ini di tingkap yang lebih besar, jadi kita
dapat melihat ia lebih bersih.
Kami dalam Vhosts, tuan rumah tempatan, awam, froshims.
Saya akan membuka yang berbeza program, hanya supaya kita
boleh melihat lebih banyak sekali gus.
>> Jadi sekarang di sini, perhatikan beberapa perkara.
Di bahagian atas fail terbuka kurungan, tanda tanya, PHP.
Kemudian ada sekumpulan komen, mana kita boleh mengabaikan, adalah
tidak menarik buat masa sekarang.
>> Sekarang ada ini.
Ternyata PHP mempunyai banyak kod yang disebut memerlukan.
Ia adalah hampir sama dalam semangat untuk C termasuk, hash termasuk, yang
dasarnya dimenangi kandungan beberapa fail lain dan hanya plops mereka di sini,
jadi anda boleh menggunakannya.
Dalam kes ini, perkakas ini mempunyai, pra-pasang, perpustakaan, bebas dan
perpustakaan sumber terbuka yang dikenali sebagai PHP mailer bahawa sesiapa sahaja boleh
memuat turun dari internet.
Kami hanya melakukannya untuk anda.
Dan ini bermakna saya kini mempunyai e-mel fungsi yang ada pada saya.
>> Sekarang, perhatikan beberapa perkara.
Saya akan mengesahkan penyerahan borang itu.
Menghidupkan keluar PHP, satu, mempunyai seru mata untuk tidak operator, seperti
C. Tetapi PHP juga mempunyai fungsi yang dipanggil kosong.
>> Kosong hanya kembali benar jika nilai perkara yang anda bawanya
kurungan kosong, seperti pengguna tidak menaip apa-apa masuk
Jadi ini mengatakan, dan notis sintaksis, sangat mengingatkan C, jika
utama nama, jadi medan nama dalam bentuk, yang dikemukakan melalui pos,
pengguna, bukan untuk mengosongkan, dan mereka jantina tidak kosong dalam bentuk yang
baik, dan asrama mereka tidak kosong -
tetapi notis saya tidak mengambil berat tentang Kapten, maka apa yang kita akan lakukan?
>> Saya akan melaksanakan baris ini kod.
Dan anda boleh berfikir seperti ini seperti malloc, tetapi ia adalah sedikit
penjaga daripada itu.
Tetapi untuk sekarang ini memberikan saya khas struct jenis PHP mailer.
Tetapi mengabaikan kata kunci baru untuk hari ini.
>> Sekarang saya akan memanggil fungsi yang dipanggil IsSMTP, yang mengatakan, gunakan SMTP.
Ini adalah port 25, sama seperti video minggu lepas, apabila perkara yang telah membuang
e-mel ke dalam firewall.
Port 25 adalah SMTP.
SMTP bermakna menggunakan pelayan mel.
Yang mana satu, kita boleh menggunakan ini Harvard SMTP.fas.harvard.edu.
>> Kita boleh menetapkan alamat menjadi John Harvard.
Jika saya tatal ke bawah lagi, saya boleh menetapkan alamat penerima, hanya
sewenang-wenangnya, sebagai John Harvard itu juga.
Jadi dia akan menghantar e-mel sendiri.
>> Sekarang saya boleh menetapkan mata pelajaran untuk pendaftaran.
Dan saya boleh menetapkan badan e-mel seperti berikut.
Keturunan ini kelihatan sedikit lebih samar, tetapi hanya kerana ada banyak
maklumat di dalamnya.
Satu, ada pengendali titik.
Seseorang perlu tahu apa yang sudah operator dot tidak.
Ia dinamika.
Jadi, jika anda mahu mengambil satu rentetan dalam PHP, dan menambah, atau Prepend, untuk
satu lagi rentetan dalam PHP, terima kasih Tuhan anda tidak perlu menggunakan strcopy dan malloc,
dan semua itu lagi.
>> Jika anda ingin concatenate dua tali, yang mengambil berat tentang memori.
Mari angka PHP yang keluar untuk anda.
Apa PHP akan lakukan dengan operator titik di sini adalah hanya membuat hukuman yang besar di luar
garis ini, garis ini, baris ini, garis ini.
Dan kini notis, ia akan untuk memasang dalam nilai-nilai.
Jadi e-mel yang John Harvard akan untuk menerima yang benar-benar akan berkata
nama, kolon, sesuatu, sebaliknya, maka kita menutup tali dan concatenate pada
apa pengguna ditaip , kemudian barisan baru.
>> Kemudian, pada baris berikutnya John Harvard e-mel, ia akan berkata
Kapten, Pada atau Tiada apa-apa.
Ia akan mengatakan jantina, lelaki atau perempuan.
Asrama akan menjadi Matthews dalam kes saya.
Dan kemudian notis koma bertitik biasa pada akhir sangat.
Dan kemudian, ke sini, notis, agak masih samar, tetapi sekali lagi, berikutan
corak yang akan menjadi lebih biasa selepas P menetapkan 7, jika menghantar mel
pulangan palsu, kemudian pergi ke hadapan dan mati.
>> Jadi PHP mempunyai fungsi yang dipanggil mati, yang, secara literal, hanya membunuh
laman web dan hanya mencetak apa sahaja anda beritahu - yang mati
kata-kata, jadi untuk bercakap.
Dan bahawa, dalam kes itu, ia akan mencetak apa info kesilapan adalah untuk
apa yang berlaku kepada salah.
Jadi cerita panjang pendek di sini, apa yang kita ada adalah satu contoh di mana apabila pengguna
mengemukakan borang, froshim0, froshims3.php, ia pergi ke
register3.php.
Tetapi register3.php kemudiannya untuk melaksanakan semua ini baris.
>> Jadi ada aways mengambil beberapa di sini.
Satu, ia nampaknya agak mudah, programatik, untuk menghantar e-mel,
yang baik.
Apabila pengguna mendaftar untuk laman web anda, di kes ini, apabila mereka mendaftar untuk anda
sukan, anda boleh e-mel kepada mahasiswa yang Proctor, atau John
Harvard, dalam kes ini.
>> Tetapi ia juga bermakna anda boleh buat apa?
Hantar e-mel daripada sesiapa kepada sesiapa.
Dan ini adalah sangat benar.
Ini tidak mudah dilakukan jika anda digunakan untuk menggunakan Gmail.
Tetapi jika anda pernah menggunakan Eudora atau Outlook, anda cukup banyak boleh memberitahu
pelayan mel yang anda sesiapa sahaja yang anda mahu.
Dan ini adalah di mana saya perlu memakai bahawa topi dan berkata, tidak melakukan ini.
Tetapi ini adalah bukti betapa mudahnya ia adalah untuk melaksanakan serangan phishing, dan
menghantar e-mel tanpa nama, dan spam, amnya.
Dan ia benar-benar bisul ke hakikat bahawa semua yang anda perlukan adalah beberapa
Akses perancangan.
>> Sebagai mengetepikan, pertemuan terdekat saya dengan papan iklan, tahun bayat saya sendiri,
ialah apabila saya mendapati ini sejuk menipu itu, wow, anda boleh
menghantar e-mel dari sesiapa pun.
Dan jadi kami mempunyai beberapa bodoh hujah, secara literal, dalam Matthews,
di kalangan kumpulan Proctor saya.
Saya tidak ingat apa isu itu.
Tetapi saya mahu mencuba untuk meletakkan berakhir dengan debat ini bodoh.
>> Jadi saya memutuskan saya hanya akan menghantar e-mel kepada kumpulan Proctor saya, berpura-pura
lelaki yang lain, yang dengan pendapat saya tidak bersetuju, dan minta dia akur kepada
apa pendapat saya dalam perbahasan tertentu ini.
Oleh itu, saya palsu e-mel ini dengan menggunakan teknik yang sama dalam semangat ini.
Tetapi ia sebenarnya lebih mudah pada masa itu.
Hit menghantar.
Beliau tidak berpuas hati, dan tidak akan telah papan iklan.
>> Dan saya sangat cepat terperangkap dalam saat kerana, seperti yang anda tahu, saya mendaftar
e-mel saya dengan cara yang tertentu.
Dan walaupun saya lakukan secara manual, dalam besar bahagian, 15 tahun kemudian kerana saya
trauma itu.
Saya tidak mempunyai tandatangan pada e-mel saya sekarang.
Tetapi pada tahun 1995, saya hanya mempunyai sig, tandatangan dalam e-mel saya.
Jadi ada nota ini berkata, Dear Kumpulan Proctor, saya akur pendapat saya
dan bersetuju dengan David, ditandatangani dan demikian, barisan baru, barisan baru, DJM.
>> Jadi jangan lakukan itu atau, pada umumnya, mengambil Kelebihan teknik ini.
Tetapi apabila membuat laman web, seperti untuk projek akhir anda, apabila membuat
laman web untuk sesuatu keusahawanan, ini adalah bagaimana, pragmatik, anda boleh
perkhidmatan memanfaatkan lain di internet seperti mel dan kemudian benar-benar
menghantar barangan menggunakan kod.
>> Jadi bagaimana kita boleh memperbaiki ini?
Well, mula-mula mari kita lawatan cepat beberapa perkara yang anda akan melihat,
dan kemudian lihat beberapa contoh.
Jadi satu, untuk meyakinkan, kerana kita terbang melalui PHP.
Dan saya tahu, pada satu ketika, anda akan mempunyai untuk benar-benar mula menulis ini jika anda
tidak sudah.
Sedar bahawa, satu, utama adalah jenis daripada luar tingkap dengan PHP.
Jika anda mahu menulis kod yang mendapat dilaksanakan, anda hanya mula menulis dalam
fail yang dipanggil. php selagi anda mempunyai kurungan terbuka
tanda tanya PHP tag.
>> Tetapi notis ini adalah syarat dalam php.
Notis, ini adalah slaid yang sama kita telah di seminggu apabila kita mempunyai
keadaan di dalam Syarat C. PHP adalah struktur dan
sintaksis yang sama.
Satu-satunya perbezaan sebenar adalah jika anda mempunyai pembolehubah yang terlibat, anda mempunyai orang-orang
tanda-tanda dolar.
>> Sementara itu, ungkapan Boolean kelihatan seperti ini untuk
atau-ing atau dan-ing bersama-sama.
Beralih melihat sama.
Apa yang baik di PHP, manakala di C, suis perlu kes-kes
primitif seperti Ints atau aksara, dalam PHP penyata kes anda sebenarnya boleh
pada rentetan keseluruhan, yang merupakan sebenarnya jenis baik.
Menjimatkan masa.
Tidak boleh berbuat demikian di C.
>> Berikut adalah gelung dalam PHP.
Ia adalah sama.
Mungkin mempunyai beberapa tanda-tanda dolar bagi pembolehubah.
Anda tidak perlu untuk menyebut bahawa sesuatu yang int an.
Anda hanya mengisytiharkan dengan tanda dolar dan nama pembolehubah.
Tetapi bagi gelung adalah sama.
Satu gelung sementara adalah sama.
A lakukan semasa gelung adalah sama.
>> Ini adalah sedikit berbeza.
Jadi dengan PHP, dengan pelbagai, anda boleh statik mengisytiharkan array, seperti dalam C,
tetapi anda menggunakan kurungan persegi.
Dalam C, anda akan menggunakan pendakap kerinting, jika anda juga tahu bahawa.
Tetapi ini sebenarnya adalah perkara biasa dalam PHP mengisytiharkan array, dalam kes ini,
nombor, dan panggilan nombor berubah-ubah.
>> Pembolehubah diri mereka kelihatan seperti ini.
Berikut adalah rentetan, quote unquote "hello dunia. "Anda boleh mempunyai garis sendeng terbalik n.
Saya hanya tidak dalam kes ini.
>> Sekarang ini adalah satu binaan yang menarik.
C tidak mempunyai ini.
Tetapi ini adalah sangat membantu.
Dan anda akan melihat ini dalam set P 7 spec - untuk setiap membina.
Jika anda ingin mengulangi ke atas semua unsur-unsur yang pelbagai, anda tidak perlu
untuk berurusan dengan $ i dan $ n, dan + +, dan semua itu.
Anda benar-benar boleh berkata, dalam PHP, ini -
untuk setiap nombor nombor, jadi Saya menganggap bahawa $ nombor
adalah pelbagai nombor.
Dan apabila saya katakan untuk setiap nombor nombor, ini akan
secara automatik, seperti gelung saya melaksanakan, mengemas kini, pada setiap lelaran, nilai
dalam dolar beberapa tanda -
sekali lagi, dan sekali lagi, dan sekali lagi berjalan bagi saya lebih pelbagai itu.
Jadi ia hanya menyelamatkan kita kod.
Tiada koma bertitik, tiada + + 's, tiada i adalah, n tidak, ia hanya baik.
>> Tetapi PHP juga mempunyai ini.
Dan ini adalah sangat berkuasa.
Dan anda akan menggunakan ini, tangan pada, P yang ditetapkan 7.
Dan pelbagai bersekutu juga diisytiharkan dengan kurungan persegi.
Tetapi notis sintaks sekarang.
Ia mengingatkan apa yang kita lihat dengan print_r sebentar tadi.
Berapa banyak kunci, sebagai cek kewarasan sedikit, tidak array ini seolah-olah mempunyai.
>> Jadi ia mempunyai dua.
Dan saya menyeru ini array.
Tetapi jika ia membantu, anda boleh berfikir jadual ini sebagai hash, atau sebagai
pelbagai bersekutu.
Tetapi ia adalah hanya yang berbeza jenis array.
Dan sekali lagi, bahasa yang berbeza mempunyai ini.
Kita akan melihat sesuatu yang serupa dalam JavaScript juga.
Terdapat dua kunci.
Satu adalah unquote quote, "simbol", satu quote unquote "harga." Dan orang-orang kunci
masing-masing mempunyai nilai.
Dalam kes ini, nilai simbol adalah FB, untuk Nilai Facebook, dan harga adalah 49, 26,
yang saham Facebook harga pada pagi ini.
>> Jadi apa yang berguna tentang pelbagai bersekutu.
Saya boleh mempunyai berangka pelbagai diindeks dengan hanya
mudah kurungan persegi.
Dan saya boleh mempunyai tanda dolar quote sama hanya ini.
Biar saya benar-benar melakukannya.
Katakan saya bukan hanya diisytiharkan pelbagai ini seperti itu.
Itu adalah betul-betul sah, sintaksis.
Ia tidak kehilangan apa-apa maklumat, per se.
Saya masih melihat bahawa lambang ini adalah fb, dan bahawa harga yang 49, 26.
Jadi mengapa bersekutu array menarik?
>> PENONTON: Anda tidak perlu ingat di mana anda meletakkan barangan.
>> SPEAKER 1: Tepat sekali, anda tidak perlu ingat di mana anda meletakkan barangan.
Anda tidak perlu sewenang-wenangnya ingat bahawa simbol saham adalah dalam kurungan sifar,
dan harga saham adalah dalam kurungan satu, yang amat berbahaya jika anda
mengubah keadaan, akhirnya.
Ia lebih bagus untuk mengaitkan apa yang kita akan memanggil metadata
dengan data sebenar anda.
Saya berpendapat bahawa apa yang kita benar-benar menjaga tentang di sini adalah fb dan 49, 26.
Simbol dan harga yang metadata yang menggambarkan data yang kami
sebenarnya mengambil berat tentang.
Tetapi ini adalah begitu banyak hanya lebih mudah untuk mengakses.
>> Kini, sebagai mengetepikan apa harga yang kita bayar?
Kami telah melakukan ini dalam CS50 selama beberapa minggu.
Ciri ini mesti datang di beberapa kos.
Ingatan.
Jadi anda tidak hanya menyimpan 32-bit integer, misalnya.
Anda menyimpan simbol / 0, mungkin.
Jadi anda menggunakan memori yang lebih.
>> Dan apa yang prestasi mencari sesuatu sehingga di
array bersekutu, mungkin?
Ia mungkin lebih perlahan.
Akses rawak adalah bagus, terutamanya apabila anda boleh melakukan carian binari.
Tetapi jika anda benar-benar sekarang tidak melihat untuk nombor, tetapi untuk tali, ini
benar-benar dilaksanakan di bawah hud, mungkin jadual hash, di mana
anda menggunakan sama ada jadual hash dengan chaining berasingan.
Atau anda menggunakan cuba untuk benar-benar menyimpan nilai.
Jadi mungkin anda boleh melakukan masa yang berterusan, tetapi anda masih perlu melihat S-Y-M-B-O-L,
berpotensi, bukan hanya 32 bit untuk melihat sesuatu sehingga.
Jadi sekali lagi, idea-idea yang sama datang kembali berulang dalam konteks ini.
>> Tetapi sekali lagi, PHP kini mempunyai beberapa super globals itu, ia ternyata, adalah
array bersekutu.
Kita lihat satu masa yang lalu, $ _POST.
Dan yang super global mempunyai kunci dan nilai-nilai.
Khususnya, kekunci beratur dengan apa?
Di manakah kunci dalam $ _POST datang?
Untuk mengimbas kembali?
>> PENONTON: Nama.
>> SPEAKER 1: Nama, di mana?
>> PENONTON: [didengar]
>> SPEAKER 1: Nama adalah sifat.
Baik di mana, di mana yang mereka lakukan asalnya datang?
Borang.
Jadi, jika sebuah laman HTML mempunyai tag bentuk, dalam yang merupakan sebahagian input, seperti
memeriksa kotak, kotak teks, jatuh bawah menu, setiap yang mempunyai nama, mereka
nama-nama yang berakhir sebagai kunci dalam $ _POST, dan, terus-terang, dalam hal ini, $ _GET.
Jika kaedah adalah get, idea yang sama.
Ia hanya dalam berbeza super global.
Dan nilai-nilai, sudah tentu, datang dari apa pengguna ditaip pada atau
pelayar itu.
>> Tetapi ada beberapa yang lain.
Ada cookies, yang kita akan kembali ke akhirnya.
Tetapi mereka adalah perkara-perkara yang anda tahu web menggunakan beberapa yang baik atau jahat.
Tetapi kita akan kembali kepada itu.
Server dan sesi, dan kedua-dua mempunyai beberapa utiliti khas.
>> Tetapi mari kita lihat ini.
Biar saya pergi ke hadapan dan membuka contoh dipanggil mvc0.php Jadi MVC
bermaksud yang berikut.
Dan kita memperkenalkan ini lebih awal daripada yang biasa, benar-benar, untuk mendapatkan anda bentuk
Set Masalah 7, dan juga projek-projek akhir, dalam jenis industri
cara yang standard, dan cara bersih.
Ia adalah reka bentuk yang baik.
>> Jadi anda berada kira-kira untuk melihat, dan anda akan pengalaman, dalam set P 7, paradigma, jenis
daripada minda pengaturcaraan, yang kelihatan sesuatu yang kecil seperti ini.
M untuk Model, C bagi Pengawal, V untuk View.
Long cerpen, MVC hanya jenis metodologi, cara membuat
laman web, khususnya, di mana anda meletakkan semua frasa anda, bodoh -
logik perniagaan -
semua harta intelek anda apa yang dipanggil pengawal, fail
seperti index.php, atau kita akan melihat, quote.php, atau buy.php.
>> Dalam konteks set Masalah 7, anda model biasanya mengandungi data anda,
apa-apa jua yang berkaitan dengan pangkalan data, seperti yang kita akan akhirnya melihat, dan pandangan anda
mengandungi estetika anda tapak, HTML, CSS.
Jadi, kita sudah melihat ini dalam C sedikit sedikit dengan menggunakan. h fail.
Kami benar-benar melihat ia masa yang lalu dengan CSS, dengan mengambil kira penyesuaian dgn mode CSS
barangan daripada HTML kami.
>> Jadi MVC adalah benar-benar hanya kira-kira lukisan garis-garis di pasir dan berkata, itu
kod pengaturcaraan yang menarik untuk anda laman web tergolong dalam apa yang kita akan memanggil
pengawal.
Barangan yang berkaitan dengan pangkalan data biasanya berakhir dalam model.
Tetapi anda akan melihat, dalam set Masalah 7, kita bergabung C dan M untuk memastikan ia mudah.
Tetapi pandangan adalah di mana semua HTML anda dan estetika biasanya pergi.
>> Jadi apakah ini bermakna dari segi sebenar?
Baiklah, biar saya pergi ke MVC kami direktori seperti berikut.
Dan anda akan melihat lebih daripada melawat melalui dalam spesifikasi.
Jadi dalam mvc0, saya mendakwa bahawa ini adalah, seperti, versi 0 daripada laman web CS50 ini.
>> Semua kita mempunyai beberapa HTML, seperti tag h1 besar, nampaknya.
Dan kemudian satu senarai bullet.
Saya tidak pernah melihat senarai bullet sebelum ini, tetapi tidak ada masalah besar.
Mari cepat melihat kod sumber.
Rupa-rupanya, senarai tidak tertib dengan peluru adalah ul kurungan terbuka dengan satu atau
senarai barang-barang yang lebih, li.
Jadi notis di sini adalah tag anchor.
Kita melihat bahawa masa yang lalu.
>> Jadi ini adalah bagaimana saya telah melaksanakan halaman ini.
Saya telah mendapat dua link, dua item senarai, satu ul untuk senarai tidak tertib, dan akhir
Hasilnya, estetika, adalah ini sangat laman web yang cantik, versi 0 di sini.
Tetapi apa yang menarik sekarang ialah bagaimana ini dilaksanakan di bawah hood.
>> Biar saya pergi ke gedit dan membuka ini contoh pertama untuk melukis gambar.
Dan kita akan melihat apa yang cacat, berpotensi, di sini.
Sekarang, jika saya pergi ke localhost, awam, MVC, notis beberapa fail.
Saya akan memanggil ini, bagi masa, semua pengawal.
Tetapi itu sedikit penyalahgunaan kerana anda akan melihat segala-galanya yang berbaur
di dalam mereka.
>> Dan biarlah saya pergi dalam index.php.
Dan kita lihat, secara literal, HTML yang sama.
Jadi, walaupun fail ini berakhir pada . Php, Ia tidak bermakna ia
mempunyai apa-apa kod PHP.
Ia hanya boleh menjadi HTML mentah, walaupun itu jenis bodoh.
Tetapi notis tidak ada kurungan terbuka PHP tag, kecuali untuk ini, yang, terus terang,
hanya ada di sana untuk berkhidmat sebagai komen.
Tetapi itu tidak berfungsi walaupun yang menarik.
>> Tetapi notis ini.
Apa yang menarik sekarang ialah apa perubahan di halaman ini.
Biar saya klik Kuliah.
Dan notis URL akan berubah.
Sekarang saya di lectures.php.
Biar saya klik sifar.
Sekarang saya di week0.php Dan sekarang mari saya membuka fail-fail ini dalam gedit.
Bukan sahaja indeks, tetapi biarlah saya membuka kuliah.
Dan biarlah saya menghilangkan komen memberi tumpuan kepada bahagian ini sahaja.
>> Dan sekarang mari saya membuka hanya satu lagi, week0.php, buang komen,
hanya untuk membersihkan ini.
Dan kini notis berikut.
Berfikir benar-benar jenis teliti tentang reka bentuk, dan mari kita membuat ia selaras
up yang sama, apa yang boleh dilakukan lebih baik di sini, adakah anda fikir?
>> Bagaimana saya membuat satu minggu?
Bagaimana kira-kira ini.
Jadi ini adalah bagaimana saya dibuat seminggu.
Saya pergi ke Fail, New, Paste, Simpan, week1.php, dan kemudian saya pergi di sini.
Dan saya berubah satu -
apa yang ini, satu hingga Jumaat.
Saya berubah sifar kepada satu.
Saya berubah ini kepada satu.
>> OK, jadi sekarang melihat fail-fail saya.
Apa yang boleh dilakukan yang berbeza?
Di mana peluang, mungkin?
Jadi ada peluang untuk memulakan pemfaktoran barangan ini keluar.
Biar saya membuka, seperti spoiler, bagi apa yang anda akan lihat dalam set P 7.
Jika saya membuka, kini, dalam versi index.php lima daripada ini, ia kelihatan cara
lebih samar, diakui.
>> Tetapi ini, sekarang, adalah apa yang saya akan memanggil pengawal itu mengawal
logik halaman saya.
Dan anda boleh jenis semula, intuitif, mungkin, apa yang berlaku.
Pada baris pertama, ia sedikit samar.
Tetapi notis saya memerlukan, seperti dengan tajam termasuk, fail yang dipanggil
helpers.php.
Dan kemudian saya menyeru, nampaknya, satu fungsi, yang dipanggil render, lulus dalam
dua hujah.
>> Satu adalah quote unquote, tajuk.
Dan lain-lain, apa jenis jenis data ini, berasaskan
pada sintaks kami lebih awal?
Ia adalah pelbagai yang berkaitan.
Khususnya, ia lulus dalam tajuk dengan beberapa metadata yang mengingatkan
saya apa itu dan nilainya.
Kemudian saya melihat dikodkan ul, jadi sesetengah HTML mentah.
Tetapi kemudian saya kembali dalam mod PHP memanggil render berfungsi.
Jadi, walaupun anda tidak pernah menggunakan HTML atau PHP sebelum ini, dan walaupun ini kelihatan
menakutkan, mengapa ini mungkin reka bentuk yang lebih baik?
Apa yang lebih baik tentang hal itu, berdasarkan kesimpulan?
>> PENONTON: [didengar]
>> SPEAKER 1: Kurang berlebihan dalam yang tidak ada yang lebih tag HTML, tidak lebih
kepala tag, tag badan tidak lebih dalam setiap fail celaka.
Sebaliknya, saya telah difaktorkan keluar persamaan dan mungkin meletakkan mereka
ke dalam fail yang entah bagaimana yang berkaitan untuk tandukan.
Dan perkara yang sama untuk badan rapat tag, tag HTML dekat.
Itu mungkin turun di sini dalam daripada tempat nota kaki.
Dan anda akan lihat, set Masalah 7, lawatan sedikit melalui ini.
>> Jadi apa yang akan berlaku?
Satu perkara yang kita tidak mempunyai keupayaan lagi untuk sebenarnya adalah untuk menyimpan data.
Dan supaya apa yang kita akan mula melihat Wednesday, misalnya, adalah bahawa anda
Excel rakan lama, atau nombor, membolehkan anda menyimpan banyak
data dalam baris dan lajur.
Menghidupkan daripada anda boleh melakukannya dalam apa dikenali sebagai pangkalan data, programatik.
manik Dan ternyata, selepas itu, kita akan dapat untuk menyimpan perkara-perkara seperti
ini, yang anda akan melihat sekali lagi pada set P 7, sejumlah besar nama pengguna dan
kata laluan, yang kedua-duanya adalah sebenarnya disulitkan, sama seperti yang
berada dalam edisi penggodam P set 2 itu.
Dan akhirnya, anda akan melaksanakan ini, sendiri laman web seperti Etrade anda yang
melaksanakan kolektif CS50 kewangan.
>> Akhir sekali, kerana anda menginap di sini begitu lewat hari ini, jika anda kembali ke bahagian ini
kampus, pada 04:00 hari ini, kita akan memberikan anda bukan sahaja nasihat, di SCES
Menasihati Fair, pada 4:00 di Maxwell-Dworkin, kami akan memberikan anda beberapa
Dream Americone, Cherry Garcia, Chocolate fudge Pandu Puteri, Chocolate
Doh Cookie cip, dan apabila anda Google Monyet chunky, anda akan mendapat ini.
Jadi semua yang menanti pada 4:00 PM di Maxwell-Dworkin.
Jumpa anda pada Rabu juga.
>> SPEAKER 2: Pada seterusnya CS50, RJ tidur masuk
>> RJ: seksyen saya!
Ha!
Oh,