[เล่นเพลง] DAVID ลัน: นี่คือ CS50 และ นี้คือจุดเริ่มต้นของสัปดาห์แปด และเรารู้สึกตื่นเต้นมากที่จะต้อนรับ กลับประหลาดใจใหญ่รามอน CS50 ของตัวเอง Galvan, อาวุโสที่ได้รับเพิ่มขึ้น ใช้เวลาหลายเดือนที่ผ่าน ตั้งแต่เดือนกรกฎาคมในแอลเอในฮอลลีวู้ด แท้จริงทำงานในแบรนด์ทีวีใหม่ การแสดงที่เรียกว่าอาณานิคมผู้สร้างที่ เป็นจริงสารส้มฮาร์วาร์ตัวเอง และเพื่อให้เรารู้สึกตื่นเต้นมากที่เห็นนี้ เปิดตัวบนเครือข่ายสหรัฐอเมริกามกราคมนี้ ดังนั้นติดตามความคืบหน้าการที่และ รามอนมากขึ้นสำหรับสัปดาห์ที่ผ่านมา รู้ว่าตอนนี้ว่าปลายอยู่ใกล้ และสิ่งนี้หมายความว่ามีไม่ ทุกสิ่งที่ซ้ายมาก CS50 เศร้าที่จะพูด เรามีเพียงสามปัญหา ชุด left-- มี ปัญหาตั้ง six-- ที่อยู่ใน มือของคุณตอนนี้หรือเร็ว ๆ นี้จะเป็น เนื่องจาก week-- ภายหลังนี้จะหมายถึงการเชื่อมโยง โลกของเราในบรรทัดคำสั่งที่ เราได้ใช้เวลาส่วนใหญ่ของเราโดยใช้ C และโลกของการเขียนโปรแกรมเว็บ ดีที่คุณจะพบมากของความคิด ที่ยืมมาจากการทำงานของบรรทัดคำสั่ง แต่ยังมีจำนวนมากของใหม่ และความคิดที่น่าสนใจ ที่ยังไปได้ใกล้ชิดสำหรับ การใช้งานโทรศัพท์มือถือและเทคโนโลยี มากขึ้นโดยทั่วไปด้วยซึ่งคุณ ผู้ชายทุกคนคุ้นเคยในปัจจุบัน แล็ปท็อปและโทรศัพท์และไม่ชอบ ดังนั้นคุณจะไม่ได้ดำเนินการ หน้าเว็บหรือเว็บไซต์ ต่อ se แต่เว็บเซิร์ฟเวอร์ที่เกิดขึ้นจริง คุณจะเขียนส่วนที่เหลือของเว็บเซิร์ฟเวอร์ เขียนใน C ซึ่งมีจุดมุ่งหมายในชีวิต คือการได้รับการร้องขอ HTTP, ผู้ ซองจดหมายเสมือนเราให้การพูดคุย เกี่ยวกับและจริงทั้งที่มีการตอบสนอง บาง content-- คงเหมือนจุด HTML ไฟล์หรือจุด JPEG หรือ จำนวนใด ๆ อื่น ๆ ของไฟล์ หรือแม้กระทั่งไฟล์ PHP โดยเว็บของคุณ เซิร์ฟเวอร์จะไปตีความ PHP ที่ รหัสและคายออกผล ตอนนี้เราได้ให้กับคุณ ไม่น้อยของกรอบ สำหรับ it-- แน่นอน รหัสสำหรับปัญหาการจัดจำหน่าย ตั้งหกมีมากกว่า 1,000 สายยาว จำนวนมากซึ่งเป็นความเห็นที่จะเป็น fair-- แต่นี่คือความหมายจริงๆ จะเป็นโอกาสที่ ที่จะได้รับในมือของคุณดำน้ำสกปรก เป็นโครงการขนาดใหญ่พอสมควร ที่เราได้มากโดยเฉพาะ แกะสลักจากชิ้นส่วนของสำหรับคุณ เพื่อที่ว่าจริงๆเมื่อคุณออกจาก CS50 และ เข้าสู่โลกแห่งความจริงของการเขียนโปรแกรม และต้องการที่จะตะลุยใน จำนวนโครงการใด ๆ คุณจะมีมากขึ้น ความสะดวกสบายในการดาวน์โหลดซอร์สบาง รหัสบางโอเพนซอร์ส โครงการบนเว็บ และดำน้ำในและทำให้ การเปลี่ยนแปลงที่คุณเห็นพอดี ปัญหาตั้งเจ็ดเป็นไปได้เกี่ยวกับ ทำให้โปรแกรมประยุกต์บนเว็บของคุณเอง ที่ใช้เวลาการป้อนข้อมูลแบบไดนามิกและ ผลิตออกแบบไดนามิกในรูปแบบ ของเว็บไซต์ etrade.com เหมือน และปัญหาการตั้งแปดจะมุ่งเน้นไปยัง ภาษาอื่นที่รู้จักกันเป็น JavaScript ในขณะเดียวกันในขั้นตอนสุดท้าย โครงการอยู่บนขอบฟ้า ที่เรียกว่าข้อเสนอก่อน เป็นเพราะสัปดาห์จากวันนี้ Pre-proposal-- ต่อสเปค ซึ่งอยู่บน website-- CS50 ของ เป็นโอกาสที่สบาย ๆ สวยสำหรับ คุณสามารถส่งอีเมลสั้นสวย เพื่อนของคุณการเรียนการสอน เพียงเพื่อบอกเขา หรือเธอในสิ่งที่คุณกำลังคิดที่จะ ใช้เขาหรือเธอเป็นคณะกรรมการการทำให้เกิดเสียง และมีสติ check-- ไม่ว่าคุณกำลังคิด เกี่ยวกับการกัดออกมากเกินไป มากหรืออาจจะน้อยเกินไป หรือบางทีคุณอาจมีความคิดใด ๆ และต้องการที่จะมีส่วนร่วมในการสนทนา หลังจากนั้นเป็นข้อเสนอ และรายงานสถานะ ที่เรียกว่า CS50 Hackathon ที่นี่ใน เคมบริดจ์สำหรับนักศึกษาฮาร์วาร์และเยล เหมือนกัน โครงการสุดท้ายของ การดำเนินงานเป็นแล้วเนื่องจาก และจากนั้นก็เป็นธรรม CS50 นี่ในเคมบริดจ์ เช่นเดียวกับอีกในนิวเฮเวน ดังนั้นข้อเสนอที่จะดูที่ เว็บไซต์สำหรับรายการเหล่านั้น แต่ที่โลดโผนเกินไปเป็น โอกาสที่จะได้รับในมือของคุณสกปรก และความคิดของคุณเปิดให้ทั้งหมด พวงของหัวข้อและเครื่องมือ และเทคนิคที่มีเสริม หลักสูตรหลักในการเรียนการสอนของ แต่อย่างไรก็ตามที่เกี่ยวข้อง และยังก้าวหินที่ยอดเยี่ยมเพื่อ การทำโครงการสุดท้ายที่เย็นจริงๆ ไปได้ดีเกินวัสดุที่เราได้ครอบคลุม อย่างเป็นทางการในชุดปัญหาหรือในการบรรยาย ดังนั้นไปที่เว็บไซต์ CS50 สำหรับ บัญชีรายชื่อทั้งหมดของการสัมมนา หากคุณไม่ได้ลงทะเบียนยังที่ดี ไปข้างหน้าและยังคงลงทะเบียนและเราจะ ตามด้วยการสตรีมมิ่งการเชื่อมโยงสด วันและเวลาที่อยู่บนเว็บไซต์ และทุกอย่างจะ บันทึกและนำออนไลน์ ถ้าคุณไม่สามารถทำให้ โดยเฉพาะอย่างยิ่งวันที่และเวลา เป็นสิ่งที่อยู่ข้างหน้า thereafter-- ดี แน่นอนว่ายังมีเป็น CS50 Hackathon ภาพนี้เรียกคืนจากศูนย์สัปดาห์นำ รอบ 04:00 ในเย็นวันหนึ่งในปีที่ผ่านมา ยุติธรรม CS50 อีกครั้งซึ่ง จะเกิดขึ้นในเมืองทั้งสอง และจากนั้นก็เพียงเพื่อปลูก เมล็ดแม้ว่าเราจะยังคง มีเดือนบวกด้านซ้ายของภาคการศึกษาถ้า คุณต้องการที่จะเข้าร่วมการเรียนการสอนของตัวเอง CS50 พนักงานและคุณต้องการที่จะเริ่มต้น คิดเกี่ยวกับการเป็น CA, การเรียนการสอนหรือเพื่อนรู้ว่า เราจะเริ่มพูดคุยเกี่ยวกับที่อื่น ๆ ภาคการศึกษานี้ในภายหลัง แต่เป็นภาพที่นี่ มากที่สุดของทีมในปีนี้ ดังนั้น PHP-- และฉันก็เศร้ามาก สัปดาห์ที่แล้วว่า [? Allyse?] กรุณา ไปกับความพยายามในการได้รับ เราประกอบฉากยอดเยี่ยมเหล่านี้ ว่าผมไม่ได้จบลงด้วยการใช้จึง จริงๆเพียงแค่มองชนิดของโง่ ที่เรามีพลั่วนั่งอยู่ที่นี่ทั้งหมด วันสุดท้ายวันพุธและช้อนเล็ก ๆ น้อย ๆ แต่นี่เป็นของฉันเปรียบเปรย วิธีการพยายามที่จะวาด ภาพของเหตุผลที่เรากำลังก้าว จาก C ไปภาษาเช่น PHP และเดียวกันอาจจะกล่าวใด ๆ จำนวน languages​​-- Java, Python, Ruby หรือที่อัดแน่นของ others-- แต่ในขณะที่ C เช่นการเขียนโปรแกรมในเซลเซียส โดยทั่วไปอาจจะชอบ การช้อนเช่นนี้ และขุดหลุมในที่ ดินทรายหรือสิ่งสกปรก PHP ช่วยให้คุณสามารถใช้เวลามาก กัดที่ใหญ่กว่าจากปัญหาที่เกิดขึ้น เขียนโค้ดน้อย โดยใช้เครื่องมือที่มีขนาดเล็กห่างไกล เพราะมีมากขึ้น ฟังก์ชั่นในการปะติดปะต่อ ตอนนี้ถ้าเราเป็นอย่างมากจริงๆ เราจะมีสิ่งที่จะขุด ที่นี่ แต่ช่างมันเถอะ ในขณะที่คนอื่น ๆ อุปมาเรามาด้วย เป็นของหลักสูตรที่คุณสามารถทำได้ ใช้สิ่งที่ต้องการประแจ ค้อนในสิ่งที่ต้องการเล็บ แต่แน่นอนที่เหมาะสม เครื่องมือในการใช้งานเป็นไป จะเป็นไม่มาก ภาษาที่เรียกว่า C-- และตอนนี้ผมก็แค่รำคาญ [? แซนเดอ?] อาจ เราจะแก้ไขปัญหาที่ later-- ดังนั้น เครื่องมือที่เหมาะสมในการใช้งานบ่อยครั้ง จะไม่เป็น เครื่องมือระดับต่ำสุด และแน่นอน, C ไม่ใช่ภาษาที่ ส่วนใหญ่ของคุณเคยไปใช้ หรือจำเป็นต้องควรใช้อีกครั้ง และในความเป็นจริงเล็กน้อย secret-- เพียงครั้งเดียว ผมใช้ C ตัวเองสวยมากระหว่าง กันยายนและธันวาคมของทุกฤดูใบไม้ร่วง เทอม และนั่นเป็นเพราะเรา ใช้มันเป็นโอกาสที่ ที่จะสอนพื้นฐาน ในการเขียนโปรแกรม และด้วยคอมพิวเตอร์ ปัจจัยพื้นฐานวิทยาศาสตร์ข้อมูล โครงสร้างและขั้นตอนวิธี like-- แต่อย่างรวดเร็วคุณจะ เห็นว่าตอนนี้ไวยากรณ์ และความคิดพื้นฐาน C จึงเป็นที่น่าพิศวง โอนไปยังทันสมัย​​มากขึ้น ภาษาระดับสูงเช่น PHP และ Python และ Perl และ Java และวัตถุประสงค์ C-- จริงไม่มาก วัตถุประสงค์ C-- แต่สวิฟท์เหล่านี้ใหม่ ภาษาที่หลายท่านจะ แล้วตะลุยกับคุณโครงการสุดท้าย โดยไม่ต้องกังวลใจต่อให้ของจริง ใช้ PHP ในการแก้ปัญหาบางอย่าง จำได้ว่าในช่วงต้นที่ผ่านมา สัปดาห์เราก็ใช้ CS50 IDE, เราเขียนโปรแกรมเล็ก ๆ Dinky ที่เพียงแค่พูดว่า "สวัสดีชาวโลก." และจากนั้นผมบันทึกไว้ใน ไฟล์ที่เรียกว่า hello.php แล้วฉันวิ่งคำสั่งนี้ และทำไม? ในภาษาอังกฤษ, สิ่งที่เกิดขึ้นที่นี่? อะไรคือสิ่งที่ผมทำเมื่อ ฉันวิ่งคำสั่งนี้หรือไม่? ใช่? ผู้ชม: มีฟังก์ชัน PHP เป็นบางส่วน ที่อ่านสิ่งที่ in-- เข้าใจว่า DAVID ลัน: ดีมีฟังก์ชั่นบางอย่าง PHP-- และแจ้งให้เราเฉพาะเจาะจงมากขึ้น มีโปรแกรมที่เรียกว่า PHP เป็น a.k.a. ล่ามที่เข้าใจ เนื้อหาของ hello.php, และตีความมันบนลง ด้านล่างซ้ายไปขวา และไม่ว่าคำสั่งดังกล่าวบอกว่า คำสั่งใน hello.php แน่นอน เป็นเพียงแหล่งที่มาฟังก์ชั่น code-- และตัวแปรและลูปและ เหมือนที่เราเอง ได้เริ่มต้นการเขียนใน PHP แต่แตกต่างจากซีซึ่งเป็น ภาษาที่รวบรวม PHP คุณเพียงแค่เขียนมันและใช้มัน คุณข้ามขั้นตอนของพ่อค้าคนกลางที่ การแปลงไปยังศูนย์และคน, แล้วใช้มัน และเพื่อให้สิ่งที่เป็นอัพไซด์จากนี้หรือไม่ เหตุผลที่เราจะข้ามขั้นตอนหรือไม่ ทำไมภาษาที่ทันสมัย​​มากขึ้น มีแนวโน้มที่จะข้ามขั้นตอนนี้? สิ่งที่เป็นประโยชน์หรือไม่ หรือเพียงแค่สังหรณ์ใจ? แม้ว่าเราจะไม่ได้ เขียน PHP มากก่อน สิ่งที่เป็นประโยชน์เกี่ยวกับการไม่ รวบรวมรหัสของคุณคุณคิดว่า? ไม่ได้หรือไม่ ไม่กระทำ? เกาหัวของคุณ? ใช่ ผู้ชม: แบบไดนามิกเพิ่มเติม DAVID ลัน: แบบไดนามิกมากขึ้น? คุณหมายความว่าอะไร? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: ตกลงที่ดีดังนั้น ขึ้นอยู่กับการป้อนข้อมูล คุณไม่ได้มีการรวบรวมทุกครั้ง และมันคือเรื่องจริงเป็น ง่ายๆเป็นสิ่งที่ that-- เป็นจุดของการอย่างต่อเนื่อง เพื่อรวบรวมรหัสของคุณ? นี่เป็นเพียงขั้นตอนที่ making-- นี้เป็นที่ต้องการ, สำหรับที่ผ่านมาหลาย ๆ สัปดาห์ที่ผ่านมาขั้นตอนที่สองเท่า เป็นเพียงการเรียกใช้โปรแกรมของคุณ จะได้รับประโยชน์ในการดูว่าคุณ เห็นบางข้อความผิดพลาดและอื่น ๆ แต่มันก็ยังคงเป็นเพียงขั้นตอนที่น่ารำคาญ และเพื่อให้ตระหนักถึงการเขียนโปรแกรม ในช่วงเวลาที่ว่าทำไมเราไม่ เริ่มต้นการเขียนภาษาที่ทำไม่ได้ ขั้นตอนที่ต้องกลอย่างเป็นธรรม เพื่อให้สามารถเขียน รหัสของคุณและเรียกใช้ แต่สิ่งที่ราคา ที่เราเห็นเราจ่าย สัปดาห์ที่ผ่านมามีตัวอย่างหนึ่งโดยเฉพาะ? ใช่? ความเร็ว ดังนั้น [? สิ่งที่?] ล่าม ช้าลงเล็กน้อย ในการที่ศูนย์และคนที่มี ที่ดีและรวดเร็วสำหรับคอมพิวเตอร์ ที่จะเข้าใจเพราะ Intel CPU หรืออะไรก็ตามที่มันเป็น เพียงแค่มีความเข้าใจในสิ่งที่เกิดขึ้น กับรูปแบบของบิตเหล่านั้น ในขณะที่ล่าม เป็นโปรแกรมที่จริงๆ มีการอ่านแหล่ง Ascii รหัสที่คุณได้เขียน และแปลงเป็นเพื่อที่จะพูดหรือ คิดออกว่าจะแปลงในท้ายที่สุด ไปศูนย์และคน ดังนั้นจึงใช้เวลาเพียงเล็กน้อย บิตของการตี ดังนั้นจึงเป็นบิตของการค้าปิด ตอนนี้ถ้าเราทำเช่นนี้มากกว่าที่นี่ให้ฉัน ไปข้างหน้าและทำตัวอย่างดังต่อไปนี้ ถ้าฉันไปในที่นี่ไฟล์ใหม่ฉันจะ เพื่อประหยัดนี้อีกครั้งเป็น hello.php และตอนนี้ฉันจะไปข้างหน้า และพูดว่า "สวัสดีพิมพ์โลก" - และจำได้ว่าฉันสามารถใช้พิมพ์ฉันทำไม่ได้ ต้องใช้การพิมพ์-F และตอนนี้ลงที่นี่ ถ้าฉันทำของ PHP hello.php, huh-- ฉัน ดูเหมือนจะไม่ได้ตีความมัน ฉันทำผิดอะไร? ผู้ชม: กำไลมุม DAVID ลัน: ใช่คุณจะต้อง ที่วงเล็บมุมด้านบนขึ้น ดังนั้นจึงเป็นชนิดที่น่ารำคาญ แต่ คุณได้รับใช้มันได้อย่างรวดเร็ว ถ้าผมต้องเขียนโค้ด PHP ผม โดยทั่วไปจำเป็นต้องบอกโปรแกรม หรือบอกล่ามเดี๋ยวก่อน PHP นี่มาบางโค้ด PHP และแล้วการวัดที่ดีผมจะ ไม่ปิดนี้กับเรื่องนี้ แต่ กับคำถามเพียงมุมเครื่องหมาย วงเล็บเพื่อที่ว่าในขณะนี้ลงที่นี่ ถ้าผมทำงานนี้อีกครั้งในขณะนี้ ฉันจะได้รับผลลัพธ์ที่ต้องการ ตอนนี้ขอทำเพิ่มประสิทธิภาพของเล็กน้อย เพียงเพื่อให้คุณได้เห็นมันมาก่อน นี้เป็นชนิดที่น่ารำคาญที่ฉัน ต้องใช้พื้นที่ hello.php PHP, เพราะในอดีตที่ผ่านมาที่ผม ก็สามารถเขียนทับจุด ชื่อโปรแกรมซึ่งเป็นชนิดของความสุข เป็นชนิดของประสบการณ์การใช้งานที่ดีขึ้น ดังนั้นมันจะเปิดออกที่คุณสามารถทำเช่นนี้ ใน PHP กับฉัน following-- สามารถใช้ความลับนี้อย่างเป็นธรรม คาถาที่ด้านบนที่นี่ ซึ่งเรียกโดยทั่วไป shebang, เหตุนี้เป็นสัญลักษณ์ที่คมชัด เพื่อที่จะพูดนี้เป็นปัง หรือเครื่องหมายอัศเจรีย์ และตอนนี้เป็นเส้นทางไปยังโปรแกรม บนระบบลินุกซ์ทั่วไปที่ ที่เรียกว่าสภาพแวดล้อมหรือ env และนี่ line-- เรื่องยาว สาย short-- เพียงหนึ่ง กล่าวว่าเดี๋ยวก่อนคอมพิวเตอร์หาของ PHP ล่ามสำหรับฉันในสภาพแวดล้อมที่ พบว่าในหน่วยความจำของคุณเพื่อที่จะพูด และสิ่งที่ดีในขณะนี้คือ ว่าถ้าผมไปลงที่นี่ ที่ฉันสามารถทำได้เฉือนจุด สวัสดี PHP การจุด or-- อืม อนุญาต ดีที่คุณจะเห็นมากยิ่งขึ้นในเรื่องนี้ ที่มีปัญหาตั้งเจ็ดถ้าคุณ ยังไม่ได้มีการอนุญาต ปรากฎว่าที่ฉันต้องการ ที่จะดำเนินการคำสั่งนี้ เรียกว่า [? chamod?] สำหรับการเปลี่ยนแปลง mode-- บวก x hello.php ฉันต้อง [ไม่ได้ยิน] นี้อีกหนึ่ง ขั้นตอนที่จะบอกคอมพิวเตอร์ของฉัน ทำให้ปฏิบัติการ hello.php และตอนนี้ดูสิ่งที่ happens-- จุด เฉือน hello.php ก็แค่ทำงาน ผมไม่จำเป็นต้องระบุ ล่ามอีกต่อไป และผมสามารถทำให้มันยิ่งสวย ยังถ้าผมเปลี่ยนชื่อสิ่งนี้ ถ้าผมย้าย hello.php เพียง Hello-- เพื่อแจ้งให้ทราบในด้านบนซ้าย, ชื่อของโปรแกรมคือ แน่นอนตอนนี้ก็สวัสดี ตอนนี้ผมสามารถทำให้มันมีลักษณะเหมือนโปรแกรม C, แม้ว่ามันจะเขียนใน PHP-- ตรงไปตรงมาหรือหมายเลขใด ภาษาอื่น ๆ ดังนั้นการเพิ่มประสิทธิภาพร่อแร่ การทำงานไม่แตกต่างกัน แต่มันก็เป็นเพียงเล็ก ๆ น้อย ๆ อยากรู้อยากเห็น ตอนนี้เพื่อให้คุณสามารถเขียนโปรแกรม ในภาษาใด ๆ และผู้ใช้ไม่ได้ ต้องรู้หรือสนใจสิ่งเหล่านั้น ดีให้ดูที่มากขึ้น ตัวอย่างที่น่าสนใจในขณะนี้ ที่ผมวิปปิ้งขึ้นล่วงหน้า และนี่คือที่เรียกว่า quote.php และก็พร้อมใช้งานออนไลน์ และแจ้งให้ทราบว่ามันเป็น short-- สวย แต่มันเป็นโปรแกรมที่บรรทัดคำสั่งที่ จะไปดูราคาหุ้นขึ้น สำหรับผมซึ่งเป็นจริงที่เกิดขึ้น จะเป็นใกล้ชิดกับปัญหาการตั้งเจ็ด ดังนั้นเรามาดูสิ่งที่ฉันทำ ที่ด้านบนมากฉันมี วงเล็บเปิดเครื่องหมายคำถาม PHP จากนั้นผมได้มีบรรทัดนี้โดยผม ต้องมีไฟล์ที่เรียกว่า functions.php-- เรากำลังจะไปดู เพิ่มเติมเกี่ยวกับเรื่องนี้ในบิต แต่นี้เป็นเช่น C ของ รุ่นของคมชัด ได้แก่ ที่ที่คุณต้องการไป รวมถึงไฟล์อื่น PHP เรียกมันต้องแม้ว่ามันจะ นอกจากนี้ยังมีฟังก์ชั่นรวม และปรากฎว่าเป็น function.php เพียงแค่สิ่งที่ผมเขียนก่อนที่ชั้น ผมวางไว้ในไดเรกทอรีเดียวกันเพราะ ผมอยากที่จะเป็นปัจจัยออกรหัสบางอย่าง ที่เราอาจต้องการใช้ที่อื่น ในขณะที่คุณอาจจะสามารถ สรุปสิ่งที่เกิดขึ้นที่นี่ นี้เป็นเพียงเล็กน้อยที่แตกต่างจาก แต่ C-- ทำในสิ่งที่ผมหมายถึงให้แน่ใจว่าการใช้งานที่เหมาะสม? แปลนี้มากขึ้นในทางเทคนิค ภายใต้สถานการณ์ที่ฉัน am เลิกโปรแกรมหรือออก? ใช่? ผู้ชม: เมื่อคุณไม่ได้ สองอาร์กิวเมนต์บรรทัดคำสั่ง DAVID ลัน: เมื่อฉันไม่ได้มี คำสั่งอาร์กิวเมนต์บรรทัด และจำไว้ว่าหนึ่งในบรรดา ข้อโต้แย้งที่เป็นชื่อของโปรแกรมของตัวเอง และครั้งที่สองเป็นไปได้ คำอื่นฉันพิมพ์หลังจากที่พรอมต์ ดังนั้นเพียงแค่เช่น C นี้ เป็นวิธีการของฉันตรวจสอบ ผู้ใช้ไม่ให้ความร่วมมือและ เรียกใช้โปรแกรมที่ผมตั้งใจ? ขณะนี้มีบางสิ่งบางอย่าง เล็ก ๆ น้อย ๆ ที่แตกต่างกัน กับ C-- แรกของทั้งหมดที่เรา มีเครื่องหมายดอลลาร์นี้ และสิ่งที่เงินดอลลาร์ เข้าสู่ระบบแสดงใน PHP? เพียงแค่ตัวแปร นั่นเป็นเพียง all-- ตัวแปรตามมาด้วย สิ่งที่คุณต้องการที่จะเรียกมันจริง ขอให้สังเกตว่ามีบางสิ่ง หายไปจากโปรแกรม PHP ของฉัน เช่นเดียวกับที่มันหายไปที่ผ่านมา สัปดาห์เมื่อเทียบกับซีซึ่งคืออะไร? ชนิด แต่ยังมีอย่างอื่น มีบางอย่างที่ไม่เป็น function-- หน้าที่หลัก ไม่มีหน้าที่หลักคือ คุณเพียงแค่เริ่มต้นการเขียน รหัสของคุณได้โดยไม่ต้อง กังวลเกี่ยวกับพลธรรม การประชุมเริ่มต้นของการตั้งชื่อบางส่วน ฟังก์ชั่นหลัก ดังนั้นหาเรื่องซีเป็นเพียงจริงๆ ตัวแปรทั่วโลก ที่ล่าม ทำให้มีให้ฉัน ตอนนี้เป็นที่น่าสนใจ ดังนั้นสิ่งที่มองขึ้น หุ้นเครื่องหมายดอลลาร์อยู่ที่ ทิ้งไว้ที่ตัวแปรของฉัน ในด้านขวามือ เห็นได้ชัดว่ามี ฟังก์ชั่นใน PHP ที่เรียกว่าการค้นหาว่า ฉันผ่านบรรทัดคำสั่งล่าสุดของฉัน โต้แย้งสิ่งที่ to-- คำว่า และเราจะเห็นวิธีการนี​​้ การทำงานในช่วงเวลาที่ และแล้วในที่สุดฉันรายงานราคา ผมพิมพ์ออกหนึ่ง ส่วนแบ่งดังกล่าวและเช่น และจำไว้ว่านี้เป็น วิธีการในการ PHP-- วิธี PHP-- ที่คุณไม่ต้องทำ เครื่องหมายดอลลาร์ S อีกต่อไป คุณก็สามารถใช้วงเล็บปีกกา และเสียบในตัวแปรบาง คุณไม่ต้องกังวลเกี่ยวกับ ใช้ printf ในทางเดียวกัน และเป็นกันเมื่อคุณใส่ตัวแปร ภายในเครื่องหมายคำพูดเช่นนี้ คุณกำลังใช้เทคนิคแฟนซี ที่เรียกว่าการแก้ไขตัวแปร มันก็หมายความว่าเสียบตัวแปรที่นี่ และเป็นกันบางท่านที่เข้ามา จากภูมิหลังที่การเขียนโปรแกรมอื่น ๆ คุณไม่สามารถใช้ราคาเดียว รอบสตริงจะทำเช่นนี้ คุณต้องใช้คำพูดสองสำหรับ การแก้ไขตัวแปรในการทำงาน มิฉะนั้นคุณจะแท้จริง เห็นวงเล็บปีกกาเหล่านั้น ดังนั้นสุดท้ายขอไปข้างหน้าและทำงานนี้ ผมขอให้ขั้วของฉันที่ใหญ่กว่าเล็กน้อย ให้ฉันไปข้างหน้าและทำงาน ภายในของไดเรกทอรีอ้างของฉัน [? CDsource?] [? AM?] [? อ้าง?] PHP อ้างจุด PHP, และฉันจะค้นหาบางสิ่งบางอย่าง เช่น GOOG ซึ่งเป็นสัญลักษณ์ของ และเป็นหนึ่งในหุ้นที่มีชื่อใหม่ ตัวอักษร Inc, ค่าใช้จ่าย $ 717 ณ วันนี้ ขวาทั้งหมดถ้าเราต้องการ ทำงานนี้อีกครั้งทุกคน มีราคาหุ้นอีก พวกเขาต้องการที่จะดูได้อย่างไร ไมโครซอฟท์ผมคิดว่าเป็น คนนี้ MSFT-- $ 53 ผมคิดว่าอาจจะเป็นของ Yahoo ที่ และ Facebook ก็คือว่า ดังนั้นสิ่งที่เป็นโปรแกรมการทำเช่นนี้? มายากลที่ดูเหมือนว่าจะได้รับการฝังตัว ในฟังก์ชั่นการค้นหาที่ ดังนั้นลองมาดูอย่างรวดเร็ว มันจะเปิดออกที่ไม่ได้มา กับ PHP ก็อยู่ใน functions.php และเราจะไม่ผ่านไป ในรายละเอียดที่ดี แต่สังเกตเห็นคำผ่าตัดที่นี่ ในบรรทัดที่หก functions.php-- แท้จริงฉันบอกว่าฟังก์ชั่น ผมระบุชื่อของฟังก์ชั่นของฉัน จากนั้นผมก็ระบุใด ๆ ข้อโต้แย้งหรือพารามิเตอร์ ฉันต้องการที่ฟังก์ชั่น take-- ชนิดไม่มี แล้วฉันจะใช้มัน และฉันจะโบกมือของฉัน ในการดำเนินการ เพราะมันเป็นสิทธิค่อนข้างสูง ตอนนี้ แต่เราจะเห็นมันอีกครั้งจริง ในสัปดาห์ปัญหาตั้งเจ็ด แต่ผมสามารถทำความสะอาดนี้ด้วย ฉันยังรวมอยู่ใน รหัสของวันนี้รุ่น ของใบเสนอราคาซึ่งมีไฟล์ PHP จุดไม่มี เพราะสิ่งที่เป็นสมมุติที่ ด้านบนของโปรแกรมที่เรียกว่าเพียงแค่พูด? ที่เรียกว่า shebang-- คาถาลับที่เป็นธรรม ที่บอกว่าหา PHP แล้ว เรียกใช้รหัสของฉันที่นี่ สิทธิทั้งหมดเพื่อที่จะนำ เราไปที่ที่เราทิ้งไป time-- ที่ผ่านมาแม้จะมี ตัวอย่างบางส่วนที่สูงขึ้น คำถามใด ๆ เกี่ยวกับป่านนี้ PHP หรือสิ่งที่เรากำลังทำอะไรอยู่? No-- สิ่งที่ถูกต้อง ใช่? ผู้ชม: ภายใน ไฟล์ HTML ทำ you-- [? คุณจะทำอย่างไร] [? เพียงแค่เรียกว่า?] a [ไม่ได้ยิน] ไฟล์ PHP? DAVID ลัน: เป็นคำถามที่ดี ในบริบทเว็บที่เรากำลัง แท้จริงเกี่ยวกับการที่จะเปลี่ยนไป คุณไม่ได้ใช้สิ่งที่เรียกว่า shebang ที่ด้านบน เพราะ server-- เว็บมักจะเป็น โปรแกรมที่เรียกว่าอาปาเช่หรือ Microsoft IIS, เซิร์ฟเวอร์ข้อมูลทางอินเทอร์เน็ตหรือ จำนวนซอฟต์แวร์เว็บเซิร์ฟเวอร์อื่น ๆ รู้ว่าเมื่อเห็น ไฟล์ PHP จุดว่ามัน ควรใช้ล่ามในนั้น มันไม่ได้ดูที่บรรทัดแรก ดังนั้นเคล็ดลับบรรทัดแรกนี้ เป็นเพียงเมื่อคุณอยู่ เขียนบรรทัดคำสั่ง programs-- ซึ่งเราจะไม่ทำซุปเปอร์บ่อย แต่มันเป็นวิธีการของเราแก้ ตัวอย่าง C ของเราตอนนี้ PHP ของเรา ถ้าอย่างนั้นเราแน่นอนสะพานเชื่อมโลกนี้ จากโลกบรรทัดคำสั่งไปยังเว็บ โดยการทำดังต่อไปนี้ ให้ฉันไปข้างหน้าและวาด มากกว่าที่นี่เพื่อรอสักครู่ ดังนั้นถ้าเรามีเว็บเซิร์ฟเวอร์หรือมากกว่า ถ้าเรามีแล็ปท็อปของฉันมากกว่าที่นี่ ซึ่งผมจะวาดเช่นนี้ และที่นี่เรามี อินเทอร์เน็ตในรูปแบบบาง และแล้วที่นี่เรามี เซิร์ฟเวอร์ใน building-- นี้เป็นวิธีที่อินเทอร์เน็ต works-- และที่นี่ เป็นเซิร์ฟเวอร์ที่มีไฟบางส่วนอาจจะเป็น สิ่งที่จริงที่เกิดขึ้น ระหว่างทั้งสองเชื่อมต่อ? ดังนั้นในอาคารหลังนี้เป็นเว็บเซิร์ฟเวอร์ นั่นเป็นเพียงเครื่องคอมพิวเตอร์ ที่ทำงานในการดำเนินงานบางส่วน system-- อาจจะเป็นซอฟแวร์ฟรีที่เรียกว่า Apache ซึ่ง CS50 IDE กำลังทำงานอยู่ ดังนั้นคุณสามารถจริง คิดว่าของอาคารหลังนี้ ในฐานะที่เป็นอาคารใน ซึ่ง CSt0 IDE จะถูกเก็บไว้ นั่นคือสิ่งที่ทุกท่านมี บัญชีที่ทุกท่าน มีเซิร์ฟเวอร์เว็บของคุณเอง ทำงานทุกท่าน มี URL ที่ไม่ซ้ำกันของคุณเอง ในขณะที่เราเริ่มที่จะหารือ และคุณจะเห็นมากขึ้นในการพีตั้งหก ต่อไปนี้เป็นแล็ปท็อปของฉันอยู่ที่ไหนสักแห่ง อื่นบนอินเทอร์เน็ต และดังนั้นเมื่อผมเข้าเยี่ยมชม URL ที่เป็น ให้ฉันการจราจรทางอินเทอร์เน็ตที่เป็นไป ไปยังเซิร์ฟเวอร์ของเซิร์ฟเวอร์ ได้รับ HTTP request-- เหมือนได้รับ index.html และก็ ตอบกลับไปยังหน้าเว็บที่ เพื่อให้เป็นกระบวนทัศน์ทั่วไป ในขณะที่ทุกอย่างขึ้น จนถึงขณะนี้วันนี้ทุกอย่าง ที่เกิดขึ้นเฉพาะใน ขอบเขตของอาคารหลังนี้ ผมใช้แล็ปท็อปของฉัน แต่ ผมได้รับการเชื่อมต่อกับ CS50 IDE, เพื่อให้ทุกโปรแกรมที่ผมทำงาน เป็นภายในของเซิร์ฟเวอร์ที่ตัวเอง แต่ตอนนี้ขอเริ่มต้นการนำ PHP ในการเขียนโปรแกรมบางอย่างที่เกิดขึ้นจริง จะได้รับเพิ่มขึ้นจากเว็บเซิร์ฟเวอร์ และการทำเช่นนี้ฉันจะไป เป็นทั้งกลุ่มตัวอย่าง ที่แนะนำความคิดนี้ที่นี่ ดังนั้นนี้เป็นชนิดของวิธีที่จินตนาการของ อธิบายกระบวนทัศน์การเขียนโปรแกรม และในความเป็นจริงในขณะที่คุณออกจาก CS50 หรือทำงานในโครงการสุดท้าย หรือใช้เวลาบางส่วนตาม ในชั้นเรียนคุณจะเริ่มต้น จะเห็นว่า world-- โดยเฉพาะอย่างยิ่งมีการเติบโตขึ้น กับภาษาเช่น C ที่มี level-- ต่ำสุด ทราบว่ามีดีกว่า วิธีการเขียนซอฟแวร์ มีบางอย่างที่ รูปแบบที่คุณสามารถปฏิบัติตาม วิธีการบางอย่างในการจัดการไฟล์ของคุณ และวิธีการของการตั้งชื่อฟังก์ชั่นของคุณ เพื่อให้เรื่องยาวสั้น โลกได้เกิดขึ้น มีทั้งกลุ่มของคำย่อ และชื่อหาวิธีการในการเขียนโปรแกรม เหล่านี้เป็นเพียงเทคนิคที่คุณอาจจะใช้ และหนึ่งในนั้นเรียกว่า MVC, สำหรับรุ่นดูควบคุม และนี่เป็นเพียงสำหรับ ในขณะนี้มีความซับซ้อนมากเกินไป วิธีที่บอกว่าคุณควรจะออกวาง เว็บไซต์ PHP ที่ใช้ในกรณีของเรา คุณจะทำอย่างไรในการจัดระเบียบไฟล์ของคุณ วิธีที่คุณจัดระเบียบตรรกะของคุณ ในทางที่ทำให้มันง่ายขึ้นไป เขียนเว็บไซต์ที่มีความซับซ้อนมากขึ้น? และแน่นอนเราจะได้อย่างรวดเร็ว ได้รับมีกับพีตั้งเจ็ด ดังนั้นในโลกของ MVC ที่คุณกำลังจะ จะเห็นว่าเราสามารถรหัสทั่วไป จะมีลักษณะเป็นรูปแบบรหัสอย่างใดอย่างหนึ่ง หรือรหัสควบคุมหรือรหัสมุมมอง และฉันกำลังจะไป oversimplify เป็น follows-- ตัวควบคุมเป็น สมองของโปรแกรมของคุณ มันคือสิ่งที่ทุก ตรรกะที่น่าสนใจเกิดขึ้น ดังนั้นทุกสิ่งที่เราได้รับ เขียนป่านนี้ในชั้นเรียน เป็นชนิดเช่นตัวควบคุม code-- มันควบคุม โปรแกรมของคุณลูปของคุณของคุณ เงื่อนไขการทำงานของคุณ และตัวแปรและสิ่งที่ ชมตอนนี้เป็นไปได้น้อย ที่เห็นได้ชัดมากขึ้นในโลกของเว็บ มุมมองเป็นความสวยงาม ของเว็บไซต์ของคุณ มันเป็นสิ่งที่ผู้ใช้ sees-- ภาพ ตาราง HTM​​L, แท็กและทั้งหมด การที่ทั้งหมดของความงามนุ่ม สิ่งที่ไม่ยากที่จะเขียน แต่เป็นเพียงสิ่งที่คุณกำลังสร้าง, เป็นมุมมองที่เรียกว่าความสวยงาม และรูปแบบในที่สุดที่เกิดขึ้น จะเป็นฐานข้อมูลที่ stuff-- เราจะเริ่มต้นการดำน้ำในทุก มากกว่าพุธนี้ ดังนั้นการควบคุมเป็นตรรกะ มุมมองเป็นสิ่งที่สวยงาม และรูปแบบที่เป็นไปได้ที่ เราจัดเก็บข้อมูลที่แท้จริงของเรา ดังนั้นเรามาดูที่นี้เป็นรูปธรรมมากขึ้น กับตัวอย่างต่อไปนี้ ฉันจะไปลงในไดเรกทอรีของฉันที่นี่ แหล่งที่มาของวันนี้ code-- ทั้งหมดที่ พร้อมใช้งานออนไลน์ และฉันจะไปเป็นรุ่นที่เป็นศูนย์ และนี่ is-- ขอเรียกมันว่า รุ่นที่เป็นศูนย์ของเว็บไซต์ของ CS50 มีไม่มากที่นี่เลย มันเป็นหน้าเว็บที่ง่ายมากที่ อาจจะใช้สิ่งที่ HTML tags-- เพียง คาดเดาจากตัวอย่างที่ผ่านมา? นั่นอะไร? H1-- อาจจะใหญ่หนา ชื่อที่โลโก้ด้านบนขึ้น CS50 และสิ่งอื่นที่เล่น? ใช่? ผู้ชม: รายชื่อเรียงลำดับ DAVID ลัน: เรียงลำดับ list-- ดังนั้น แท็ก UL และบางทีคู่ของแท็ก LI และถ้าคุณจำไม่ได้เหล่านี้ มันตรงไปตรงมาไม่ได้เรื่อง เหล่านี้มีการจัดเรียงของปุย รายละเอียดการดำเนินงานของ HTM​​L ที่คุณได้อย่างรวดเร็วมองขึ้น และคุณกลับมาในแบบของคุณ เราจะมุ่งเน้นที่การเขียนโปรแกรม ความคิดที่มีชิ้น juicier ดังนั้นขอเพียงแค่ใช้เวลาที่รวดเร็ว ดู HTML-- และแน่นอน ถ้าผมเปิดมุมมองที่มาที่นี่ yup, นั่นคือสิ่งที่เกิดขึ้นที่นี่ มีแท็ก UL ที่ซ้อนกันอยู่ภายในที่จะแท็ก LI แล้วฉันยืม URL ไป ของหลักสูตรที่เกิดขึ้นจริงที่นี่ จากนั้นใน lectures.php เห็นได้ชัดคือ หน้าอื่นที่สร้างแบบไดนามิก ที่จะต้องขอ see-- อา สองสัปดาห์แรกของการบรรยาย ดังนั้นสัปดาห์ที่ศูนย์และหนึ่งสัปดาห์ให้ของ ดู this-- ถ้าผมดูแหล่งที่มาหน้า นอกจากนี้ยังง่ายสุด เหล่านี้จะนำไปสู่​​สองหน้า เรียกว่า week0.php และ week1.php เพื่อพิจารณาในขณะนี้สิ่งที่เกิดขึ้น เมื่อฉันคลิกที่ week0.php แล็ปท็อปของฉัน คือการทำให้การขอ week0.php เว็บเซิร์ฟเวอร์ a.k.a. , CS50 IDE, ได้รับซองจดหมายที่เสมือน มันเห็นข้อความ เหมือนได้รับ week0.php มันก็จะตีความแฟ้มด้านบน ลงล่างซ้ายไป right-- ไฟล์ เรียกว่า week0.php-- และ คายออกผล ดังนั้นภายในของไฟล์นี้, week0.php ต้อง ตรรกะควบคุมที่มีการสร้าง HTML นี้และเราจะเห็นทันทีว่า แต่ตอนนี้ให้ฉันคลิกที่สัปดาห์ที่ศูนย์ และตอนนี้เรามีในวันพุธและวันศุกร์ และตอนนี้เรามีภาพนิ่ง อย่างช้า ๆ จากสัปดาห์ที่ศูนย์ และคุณอาจจะจำได้ จากทางกลับเมื่อ ดังนั้นนั่นคือทั้งหมดที่เว็บไซต์นี้จะทำ ดังนั้นขอพิจารณาวิธีการที่จะทำเช่นนี้ ฉันจะไปกลับเข้ามาใน รหัสแหล่งที่มาที่นี่ใน CS50 IDE, และฉันจะเปิด index.php ที่ด้านบนของไฟล์นี้ เป็นพวงของการแสดงความคิดเห็น และจากนั้นในช่วงกลางของไฟล์นี้, มัน จะเปิดออกจะไม่มีโค้ด PHP ใด ๆ เพราะถ้าคุณไม่ได้มีการใด ๆ วงเล็บเปิดเครื่องหมายคำถามแท็ก PHP, คุณมีอิสระที่จะเพียงแค่ใส่ HTML เพราะสิ่งที่ของ PHP ควรจะทำล่าม คือเมื่อมันอ่าน file-- นี้ บนลงล่างซ้ายไป right-- มันตีความรหัสที่เห็นระหว่าง วงเล็บมุมบรรดาเครื่องหมายคำถาม และสิ่งอื่นที่มันไม่ได้ จำได้ว่าเป็น PHP, มันก็ถ่มน้ำลายออกมา และ HTML เป็นหนึ่งในสิ่งที่ มันก็จะคายออก ดังนั้นไฟล์นี้อาจจะมี ถูกเรียกว่า index.html, แต่ฉันตั้งชื่อทุกอย่าง จุด PHP เป็นหินก้าว Lectures.php-- ในทำนองเดียวกัน underwhelming ก็เพียงบาง HTM​​L Week0.php คล้าย HTML เพียงบางส่วน แต่ตอนนี้ขอใส่บน หมวกวิศวกรรมสุภาษิต และพิจารณาวิธีการที่เราสามารถปรับปรุงนี้ มันไม่ยากที่จะทำเช่นนี้ แต่ผมชนิด ของเงินทองเข้ามาคัดลอกและวาง และในความเป็นจริงถ้าผมทำสองสัปดาห์คุณ รู้ว่าสิ่งที่ฉันอาจจะทำอย่างไร ฉันจะไป week1.php ผม จะเน้นทุกอย่าง ฉันจะคัดลอกวาง เป็นไฟล์ใหม่ที่เรียกว่า week2.php, ปรับแต่ง URL ที่บางและจะอยู่ในทางของฉัน ดังนั้นขึ้นอยู่กับสิ่งที่เราได้ เห็นใน C แล้ว นี้ไม่ได้รู้สึกขวาหวังว่า คัดลอกวางไม่ค่อยโซลูชั่นที่เหมาะสม ดังนั้นสิ่งที่เราสามารถเริ่มต้น จะทำอย่างไรที่จะปรับปรุงนี้หรือไม่? โอกาสอยู่ที่ไหน สำหรับการออกแบบที่ดีขึ้นหรือไม่ โดยทุกครั้งที่ผมได้รับการ แปดสัปดาห์ก็จะ จะเป็นที่น่ารำคาญจริงๆ ถ้าผมต้องการที่จะเปลี่ยน ตัวอักษรของทุกคน หน้าเว็บของฉันหรือถ้าฉันต้องการ การเปลี่ยนแปลงโครงสร้างของรูปแบบที่ ดังนั้นเป็นโอกาสที่ สำหรับการออกแบบที่ดีขึ้นหรือไม่ ดีขอพิจารณาสิ่งที่เป็น ที่ใช้ร่วมกันในทุกไฟล์เหล่านี้ นี่คือหนึ่งสัปดาห์นี่เป็นสัปดาห์ ศูนย์นี่ lectures.php, นี่คือสิ่งที่เป็น index.php-- เดียวกันและ สิ่งที่แตกต่างกันประมาณพูด ในแต่ละไฟล์เหล่านี้หรือไม่ ใช่? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: ตกลงที่ดี เพื่อให้มีรูปแบบที่แน่นอนโดย ทุกครั้งที่ฉันเลือกฉันบรรยาย ฉันควรจะสร้าง มองหน้าคล้ายกันมาก ดังนั้นบางทีฉันสามารถใช้ประโยชน์จาก ความจริงที่ว่าจริงๆ เราจงใจตัวเลข จัดทำดัชนี lectures-- ของเรา ถ้าฉันสามารถใส่ได้มากยิ่งขึ้น คำในคำตอบของคุณ และสิ่งที่เป็นสิ่งเดียวจริงๆ ที่เปลี่ยนแปลงระหว่างสัปดาห์ one-- และแจ้งให้เราเลื่อนลงมาจึงเป็น ประมาณในกิจกรรมดังนั้นเล็กน้อยเดียวกัน ดังนั้นนี่คือสัปดาห์ที่ศูนย์ ประมาณที่ด้านบน นี่คือหนึ่งสัปดาห์สัปดาห์ ศูนย์สัปดาห์หนึ่งสัปดาห์เป็นศูนย์ ตกลงแท้จริงถ้าคุณรู้ว่า ไม่มีโปรแกรมใด ๆ ตอนนี้เหมือนเป็นเพียงแค่ รูปแบบเกมจับคู่ ดังนั้นสิ่งที่แตกต่างกันอย่างไร ใช่? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: ดีดังนั้นชื่อ มีการเปลี่ยนแปลงเคยดังนั้นเล็กน้อย ศูนย์เป็นไปของหลักสูตรอย่างใดอย่างหนึ่ง สิ่งเดียวกันที่เกิดขึ้นในแท็ก H1 และเราไม่ได้ค่อนข้างเห็นว่ามันเป็นได้อย่างง่ายดาย เพราะ URL ที่เป็นเพียงเล็กน้อยยาว แต่ URL เหล่านั้นมีการเปลี่ยนแปลงเล็กน้อย แต่สิ่งที่ไม่เปลี่ยนคือผมกล้า บอกว่าส่วนใหญ่ของเนื้อหาของ Page-- ที่ แท็กเหมือนกันหัวเป็น เดียวกันชื่อที่เกือบจะเหมือนกัน ร่างกายจะเหมือนกันและ เกือบทุกอย่างอื่น จะเหมือนกันยกเว้น ผู้ปรับแต่งเล็ก ๆ น้อย ๆ ดังนั้นวิธีที่เราสามารถไปเกี่ยวกับ แฟบางส่วนของเรื่องนี้หรือ ดีให้ฉันเสนอว่า ที่ในรุ่นถัดไป ดังนั้นที่นี่เป็นหนึ่งในรุ่นผมมีแน่นอน ไฟล์เดียวกันรวมทั้งคู่ของคนอื่น ๆ นี่คือ index.php-- และแม้ว่า คุณไม่เคยเห็นมาก่อน PHP, สิ่งที่ฉันอาจจะทำเพื่อแก้ปัญหานี้ problem-- ขึ้นอยู่กับสิ่งที่คุณเห็นที่นี่? ใช่ก็คือค​​วามมุ่งมั่นเล็กน้อย? ไม่ได้หรือไม่ ใช่ไปใน ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: อ๋อ ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: ฉันต้องการให้คุณ พูดเพียงเล็ก ๆ น้อย ๆ ดัง ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: ตกลงที่ดี และผมว่ามันเป็น think-- ยากที่จะได้ยิน you-- แต่ฉัน คิดว่าสิ่งที่คุณจะได้รับที่เป็นที่ แท็กที่เป็นเรื่องปกติขึ้นด้านบน และแท็กที่เป็นเรื่องปกติท​​ี่ ด้านล่างขณะนี้ได้มีปัจจัยออก หรือผลักไสให้สิ่งที่ไฟล์? header.php และ footer.php-- และเรากำลังจะ ที่จะทำให้การปรับแต่งบางอย่างเพื่อ ความห่วงใยที่คุณเพิ่ง ยกขึ้นเกี่ยวกับการเปลี่ยนแปลงตัวเลขสำหรับ ตัวอย่างเช่นถ้าผมได้ยินคุณได้อย่างถูกต้อง แต่ที่น่าจะเป็นส่วนสำคัญของมัน ถ้ามีเป็นจำนวนมาก ซ้ำซ้อนที่ด้านบนของหน้า และเป็นจำนวนมาก ซ้ำซ้อนที่ด้านล่าง ขอเพียงแค่ไฮไลท์ที่แท้จริง และตัดเนื้อหาที่ออก วางไว้ใน file-- แยกต่างหากเช่นเดียวกับ ความคิดของ CSS ที่เราเอาเรื่องออก ความงามที่คล้ายกันมากใส่ ในไฟล์ PHP จุดที่แยกจากกัน ต้องใช้ mechanism-- ที่ เป็นเช่น C include-- ที่คมชัด เป็นหลักเหมือนว่าไป คว้าเนื้อหาของ header.php ที่ คัดลอกและวางพวกเขาที่นี่ แต่สิ่งนี้หมายความว่าในขณะนี้ index.php ผมมีทั้งสองเส้น ใน lectures.php ฉันยัง มีทั้งสองเส้น ใน week0.php ฉันยัง มีทั้งสองเส้น ดังนั้นตอนนี้ถ้าผมต้องการที่จะเปลี่ยน ชื่อของทุกหน้าของฉัน หรือฉันต้องการที่จะเปลี่ยน โครงสร้างพื้นฐาน ฉันสามารถเปลี่ยนได้ในขณะนี้เพียงที่เดียว หรือสองส่วนหัวและส่วนท้าย places--, ตามลำดับ ตอนนี้เริ่มต้นของรหัสที่จะมอง เล็ก ๆ น้อย ๆ ที่เป็นความลับมากขึ้นใช่มั้ย? แต่ถ้าคุณคิดเกี่ยวกับสิ่งที่หน้า เป็น doing-- ถ้าฉันขอ week0.php, เช่นเดียวกับในการวาดภาพมากกว่า here-- week0.php เมื่อมีการร้องขอ นั่นหมายความว่าอย่างไร? แท้จริงแฟ้มนี้อยู่ การร้องขอจากเบราว์เซอร์ เว็บ server-- a.k.a. CS50 ID-- คว้านี้ ไฟล์ week0.php และอ่าน มันบนลงล่างซ้ายไปขวา On line ที่หนึ่งก็พบทันที วงเล็บเปิดเครื่องหมายคำถาม PHP ต้อง ส่วนหัวจุด PHP, และอื่น ๆ สิ่งที่ล่าม PHP does-- ที่สร้างขึ้นในเว็บ เซิร์ฟเวอร์เพราะเรากำหนดไว้ล่วงหน้า มัน you-- ไปโดยอัตโนมัติ เข้า header.php สำเนาเนื้อหา วางพวกเขาที่นี่ แต่แล้วการเผชิญหน้าล่​​าม เครื่องหมายคำถามวงเล็บปิด จึงทำทุกอย่างที่คิด ตอนนี้ก็เพียงสุ่มสี่สุ่มห้าถ่มน้ำลาย ออกเส้นสองผ่านเจ็ด เพราะมันเป็นเพียง HTM​​L ดิบ ได้รับสายแปดและไม่ว่า มายากลเดียวกัน again-- เปิดแฟ้ม โลภเนื้อหาและ ต้องใช้พวกเขาหรือพวกเขาวาง ถูกต้องแล้วหรือมี แต่ฉันก็พูดพาดพิงถึงข้อผิดพลาด นี้เป็นขั้นตอนบางส่วนย้อนกลับ เพราะถ้าเรามองใน header.php, ผมเคยตัดชนิดของมุม คุณลักษณะสิ่งที่ฉันไม่ยอมแพ้ในการสั่งซื้อ จะได้รับการพิสูจน์การออกแบบที่ดีขึ้นหรือไม่ ใช่? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: ใช่ฉันชนิด การตัดมุมขี้ปะติ๋ว คุณชี้ให้เห็นว่าสิ่งที่เปลี่ยนแปลง เป็นชื่อที่ตัวเลขในชื่อ และจำนวนในของ H1 ดังนั้นวิธีการแก้ปัญหาของผมก็คือตกลง ขอเพียงแค่เปลี่ยนชื่อหน้า และไม่ได้จัดการกับที่ ปัญหาใด ๆ เพื่อให้เป็นบางส่วน ก้าวไปข้างหลังเพื่อตรวจสอบว่า แต่สิ่งที่เป็นที่น่าสังเกตที่นี่ คือสิ่งที่ฉันได้ทำ เป็นปัจจัยอย่างอื่น ออกจากทุกสิ่งที่พบบ่อย และใน footer.php แจ้งให้ทราบผมเอาเรื่อง จากทุกที่แม้จะน้อยกว่า สิ่งที่พบบ่อย ดังนั้นผมจึงจำเป็นต้องอย่างใดขณะนี้จะสามารถ ใช้ขั้นตอนไปข้างหน้าอีกและแก้ไข ว่าปัญหาชื่อ ดังนั้นขอให้ทำอย่างนั้น ให้ฉันไปเป็นรุ่นที่สองของฉัน ที่นี่ซึ่งอีกครั้งมีไฟล์เดียวกัน ยกเว้นหนึ่งนอกจากนี้ใหม่ และมันก็เล็ก ๆ น้อย ๆ อย่างละเอียด แต่ให้ดูว่าเรา สามารถหยอกล้อออกจากกันสิ่งที่เกิดขึ้นที่นี่ ดังนั้นแทนที่จะต้อง header.php และ footer.php, ฉันดูเหมือนจะถูกต้องเพียงอย่างใดอย่างหนึ่ง เรียกว่า file-- แน่นอน helpers.php และแจ้งให้เรากำหนดในขณะนี้ สิ่งที่อยู่ภายในของ helpers.php เป็นเพียงพวงของฟังก์ชั่น ที่ผมเขียนเช่นเดียวกับก่อนที่จะ แต่ผมเรียกมันว่า helpers.php ตอนนี้เห็นได้ชัดว่าใน สายสามและ 10 ผม เรียกสอง functions-- ทำให้ส่วนหัวทำให้ส่วนท้าย ผู้ที่ไม่ได้มาด้วย PHP ผมเขียนเหล่านั้นด้วยตัวเอง และผมใส่ไว้ใน helpers.php ตอนนี้เราได้เห็นเพียงรูปแบบนี้ ครั้งเดียวและมันเป็นช่วงสั้น ๆ สุด แต่ตอนนี้เห็นได้ชัดคือการโต้แย้ง ที่จะทำให้ส่วนหัวของฟังก์ชั่น ฉันจะรู้ว่าทำไม? ดีที่นี่เป็นวงเล็บปิด ที่นี่เป็นวงเล็บเปิด และแน่นอนเช่นเดียวกับในซี อะไรระหว่างวงเล็บเหล่านั้น เป็น input-- หรือ อาร์กิวเมนต์ฟังก์ชั่น เป็นชนิดข้อมูลอะไรของการโต้แย้งนี้ ขึ้นอยู่กับสิ่งที่ฉันได้เน้น? ทำอะไรวงเล็บเหล่านั้น ระบุขึ้นอยู่กับสัปดาห์ที่ผ่านมา? ใช่มัน array-- โดยเฉพาะอาเรย์ และรูปแบบนี้เป็นที่ยอมรับ เป็นขี้ขลาดน้อย แต่นี่เป็นเพียงการส่งผ่าน ในคู่ค่าที่สำคัญอย่างหนึ่ง ที่สำคัญคือการอ้างนำมาอ้าง ชื่อและค่าเป็น CS50 ถ้าเราได้ทำนี้ ใน C ก็อาจแทน ลักษณะเช่นนี้ เพียงแค่นำมาอ้างคำพูด CS50-- หรือที่จริงมันจะหยิก วงเล็บหรือสิ่งที่ต้องการใน C, ที่สำคัญคือศูนย์ และความคุ้มค่าเป็น CS50 แต่อีกครั้งใน PHP แม้ว่า ไวยากรณ์คืออีกเล็ก ๆ น้อย ๆ ที่แปลก จะช่วยให้คุณผ่านใน คำแทนตัวเลข กุญแจที่จะเชื่อมโยงที่มีค่า ดังนั้นสิ่งที่จะทั้งหมดนี้หมายความว่าอย่างไร ถ้าฉันไปเป็น helpers.php, ให้ดูที่ฟังก์ชั่นนี้ renderHeader.php ค่อนข้าง renderHeader เป็นหน้าที่ของฉัน และฉันรู้ว่าเพราะฉันเห็น คำหลักที่ฟังก์ชั่นที่นี่ นี่คือใหม่จาก C-- มันเห็นได้ชัดว่า ใช้อาร์กิวเมนต์เรียก data-- แต่ฉันจะได้นี้เรียกว่า อะไร แต่ผมเรียกมันว่าข้อมูล เพียงเพื่อจะเป็น clean-- น้อยและ ใช้เวลาเพียงแค่การคาดเดาโดยเฉพาะอย่างยิ่ง ถ้าคุณได้ในโปรแกรมอื่น ๆ ภาษาระดับที่สูงขึ้นก่อนที่จะมีอะไรบางอย่าง ดังกล่าวข้างต้นซีแนวคิด อะไรวงเล็บเปิดเท่ากัน วงเล็บเหลี่ยมอาจจะหมายความว่าอย่างไร หรือสิ่งที่มันอาจหมายถึงอะไร? เราไม่เคยเห็นนี้ใน C. ใช่? อาร์เรย์ที่ว่างเปล่า โดยเฉพาะอย่างนี้หมายความว่าหาก ผู้ใช้ไม่ได้เรียก renderHeader มีการโต้เถียงฉันยังคง ที่จะมีการโต้แย้งข้อมูลที่เรียกว่าเป็น แต่ค่าเริ่มต้นของมันคือ จะเป็นอาร์เรย์ที่ว่างเปล่า ดังนั้นมันจึงเป็นเพียงความสะดวกสบายที่ดี ฉันจะได้ไม่ต้องตะโกนใส่หน้าผู้ใช้ หรือว่าคุณใช้ฟังก์ชั่นของฉันที่ไม่ถูกต้อง ฉันก็สามารถให้ผู้ใช้เริ่มต้น ค่าถ้าฉันไม่สนใจโดยเฉพาะอย่างยิ่ง ตอนนี้ฟังก์ชั่นนี้ผม ไปคลื่นมือของฉันที่ แต่ฟังก์ชั่นนี้จะช่วยให้สารสกัดจาก เราจะผ่านตัวแปรเหล่านี้ในข้อมูล เข้า header.php ในทางต่อไป และเป็นชิ้นส่วนที่ผ่านมา ผมคิดว่าของไวยากรณ์ขี้ขลาด นี่เป็นรุ่นใหม่ของฉัน header.php-- ของมัน ใช้ในการพูดอย่างแท้จริงเปิด ชื่อวงเล็บ CS50 และที่มัน และสิ่งเดียวกันของ H1 ตอนนี้ก็เห็นได้ชัดว่า บางสิ่งบางอย่างขี้ขลาดสวย และแจ้งให้เราลดความซับซ้อนนี้ สำหรับช่วงเวลาดังต่อไปนี้ นี่คือสิ่งที่ฉันได้ เปลี่ยนชื่อของฉันจะ แต่ก็เริ่มเล็ก ๆ น้อย ๆ ที่น่าเกลียด วงเล็บเปิดอย่างต่อเนื่องกับ PHP, แล้วใช้ฟังก์ชั่นการพิมพ์ แต่กลับกลายเป็นว่า PHP มีจดชวเลข สัญกรณ์นี้ซึ่งเป็นเพียง เครื่องหมายเท่ากับซึ​​่งเป็นเทคนิค ฟังก์ชั่นที่เรียกว่าสะท้อนแทนการพิมพ์ แต่มันก็เป็นสิ่งเดียวกันได้อย่างมีประสิทธิภาพ ที่เพียงแค่ดูดีกว่า มันเป็นเพียงประโยค น้ำตาลถ้าคุณจะ ที่ทำให้รหัสของฉันดูดีขึ้นเล็กน้อย แต่มันจะเปิดออกและ เราจะเห็นนี้อีกครั้ง อีกไม่นานเราจะต้องเรียกสิ่งนี้ annoyingly ฟังก์ชั่นที่เรียกว่ายาว ตัวอักษรพิเศษ HTML ใน PHP, เพราะมันจะเปิดออก มีปัจจัยการผลิตบางอย่าง ว่าผู้ใช้อาจจะให้เรา หรือที่ผู้ใช้อาจให้เรา ที่กำลังจะทำลายเว็บไซต์ของเรา แต่เราจะเห็นว่าต่อไป สัปดาห์ด้วย JavaScript แต่ตอนนี้เพิ่งรู้ว่า แฟ้มนี้ headers.php เพียง ใช้ชื่อที่ ฉันผ่านมันทำให้ แน่ใจว่ามันปลอดภัยที่จะได้รับการฉีดเข้าไปในเว็บ หน้าและมันคายมันออกมาเป็นชื่อของฉัน และ H1 ของฉัน ดังนั้นถ้าผมไปลงในรุ่นนี้ตอนนี้ แจ้งให้ทราบว่ามีการบรรยายชื่อกลับ สัปดาห์ที่ศูนย์มีชื่อกลับมาและ แน่นอน, HTML ที่ฉันสร้าง เป็นเหมือนสิ่งที่รุ่นแรกของฉัน was-- ยกเว้นช่องว่างของฉัน เพราะผมได้เริ่มต้นการจัดรูปแบบ รหัสของฉันแตกต่างกันเล็กน้อย แต่ฉันสร้างขึ้นทั้งหมด รหัสฉันดูแลเกี่ยวกับ เพื่อให้ฉันหยุด เพียงแค่ช่วงเวลาและดู หากมีคำถามใด ๆ หรือความสับสนเราได้สร้าง สิทธิทั้งหมดเพื่อให้บิด ยากเล็ก ๆ น้อย ๆ ที่นี่ เพื่อดูว่ามีการ โอกาสในการปรับปรุง Helpers.php นี้ยังมี ฟังก์ชั่นที่เรียกว่า renderFooter และสิ่งที่น่าสังเกตเกี่ยวกับ renderHeader และ renderFooter? และอีกครั้งสำหรับวัตถุประสงค์ของว​​ันนี้รู้ว่า สารสกัดจากฟังก์ชั่นที่เป็นเพียง ทางของฉันของการขัดแย้งผ่าน เข้า header.php และ footer.php ขออภัย? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: ใช่ฉันเท่านั้น ต้องเปลี่ยนสาย ดังนั้นแท้จริงเราได้มุ่งมั่นบาป การคัดลอกและวางอีกครั้ง มันไม่ได้เป็นจำนวนมาก ของสาย แต่มา on-- ถ้าฉันคัดลอกและวางทุกอย่าง เพียงแค่มีการเปลี่ยนแปลงเล็ก ๆ น้อย ๆ คำหนึ่ง และหนึ่งคำเล็ก ๆ ที่อลันชี้ ออกเป็นส่วนท้ายของที่นี่เมื่อเทียบกับส่วนหัวที่นี่ มิฉะนั้นทุกอย่าง เหมือนกันยกเว้นสำหรับ แน่นอนชื่อของฟังก์ชั่น ดังนั้นสิ่งที่เราสามารถทำดีกว่า? ดีให้ฉันเปิดรุ่นนี้ ที่นี่โดยใน helpers.php, ทำไมฉันจึงไม่เพียงได้รับ เล็ก ๆ น้อย ๆ อย่างชาญฉลาดเกี่ยวกับเรื่องนี้? เขียนเล็กน้อยที่ซับซ้อนมากขึ้น รหัส แต่เรียกว่าทำให้? ดังนั้นสิ่งที่เราได้เปลี่ยนแปลงพื้นฐาน? มันต้องใช้เวลาโต้เถียง now-- สองข้อโต้แย้งข้อมูลที่ยังคง และแล้วสิ่งที่เป็นครั้งแรก ชื่ออาจจะถูกนำมาใช้สำหรับ ขึ้นอยู่กับสิ่งที่คุณกำลังอ่านที่นี่? แม้ว่าบางส่วนของไวยากรณ์ยังใหม่ ดอลล่าคืออะไรแม่แบบการเข้าสู่ระบบ? ขออภัย? ผู้ชม: ส่วนหัวหรือส่วนท้าย DAVID ลัน: ส่วนหัวหรือส่วนท้าย ดังนั้นเห็นได้ชัดว่าผมตัดสินใจว่าถ้า สิ่งเดียวที่มีการเปลี่ยนแปลง คือสิ่งที่แม่แบบที่ฉันต้องการ เพื่อ print-- และแม่แบบ ผมหมายถึงนี้เป็นพิมพ์เขียวสำหรับ รหัสที่ฉันต้องการที่จะส่งออก แต่ฉันต้องการที่จะเสียบในบาง values​​-- ดังนั้นถ้ามันส่วนหัวเท่านั้น หรือส่วนท้ายทำไมฉันจึงไม่ parameterize และเรียกว่าอาร์กิวเมนต์ดอลลาร์เข้าสู่ระบบ แม่แบบ? และแล้วนี้ไวยากรณ์ขี้ขลาดช่วยให้ฉัน เพื่อสร้างเส้นทางในตัวแปรที่นี่ ดังนั้นเงินดอลลาร์เส้นทางการเข้าสู่ระบบเป็นตัวแปร อะไรรูปแบบนี้ ทำถ้าคุณคุ้นเคย? ใช่? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: แน่นอน ถ้าแม่แบบอ้างนำมาอ้าง, ส่วนหัวหรือถ้าแม่แบบคือ อ้างนำมาอ้างท้ายบรรทัดมีที่ ที่ผมได้เน้นสายแปด เป็นเพียงการใช้ชื่อว่าเหมือนหัว และเชื่อมโยงกับ PHP จุด ดังนั้นเราจึงไม่ได้มีการดำเนินการนี​​้ ผู้ประกอบการใน C. จุดนี้เป็น สิ่งที่น่าตื่นตาตื่นใจใน PHP-- ถ้าคุณ คุ้นเคยกับ JavaScript หรือ Java คุณสามารถใช้บวก เข้าสู่ระบบที่จะทำเรียงต่อกัน ใน C มันเป็นความเจ็บปวดใน neck-- ที่ และฉันขอโทษดังนั้นในพีตั้งหก คุณกำลังจะต้องทำ this-- มันเป็นอาการปวดคอ เพื่อเชื่อมสาย ทำไม? ดีเพราะถ้าคุณได้มี สตริงที่นี้ยาว และสตริงที่ยาวนี้อีก คุณไม่สามารถเพียงแค่เสียบเข้าด้วยกัน อะไรคือสิ่งที่คุณแทนต้องทำใน C? ใช่? ผู้ชม: [ไม่ได้ยิน] DAVID ลัน: คุณต้อง malloc หน่วยความจำหรือใช้อาร์เรย์ในกอง และคุณจริงต้อง ทำให้อาร์เรย์ที่ใหญ่พอ เพื่อให้พอดีกับนี้บวกนี้ เครื่องหมายบวกเป็นศูนย์ แล้วเชื่อมเข้าด้วยกันโดยใช้ ผัดแมวหรือด้วยตนเองสำหรับห่วง หรือจำนวนของเทคนิคใด ๆ และเราจะแสดงคู่ในพีตั้งหก มันเจ็บคอ และนี่คือสิ่งที่ฉันอย่างแท้จริงหมายถึงเกี่ยวกับ นี้เมื่อเทียบกับ this-- เช่น C เมื่อเทียบกับ PHP คุณเพียงแค่ได้รับมากขึ้น ฟังก์ชั่นฟรี เพื่อให้คุณสามารถมุ่งเน้น นึกคิดสนุก เป็นส่วนหนึ่งของการเข้ารหัสที่ โครงการที่คุณต้องการที่จะแก้ปัญหา มากกว่าข้อปลีกย่อยในระดับต่ำ ดังนั้นเพียงแค่นี้หรือสร้าง header.php footer.php ขึ้นอยู่กับที่หนึ่งที่ผมเรียกว่า และแน่นอนถ้าฉันไป เข้า index.php แจ้งให้ทราบล่วงหน้า ทั้งหมดที่ changed-- แทน โทรทำให้หัวหรือทำให้ส่วนท้าย ฉันโทรทำให้ตามด้วย ชื่อของแม่แบบที่ฉันต้องการจะทำ และคุณจะเห็นนี้มากเกินไป ปัญหาตั้งเจ็ด โดยเราช่วยให้คุณสามารถใช้ ฟังก์ชั่นเดียวกันเพื่อให้อัดแน่น และอัดแน่นของหน้าเว็บที่แตกต่างกัน ดังนั้นแทนที่จะอาศัยอยู่มากเกินไป มากขึ้นใน details-- เหล่านั้น ซึ่งคุณจะเห็นอีกครั้งใน ชุดปัญหา seven-- ให้ดู ที่ตอนนี้จุดเริ่มต้นของการแก้ปัญหา เป็นปัญหาที่น่าสนใจมากขึ้น ป่านนี้ไม่มีอะไรเราได้ ทำมีการบันทึกข้อมูล ในความเป็นจริงเป็นครั้งเดียวที่เราเคยได้บันทึกไว้ บางสิ่งบางอย่างที่เราเคยทำในชั้นนี้ คือเมื่อเรามีการสาธิตง่ายมากสักครู่ กลับมาโดยที่เราใช้ไฟล์ IO ใน C, และฉันคิดว่าฉันพิมพ์ในนามของเราและ ชื่อฮันนาห์และชื่อมาเรีย หรืออาจจะเป็นชื่อของแอนดี้และ แล้วเราบันทึกไว้ file-- CSV คั่นด้วยเครื่องหมายจุลภาคยื่นค่า และเราใช้ fopen-- ผมคิดว่า เราใช้ fprintf เท่าที่ผมจำได้ และเราบันทึกไฟล์ ตอนนี้ที่เป็นที่ง่ายที่สุด รูปแบบของฐานข้อมูล ถ้าคุณต้องการที่จะทำให้เว็บไซต์ที่ frosh โปรแกรมสนทนาโดยนักศึกษา สามารถลงทะเบียนสำหรับการเล่นกีฬาที่คุณนึกคิด ต้องการที่จะทำบางสิ่งบางอย่างที่มีข้อมูลว่า สัปดาห์ที่แล้วเราไม่ได้ทำอะไร กับ data-- ที่เราเพิ่งกล่าวว่า คุณลงทะเบียนไม่ได้จริงๆ หรือบางทีผมส่งทางอีเมล ทนายและที่มัน แต่มันจะดีถ้าฉันสามารถทำได้ ให้สอบว่าไฟล์ CSV เช่นแฟ้ม Excel หรือดีกว่ายังมันจะ จะดีถ้าฉันสามารถทำได้ ใส่ชื่อผู้ใช้และ หอพักชื่อและทุกที่ ลงในฐานข้อมูลที่ เพียงแค่มีชีวิตอยู่ตลอดไป จนกว่าฉันเลือกที่จะลบข้อมูล ฐานข้อมูลที่ช่วยให้ ฉันไปสอบถามข้อมูล และแน่นอนว่าเป็นสิ่งที่เป็นฐานข้อมูล เราแนะนำในวันนี้และ ในสัปดาห์หน้าเช่นกันเทคโนโลยี เรียกว่า SQL-- แบบสอบถามที่มีโครงสร้าง ภาษาซึ่งเป็นภาษาอื่น มันเป็นหลักการเขียนโปรแกรม ภาษา แต่สำหรับฐานข้อมูล และฐานข้อมูลสำหรับตอนนี้เพียง คิดว่าเป็นรุ่นแฟนซีสุด ของ Microsoft Excel, หรือ Google Spreadsheets หรือหมายเลขแอปเปิ้ล โดยทั่วไปโปรแกรมที่ช่วยให้ คุณสามารถจัดเก็บทั้งกลุ่มของข้อมูล ในแถวและคอลัมน์ค่อนข้าง เช่นคุณอาจจะใน Excel แต่สิ่งที่ดีโดยเฉพาะอย่างยิ่งถ้า เราไม่ได้ซุปเปอร์คุ้นเคยกับ Excel, สิ่งที่ SQL ช่วยให้คุณทำคือแบบสอบถามนี้ ข้อมูลโดยการเขียนบรรทัดของรหัส ที่คุณสามารถแม้ว่าคุณ ฐานข้อมูลมีล้านแถวในนั้น คุณสามารถหาสิ่งที่เร็วสุด ในความเป็นจริงโดยเฉพาะอย่างยิ่ง Excel เป็น ที่ไม่ดีที่ชุดข้อมูลขนาดใหญ่ และในความเป็นจริงถึงไม่กี่ ปีที่ผ่านมาเปิดออก Excel เท่านั้นที่จะช่วยให้คุณสามารถจัดเก็บ ได้ถึง 65,535 แถวของ data-- ที่ เสียงเหมือนมาก แต่ที่ ทุกครั้งที่ผมเป็นนักเรียนที่จบ และผมจำได้ว่าสะดุด นี้เพราะผมได้รับการสร้าง ไฟล์ CSV สำหรับการวิจัยของฉันและฉัน ต้องการที่จะวิเคราะห์ได้อย่างรวดเร็ว โดยเพียงแค่เปิดขึ้นใน Excel แน่นอนว่าเครื่องคอมพิวเตอร์ของฉันเพียงแค่ตรวจค้น เพราะผมมีมากกว่า 65,000 แถว แต่ที่ไม่ 65,535 มาจากไหน? อะไรคือสิ่งที่ไมโครซอฟท์ทำสันนิษฐาน? หากคุณดีกับอำนาจของคุณสอง? ใช่พวกเขาใช้ 16 บิต มูลค่าให้แทนจำนวนแถว และสองถึง 16 65,536-- หนึ่งลบเพราะถ้าคุณ ศูนย์ดัชนีหมายความว่าเป็น จำนวนมากที่สุดของแถวฉันสามารถมี และมันก็เป็นเพียงแค่การตัดสินใจการออกแบบ โดยการบันทึก 16 บิตพวกเขา จำกัด ฉัน 16,000 แถวแทน 4 พันล้าน ซึ่งผมจะได้มีความนึกคิด แต่ตอนนี้เรากำลังจะไป แนะนำเพิ่มเติมนี้ในบริบทเว็บ และสิ่งที่ดีเกี่ยวกับ SQL คือว่าแม้ แม้ว่ามันจะสวยสวยที่มีประสิทธิภาพและ ที่มีความซับซ้อนจริงๆมันเดือด ลงไปที่สี่การดำเนินงานที่สำคัญสี่ ฟังก์ชั่นที่สำคัญถ้าคุณ will-- เลือก สำหรับการดึงข้อมูลที่ค้นหา สำหรับข้อมูล ลบหรือลบข้อมูล ใส่สำหรับการเพิ่มแถวไปยังฐานข้อมูล; และการปรับปรุง ดังนั้นถ้าคุณเคยใช้ Google Spreadsheets, เบอร์แอปเปิ้ลไมโครซอฟท์ Excel คุณได้ดำเนินการ ส่วนใหญ่ทั้งหมด ของการดำเนินงานเหล่านี้เป็นมนุษย์โดย เพียงแค่ใช้แป้นพิมพ์ของคุณและ mouse-- ใส่ข้อมูลโดยใช้ดวงตาของคุณ เพื่อเลือกหรือค้นหาข้อมูล หรือปรับปรุงข้อมูลหรือลบข้อมูล ดังนั้นสิ่งนี้หมายความว่าอย่างไร? ดีที่ติดตั้งใน CS50 IDE เป็นโปรแกรมที่เรียกว่า MySQL มันเป็นฟรีเปิดแหล่งที่มา ฐานข้อมูลที่เป็นที่นิยมสุด Facebook, เช่นใช้มันในการนี​​้ วันในหมู่เครื่องมืออื่น ๆ ที่พวกเขาใช้ และมีเว็บไซต์จำนวนมากที่นิยมมากใช้ ในส่วนใหญ่เพราะมันเป็นไปอย่างรวดเร็ว และเพราะฟรี แม้ว่าทางเลือกที่มีอยู่อย่างแน่นอน และบางส่วนของคุณอาจตะลุยกับ ทางเลือกสำหรับโครงการสุดท้าย นี่คือภาพหน้าจอขณะที่ของ เครื่องมือบนเว็บที่เรียกว่า phpMyAdmin มันเป็นเรื่องบังเอิญที่ เครื่องมือบนเว็บนี้ยังเป็น เขียนในภาษา PHP, แต่สิ่งที่มันหมายถึงการทำ จะทำให้เรามี Web-based อินเตอร์เฟซกับฐานข้อมูล เพราะมักจะเป็น MySQL บางสิ่งบางอย่างในอดีตคุณ จะมีปฏิสัมพันธ์กับเพียง กับบรรทัดคำสั่ง และมันจะเป็นซุปเปอร์ ที่น่ารำคาญและความลับที่จะมี พิมพ์คำสั่งเกี่ยวกับใจที่จะเลือก ข้อมูลแทรกข้อมูลและลบข้อมูล ดังนั้นบางคนบนอินเทอร์เน็ต เขียนโปรแกรมบนเว็บ ที่เพียงแค่ปล่อยให้เราจัดการ ข้อมูลในฐานข้อมูลของเรา มันก็เหมือนกับการดับเบิลคลิกที่ Excel และ เรียกใช้รุ่นบนเว็บดังกล่าว และสิ่งที่คุณกำลังจะใช้นี้ ในท้ายที่สุดในสัปดาห์หน้าไม่ได้อยู่ในพีตั้งหก แต่คือการสร้างบางสิ่งบางอย่าง เรียกว่า CS50 การเงินซึ่ง จะมีฐานข้อมูลของ ผู้ใช้ที่มีชื่อผู้ใช้และรหัสผ่าน จำนวนเงินที่พวกเขา มีในบัญชีธนาคารของพวกเขา มันเป็นไปได้ สิ่งที่คุณใช้ในการจัดเก็บ สัญลักษณ์และปริมาณ ของหุ้นที่ผู้ใช้ ได้ซื้อใช้เสมือน ดอลลาร์ที่คุณจะให้กับพวกเขา และมันจะช่วยให้ผู้ใช้ การลงทะเบียนสำหรับเว็บไซต์ของคุณ เพื่อให้ได้เพื่อนของคุณ การปรับแต่งสามารถในเว็บไซต์ของคุณ และที่จริงการลงทะเบียน เข้าสู่ระบบและเล่นรอบ และพยายามที่จะหาข้อผิดพลาดในรหัสของคุณ และพยายามที่จะหาข้อบกพร่องในเว็บไซต์ของคุณ และพวกเขาก็จะลงทะเบียน เพิ่มตัวเองได้อย่างมีประสิทธิภาพ รหัสผ่านที่คุณเขียนไปยังฐานข้อมูลของคุณ ตัวอย่างเช่นนี้เป็นภาพหน้าจอได้อย่างรวดเร็ว ของสิ่งที่ฐานข้อมูลอาจมีลักษณะเช่น นี่เป็นหนึ่งใน solutions-- ปีที่ผ่านมา นี้เป็นเหมือน Excel มินิ ไฟล์ที่เก็บไว้ในฐานข้อมูลของเรา เก็บไว้ในซอฟต์แวร์นี้เรียกว่า MySQL ด้านซ้ายมือที่ฉันได้เห็นได้ชัดว่า ผู้ใช้ทุกคนได้รับเป็นจำนวนที่ไม่ซ้ำกัน ในคอลัมน์ที่สองฉันได้รับ ผู้ใช้ทุกคน name-- ของตัวเอง ในหมู่พวกเขา และที่ด้านข้างขวามือ ฉันได้ให้แก่พวกเขากัญชา ตอนนี้เป็นจริงรหัสผ่าน แต่ก็ไม่ได้รหัสผ่านข้อความธรรมดา มันเป็นรหัสผ่านที่เข้ารหัสถ้า คุณจะใช้หรือรหัสผ่านแฮช ซึ่งการที่เราจะกลับมาอีกไม่นาน แต่ถ้าคุณเคยอ่าน บทความเกี่ยวกับวิธีการ รหัสผ่านของคุณที่ธนาคารหรือบางส่วน เว็บไซต์อาจจะได้รับอันตราย โดยทั่วไปจะหมายถึงหนึ่งในสองสิ่ง ดังนั้นนี่คือข้อความที่ตัดตอนมาเพียงหกผู้ใช้ ทั้งหมดขณะนี้คุณสามารถคิด ออกมาผ่านการเจาะหรือแตก สิ่งที่คนของเรารหัสผ่านที่หกคือ แต่ถ้าคุณเคยเคย การแจ้งเตือนหรือคำขอโทษ จากคำกล่าวที่ว่า บริษัท หรือเว็บไซต์ ขออภัยแฮกเกอร์บุกเข้าไปในฐานข้อมูลของเรา คุณอาจจะเปลี่ยนคุณ รหัสผ่านสิ่งที่อาจจะหมายความว่าอย่างไร ดีหนึ่งอาจหมายถึง บริษัท ได้รับปัญญาอ่อนมากขึ้น และได้รับการจัดเก็บรหัสผ่านของคุณ ในคอลัมน์เช่นนี้ไม่ได้เข้ารหัส ซึ่งหมายความว่าฝ่ายตรงข้าม, ที่ขโมยฐานข้อมูล รู้อย่างแท้จริงของคุณ ชื่อและรหัสผ่าน นั่นเป็นสถานการณ์ที่เลวร้ายที่สุด และในขณะที่คุณจะเห็นในหน้าตั้ง เจ็ดเพื่อง่ายต่อการหลีกเลี่ยง มีอย่างไม่มีข้อแก้ตัวสำหรับการที่ รูปแบบของความโง่เขลาในอินเทอร์เน็ตในปัจจุบัน Two-- และเราจะพบบางบทความ เพื่อเป็นพยานความจริงที่ว่านี้ยังคง เกิดขึ้น nonetheless-- สองอาจฝ่ายตรงข้าม ขโมยรุ่นของฐานข้อมูลนี้ ซึ่งยังคงเป็นชนิดของที่ไม่ดีเพราะตอนนี้ พวกเขารู้ว่าฉันมีหกลูกค้า ฉันรู้ว่าชื่อผู้ใช้ ของผู้ที่หกลูกค้า และฉันรู้ว่าที่เข้ารหัส รุ่นหรือรุ่นแฮชที่ ของผู้ที่หกรหัสผ่านของลูกค้า แต่ใด ๆ ของท่านที่อาจจะ เสร็จแล้ว [? แฮ็กเกอร์ 2?] ที่คุณแตกรหัสผ่านหรือเอา ดูที่รุ่นของปัญหาที่ ชุดทำไมมันยังคงเป็นที่น่าเป็นห่วงเล็ก ๆ น้อย ๆ ถ้าฝ่ายตรงข้ามรู้กัญชาของคุณ รหัสผ่าน? ผู้ชม: เพ​​ราะพวกเขาได้ ใส่พจนานุกรมทั้ง ในการทำงานกัญชา และถ้ารหัสผ่านของคุณพจนานุกรม คำ [? พวกเขาก็สามารถ match--?] DAVID ลัน: ตรง, ฝ่ายตรงข้าม ก็สามารถเขียนโค้ดเช่นบางส่วนของคุณ ได้สำหรับ [? แฮ็กเกอร์?] 2 โดยคุณย้ำกว่า ทั้งหมดของคำในพจนานุกรม หรือผสมเป็นไปได้ทั้งหมดของ A ถึง Z และผ่าน nine-- ซึ่งเสียงเหมือนมากและมันก็เป็น แต่สำหรับเครื่องคอมพิวเตอร์ ก็สาปอย่างรวดเร็ว และในความเป็นจริงที่เป็น จุด [? แฮ็กเกอร์ที่ 2?] เป็น ที่จะใช้สิ่งที่ ตัวอักษรที่มีลักษณะเช่นนี้ และวิศวกรรมย้อนกลับ สิ่งที่มันเป็นจริง ดังนั้นเราจะดูที่วิธีการที่เราสามารถทำได้ จัดเก็บได้อย่างมีประสิทธิภาพมากขึ้นนี้ เปิดออกโชคดีใน MySQL, มีกำลังจะเป็นชนิดข้อมูล และเป็นหนึ่งในส่วนที่เกี่ยวกับความสนุกสนาน การออกแบบฐานข้อมูลจะซื่อสัตย์ เป็นจริงที่จะตัดสินใจด้วยตัวคุณเอง วิธีที่คุณควรแสดงข้อมูลหรือไม่ คุณควรแสดงหมายเลขโทรศัพท์เป็น int เช่นจำนวนมากหรือยาว? หรือคุณจริงจะทำมัน เป็นลำดับของตัวอักษรหรือไม่? และสามารถมีได้มาก ผลกระทบที่ไม่น่ารำคาญนี้ ในความเป็นจริงหนึ่งใน ที่เก่าแก่ที่สุดสนุกเรื่องราวชิด คือเมื่อ Mark Zuckerberg ได้สร้าง Facebook, มันถูกเขียนขึ้นใน และยังคงเป็นลายลักษณ์อักษรส่วนใหญ่ใน PHP และเป็นหนึ่งในท้าทายที่ใหญ่ที่สุด พวกเขาเผชิญในช่วงต้นได้รับการปรับ เมื่อพวกเขาเก็บเพิ่มหลังจากที่โรงเรียน โรงเรียนหลังเลิกเรียนเพื่อความรู้ของฉัน หนึ่งในวิธีการเดิม เป็นหลักในการคัดลอกและวาง บางส่วนของฐานข้อมูล และบางส่วนของรหัส เพื่อที่ฮาร์วาร์เป็น ทำงานบนเซิร์ฟเวอร์ของตัวเอง และเอ็มไอทีได้รับการทำงานบนเซิร์ฟเวอร์ของตัวเอง และนี่คือเหตุผลที่สำหรับบางคน ท่านที่อาจจะจำได้ คุณอาจจะได้มีเพื่อน ในเครือข่ายอื่น ๆ คุณอาจจะไม่ได้มีเพื่อนที่ หรือเอ็มไอทีฮาร์วาร์ 10 หรือดังนั้นปีที่ผ่านมา แต่คุณไม่สามารถขยายเครือข่าย สำหรับส่วนหนึ่งด้วยเหตุผลที่ว่า และหนึ่งในความท้าทายที่ใหญ่ที่สุดสำหรับ มาร์คและสำหรับ บริษัท เช่น Facebook เป็นจริงจัดการหลายร้อย และหลายพันล้าน ของการร้องขอต่อวินาที ดังนั้นสิ่งที่เราจะเริ่มต้น พูดคุยเกี่ยวกับสัปดาห์นี้ เป็นจริงไปได้ที่จะใกล้ชิด การเขียนซอฟแวร์ที่ดีและเป็นที่นิยม เครื่องมือที่ประสบความสำเร็จ สามารถจัดการกับผู้ใช้จำนวนมาก ดังนั้นเราจะพูดคุยเกี่ยวกับสิ่งที่ เช่นการจัดทำดัชนีและการค้นหา แต่ที่มันสำหรับวันนี้ เราจะเห็นคุณมากขึ้นในวันพุธที่ [ดนตรี - "Seinfeld" เค้าโครง] DAVID ลัน: คุณสามารถไปยัง มันและลบจากมัน และคุณไม่ต้องติดกับ บางส่วนจำนวนเงินที่กำหนดไว้ล่วงหน้าของหน่วยความจำ ดีสิ่งที่จะได้รับการเรียกว่า? ลำโพง 1: ดีสิ่งที่เกิดขึ้น? ลำโพงที่ 2: คุณหมายถึงอะไร? เขาให้การบรรยาย DAVID ลัน: และเราสามารถใช้ ฟังก์ชั่นที่เรียกว่า malloc เพื่อ memory-- ลำโพง 1: ทำไมจะไม่ได้แขนของเขาย้าย? ลำโพง 2: ดี that's-- คุณรู้ว่าเป็นเรื่องปกติ มันเหมือนกับว่าเขามีเพียงแค่ ไส้กรอกขนาดใหญ่ที่แขวนอยู่ที่นั่น ลำโพงที่ 1: นั่นเป็นปกติ? ลำโพง 2: ใช่ผมคิดว่าเรา เพียง แต่คิดว่าเขาไม่ได้ตั้งใจ แทนที่ระงับกลิ่นกายของเขากับ superglue