>> SPEAKER 1: Semua, kan selamat datang kembali.
Ini adalah CS50.
Dan ini adalah awal minggu sembilan.
Dan ini adalah awal dari sisa waktu Anda di CS50, di mana kita
transisi sekarang, akhirnya, ke web aspek saja, di mana Anda akan
menemukan bahwa banyak dari dasar-dasar yang kami telah mengekspor selama berminggu-minggu
masih datang kembali untuk mengunjungi, atau menghantui, kita.
Tapi sekarang, Anda akan menemukan bahwa itu adalah urutan besarnya lebih mudah untuk
menyelesaikan tugas-tugas tertentu dan memecahkan masalah tertentu -
begitu banyak sehingga bahkan jika Anda berpikir set masalah tertentu yang menyenangkan di mereka
caranya sendiri, saya berpikir bahwa Anda akan menemukan bahwa p set 7, p set 8, dan kemudian,
akhirnya, proyek akhir akan semua lebih memuaskan karena Anda akan
menemukan bahwa kita mulai mengambil untuk diberikan sekarang hal-hal seperti manajemen memori, dan
pointer, dan apa yang terjadi di bawah tenda.
Dan lagi, tematik, semua seluruh semester telah layering ini
dan layering.
Dan sekarang kita semacam up di sini, berdiri di
bahu minggu terakhir.
>> Sekarang, ingat dari terakhir kali kita berbicara tentang bagaimana internet bekerja.
Dan ini mungkin merupakan terlalu menyederhanakan, tapi ingat bahwa
setiap komputer di dunia memiliki IP alamat, walaupun itu sedikit
penyederhanaan masih.
Dan alamat tersebut digunakan untuk secara unik mengidentifikasi mesin sehingga
ketika Anda mengirim informasi, atau paket, sehingga untuk berbicara, mereka dapat memiliki asal
alamat dan alamat tujuan.
Dan alamat IP yang sama dapat digunakan baik untuk yang baik dan juga untuk kejahatan,
untuk melacak Anda, misalnya.
Bahkan, setiap salah satu dari Anda dengan laptop terbuka sekarang, atau telepon di Anda
saku, memiliki alamat IP pada jaringan Harvard.
Dan itu tidak semua yang sulit untuk berkorelasi bahwa siapa dan di mana Anda
adalah hari ini.
Tapi lebih pada bahwa mungkin di masa depan.
>> Sekarang saya pikir saya akan membawa kembali beberapa kenangan [? meningkatkan?] dan memberi Anda
klip lain dari acara Anda mungkin menemukan akrab.
Jika kita bisa meredupkan lampu hanya beberapa detik.
Acara Numb3rs.
>> SPEAKER 2: Ini alamat IPP4 32-bit.
>> SPEAKER 3: IPP, seperti di internet?
>> SPEAKER 2: jaringan pribadi.
Untuk jaringan pribadi Amita itu.
Dia begitu menakjubkan.
>> SPEAKER 3: Ayo, Charlie.
>> SPEAKER 2: Ini.
Sebuah alamat IP cermin.
Dia membiarkan kita menonton apa dia lakukan secara real time.
>> SPEAKER 1: OK, jadi beberapa hal salah dengan gambar ini.
Jadi satu, dan yang satu ini dapat diterima, ini sebenarnya
bukan alamat IP yang valid.
Sebuah alamat IP yang valid harus nomor dari bentuk w.x.y.z, di mana masing-masing
surat-surat adalah 0 sampai 255.
Tapi itu baik-baik saja karena seperti film di mana mereka nomor telepon palsu,
mereka memalsukan alamat IP.
Anda tidak benar-benar memukul server nyata.
>> Tapi pikiran Anda, ini adalah browser.
Dan browser tidak mulai keluaran kode komputer seperti ini.
Dan jika kita melihat sedikit lebih dalam, perhatikan bahwa bahasa yang mereka lihat
pada layar adalah bahasa yang disebut Objective C, yang merupakan bahasa di
yang aplikasi iPhone ditulis, terutama yang melibatkan
krayon, seperti yang Anda lihat dari kode sumber di sini.
>> OK, saya pikir ini lucu.
Jadi potongan kode sama sekali tidak ada hubungannya dengan apa pun ini
episode tertentu adalah tentang.
Jadi lelucon adalah semacam pada orang-orang mengambil untuk ini diberikan.
Tapi ini tidak terlalu sulit untuk mendapatkan ini rincian teknis benar.
Dan saya akan mendorong Anda.
Dan sebenarnya, 50 mungkin sangat baik merusak banyak acara TV dan film atau Anda
karena Anda akan menemukan bahwa itu hanya tidak mungkin apa yang mereka
lakukan pada layar.
Tapi memang, ini adalah kode yang Anda mungkin melihatnya dalam aplikasi iPhone
atau Mac OS aplikasi.
Ini tidak ada sama sekali hubungannya dengan keamanan.
Sehingga mengawasi keluar untuk lebih hal menyenangkan seperti seperti itu.
>> Tapi hari ini kita mulai menyelam benar-benar mendalam untuk berbagai macam bahasa.
Sebuah memang, salah satu menyeluruh takeaways dari ini bagian dari
Tentu saja bukan untuk mempelajari bagaimana program dalam PHP, bukan untuk belajar SQL per se, tidak
untuk belajar JavaScript per se, melainkan untuk mengajar diri sendiri bagaimana untuk mengajar
diri bahasa baru karena, memang, kita mulai untuk mengambil sekarang
pelatihan roda off sehingga setelah end saja, Anda tidak mengharapkan 20
Halaman spesifikasi untuk memberitahu Anda bagaimana untuk mengimplementasikan beberapa program yang.
Anda memiliki bahan-bahan yang cukup dalam Anda pikiran, dan alat-alat yang cukup dalam perangkat Anda
kit, yang dapat digunakan untuk mulai membangun solusi untuk masalah yang menarik bagi
Anda untuk beberapa kelompok siswa, untuk beberapa proyek penelitian, atau benar-benar sesuatu
menarik bagi Anda.
>> Jadi untuk mencapai tujuan itu, ingat bahwa ini adalah gambar kita menarik itu terakhir kali.
Dan ini adalah dua komputer, klien dan memutuskan, berbicara satu sama lain.
Dan protokol, bahasa, sehingga untuk berbicara, bahwa kedua komputer terjadi
untuk berbicara disebut HTTP.
Dan itu hanya protokol yang digunakan oleh komputer untuk mentransfer informasi melalui
world wide web.
Web, tentu saja, adalah salah satu layanan yang berjalan di atas
disebut internet.
Apa layanan lain yang tersedia di atas internet hari ini?
Beberapa protokol lain atau - apa itu?
>> AUDIENCE: FTP.
>> SPEAKER 1: FTP.
Jadi File Transfer Protocol adalah hal lain.
Sebagian besar dari Anda mungkin belum menggunakannya.
Tetapi sebagian besar dari Anda mungkin telah menggunakan hal-hal seperti Gchat, atau instant
pesan lebih umum, tentu email.
Dan orang-orang juga, adalah layanan yang berjalan pada atas internet karena, di
akhir hari, internet itu sendiri benar-benar hanya mendapatkan data dari titik A ke
titik B. Dan itu menggunakan sejumlah partikel itu sendiri, salah satunya atau dua
dari mereka yang paling umum disebut TCP / IP, yang mengatakan bahwa salah satu komputer di
internet benar-benar dapat melakukan hal yang berbeda, email,
dan web, dan sebagainya.
Google melakukan banyak ini.
Jadi bagaimana layanan tersebut unik diidentifikasi, yang kita katakan, pada komputer
yang mungkin benar-benar akan melakukan beberapa hal?
>> Nomor port.
Dan ini hanya sewenang-wenang manusia konvensi seperti 80 adalah web, 443 adalah
web dienkripsi, 25 adalah email.
Dan ada tandan lain.
Dan angka-angka hanya termasuk dalam paket-paket informasi, mereka
amplop virtual, yang benar-benar berisi permintaan atau tanggapan.
>> Jadi ketika Anda mendapatkan kembali respon dari web, biasanya, Anda tidak melihat
nomor apapun dalam hal kode status respon.
Anda tidak benar-benar melihat inner dari
paket yang datang kembali.
Tapi 200 memang berarti OK.
Dan itu berarti semua adalah baik.
Anda mungkin telah melihat banyak ini.
Yang mungkin yang paling umum Anda pernah melihat di web?
>> 404.
Ini hanya berarti file tidak ditemukan.
Ini berarti seseorang mengacaukan.
Anda lakukan dengan salah ketik URL, atau seseorang lain lakukan dengan memberi Anda sebuah
URL tidak valid, atau mereka dihapus File dan URL masih
yang digunakan oleh orang-orang.
Jadi sejumlah alasan yang dapat menjelaskan mengapa file tidak ditemukan.
Dan Anda akan melihat, dalam minggu-minggu yang akan datang, kode kesalahan lainnya, dan Anda akan
mengambil keuntungan dari beberapa dari mereka.
Yang terburuk adalah 500.
Jika Anda mendapatkan error 500 dalam kode Anda sudah tertulis, menganggap hal itu sebagai semacam dari
analog seg kesalahan dalam dunia pemrograman web.
Ini tidak cukup sama beratnya.
Tapi itu hanya berarti bahwa, di suatu tempat, Anda kacau.
Jadi berharap untuk mereka.
>> Tapi mari kita lihat apakah kita bisa melihat ini dalam konteks.
Biarkan aku pergi ke browser di sini dan lakukan langkah berikut.
Jadi ini adalah Chrome, yang kebetulan dipasang di alat.
Tapi kebanyakan setiap browser hari ini memiliki beberapa fungsi setara.
Aku akan naik menu Chrome, dan pergi ke Tools, dan aku akan pergi
untuk Developer Tools.
Dan Anda akan melihat bahwa panel ini sedikit terbuka di bawah jendela.
Shortcut lain, harus jujur, bahwa saya biasanya menggunakan sendiri adalah dengan mengklik kanan
atau Control klik di mana saja di web halaman dan hanya pergi ke Inspect Element.
Dan itu tidak hanya akan membuka ini bagi Anda.
Ini juga akan membuka, khususnya, bagian Elemen di
sisi kiri.
>> Jadi kita tentu melihat Google.
Mereka mengubah logo mereka hari ini.
Tapi jika saya gulir ke bawah di sini, perhatikan bahwa di bawah Elements, Anda lihat
apa yang disebut HTML, HyperText Markup Bahasa, dan ini adalah bahasa
bahwa ini dan semua halaman web, benar-benar, ditulis masuk
Tapi itu benar-benar diformat untuk kita jauh lebih readably
daripada biasanya.
Bahkan, jika saya zoom out, dan aku bukan klik atau Kontrol Klik Kanan
klik pada halaman, dan kemudian pergi ke Lihat Page Source, ini secara harfiah apa
Google mengirim ke browser saya.
>> Jadi seseorang atau beberapa orang menulis Google.com menggunakan kode sumber.
Sebagian besar hal ini tidak HTML.
Ini sebenarnya bahasa yang disebut JavaScript, yang
kami akan datang ke Rabu.
Tapi apa Chrome, dan apa setiap browser dapat lakukan untuk kita, adalah jenis melihat
melewati semua gangguan dari sintaks gila, dan pasang kembali ruang putih
bagi kita, dan bahkan sintaks sorot, atau mewarnai hal bagi kita.
Jadi, Anda akan menemukan bahwa apa yang disebut alat pengembang dibangun ke browser
akan membuat hidup Anda begitu, jadi lebih mudah karena Anda dapat menjelajahi, melalui menu ini
antarmuka, apa yang mendasari kode sumber untuk
halaman manapun di internet.
Dan memang, ini adalah salah satu yang paling cara yang efektif untuk belajar bagaimana melakukan
sesuatu yang baru, setidaknya jika halaman tidak begitu kompleks untuk membanjiri, adalah
mulai mengaduk-aduk itu HTML, lihat pada yang disebut CSS, yang kami akan datang
untuk sedikit juga, untuk mendapatkan pemahaman tentang bagaimana programmer yang
menerapkan beberapa tertentu fitur halaman.
>> Tapi yang lebih menarik secara teknis benar sekarang itu akan menjadi ini.
Jika saya pergi ke tab Network, mari kita membersihkan ini.
Aku akan mengklik sedikit menyeberangi simbol di sini, dan kemudian
pergi ke situs web lain.
Dan aku hanya akan mengetik di Facebook.com.
Tidak ada HTTP, HTTPS tidak ada, tidak ada WWW.
Mari kita benar-benar melihat apa yang terjadi di sini.
>> Enter.
Sekarang melihat sejumlah besar barang hanya muncul di bawah panel ini, di
Selain halaman web muncul di atas.
Aku akan gulir kembali ke Jaringan tab di sini, dan aku akan
klik pada baris pertama.
Apa alat ini akan mengungkapkan kepada kita adalah setiap salah satu permintaan HTTP
yang cepat hanya kembali dan balik antara browser saya
dan Server Facebook.
Dan setiap salah satu baris merupakan salah satu permintaan tersebut atau
respon, satu atau lebih dari orang maya amplop.
Atau lebih santai, itu seperti orang seperti orang, seorang pelanggan dalam
restoran, meminta sesuatu lagi, dan lagi, dan lagi.
Dan pelayan terus membawa kembali satu per satu.
>> Jadi sekarang, jika saya zoom in ini, perhatikan dan ini akan menjadi semacam hal
bahwa Anda dipersilakan untuk mendorong dan untuk bermain dengan Anda sendiri, karena kita
tidak akan pergi melalui segala sesuatu dengan sangat rinci.
Tapi perhatikan ada beberapa sub tab di sini -
Header, Preview, Respon, Cookies, dan waktu.
Aku hanya akan melihat header untuk saat ini karena ini adalah sedikit
bahan dalam amplop yang Data membantu mendapatkan ke dan dari tempat.
>> Jadi pertama, biarkan aku mengklik ini, Lihat Sumber sebelah Header Permintaan.
Ada permintaan bahwa browser saya, Chrome, dalam hal ini, dikirim dalam
bahwa amplop virtual.
Anda akan ingat minggu lalu saya diketik sementara manual
berpura-pura menjadi browser.
Kemudian mengingatkan server bahwa itu mencari host disebut
Facebook.com.
Dan kemudian ada sedikit lebih misterius informasi yang kita akan gelombang
tangan kami untuk saat ini.
>> Tapi kalau aku mulai gulir ke bawah sekarang jendela ini, biar sampai ke
header respon.
Ini adalah apa yang ada di virtual amplop yang kembali dari
Facebook.com.
Dan jika saya klik View Source hanya untuk melihat teks baku itu,
memperhatikan beberapa hal.
Satu, Facebook juga berbicara sama protokol, versi 1.1 tersebut.
Jadi itu bagus.
Tapi kode status 301, pindah secara permanen.
>> Nah, mana sih yang Facebook pergi?
Apa ini mencoba untuk menyampaikan kepada kami?
Nah, perhatikan di sini ada lagi header yang disebut Location.
Jadi mengapa Facebook mengatakan bahwa mereka pindah secara permanen ke URL yang
Lokasi samping?
Aku lupa www.
>> Jadi itu pilihan saya.
Bahkan, sebagian besar dari kita jarang, mungkin, ketik www.whatever.com hari ini.
Tapi ternyata seorang administrator sistem, seperti Facebook, bisa
mengkonfigurasi server mereka sedemikian rupa bahwa baik Facebook.com bekerja, atau
www.Facebook.com bekerja, atau, benar-benar, awalan seperti di depan mereka
nama domain.
Jadi mereka telah melakukan itu untuk kita.
Dan mereka mengarahkan kita, mungkin untuk beberapa teknis,
beberapa alasan pemasaran.
Mereka hanya ingin canonicalize pada www.Facebook.com.
>> Tapi itu tidak cukup itu.
Jika saya gulir ke bawah sini, mari kita melihat apa yang terjadi.
Hal ini bilang kita pindah secara permanen ke
http://www.Facebook.com.
Jadi mari kita lihat permintaan kedua bahwa browser saya mengirim.
Sayangnya, sepertinya Facebook telah bergerak lagi karena kedua
permintaan, dengan memilih URL yang sebaliknya, mengatakan bahwa, juga, pindah
permanen.
Dan biarkan aku gulir ke bawah sini dengan header respon.
Dimana Facebook pergi sekarang?
>> Jadi HTTPS.
Jadi sekarang Facebook telah dimulai, terutama mengingat saat ini
peristiwa dalam beberapa bulan terakhir, khususnya dan juga dalam beberapa tahun terakhir
untuk memaksa semua pengguna mereka, baik cara, menggunakan HTTPS, yang lebih
mengamankan, meskipun tidak sepenuhnya aman.
Dan jadi sekarang halaman saya, browser saya adalah akan meminta URL ini ketiga.
Dan sekarang, akhirnya, kita mendapatkan dinyatakan tak terlihat 200 OK.
>> Jadi apa yang di dunia atau semua ini baris lainnya di sini.
Aku benar-benar mengetik satu hal, dan saya Browser tampaknya telah diminta seperti
20 beberapa hal yang aneh.
Apa itu?
>> AUDIENCE: Script?
>> SPEAKER 1: Script, file sehingga lainnya ditulis dalam bahasa yang disebut
JavaScript, yang, sekali lagi, kita akan melihat sedikit pada hari Rabu.
Apa lagi?
Style sheet.
Jadi sesuatu dalam bahasa yang disebut CSS, yang akan kita lihat dalam sedikit.
Gifs, dan JPEG, dan pngs, dan gambar, dan file film - apa pun halaman web
telah kemungkinan besar di bentuk file.
Dan apa yang kita lihat di sebelah kiri sisi ada semua file
bahwa Chrome harus men-download, rekursif, jika Anda mau, untuk
menyusun keseluruhan halaman.
>> Jadi apa yang kita lihat sejenak lalu dengan Google, jika saya klik pada Elemen
tab, ini, tentu saja, adalah HTML, bahasa yang menyusun halaman ini.
Tapi ada hal lain tandan.
Ada logo.
Ada yang biru-ish ikon di sana.
Dan ada unsur-unsur lain masih halaman yang mereka mungkin
file terpisah.
>> Jadi apa yang bagus tentang browser adalah bahwa terlihat pada bahasa kita akan
untuk mulai menulis, atau Anda sudah sudah menulis dimulai di P set 7, angka
tahu di mana file-file hidup, dan pergi dan meraih mereka juga.
Dan aku tidak bisa cukup menekankan, bahkan meskipun beberapa ini mungkin terlihat sedikit
misterius atau luar biasa pada pandangan pertama, belajar bagaimana program
aplikasi untuk web, itu berharga untuk memahami bagaimana
alat kecil bekerja.
Ini adalah semacam seperti GDB seperti alat-alat, tapi jauh lebih sederhana, pada akhirnya, untuk menggunakan -
dan benar-benar memberi Anda mata ke dalam apa kita telah mengambil untuk diberikan untuk
beberapa waktu sekarang.
>> Jadi apa yang bisa kita lakukan sekarang dengan informasi ini?
Nah, mari kita benar-benar melihat pada konsep yang mendasari HTML.
Dan kami akan menunda, seperti yang sudah kita miliki, untuk bagian minggu ini, untuk masalah ini
set 7 spesifikasi, untuk beberapa yang lebih ihwal bahasa tersebut.
Tapi mari kita lihat apakah kita tidak bisa melukis gambaran apa yang harus Anda mengerti
keseluruhan di sini.
>> Jadi HTML, HyperText Markup Language, bukan bahasa pemrograman.
Apa yang benar-benar berarti?
Jadi HTML terlihat seperti ini.
Dan beberapa dari Anda sudah mengetahui hal ini.
Beberapa dari Anda telah melakukan ini untuk beberapa waktu.
Tapi mari kita lihat apakah kita tidak dapat mengisi beberapa kekosongan juga.
Jadi perhatikan beberapa hal di sini.
Satu, itu hanya teks.
Jadi itu hanya seperti kode sumber dalam C, atau bahasa lainnya.
>> Perhatikan bahwa tampaknya ada menjadi pola di sini.
Ada lekukan, namun secara teknis indentasi hanya manusia
konvensi.
Sebuah browser tidak peduli jika ada yang baru baris dan tab seperti yang kita lihat di sana.
Tapi perhatikan bahwa ada simetri sini.
Ada apa yang saya akan menelepon, di bagian atas file ini, tag terbuka, atau awal
tag, disebut HTML.
Dan kemudian, di bawah, sempurna berjajar up, seperti yang kita lakukan dengan kurung kurawal,
kita melihat braket terbuka, ke depan slash, HTML, braket dekat.
Jadi itulah penutupan yang sesuai tag, atau akhir tag, untuk hal itu.
>> Bersama-sama, segala sesuatu dalam dari disebut tag terbuka dan tag dekat
menulis apa yang akan kita sebut elemen.
Dan kita akan lihat, hanya dalam beberapa saat, itu benar-benar seperti sebuah node dalam pohon.
Karena jika Anda berpikir tentang sekarang lekukan yang tersirat di sini, Anda
jenis memiliki, seperti, kakek simpul disebut HTML.
Berapa banyak anak Anda mungkin mengatakan, berdasarkan pada gambar ini, elemen HTML memiliki?
>> Jadi mungkin dua.
Salah satunya adalah elemen head, rupanya.
Dan satu elemen body.
Dan mengapa dua anak?
Yah, aku hanya semacam menyimpulkan bahwa jika Saya memiliki tag kepala terbuka dan kemudian
tag kepala dekat, itu sebuah elemen.
Dan kemudian, jika ada tubuh lain yang terbuka tag dan tag tubuh dekat, itu seperti
unsur lain.
Jadi dalam arti bahwa jika aku agak memutar gambar pada sisinya, itu
seperti memiliki tag HTML, dan kemudian Kepala tag, dan kemudian tag tubuh, dan
maka beberapa teks, dunia halo, menggantung off dari tubuh tag itu sendiri.
>> Jadi kita bisa menggambar gambar yang mungkin terlihat seperti ini.
Bentuk yang sewenang-wenang.
Tapi perhatikan bahwa saya telah menggunakan semacam sebuah elips di bagian atas untuk mewakili
dokumen itu sendiri.
Ternyata bisa ada hal-hal lain dalam sebuah halaman web yang saya sudah tidak
ditarik di sini.
Jadi kita akan bahkan menggantung HTML simpul dari sebuah simpul dokumen yang disebut.
Dan kemudian kita memiliki kepala dan tubuh dan judul, pemberitahuan,
yang bersarang lanjut.
Aku tidak repot-repot menempatkan baris tambahan istirahat dalam tag judul.
Itu hanya merasa seperti itu semakin terlalu sedikit verbose.
Jadi aku meninggalkannya di satu baris di sana, dengan judul terbuka, hello world, judul dekat.
Dan kemudian kita memiliki beberapa teks menggantung off dari sini.
>> Jadi gambar ini akan kembali ke kita ketika kita menyelam ke dalam JavaScript.
Dan pemahaman bahwa ketika Anda menulis HTML seperti ini, apa
adalah browser lakukan?
Yah, kita tidak perlu khawatir tentang bagaimana melakukan ini, atau dengan apa yang
algoritma, tapi pada akhir hari, ketika browser menerima HTML seperti
itu, dari Facebook atau Google, mem-parsing itu, sehingga untuk berbicara, itu membacanya,
dengan sesuatu seperti fread, atas ke bawah, kiri ke kanan, dan karena
menyadari, oh, tag terbuka, kemudian tutup tag, itu mulai malloc, sehingga untuk berbicara,
simpul di pohon.
Dan ketika bertemu, seperti yang kita telah tersirat sini dengan lekukan, sebuah
node anak, itu mallocs node untuk itu dan melekat bahwa untuk pohon.
>> Jadi struktur pohon, pohon biner, pohon terner, dan pohon besar, yang
kami melirik satu atau dua minggu yang lalu, pemberitahuan bahwa prinsip yang sama
datang kembali kepada kami.
Dan siapapun yang dilaksanakan, Chrome apapun Tim melakukan itu, diduga memiliki
untuk menerapkan semacam struktur pohon bawah tenda.
Dan itu sendiri mungkin dalam bahasa seperti C, atau C + +, atau lebih rendah
bahasa tingkat yang kita akan sekarang menggunakan atas web.
>> Jadi sekarang, mungkin, hal ini akan lebih masuk akal.
Tato yang sebenarnya dari beberapa orang yang mungkin menyesal pada akhirnya, jenis.
OK, baiklah, sehingga banyak humor web.
Ini tidak benar-benar akan lebih begitu baik hari ini.
Jadi kita akan melanjutkan.
Baik.
>> Jadi mari kita lihat sekarang beberapa contoh.
Yang paling sederhana hal ini mungkin.
Aku akan pergi ke depan dan terbuka di Gedit file bernama hello.php.
Dan dalam sini, aku akan cepat hanya melakukan ini, printf, mengutip
tanda kutip, "hello world."
>> Jadi pemberitahuan, dan aku akan melakukan yang backslash n, Aku sudah tidak peduli untuk mendeklarasikan utama.
Ternyata, di php, dan banyak bahasa, Anda tidak perlu utama
fungsi per se.
Anda hanya dapat mulai menulis program anda.
Sekarang, ketika saya menyimpan file ini, perhatikan aku akan harus melakukan hal berikut.
Aku tidak akan menggunakan make, dan aku tidak akan menggunakan dentang karena PHP, seperti
C, bukan bahasa dikompilasi.
Ini apa yang disebut ditafsirkan bahasa, yang berarti bahwa Anda menjalankannya
sebagai masukan melalui program lain disebut seorang penerjemah.
Dan program yang membacanya, atas ke bawah, kiri ke kanan, dan melakukan
apa pun yang Anda kirim ke lakukan.
>> Jadi dalam hal ini di sini saya punya satu baris yang mengatakan printf.
Jadi ketika saya menjalankan kode sumber ini, hello.php, meskipun program yang
terjadi, mudah, untuk disebut PHP, bahwa PHP program akan membaca
file ini, atas ke bawah, kiri ke kanan, dan itu akan melakukan apa yang saya
kirim ke lakukan - mengeksekusi kode, dan jika tidak mengakui sesuatu, hanya
meludahkannya.
Jadi aku akan pergi ke depan dan menjalankan PHP hello.php.
Enter.
>> Dan itu tidak cukup apa yang saya inginkan.
Nah, kenapa begitu?
Nah, PHP adalah bahasa yang sebenarnya dirancang untuk menjadi cukup
terkait dengan web.
Ketika membuat halaman web dengan bahasa ini PHP, seperti yang kita akan segera melihat, kita akan
ingin melakukan sesuatu seperti cetak garis-garis seperti ini.
>> Jadi aku akan melakukan hal ini.
Buka braket, tanda tanya, PHP, dan sekarang aku hanya akan indent hanya untuk menjaga
hal-hal baik.
Dan sekarang aku akan melakukan pertanyaan menandai braket dekat.
Jadi ada sedikit asimetri sini.
Anda tidak melakukan hal ini.
Dan Anda tidak melakukan garis miring, sehingga PHP adalah sedikit berbeda.
>> Tapi sekarang, jika saya jalankan program ini, PHP hello.php, sekarang saya
benar-benar mendapatkan Hello World.
Dan kita akan melihat mengapa ini sangat berharga.
Satu, itu memungkinkan saya untuk menentukan, Super eksplisit, ini
kode, melaksanakan ini.
Dan itu memang apa ini tag khusus menyiratkan sini.
>> Tapi itu juga berarti bahwa jika saya hanya melakukan sesuatu seperti saya bertujuan di sini, bahwa
berarti, secara harfiah, itu hanya akan dicetak tanpa perlu
benar-benar memanggil printf, atau cetak, atau fungsi yang sama.
Jadi kami akan datang kembali ke hanya dalam beberapa saat.
>> Pertama, mari kita lakukan ini.
Dalam alat, kita memiliki direktori bernama vhosts, untuk virtual
host, slash host lokal, slash publik.
Jadi itu adalah verbose bit, tapi cerita panjang Singkatnya, alat ini dirancang untuk tidak
hanya untuk mendukung C. Ini juga dirancang untuk mendukung PHP.
Tapi itu juga dirancang untuk menjadi web Server, dan server database.
Dan itu dirancang, dan benar-benar dikonfigurasi, untuk mengingatkan setiap
web hosting komersial perusahaan yang Anda mungkin membayar $ 5 per bulan untuk,
$ 100 per bulan untuk.
Apapun layanan ini, itu dikonfigurasi menjadi sangat mirip dengan
nyata server produksi dunia.
>> Dan apa itu artinya bahwa berjalan pada alat adalah perangkat lunak server web.
Hal ini terjadi untuk disebut Apache.
Ini hanya gratis, dan open source, dan sangat populer.
Dan kita mengkonfigurasi Apache untuk mengetahui bahwa jika saya mengunjungi URL tertentu, dengan
Chrome atau browser dalam dari alat, untuk melihat ke dalam direktori ini
untuk file yang pengguna meminta.
>> Dengan kata lain, biarkan aku pergi ke depan dan melakukan hal ini.
Di dalam direktori publik saya, saya akan untuk terus maju dan membuat file
disebut index.html.
Itu memberi saya tab di sini.
Dan aku akan pergi sangat cepat dan pergi ke depan dan bang keluar
program ini di sini.
Doctype HTML, yang untuk saat ini, hanya asumsikan Anda harus mengetik.
Ini hanya sebuah tag misterius, itu tidak benar-benar sebuah tag HTML, yang menentukan bahwa
di sini datang beberapa HTML.
>> Aku akan pergi ke depan dan menciptakan apa yang kita lihat saat yang lalu.
Berikut kepala halaman.
Di dalam kepala adalah -
jadi judul.
Jadi kita akan menyapa, dunia.
Dan kemudian di sini adalah tag tubuh.
Biarkan aku menutup tag tubuh.
Dan kemudian di sini saya juga akan mengatakan, hanya untuk kejelasan, hello world.
>> Jadi ini adalah, bisa dibilang, yang paling sederhana halaman web yang mungkin Anda
dapat membuat itu berlaku.
Ini sintaksis valid.
Segala sesuatu yang dibuka ditutup.
Semuanya baik di gaya dan indentasi.
Jadi mari kita lihat sekarang bagaimana saya dapat mengakses file ini.
>> Nah, biarkan aku pergi ke Chrome di sini.
Dan biarkan aku pergi ke http://localhost/index.html.
Jadi apa host lokal?
Nah, kebanyakan komputer manapun di dunia, Linux, Mac OS, Windows, memiliki julukan
disebut host lokal.
Jadi jika Anda pernah ingin berbicara ke komputer Anda sendiri -
meskipun, anehnya refleks -
Anda menyebut diri host lokal.
Tidak peduli apa komputer Anda yang sebenarnya adalah disebut, apakah itu Daud MacBook
Air, atau sesuatu yang lebih verbose seperti itu.
>> Jadi URL ini tampaknya akan menggunakan HTTP untuk berbicara dengan host lokal,
komputer yang sama, alat, dan itu akan meminta, hanya mengambil
menebak, file apa?
Index.html.
Jadi alat telah dikonfigurasi dalam maju untuk mengetahui bahwa jika aku bertanya
untuk sesuatu seperti index.html, mencari dalam folder bernama vhosts, dalam
folder bernama localhost, dalam folder didalamnya disebut publik.
Di situlah semua publik saya file akan menjadi.
Jadi aku sekarang akan tekan Enter.
>> Dan sialan, ada yang terlarang pesan, atau dikenal sebagai 403, yang
kode angka untuk itu.
Jadi apa yang salah di sini?
Yah, itu tidak cukup untuk hanya menempatkan file dalam folder saya.
Saya harus benar-benar melakukan hal berikut.
>> Biarkan aku pergi ke direktori vhosts saya, menjadi localhost, ke publik, dan membiarkan
saya melakukan ls dasbor l.
Dan ada beberapa hal lainnya di sini untuk tujuan hari ini.
Tapi perhatikan di sisi kiri, selanjutnya ke index.html, kita hanya melihat satu RW.
Dan di masa lalu, apa yang telah RW berdiri?
>> Hanya membaca atau menulis.
Fakta bahwa ia mengatakan rw di sebelah kiri berarti saya, pemilik file ini, bisa
membaca atau menulis.
Tapi aku harus membiarkan semua orang di dunia membaca ini, meskipun tidak menulis itu.
Jadi aku akan mengubah modus dari berkas, chmod, semua plus r untuk memberikan
semua orang membaca izin pada file yang bernama index.html.
>> Dan jika sekarang saya ketik ulang ls dasbor l, pemberitahuan itu, di sini, lagi
R ini telah muncul.
Dan untuk saat ini, spec pergi ke lebih rinci.
Untuk P set 7, itu hanya berarti orang sekarang dapat membaca file ini.
Jika saya kembali ke browser saya sekarang dan kembali, voila.
Halo dunia.
>> Dan aku bahkan bisa membuka alat Chrome saya dan melihat, seperti dengan Google dan
Facebook bahwa ada HTML saya, diformat sedikit
berbeda dan berwarna.
Jika saya pergi ke tab jaringan dan kembali halaman, melihat bahwa ada mendapatkan
meminta agar Chrome mengirimkan pada alat.
Ada 200 untuk itu file tertentu.
Jadi singkatnya, ini adalah bagaimana semua ini berbagai potongan yang datang bersama-sama.
Kebetulan bahwa server web kita gunakan sekarang tidak jauh,
seperti Facebook.
Ini benar-benar di komputer yang sama, yang sangat OK.
>> Jadi apa lagi yang bisa kita lakukan dalam sebuah halaman web?
Yah, hanya, mari angin melalui beberapa hal-hal ini.
Tapi biarkan aku pergi ke depan dan membuka kembali Gedit dengan index.html.
Dan biarkan aku pergi ke depan dan menyapa CS50, menyimpan file ini, kembali ke
Browser, benar-benar underwhelming perubahan.
>> Tapi bagaimana kalau kita ingin benar-benar link ke sesuatu sekarang?
Jadi ternyata bahwa kita dapat memiliki Link dalam HTML yang hanya tag
sendiri.
Hal ini terjadi untuk disebut tag anchor. href sama
https://www.cs50.net, www.cs50.net kutipan dekat, braket dekat.
Dan sekarang mari kita lihat apa lain datang berikutnya.
>> Aku telah membuka tag.
Saya sekarang perlu untuk memberikan frase seperti CS50.
Biarkan aku menutup tag.
Dan perhatikan beberapa hal.
Meskipun ada hal ini samar di sini, saya tidak terulang ketika Anda
menutup tag.
Anda hanya menutup tag dengan namanya sendiri.
Dan ini adalah apa yang dikenal sebagai atribut dengan nilai.
Atribut hanya memodifikasi perilaku beberapa tag dalam halaman.
>> Jadi ini menetapkan bahwa hiper referensi, cara mewah untuk mengatakan
URL untuk jangkar ini, untuk ini link, harus CS50.net.
Dan teks yang kita ingin menunjukkan pengguna tidak bahwa URL mentah, melainkan
yang CS50 kata.
>> Jadi jika sekarang saya reload, biarkan aku zoom in untuk kejelasan, biarkan aku kembali halaman tersebut,
melihat bahwa kita memiliki sekolah tua ini biru digarisbawahi link.
Dan jika saya membawa lebih dari itu, dan itu akan menjadi sulit untuk melihat, di bagian bawah kiri
pojok layar, perhatikan bahwa ia mengatakan URL yang
Aku akan pergi.
Dan jika saya klik sana, voila, sekarang saya sedang membuat halaman web.
Dan kami telah dipimpin diri ke halaman rumah.
>> Tapi perhatikan apa potensi ini menawarkan kita.
Keamanan sangat banyak dalam mode ini.
Bagaimana jika saya malah mengatakan sesuatu seperti ini, dan saya malah pergi ke, katakanlah, mari kita
lihat, fakeCS50.net.
Reload halaman ini.
>> OK, jadi melihat itu masih terlihat seperti aku akan CS50, kecuali mata yang cerdik
akan melihat Aku akan CS50 palsu.
Saya menduga domain ini tidak diambil.
OK, jadi tidak tersedia.
Jadi itu bagus.
Tidak ada yang benar-benar memiliki domain tersebut.
>> Tapi mari kita menjadi sedikit lebih berbahaya karena itulah agak bodoh.
Bagaimana jika kita mengubahnya ke Paypal.
Dan bagaimana jika kita sebut ini, seperti, www.paypal.badguy.com,
apa domain adalah.
Yang mungkin ada.
Jadi sekarang biarkan aku kembali halaman tersebut.
Dan di sini kita memiliki semacam phishing serangan, P-H-I-S-H-I-N-G, yang merupakan
kata konyol diberikan untuk serangan yang mencoba untuk informasi ikan, atau, lebih baik
Namun, uang, dari orang-orang dengan menipu mereka dalam menyediakan informasi yang
mereka tidak mungkin sebaliknya dilakukan.
Hal ini terlihat benar-benar legit, kan?
Saya harus memiliki link di sini untuk Paypal.com.
Dalam keadilan, jika saya bergender itu dengan beberapa grafis, kita bisa membuatnya terlihat
lebih seperti PayPal.
Benar?
Karena aku bisa, sebagai samping, Aku bisa pergi ke Paypal.com.
Dan baru saja kita lihat bagaimana saya bisa melihat semua HTML mereka.
Aku hanya bisa menyalinnya dan menciptakan estetika Paypal daripada pergi
sekolah tua di sini.
Tapi perhatikan, tentu saja, dan itu sedikit kecil masih, hanya bagian bawah
pojok kiri, seperti di 10 titik font, apakah Anda melihat apa URL Anda
benar-benar akan menyebabkan.
>> Dan jadi jika Anda pernah mendapatkan spam yang mengatakan pergi ke depan, dan Anda akun
telah diganggu.
Silahkan klik link ini dan biarkan kami tahu sandi Anda sehingga kami dapat memastikan Anda
Anda, jangan pernah melakukan itu.
Hal-hal ini harus pergi tanpa berkata.
Tapi itu sangat lucu, dan tragis, bagaimana setiap tahun ini tampaknya
terjadi pada beberapa non-nol jumlah orang.
>> Dan itulah keindahan dari serangan phishing.
Anda dapat mengirimkan satu juta email.
Dan bahkan jika 0,01% dari orang benar-benar klik di Paypal dan memberikan Anda
password, itu masih nomor non-nol orang-orang yang baru saja memberikan
Anda uang mereka.
Dan mengirim email, tentu saja, cukup mudah dan, pada dasarnya, gratis
hari ini.
>> Jadi cerita panjang pendek, luar biasa ide yang indah, kan?
Tahun lalu, ini adalah awal web, memungkinkan web
hyperlink antara sumber daya.
Tapi begitu cepat bisa itu digunakan untuk tujuan sakit.
Dan email, cukup untuk mengatakan, ini hari, telah tertanam di dalam HTML.
>> Nah, biarkan aku hanya satu hal lain.
Dan kami akan menunda sebagian besar bagian dalam permasalahan yang tujuh untuk memungkinkan Anda untuk
menjelajahi khusus.
Tapi biarkan aku pergi ke depan dan melakukan beberapa hal di sini.
Aku akan pergi dan menyatakan apa yang disebut div, atau
divisi, halaman.
Biarkan aku dekat bahwa tag div.
>> Dan aku akan mengatakan sampai di sini atas halaman.
Dan kemudian di bawah ini, saya akan melakukan sesuatu seperti div lain, tutup ini
tag, dan melakukan bagian bawah halaman.
Dan mari kita simpan.
>> Jadi sekarang mari kita kembali ke file saya.
Sangat underwhelming.
Tapi apa divisi digunakan untuk, bawah tenda, itu sebenarnya
elemen struktur yang bagus.
Ia tidak memiliki estetika sejauh kita bisa melihat, selain, tampaknya,
meletakkan sesuatu pada baris baru.
>> Tapi perhatikan, sebagai samping, hanya memukul Masukkan tidak dipotong dalam HTML seperti itu
tidak di C. Anda mungkin berpikir bahwa itu akan menempatkan kesenjangan yang besar antara yang bagus
bagian atas dan bawah halaman.
Tapi itu diabaikan.
Ruang putih pada dasarnya diabaikan dalam halaman web selain pertama
spasi karakter, atau carriage return, bahwa Anda menekan pada keyboard.
Jika Anda ingin istirahat baris lebih, Anda harus menentukan sendiri.
>> Jadi aku akan melakukan beberapa hal di sini untuk menunjukkan apa yang terjadi.
Aku akan menambahkan sebuah atribut yang ada Dan lagi, cara Anda belajar
apa atribut yang ada, apa ada tag, benar-benar, adalah referensi online.
HTML adalah semacam bahasa - itu bukan bahasa pemrograman.
Ini adalah bahasa markup - bahwa setelah setengah jam, mungkin, satu jam dengan
, Anda akan pasti memahami, paling Kemungkinan besar, ide dasar.
Dan kemudian pencarian Google pergi adalah semua tag kemungkinan bahwa Anda mungkin
tertarik
Dan per spec, yang cukup menyambut dan didorong di sini.
>> Jadi sekarang biarkan aku pergi ke depan dan melakukan sesuatu seperti ini.
Background-color.
Dan sekarang, aku akan melakukan sesuatu seperti merah, titik koma.
Dan Anda dapat melakukan hal ini dalam beberapa cara yang berbeda.
Aku hanya jenis mengetik sebagai super eksplisit mungkin.
>> Tapi ternyata bahwa nilai ini di sini adalah apa yang disebut CSS, Cascading Style
Lembar, yang lain bahasa sama sekali.
CSS tidak ada hubungannya dengan membuka tag dan tag dekat.
Ini ada hubungannya dengan sifat.
>> Dan sifat yang nilai cukup kunci pasang, yang hanya berarti beberapa kata,
usus, dan kemudian beberapa kata lain.
Dan jika Anda memiliki beberapa orang, atau hanya satu di sini, Anda dapat mengakhirinya dengan
koma, hanya untuk kejelasan.
Tapi itu juga akan bekerja di sini.
>> Sekarang apa ini lakukan?
Anda mungkin bisa menebak.
Biarkan aku pergi ke depan dan muat ulang halaman ini.
Dan sekarang itu benar-benar datang bersama-sama.
Jadi atas halaman saya berwarna merah.
Tapi apa kunci di sini adalah bahwa, saya sebutkan sebelumnya, div yang memberikan
sebuah divisi dari halaman.
Dan itu memang apa yang dilakukannya.
Ini pada dasarnya membagi halaman ke dalam persegi panjang yang Anda kemudian dapat
memanipulasi.
>> Dan gagasan ini persegi panjang adalah jenis menarik dalam hal itu, jika Anda berpikir dari
kebanyakan situs web apapun, mungkin ada beberapa struktur untuk itu.
Sebagian besar dari Anda mungkin jarang terlihat Homepage Facebook jika Anda login
di sepanjang waktu.
>> Tapi di halaman rumah Facebook, ada semacam div di bagian atas.
Dan itu mungkin tidak sesederhana sebagai salah satu div, tapi ada
wilayah persegi panjang di sana.
Sisa halaman seperti div besar, seperti banyak
wilayah persegi panjang yang lebih besar.
Jadi cerita panjang pendek, hanya dengan memiliki blok-blok bangunan kecil, yang
kemampuan untuk model yang hal-hal seperti persegi panjang, apakah lebar atau sempit, Anda juga dapat
membuat kolom berpotensi, memungkinkan Anda untuk lay out halaman, benar-benar, namun Anda
mau.
Kami benar-benar hanya menggaruk permukaan di sini.
>> Memang, jika saya melakukan satu yang lain, biarkan aku pergi ke depan dan melakukan gaya,
background-color, kami akan melakukan sesuatu seperti biru, kutipan dekat.
Mari kita ulang ini.
Jadi sekarang itu semakin bahkan lebih buruk.
Tapi sekarang aku bisa jenis memamerkan P saya set lima keterampilan, kan?
Red.
Ini mengingatkan saya RGB, Red Green Blue tiga kali lipat.
Nah, ternyata dalam pemrograman web, atau desain web, yang ini, kita sudah
belum diprogram apa-apa per se, Anda dapat benar-benar
memiliki kode heksadesimal.
Jadi sesuatu sesuatu, sesuatu sesuatu, sesuatu sesuatu.
Sehingga Anda dapat memiliki enam heksadesimal karakter, atau tiga, dalam beberapa kasus,
dan masing-masing tanda tanya harus menjadi digit heksadesimal,
nol sampai f.
>> Jika saya ingin memiliki banyak merah, dan ada hijau, dan biru tidak ada, apa
kebalikan dari nol ketika menggunakan hex?
Ini f.
Jadi yang bisa saya lakukan ff, nol nol, nol nol, simpan ini, dan sekarang datang ke sini.
Dan aku tidak benar-benar melihat perubahan.
Jadi kutipan tanda kutip "merah" ini rupanya identik untuk semua merah,
ada hijau, ada biru.
Sementara itu, mari kita sengaja mengubah satu ini menjadi sesuatu
acak, seperti ABCDF.
>> Mari kita lihat apa itu.
Ini adalah biru benar-benar baik, sebenarnya, biru bayi.
Baiklah, jadi ini hanya sekarang kombinasi yang agak acak
karakter.
Jadi kita tidak akan terjebak disini.
Tapi sekali lagi, ini berbicara kepada presisi bahwa Anda dapat mulai
berlaku - bahkan jika Anda sangat kewalahan oleh estetika.
Bahkan, jika Anda benar-benar ingin menjadi terkesan, biarkan aku pergi ke depan dan mengubah
ukuran font, misalnya.
Dan perhatikan titik koma, yang perlu ada.
>> Ukuran font, kita bisa hanya konyol di sini, 96 poin.
Simpan itu.
Wow, itu adalah ukuran font besar.
Baiklah, jadi itu sangat mudah.
Dan sebenarnya, Anda pada dasarnya melihat halaman web pertama saya membuat
tahun yang lalu, ketika saya pertama kali belajar hal-hal ini.
Ini sangat mudah untuk membuat sangat hal mengerikan cepat.
>> Dan jika Anda terbiasa dengan Wayback Mesin di archive.org, Anda
dapat menemukan semua mengerikan saya halaman web undergrad.
Salah satu memiliki Kermit si Katak di bagian depan.
Aku melewati fase di mana saya pikir itu keren untuk mengambil latar belakang
tirai merah, ketika saya belajar bagaimana Anda bisa gambar genteng lagi, dan lagi, dan
lagi, untuk mengisi halaman dengan tirai merah norak besar.
Dan kemudian, di atas ini, adalah sebuah ikon bahwa Anda harus mengklik untuk masuk ke rumah saya
halaman karena itu sangat banyak dalam mode.
>> Dan maka program pertama saya, saya pernah menulis tidak di PHP, tetapi dalam bahasa
disebut Pearl, menulis sebuah buku tamu, yang adalah hal yang benar-benar keren bahwa
Banyak orang mengharapkan Anda untuk ada di halaman rumah.
Ketika Anda sampai ke halaman, mereka ingin Anda masuk, dan mengatakan siapa Anda,
dan mengapa Anda berada di sana.
Hal ini sangat 1990 gaya desain web.
>> Tapi hari ini, pasti, kita sudah datang jauh jauh.
Dan Anda akan melihat, dalam bagian, dan bahkan dalam masalah menetapkan tujuh, dengan
memanfaatkan perpustakaan hari ini, itu jauh lebih mudah untuk membuat
hal cantik cepat.
Benar-benar di sini, kita hanya menggaruk permukaan apa yang dapat Anda lakukan
Gaya.
>> Dan pada kenyataannya, sudah, saya tekankan bahwa ini sudah semakin jelek, tidak
hanya estetis, tetapi dalam hal gaya kode saya, atau
desain kode saya.
Saya saat ini comingled HTML, yang adalah tag terbuka kehijauan di sana, dengan
Properti CSS, yang benar-benar legit.
Ini benar-benar di mana bahasa memiliki asal-usulnya.
>> Tapi dalam kepentingan desain yang bersih, seperti kita mulai hal anjak
keluar dari file ke file C h., biarkan saya benar-benar mempraktekkan semacam itu
Prinsip dan mulai melakukan ini sebagai gantinya.
Biar tag gaya di sini, yang juga ada di HTML, dan biarkan aku
tentukan berikut.
Biarkan aku menghapus ini.
Warna latar belakang akan menjadi merah.
Aku akan menghapus ini sepenuhnya.
Aku akan menyingkirkan gaya atribut, dan aku akan unik
mengidentifikasi div ini dengan kata -
sewenang-wenang, tetapi cukup, kutipan tanda kutip "atas." Dan id adalah khusus
atribut yang unik mendefinisikan elemen HTML tertentu
sebagai memiliki id itu.
>> Jika saya sekarang ingin bergaya itu, di sini di kepala halaman saya, bagian dalam
tag gaya, perhatikan bahwa Aku bisa melakukan hash atas.
Dan kemudian saya dapat menempatkan beberapa keriting kawat gigi, mengingatkan C, dan kemudian membiarkan
saya paste di stilisasi itu.
Dan biarkan aku pergi ke depan di sini dan mengantisipasi mana aku pergi dengan ini.
Biarkan saya juga membuat satu untuk div bawah.
Mari saya ambil kode ini mengerikan dari bawah sini, menyimpannya di sini, dan saya akan
sedikit lebih anal sekarang dan bergaya itu dengan hanya menempatkan hal-hal pada mereka sendiri
garis, diakhiri dengan titik koma.
Mari saya menyingkirkan tag gaya.
>> Tapi aku belum dilakukan.
Aku perlu melakukan satu hal lain.
Ya, id sama dengan tanda kutip kutipan, "bawah," atau id apapun yang saya ingin
memberikan elemen tersebut.
Sekarang, biarkan aku kembali ke sini.
Dan ini adalah mengerikan.
Aku tidak bisa berurusan dengan 96 poin.
Mari kita lakukan 24 poin.
Atau Anda bisa lebih tepat.
Anda benar-benar dapat menggunakan piksel, px, sehingga bahwa Anda benar-benar mendapatkan lebih halus gandum
kontrol atas halaman Anda.
>> Sebagai samping, itu belum tentu hal terbaik jika pengguna, untuk
alasan aksesibilitas, ingin dapat meningkatkan ukuran.
Jadi menyadari bahwa ada cara untuk melakukannya hal-hal yang tidak selalu
kode keras semuanya.
>> Baiklah, jadi lebih besar, 24 poin, daripada apa pun standarnya.
Tapi sekarang sedikit lebih bersih.
Dan biarkan aku mengambil satu langkah lebih jauh.
Sama seperti gagasan file header, perhatikan kita satu langkah lebih dekat untuk itu.
Saya memiliki faktor, tapi masih tersisa, dalam halaman saya, aturan-aturan CSS.
Mengapa saya ingin mengambil satu langkah lanjut, menghapus sama sekali, dan
memasukkannya ke dalam file terpisah?
>> Jadi saya bisa menggunakannya kembali, kan?
Ini hanya semacam intuisi sekarang.
Sebelumnya, saya menyatakan bahwa itu hanya mendapatkan jelek memiliki gaya
atribut dalam dari divs sendiri.
Tapi hanya jenis berpikir bahwa melalui.
Sebagai halaman Anda mendapatkan lebih lama dan lebih lama, jika Anda meletakkan di sini, dan di sini, dan
di sini, dan di sini, semua ini berbeda warna, dan ukuran font, dan lainnya seperti
atribut, halaman Anda sangat cepat akan menjadi tidak terkendali untuk Anda.
>> Jika seseorang mendatangi Anda dan mengatakan, oh, kau tahu apa?
Aku benar-benar ingin mengubah ukuran font oleh dua poin tambahan, Anda
mungkin harus pergi dan mencari dan mengganti sejumlah besar baris kode.
Ini jauh lebih menarik untuk memusatkan semua estetika seperti di sini.
Tetapi jika Anda ingin menggunakan kembali mereka estetika dalam beberapa halaman web, semua
yang lebih menarik untuk, Misalnya, membuat file
disebut dengan mereka isi.
>> Dan biarkan aku melakukan ini.
Simpan file ini.
Saya katakan styles.css, sewenang-wenang, tapi konvensional.
Aku akan memasukkannya ke dalam rumah John Harvard direktori dari sekarang untuk kesederhanaan.
Dan apa yang dapat saya lakukan di halaman web saya adalah mendapatkan menyingkirkan dari tag gaya sama sekali,
dan agak unintuitively, gunakan link tag, yang tidak memberikan Anda sebuah link di
hyperlink, pengertian diklik, tapi di mana saya mengatakan link, href sama
styles.css.
Dan hubungan unsur ini telah dengan halaman web adalah untuk melayani sebagai
style sheet nya.
>> Jadi bagaimana saya tahu ini?
Satu, Anda hanya membaca manual, atau Anda Google sekitar, dan Anda
melihat berbagai sumber daya.
Maksudku, yang benar-benar adalah bagaimana Anda mengambil teknik seperti ini, dan, konsisten
dengan ide ini mengajarkan seseorang baru bahasa, sekali lagi, Anda akan menemukan bahwa
hanya ada sejumlah terbatas hal untuk bahasa apapun itu, setelah Anda mendapatkan
mereka, Anda akan menemukan bahwa hal itu akan lebih cepat dan lebih cepat untuk menulis.
Memang, belajar pemrograman baru bahasa jauh lebih cepat daripada yang baru
bahasa lisan karena hal-hal jauh lebih kecil dan banyak lagi
tepat didefinisikan.
>> Tapi aku sudah disorot sedikit dari anomali sini.
Mengapa saya telah menyoroti ini garis miring di sini?
Karena aku harus menutup tag.
Saya harus menutup tag.
Dan Anda akan menemukan sumber daya yang tak terhitung banyaknya online yang tidak
tentu tag dekat.
Dan realistis, itu tidak benar-benar diperlukan untuk teknis dan ada
alasan realitas, browser hanya cukup toleran terhadap kesalahan dalam web
halaman, untuk lebih baik atau lebih buruk, tapi kebanyakan buruk.
>> Jadi ini di sini adalah cara lebih bersih mengatakan sesuatu yang bodoh seperti ini,
di mana jika Anda ingin membuka link tag tapi dekat itu, benar-benar ada gagasan
konten untuk tag link.
Ini hanya berarti memuat ini file dan taruh di sini.
Ini seperti termasuk tajam C. Anda dapat membuka dan menutup tag sekaligus
dalam tag yang sama.
Dan ada contoh lain dari ini.
Ini bukan cara untuk melakukan ini, tapi tag br, untuk jeda baris, jika saya
benar-benar ingin untuk mencapai apa yang saya mencoba sebelumnya dengan menekan Enter, jika
Saya secara eksplisit mengatakan garis istirahat, garis istirahat, garis istirahat, garis istirahat, dan
kemudian reload halaman ini, sekarang Anda akan melihat yang bawah halaman ini,
memang, lebih jauh turun bagian bawah halaman.
Tetapi bahkan yang bisa dilakukan jauh lebih bersih dengan CSS, dan dengan margin,
dan dengan estetika seperti lainnya teknik.
>> Jadi untuk saat ini, adalah takeaways ini.
Dalam HTML, kita memiliki hal yang disebut tag.
Dalam CSS, kita memiliki hal-hal disebut properti.
Kita bisa comingle kedua bahasa, baik dengan menggunakan atribut style,
atau tag gaya, atau terbaik namun, anjak itu sama sekali, seperti yang kita lakukan
dalam masalah set 7.
Pertanyaan, kemudian, tentang dasar-dasar konseptual di sini?
>> AUDIENCE: Saya punya pertanyaan.
>> SPEAKER 1: Oh, maaf.
>> AUDIENCE: Mengapa bukan berwarna -
>> SPEAKER 1: Oh, di tab lain?
Ini di sini?
>> AUDIENCE: Tidak, itu seperti -
>> SPEAKER 1: Oh, itu karena Aku sedang ceroboh.
Aku meletakkan file di tempat yang salah.
Jadi jika saya benar-benar taruh di sini, dan saya chmod itu, semua + r untuk styles.css, dan
sekarang kembali halaman tersebut, sekarang kita mendapatkan stilisasi kembali.
Dan karena ukuran font yang berbeda, kita tidak melihat cukup banyak
spasi.
Kami bukan melihat apa default sebagai gantinya.
Pertanyaan yang bagus.
Ya?
>> AUDIENCE: Mengapa link tag dalam header?
>> SPEAKER 1: Mengapa link tag dalam header -
jawaban singkat, hanya karena.
Itulah yang diputuskan.
Di situlah tag link pergi ketika Anda memiliki apa yang disebut
style sheet eksternal.
Pertanyaan lain?
>> Baiklah mari kita lakukan ini.
Kami memiliki begitu menyenangkan di depan kita hari ini.
Itu hanya menggaruk permukaan CSS.
Mari kita melakukan ini.
Mari kita istirahat lima menit di sini karena, per email saya, mari kita menggantung di
ada sampai 2:30-ish hari ini.
Tapi jika Anda harus pergi, itu bagus.
Tapi kita akan terus maju setelah lima menit istirahat.
Dan kita akan belajar sedikit sesuatu tentang PHP, MySQL, dan banyak lagi.
>> Baiklah, jadi mari kita coba, sekarang, untuk mengikat beberapa ide-ide ini bersama-sama dan membuat,
mengatakan, mesin pencari kami sendiri.
Aku melihat, agak aneh, berikut.
Ketika Anda berada di Google.com, Anda biasanya pada URL seperti ini di sini
dengan apa-apa setelah dot com.
Tapi kalau aku mencari sesuatu yang bodoh seperti kucing, dan tekan Enter, kita akan mendapatkan - tidak
bodoh, tapi kau tahu.
>> OK, jadi perhatikan, di bagian atas halaman, sekarang, URL telah, tentu saja, berubah.
Dan ini bukan apa-apa baru untuk salah satu dari kami.
Anda klik link dan hal-hal terjadi di web.
Tapi apa yang menarik di sini adalah sebagai berikut.
Ada banyak seluruh kekacauan, tapi biarkan saya membuang hal-hal yang saya tidak
cukup mengerti atau tidak benar-benar terlihat relevan.
>> Biarkan aku menyingkirkan ini.
Biarkan aku menyingkirkan ini.
Dan biarkan aku hanya menyingkirkan dari semua ini.
Dan sekarang melihat bahwa kucing dalam URL, diikuti dengan q, maka sama
masuk depannya.
Jadi ternyata ini adalah bagaimana cara kerjanya ketika datang
untuk input dan output.
>> Kami sudah lama membicarakan kotak hitam, kan?
Jadi jika ini adalah fungsi diimplementasikan sini sebagai kotak hitam, dibutuhkan masukan
dan menghasilkan output, baik, berarti dengan mana Anda memberikan masukan untuk
website dengan cara, sering, URL-nya.
Anda hanya menempatkan tanda tanya dan kemudian kunci sama nilai.
Dan kemudian mungkin ampersand, dan kemudian kunci lain sama nilai, maka mungkin
ampersand lain, kunci sama dengan nilai.
Itulah cara Anda lulus dalam kunci dan nilai-nilai, pasang input.
>> Jadi jika saya tekan Enter sekarang, apa menarik tentang Google adalah bahwa semua
bahwa kekacauan saya dihapus tidak muncul untuk menjadi benar-benar diperlukan.
Semua yang harus saya kirim ke Google adalah pertanyaan mark q sama dengan kucing untuk mendapatkan
kembali beberapa kucing.
Nah, implikasi dari itu, maka, adalah jika saya menarik gedit, saya sudah mulai
membuat mesin pencari saya sendiri di sini dalam file yang disebut seach0.html.
>> Dan biarkan aku pergi ke depan dan menghapus satu baris lagi yang Anda
tidak seharusnya melihat.
Dan sekarang, biarkan aku pergi ke browser saya sendiri, jadi tidak ke Google, dan pergi ke
http://localhost.
Dan itu akan mendapatkan di jalan.
Jadi kita akan harus mengucapkan selamat tinggal bahwa untuk saat ini, bergerak ini di sini,
oh, sekarang kita akan harus mengucapkan selamat tinggal pada file tersebut.
>> Kapanpun Anda memiliki sebuah file yang bernama index.html atau index.php dalam
direktori, jika server web dikonfigurasi dengan cara ini, apa yang Anda akan
lihat, secara default, adalah isi dari File bukan daftar dari
direktori, seperti yang saya inginkan di sini.
Lebih lanjut tentang ini di spec.
Kau tidak melihat itu.
>> Jadi ini adalah apa yang sebenarnya saya inginkan.
Tapi beberapa saat yang lalu, ada seorang file dalam folder ini disebut
index.html dan index.php.
Dan sehingga server web adalah menampilkan file-file saya.
Sebaliknya, saya ingin direktori ini daftar di sini.
>> Jadi aku akan pergi ke CSS dan pergi ke search0.
Dan saya menyatakan bahwa ini adalah itu akan menjadi awal kompetitif saya sendiri
mesin pencari.
Dan untuk melakukan hal ini, aku akan pergi sini, ke CSS, dan membuka dengan
gedit, cari 0.
Tapi sayangnya, ada tidak banyak terjadi di sini.
Yang saya lakukan adalah menggunakan tag heading, yang terjadi untuk disebut h1, yang
dasarnya berarti besar dan berani, dan hanya itu.
Tapi cara-cara yang kita bisa memberikan input melalui ini
hal yang disebut bentuk.
>> Jadi biarkan aku pergi ke depan dan membuka dan menutup, Terlebih Dahulu, bentuk tag sana.
Dan biarkan aku pergi ke depan dan melakukan sesuatu seperti ini.
Input, jenis sama dengan teks.
Dan kemudian mari kita menutup tag dalam kurung sendiri.
Saya tidak perlu untuk memulai kolom teks dan menghentikan kolom teks.
Itu hanya akan berada di sana atau tidak.
>> Dan kemudian di bawah itu, mari kita lakukan jenis input sama kirimkan.
Simpan ini.
Dan sekarang mari kita hanya melakukan kewarasan cepat memeriksa.
Mari kita reload.
>> OK, jadi itu tidak buruk.
Ini bukan gaya Google, tapi itu cukup dekat.
Ada kolom teks.
Saya dapat mengetikkan beberapa hal di, tekan Enter, tapi tidak ada yang belum terjadi.
Dan itu karena aku belum ditentukan tindakan untuk formulir ini, sehingga untuk berbicara.
Jadi jika saya kembali ke bentuk elemen, ternyata, dan saya tahu ini hanya
dari karena tidak membaca dokumentasi, yang tag form mengambil atribut
disebut tindakan yang URL dari situs web yang Anda
ingin mengirim formulir.
>> Saya tidak benar-benar berpikir kita punya waktu untuk melaksanakan back end keseluruhan untuk
mesin pencari hari ini.
Jadi kita hanya akan mengatakan, eh, pergi ke google.com / search.
Dan sekarang biarkan saya menutup kutipan saya.
Dan biarkan aku lebih menentukan bahwa metode untuk menggunakan akan
untuk dipanggil dapatkan.
>> Singkat cerita, ada dua cara, di Setidaknya, bahwa Anda dapat mengirimkan informasi
dari browser ke server.
Salah satunya adalah mendapatkan, dan, untuk tujuan hari ini, itu hanya berarti dalam URL.
Anda lihat persis tanda tanya, yang tanda sama dengan, dan ampersands yang
kita lihat sebelumnya.
Atau ada sebuah alternatif yang disebut pos.
Untuk saat ini, tahu bahwa pos sering digunakan ketika Anda ingin meng-upload file, seperti
gambar dan sebagainya, atau ketika Anda ingin mengirimkan informasi kartu kredit, atau
password, apa yang tidak benar-benar masuk akal, konseptual, atau
keamanan bijaksana, berakhir di URL browser Anda, di mana mengintip orang tua,
atau teman sekamar, atau siapa pun dengan akses ke komputer Anda mungkin akan melihat.
>> Jadi mari kita simpan itu di sini.
Dan aku harus melakukan satu hal lainnya.
Ini tidak cukup hanya untuk mengatakan memberi saya kolom teks.
Saya harus memberikan lapangan itulah menghargai nama.
Jadi biarkan aku meminjam pilihan Google nama, q, dan menentukan bahwa kedua
atribut Aku tidak benar-benar peduli nama tombol Submit.
Yang saya pedulikan adalah mengirimkan jenis pengguna masuk
>> Dan sekarang ini adalah jenis jelek.
Itu hanya mengatakan kirimkan.
Ternyata, dan aku tahu ini dari dokumentasi, saya benar-benar bisa mengatakan
nilai sama dengan kutipan tanda kutip "CS50 seach, "kutipan dekat.
Kemudian mari kita ulang lagi.
Jadi saya terus menekan Command-R, atau Control-R pada keyboard saya untuk reload.
>> Sekarang kita memiliki lebih menarik mesin pencari.
Itu tidak cukup terlihat seperti Google belum, meskipun.
Jadi mari kita lanjutkan di sini dan melakukan istirahat garis kecil.
>> OK, jadi sekarang kita memiliki Google.
Kami benar-benar hampir punya Google.
Jadi sekarang apa yang akan terjadi?
Aku akan mengetikkan sesuatu seperti Kucing.
Dan browser akan mengurai bahwa bentuk yang saya didefinisikan.
Dan itu akan mengirim pengguna ke URL tersebut.
Jadi saat ini, untuk beberapa alasan penasaran, Saya mendapat informasi lebih lanjut tentang saham
dari sekitar kucing yang sebenarnya.
Tapi itu baik-baik saja karena kami masih melihat berakhir di sini, q sama dengan kucing.
>> Jadi cerita panjang pendek, tampaknya cukup sepele untuk mendapatkan input dari user.
Dan untuk menjadi adil, ada tandan jenis lain dari kolom formulir.
Ada kotak centang, dan sedikit saling tombol radio eksklusif, dan
drop down menu, dan banyak lagi.
Tapi semua dari mereka adalah sebagai relatif mudah diimplementasikan sebagai
bidang ini adalah teks.
Dan pada akhirnya, kita hanya perlu membuat yakin seseorang yang mendengarkan di sisi lain
akhir baris dalam rangka untuk mendapatkan Informasi diproses, entah bagaimana, dan
memberi kita kembali kucing kami.
>> Mari kita lihat sedikit lebih terlibat misalnya.
Biarkan aku pergi ke direktori vhost saya, ke host lokal, masyarakat, dan di mana saya
menempatkan kode sumber saat ini.
Semua ini akan berada di jalur yang ini situs web untuk Anda untuk bermain-main dengan.
Dan jika aku pergi ke froshims, biarkan aku membuka up file ini sekarang, froshim0.php.
Yang ini sedikit lebih verbose, sehingga kita tidak akan menulis ini dari awal.
Tapi perhatikan sekarang beberapa agak karakteristik akrab.
>> Satu, tag form, tindakan yang berbeda.
Ini bukan URL lengkap.
Sekarang, itu tampaknya untuk mengajukan disebut register0.php karena, dalam sekejap,
Aku akan mengajar diri sendiri sedikit sesuatu tentang PHP, pemrograman
bahasa, karena PHP dapat digunakan untuk menerapkan apa yang Google diimplementasikan sebagai
bagian belakang mesin pencari mereka.
>> Google, pada kenyataannya, mungkin menggunakan beberapa Python, beberapa C + +, dan
tandan bahasa lain.
Tetapi, kita pasti bisa menerapkan pencarian Hasil menggunakan PHP jika kita ingin.
Tetapi untuk sekarang, kita akan tetap sederhana.
Dan ini sebenarnya mengingatkan satu dari situs pertama yang saya
dibuat tahun yang lalu.
>> Kembali pada hari saya, Anda terdaftar untuk olahraga intramural sebagai mahasiswa dengan
mengisi selembar kertas, berjalan melintasi halaman, dan menjatuhkannya di
kotak surat dari Proctor di Wigglesworth, dan itu bagaimana Anda
terdaftar.
Dan proyek saya tak lama setelah CS50, adalah untuk menempatkan itu, yang membuat sempurna
akal, ke web, yang tidak sebagai bagian dari mode maka seperti sekarang.
Tapi semua kita harus lakukan adalah membuat, dasarnya, bentuk HTML.
>> Dan bentuk yang tampak kira-kira seperti ini.
Aku punya masukan untuk Nama mahasiswa itu.
Aku punya kotak centang lain untuk apakah atau tidak mereka ingin menjadi kapten, apa
jender mereka, dan apa asrama mereka.
Dan kemudian saya sulit dikodekan dalam hal seperti Apley Court, dan Canaday,
Abu-abu, dan sebagainya.
>> Jadi sekali lagi, tag baru.
Belum melihat ini sebelumnya, baru atribut, tapi cukup diakses.
Setelah Anda melihat contoh, Anda dapat jenis dari meminjam ide itu dan membuat penurunan
Menu untuk sebagian besar apa pun.
Tapi apa kuncinya adalah bahwa masing-masing hal-hal ini memiliki nama.
Dan di bagian bawah formulir ini, ada tombol kirim yang label,
atau nilai, adalah mendaftar.
>> Jadi mari kita pergi ke halaman ini.
Biarkan aku pergi kembali ke daftar direktori.
Biarkan aku pergi ke froshims, dan pergi ke froshim0.php.
Jadi mengerikan, untuk menjadi adil.
Jadi saya pasti bisa menyesuaikan dgn mode ini dengan beberapa CSS, saya bisa membuat beberapa
grafis, mungkin menambahkan beberapa warna, dan membuat lebih cantik.
Tetapi secara fungsional, saya akan berpendapat bahwa ini sebenarnya cukup lengkap.
>> Sayangnya, ketika saya mengisi formulir ini, David, Kapten, Laki-laki, kita akan memilih,
katakanlah Matthews, Register, semua yang terjadi adalah ini.
Tapi perhatikan beberapa takeaways.
Satu, file apa kembali mereka hasil, rupanya?
Jadi, memang, register0.php.
Jadi fakta bahwa kita melihat tindakan yang Nilai saat yang lalu untuk register0, ini
menguatkan bahwa kita memang berakhir up pada file tertentu.
>> Sekarang ini hanya teks jelek.
Tapi perhatikan bahwa teks ini berasal dari host lokal,
yang berasal dari alat.
Pikirkan alat sekarang hanya sebagai web server yang bisa di
Science Center.
Bisa jadi pada web yang sebenarnya.
Jadi dapat diakses publik.
>> Jadi jelas, ada beberapa cara untuk melewati membentuk masukan lapangan untuk server
sehingga dapat melakukan sesuatu dengan mereka.
Sayangnya, register0 sangat bodoh.
Semua hal ini adalah mencetak array yang terlihat seperti ini.
Dan itu bukan sebuah array dalam arti bahwa kita tahu itu.
Ternyata bahwa PHP, dan banyak bahasa, tidak hanya numerik
array diindeks yang indeks pertama adalah nol, lalu satu, lalu dua, lalu titik,
dot, dot, n dikurangi 1.
>> Ini adalah apa yang disebut array asosiatif.
Array asosiatif adalah satu di mana Anda dapat menyimpan pasangan nilai kunci mana
kuncinya belum tentu nomor.
Ini sebenarnya bisa string, kata.
Dan jadi ini dapat diimplementasikan, bawah tenda, ternyata,
menggunakan struktur data yang dikenal sebagai?
Pemikiran sesuatu yang dramatis akan terjadi -
tabel hash.
>> Jadi tabel hash, ingat, bagi Anda yang melakukannya untuk P set 6, atau bahkan mengingat
, setidaknya bahkan jika Anda melakukan percobaan, sebuah tabel hash, dalam penggunaan kami, digunakan untuk
hanya menyimpan kata-kata.
Tapi sungguh, Anda menyimpan kunci dan nilai.
Jika Anda menerapkan tabel hash untuk P set 6 kamus, tombol adalah
kata-kata sendiri, dan nilai-nilai secara efektif benar atau salah.
Ya, di sini, atau implisit, tidak, tidak di sini.
>> Nah, kita bisa menggeneralisasi gagasan itu.
Dan kita bisa menggunakan data yang sangat mirip struktur untuk menyimpan string tidak
sendiri sendirian di tabel hash Anda, tapi anggaplah bahwa dalam setiap satu dari hash Anda
node tabel.
Dan Anda bahkan bisa melakukan ini dalam mencoba bukan hanya memiliki bool.
Anda bisa memiliki sesuatu yang lain.
Bagaimana jika kunci tidak Maxwell, untuk Misalnya, tapi kutipan tanda kutip "nama," atau
mengutip tanda kutip "Kapten." Dan dalam struktur data C, Anda menempatkan
nilai, bukan hanya Boolean, tetapi nilai kutipan seperti tanda kutip "David," atau
"M," atau "Matthews," dan sebagainya.
>> Jadi struktur data yang sama kita gunakan ternyata ada dalam bahasa lain.
Dan aku berpendapat mereka benar-benar banyak, jauh lebih mudah untuk akses di sini.
Mari pada kenyataannya kita lihat sekarang di beberapa sintaks tersebut.
>> Aku akan pergi ke direktori PHP.
Dan aku akan membuka lebih baik versi hello-0 dari sebelumnya.
Perhatikan bahwa semua yang saya lakukan adalah menambahkan beberapa komentar.
Jadi kita bisa menyingkirkan gangguan tersebut.
>> Dan program ini sih memang mencetak halo karena saya sudah ditentukan antara
tag yang saya ingin mengeksekusi kode tersebut.
Sekarang, kita akan lihat sebentar lagi mengapa hal ini berguna.
Tapi mari kita buka satu contoh lain di sini.
Biarkan aku pergi ke depan dan membuka mengatakan, gedit kondisi satu.
>> Ini adalah cara kembali ke masa sekarang.
Tapi minggu lalu, saya pikir, dalam seminggu satu atau dua minggu, kami memiliki contoh yang disebut
conditions1.c.
Dan saya memutuskan untuk reimplement dalam PHP, hanya untuk jenis menekankan bahwa
PHP, sintaksis, hampir identik ke C. Ini bukan sebuah lompatan besar
dari minggu lalu ini.
>> Perhatikan di bagian atas program ini, yang dimulai, seperti sebelumnya, dengan beberapa
komentar, yang saya akan menyingkirkan sebagai pengalih perhatian.
Perhatikan bahwa aku di PHP Modus dalam file ini.
Jadi kode ini, kita akan melihat, akan dieksekusi.
Perhatikan bahwa ada readline, yang mungkin merupakan
analog di PHP GetString.
Perhatikan itu sedikit berbeda.
Anda benar-benar menentukan prompt untuk fungsi yang disebut baris dibaca, dan itu
apa yang pengguna melihat.
Jadi Anda tidak perlu printf manual.
Tapi itu bukan masalah besar.
Aku akan menyimpan, dalam $ n, yang mengembalikan nilai ini, sehingga apa pun
pengguna jenis adalah int mereka.
Dan inilah rasa ingin tahu yang lain.
Ternyata, di PHP, setiap variabel hanya harus diawali
dengan tanda dolar.
Ini sedikit mengganggu.
Tapi perhatikan apa yang saya tidak dilakukan dalam PHP.
Apa yang hilang dari tangan kiri sisi tanda sama?
>> Tidak disebutkan jenis.
Jadi ini berbeda dengan C. Untuk lebih baik atau buruk, PHP adalah longgar
bahasa diketik.
Itu memiliki nomor.
Itu memiliki string.
Itu memang memiliki Booleans.
Dan itu memang memiliki beberapa tipe data lainnya.
Tapi Anda, programmer, biasanya tidak harus peduli tentang mereka.
Sisi positif dari ini adalah bahwa hal itu membuat sedikit lebih mudah untuk program ini.
Anda bisa berpikir sedikit kurang.
Kelemahan ini juga terbuka Anda sampai bug potensial jika Anda tidak sengaja
memperlakukan nomor sebagai string, string sebagai angka, berpotensi, tapi bahkan
kemudian, PHP, dan banyak bahasa, cukup toleran.
Mereka akan menggunakan apa yang disebut implisit casting.
Dan jika Anda mencoba untuk menggunakan n dalam konteks dari situasi numerik, itu akan
mengkonversi apa yang di sini akan menjadi String, karena jika jenis pengguna
sesuatu, dan Anda mendapatkan hasilnya, seperti dengan readline, atau mendapatkan tali,
itu akan kembali string.
>> Tapi perhatikan, beberapa baris kemudian, saya memeriksa apakah n lebih besar dari nol.
Jadi PHP akan implisit dilemparkan saya "String" 123, atau apa pun pengguna
jenis dalam, menjadi sebuah int.
Jadi singkatnya, hal-hal hanya bekerja banyak lebih intuitif.
Jadi sekarang kita mulai beberapa rileks hal-hal yang kita lakukan di masa lalu.
>> Banyak hal ini sama, meskipun.
Masih sama sama.
Sebagai samping PHP juga sama sama sama, tetapi lebih pada, mungkin, dalam
masa depan.
Itu.
Typo tapi dua tanda sama berarti sama hal seperti sebelumnya, untuk perbandingan.
printf berarti hal yang sama seperti sebelumnya.
Backslash n berarti sama hal seperti sebelumnya.
>> Jadi bagaimana saya menjalankan program ini?
Yah, seperti sebelumnya, jika saya lakukan PHP, conditions1.php, dan ketik
nomor seperti 123.
Itu angka positif.
Jika saya mengetik 0, saya memilih 0.
Dan jika saya mengetik 123 negatif, saya mendapatkan kembali angka negatif, yang hanya
mengatakan, sintaksis, PHP super, super serupa.
>> Lalu mengapa ini sekarang berguna dalam konteks web?
Nah, mari kita kembali ke froshims ini Misalnya, yang tampak,
lagi, seperti ini di sini.
Dan mari kita benar-benar menarik halaman web lagi, yang tampak seperti ini.
Apa yang bisa kita lakukan dengan Data yang dikirim?
>> Nah, biarkan aku membuka baru versi ini.
Dan Anda akan melihat bahwa masalah spesifikasi set menuntun Anda
melalui beberapa ini.
Daripada mulai dengan nol, mari kita lihat froshims3,
yang melakukan sedikit lebih.
>> Perhatikan pertama, sebenarnya, mari kita buka up apa 0 adalah, sehingga Anda melihat
apa yang mendaftar adalah 0.
Perhatikan apa yang mendaftar 0 lakukan.
Satu, saya memiliki komentar di atas.
Hapus mereka dan fokus hanya pada hal ini.
Sebagian besar isi register0.php , jelas, bahasa apa?
Hanya baku PHP.
>> Jadi pemberitahuan, file ini tidak dimulai dengan, pada saat, terbuka braket,
tanda tanya, PHP.
PHP tidak memungkinkan Anda untuk berbaur Kode PHP dengan tag HTML.
Tapi aku sudah melakukan itu di sini dalam dari halaman di sini.
>> Sekarang, sekali lagi, Anda akan hanya tahu ini dari setelah melihat manual. print_r,
ternyata, adalah print_recursive. _recursive Dan ini hanya berguna
fungsi utilitas yang hanya mencetak, rekursif, apa pun yang Anda serahkan.
Jika Anda serahkan array, itu akan mencetak array.
Jika Anda serahkan nomor, itu akan mencetak angka.
Menyerahkannya string, itu akan mencetak string.
Jika Anda menyerahkannya tabel hash, itu akan mencetak tabel hash.
Anda tidak harus menulis semua kode yang sendiri.
>> Sekarang perhatikan bahwa aku memasuki Mode PHP di sini.
Aku keluar mode PHP di sini.
Jadi ketika server web membaca file ini atas ke bawah, kiri ke kanan, karena
itu berakhir di nama file yang disebut. php, apa pun tidak di dalam tag PHP
hanya akan menjadi meludah keluar, seperti HTML mentah.
Tidak ada masalah besar.
Tapi segera setelah server web pemberitahuan ini, itu akan mengatakan, saya tidak boleh
dimuntahkan, secara harfiah, print_r pos.
Aku harus menjalankan berikut baris kode.
>> Jadi pertanyaan terakhir, maka, file ini adalah, baik, apa sih ini?
Mengambil menebak.
Apa $ _POST, mungkin?
>> AUDIENCE: [Tak terdengar]
>> SPEAKER 1: Ya, data yang diposting.
Ingat, mari kita gulir kembali waktu untuk sesaat.
froshim0, sekali lagi, tampak seperti ini.
Mayoritas super ini hanya HTML.
Sekali lagi, beberapa tag Anda belum melihat belum, atau di mana
Anda sudah akrab.
Tapi yang menarik adalah ini.
Satu baris ini adalah apa yang benar-benar link ke file register0.php kami.
Saya mengirimkan melalui metode pos.
Dan itu berarti bahwa parameter user mengetik tidak
akan berakhir di mana.
>> Mereka tidak akan muncul dalam URL.
Mereka masih akan dikirim dari klien, dari browser, untuk
server, tetapi hanya melalui beberapa lainnya mekanisme yang kita akan membebaskan tangan kita
pada hari ini, tapi tidak dalam URL.
Tapi perhatikan hubungan sekarang dengan pos, yang, dengan konvensi, adalah
huruf kecil di sini.
>> Tapi kalau aku membuka register0.php, Saya rupanya mencetak ini.
Jadi ini adalah jenis aneh konvensi penamaan.
Tapi apa yang bagus di PHP adalah bahwa ketika menggunakan PHP dalam konteks web, bukan pada
baris perintah seperti yang saya lakukan beberapa saat yang lalu, ketika Anda benar-benar menggunakannya dalam web
halaman, dalam sebuah direktori vhost seperti kita, otomatis akan mengisi PHP ini
hal, yang merupakan array asosiatif, sehingga untuk berbicara, tabel hash, dengan
semua pengguna diketik masuk
>> Singkatnya, $ _POST dalam semua topi adalah variabel global yang PHP hanya
ajaib menciptakan untuk Anda ketika menggunakan PHP dalam konteks web.
Dan menempatkan di dalamnya semua nama-nama parameter dalam bentuk yang
diserahkan ke file ini dan semua nilai-nilai bahwa pengguna diketik masuk
Jadi itu tangan kepada Anda apa yang user diketik untuk bentuk itu.
>> Jadi sebelumnya, kami mendapat output yang benar-benar bodoh hanya melihat ini karena semua yang saya lakukan
itu rekursif mencetak array ini.
Kuncinya adalah nama, nilai adalah David.
Kuncinya adalah Kapten.
Nilai adalah pada.
Dan panah ganda dan sudut braket ada, ini hanya sewenang-wenang.
Ini bukan kode.
Ini hanya cara PHP untuk menunjukkan Anda apa nilai dari beberapa kunci.
>> Tapi sekarang saya mengusulkan bahwa dalam froshIMs3, itu hampir identik
kecuali itu menyerahkan ke berkas ini.
Dan lagi, kita akan jenis hanya melirik ini, hanya untuk melihat beberapa
sintaks, namun perhatikan apa file ini tidak.
Ambil kira hanya berdasarkan garis kode, yang mungkin tidak terlihat seperti
Yunani, sampai batas tertentu, rupanya lakukan.
>> File ini entah bagaimana berhubungan surat, email.
Jadi apa program ini lakukan?
Dalam versi ini, jika saya harus benar-benar mengisi formulir ini - dan biarkan aku pergi ke
froshIMs3, tidak froshIMs0 -
bentuk tampak sama.
David, kapten, laki-laki, asrama, Matthews.
Tapi kalau aku menyerahkan ini, file ini akan pergi ke register3.php.
>> Dan saya menyatakan, dengan melihat itu kode sumber, itu akan
entah bagaimana melibatkan email.
Biarkan aku pergi ke depan dan membuka ini di jendela yang lebih besar, jadi kami
bisa melihatnya lebih bersih.
Kami berada di vhosts, host lokal, publik, froshims.
Aku akan membuka berbeda Program, hanya supaya kita
dapat melihat lebih banyak sekaligus.
>> Jadi sekarang di sini, perhatikan beberapa hal.
Di bagian atas file terbuka braket, tanda tanya, PHP.
Lalu ada sekelompok komentar, yang bisa kita abaikan, adalah
menarik untuk saat ini.
>> Sekarang ada ini.
Ternyata PHP memiliki banyak kode yang disebut membutuhkan.
Ini sangat semangat yang sama C termasuk, termasuk hash, yang
dasarnya meraih isi dari beberapa file lain dan hanya menjatuhkan mereka di sini,
sehingga Anda dapat menggunakannya.
Dalam hal ini, alat memiliki, pra-instal, perpustakaan, bebas dan
perpustakaan open source yang disebut PHP mailer bahwa siapa pun dapat
download dari internet.
Kami hanya melakukannya untuk Anda.
Dan ini berarti saya sekarang memiliki email fungsi di pembuangan saya.
>> Sekarang, perhatikan beberapa hal.
Aku akan memvalidasi pengiriman formulir itu.
Ternyata PHP, satu, memiliki seru poin untuk tidak operator, seperti
C. Namun PHP juga memiliki fungsi disebut kosong.
>> Kosong hanya mengembalikan true jika nilai hal yang Anda serahkan
kurung kosong, seperti pengguna tidak mengetikkan apapun masuk
Jadi ini mengatakan, dan perhatikan sintaks, sangat mengingatkan C, jika
kunci nama, sehingga kolom nama dalam bentuk, yang disampaikan melalui pos,
pengguna, bukan untuk mengosongkan, dan mereka jender tidak kosong dalam formulir sebagaimana
baik, dan asrama mereka tidak kosong -
tapi perhatikan bahwa saya tidak peduli tentang Kapten, maka apa yang akan kita lakukan?
>> Aku akan mengeksekusi baris kode.
Dan Anda bisa memikirkan semacam ini seperti malloc, tapi itu sedikit
lebih menarik daripada itu.
Tapi untuk sekarang ini memberi saya khusus struct tipe PHP mailer.
Tetapi mengabaikan kata kunci baru untuk hari ini.
>> Sekarang aku akan memanggil fungsi yang disebut IsSMTP, yang mengatakan, menggunakan SMTP.
Ini adalah port 25, sama seperti video pekan lalu, ketika hal itu melemparkan
email ke firewall.
Port 25 adalah SMTP.
SMTP berarti menggunakan server mail.
Yang mana, kita dapat menggunakan Harvard SMTP.fas.harvard.edu.
>> Kita dapat mengatur dari alamat menjadi John Harvard.
Jika saya gulir ke bawah lebih lanjut, saya dapat mengatur alamat penerima, hanya
sewenang-wenang, menjadi John Harvard itu juga.
Jadi dia akan mengirim email sendiri.
>> Sekarang saya dapat mengatur subjek menjadi pendaftaran.
Dan saya dapat mengatur tubuh email sebagai berikut.
Baris ini terlihat sedikit lebih samar, tapi itu hanya karena ada banyak
informasi di dalamnya.
Satu, ada dot operator.
Seseorang harus tahu apa yang sudah dot operator tidak.
Ini Rangkaian.
Jadi jika Anda ingin mengambil string di PHP, dan menambahkan, atau tambahkan, untuk
string lain di PHP, terima Allah Anda tidak harus menggunakan strcopy dan malloc,
dan semua itu lagi.
>> Jika Anda ingin menggabungkan dua string, yang peduli tentang memori.
Biarkan tokoh PHP yang keluar untuk Anda.
Apa PHP akan lakukan dengan operator dot di sini hanya membuat kalimat besar keluar
baris ini, baris ini, baris ini, baris ini.
Dan sekarang pemberitahuan, itu akan untuk memasukkan nilai.
Jadi email yang John Harvard akan untuk menerima secara harfiah akan mengatakan
nama, usus besar, sesuatu, bukan, maka kita menutup string dan menggabungkannya pada
apa pun pengguna mengetik dalam, maka baris baru.
>> Kemudian, pada baris berikutnya dari John Harvard email, itu akan mengatakan
Kapten, Aktif atau Tidak.
Ini akan mengatakan jenis kelamin, laki-laki atau perempuan.
Asrama akan menjadi Matthews dalam kasus saya.
Dan kemudian melihat titik koma akrab di akhir.
Dan kemudian, di bawah sini, pemberitahuan, agak samar masih, tapi sekali lagi, setelah
pola yang akan menjadi lebih akrab setelah P set 7, jika mengirim surat
mengembalikan false, kemudian pergi ke depan dan mati.
>> Jadi PHP memiliki fungsi yang disebut mati, yang, secara harfiah, hanya membunuh
website dan hanya mencetak apapun Anda mengatakan itu - yang sedang sekarat
kata-kata, sehingga untuk berbicara.
Dan itu, dalam kasus ini, akan mencetak tahu apa kesalahan info adalah untuk
apa yang terjadi dengan salah.
Jadi cerita panjang pendek di sini, apa yang kita miliki adalah contoh di mana ketika pengguna
menyerahkan formulir, froshim0, froshims3.php, ia pergi ke
register3.php.
Tapi register3.php kemudian hasil untuk menjalankan semua lini ini.
>> Jadi ada beberapa mengambil aways di sini.
Satu, itu tampaknya cukup mudah, pemrograman, untuk mengirim email,
yang baik.
Ketika pengguna mendaftar untuk situs Anda, di kasus ini, ketika mereka mendaftar untuk Anda
olahraga, Anda dapat email mahasiswa baru Proctor, atau John
Harvard, dalam kasus ini.
>> Tapi itu juga berarti Anda bisa melakukan apa?
Kirim email dari siapa pun kepada siapa pun.
Dan ini sangat benar.
Hal ini tidak mudah dilakukan jika Anda terbiasa menggunakan Gmail.
Tetapi jika Anda pernah menggunakan Eudora atau Outlook, Anda dapat cukup banyak memberitahu
server mail yang Anda siapapun yang Anda inginkan.
Dan ini adalah di mana saya harus menempatkan pada topi dan berkata, jangan lakukan ini.
Tapi ini adalah bukti betapa mudahnya itu adalah untuk melakukan serangan phishing, dan
mengirim email anonim, dan spam, lebih umum.
Dan itu benar-benar bermuara pada Kenyataan bahwa semua yang Anda butuhkan adalah beberapa
akses program.
>> Sebagai samping, pertemuan terdekat saya dengan papan iklan, tahun pertama saya sendiri,
adalah ketika saya menemukan ini keren trik itu, wow, Anda dapat
mengirim email dari siapa pun.
Dan jadi kami memiliki beberapa bodoh argumen, secara harfiah, di Matthews,
antara kelompok Proctor saya.
Aku bahkan tidak ingat apa masalah.
Tapi aku ingin mencoba untuk menempatkan mengakhiri perdebatan ini bodoh.
>> Jadi aku memutuskan aku akan mengirim email ke grup Proctor saya, berpura-pura menjadi
orang lain, dengan yang pendapatnya saya tidak setuju, dan minta dia untuk menyetujui
apapun pendapat saya berada di debat khusus ini.
Dan jadi saya ditempa email ini menggunakan Teknik semangat yang sama ini.
Tapi itu sebenarnya lebih mudah pada saat itu.
Tekan kirim.
Dia tidak senang, dan tidak akan telah menjadi papan iklan.
>> Dan aku sangat cepat tertangkap dalam detik karena, seperti yang Anda tahu, saya mendaftar
email-email saya dengan cara tertentu.
Dan meskipun saya melakukannya secara manual, dalam jumlah besar bagian, 15 tahun kemudian karena aku
trauma dengan itu.
Saya tidak memiliki tanda tangan di email saya sekarang.
Namun pada tahun 1995, saya hanya punya sig, tanda tangan di email saya.
Jadi ada catatan ini mengatakan, Sayang Kelompok Proctor, saya menyetujui pendapat saya
dan setuju dengan David, dan ditandatangani sehingga jadi, baris baru, baris baru, DJM.
>> Jadi jangan lakukan itu atau, secara umum, mengambil keuntungan dari teknik ini.
Tapi ketika membuat sebuah website, seperti untuk proyek akhir Anda, ketika membuat
website untuk sesuatu kewirausahaan, ini adalah bagaimana, pragmatis, Anda dapat
memanfaatkan layanan lain di internet seperti email dan kemudian benar-benar
mengirim hal-hal menggunakan kode.
>> Jadi bagaimana kita bisa memperbaiki ini?
Yah, pertama mari kita tur singkat beberapa hal yang Anda akan melihat,
dan kemudian lihatlah beberapa contoh.
Jadi satu, untuk meyakinkan, karena kita terbang melalui PHP.
Dan aku tahu, di beberapa titik, Anda akan memiliki untuk benar-benar mulai menulis ini jika Anda
belum.
Sadarilah bahwa, satu, utama adalah jenis keluar jendela dengan PHP.
Jika Anda ingin menulis kode yang mendapat dieksekusi, Anda hanya mulai menulis dalam
sebuah file bernama. php asalkan Anda memiliki braket terbuka
tanda tanya PHP tag.
>> Tapi perhatikan ini kondisi di php.
Perhatikan, ini adalah slide yang sama persis kami punya di satu minggu ketika kami memiliki
kondisi Kondisi C dalam PHP secara struktural dan
sintaksis yang sama.
Satunya perbedaan yang nyata adalah jika Anda punya variabel yang terlibat, Anda memiliki orang-orang
tanda dolar.
>> Sementara itu, ekspresi Boolean terlihat seperti ini
atau-ing atau dan-ing bersama-sama.
Switch terlihat persis sama.
Apa yang baik di PHP, sedangkan di C, switch harus kasus pada
primitif seperti int atau karakter, di PHP laporan kasus Anda sebenarnya dapat
pada seluruh string, yaitu sebenarnya jenis yang baik.
Menghemat beberapa waktu.
Tidak bisa melakukan itu di C.
>> Berikut adalah lingkaran dalam PHP.
Ini identik.
Mungkin memiliki beberapa tanda-tanda dolar untuk variabel.
Anda tidak harus menyebutkan bahwa sesuatu adalah int.
Anda hanya mendeklarasikan dengan tanda dolar dan nama variabel.
Tapi untuk loop adalah sama.
Sebuah loop sementara adalah sama.
Sebuah lakukan saat lingkaran adalah sama.
>> Ini adalah sedikit berbeda.
Jadi dengan PHP, dengan array, Anda dapat statis mendeklarasikan array, seperti di C,
tapi Anda menggunakan tanda kurung siku.
Dalam C, Anda akan menggunakan kurung kurawal, jika Anda bahkan tahu itu.
Tapi ini sebenarnya sangat umum di PHP untuk mendeklarasikan array, dalam kasus ini,
angka, dan memanggil jumlah variabel.
>> Variabel sendiri terlihat seperti ini.
Berikut adalah string, mengutip tanda kutip "halo dunia. "Anda bisa memiliki backslash n.
Aku hanya tidak dalam kasus ini.
>> Sekarang ini adalah membangun menarik.
C tidak memiliki ini.
Tapi ini super membantu.
Dan Anda akan melihat ini di P set 7 spesifikasi - untuk setiap membangun.
Jika Anda ingin menegaskan kembali atas semua elemen array, Anda tidak perlu
untuk menangani $ i dan $ n, dan + +, dan semua itu.
Anda benar-benar dapat mengatakan, di PHP, ini -
untuk setiap nomor sebagai nomor, sehingga Aku menduga bahwa angka $
adalah array dari angka.
Dan ketika saya mengatakan untuk setiap nomor sebagai nomor, ini akan
otomatis, sebagai loop saya mengeksekusi, memperbarui, pada setiap iterasi, nilai
dalam jumlah tanda dolar -
lagi, dan lagi, dan lagi berjalan bagi saya lebih dari array.
Jadi itu hanya menyelamatkan kita kode.
Tidak ada titik koma, tidak ada + + 's, tidak ada i itu, ada n, itu hanya bagus.
>> Namun PHP juga memiliki ini.
Dan ini super kuat.
Dan Anda akan menggunakan ini, tangan pada, di P set 7.
Dan array asosiatif juga dinyatakan dengan tanda kurung siku.
Tapi perhatikan sintaks sekarang.
Ini mengingatkan pada apa yang kita lihat dengan print_r beberapa saat yang lalu.
Berapa banyak kunci, sebagai cek kewarasan sedikit, apakah array ini tampaknya memiliki.
>> Sehingga memiliki dua.
Dan saya menyebutnya sebuah array.
Tetapi jika itu membantu, Anda bisa memikirkan tabel ini sebagai hash, atau sebagai
array asosiatif.
Tapi itu hanya berbeda jenis array.
Dan lagi, bahasa yang berbeda memiliki ini.
Kita akan melihat sesuatu yang mirip dalam JavaScript juga.
Ada dua kunci.
Salah satunya adalah kutipan tanda kutip, "simbol," satu mengutip tanda kutip "harga." Dan orang-orang kunci
masing-masing memiliki nilai.
Dalam hal ini nilai simbol adalah FB, untuk Nilai Facebook, dan harga adalah 49, 26,
yang saham Facebook Harga sampai pagi ini.
>> Jadi apa yang berguna tentang array asosiatif.
Aku bisa memiliki numerik diindeks array dengan hanya
sederhana kurung persegi.
Dan saya bisa memiliki tanda dolar kutipan sama ini saja.
Biarkan aku benar-benar melakukannya.
Misalkan saya malah menyatakan array ini seperti itu.
Itu adalah hal yang sah, sintaksis.
Ini tidak kehilangan informasi apapun, per se.
Saya masih melihat bahwa simbol adalah fb, dan bahwa harga adalah 49, 26.
Jadi mengapa asosiatif array menarik?
>> AUDIENCE: Anda tidak harus ingat di mana Anda meletakkan barang-barang.
>> SPEAKER 1: Tepat, Anda tidak perlu mengingat di mana Anda meletakkan barang-barang.
Anda tidak harus ingat sewenang-wenang bahwa simbol saham di braket nol,
dan harga saham di braket satu, yang sangat berbahaya jika Anda
mengubah keadaan, akhirnya.
Ini jauh lebih baik untuk mengasosiasikan apa yang akan kita sebut metadata
dengan data Anda yang sebenarnya.
Aku berpendapat bahwa apa yang kita benar-benar peduli di sini adalah fb dan 49, 26.
Simbol dan harga metadata yang menggambarkan data yang kita
benar-benar peduli.
Tapi ini begitu banyak lebih mudah untuk mengakses.
>> Sekarang, sebagai samping apa harga yang kita bayar?
Kami sudah melakukan ini di CS50 selama berminggu-minggu.
Fitur ini harus datang dengan tarif tertentu.
Memori.
Jadi Anda tidak hanya menyimpan 32-bit integer, misalnya.
Anda menyimpan simbol / 0, mungkin.
Jadi Anda menggunakan lebih banyak memori.
>> Dan apa kinerja mencari sesuatu dalam
array asosiatif, mungkin?
Ini mungkin lebih lambat.
Random access baik, terutama ketika Anda dapat melakukan pencarian biner.
Tapi jika Anda benar-benar sekarang melihat tidak untuk angka, tetapi untuk string, ini
benar-benar diimplementasikan di bawah hood, mungkin sebagai tabel hash, di mana
Anda menggunakan salah satu tabel hash dengan chaining terpisah.
Atau Anda menggunakan mencoba untuk benar-benar menyimpan nilai-nilai.
Jadi mungkin Anda dapat melakukan waktu yang konstan, tetapi Anda masih harus melihat S-Y-M-B-O-L,
berpotensi, bukan hanya 32 bit untuk mencari sesuatu.
Jadi sekali lagi, ide-ide yang sama datang kembali kambuh dalam konteks ini.
>> Tapi sekali lagi, PHP sekarang memiliki beberapa super globals itu, ternyata, adalah
array asosiatif.
Kami melihat satu saat yang lalu, $ _POST.
Dan bahwa Super global yang memiliki kunci dan nilai.
Secara khusus, tombol berbaris dengan apa?
Di mana kunci dalam $ _POST berasal?
Hanya untuk rekap?
>> AUDIENCE: Nama.
>> SPEAKER 1: Nama, di mana?
>> AUDIENCE: [Tak terdengar]
>> SPEAKER 1: Nama adalah atribut.
Nah di mana, di mana mereka melakukan berasal dari?
Bentuk.
Jadi, jika sebuah halaman HTML memiliki tag form, dalam yang beberapa masukan, seperti
kotak cek, kotak teks, drop-down menu, yang masing-masing memiliki nama, mereka
nama berakhir sebagai kunci dalam $ _POST, dan, terus terang, dalam hal ini, $ _GET.
Jika metode ini get, ide yang sama.
Hanya saja di super yang berbeda global.
Dan nilai-nilai, tentu saja, datang dari apa pun pengguna mengetik di nya atau
browser-nya.
>> Tapi ada beberapa orang lain.
Ada kue, yang kita akan kembali ke akhirnya.
Tetapi mereka adalah hal-hal yang Anda tahu web menggunakan untuk beberapa baik atau jahat.
Tapi kita akan kembali ke itu.
Server dan sesi, dan dua memiliki beberapa utilitas khusus.
>> Tapi mari kita lihat ini.
Biarkan aku pergi ke depan dan membuka sebuah contoh disebut mvc0.php Jadi MVC
singkatan berikut.
Dan kami memperkenalkan ini lebih awal dari yang khas, benar-benar, untuk mendapatkan Anda merancang
Soal set 7, dan juga proyek akhir, dalam semacam industri
cara standar, dan cara yang bersih.
Ini desain yang baik.
>> Jadi Anda akan melihat, dan Anda akan Pengalaman, di P set 7, paradigma, semacam
pola pikir pemrograman, yang terlihat sedikit sesuatu seperti ini.
M untuk Model, C untuk Controller, V untuk View.
Singkat cerita, MVC adalah hanya jenis dari metodologi, cara untuk membuat
situs, khususnya, dimana Anda menempatkan semua, frase bodoh Anda -
logika bisnis -
semua Anda kekayaan intelektual di apa yang disebut controller, file
seperti index.php, atau kita akan melihat, quote.php, atau buy.php.
>> Dalam konteks Soal set 7, Anda Model biasanya berisi data Anda,
apapun yang berhubungan dengan database, seperti yang kita akan akhirnya melihat, dan pandangan Anda
mengandung estetika Anda situs, HTML, CSS.
Jadi kita sudah melihat ini dalam C sedikit bit dengan menggunakan file h..
Kami benar-benar melihat itu beberapa saat yang lalu dengan CSS, oleh anjak stilisasi CSS
barang dari HTML kita.
>> Jadi MVC benar-benar hanya tentang menggambar garis di pasir dan berkata, yang
pemrograman menarik kode untuk Anda situs termasuk dalam apa yang akan kita sebut
kontroler.
Hal-hal yang berhubungan ke database biasanya berakhir di model.
Tapi Anda akan melihat, pada Soal set 7, kami menggabungkan C dan M untuk tetap sederhana.
Tapi pandangan adalah di mana semua HTML Anda dan estetika biasanya pergi.
>> Jadi apa artinya ini secara riil?
Nah, biarkan aku pergi ke MVC kami direktori sebagai berikut.
Dan Anda akan melihat lebih dari ini tur melalui di spec.
Jadi dalam mvc0, saya menyatakan bahwa ini adalah, seperti, versi 0 website CS50 itu.
>> Semua yang kita miliki adalah beberapa HTML, seperti tag h1 besar, rupanya.
Dan kemudian daftar bullet.
Aku belum pernah melihat daftar bullet sebelumnya, tapi bukan masalah besar.
Mari kita cepat-cepat melihat kode sumber.
Ternyata daftar unordered dengan peluru terbuka braket ul dengan satu atau
Daftar item lebih, li.
Jadi pemberitahuan di sini adalah sebuah tag anchor.
Kami melihat bahwa beberapa saat yang lalu.
>> Jadi ini adalah bagaimana saya menerapkan halaman ini.
Aku punya dua link, dua item daftar, satu ul untuk unordered list, dan akhirnya
Hasilnya, estetis, apakah ini sangat situs cantik, versi 0 sini.
Tapi yang menarik sekarang adalah bagaimana ini diimplementasikan di bawah tenda.
>> Biarkan aku 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, masyarakat, MVC, perhatikan beberapa file.
Aku akan menyebutnya, untuk saat, semua kontroler.
Tapi itu sedikit pelecehan karena Anda akan melihat semuanya campur aduk
dalam diri mereka.
>> Dan biarkan aku pergi dalam index.php.
Dan kita lihat, secara harfiah, HTML yang sama.
Jadi meskipun file ini berakhir di . Php, Ini tidak berarti itu harus
memiliki kode PHP.
Itu hanya dapat HTML mentah, meskipun itu konyol.
Tapi perhatikan tidak ada terbuka braket PHP tag, kecuali untuk ini, yang, terus terang,
hanya ada untuk melayani sebagai komentar.
Tapi itu tidak fungsional bahkan menarik.
>> Tapi perhatikan ini.
Yang menarik sekarang adalah apa perubahan di halaman ini.
Mari saya klik Kuliah.
Dan perhatikan URL akan berubah.
Sekarang aku di lectures.php.
Mari saya klik nol.
Sekarang aku di week0.php Dan sekarang mari saya membuka file-file di gedit.
Bukan hanya indeks, tapi biarkan saya membuka kuliah.
Dan biarkan aku menyingkirkan komentar untuk fokus pada bagian ini saja.
>> Dan sekarang biarkan aku membuka satu lagi, week0.php, membuang komentar,
hanya untuk membersihkan ini.
Dan sekarang perhatikan berikut ini.
Berpikir benar-benar semacam hati-hati tentang desain, dan mari kita membuat garis
up sama, apa yang bisa dilakukan lebih baik di sini, menurut Anda?
>> Bagaimana saya membuat satu minggu?
Bagaimana tentang hal ini.
Jadi ini adalah bagaimana saya membuat satu minggu.
Aku pergi ke File, New, Tempel, Simpan, week1.php, dan kemudian saya pergi di sini.
Dan aku berubah satu -
apa ini, satu sampai Jumat.
Saya mengubah nol satu.
Saya mengubah ini ke salah satu.
>> OK, jadi sekarang melihat file saya.
Apa yang bisa dilakukan secara berbeda?
Dimana kesempatan, mungkin?
Jadi ada kesempatan untuk memulai anjak tentang hal ini.
Mari saya membuka, sebagai spoiler, untuk apa yang akan Anda lihat dalam P set 7.
Jika saya membuka, sekarang, index.php dalam versi lima ini, tampaknya cara
lebih samar, diakui.
>> Tapi ini, sekarang, adalah apa yang saya akan menelepon pengontrol yang mengendalikan
logika halaman saya.
Dan Anda dapat jenis merekonstruksi, intuitif, mungkin, apa yang terjadi.
Pada baris pertama, itu sedikit samar.
Tapi perhatikan aku membutuhkan, seperti dengan termasuk tajam, file bernama
helpers.php.
Dan kemudian aku menelepon, tampaknya, fungsi, yang disebut render, lewat di
dua argumen.
>> Salah satunya adalah kutipan tanda kutip, sundulan.
Dan yang lainnya adalah, apa tipe data ini, berbasis
pada sintaks kami sebelumnya?
Ini sebuah array terkait.
Secara khusus, itu lewat di judul dengan beberapa metadata yang mengingatkan
saya apa itu dan nilainya.
Lalu aku melihat keras kode ul, sehingga beberapa HTML mentah.
Tapi kemudian aku kembali ke mode PHP memanggil render fungsi.
Jadi bahkan jika Anda belum pernah menggunakan HTML atau PHP sebelumnya, dan meskipun ini terlihat
menakutkan, mengapa ini mungkin desain yang lebih baik?
Apa yang lebih baik tentang hal itu, berdasarkan kesimpulan?
>> AUDIENCE: [Tak terdengar]
>> SPEAKER 1: Kurang berlebihan dalam tidak ada tag HTML lebih, tidak lebih
kepala tag, tag tubuh tidak lebih di setiap file sialan.
Sebaliknya, aku sudah diperhitungkan keluar kesamaan dan mungkin menempatkan mereka
ke dalam sebuah file entah bagaimana terkait untuk header.
Dan hal yang sama untuk tubuh dekat tag, tag HTML dekat.
Itu mungkin di sini di dalam dari suatu tempat footer.
Dan Anda akan melihat, pada Soal set 7, sedikit tur melalui ini.
>> Jadi apa yang ada di depan?
Satu hal yang kita belum kemampuan namun untuk sebenarnya adalah untuk menyimpan data.
Dan apa yang kita akan mulai melihat Rabu, misalnya, adalah bahwa Anda
teman lama Excel, atau angka, memungkinkan Anda untuk menyimpan banyak
data dalam baris dan kolom.
Ternyata Anda bisa melakukan itu dalam apa yang disebut database, pemrograman.
manik Dan ternyata, setelah itu, kita akan dapat menyimpan hal-hal seperti
ini, yang Anda akan melihat lagi dalam set P 7, sejumlah besar nama pengguna dan
password, yang terakhir yang sebenarnya dienkripsi, seperti yang mereka
berada dalam edisi hacker P set 2 itu.
Dan akhirnya, Anda akan menerapkan ini, website Anda sendiri Etrade-seperti itu
mengimplementasikan kolektif CS50 keuangan.
>> Terakhir, karena Anda tinggal di sini begitu terlambat hari ini, jika Anda kembali ke bagian ini
kampus, di 04:00 hari ini, kami akan memberikan tidak hanya saran, di SCES
Advising Adil, di 16:00 di Maxwell-Dworkin, kami akan memberikan beberapa
Americone Dream, Cherry Garcia, Chocolate Fudge Brownie, Chocolate
Chip Cookie Dough, dan, ketika Anda Google Chunky Monkey, Anda mendapatkan ini.
Jadi semua yang menanti di 04:00 PM di Maxwell-Dworkin.
Sampai jumpa pada hari Rabu juga.
>> SPEAKER 2: Pada berikutnya CS50, RJ tidur masuk
>> RJ: bagian saya!
Ha!
Oh,