1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Tuần 8] 2 00:00:02,000 --> 00:00:04,000 [David J Malan] [Đại học Harvard] 3 00:00:04,000 --> 00:00:07,000 [Đây là CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Chào mừng trở lại. 5 00:00:09,000 --> 00:00:11,000 Đây là CS50, và đây là sự bắt đầu của tuần 8. 6 00:00:11,000 --> 00:00:14,000 Một vài cơ hội trong tuần này, 7 00:00:14,000 --> 00:00:17,000 trong đó có nói chuyện này ở đây, mà ở đó một vài món ăn sẽ được phục vụ. 8 00:00:17,000 --> 00:00:20,000 Để biết thêm chi tiết kiểm tra các slide đang online. 9 00:00:20,000 --> 00:00:24,000 Và cũng có một sự kiện tuần này bởi Thomas riêng của chúng tôi Carriero. 10 00:00:24,000 --> 00:00:27,000 Anh ấy là một trong những nghiên cứu sinh CS50 giảng dạy cựu giám đốc hiện tại là Dropbox, 11 00:00:27,000 --> 00:00:29,000 và anh ấy là anh chàng người nối chúng tôi với các bạn biết những gì, 12 00:00:29,000 --> 00:00:36,000 vì vậy nếu bạn muốn thêm đầu mà nói chuyện của họ chiều nay cho Dropbox và nhiều hơn nữa. 13 00:00:36,000 --> 00:00:38,000 CS50 ăn trưa là thứ sáu này. 14 00:00:38,000 --> 00:00:41,000 Làm tham gia với chúng tôi nếu bạn có thể, 1:15, như thường lệ, Ice Fire và các. 15 00:00:41,000 --> 00:00:45,000 >> Và bây giờ chúng tôi nhảy vào một cái gì đó gọi là Hội thảo. 16 00:00:45,000 --> 00:00:49,000 CS50 Hội thảo của chúng tôi, thu hồi, các lớp này tùy chọn do các nghiên cứu sinh giảng dạy 17 00:00:49,000 --> 00:00:51,000 và các trợ lý và bạn bè của khóa học, 18 00:00:51,000 --> 00:00:55,000 folks từ một nhóm trong khuôn viên trường được gọi là ABCD, mà là một nhóm các 19 00:00:55,000 --> 00:00:58,000 technophiles trong khuôn viên trường, cũng như một nhóm gọi là HCS, 20 00:00:58,000 --> 00:01:02,000 Harvard Computer Society, sinh viên đại học được quan tâm tương tự trong máy tính. 21 00:01:02,000 --> 00:01:08,000 Năm nay, danh sách các cuộc hội thảo bao gồm các cuộc hội thảo trên Android và iOS và JavaScript 22 00:01:08,000 --> 00:01:13,000 và PHP, Unix, Vim, và nhiều hơn nữa, do đó, nhận ra rằng những hội thảo này đang mọc lên. 23 00:01:13,000 --> 00:01:16,000 Nếu bạn muốn RSVP cho bất kỳ người trong số họ đầu đến URL đó ở đó. 24 00:01:16,000 --> 00:01:20,000 Sau đó chúng tôi sẽ đăng trên trang web của khóa học thời và mọi nơi một khi chúng được hoàn thành. 25 00:01:20,000 --> 00:01:26,000 Nhưng biết giá trị có 5 năm của các cuộc hội thảo trước khi có sẵn trực tuyến, 26 00:01:26,000 --> 00:01:29,000 nhiều trong số đó vẫn còn rất nhiều hiện nay về công nghệ mà bạn có thể 27 00:01:29,000 --> 00:01:36,000 muốn chơi cho các dự án cuối cùng của bạn, do đó, đầu có một số video có sẵn của nó. 28 00:01:36,000 --> 00:01:39,000 >> CSS, những người bạn của những người đã quen thuộc với CSS, 29 00:01:39,000 --> 00:01:42,000 nó trong một nutshell là gì? 30 00:01:42,000 --> 00:01:45,000 CSS là gì? 31 00:01:45,000 --> 00:01:48,000 Nó cascading style sheets, và có nghĩa là gì? 32 00:01:48,000 --> 00:01:53,000 Điều đó có làm cho chúng ta, CSS? 33 00:01:53,000 --> 00:01:57,000 Được rồi, chúng ấm lên với một một trong những dễ dàng hơn, HTML, ngôn ngữ đánh dấu siêu văn bản. 34 00:01:57,000 --> 00:02:01,000 Điều đó có làm cho chúng ta? 35 00:02:01,000 --> 00:02:04,000 Bất cứ ai ở tất cả? 36 00:02:04,000 --> 00:02:07,000 Nó nhận được thật vụng về hỏi những câu hỏi. 37 00:02:07,000 --> 00:02:11,000 HTML, ngôn ngữ đánh dấu siêu văn bản. 38 00:02:11,000 --> 00:02:14,000 Vâng? Không? 39 00:02:14,000 --> 00:02:17,000 [Không nghe được sinh viên phản ứng] 40 00:02:17,000 --> 00:02:20,000 Được rồi, tốt, nó cho phép chúng tôi để đánh dấu văn bản để hiển thị trong một trình duyệt web. 41 00:02:20,000 --> 00:02:22,000 Nó không phải là một ngôn ngữ lập trình. 42 00:02:22,000 --> 00:02:25,000 Nó thực sự là một ngôn ngữ đánh dấu, có nghĩa là nó chỉ thị các trình duyệt như thế nào để hiển thị 43 00:02:25,000 --> 00:02:28,000 thông tin, do đó, các hóa thân đơn giản nhất của điều này như chúng ta đã nhìn thấy 44 00:02:28,000 --> 00:02:32,000 là một cái gì đó siêu đơn giản như boldfacing, mở khung b đóng khung nói 45 00:02:32,000 --> 00:02:36,000 làm cho văn bản in đậm, và đó là thực sự chỉ là một trong nhiều cách 46 00:02:36,000 --> 00:02:39,000 trong đó chúng ta có thể làm điều đó, và thực sự, những ngày này một cách tiếp cận tốt hơn 47 00:02:39,000 --> 00:02:42,000 stylizing trang web của bạn, làm cho những điều táo bạo và nghiêng 48 00:02:42,000 --> 00:02:47,000 và tập trung và hợp lý và như thế, không được thực hiện thông qua các thẻ HTML 49 00:02:47,000 --> 00:02:51,000 nhưng đúng hơn là với một kỹ thuật được gọi là CSS, cascading style sheets. 50 00:02:51,000 --> 00:02:53,000 Đây là một ngôn ngữ unto chính nó. 51 00:02:53,000 --> 00:02:55,000 Nó cũng không phải là một ngôn ngữ lập trình nhưng 52 00:02:55,000 --> 00:02:58,000 tất cả mọi người, đây là Dan, những người tiếp tục tham gia với chúng tôi hôm nay. 53 00:02:58,000 --> 00:03:01,000 Một số khó khăn kỹ thuật. Không phải là một vấn đề. 54 00:03:01,000 --> 00:03:04,000 >> CSS cho phép chúng tôi phong cách hóa trang 55 00:03:04,000 --> 00:03:07,000 bằng cách thiết lập những gì được gọi là tài sản, do đó, chúng ta hãy xem này 56 00:03:07,000 --> 00:03:09,000 bằng cách của một số ví dụ cơ bản. 57 00:03:09,000 --> 00:03:12,000 Hãy để tôi đi vào thiết bị. 58 00:03:12,000 --> 00:03:15,000 Tôi có nguồn 8 Thứ hai thư mục ở đây, 59 00:03:15,000 --> 00:03:18,000 và tôi sẽ đi vào một thư mục gọi là CSS nơi chúng tôi có một bó toàn bộ 60 00:03:18,000 --> 00:03:21,000 các tập tin chờ đợi cho chúng tôi tại đây, 61 00:03:21,000 --> 00:03:27,000 và trong thư mục này, chúng tôi có, ví dụ, search0.html từ lần cuối cùng. 62 00:03:27,000 --> 00:03:31,000 Bây giờ, nhớ lại với search0 chúng tôi còn lại trên lưu ý này 63 00:03:31,000 --> 00:03:35,000 bằng cách sắp xếp triển khai Google hay thực sự chỉ là kết thúc trước cho nó một tuần hoặc lâu hơn trước đây, 64 00:03:35,000 --> 00:03:38,000 và nhận thấy rằng chúng tôi đã có một số thẻ mới. 65 00:03:38,000 --> 00:03:41,000 Chúng tôi đã có h1 cho một nhóm lớn, in đậm,, 66 00:03:41,000 --> 00:03:45,000 hình thức, cho phép chúng tôi thực sự có một hình thức HTML cho người dùng nhập vào. 67 00:03:45,000 --> 00:03:48,000 Hành động, ý nghĩa của một thuộc tính hành động là những gì 68 00:03:48,000 --> 00:03:52,000 trên thẻ hình thức HTML? 69 00:03:52,000 --> 00:03:58,000 Ý nghĩa của hành động này, là gì? 70 00:03:58,000 --> 00:04:00,000 Tôi sẽ chỉ làm điều này ngày hôm nay. 71 00:04:00,000 --> 00:04:03,000 Hành động là đích để các hình thức sẽ được đệ trình. 72 00:04:03,000 --> 00:04:07,000 Thực tế là nói rằng hành động = "google.com / search" 73 00:04:07,000 --> 00:04:10,000 có nghĩa là khi người dùng nhấn nút gửi hoặc tương đương 74 00:04:10,000 --> 00:04:14,000 bất cứ hình thức lĩnh vực họ điền đầy đủ sẽ không được gửi đến máy chủ của chúng tôi 75 00:04:14,000 --> 00:04:17,000 hoặc thiết bị của chúng tôi mà là với URL cụ thể tại Google. 76 00:04:17,000 --> 00:04:19,000 Và phương pháp sẽ sử dụng được gọi là nhận được, 77 00:04:19,000 --> 00:04:25,000 và nhận được, bây giờ, chỉ là một kỹ thuật để thông qua các thông tin cùng một máy chủ web 78 00:04:25,000 --> 00:04:29,000 bằng cách của URL, vì vậy chúng ta hãy nhanh chóng xem xét lại cách làm việc này. 79 00:04:29,000 --> 00:04:31,000 >> Chú ý rằng có một đầu vào có tên là q 80 00:04:31,000 --> 00:04:35,000 có loại là văn bản và sau đó là một đầu vào thứ hai của các loại trình 81 00:04:35,000 --> 00:04:39,000 có giá trị là CS50 tìm kiếm, và thực sự, nếu chúng ta mở tập tin này ở đây, 82 00:04:39,000 --> 00:04:42,000 search0.html, đó là một siêu mẫu đơn giản, 83 00:04:42,000 --> 00:04:45,000 và nếu tôi tìm kiếm một cái gì đó giống như khoa học máy tính 84 00:04:45,000 --> 00:04:50,000 và sau đó nhấn Enter hoặc click vào CS50 Tìm kiếm 85 00:04:50,000 --> 00:04:53,000 nhận thấy rằng những gì xảy ra là ngoài được Google 86 00:04:53,000 --> 00:04:56,000 Tôi đã đặc biệt đã kết thúc tại URL này ở đầu trang, 87 00:04:56,000 --> 00:05:01,000 google.com / search q = máy tính + khoa học, 88 00:05:01,000 --> 00:05:04,000 và khoa học máy tính rõ ràng là những gì tôi đã gõ. 89 00:05:04,000 --> 00:05:06,000 + Chỉ có nghĩa là đó là nơi một nhân vật không gian, 90 00:05:06,000 --> 00:05:10,000 và nó được thực hiện bởi trình duyệt chỉ để chắc chắn rằng không có 91 00:05:10,000 --> 00:05:13,000 sự nhầm lẫn và không gian trắng trong các URL thực tế. 92 00:05:13,000 --> 00:05:15,000 Và sau đó q, tất nhiên, là tên tham số. 93 00:05:15,000 --> 00:05:20,000 Chúng tôi đã không nhìn thấy chúng tôi, các lập trình viên, thực sự có thể truy cập q chưa. 94 00:05:20,000 --> 00:05:23,000 Chúng ta có thể giả định rằng Google biết phải làm gì với điều này ở đây, 95 00:05:23,000 --> 00:05:25,000 nhưng chúng tôi sẽ đạt được điều đó trong thời gian do ngày hôm nay. 96 00:05:25,000 --> 00:05:30,000 >> Nhưng hãy để tôi có một cái nhìn thay vì ở search1.html, 97 00:05:30,000 --> 00:05:34,000 hơi khác một chút bởi vì tôi đã quyết định rằng hình thức này ở đây là chỉ là một chút lame. 98 00:05:34,000 --> 00:05:36,000 Ý tôi là, nó ở phía trên bên trái. 99 00:05:36,000 --> 00:05:40,000 Có thực sự thẩm mỹ không có nó, và vì vậy tôi muốn phong cách hóa này 100 00:05:40,000 --> 00:05:43,000 một chút giống như Google, mà trang chủ, thu hồi, 101 00:05:43,000 --> 00:05:47,000 mặc dù bạn có thể không truy cập vào nó thường xuyên, trông như thế này ngày hôm nay vào đêm Halloween. 102 00:05:47,000 --> 00:05:53,000 Nếu chúng ta thay vì mở ra phiên bản 1 của tập tin này, tìm kiếm 1.html, tôi đã tập trung. 103 00:05:53,000 --> 00:05:57,000 Vẫn còn khá xấu xí, nhưng ít nhất là bây giờ tôi đã bắt đầu để kiểm soát tính thẩm mỹ của trang này, 104 00:05:57,000 --> 00:06:00,000 không chỉ là đánh dấu lên đó. 105 00:06:00,000 --> 00:06:04,000 Chúng ta hãy xem xét tìm kiếm 1, và có thực sự chỉ là một sự khác biệt ở đây, 106 00:06:04,000 --> 00:06:06,000 mà có thể nhảy ra khỏi bạn, hoặc có thể không, 107 00:06:06,000 --> 00:06:11,000 nhưng một dòng hoặc đoạn của sự khác biệt là gì? 108 00:06:11,000 --> 00:06:14,000 >> Có phong cách thuộc tính này, do đó, nó quay ra rằng trong HTML 109 00:06:14,000 --> 00:06:19,000 hầu hết các yếu tố này, hầu hết các thẻ có thể có một thuộc tính phong cách trên chúng, 110 00:06:19,000 --> 00:06:23,000 và bên trong đó thuộc tính style là một chuỗi trích dẫn, 111 00:06:23,000 --> 00:06:26,000 và rằng chuỗi trích dẫn là CSS. 112 00:06:26,000 --> 00:06:29,000 Bạn có thể đặt bảng mẫu xếp tầng trong đó 113 00:06:29,000 --> 00:06:32,000 bằng cách xác định nó như là một tên bất động sản 114 00:06:32,000 --> 00:06:34,000 theo sau bởi một dấu hai chấm theo sau bởi một giá trị. 115 00:06:34,000 --> 00:06:37,000 Đây là loại của một quyết định thiết kế không may một vài năm trước 116 00:06:37,000 --> 00:06:40,000 CSS là một ngôn ngữ unto chính nó, 117 00:06:40,000 --> 00:06:43,000 nhưng cú pháp rất khác với HTML. 118 00:06:43,000 --> 00:06:46,000 Trong trường hợp này, chúng ta thấy rằng bên trong trang web của tôi, được viết bằng HTML, 119 00:06:46,000 --> 00:06:51,000 Tôi có CSS ​​bên trong các dấu ngoặc kép, và quy ước cho CSS 120 00:06:51,000 --> 00:06:55,000 là rằng bạn có những gì gọi là tài sản tiếp theo, một lần nữa, một dấu chấm, 121 00:06:55,000 --> 00:06:58,000 tiếp theo là giá trị của tài sản đó, do đó, không có dấu hiệu bình đẳng. 122 00:06:58,000 --> 00:07:00,000 Có không có dấu bổ sung. 123 00:07:00,000 --> 00:07:03,000 Nó chỉ này đại tràng tách cặp giá trị quan trọng, 124 00:07:03,000 --> 00:07:05,000 và dòng văn bản không chính xác những gì nó nói. 125 00:07:05,000 --> 00:07:09,000 Căn văn bản trong cơ thể của trang, mà thực sự là ruột của trang, 126 00:07:09,000 --> 00:07:11,000 ở trung tâm. 127 00:07:11,000 --> 00:07:13,000 >> Được rồi, kết quả cuối cùng sau đó, rõ ràng, là điều này. 128 00:07:13,000 --> 00:07:17,000 Không phải tất cả những gì quyến rũ hơn, nhưng ít nhất là nó tập trung và một chút giống như Google thực sự. 129 00:07:17,000 --> 00:07:21,000 Nhưng nếu tôi thay vì mở ra phiên bản 2 của điều này 130 00:07:21,000 --> 00:07:25,000 và chỉ ra ở đây một thẻ mới hoàn toàn? 131 00:07:25,000 --> 00:07:30,000 Bây giờ trong đầu trang của tôi, trước đây chỉ có thẻ 132 00:07:30,000 --> 00:07:32,000 trong tất cả các ví dụ trước? 133 00:07:32,000 --> 00:07:34,000 Nó chỉ có này, các tiêu đề. 134 00:07:34,000 --> 00:07:38,000 Một lúc trước, thẻ đầu trông như thế này. 135 00:07:38,000 --> 00:07:40,000 Bây giờ thay vì nó có một từ khóa phong cách bên trong của nó, 136 00:07:40,000 --> 00:07:44,000 và điều này quá, tôi xin lỗi, cú pháp trông rất khác nhau từ HTML, 137 00:07:44,000 --> 00:07:47,000 nhưng bạn đã quen với nó, theo đó bên trong thẻ phong cách 138 00:07:47,000 --> 00:07:50,000 Bây giờ tôi có thể yếu tố là một khoảnh khắc trước đây 139 00:07:50,000 --> 00:07:54,000 một thuộc tính, thuộc tính phong cách, và tôi có thể đặt nó ở trên cùng của trang của tôi. 140 00:07:54,000 --> 00:07:56,000 >> Tại sao? 141 00:07:56,000 --> 00:08:00,000 Vâng, đây là một bước tiến tới làm sạch những thứ lên, giống như bằng văn bản mã C 142 00:08:00,000 --> 00:08:04,000 đôi khi chúng ta sẽ viết các chức năng yếu tố ra chức năng phổ biến. 143 00:08:04,000 --> 00:08:07,000 Nó chỉ là một trình dọn dẹp nhỏ để bắt đầu thanh toán ra những thứ như tính thẩm mỹ 144 00:08:07,000 --> 00:08:11,000 vị trí trung tâm hơn là nó có tất cả xen nhau trong suốt HTML của bạn. 145 00:08:11,000 --> 00:08:14,000 Điều này cũng những gì nó nói, mặc dù có một chút của cú pháp mới. 146 00:08:14,000 --> 00:08:19,000 Đây là một chọn, và cơ thể chỉ có nghĩa là chọn các yếu tố cơ thể 147 00:08:19,000 --> 00:08:21,000 và áp dụng các thuộc tính sau cho nó. 148 00:08:21,000 --> 00:08:23,000 Vâng, tài sản là chính xác như nhau. 149 00:08:23,000 --> 00:08:25,000 Đối với biện pháp tốt, tôi đã thêm một dấu chấm phẩy ở cuối, 150 00:08:25,000 --> 00:08:29,000 có xu hướng được quy ước, và tôi đã bọc toàn bộ tài sản này 151 00:08:29,000 --> 00:08:33,000 trong dấu ngoặc nhọn bởi vì tôi thực sự có thể có những điều khác nhau ở đây. 152 00:08:33,000 --> 00:08:39,000 Tôi thực sự có thể nói một cái gì đó như màu sắc: blue; 153 00:08:39,000 --> 00:08:42,000 >> Bây giờ điều này cũng là sẽ không phải là một bước tiến tới bất cứ điều gì tất cả những gì đẹp hơn, 154 00:08:42,000 --> 00:08:47,000 nhưng nếu tôi quay trở lại phiên bản 2 tôi đã ít nhất bây giờ làm cho cơ thể của tôi 155 00:08:47,000 --> 00:08:49,000 trang của văn bản tất cả các màu xanh. 156 00:08:49,000 --> 00:08:51,000 Nút vẫn như vậy bởi vì đó là một đầu vào. Đó không phải là văn bản thuần túy. 157 00:08:51,000 --> 00:08:56,000 Tuy nhiên, mọi thứ khác đó là văn bản, như CS50 Tìm kiếm lên hàng đầu, là màu xanh lam thực tế. 158 00:08:56,000 --> 00:09:01,000 Một lần nữa, tất cả chúng tôi đã làm được loại bỏ từ các từ khóa cơ thể, thông báo, 159 00:09:01,000 --> 00:09:04,000 thuộc tính phong cách, và chúng tôi đã yếu tố nó ra ở đây. 160 00:09:04,000 --> 00:09:08,000 Đây không phải là một cải tiến lớn, nhưng nếu chúng ta lấy thêm một bước này 161 00:09:08,000 --> 00:09:10,000 nhận thấy những gì chúng tôi có thể làm trong phiên bản thứ ba này ở đây. 162 00:09:10,000 --> 00:09:14,000 >> Trong search3.html trang web là gần như giống hệt nhau 163 00:09:14,000 --> 00:09:17,000 ngoại trừ cho những gì từ khóa mới tại? 164 00:09:17,000 --> 00:09:20,000 Liên kết, do đó, một trong những điều này không phải là rất aptly tên 165 00:09:20,000 --> 00:09:24,000 bởi vì bạn không liên kết trong ý nghĩa của một siêu liên kết có thể click. 166 00:09:24,000 --> 00:09:28,000 Thay vào đó, bạn sắp xếp làm việc tương đương với # include trong C 167 00:09:28,000 --> 00:09:31,000 theo đó các từ khóa liên kết với một thuộc tính href 168 00:09:31,000 --> 00:09:34,000 và một thuộc tính rel nói đi trước 169 00:09:34,000 --> 00:09:39,000 và bản sao dán nội dung của một tập tin gọi là search3.css ngay tại đây, về cơ bản. 170 00:09:39,000 --> 00:09:42,000 Nó không hoàn toàn làm được điều đó, nhưng đó là tinh thần của nó. 171 00:09:42,000 --> 00:09:45,000 Nó nói đi mở tập tin đó, search3.css, 172 00:09:45,000 --> 00:09:49,000 và đối xử với nó như là mặc dù người dùng đã gõ nó phải ở đây trong đầu của trang 173 00:09:49,000 --> 00:09:51,000 giống như tôi đã làm trong ví dụ trước. 174 00:09:51,000 --> 00:09:54,000 Search3.css Trong khi đó, khá đơn giản. 175 00:09:54,000 --> 00:09:58,000 Nó thực sự chỉ chứa chính xác những gì là một khoảnh khắc trước đây 176 00:09:58,000 --> 00:10:03,000 từ khóa phong cách, nhưng tôi đã yếu tố nó ra ở đây vào tập tin riêng của mình. 177 00:10:03,000 --> 00:10:07,000 >> Mặc dù chúng tôi đã không dành nhiều thời gian ở tất cả trong HTML hoặc lập trình web 178 00:10:07,000 --> 00:10:11,000 chỉ trực giác động lực là những gì, có lẽ, bao thanh toán ra 179 00:10:11,000 --> 00:10:14,000 đoạn nhỏ ngay cả CSS vào một tập tin riêng của mình 180 00:10:14,000 --> 00:10:19,000 và sau đó bao gồm nó với thẻ này liên kết ở đây? 181 00:10:19,000 --> 00:10:21,000 [Không nghe được sinh viên phản ứng] 182 00:10:21,000 --> 00:10:25,000 Được rồi, nó dễ dàng hơn để đọc trong ý nghĩa rằng bạn có CSS ​​của bạn trong một file CSS. 183 00:10:25,000 --> 00:10:28,000 Bạn có HTML của bạn trong tập tin HTML của bạn, vì vậy nó dễ đọc hơn trong ý nghĩa đó. 184 00:10:28,000 --> 00:10:30,000 Những gì người khác có thể là hấp dẫn? Yeah. 185 00:10:30,000 --> 00:10:32,000 [Không nghe được sinh viên phản ứng] 186 00:10:32,000 --> 00:10:35,000 Yeah, vì vậy bạn có thể bao gồm nó nhiều lần, do đó, ngay bây giờ chúng tôi đang làm những 187 00:10:35,000 --> 00:10:38,000 ví dụ cơ bản với các tập tin cá nhân, nhưng giả sử bạn đang thực sự làm cho 188 00:10:38,000 --> 00:10:42,000 một website thực sự như bạn sẽ cho pset 7 hoặc dự án cuối cùng của bạn có lẽ, 189 00:10:42,000 --> 00:10:45,000 và bạn muốn có nhiều trang web, chắc chắn là phổ biến trên 190 00:10:45,000 --> 00:10:48,000 Thế giới thực tế Wide Web, và nó sẽ được loại của lame 191 00:10:48,000 --> 00:10:52,000 phải copy và dán cùng màu xanh 192 00:10:52,000 --> 00:10:56,000 và các văn bản cùng một trung tâm liên kết trong mỗi một trong những trang. 193 00:10:56,000 --> 00:10:59,000 Thay vào đó nó có ý nghĩa hơn yếu tố ra, giống như chúng tôi đã thực hiện trong C 194 00:10:59,000 --> 00:11:02,000 với các tập tin h., đặt nó ở vị trí trung tâm, 195 00:11:02,000 --> 00:11:06,000 trong trường hợp này search3.css, và sau đó cho phép bất kỳ tập tin 196 00:11:06,000 --> 00:11:11,000 trong trang web của bạn thực sự bao gồm các tập tin đó bằng cách của thẻ này ở dòng 16. 197 00:11:11,000 --> 00:11:14,000 Như thường là trường hợp, chúng tôi bắt đầu với phiên bản 0, loại công trình 198 00:11:14,000 --> 00:11:18,000 nhưng không nhất thiết phải là tốt nhất, và với mỗi bước, 199 00:11:18,000 --> 00:11:21,000 1 tìm kiếm, tìm kiếm 2, và tìm kiếm 3, chúng tôi đã thực hiện các bước em bé 200 00:11:21,000 --> 00:11:26,000 đối với thiết kế là một trình dọn dẹp chút và có chuẩn bị 201 00:11:26,000 --> 00:11:30,000 cho các trang phức tạp hơn chúng ta có thể làm xuống đường. 202 00:11:30,000 --> 00:11:33,000 >> Hãy để tôi mở ra một ví dụ cuối cùng ở đây chỉ để hiển thị 203 00:11:33,000 --> 00:11:36,000 một trang cách điệu hơn, nhưng trước tiên chúng ta hãy nhìn vào HTML. 204 00:11:36,000 --> 00:11:41,000 Đây là search4.html, và nhận thấy rằng cấu trúc đó là gần như giống nhau 205 00:11:41,000 --> 00:11:44,000 ngoại trừ cho sự ra đời của một thẻ mới, div. 206 00:11:44,000 --> 00:11:48,000 Div là một từ khóa giới thiệu một bộ phận của trang. 207 00:11:48,000 --> 00:11:51,000 Bạn có thể nghĩ về điều này như là một hình chữ nhật vô hình. 208 00:11:51,000 --> 00:11:54,000 Nó sắp xếp tạo ra một vùng của khu vực trong trang web 209 00:11:54,000 --> 00:11:56,000 mà bạn có thể phong cách hóa tất cả cùng một lúc. 210 00:11:56,000 --> 00:11:58,000 Những gì tôi đã thực hiện ở đây là như sau. 211 00:11:58,000 --> 00:12:01,000 Bên trong của thẻ cơ thể của tôi, mà đã được tất cả cùng, 212 00:12:01,000 --> 00:12:05,000 Tôi đang nói tạo ra một bộ phận của trang ở đây qua đường dây 45 thông qua 47, 213 00:12:05,000 --> 00:12:09,000 và điều đó có nghĩa là về cơ bản cung cấp cho tôi một hình chữ nhật vô hình dọc theo phía trên của trang. 214 00:12:09,000 --> 00:12:14,000 Sau đó, cho tôi một hình chữ nhật thứ hai, mặc dù vô hình, bên dưới đó, 215 00:12:14,000 --> 00:12:16,000 và xác định các nội dung tên, và sau đó cuối cùng, 216 00:12:16,000 --> 00:12:19,000 cung cấp cho tôi một bộ phận thứ ba của trang ở phía dưới 217 00:12:19,000 --> 00:12:21,000 được gọi là ID. 218 00:12:21,000 --> 00:12:23,000 Chúng ta sẽ thấy lý do tại sao tôi đã làm điều này trong thời điểm này chỉ là một, 219 00:12:23,000 --> 00:12:26,000 nhưng khái niệm tôi có một bộ phận tiêu đề. 220 00:12:26,000 --> 00:12:30,000 Tôi có một bộ phận nội dung, và tôi có một bộ phận chân trang của trang 221 00:12:30,000 --> 00:12:32,000 mặc dù đây chỉ là trong đánh dấu. 222 00:12:32,000 --> 00:12:35,000 Người dùng sẽ không nhìn thấy 3 hình chữ nhật, 223 00:12:35,000 --> 00:12:37,000 nhưng loại cấu trúc có đằng sau hậu trường 224 00:12:37,000 --> 00:12:39,000 họ đang thực sự hiện nay. 225 00:12:39,000 --> 00:12:41,000 >> Bây giờ, những người quan tâm? Tại sao thực sự làm được điều này? 226 00:12:41,000 --> 00:12:43,000 Mọi thứ khác trên trang cũng giống như chúng ta đã thấy trước đây. 227 00:12:43,000 --> 00:12:47,000 Đây là hình thức của tôi. Đây là đầu vào của tôi, đầu vào của tôi, phá vỡ một đường dây và vv. 228 00:12:47,000 --> 00:12:50,000 Dưới đây là một hình ảnh, mặc dù, vì vậy chúng tôi sẽ nhìn thấy nơi này đến từ trong một thời điểm. 229 00:12:50,000 --> 00:12:52,000 Dưới đây là một chân, mà là mới, chỉ vì tôi muốn giới thiệu 230 00:12:52,000 --> 00:12:54,000 một số chi tiết nội dung ở đây. 231 00:12:54,000 --> 00:12:58,000 Nếu chúng ta di chuyển lên nhận thấy rằng ID của div này là tiêu đề. 232 00:12:58,000 --> 00:13:02,000 ID của div này là nội dung, và ID của một trong những điều này là chân. 233 00:13:02,000 --> 00:13:05,000 Và như tên cho thấy, khi bạn có một thuộc tính ID 234 00:13:05,000 --> 00:13:09,000 trong HTML, theo định nghĩa nó phải xác định duy nhất 235 00:13:09,000 --> 00:13:12,000 một trong các yếu tố, một trong các thẻ trong trang của bạn. 236 00:13:12,000 --> 00:13:16,000 Gánh nặng là hoàn toàn vào bạn nhớ rằng bạn có một ID tiêu đề đã. 237 00:13:16,000 --> 00:13:19,000 Bạn có một chân. Bạn có một ID nội dung rồi. 238 00:13:19,000 --> 00:13:22,000 Các máy tính không phải là đi để tìm ra những gì một ID có sẵn là dành cho bạn, 239 00:13:22,000 --> 00:13:27,000 vì vậy bạn có thể vô tình cung cấp cho 2 thẻ ID của tiêu đề, 240 00:13:27,000 --> 00:13:29,000 và điều đó chỉ là sai. 241 00:13:29,000 --> 00:13:31,000 >> Bạn phải ghi nhớ những gì bạn đã tạo ra, 242 00:13:31,000 --> 00:13:34,000 nhưng một khi bạn đã làm điều đó thông báo những gì chúng ta có thể làm ở đây. 243 00:13:34,000 --> 00:13:38,000 Tôi bây giờ có thể chỉ định trong thẻ phong cách của tôi ở đầu trang 244 00:13:38,000 --> 00:13:41,000 hoặc tương đương trong file CSS của tôi, nếu tôi vẫn còn sử dụng phiên bản đó, 245 00:13:41,000 --> 00:13:46,000 Tôi có thể nói # header, và điều đó có nghĩa là bất cứ điều gì tag 246 00:13:46,000 --> 00:13:49,000 trong trang web này có một ID của tiêu đề 247 00:13:49,000 --> 00:13:53,000 và #, theo quy ước của con người, đại diện cho ID. 248 00:13:53,000 --> 00:13:56,000 Dấu hiệu mạnh hoặc bảng dấu hiệu đại diện cho ID. 249 00:13:56,000 --> 00:13:58,000 Tiêu đề là tên mà tôi đã cho nó. 250 00:13:58,000 --> 00:14:01,000 Điều này có nghĩa là áp dụng khách sạn CSS 251 00:14:01,000 --> 00:14:04,000 để bất cứ điều gì từ khóa trong trang này mang một ID của tiêu đề. 252 00:14:04,000 --> 00:14:06,000 Tương tự đối phó ở đây. 253 00:14:06,000 --> 00:14:09,000 Áp dụng tài sản này, mà sẽ xảy ra để được như vậy, bất kỳ yếu tố 254 00:14:09,000 --> 00:14:11,000 có ID là nội dung, và sau đó xuống đây 255 00:14:11,000 --> 00:14:14,000 nhận thấy tôi có một chút fancier với chân. 256 00:14:14,000 --> 00:14:18,000 Bất kỳ yếu tố nào có ID là chân, trong đó có thể có một theo định nghĩa, 257 00:14:18,000 --> 00:14:21,000 đi trước và làm cho kích thước font chữ của nó nhỏ hơn, 258 00:14:21,000 --> 00:14:24,000 font chữ đậm của nó trọng lượng, tỷ suất lợi nhuận của nó 20 pixels. 259 00:14:24,000 --> 00:14:26,000 >> Điều đó có nghĩa là gì? 260 00:14:26,000 --> 00:14:28,000 Nó chỉ là một tỷ suất lợi nhuận trên phía trên, phía dưới, bên trái và bên phải. 261 00:14:28,000 --> 00:14:31,000 Điều này có nghĩa là cung cấp cho tôi một biên độ 20-pixel vô hình xung quanh nó 262 00:14:31,000 --> 00:14:35,000 chỉ để đẩy mọi thứ khác đi từ nó một chút, như bạn có thể làm trong Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word hoặc trang hoặc tương tự. 264 00:14:37,000 --> 00:14:39,000 Và sau đó văn bản sắp xếp trung tâm. 265 00:14:39,000 --> 00:14:43,000 Hãy xem kết quả cuối cùng, và sau đó chúng tôi sẽ quay trở lại đoạn còn lại của CSS. 266 00:14:43,000 --> 00:14:48,000 Đây là phiên bản 4, cho các ví dụ tìm kiếm cuối cùng của chúng tôi, và đó là nhiều, nhiều hấp dẫn hơn. 267 00:14:48,000 --> 00:14:54,000 Bây giờ, trong sự công bằng, tôi chỉ cần google "google tạo logo, font chữ." 268 00:14:54,000 --> 00:14:58,000 Và điều đó cho phép tôi để tạo ra một ảnh GIF, một định dạng hình ảnh, mà hình như là có. 269 00:14:58,000 --> 00:15:00,000 Trong thực tế, bạn có thể làm điều này quá. 270 00:15:00,000 --> 00:15:03,000 Chúng tôi có "google phông chữ biểu tượng máy phát điện". 271 00:15:03,000 --> 00:15:05,000 >> Hãy xem nếu chúng ta có thể làm điều này. 272 00:15:05,000 --> 00:15:07,000 Được rồi, tôi nghĩ rằng đây là trang web của tôi được sử dụng. 273 00:15:07,000 --> 00:15:11,000 Chúng ta có thể nói Ec 10, ví dụ, và làm cho họ của riêng mình. 274 00:15:11,000 --> 00:15:13,000 Bạn có thể chơi với điều này cả ngày và sau đó kích chuột phải vào nó 275 00:15:13,000 --> 00:15:16,000 và sau đó tải về GIF thực tế, đó là tất cả những gì tôi đã làm. 276 00:15:16,000 --> 00:15:19,000 Và quả thực, đó là lý do tại sao trong HTML của tôi, nhớ lại, ở đây 277 00:15:19,000 --> 00:15:22,000 Tôi đã có một thẻ hình ảnh, mà chúng ta đã thấy một thời gian ngắn hồi tuần trước 278 00:15:22,000 --> 00:15:24,000 nguồn mà là logo.gif. 279 00:15:24,000 --> 00:15:28,000 Và những gì một lần nữa là động lực để có thuộc tính alt này, 280 00:15:28,000 --> 00:15:31,000 thuộc tính này thay thế? 281 00:15:31,000 --> 00:15:33,000 Yeah. 282 00:15:33,000 --> 00:15:35,000 [Không nghe được sinh viên phản ứng] 283 00:15:35,000 --> 00:15:37,000 Tốt, do đó, 2 lý do thực sự, nếu trình duyệt không thể kéo lên hình ảnh 284 00:15:37,000 --> 00:15:40,000 bởi vì bạn có một kết nối mạng chậm hoặc hình ảnh bị hỏng 285 00:15:40,000 --> 00:15:44,000 hoặc một cái gì đó như thế ít nhất là con người có thể nhìn thấy "CS50 tìm kiếm," 286 00:15:44,000 --> 00:15:46,000 và sau đó cũng vì lý do khả năng tiếp cận. 287 00:15:46,000 --> 00:15:48,000 Nếu bạn có một người sử dụng bị mù và đang sử dụng một trình đọc màn hình 288 00:15:48,000 --> 00:15:50,000 và do đó rõ ràng là không thể nhìn thấy hình ảnh mà họ có thể ít nhất 289 00:15:50,000 --> 00:15:52,000 nghe văn bản nếu máy tính của họ nói cho họ. 290 00:15:52,000 --> 00:15:56,000 >> Nói chung, điều này tốt nhất là thực hành khi nói đến khả năng tiếp cận của các trang 291 00:15:56,000 --> 00:16:00,000 để người dùng ngay cả trong tình huống đó có thể nghe thấy hoặc nhìn thấy, có thể nói, 292 00:16:00,000 --> 00:16:03,000 nó là gì mà trên trang của bạn. 293 00:16:03,000 --> 00:16:05,000 Có một điều mà tôi đã làm ở đây 294 00:16:05,000 --> 00:16:09,000 mà là một chút thú vị, và chúng ta sẽ thấy thêm về điều này trong vấn đề thiết lập 7 295 00:16:09,000 --> 00:16:12,000 thông qua một trong những phim ngắn do một trong các nghiên cứu sinh giảng dạy. 296 00:16:12,000 --> 00:16:15,000 Nhưng # nội dung liên quan đến từ khóa 297 00:16:15,000 --> 00:16:20,000 có ID là nội dung, nhưng sau đó có một nhân vật không gian, và sau đó có từ đầu vào. 298 00:16:20,000 --> 00:16:25,000 Vâng, những gì thú vị về CSS là bạn có thể 299 00:16:25,000 --> 00:16:29,000 tham khảo các thẻ trong một trang Sắp xếp phân cấp, 300 00:16:29,000 --> 00:16:33,000 và những gì đoạn này của CSS có nghĩa là tìm các từ khóa 301 00:16:33,000 --> 00:16:37,000 có ID là nội dung, và sau đó áp dụng các thuộc tính sau 302 00:16:37,000 --> 00:16:42,000 cho tất cả các thẻ đầu vào là con cháu của nội dung, 303 00:16:42,000 --> 00:16:44,000 đó là được thụt vào bên trong của nó. 304 00:16:44,000 --> 00:16:48,000 Thụt đầu dòng, một lần nữa, chỉ là quan trọng đối với máy tính, chứ không phải con người, 305 00:16:48,000 --> 00:16:51,000 nhưng theo quy ước, chúng ta thụt lề khi chúng ta đi sâu hơn vào một trang, 306 00:16:51,000 --> 00:16:54,000 do đó, điều này có nghĩa là áp dụng một lề của 5 điểm ảnh với bất kỳ yếu tố đầu vào 307 00:16:54,000 --> 00:16:57,000 đó là một nơi nào đó bên trong hoặc lồng bên trong 308 00:16:57,000 --> 00:16:59,000  các yếu tố có ID là nội dung. 309 00:16:59,000 --> 00:17:01,000 >> Điều đó không áp dụng cho ai? 310 00:17:01,000 --> 00:17:03,000 Vâng, có thực sự chỉ là 2 guys này ở đây. 311 00:17:03,000 --> 00:17:05,000 Chú ý rằng bên trong của mẫu đơn có 2 đầu vào, 312 00:17:05,000 --> 00:17:07,000 như có được cho tất cả các ví dụ. 313 00:17:07,000 --> 00:17:11,000 Nhưng chú ý rằng những 2 đầu vào xảy ra được lồng vào bên trong, 314 00:17:11,000 --> 00:17:13,000 mặc dù một chút sâu sắc, một lớp của indentation, 315 00:17:13,000 --> 00:17:16,000 bên trong thẻ có ID là nội dung. 316 00:17:16,000 --> 00:17:18,000 Điều này có nghĩa là gì? 317 00:17:18,000 --> 00:17:21,000 Nếu chúng tôi đi đến trình duyệt ở đây bạn có thể nhìn thấy bao giờ nên hơi 318 00:17:21,000 --> 00:17:23,000 cho tôi phóng to trong đó là một chút của padding giữa nút 319 00:17:23,000 --> 00:17:25,000 và giữa các lĩnh vực văn bản. 320 00:17:25,000 --> 00:17:27,000 >> Hãy để tôi tạm thời tắt tính. 321 00:17:27,000 --> 00:17:30,000 Hãy để tôi đi đến CSS của tôi, và để cho tôi đi trước và chỉ 322 00:17:30,000 --> 00:17:34,000 thay đổi tỷ suất lợi nhuận từ 5 điểm ảnh đến 0 pixels. 323 00:17:34,000 --> 00:17:37,000 Hãy để tôi đi trước và sau đó lưu file, trở lại với các công cụ tìm kiếm 324 00:17:37,000 --> 00:17:40,000 và tải lại, và xem giữa trang. 325 00:17:40,000 --> 00:17:43,000 Tất cả mọi thứ đã nén với nhau, và khi tôi lần đầu tiên đánh ví dụ này 326 00:17:43,000 --> 00:17:46,000 Tôi nghĩ rằng trông ngớ ngẩn với lĩnh vực văn bản và sau đó là nút ngay bên dưới nó. 327 00:17:46,000 --> 00:17:50,000 Tôi muốn pad nó một chút, do đó, tôi đã giới thiệu lợi nhuận. 328 00:17:50,000 --> 00:17:55,000 Những gì chúng tôi sẽ không làm trong bài giảng là đi qua hàng chục 329 00:17:55,000 --> 00:17:58,000 Thuộc tính CSS tồn tại bởi vì, một lần nữa, có những thứ như kích cỡ, 330 00:17:58,000 --> 00:18:02,000 trọng lượng phông chữ, lề, văn bản sắp xếp, và những người khác một vài chục, 331 00:18:02,000 --> 00:18:06,000 và chúng tôi sẽ giới thiệu quý vị trong vấn đề thiết lập 7 để hướng dẫn trực tuyến khác nhau 332 00:18:06,000 --> 00:18:08,000 và tài liệu tham khảo cho phép bạn chọn những việc này lên. 333 00:18:08,000 --> 00:18:10,000 Nhưng những gì thực sự quan trọng vào cuối ngày 334 00:18:10,000 --> 00:18:12,000 >> là phải hiểu được những điều này được áp dụng như thế nào. 335 00:18:12,000 --> 00:18:15,000 Một lần nữa, nếu chúng ta có từ khóa phong cách bên trong 336 00:18:15,000 --> 00:18:19,000 có thể đi selectors, các loại định danh chỉ định 337 00:18:19,000 --> 00:18:21,000 ai muốn áp dụng các đặc tính này, 338 00:18:21,000 --> 00:18:24,000 và sau đó bạn đặt các thuộc tính như cặp giá trị quan trọng 339 00:18:24,000 --> 00:18:28,000 cách nhau bằng dấu hai chấm và sau đó kết thúc bằng dấu chấm phẩy, 340 00:18:28,000 --> 00:18:32,000 hoặc bạn có thể trích xuất tất cả ra rằng và đặt nó trong một file CSS riêng biệt 341 00:18:32,000 --> 00:18:35,000 unto chính nó. 342 00:18:35,000 --> 00:18:39,000 Được rồi, bất kỳ câu hỏi nào về các khái niệm 343 00:18:39,000 --> 00:18:41,000 hoặc bức tranh lớn của CSS? 344 00:18:41,000 --> 00:18:43,000 Bạn lại sẽ xem chi tiết của nó trong pset 7, 345 00:18:43,000 --> 00:18:47,000 nhưng chúng tôi sẽ giữ nó thường khá đơn giản. 346 00:18:47,000 --> 00:18:49,000 Không? Được rồi. 347 00:18:49,000 --> 00:18:51,000 Đó là thời gian cho một ngôn ngữ lập trình thực tế, 348 00:18:51,000 --> 00:18:54,000 và chúng tôi sẽ trở lại một chút của CSS trong các hình thức của một ví dụ. 349 00:18:54,000 --> 00:18:58,000 PHP là thực sự là một ngôn ngữ tuyệt vời truy cập 350 00:18:58,000 --> 00:19:02,000 ở chỗ nó là cú pháp gần như tương đương với C. 351 00:19:02,000 --> 00:19:06,000 Nói cách khác, nếu bạn biết C, bạn biết PHP hầu hết các phần, 352 00:19:06,000 --> 00:19:08,000 ít nhất là cú pháp, mặc dù có một số tính năng mới 353 00:19:08,000 --> 00:19:10,000 và một số khái niệm mới, chúng tôi sẽ phải nhìn vào. 354 00:19:10,000 --> 00:19:13,000 >> Nhưng đối với hầu hết các phần, bây giờ chúng ta chuyển đổi từ C đến PHP 355 00:19:13,000 --> 00:19:16,000 hầu hết các công cụ mới là thực sự trong bức tranh lớn, 356 00:19:16,000 --> 00:19:19,000 cách bạn sử dụng một ngôn ngữ để chương trình trên Web như trái ngược với 357 00:19:19,000 --> 00:19:23,000 tại dòng lệnh hoặc trong một dấu nhắc nhấp nháy như chúng tôi đã làm cho đến nay. 358 00:19:23,000 --> 00:19:27,000 Để tham khảo, đặc biệt là với pset 7 và dự án trở đi cuối cùng, 359 00:19:27,000 --> 00:19:31,000 không tận dụng lợi thế của URL này ở đây nếu bạn muốn đọc về các thủ tục của PHP. 360 00:19:31,000 --> 00:19:34,000 Nó thực sự giống như một cuốn sách giáo khoa trực tuyến miễn phí có hiệu quả, 361 00:19:34,000 --> 00:19:37,000 và bạn cũng sẽ thấy rằng những gì thực sự tốt đẹp về PHP 362 00:19:37,000 --> 00:19:41,000 là có hàng trăm chức năng đi kèm với nó, 363 00:19:41,000 --> 00:19:44,000 ngược lại trong C, bạn không nhất thiết phải có quyền truy cập 364 00:19:44,000 --> 00:19:47,000 chức năng nhiều hơn trong thư viện toán học, thư viện CS50. 365 00:19:47,000 --> 00:19:51,000 PHP và rất nhiều ngôn ngữ hiện đại, Python và Ruby trong số đó, 366 00:19:51,000 --> 00:19:54,000 bạn sẽ có được quyền truy cập vào rất nhiều chức năng, có nghĩa là bạn có được để viết 367 00:19:54,000 --> 00:19:57,000 ít hơn rất nhiều mã bởi vì bạn có thể đứng trên vai của những người khác 368 00:19:57,000 --> 00:19:59,000 người đã viết những điều nào đó cho bạn. 369 00:19:59,000 --> 00:20:03,000 >> Chúng ta hãy xem một tour du lịch nhanh chóng của các cú pháp của PHP và sau đó viết một vài ví dụ. 370 00:20:03,000 --> 00:20:06,000 Những gì tốt đẹp về PHP đầu tiên và quan trọng nhất 371 00:20:06,000 --> 00:20:08,000 có không có chức năng chính. 372 00:20:08,000 --> 00:20:10,000 Nếu bạn muốn viết một chương trình trong PHP, bạn chỉ cần bắt đầu viết mã, 373 00:20:10,000 --> 00:20:12,000 và bạn không phải lo lắng về việc chính. 374 00:20:12,000 --> 00:20:14,000 Có int. Có không trở lại. 375 00:20:14,000 --> 00:20:17,000 Không có argv, argc đó là cần thiết khi bạn viết chương trình. 376 00:20:17,000 --> 00:20:20,000 Thay vào đó bạn chỉ có thể bắt đầu viết mã, và điều này là một phần 377 00:20:20,000 --> 00:20:23,000 bởi vì PHP là những gì được gọi là một ngôn ngữ giải thích. 378 00:20:23,000 --> 00:20:26,000 C đã được biên dịch, và nó đã được biên dịch trong ý nghĩa là bạn bắt đầu 379 00:20:26,000 --> 00:20:29,000 với mã nguồn, chạy nó thông qua Clang, là một trình biên dịch, 380 00:20:29,000 --> 00:20:33,000 và cuối cùng sau một số bước bạn có được mã đối tượng, 0 và 1. 381 00:20:33,000 --> 00:20:36,000 PHP và Python và Ruby và Pearl và những người khác 382 00:20:36,000 --> 00:20:39,000 là những loại khác nhau của ngôn ngữ mà bạn không biên dịch chúng. 383 00:20:39,000 --> 00:20:42,000 Bạn không đi từ mã nguồn để 0 và 1. 384 00:20:42,000 --> 00:20:45,000 Bạn chỉ cần chạy mã nguồn, và bạn chạy các mã nguồn 385 00:20:45,000 --> 00:20:49,000 bằng cách viết trong một tập tin văn bản bình thường, kết thúc. php trong trường hợp này 386 00:20:49,000 --> 00:20:53,000 thay vì c, và những chương trình nào trên máy tính của bạn 387 00:20:53,000 --> 00:20:57,000 nó theo nghĩa đen giải thích dòng code của bạn từng dòng. 388 00:20:57,000 --> 00:21:00,000 >> Nói cách khác, chứ không phải là viết một chương trình và chạy chương trình 389 00:21:00,000 --> 00:21:04,000 trực tiếp bạn thay vì viết một chương trình với một tập tin kết thúc bằng. php. 390 00:21:04,000 --> 00:21:09,000 Sau đó, bạn chạy một chương trình thực tế được gọi là php.exe, nếu bạn đang trên Windows, 391 00:21:09,000 --> 00:21:12,000 hoặc chỉ cần PHP nếu bạn đang ở trên hệ điều hành Mac OS hoặc Linux, 392 00:21:12,000 --> 00:21:17,000 và bạn cung cấp đầu vào cho chương trình PHP mã nguồn của riêng bạn, 393 00:21:17,000 --> 00:21:20,000 và mục đích của nó trong cuộc sống là để đọc trên mã của bạn xuống dưới, từ trái sang phải, 394 00:21:20,000 --> 00:21:23,000 và làm bất cứ điều gì bạn đã nói với nó để làm. 395 00:21:23,000 --> 00:21:25,000 >> Hãy xem điều này sẽ có nghĩa là cú pháp. 396 00:21:25,000 --> 00:21:27,000 Trong PHP, chúng ta có điều kiện. 397 00:21:27,000 --> 00:21:29,000 Slide này giống hệt với những gì bạn nhìn thấy trở lại trong tuần 1 398 00:21:29,000 --> 00:21:33,000 bởi vì cú pháp điều kiện, IFS và ifs khác và khác trong PHP 399 00:21:33,000 --> 00:21:35,000 nhìn chính xác như thế này. 400 00:21:35,000 --> 00:21:38,000 Khi nói đến biểu thức boolean họ đang đi để tìm chính xác như thế này. 401 00:21:38,000 --> 00:21:43,000 Khi nói đến Anding việc cùng nhau như các phép toán luận nó sẽ để tìm chính xác như thế này. 402 00:21:43,000 --> 00:21:46,000 Thiết bị chuyển mạch giống nhau, và bạn nhận được thêm lợi ích trong PHP 403 00:21:46,000 --> 00:21:51,000 rằng các thiết bị chuyển mạch trong C chỉ có thể chuyển đổi một char hoặc int. 404 00:21:51,000 --> 00:21:53,000 Bạn không thể chuyển đổi một giá trị chuỗi. 405 00:21:53,000 --> 00:21:55,000 Trong PHP bạn thực sự có thể có một biểu hiện 406 00:21:55,000 --> 00:21:58,000 đó là một biến có nội dung là một chuỗi, 407 00:21:58,000 --> 00:22:01,000 và bạn thực sự có thể làm so sánh chuỗi trong cách trực quan, 408 00:22:01,000 --> 00:22:06,000 không phải con trỏ so sánh, để quyết định có để làm trường hợp i hoặc j hay cái gì khác. 409 00:22:06,000 --> 00:22:09,000 Chúng ta sẽ thấy rằng có khả năng trước khi dài. 410 00:22:09,000 --> 00:22:11,000 >> Loops quá tuyệt vời là như nhau. 411 00:22:11,000 --> 00:22:15,000 Đối với vòng có một khởi tạo, một điều kiện, và một số cập nhật. 412 00:22:15,000 --> 00:22:18,000 Trong khi vòng cũng tồn tại trong PHP. 413 00:22:18,000 --> 00:22:21,000 Làm trong khi vòng lặp cũng tồn tại trong PHP, 414 00:22:21,000 --> 00:22:26,000 và mảng tồn tại trong PHP, nhưng đây là cú pháp bắt đầu để có được một chút khác nhau, 415 00:22:26,000 --> 00:22:29,000 nhưng những khái niệm là như nhau, và các khái niệm thực sự là như nhau 416 00:22:29,000 --> 00:22:32,000 như chúng đã được in 0 Tuần Scratch. 417 00:22:32,000 --> 00:22:34,000 Trước hết là dấu hiệu $. 418 00:22:34,000 --> 00:22:37,000 Đây là một quyết định thiết kế trong PHP, theo đó bất kỳ biến 419 00:22:37,000 --> 00:22:41,000 trong PHP bởi thiết kế bắt đầu với ký hiệu $. 420 00:22:41,000 --> 00:22:46,000 Không có thêm X, Y, Z. Nó bây giờ $ X, Y, Z chỉ vì. 421 00:22:46,000 --> 00:22:49,000 Đó là một cái gì đó để giữ trong tâm trí, và bây giờ ở phía bên tay phải 422 00:22:49,000 --> 00:22:52,000 điều này có vẻ tương tự như một mảng, 423 00:22:52,000 --> 00:22:54,000 nhưng chúng tôi đang sử dụng dấu ngoặc vuông ở đây. 424 00:22:54,000 --> 00:22:57,000 Trong PHP và trong JavaScript, như chúng ta cuối cùng sẽ thấy, 425 00:22:57,000 --> 00:23:01,000 để khai báo một mảng bạn làm khung hình vuông mở và đóng khung hình vuông, 426 00:23:01,000 --> 00:23:04,000 và sau đó bạn có một danh sách các giá trị cách nhau bằng dấu phẩy, cho dù ints 427 00:23:04,000 --> 00:23:09,000 hoặc các chuỗi ký tự, bất cứ điều gì bạn muốn, bên trong đó biểu hiện có. 428 00:23:09,000 --> 00:23:11,000 >> Bây giờ, làm thế nào chúng ta làm một cái gì đó như thế này trong C? 429 00:23:11,000 --> 00:23:16,000 Cú pháp cho tĩnh khai báo một mảng các số được biết đến là gì? 430 00:23:16,000 --> 00:23:19,000 Đó là dấu ngoặc nhọn, rất nhỏ sự khác biệt ở đây, nhưng trong cả hai PHP 431 00:23:19,000 --> 00:23:22,000 và cuối cùng JavaScript chỉ sử dụng dấu ngoặc vuông, như vậy thực sự 432 00:23:22,000 --> 00:23:25,000 các chi tiết thú vị ở đây là dấu hiệu cho tên biến 433 00:23:25,000 --> 00:23:28,000 và cũng là dấu ngoặc vuông, và có một điều tò mò 434 00:23:28,000 --> 00:23:32,000 đó là được bỏ qua như ở phía bên trái của dấu =. 435 00:23:32,000 --> 00:23:36,000 Những gì còn thiếu mà chúng tôi đã yêu cầu tuần nay? Yeah. 436 00:23:36,000 --> 00:23:38,000 [Không nghe được sinh viên phản ứng] 437 00:23:38,000 --> 00:23:41,000 Kích thước, do đó, không có đề cập đến kích thước của mảng. 438 00:23:41,000 --> 00:23:45,000 Thẳng thắn mà nói, không có đề cập đến các dấu ngoặc vuông ở phía bên trái 439 00:23:45,000 --> 00:23:47,000 dấu =, và những gì khác là mất tích từ dòng? 440 00:23:47,000 --> 00:23:49,000 Vâng >> [không nghe được sinh viên phản ứng]. 441 00:23:49,000 --> 00:23:52,000 Loại, vì vậy những gì thú vị đặc biệt là về PHP 442 00:23:52,000 --> 00:23:56,000 là nó không phải là một ngôn ngữ mạnh mẽ đánh máy như C, 443 00:23:56,000 --> 00:23:58,000 và đó là gõ mạnh mẽ trong ý nghĩa rằng bạn phải nói char, 444 00:23:58,000 --> 00:24:00,000 bạn phải nói int, bạn phải nói phao. 445 00:24:00,000 --> 00:24:03,000 >> Bất cứ khi nào bạn muốn có một biến, bạn phải nói với Clang kiểu của nó là gì. 446 00:24:03,000 --> 00:24:05,000 PHP là một chút lazier. 447 00:24:05,000 --> 00:24:08,000 Lỏng lẻo trong ý nghĩa rằng 448 00:24:08,000 --> 00:24:11,000 bạn có thể có phao nổi và ký tự và chuỗi 449 00:24:11,000 --> 00:24:14,000 và ints và vân vân, nhưng bản thân ngôn ngữ 450 00:24:14,000 --> 00:24:17,000 không thực sự quan tâm những gì bạn đặt bên trong của một biến. 451 00:24:17,000 --> 00:24:20,000 Bạn không cần phải thông báo trước kiểu dữ liệu 452 00:24:20,000 --> 00:24:22,000 đang diễn ra trong một biến. 453 00:24:22,000 --> 00:24:24,000 Đó là hoàn toàn vào bạn, do đó, điều này là tốt đẹp 454 00:24:24,000 --> 00:24:27,000 trong đó bạn không cần phải lo lắng nhiều về dữ liệu nhập 455 00:24:27,000 --> 00:24:29,000 và đáng lo ngại đối số của bạn là gì và vv. 456 00:24:29,000 --> 00:24:32,000 Điều này cũng có nghĩa là cuối cùng chức năng trong PHP sẽ có thể trở lại 457 00:24:32,000 --> 00:24:36,000 hoặc một phần lớn int thời gian, và có thể một lần trong một thời gian 458 00:24:36,000 --> 00:24:40,000 họ sẽ trở lại, bool false boolean, ví dụ, để biểu thị rằng cái gì đó đã đi sai. 459 00:24:40,000 --> 00:24:44,000 Điều này cho chúng ta một số mặt tích cực, nhưng nó cũng sẽ làm cho chúng ta loại bởi thiết kế 460 00:24:44,000 --> 00:24:47,000 một chút lazier khi nói đến dữ liệu đánh máy. 461 00:24:47,000 --> 00:24:50,000 >> Gì khác là có cần lưu ý ở đây? 462 00:24:50,000 --> 00:24:54,000 Biến trông khá thích này, vì vậy $ s = "hello, thế giới". 463 00:24:54,000 --> 00:24:57,000 Đó là có lẽ kết luận từ ví dụ trước, 464 00:24:57,000 --> 00:24:59,000 và chúng tôi có một dạng khác của vòng lặp. 465 00:24:59,000 --> 00:25:02,000 Điều này một chúng tôi thực sự sẽ thấy một lần trong một thời gian kể từ khi nó khá tiện dụng, 466 00:25:02,000 --> 00:25:04,000 một foreach xây dựng. 467 00:25:04,000 --> 00:25:11,000 Trong trường hợp này, các vòng lặp foreach có bên trong các dấu ngoặc 3 từ thông thường, 468 00:25:11,000 --> 00:25:16,000 $ Một cái gì đó đầu tiên, đó là những gì mảng nào bạn muốn để lặp lại trên các thành viên của, 469 00:25:16,000 --> 00:25:19,000 sau đó nghĩa là từ khóa như là, và sau đó cuối cùng, 470 00:25:19,000 --> 00:25:21,000 một tên biến khác mà bạn có thể chọn. 471 00:25:21,000 --> 00:25:23,000 Nó có thể là foo, bar, hoặc yếu tố, 472 00:25:23,000 --> 00:25:26,000 và những gì xây dựng này không 473 00:25:26,000 --> 00:25:29,000 nếu mảng $ bao gồm 10 yếu tố 474 00:25:29,000 --> 00:25:34,000 trên mỗi lần lặp của mảng này xin lỗi, mỗi lần lặp của vòng lặp này 475 00:25:34,000 --> 00:25:37,000 biến gọi là yếu tố sẽ được cập nhật 476 00:25:37,000 --> 00:25:40,000 là yếu tố đầu tiên trong mảng, sau đó yếu tố thứ hai trong mảng, 477 00:25:40,000 --> 00:25:44,000 sau đó yếu tố thứ ba của mảng, do đó cần obviating các 478 00:25:44,000 --> 00:25:46,000 để làm các ký hiệu khung vuông và hơi khó chịu 479 00:25:46,000 --> 00:25:49,000 $ I để chỉ số vào một mảng. 480 00:25:49,000 --> 00:25:53,000 PHP thực hiện tất cả các công việc đó cho bạn và trên mỗi lần lặp 481 00:25:53,000 --> 00:25:55,000 chỉ tay phần tử tiếp theo từ mảng 482 00:25:55,000 --> 00:26:01,000 mà không cần biết hoặc quan tâm về vị trí số chỉ số của nó. 483 00:26:01,000 --> 00:26:04,000 >> Và rồi cuối cùng, cho bây giờ, có một tính năng khác của PHP 484 00:26:04,000 --> 00:26:08,000 đó sẽ là cực kỳ hữu ích, đặc biệt là khi chúng tôi bắt đầu lập trình trên Web, 485 00:26:08,000 --> 00:26:10,000 và đó là được biết đến như là một mảng kết hợp. 486 00:26:10,000 --> 00:26:13,000 Các mảng mà chúng ta biết vậy, đến nay là 20 giây trước đây 487 00:26:13,000 --> 00:26:17,000 và cho 8 tuần qua số lượng được lập chỉ mục mảng, 488 00:26:17,000 --> 00:26:20,000 sắp xếp các mảng truyền thống nơi mà các chỉ số là ints, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, tất cả các cách trên lên. 490 00:26:23,000 --> 00:26:25,000 Mảng kết hợp rất nhiều mạnh hơn. 491 00:26:25,000 --> 00:26:28,000 Chúng cho phép bạn có các phím tùy ý, 492 00:26:28,000 --> 00:26:31,000 tùy ý các chỉ số và giá trị tùy ý. 493 00:26:31,000 --> 00:26:34,000 Trong khi đó, trong một mảng truyền thống nó là 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 trong một mảng kết hợp, bạn có thể có một chỉ số 495 00:26:37,000 --> 00:26:41,000 hoặc một phím của foo có giá trị là thanh. 496 00:26:41,000 --> 00:26:46,000 Sau đó, bạn có thể có một chìa khóa có tên là baz và có giá trị là qux. 497 00:26:46,000 --> 00:26:49,000 >> Một lần nữa, ngu ngốc tên khoa học máy tính chung chung biến ở đây, 498 00:26:49,000 --> 00:26:55,000 nhưng điểm là mảng này không có khung 0 hoặc khung 1. 499 00:26:55,000 --> 00:26:59,000 Thay vào đó, nó sẽ có khung foo và khung baz. 500 00:26:59,000 --> 00:27:03,000 Điều này là rất nhiều linh hoạt hơn trong đó chúng tôi đang đi để có thể liên kết 501 00:27:03,000 --> 00:27:07,000 từ với các từ khác, phím với các giá trị hoàn toàn tùy tiện, 502 00:27:07,000 --> 00:27:12,000 và chúng ta sẽ có thể để có được những giá trị trở lại trong thời gian liên tục 503 00:27:12,000 --> 00:27:14,000 bởi vì bên dưới mui xe một mảng kết hợp 504 00:27:14,000 --> 00:27:16,000 thực sự là một bảng băm. 505 00:27:16,000 --> 00:27:20,000 Nhớ lại rằng một bảng băm cho phép bạn đưa vào một số đầu vào 506 00:27:20,000 --> 00:27:25,000 đặt trong từ David nếu bạn muốn chèn David vào một số loại từ điển, 507 00:27:25,000 --> 00:27:27,000 và sau đó bạn có được trở lại một số giá trị thông thường. 508 00:27:27,000 --> 00:27:29,000 Trong trường hợp của speller, đúng hay sai. 509 00:27:29,000 --> 00:27:33,000 David hoặc bất cứ điều gì từ hoặc không có trong từ điển. 510 00:27:33,000 --> 00:27:36,000 Một mảng kết hợp thực sự chỉ là một bảng băm, 511 00:27:36,000 --> 00:27:38,000 nhưng đó là một hóa thân thân thiện với người sử dụng nhiều hơn nữa của nó. 512 00:27:38,000 --> 00:27:41,000 Như chúng ta sẽ thấy, nó sẽ cho phép chúng tôi làm một số điều 513 00:27:41,000 --> 00:27:43,000 rất, rất dễ dàng. 514 00:27:43,000 --> 00:27:45,000 >> Hãy có một cái nhìn tại một số PHP cơ bản 515 00:27:45,000 --> 00:27:47,000 các ví dụ và xem những gì chúng ta có thể làm với ngôn ngữ này. 516 00:27:47,000 --> 00:27:51,000 Hãy để tôi đi trước và mở trong thư mục mã nguồn của chúng tôi ngày hôm nay 517 00:27:51,000 --> 00:27:54,000 một tập tin gọi hello1.php. 518 00:27:54,000 --> 00:27:57,000 Tập tin này là bình luận hơn là thực tế mã, 519 00:27:57,000 --> 00:28:00,000 vì vậy cho tôi thực sự loại bỏ tất cả các ý kiến ​​từ tập tin 520 00:28:00,000 --> 00:28:05,000 và hiện tại bạn có lẽ là chương trình PHP đơn giản ngay tại đây. 521 00:28:05,000 --> 00:28:07,000 5 dòng, và một số trong những không gian màu trắng, 522 00:28:07,000 --> 00:28:09,000 do đó, nhận thấy một số khác biệt quan trọng ở đây. 523 00:28:09,000 --> 00:28:12,000 Các tập tin được gọi là hello1.php. 524 00:28:12,000 --> 00:28:16,000 Dòng đầu tiên, mặc dù, 00:28:18,000 Tinh thần tương tự HTML, 526 00:28:18,000 --> 00:28:21,000 rằng chuỗi các ký tự cho máy tính 527 00:28:21,000 --> 00:28:25,000 "Hey, máy tính, ở đây có một chương trình chúng ta đang ở trong PHP." 528 00:28:25,000 --> 00:28:28,000 Nó làm cho chắc chắn rằng nó không phải nhầm lẫn rằng đó là một số ngôn ngữ khác. 529 00:28:28,000 --> 00:28:30,000 Dòng 2 là một không gian màu trắng thú vị. 530 00:28:30,000 --> 00:28:32,000 Dòng 3 là người bạn cũ của chúng tôi printf, 531 00:28:32,000 --> 00:28:34,000 thời gian này, trong bối cảnh của PHP. 532 00:28:34,000 --> 00:28:37,000 PHP có phiên bản riêng của printf mà cư xử chính xác như nhau, 533 00:28:37,000 --> 00:28:39,000 do đó, điều này là chỉ cần đi để in "hello, thế giới." 534 00:28:39,000 --> 00:28:46,000 Và sau đó thẻ này đối diện ở đây,>, có nghĩa là đó là nó cho mã PHP của tôi. 535 00:28:46,000 --> 00:28:48,000 >> Chúng ta hãy xem làm thế nào để chạy. 536 00:28:48,000 --> 00:28:50,000 Tôi sẽ quay trở lại cửa sổ thiết bị đầu cuối của tôi ở đây. 537 00:28:50,000 --> 00:28:52,000 Tôi sẽ đi vào thư mục PHP của tôi. 538 00:28:52,000 --> 00:28:56,000 Chú ý rằng chúng ta có một bó toàn bộ các file, người đầu tiên trong số đó là hello.php. 539 00:28:56,000 --> 00:29:01,000 Hãy để tôi đi trước và chạy này hello1.php,, nhập. 540 00:29:01,000 --> 00:29:03,000 Quyền bị từ chối. Okay. 541 00:29:03,000 --> 00:29:06,000 Làm thế nào chúng ta cố định những thứ như thế này trong quá khứ? 542 00:29:06,000 --> 00:29:08,000 Rằng >> [không nghe được sinh viên phản ứng] 543 00:29:08,000 --> 00:29:11,000 Chúng ta cần đọc và viết, nhưng hãy để tôi làm ls-l. 544 00:29:11,000 --> 00:29:14,000 Hãy nhớ điều này đầu ra hơi khó hiểu theo đó hello1 545 00:29:14,000 --> 00:29:17,000 dường như để có thể đọc và ghi của tôi 546 00:29:17,000 --> 00:29:19,000 nhưng có thể đọc được tất cả mọi người khác. 547 00:29:19,000 --> 00:29:22,000 Nó chỉ ra điều này thực sự không phải là một bước đi đúng hướng. 548 00:29:22,000 --> 00:29:25,000 Sự khác biệt, một lần nữa, với một ngôn ngữ giải thích 549 00:29:25,000 --> 00:29:27,000 là bạn không chạy chương trình trực tiếp. 550 00:29:27,000 --> 00:29:30,000 Bạn thay vì chạy một phiên dịch và đưa nó mã 551 00:29:30,000 --> 00:29:33,000 mà bạn đã viết để nó có thể giải thích từng dòng một. 552 00:29:33,000 --> 00:29:36,000 Trong trường hợp này, người phiên dịch, chương trình tôi thực sự muốn chạy 553 00:29:36,000 --> 00:29:38,000 là nghĩa đen được gọi là PHP. 554 00:29:38,000 --> 00:29:41,000 >> Nơi nào đó trên ổ đĩa cứng của thiết bị này có một chương trình 555 00:29:41,000 --> 00:29:45,000 người khác đã viết gọi là PHP, hoặc trên Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Những gì tôi đang làm ở đây là tôi sẽ thực sự chạy PHP 557 00:29:48,000 --> 00:29:51,000 nhưng cung cấp cho nó như là một đối số dòng lệnh mã mà tôi đã viết, 558 00:29:51,000 --> 00:29:54,000 và sau đó tôi sẽ thu nhỏ và nhấn Enter. 559 00:29:54,000 --> 00:29:58,000 Nó chạy chương trình của tôi cho tôi, trên xuống dưới, trái sang phải. 560 00:29:58,000 --> 00:30:01,000 Hãy để tôi đi trước và mở ra một phương sai nhỏ này. 561 00:30:01,000 --> 00:30:05,000 Trong thông báo hello2.php rằng điều này quá 562 00:30:05,000 --> 00:30:08,000 chủ yếu là các ý kiến, vì vậy hãy để tôi thoát khỏi những người giải phóng họ, 563 00:30:08,000 --> 00:30:13,000 và những gì khác biệt rõ ràng về tập tin này? 564 00:30:13,000 --> 00:30:15,000 Có dòng này mới, hơi khó hiểu ở đầu trang. 565 00:30:15,000 --> 00:30:20,000 Trong dòng 1 #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin là một quy ước trên Linux và Mac OS cho những chương trình, 567 00:30:24,000 --> 00:30:27,000 / bin có nghĩa là đây là một thư mục có chứa một loạt các tập tin nhị phân 568 00:30:27,000 --> 00:30:29,000 đã được lập trình, một trong số đó là PHP. 569 00:30:29,000 --> 00:30:32,000 Dòng #! là biệt danh công việc, 570 00:30:32,000 --> 00:30:35,000 đó là cách nhanh chóng để nói rằng nó, và điều này có nghĩa là gì 571 00:30:35,000 --> 00:30:40,000 là khi bạn chạy chương trình này bây giờ có một gợi ý ở trên cùng của tập tin 572 00:30:40,000 --> 00:30:44,000 cho máy tính những thông dịch viên để sử dụng. 573 00:30:44,000 --> 00:30:47,000 >> Nó được một ít khó chịu nếu phải báo cho người dùng và khách hàng của bạn 574 00:30:47,000 --> 00:30:50,000 "Này, chúng tôi đã viết chương trình này được gọi là hello1.php". 575 00:30:50,000 --> 00:30:54,000 Tất cả những gì bạn phải làm là mãi mãi chạy PHP và sau đó tên của chương trình này. 576 00:30:54,000 --> 00:30:58,000 Thành thật mà nói, nó sẽ chỉ được đẹp hơn để chạy hello1.php, 577 00:30:58,000 --> 00:31:00,000 và quả thật, chúng ta có thể nếu chúng ta làm như sau. 578 00:31:00,000 --> 00:31:05,000 Hãy để tôi đi trước và làm ls-l, và thông báo trong hello2 nó vẫn chỉ là đọc viết 579 00:31:05,000 --> 00:31:10,000 và sau đó đọc đọc, vì vậy tôi có thể chưa làm được điều này, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Tuy nhiên, chúng tôi giới thiệu bao giờ như vậy một thời gian ngắn thời gian qua, lệnh chmod. 581 00:31:15,000 --> 00:31:20,000 Nếu tôi làm chmod a x +, có nghĩa là tất cả các executability cộng, 582 00:31:20,000 --> 00:31:26,000 và sau đó hello2.php và sau đó làm ls-l một lần nữa nhận thấy những thay đổi. 583 00:31:26,000 --> 00:31:29,000 Một, Linux được hiển thị cho tôi tên file màu xanh lá cây để truyền đạt ý tưởng 584 00:31:29,000 --> 00:31:32,000 nghĩ rằng nó được thực thi, nhưng quan trọng hơn, ở phía bên tay trái 585 00:31:32,000 --> 00:31:36,000 nhận thấy rằng các bit đại diện cho x cho thực thi đã được thiết lập. 586 00:31:36,000 --> 00:31:42,000 Điều này giờ đây có nghĩa là tôi có thể chạy ./hello2.php như bình thường, 587 00:31:42,000 --> 00:31:45,000 nhấn Enter, và vì công việc ở đầu của tập tin 588 00:31:45,000 --> 00:31:48,000 đó là một gợi ý, một lần nữa, Linux nói rằng 589 00:31:48,000 --> 00:31:51,000 sử dụng thông dịch viên để chạy tập tin này. 590 00:31:51,000 --> 00:31:54,000 Đừng lo lắng về việc buộc người dùng thực sự gõ nó. 591 00:31:54,000 --> 00:31:57,000 >> Và những gì là tốt đẹp bây giờ là đó là loại không liên quan đến khách hàng của tôi hay bạn bè của tôi 592 00:31:57,000 --> 00:32:01,000 ngôn ngữ mà tôi đã viết chương trình này, vì vậy tôi có thể đi về phía trước với mv 593 00:32:01,000 --> 00:32:04,000 và đổi tên điều này đến hello2, ví dụ. 594 00:32:04,000 --> 00:32:07,000 Và bây giờ nếu tôi làm ./hello2 595 00:32:07,000 --> 00:32:10,000 và thu nhỏ chương trình của tôi vẫn tiếp tục chạy. 596 00:32:10,000 --> 00:32:13,000 Những phần mở rộng tập tin là một quy ước của con người đó là cần thiết 597 00:32:13,000 --> 00:32:15,000 cho một cái gì đó như Clang và những người tìm kiếm chúng. 598 00:32:15,000 --> 00:32:18,000 Nhưng đối với PHP, tôi có thể gọi đây là phần mở rộng tập tin bất cứ điều gì tôi muốn. 599 00:32:18,000 --> 00:32:22,000 Tôi có thể lừa thế giới vào suy nghĩ rằng tôi thực sự tốt tại Ruby, 600 00:32:22,000 --> 00:32:25,000 và tôi có thể viết hello2.rb và sau đó chạy này, 601 00:32:25,000 --> 00:32:28,000 và thì đấy, bây giờ tôi có phiên bản Ruby, mà là một lời nói dối hoàn toàn. 602 00:32:28,000 --> 00:32:30,000 Tuy nhiên, các phần mở rộng tập tin là vô nghĩa 603 00:32:30,000 --> 00:32:35,000 nếu tập tin thực thi và có gợi ý này đặc biệt ở phía trên cùng của tập tin. 604 00:32:35,000 --> 00:32:38,000 >> Bây giờ, khi một sang một bên, hãy để tôi chỉ cho bạn một cách nhanh chóng phiên bản 3, 605 00:32:38,000 --> 00:32:40,000 được sắp xếp của một thủ thuật hữu ích để biết. 606 00:32:40,000 --> 00:32:45,000 Năm hello3, tôi đã làm một cái gì đó hơi sai 607 00:32:45,000 --> 00:32:47,000 Tôi sẽ cập nhật trực tuyến mã nguồn. 608 00:32:47,000 --> 00:32:50,000 Trong phiên bản 3 nó quay ra rằng trên hầu hết các máy tính Linux 609 00:32:50,000 --> 00:32:53,000 có một chương trình được gọi là môi cho môi trường, 610 00:32:53,000 --> 00:32:56,000 và những gì bạn có thể làm ở đây là nếu bạn không có ý tưởng mà PHP 611 00:32:56,000 --> 00:33:00,000 được cài đặt trên ổ đĩa cứng của địa phương, bởi vì thực sự nó có thể thay đổi dựa trên máy tính 612 00:33:00,000 --> 00:33:03,000 rằng ai đó đang sử dụng, env chỉ nói chạy env, 613 00:33:03,000 --> 00:33:07,000 mà là trên hầu hết các hệ thống, và tìm ra nơi mà PHP. 614 00:33:07,000 --> 00:33:11,000 Chỉ cần một thủ thuật thông thường, do đó bạn không phải lo lắng về việc tìm kiếm một chương trình. 615 00:33:11,000 --> 00:33:14,000 Nhưng nếu bạn quan tâm để tìm ra nơi mà một chương trình là bạn đã không được chăm sóc vậy, đến nay 616 00:33:14,000 --> 00:33:16,000 bạn có thể sử dụng lệnh đó. 617 00:33:16,000 --> 00:33:19,000 >> Hãy để tôi thu nhỏ và loại php, 618 00:33:19,000 --> 00:33:23,000 và nhận thấy nó nói với tôi nó thực sự trong usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 Đó là một lời nói dối. Nó cũng bin. 620 00:33:25,000 --> 00:33:27,000 Nó chỉ hiển thị cho tôi hit đầu tiên. 621 00:33:27,000 --> 00:33:31,000 Nếu bạn đã bao giờ tự hỏi nơi Clang, Clang, đó là trong usr / bin / kêu vang, 622 00:33:31,000 --> 00:33:34,000 mà làm cho usr / bin / thực hiện, và điều đó có nghĩa là tất cả thời gian này 623 00:33:34,000 --> 00:33:38,000 bạn có thể đã được gõ bin / usr / kêu vang nhập để chạy Clang, 624 00:33:38,000 --> 00:33:41,000 nhưng đó là loại tẻ nhạt để làm điều đó, do đó, một số thư mục 625 00:33:41,000 --> 00:33:44,000 như usr / bin và bin được giả định là mặc định 626 00:33:44,000 --> 00:33:50,000 do đó, máy tính biết để tìm trong chúng cho bạn. 627 00:33:50,000 --> 00:33:53,000 Bất kỳ câu hỏi về viết một chương trình, siêu siêu đơn giản Hello World 628 00:33:53,000 --> 00:33:55,000 trong PHP và sau đó chạy nó? 629 00:33:55,000 --> 00:33:59,000 Bởi vì bây giờ chúng tôi sẽ bắt đầu giới thiệu cú pháp hấp dẫn hơn. 630 00:33:59,000 --> 00:34:01,000 Được rồi, ở đây chúng tôi đi. 631 00:34:01,000 --> 00:34:03,000 Các chương trình này, chúng tôi đã nhìn thấy thực sự tất cả chúng trước. 632 00:34:03,000 --> 00:34:07,000 >> Nếu tôi mở ra, ví dụ, chúng ta hãy làm beer1.php, 633 00:34:07,000 --> 00:34:09,000 chúng tôi sẽ không đi qua một số phiên bản này, nhưng những gì tôi đã làm 634 00:34:09,000 --> 00:34:13,000 tôi ngồi xuống và đổ nó hoặc chuyển đổi 635 00:34:13,000 --> 00:34:15,000 C mã để mã PHP ở đây. 636 00:34:15,000 --> 00:34:18,000 Hầu hết các đầu của tập tin bình luận ở đây. 637 00:34:18,000 --> 00:34:20,000 Nó chỉ ra có một chức năng mới chúng ta cần kêu gọi readline. 638 00:34:20,000 --> 00:34:23,000 GetString, thu hồi, từ 0 Tuần trở đi là một điều CS50. 639 00:34:23,000 --> 00:34:27,000 PHP đi kèm với chức năng thân thiện với người sử dụng của riêng gọi là readline 640 00:34:27,000 --> 00:34:30,000 mất 1 đối số xác định dấu nhắc 641 00:34:30,000 --> 00:34:33,000 mà bạn muốn hiển thị cho người dùng, và những gì readline 642 00:34:33,000 --> 00:34:35,000 là nó trả về bất cứ điều gì người dùng gõ vào. 643 00:34:35,000 --> 00:34:39,000 Trong trường hợp này, tôi tuyên bố một biến gọi là $ n. 644 00:34:39,000 --> 00:34:42,000 Tôi đang lưu trữ trong nó giá trị trở lại của readline 645 00:34:42,000 --> 00:34:44,000 sau khi khiến người sử dụng với chuỗi này. 646 00:34:44,000 --> 00:34:47,000 Chỉ cần sao lưu, để thực sự chạy điều này, hãy để tôi đi trước 647 00:34:47,000 --> 00:34:50,000 và chạy php beer1.php. 648 00:34:50,000 --> 00:34:53,000 Sẽ có bao nhiêu chai? Chúng ta chỉ cần làm 2 lần này. 649 00:34:53,000 --> 00:34:55,000 Enter. Đó là tất cả. 650 00:34:55,000 --> 00:34:59,000 >> Chương trình này có chức năng giống hệt với phiên bản C từ vài tuần trước đây. 651 00:34:59,000 --> 00:35:01,000 Tuy nhiên, cú pháp chúng ta hãy xem những gì khác nhau. 652 00:35:01,000 --> 00:35:05,000 Sau khi tôi nhận được một int từ thông báo người dùng rằng tôi đang làm một số kiểm tra lỗi, 653 00:35:05,000 --> 00:35:08,000 và nếu n là ít hơn 1 bỏ thuốc lá và tôi in ra 654 00:35:08,000 --> 00:35:11,000 một tin nhắn xin lỗi đến người dùng và lối ra với 1. 655 00:35:11,000 --> 00:35:13,000 Điều này cũng là một chút khác nhau. 656 00:35:13,000 --> 00:35:16,000  Trong C, chúng tôi đã làm gì? Trong C, chúng tôi trở về 1. 657 00:35:16,000 --> 00:35:20,000 Trong PHP bạn thoát khỏi với 1, thẳng thắn là tôi suy nghĩ một chút trực quan hơn 658 00:35:20,000 --> 00:35:22,000 bởi vì bạn đang nghĩa đen thoát khỏi chương trình. 659 00:35:22,000 --> 00:35:25,000 Rồi, và sau đó xuống đây bài hát gây phiền nhiễu là giống hệt cú pháp 660 00:35:25,000 --> 00:35:29,000 ngoại trừ các biến, do đó, xuống đây trong dòng 24 trở đi 661 00:35:29,000 --> 00:35:31,000 chú ý cho vòng lặp là gần như giống nhau, 662 00:35:31,000 --> 00:35:34,000 nhưng tôi có ở phía trước của i và n, 663 00:35:34,000 --> 00:35:37,000 và cũng là mất tích từ dòng 26 chúng ta đã có trong quá khứ 664 00:35:37,000 --> 00:35:39,000 khi khai báo một i biến? 665 00:35:39,000 --> 00:35:41,000 Có loại nào. 666 00:35:41,000 --> 00:35:43,000 Là không chính xác trong PHP nói int. 667 00:35:43,000 --> 00:35:45,000 Bạn chỉ đơn giản là không cần phải làm điều đó. 668 00:35:45,000 --> 00:35:48,000 Máy tính, PHP thông dịch viên là đủ thông minh để nhận ra 669 00:35:48,000 --> 00:35:51,000 rằng nếu bạn đặt một số trong $ nó sẽ xử lý nó 670 00:35:51,000 --> 00:35:53,000 như một số cho bạn. 671 00:35:53,000 --> 00:35:57,000 Và sau đó xuống ở đây chúng tôi cắm $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Tất cả điều đó là như nhau, và sau đó xuống ở đây chúng tôi làm một "Wow, đó là gây phiền nhiễu" printf 673 00:36:00,000 --> 00:36:02,000 và sau đó thoát (0). 674 00:36:02,000 --> 00:36:05,000 >> Một lần nữa, takeaway ở đây là mặc dù chúng ta sẽ phải chi tiêu tương đối 675 00:36:05,000 --> 00:36:09,000 ít thời gian trên PHP, chắc chắn so với những gì chúng tôi đã làm trên C, 676 00:36:09,000 --> 00:36:12,000 nó gần như giống nhau, và do đó, những gì chúng tôi sẽ làm ngày hôm nay và tuần sau 677 00:36:12,000 --> 00:36:14,000 và xa hơn nữa là tập trung thực sự trên một số những ý tưởng mới. 678 00:36:14,000 --> 00:36:17,000 Chỉ để nhìn thấy rằng một trong những điều khác dịch từ C, 679 00:36:17,000 --> 00:36:20,000 đây là một chương trình siêu đơn giản chúng tôi đã làm trong Tuần 1 680 00:36:20,000 --> 00:36:22,000 hoặc 2 Cubed một giá trị. 681 00:36:22,000 --> 00:36:25,000 Nhưng điều thú vị ở thời gian về chương trình này là nó 682 00:36:25,000 --> 00:36:28,000 giới thiệu khái niệm về một chức năng bằng văn bản tùy chỉnh mà chính chúng tôi đã viết. 683 00:36:28,000 --> 00:36:31,000 Cú pháp trong PHP là gần như nhau. 684 00:36:31,000 --> 00:36:33,000 Đây là chương trình của tôi lên hàng đầu. 685 00:36:33,000 --> 00:36:35,000 Chú ý một lần nữa vắng mặt là bất cứ khái niệm chính. 686 00:36:35,000 --> 00:36:39,000 Tôi bắt đầu viết mã, và đây là những gì đang xảy ra để có được thực hiện bởi các thông dịch viên. 687 00:36:39,000 --> 00:36:42,000 Tôi in ra x là 2, có lẽ. 688 00:36:42,000 --> 00:36:44,000 Sau đó, tôi cho cubing ... 689 00:36:44,000 --> 00:36:47,000 Sau đó, tôi gọi là chức năng khối lập phương và vượt qua trong $ x 690 00:36:47,000 --> 00:36:50,000 và gán giá trị trả lại $ x. 691 00:36:50,000 --> 00:36:53,000 Sau đó, tôi cho rằng nó Cubed, và sau đó tôi nói điều này, mà hy vọng 692 00:36:53,000 --> 00:36:55,000 sẽ nói x bây giờ là 8. 693 00:36:55,000 --> 00:36:59,000 Cú pháp cho các chức năng trong PHP bao giờ nên hơi khác nhau. 694 00:36:59,000 --> 00:37:01,000 Một lần nữa mất tích là kiểu trả về. 695 00:37:01,000 --> 00:37:05,000 Một lần nữa mất tích được kiểu trả về và cũng thiếu là những gì các loại? 696 00:37:05,000 --> 00:37:07,000 [Không nghe được sinh viên phản ứng] 697 00:37:07,000 --> 00:37:10,000 Vâng, không sao, đó là tốt. Hãy quay trở lại trong một lần thứ hai. 698 00:37:10,000 --> 00:37:12,000 >> Chúng tôi không có, ví dụ, int đây. 699 00:37:12,000 --> 00:37:15,000 Chúng tôi không, ví dụ, đã int ở đây bởi vì, một lần nữa, trong PHP 700 00:37:15,000 --> 00:37:18,000 bạn chỉ đơn giản là không cần và không nên làm điều đó, 701 00:37:18,000 --> 00:37:20,000 mà là có từ khoá này mới được gọi là chức năng. 702 00:37:20,000 --> 00:37:23,000 Trong PHP, nó gần như một ít rõ ràng hơn bởi vì khi bạn muốn có một hàm 703 00:37:23,000 --> 00:37:26,000 bạn có nghĩa là nói chức năng, bạn cung cấp cho nó một cái tên và sau đó một danh sách cách nhau bằng dấu phẩy 704 00:37:26,000 --> 00:37:28,000 nếu có các đối số của nó. 705 00:37:28,000 --> 00:37:32,000 Không cần phải nói có giá trị hoặc bất cứ điều gì như thế, và sau đó trả lại là giống nhau, 706 00:37:32,000 --> 00:37:35,000 $ A * $ a * $ a. 707 00:37:35,000 --> 00:37:38,000 Gì cũng là mất tích? Sammy chỉ ra điều này ở đây. 708 00:37:38,000 --> 00:37:43,000 Ở phía trên của các tập tin hoàn toàn vắng mặt trong PHP cũng là một nguyên mẫu. 709 00:37:43,000 --> 00:37:45,000 Điều này cũng là do thiết kế. 710 00:37:45,000 --> 00:37:48,000 Ngôn ngữ và phiên dịch như PHP thông minh hơn so với C bao giờ hết 711 00:37:48,000 --> 00:37:50,000 trong trình biên dịch như Clang. 712 00:37:50,000 --> 00:37:53,000 >> Nhớ lại rằng Clang, nếu bạn không nói với nó rằng khối lập phương tồn tại, 713 00:37:53,000 --> 00:37:56,000 nếu bạn không nói với nó rằng printf tồn tại như một nguyên mẫu 714 00:37:56,000 --> 00:38:00,000 hoặc với một # bao gồm, tốt, nó sẽ hét vào mặt bạn và thậm chí không biên dịch mã của bạn. 715 00:38:00,000 --> 00:38:03,000 PHP và các ngôn ngữ hiện đại hơn rất nhiều thông minh hơn khi nói đến điều này. 716 00:38:03,000 --> 00:38:07,000 Họ sẽ mang nó theo mình để đọc qua tất cả các mã của bạn 717 00:38:07,000 --> 00:38:11,000 và sau đó hét lên với bạn nếu nó tìm thấy nơi nào khối lập phương. 718 00:38:11,000 --> 00:38:15,000 Nó không quan trọng nếu khối lập phương là ở dưới cùng hoặc trên cùng hoặc thậm chí trong một số tập tin riêng biệt. 719 00:38:15,000 --> 00:38:18,000 Ngôn ngữ PHP và tương tự là đủ thông minh để nhìn về phía trước 720 00:38:18,000 --> 00:38:26,000 tại tất cả mọi thứ trước khi thấy bạn như là một sai lầm. 721 00:38:26,000 --> 00:38:28,000 Trường hợp nào để lại cho chúng tôi? 722 00:38:28,000 --> 00:38:32,000 >> Hãy làm một ví dụ cuối cùng ở đây trong điều kiện, 723 00:38:32,000 --> 00:38:35,000 và nếu tôi mở thông báo conditions2.php 724 00:38:35,000 --> 00:38:37,000 cú pháp ở đây là gần như nhau. 725 00:38:37,000 --> 00:38:40,000 Tôi đang sử dụng readline thay vì GetString, nhưng dòng đó là giống như trước, 726 00:38:40,000 --> 00:38:42,000 "Tôi muốn một số nguyên." 727 00:38:42,000 --> 00:38:45,000 Sau đó tôi có một điều kiện, nếu nếu người nào khác, và sau đó một người nào khác, 728 00:38:45,000 --> 00:38:48,000 nhưng chức năng chương trình này cũng giống với những gì chúng tôi đã làm tuần trước, 729 00:38:48,000 --> 00:38:51,000 vì vậy nếu tôi chạy điều này, php của conditions2, 730 00:38:51,000 --> 00:38:54,000 và tôi cung cấp cho nó một số như 23 - 731 00:38:54,000 --> 00:38:57,000 Tôi chọn một số dương. Nếu tôi cho nó -1 tôi đã chọn một số âm. 732 00:38:57,000 --> 00:39:00,000 Nếu tôi cho nó 0, tôi thực sự đã chọn 0. 733 00:39:00,000 --> 00:39:02,000 Vì vậy, những người quan tâm đến tất cả những điều này? 734 00:39:02,000 --> 00:39:06,000 Vâng, một trong các loại thú vị của các bài tập ở đây 735 00:39:06,000 --> 00:39:10,000 cho tôi ít nhất là quay trở lại và xem một cách nhanh chóng như thế nào tôi có thể thực hiện pset 5, 736 00:39:10,000 --> 00:39:12,000 pset lỗi chính tả. 737 00:39:12,000 --> 00:39:15,000 Ta đã có tập tin này được gọi là speller.c, 738 00:39:15,000 --> 00:39:17,000 và có một tập tin gọi dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Những gì tôi đã làm là tôi loại dành vài phút và tôi chuyển đổi mã C 740 00:39:20,000 --> 00:39:23,000 mã PHP, và chúng tôi sẽ không dành nhiều thời gian trên speller 741 00:39:23,000 --> 00:39:26,000 bởi vì giống như trong pset 5 bạn đã không thực sự cần phải 742 00:39:26,000 --> 00:39:29,000 dành nhiều thời gian trên speller chính nó bởi vì sự chú ý của bạn trên một từ điển. 743 00:39:29,000 --> 00:39:32,000 >> Nó đủ để nói rằng nếu bạn đọc thông qua speller, 744 00:39:32,000 --> 00:39:35,000 tập tin này ở đây, nó là khá nhiều tương đương với mã C 745 00:39:35,000 --> 00:39:37,000 chúng tôi đã cho bạn cho pset 5. 746 00:39:37,000 --> 00:39:39,000 Tôi đã chỉ cần thêm một số ở những nơi. 747 00:39:39,000 --> 00:39:43,000 Tôi đã thay đổi tên chức năng nhất định nếu họ không tồn tại trong PHP. 748 00:39:43,000 --> 00:39:45,000 Có thêm một điều ở đây, preg_match, 749 00:39:45,000 --> 00:39:48,000 đó là một chút fancier cách làm một cái gì đó, nhưng chúng tôi sẽ trở lại mà cuối cùng. 750 00:39:48,000 --> 00:39:51,000 Tuy nhiên, trong ngắn hạn, speller là gần như giống hệt nhau, và nếu bạn nhìn ở dưới cùng rất 751 00:39:51,000 --> 00:39:54,000 những gì nó cuối cùng thốt ra những điều này ở đây, 752 00:39:54,000 --> 00:39:57,000 từ sai chính tả, các từ trong từ điển, từ trong văn bản. 753 00:39:57,000 --> 00:40:00,000 Được rồi, vì vậy những gì thú vị bây giờ là sau đây. 754 00:40:00,000 --> 00:40:05,000 Ở phía trên cùng của tập tin của tôi, tôi đang yêu cầu dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Cũng giống như C # bao gồm PHP có một chức năng đặc biệt được gọi là yêu cầu 756 00:40:09,000 --> 00:40:14,000 có khá nhiều làm điều tương tự, yêu cầu một tập tin gọi dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Làm thế nào tôi có thể đi về thực hiện pset 5? 758 00:40:18,000 --> 00:40:21,000 Hãy để tôi đi trước và mở một file ở đây. 759 00:40:21,000 --> 00:40:24,000 Hãy để tôi lấy một tham chiếu nhỏ ở đây. 760 00:40:24,000 --> 00:40:29,000 Và hãy để tôi tạo ra một tập tin mới và bắt đầu kêu gọi này dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Hãy để tôi đặt nó trong một thư mục khác để chúng ta có thể làm điều này sống. 762 00:40:31,000 --> 00:40:33,000 Và bây giờ tôi sẽ phóng to. 763 00:40:33,000 --> 00:40:37,000 Tôi sẽ bắt đầu file PHP của tôi với khung mở php đóng khung. 764 00:40:37,000 --> 00:40:40,000 Và sau đó ở đây có một vài chức năng cần thiết để thực hiện cho pset 5, 765 00:40:40,000 --> 00:40:42,000 vì vậy hãy để tôi bắt đầu thực hiện một số những người, 766 00:40:42,000 --> 00:40:47,000 chức năng kiểm tra, trong đó có một từ trong như một đối số. 767 00:40:47,000 --> 00:40:49,000 Chúng tôi sẽ làm điều đó và trở về với nó trong một thời điểm. 768 00:40:49,000 --> 00:40:53,000 >> Có chức năng tải, trong những gì như một tham số? 769 00:40:53,000 --> 00:40:56,000 Từ điển, do đó, các tập tin rằng tôi thực sự muốn tải. 770 00:40:56,000 --> 00:41:00,000 Có chức năng kích thước, mà không có bất kỳ đối số 771 00:41:00,000 --> 00:41:04,000 và có chức năng gì khác? 772 00:41:04,000 --> 00:41:06,000 Dỡ bỏ, mà đã không có bất kỳ đối số. 773 00:41:06,000 --> 00:41:10,000 Đây là 4 chức năng mà tôi sẽ cần phải thực hiện trong PHP, 774 00:41:10,000 --> 00:41:13,000 và những gì tôi sẽ làm là đi trước và làm điều này. 775 00:41:13,000 --> 00:41:16,000 Rất nhiều bạn đã sử dụng một bảng băm trong pset 5, 776 00:41:16,000 --> 00:41:21,000 vì vậy hãy để tôi đi trước và tạo ra một bảng băm trong PHP. 777 00:41:21,000 --> 00:41:23,000 Xong. 778 00:41:23,000 --> 00:41:25,000 Điều đó mang lại cho tôi một bảng băm. Vâng, tại sao? 779 00:41:25,000 --> 00:41:30,000 Một biến được gọi là $ table, chỉ để gợi lên ý tưởng về một bảng băm. 780 00:41:30,000 --> 00:41:34,000 Các dấu ngoặc vuông, mặc dù, nhớ lại, đại diện cho những gì? 781 00:41:34,000 --> 00:41:37,000 Một mảng, nhưng trong mảng PHP không được lập chỉ mục số lượng. 782 00:41:37,000 --> 00:41:41,000 Họ cũng có thể là mảng kết hợp, 783 00:41:41,000 --> 00:41:44,000 có nghĩa là bạn có thể có các phím tùy ý và giá trị. 784 00:41:44,000 --> 00:41:49,000 >> Giống như trong 5 pset, những người bạn của những người đã làm việc triển khai bảng băm 785 00:41:49,000 --> 00:41:53,000 bạn có thể chèn vào các từ và sau đó đưa nó vào một chuỗi các danh sách liên kết, 786 00:41:53,000 --> 00:41:56,000 hoặc bạn lưu trữ các giá trị của một nơi nào đó hoặc một cái gì đó thật sự để có hiệu lực đó. 787 00:41:56,000 --> 00:41:59,000 Bạn nào đó nhớ một thực tế rằng các từ đã có. 788 00:41:59,000 --> 00:42:01,000 Để bây giờ, sẽ là bảng băm của tôi, 789 00:42:01,000 --> 00:42:06,000 và vì vậy bây giờ để đi về thực hiện chức năng kiểm tra 790 00:42:06,000 --> 00:42:09,000 Tôi chỉ cần nhìn vào bên trong đó bảng băm 791 00:42:09,000 --> 00:42:11,000 và xem nếu một từ là ở đó. 792 00:42:11,000 --> 00:42:15,000 Những gì tôi sẽ làm là tôi sẽ nói nếu 793 00:42:15,000 --> 00:42:20,000 chúng ta hãy nói isset, đó là một hàm PHP mà nghĩa đen chỉ có nghĩa là các thiết lập quan trọng, 794 00:42:20,000 --> 00:42:24,000 để isset ($ table [từ], 795 00:42:24,000 --> 00:42:29,000 và nếu như vậy trở lại đúng sự thật. 796 00:42:29,000 --> 00:42:32,000 Có bấy nhiêu thôi. Đó là pset 5 trong PHP. 797 00:42:32,000 --> 00:42:34,000 Vâng, trong sự công bằng, okay. 798 00:42:34,000 --> 00:42:37,000 Khác trở về sai, vì thế nó không có ở đó. 799 00:42:37,000 --> 00:42:39,000 Những gì thực sự xảy ra ở đây? 800 00:42:39,000 --> 00:42:42,000 Vâng, nếu bảng hoặc bảng băm ở đây nói chung 801 00:42:42,000 --> 00:42:46,000 là một mảng kết hợp có nghĩa là bạn có thể chỉ mục vào nó 802 00:42:46,000 --> 00:42:50,000 với một từ như "từ, và bạn có để có được trở lại một số giá trị. 803 00:42:50,000 --> 00:42:52,000 >> Chúng tôi đã loại đi trước một bước của chính chúng ta. 804 00:42:52,000 --> 00:42:56,000 Nó sẽ là loại tốt đẹp nếu chúng ta thực sự được nạp các tập tin đầu tiên, 805 00:42:56,000 --> 00:42:58,000 do đó, tải là không đơn giản, nhưng hãy để tôi đi trước và whip lên 806 00:42:58,000 --> 00:43:00,000  thực hiện thực sự nhanh chóng tải. 807 00:43:00,000 --> 00:43:07,000 Hãy để tôi đi trước và nói những lời nói được tập tin từ điển. 808 00:43:07,000 --> 00:43:10,000 Chức năng tập tin trong PHP mở một tập tin 809 00:43:10,000 --> 00:43:12,000 và trả về cho bạn một mảng của tất cả các từ trong tập tin đó, 810 00:43:12,000 --> 00:43:14,000 chỉ tay chúng cho bạn. 811 00:43:14,000 --> 00:43:16,000 Đó là một nỗi đau lớn quá, được không? 812 00:43:16,000 --> 00:43:21,000 Bây giờ foreach, đây là xây dựng mới của chúng tôi, foreach ($ từ $ từ). 813 00:43:21,000 --> 00:43:25,000 Vòng lặp này sẽ bắt đầu iterating trên các từ mảng 814 00:43:25,000 --> 00:43:30,000 và gán cho biến $ từ mỗi từ trong tập tin 815 00:43:30,000 --> 00:43:32,000 từ lần đầu tiên vào thứ hai thứ ba đến cách thứ tư tất cả các 816 00:43:32,000 --> 00:43:35,000 vì vậy tôi không phải làm [i] ký hiệu gây phiền nhiễu và muốn. 817 00:43:35,000 --> 00:43:38,000 Và những gì tôi chỉ đơn giản là để làm cho mỗi người trong số những từ này 818 00:43:38,000 --> 00:43:43,000 được lưu trữ trong bảng của tôi bằng cách đánh chỉ mục vào bảng 819 00:43:43,000 --> 00:43:47,000 và sau đó làm đúng bởi vì nhớ 820 00:43:47,000 --> 00:43:50,000 rằng một từ trong từ điển của tôi tất cả những gì tôi thực sự phải làm 821 00:43:50,000 --> 00:43:55,000 loại lật một chút và nói từ này trong bảng băm của tôi là có, đúng sự thật. 822 00:43:55,000 --> 00:43:58,000 Và nếu nó không có ở đó, tôi không phải rõ ràng đặt sai, 823 00:43:58,000 --> 00:44:01,000 nếu không tôi có phải đặt sai cho tất cả các từ có thể có trong vũ trụ. 824 00:44:01,000 --> 00:44:05,000 >> Nó cũng đủ cho tôi chỉ để thiết lập một giá trị chỉ số 825 00:44:05,000 --> 00:44:09,000 đúng nếu một từ thực sự là trong bảng băm của tôi. 826 00:44:09,000 --> 00:44:12,000 Bây giờ, tôi cắt một vài góc ở đây mà tôi sẽ vẫy tay của tôi bây giờ, 827 00:44:12,000 --> 00:44:15,000 nhưng bây giờ các chức năng tải được thực hiện. 828 00:44:15,000 --> 00:44:18,000 Tôi tải tất cả các từ từ tập tin vào một mảng. 829 00:44:18,000 --> 00:44:21,000 Tôi lặp qua mảng đó, và cho mỗi từ trong mảng 830 00:44:21,000 --> 00:44:24,000 Tôi cắm nó vào bảng băm của tôi với 1 dòng mã. 831 00:44:24,000 --> 00:44:26,000 Điều này là thú vị. Bạn biết làm thế nào chúng ta có thể thực hiện kích thước bây giờ? 832 00:44:26,000 --> 00:44:28,000 Vâng, kích thước luôn luôn là khá dễ dàng, trong sự công bằng. 833 00:44:28,000 --> 00:44:32,000 Ở đây chúng tôi chỉ có thể làm được trả lại số của bảng. 834 00:44:32,000 --> 00:44:34,000 Đó là khá dễ dàng quá, đếm số thứ trong bảng. 835 00:44:34,000 --> 00:44:36,000 Đó là loại thực sự không phải là hiệu quả nhất. 836 00:44:36,000 --> 00:44:39,000 Tôi có lẽ nên có một kích thước được gọi là biến, do đó chúng ta có thể làm điều đó 837 00:44:39,000 --> 00:44:41,000 trong thời gian liên tục, nhưng đó là khá dễ dàng. 838 00:44:41,000 --> 00:44:45,000 Oh, và sau đó dỡ bỏ, nếu chúng ta thực sự muốn có hậu môn ở đây 839 00:44:45,000 --> 00:44:47,000 chúng ta có thể nói rằng đó là cách bạn lấy một cái gì đó. 840 00:44:47,000 --> 00:44:49,000 Bạn chỉ cần đặt biến bằng một mảng rỗng, 841 00:44:49,000 --> 00:44:51,000 và nó sẽ loại bỏ tất cả những gì đã có. 842 00:44:51,000 --> 00:44:53,000 Không cần gọi miễn phí. 843 00:44:53,000 --> 00:44:56,000 >> Một lần nữa, tôi đã cắt một số góc, và tôi xin lỗi vì đặt vấn đề giao 5 844 00:44:56,000 --> 00:45:00,000 có lẽ trong C, nhưng nếu bây giờ chúng ta đi trước và chạy này, 845 00:45:00,000 --> 00:45:02,000 Tôi sẽ thực sự chạy các phiên bản mà tôi đã viết trước 846 00:45:02,000 --> 00:45:05,000 vì vậy mà tôi đã không làm cho bất kỳ sai lầm cú pháp nào. 847 00:45:05,000 --> 00:45:08,000 Hãy để tôi đi trước và chạy speller. Sử dụng là như nhau. 848 00:45:08,000 --> 00:45:12,000 Đây là một tập tin từ điển mà chỉ chứa các từ foo. 849 00:45:12,000 --> 00:45:15,000 Dưới đây là một file văn bản chỉ chứa foo bar. 850 00:45:15,000 --> 00:45:19,000 Hãy kiểm tra chính tả này, vì vậy speller, bằng cách sử dụng tập tin từ điển này trên tập tin văn bản. 851 00:45:19,000 --> 00:45:21,000 Có một lỗi chính tả, bar, và thì đấy. 852 00:45:21,000 --> 00:45:23,000 Thực hiện với pset 5. 853 00:45:23,000 --> 00:45:30,000 Hãy nghỉ ngơi 5-phút ở đây, và chúng tôi sẽ trở lại và nhiều hơn vào PHP. 854 00:45:30,000 --> 00:45:32,000 Được rồi, chúng ta trở lại. 855 00:45:32,000 --> 00:45:34,000 Chúng ta hãy làm ghét tôi trong một thời gian. 856 00:45:34,000 --> 00:45:37,000 Bây giờ chúng ta thực sự thấy nếu điều này không phải là một tích cực 857 00:45:37,000 --> 00:45:39,000 thực sự thực hiện điều này trong PHP. 858 00:45:39,000 --> 00:45:43,000 Cấp, nó mất 45 giây để thực hiện. 859 00:45:43,000 --> 00:45:45,000 >> Nhưng chúng ta hãy đi trước và chạy mọi thứ. 860 00:45:45,000 --> 00:45:49,000 Hãy để tôi đi trước và chạy một phiên bản C 861 00:45:49,000 --> 00:45:52,000 speller, và chúng tôi sẽ chạy nó trên một trong các tập tin lớn nhất, 862 00:45:52,000 --> 00:45:54,000 đó là Kinh Thánh King James. 863 00:45:54,000 --> 00:45:57,000 Và ở đây là trong chúng ta hãy đi vào thư mục C của chúng tôi, 864 00:45:57,000 --> 00:46:01,000 speller về King James 5. 865 00:46:01,000 --> 00:46:03,000 Rất nhiều từ sai chính tả. 866 00:46:03,000 --> 00:46:06,000 Được rồi, vậy là đầu ra bạn có thể có ngay cả khi thời gian là một chút khác nhau, 867 00:46:06,000 --> 00:46:09,000 nếu bạn có tất cả mọi thứ làm việc một cách chính xác, và thời gian để tổng kiểm tra chính tả 868 00:46:09,000 --> 00:46:13,000 King James Bible là 0,38 giây, khá tốt bằng cách sử dụng mà thực hiện. 869 00:46:13,000 --> 00:46:16,000 Bây giờ hãy để tôi đi vào trong phiên bản PHP, mà chúng tôi chỉ viết. 870 00:46:16,000 --> 00:46:18,000 Hãy để tôi chạy speller King James. 871 00:46:18,000 --> 00:46:21,000 Whoops, bỏ qua lỗi đó. Tôi đang ở trong thư mục sai. 872 00:46:21,000 --> 00:46:24,000 Speller về King James 5. 873 00:46:46,000 --> 00:46:48,000 Gần xong rồi. 874 00:46:48,000 --> 00:46:51,000 >> Được rồi, người quan sát sắc sảo sẽ nhận ra đó là hơn 3 giây. 875 00:46:51,000 --> 00:46:54,000 Đó là thời gian thực sự chạy. 876 00:46:54,000 --> 00:46:58,000 Nó chỉ ra rằng phải mất thời gian để nhổ rất nhiều văn bản ra 877 00:46:58,000 --> 00:47:00,000 vì đệm vấn đề, nhưng câu chuyện dài ngắn, 878 00:47:00,000 --> 00:47:04,000 đó là 3,15 giây của cỗ máy thời gian, thời gian CPU, 879 00:47:04,000 --> 00:47:07,000 so với nó là một chút thời gian trước đây? 880 00:47:07,000 --> 00:47:09,000 Giống như .3. 881 00:47:09,000 --> 00:47:11,000 Ý tôi là, nó là một thứ tự cường độ chậm hơn, do đó, nơi đó là 882 00:47:11,000 --> 00:47:14,000 vô lý suy thoái đến từ đâu? 883 00:47:14,000 --> 00:47:17,000 Vâng, như đã được các trường hợp với bất cứ quyết định thiết kế mà chúng tôi đã thực hiện 884 00:47:17,000 --> 00:47:21,000 trong các lớp học trong 9 tuần qua có gần như luôn luôn cân bằng này. 885 00:47:21,000 --> 00:47:24,000 Đôi khi giữa không gian, đôi khi giữa không gian và thời gian, 886 00:47:24,000 --> 00:47:27,000 không gian, thời gian và nỗ lực phát triển, và thực sự ở đây, mặc dù 887 00:47:27,000 --> 00:47:31,000 chúng tôi đã lưu một lượng lớn thời gian, có thể có khả năng 10-20-30 giờ 888 00:47:31,000 --> 00:47:34,000 phát triển thời gian thực hiện kiểm tra chính tả 889 00:47:34,000 --> 00:47:36,000 bằng cách khâu vắt chỉ trong 45 giây với ngôn ngữ này 890 00:47:36,000 --> 00:47:40,000 cái giá phải trả là nó là một thứ tự cường độ chậm như một kết quả, 891 00:47:40,000 --> 00:47:43,000 và điều này thường là trường hợp với bất kỳ ngôn ngữ giải thích nhất, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl hoặc những người khác theo đó 893 00:47:46,000 --> 00:47:49,000 nếu bạn đang đi để chạy nó thông qua một thông dịch viên và có nó đọc code của bạn 894 00:47:49,000 --> 00:47:52,000 từng dòng một, trên xuống dưới, trái sang phải, 895 00:47:52,000 --> 00:47:55,000 mà trung gian là sẽ mất một số thời gian của riêng của mình, 896 00:47:55,000 --> 00:47:59,000 và những gì bạn đang cảm thấy ở đây trong 3 giây như trái ngược với 0,3 giây 897 00:47:59,000 --> 00:48:02,000 là một thực tế rằng có người nào đó có nghĩa là giải thích mã của chúng tôi 898 00:48:02,000 --> 00:48:05,000 từng dòng một, và Thiên Chúa cấm nếu bạn đang ở trong một vòng lặp 899 00:48:05,000 --> 00:48:08,000 với một tập tin khổng lồ chứa hàng trăm hàng ngàn từ. 900 00:48:08,000 --> 00:48:11,000 >> Rằng chi phí sẽ tăng lên và tăng lên và tăng lên và thêm lên. 901 00:48:11,000 --> 00:48:16,000 Đối với một công cụ như thế này, nó có thể không phải là ngôn ngữ tốt nhất để sử dụng cho việc thực hiện 902 00:48:16,000 --> 00:48:20,000 kiểm tra chính tả nếu trực tiếp là quan tâm đến người dùng của bạn và cho bạn. 903 00:48:20,000 --> 00:48:23,000 Tuy nhiên, sự sang trọng mà chúng ta có trong một thời điểm là nếu bạn 904 00:48:23,000 --> 00:48:27,000 sử dụng một ngôn ngữ như PHP hoặc rất nhiều các ngôn ngữ thông dịch 905 00:48:27,000 --> 00:48:30,000 trong bối cảnh của Web, cho rằng vấn đề, bạn có lợi ích 906 00:48:30,000 --> 00:48:34,000 rằng Internet là chậm hơn rất nhiều so với hầu hết các máy tính. 907 00:48:34,000 --> 00:48:38,000 Bạn có một CPU GHz trong máy tính của bạn, 2 GHz, có thể nhiều hơn những ngày này. 908 00:48:38,000 --> 00:48:41,000 Nhưng thực tế trên mạng Internet có một số lượng cao của độ trễ 909 00:48:41,000 --> 00:48:45,000 theo đó cho một trình duyệt để nói chuyện với một máy chủ, mặc dù chúng ta đã thấy tuần trước 910 00:48:45,000 --> 00:48:47,000 đó là khá nhanh, một nửa một phần nghìn giây hoặc lâu hơn, 911 00:48:47,000 --> 00:48:51,000 đó cũng cho biết thêm lên, và nếu bạn đang tải về những thứ như một hình ảnh 912 00:48:51,000 --> 00:48:54,000 hoặc một bức ảnh Facebook hoặc nhận được tin nhắn trên Facebook trò chuyện, 913 00:48:54,000 --> 00:48:57,000 Gchat hoặc tương tự, tất cả những thời gian chuyến đi vòng quanh 914 00:48:57,000 --> 00:49:00,000 giữa trình duyệt và máy chủ bắt đầu để thêm lên, 915 00:49:00,000 --> 00:49:03,000 mà làm cho sự lựa chọn của ngôn ngữ cụ thể của bạn trong nhiều trường hợp 916 00:49:03,000 --> 00:49:07,000 không phải tất cả có liên quan, do đó, bạn đang tốt đẹp bằng cách sử dụng một ngôn ngữ hơi chậm 917 00:49:07,000 --> 00:49:10,000 như PHP hay Python hay Ruby 918 00:49:10,000 --> 00:49:13,000 nhưng đó là mặt tích cực rất lớn cho bạn và đồng nghiệp của bạn 919 00:49:13,000 --> 00:49:17,000 và bạn bè của bạn bởi vì bạn có thể thực hiện những điều như vậy, do đó, nhanh hơn nhiều. 920 00:49:17,000 --> 00:49:20,000 Và hơn thế nữa, bạn có nguy cơ ít hơn nhiều của một số lỗ hổng bảo mật. 921 00:49:20,000 --> 00:49:22,000 Không có con trỏ trong PHP. 922 00:49:22,000 --> 00:49:25,000 Có không có lỗi seg mà bạn có thể dễ dàng gây ra 923 00:49:25,000 --> 00:49:27,000 trong cùng một cách bạn có thể trong C. 924 00:49:27,000 --> 00:49:29,000 Với C bạn siêu gần đến phần cứng. 925 00:49:29,000 --> 00:49:33,000 Với ngôn ngữ PHP và tương tự, bạn là loại cấp cao hơn, do đó, để nói chuyện, 926 00:49:33,000 --> 00:49:37,000 với rất nhiều bảo vệ giữa bạn và những gì thực sự xảy ra 927 00:49:37,000 --> 00:49:39,000 bên trong máy, và nó chỉ là một sự cân bằng. 928 00:49:39,000 --> 00:49:42,000 >> Chúng tôi đã nhận được đến điểm có những hiện đại hơn, ngôn ngữ cấp cao 929 00:49:42,000 --> 00:49:47,000 như PHP bởi vì các bài học kinh nghiệm trong các ngôn ngữ như PHP trong C. 930 00:49:47,000 --> 00:49:50,000 Nhưng nếu bạn không hiểu những gì đã xảy ra bên dưới mui xe này 931 00:49:50,000 --> 00:49:53,000 bạn chắc chắn không thể thực hiện quyền quyết định thiết kế, 932 00:49:53,000 --> 00:49:56,000 và chắc chắn khi nói đến làm việc tại một nơi như Facebook hay Google 933 00:49:56,000 --> 00:49:59,000 hoặc bất kỳ của những nơi này đang ngày càng chơi với dữ liệu lớn đặt 934 00:49:59,000 --> 00:50:01,000 ngay cả khi bạn quay trở lại và làm premed và đang làm việc với một số MD 935 00:50:01,000 --> 00:50:04,000 trên một số dữ liệu lớn thiết lập liên quan đến các bệnh nhân và các bác sĩ 936 00:50:04,000 --> 00:50:08,000 và giống như cách sử dụng các công cụ thích hợp là cực kỳ hấp dẫn 937 00:50:08,000 --> 00:50:11,000 bởi vì nếu không phân tích của một số thiết lập dữ liệu có thể mất vài giây, 938 00:50:11,000 --> 00:50:14,000 hoặc nó cũng có thể mất thời gian. 939 00:50:14,000 --> 00:50:17,000 Đây chỉ là một ví dụ, không làm thất bại với nỗ lực nhiều hơn bao nhiêu 940 00:50:17,000 --> 00:50:21,000 đó là trong C, nhưng để giúp bạn đánh giá cao điều đó khi bạn thực hiện một cái gì đó trong C 941 00:50:21,000 --> 00:50:24,000 bạn thực sự hiểu, hoặc trong lý thuyết, thực sự hiểu 942 00:50:24,000 --> 00:50:28,000 tất cả mọi thứ là như thế nào hoặc cần được làm việc, và bạn có quyền kiểm soát gần như đầy đủ 943 00:50:28,000 --> 00:50:31,000 hơn những gì đang xảy ra bên dưới mui xe, và với các ngôn ngữ cấp cao hơn 944 00:50:31,000 --> 00:50:34,000 bạn phải từ bỏ kiểm soát nhiều hơn những người phát minh ra chúng 945 00:50:34,000 --> 00:50:37,000 và có thể nhiều hơn để quyết định thiết kế của họ hơn của bạn. 946 00:50:37,000 --> 00:50:41,000 Nhưng nếu chúng ta coi rằng hiệu suất 947 00:50:41,000 --> 00:50:44,000 không phải là khá quan trọng trên Web vì những vấn đề khác, 948 00:50:44,000 --> 00:50:47,000 chỉ tốc độ mạng là một chút chậm hơn so với tốc độ CPU anyway, 949 00:50:47,000 --> 00:50:50,000 vì vậy chúng tôi có thể sắp xếp đủ khả năng để sử dụng một ngôn ngữ hơi chậm 950 00:50:50,000 --> 00:50:55,000 nếu các mặt tích cực, chúng ta có thể phát triển nhanh gấp 10 lần hoặc hơn. 951 00:50:55,000 --> 00:50:57,000 >> Chúng ta hãy xem làm thế nào chúng ta có thể bắt đầu bằng cách sử dụng này. 952 00:50:57,000 --> 00:51:00,000 Hãy để tôi đi vào một thư mục 953 00:51:00,000 --> 00:51:03,000 trong số những ví dụ ngày nay được gọi là frosh.ims, 954 00:51:03,000 --> 00:51:06,000 và điều này đã thực sự cá nhân thúc đẩy bởi thực tế là điều đầu tiên 955 00:51:06,000 --> 00:51:10,000 Tôi đã viết cho Web năm trước sau khi lấy CS50 và CS51 956 00:51:10,000 --> 00:51:14,000 là một trang web cho chương trình tin nhắn tức thì Frosh, thể thao, sinh viên năm thứ nhất trong thành, 957 00:51:14,000 --> 00:51:16,000 thời gian này đủ năm trước đây, vào thời điểm đó 958 00:51:16,000 --> 00:51:19,000 không có trang web cho chương trình, mặc dù đã có một trang Web, 959 00:51:19,000 --> 00:51:22,000 và thay vào đó là một người giám sát trong Wigglesworth theo đó nếu bạn muốn 960 00:51:22,000 --> 00:51:26,000 để đăng ký cho bóng chuyền hoặc bóng đá hoặc bất cứ điều gì, bạn sẽ điền vào một mảnh giấy. 961 00:51:26,000 --> 00:51:28,000 Sau đó bạn sẽ đi bộ trên sân. 962 00:51:28,000 --> 00:51:31,000 Sau đó bạn sẽ gõ cửa và trình diễn của họ trong cửa hoặc bàn tay của họ để giám thị 963 00:51:31,000 --> 00:51:34,000 một mảnh giấy với tên của bạn trên đó, có hoặc không bạn muốn có một đội trưởng, 964 00:51:34,000 --> 00:51:37,000 môn thể thao nào muốn làm, và những gì ký túc xá của bạn. 965 00:51:37,000 --> 00:51:39,000 Nó đã được sắp xếp một cách trường học cũ làm việc, và đây là một nguyên tố 966 00:51:39,000 --> 00:51:41,000 cơ hội để tự động hoá rất nhiều của quá trình này. 967 00:51:41,000 --> 00:51:43,000 Bạn chỉ cần đi đến trang web. Bạn gõ một cái gì đó. 968 00:51:43,000 --> 00:51:46,000 Bạn nhận được một email xác nhận, và sự bùng nổ, bạn đang làm. 969 00:51:46,000 --> 00:51:49,000 >> Đây là điều đầu tiên tôi đã làm, mặc dù trong một ngôn ngữ được gọi là Trân Châu, 970 00:51:49,000 --> 00:51:52,000 nhưng đó là tương đối dễ dàng để làm trong PHP, và đây là sắp xếp của người đại diện 971 00:51:52,000 --> 00:51:55,000 những vấn đề bạn có thể bắt đầu giải quyết khi bạn có thể thể hiện chính mình 972 00:51:55,000 --> 00:51:58,000 lập trình và không phải dựa trên những thứ như các trang web của Google 973 00:51:58,000 --> 00:52:01,000 hoặc Excel hoặc các công cụ được giao cho bạn. 974 00:52:01,000 --> 00:52:03,000 Các bạn bây giờ có khả năng làm những việc như thế này. 975 00:52:03,000 --> 00:52:06,000 Đây là một phiên bản siêu xấu xí của một hình thức, 976 00:52:06,000 --> 00:52:09,000 nhưng chúng ta chỉ sử dụng nó cho sự khởi đầu của cuộc hội thoại, theo đó đây là 977 00:52:09,000 --> 00:52:12,000 khoảng những gì các hình thức trông giống như năm trước cho chúng tôi 978 00:52:12,000 --> 00:52:14,000 để cho phép mọi người trên Web để đăng ký Frosh tin nhắn tức thì. 979 00:52:14,000 --> 00:52:18,000 Chúng tôi yêu cầu cho một tên, một hộp kiểm cho dù có hoặc không muốn là đội trưởng, 980 00:52:18,000 --> 00:52:21,000 nam hay nữ, và sau đó ký túc xá của họ ở trong, 981 00:52:21,000 --> 00:52:23,000 và sau đó họ sẽ gửi mẫu này. 982 00:52:23,000 --> 00:52:27,000 Hãy nhìn đầu tiên bên dưới mui xe HTML đại diện cho trang web này. 983 00:52:27,000 --> 00:52:31,000 Hãy để tôi đi vào froshims0, 984 00:52:31,000 --> 00:52:35,000 như là một dành cho pset 7 tôi cho các cấp 985 00:52:35,000 --> 00:52:37,000 các thư mục và các thư mục mà tôi đang đưa mọi thứ. 986 00:52:37,000 --> 00:52:40,000 Chúng tôi sẽ hướng dẫn bạn thông qua chính xác nơi mà các công cụ có trong thiết bị, 987 00:52:40,000 --> 00:52:43,000 lệnh mod bạn có để chạy, do đó, không lo lắng về tất cả các 988 00:52:43,000 --> 00:52:46,000 chi tiết ngu ngốc đồng bộ từ ở đây có được đi. 989 00:52:46,000 --> 00:52:49,000 >> Được rồi, đây là froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Hãy để tôi di chuyển xuống, và những gì là tò mò, 991 00:52:52,000 --> 00:52:56,000 đây là một file PHP, nhưng những gì bên trong của nó, rõ ràng? 992 00:52:56,000 --> 00:52:59,000 Đó là một toàn bộ rất nhiều về HTML, và thực sự, PHP nguồn gốc 993 00:52:59,000 --> 00:53:02,000 thực sự là một ngôn ngữ Web-trung tâm. 994 00:53:02,000 --> 00:53:04,000 Một lúc trước, chúng tôi đã sử dụng nó để thực hiện ví dụ bia, 995 00:53:04,000 --> 00:53:07,000 các điều kiện ví dụ, ví dụ hello, và đó là tốt. 996 00:53:07,000 --> 00:53:11,000 Bạn có thể sử dụng PHP như là một ngôn ngữ kịch bản 997 00:53:11,000 --> 00:53:15,000 một kịch bản thực sự chỉ là danh pháp được đưa ra một chương trình nhanh chóng và bẩn 998 00:53:15,000 --> 00:53:19,000 hoặc một cái gì đó mà bạn viết trong một ngôn ngữ một kịch bản giải thích hoặc tổng quát hơn. 999 00:53:19,000 --> 00:53:22,000 PHP là siêu hữu ích cho điều đó bởi vì bạn đã nhìn thấy một cách nhanh chóng như thế nào 1000 00:53:22,000 --> 00:53:24,000 tương đối, chúng ta có thể tận dụng các chương trình trong PHP. 1001 00:53:24,000 --> 00:53:27,000 Nhưng nó đã thực sự được thiết kế để sử dụng cho Web, 1002 00:53:27,000 --> 00:53:31,000 và thiết kế cho các trang web theo ý nghĩa là thông báo ở phía trên cùng của tập tin 1003 00:53:31,000 --> 00:53:34,000 Tôi bắt đầu với 00:53:38,000 Sau đó, tôi có một loạt các ý kiến ​​vô dụng, cấp, nhưng sau đó tôi đóng PHP chế độ. 1005 00:53:38,000 --> 00:53:41,000 Nhưng sau đó tôi thả vào chế độ HTML. 1006 00:53:41,000 --> 00:53:45,000 >> Có gì thú vị về PHP là dù file kết thúc bằng. Php 1007 00:53:45,000 --> 00:53:48,000 nó thường có nghĩa là phải trộn lẫn với HTML, 1008 00:53:48,000 --> 00:53:50,000 một số mã PHP, một số HTML. 1009 00:53:50,000 --> 00:53:53,000 Và cuối cùng chúng ta sẽ thấy rằng chúng ta có thể bắt đầu trêu chọc những người ngoài 1010 00:53:53,000 --> 00:53:56,000 và giữ riêng biệt HTML của chúng tôi từ PHP của chúng tôi hoàn toàn, 1011 00:53:56,000 --> 00:53:59,000 nhưng nguồn gốc của PHP thực sự đã được cung cấp cho bạn sự linh hoạt này, 1012 00:53:59,000 --> 00:54:02,000 rằng nếu bạn muốn một số HTML chỉ cần viết nó, và đó sẽ là 1013 00:54:02,000 --> 00:54:04,000 nhổ ra giống hệt với trình duyệt. 1014 00:54:04,000 --> 00:54:07,000 Nhưng nếu bạn cần một số kỹ thuật lập trình, 1015 00:54:07,000 --> 00:54:12,000 một số mã lập trình, bạn cũng có thể đặt nó vào cùng một tập tin chính xác, như chúng ta sẽ sớm thấy. 1016 00:54:12,000 --> 00:54:14,000 Đây là HTML của tôi. 1017 00:54:14,000 --> 00:54:16,000 Tôi đã có một danh hiệu này cho Frosh tin nhắn tức thì. 1018 00:54:16,000 --> 00:54:20,000 Tôi đã có một thẻ cơ thể người đã có một số CSS vào nó để tất cả mọi thứ trung tâm ở giữa, 1019 00:54:20,000 --> 00:54:23,000 và sau đó xuống ở đây tôi có một hình thức mà dường như sẽ phải nộp 1020 00:54:23,000 --> 00:54:27,000 vào một tập tin mới gọi là register0.php, do đó, chúng ta sẽ thấy rằng trong một thời điểm. 1021 00:54:27,000 --> 00:54:31,000 Đó là sử dụng một phương pháp đăng bài, mà chúng tôi sẽ trở lại là tốt. 1022 00:54:31,000 --> 00:54:34,000 Sau đó, tôi có một số yếu tố đầu vào hình thức, được gọi là tên, có loại là văn bản, 1023 00:54:34,000 --> 00:54:37,000 một có tên là đội trưởng, có loại là hộp kiểm, 1024 00:54:37,000 --> 00:54:40,000 và điều này, chúng tôi đã không nhìn thấy nó, nhưng nó không chính xác những gì nó nói. 1025 00:54:40,000 --> 00:54:42,000 Bạn sẽ nhận được một hộp kiểm thay vì một hộp văn bản. 1026 00:54:42,000 --> 00:54:46,000 Xuống ở đây bạn có một nút radio, đó là một trong những nút tròn 1027 00:54:46,000 --> 00:54:48,000 mà bạn có thể chọn một hoặc rằng một. 1028 00:54:48,000 --> 00:54:52,000 >> Chú ý nó là cố ý mà tôi đã cho cả hai nút radio tên của giới tính. 1029 00:54:52,000 --> 00:54:55,000 Đây là cách bạn có được loại trừ lẫn nhau, theo đó bạn phải nhấp vào 1030 00:54:55,000 --> 00:54:58,000 hoặc này hoặc rằng một trong, và bằng cách nhấn khác 1031 00:54:58,000 --> 00:55:01,000 nó unchecks khác, vì vậy bạn phải cung cấp cho họ cùng tên 1032 00:55:01,000 --> 00:55:03,000 nếu bạn muốn họ được loại trừ lẫn nhau như thế. 1033 00:55:03,000 --> 00:55:07,000 Và sau đó cho ký túc xá, tôi không nghĩ rằng chúng tôi đã nhìn thấy điều này được nêu ra, nhưng đó là một menu lựa chọn, một trình đơn thả xuống. 1034 00:55:07,000 --> 00:55:09,000 Thẻ cho đó là lựa chọn. 1035 00:55:09,000 --> 00:55:11,000 Sau đó, bạn cung cấp cho các trình đơn thả xuống một cái tên, 1036 00:55:11,000 --> 00:55:13,000 và sau đó bạn có một bó toàn bộ các tùy chọn này. 1037 00:55:13,000 --> 00:55:16,000 Người đầu tiên, chỉ cần cho thẩm mỹ, là một chuỗi rỗng. 1038 00:55:16,000 --> 00:55:20,000 Tôi chỉ muốn thả xuống được để trống theo mặc định, 1039 00:55:20,000 --> 00:55:22,000 và sau đó có Apley, Canaday, Grays, và vv. 1040 00:55:22,000 --> 00:55:24,000 Và nhận thấy sự phân đôi ở đây. 1041 00:55:24,000 --> 00:55:27,000 Các tùy chọn trong trình đơn thả xuống có một giá trị, 1042 00:55:27,000 --> 00:55:30,000 nhưng sau đó nó có một tên con người thân thiện, trong ví dụ này 1043 00:55:30,000 --> 00:55:33,000 là giống nhau, nhưng nếu chúng ta thực sự muốn có hậu môn, chúng tôi có thể có 1044 00:55:33,000 --> 00:55:36,000 giá trị của sự giảm xuống này xuống chỉ là phiên bản ngắn, 1045 00:55:36,000 --> 00:55:39,000 Grays, nhưng chúng tôi thực sự có thể nói Grays Hội trường của con người thực sự thấy, 1046 00:55:39,000 --> 00:55:43,000 nhưng đó không phải tất cả những gì thú vị, vì vậy tôi chỉ cần giữ cho nó đơn giản và làm cho họ giống hệt nhau. 1047 00:55:43,000 --> 00:55:46,000 Sau đó, xuống ở dưới cùng, chúng tôi có một nút submit 1048 00:55:46,000 --> 00:55:49,000 mà chúng ta đã thấy trước đây, nhưng nhận thấy tôi đã cho nó một từ khác nhau. 1049 00:55:49,000 --> 00:55:53,000 Thay vào đó của CS50 tìm kiếm, tôi đã đưa ra nhãn "Đăng ký". 1050 00:55:53,000 --> 00:55:56,000 >> Kết quả cuối cùng là trang web này ở đây, và một lần nữa, 1051 00:55:56,000 --> 00:56:00,000 nơi nào có được trình? 1052 00:56:00,000 --> 00:56:04,000 Nó được gửi đến một số tập tin, các giá trị của thuộc tính hành động, 1053 00:56:04,000 --> 00:56:07,000 là register0.php. 1054 00:56:07,000 --> 00:56:09,000 Hãy xem những gì thực sự xảy ra ở đây. 1055 00:56:09,000 --> 00:56:13,000 Hãy để tôi đi trước và điền vào mẫu này, David, 1056 00:56:13,000 --> 00:56:16,000 nam, Matthews, và sau đó tôi sẽ nói đăng ký. 1057 00:56:16,000 --> 00:56:18,000 Hãy để tôi thu nhỏ và nhấp vào đăng ký. 1058 00:56:18,000 --> 00:56:22,000 Được rồi, do đó, loại vô dụng, nhưng chúng ta hãy xem những gì đang thực sự xảy ra. 1059 00:56:22,000 --> 00:56:26,000 Chú ý rằng URL đã thay đổi được register0.php. 1060 00:56:26,000 --> 00:56:34,000 Những gì là tò mò vắng mặt từ địa chỉ URL, mặc dù, mặc dù chúng ta chỉ cần gửi một hình thức? 1061 00:56:34,000 --> 00:56:37,000 [Không nghe được sinh viên phản ứng] 1062 00:56:37,000 --> 00:56:39,000 Được rồi, đó chỉ là người sử dụng Chrome là những ngày này. 1063 00:56:39,000 --> 00:56:42,000 Đó là thực tế ở đó. Họ chỉ cần ẩn nó để tiết kiệm không gian. 1064 00:56:42,000 --> 00:56:44,000 Tuy nhiên, suy nghĩ, suy nghĩ tốt. 1065 00:56:44,000 --> 00:56:46,000 Về phía đầu kia của URL, tuy nhiên, những gì còn thiếu? Yeah. 1066 00:56:46,000 --> 00:56:48,000 [Sinh viên] Các chuỗi truy vấn. 1067 00:56:48,000 --> 00:56:51,000 Chuỗi truy vấn, do đó, nhớ lại từ ví dụ đơn giản của chúng tôi tìm kiếm Google. 1068 00:56:51,000 --> 00:56:54,000 Ngay sau khi tôi nhấn nút gửi URL 1069 00:56:54,000 --> 00:57:00,000 đưa tôi đến Google, nhưng sau đó đã có q = khoa học máy tính hoặc bất cứ điều gì tôi đã gõ. 1070 00:57:00,000 --> 00:57:04,000 Đó là bởi vì chúng tôi sử dụng phương pháp get với ví dụ tìm kiếm. 1071 00:57:04,000 --> 00:57:06,000 >> Thời gian này chúng tôi đang sử dụng những phương pháp thay thế? 1072 00:57:06,000 --> 00:57:10,000 Đăng bài, và một trong những sự khác biệt ngay lập tức 1073 00:57:10,000 --> 00:57:14,000 giữa GET và POST là bài mà không đưa đầu vào của người sử dụng trong URL. 1074 00:57:14,000 --> 00:57:16,000 Nó ẩn nó. Nó vẫn gửi nó. 1075 00:57:16,000 --> 00:57:19,000 Trong thực tế, những gì chúng ta đang nhìn thấy trong trình duyệt ở đây, như chúng ta sẽ tiết lộ trong một thời điểm 1076 00:57:19,000 --> 00:57:22,000 bằng cách nhìn register0, tôi chỉ nhìn thấy các nội dung 1077 00:57:22,000 --> 00:57:25,000 của mảng đã được gửi từ trình duyệt đến máy chủ. 1078 00:57:25,000 --> 00:57:29,000 Nhưng URL không có một?, Không có bất kỳ từ khoá nào 1079 00:57:29,000 --> 00:57:31,000 hoặc các giá trị trong nó, và tại sao vậy? 1080 00:57:31,000 --> 00:57:35,000 Vâng, bài cho phép bạn vẫn gửi dữ liệu từ hình thức đến một máy chủ, 1081 00:57:35,000 --> 00:57:38,000 nhưng nó không đặt nó trong URL, do đó, những loại thông tin là bài viết 1082 00:57:38,000 --> 00:57:41,000 đặc biệt thích hợp cho có lẽ khi bạn đang yêu cầu người dùng 1083 00:57:41,000 --> 00:57:44,000 gõ vào đầu vào để tạo thành một? 1084 00:57:44,000 --> 00:57:48,000 Một cái gì đó giống như một mật khẩu, một cái gì đó giống như những gì khác? 1085 00:57:48,000 --> 00:57:50,000 Số thẻ tín dụng. 1086 00:57:50,000 --> 00:57:53,000 Bất cứ điều gì đó là hơi nhạy cảm, bạn có thể không muốn kết thúc trong URL 1087 00:57:53,000 --> 00:57:56,000 nếu chỉ vì nó có nghĩa là bạn cùng phòng của bạn hoặc thành viên trong gia đình chỉ có thể troll qua 1088 00:57:56,000 --> 00:57:59,000 lịch sử internet của bạn và sau đó nghĩa là mật khẩu của bạn, 1089 00:57:59,000 --> 00:58:02,000 nghĩa là nhìn thấy số thẻ tín dụng của bạn bởi vì hầu hết các trình duyệt 1090 00:58:02,000 --> 00:58:05,000 nhớ trong lịch sử bất cứ URL mà bạn đã ở, 1091 00:58:05,000 --> 00:58:09,000 do đó, nếu chỉ vì đó sẽ là một ý tưởng tồi. 1092 00:58:09,000 --> 00:58:11,000 Sử dụng ẩn bài viết có chi tiết từ người dùng. 1093 00:58:11,000 --> 00:58:14,000 >> Ngoài ra, làm thế nào để tải lên một bức ảnh lên Facebook? 1094 00:58:14,000 --> 00:58:17,000 Vâng, 2 chỉ cơ chế bạn thực sự có thể sử dụng, 1095 00:58:17,000 --> 00:58:21,000 mặc dù có những người khác vài chi tiết phức tạp, là nhận và gửi. 1096 00:58:21,000 --> 00:58:26,000 Làm thế nào để bạn có thể tải lên một hình ảnh thông qua một URL? 1097 00:58:26,000 --> 00:58:28,000 Bạn thực sự có thể làm điều đó. 1098 00:58:28,000 --> 00:58:30,000 Bạn có thể mất một JPEG hoặc bitmap hoặc GIF và bạn có thể đại diện cho nó trong hệ thập lục phân 1099 00:58:30,000 --> 00:58:32,000 hoặc một cái gì đó gọi là cơ sở 64. 1100 00:58:32,000 --> 00:58:35,000 Thay vì căn cứ 16 bạn sử dụng 64 cơ sở, trong đó chủ yếu trông giống như 1101 00:58:35,000 --> 00:58:38,000 Ký tự ASCII, và bạn thực sự có thể tải lên một hình ảnh thông qua một URL 1102 00:58:38,000 --> 00:58:41,000 sau khi một dấu hỏi, nhưng nói chung là có giới hạn kích thước. 1103 00:58:41,000 --> 00:58:44,000 Hầu hết các trình duyệt buộc URL là không nhiều hơn 1.000 ký tự, 1104 00:58:44,000 --> 00:58:47,000 có thể 2.000 ký tự hoặc các loại tương tự, vì vậy bạn không thể tải lên 1105 00:58:47,000 --> 00:58:50,000 10 MB Facebook ảnh. 1106 00:58:50,000 --> 00:58:54,000 Cho rằng bạn sử dụng bài viết là tốt, vì vậy bây giờ được đặt các thông số trong URL, 1107 00:58:54,000 --> 00:58:57,000 đó là tốt đẹp và hữu ích đôi khi, nhưng đối với bất cứ điều gì nhạy cảm hoặc lớn 1108 00:58:57,000 --> 00:58:59,000 bưu chính là con đường để đi. 1109 00:58:59,000 --> 00:59:02,000 Register0 được những gì thực sự làm gì ở đây? 1110 00:59:02,000 --> 00:59:05,000 Vâng, nếu tôi mở register0 thông báo rằng đây là một siêu trang đơn giản, 1111 00:59:05,000 --> 00:59:09,000 nhưng nó chứng minh thực tế là tôi có thể cùng hòa nhập, cho tốt hơn hoặc tồi tệ hơn, 1112 00:59:09,000 --> 00:59:12,000 HTML với PHP. 1113 00:59:12,000 --> 00:59:15,000 Toàn bộ tập tin này, ngoại trừ cho các ý kiến ​​ở trên cùng, HTML 1114 00:59:15,000 --> 00:59:19,000 ngoại trừ anh chàng này ở đây. 1115 00:59:19,000 --> 00:59:22,000 >> Chú ý ở giữa của mã PHP của tôi, 1116 00:59:22,000 --> 00:59:26,000 ở giữa của HTML của tôi, tôi có sắp xếp tạm 1117 00:59:26,000 --> 00:59:28,000 nhập PHP chế độ. 1118 00:59:28,000 --> 00:59:31,000 Tôi gọi một chức năng đặc biệt gọi là in r. 1119 00:59:31,000 --> 00:59:34,000 Nó có nghĩa là in đệ quy, và những gì nó làm là nó đệ quy in 1120 00:59:34,000 --> 00:59:38,000 bất kỳ biến nào bàn tay nó, dấu chấm phẩy, thoát khỏi chế độ PHP. 1121 00:59:38,000 --> 00:59:40,000 Và thẻ trước khi cung cấp cho bạn định dạng văn bản trước, 1122 00:59:40,000 --> 00:59:43,000 mono không gian văn bản để mọi không gian, bạn thực sự nhìn thấy nó. 1123 00:59:43,000 --> 00:59:46,000 Nó không biến mất. Bài là gì? 1124 00:59:46,000 --> 00:59:48,000 Vâng, những gì thú vị và hấp dẫn về PHP 1125 00:59:48,000 --> 00:59:52,000 là bất cứ khi nào bạn gửi một hình thức sử dụng được hoặc đăng 1126 00:59:52,000 --> 00:59:56,000 bất cứ điều gì đã được gửi cho bạn bởi một trình duyệt 1127 00:59:56,000 --> 01:00:00,000 PHP chính nó ra những cặp giá trị quan trọng, 1128 01:00:00,000 --> 01:00:02,000 con số ra nếu có dấu bằng, con số ra nếu có một dấu chấm hỏi. 1129 01:00:02,000 --> 01:00:07,000 Nó làm tất cả công việc khó khăn cho bạn, và sau đó nó tay bạn một mảng kết hợp 1130 01:00:07,000 --> 01:00:10,000 có chứa tất cả mọi thứ mà người dùng gõ vào biểu mẫu. 1131 01:00:10,000 --> 01:00:12,000 Vâng, những lĩnh vực biểu mẫu này? 1132 01:00:12,000 --> 01:00:14,000 >> Nó có 4 lĩnh vực. 1133 01:00:14,000 --> 01:00:16,000 Một trong số đó là một trường văn bản được gọi là tên. 1134 01:00:16,000 --> 01:00:18,000 Một trong số đó là một ô trống được gọi là đội trưởng. 1135 01:00:18,000 --> 01:00:22,000 Một trong số đó là một nút radio gọi là giới tính, 1136 01:00:22,000 --> 01:00:24,000 và một là một trình đơn thả xuống được gọi là ký túc xá, 1137 01:00:24,000 --> 01:00:27,000 để nhận thấy khi tôi in đệ quy 1138 01:00:27,000 --> 01:00:29,000 các nội dung của biến đặc biệt này. 1139 01:00:29,000 --> 01:00:34,000 Đây là một biến toàn cầu đặc biệt gọi là nghĩa đen $ _POST, trong tất cả các mũ. 1140 01:00:34,000 --> 01:00:39,000 Đây là một biến toàn cầu đặc biệt mà PHP chỉ tạo ra cho bạn 1141 01:00:39,000 --> 01:00:42,000 và bàn tay cho bạn để bạn có thể truy cập vào tất cả mọi thứ 1142 01:00:42,000 --> 01:00:45,000 đã được gửi thông qua một hình thức bởi một người dùng. 1143 01:00:45,000 --> 01:00:48,000 Và bằng cách gọi r in trên nó, bạn sẽ không làm được điều này trong một ứng dụng bình thường. 1144 01:00:48,000 --> 01:00:50,000 Chúng tôi đang làm điều này để xem bên trong của biến này, 1145 01:00:50,000 --> 01:00:53,000 và những gì bên trong của nó, tốt, 4 phím, 1146 01:00:53,000 --> 01:00:56,000 4 http thông số, có thể nói, 1147 01:00:56,000 --> 01:00:59,000 tên, đội trưởng, giới tính, ký túc xá, và sau đó các giá trị mà người sử dụng 1148 01:00:59,000 --> 01:01:01,000 gõ vào với một ngoại lệ. 1149 01:01:01,000 --> 01:01:03,000 Tôi đã làm loại D-A-V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Tôi kiểm tra hộp, mặc dù đối với nam, mà dường như gửi một giá trị 1151 01:01:05,000 --> 01:01:07,000 chỉ m được gọn gàng. 1152 01:01:07,000 --> 01:01:10,000 >> Khi tôi chọn Matthews đó là các giá trị đã được lựa chọn, 1153 01:01:10,000 --> 01:01:12,000 và điều này là một chút ngu ngốc, nhưng đó là quy ước. 1154 01:01:12,000 --> 01:01:17,000 Khi tôi kiểm tra hộp, một giá trị của trên, "trên", đã gửi cho hộp kiểm. 1155 01:01:17,000 --> 01:01:21,000 Nếu tôi đã không kiểm tra nó, không có giá trị sẽ được gửi gì. 1156 01:01:21,000 --> 01:01:26,000 Đây chỉ là cho chúng ta hiểu biết sâu sắc vào những gì bên trong của biến toàn cầu đặc biệt này, 1157 01:01:26,000 --> 01:01:29,000 , và nó thật đặc biệt mà nó được gọi là một biến toàn cầu siêu. 1158 01:01:29,000 --> 01:01:33,000 Nó tồn tại ở khắp mọi nơi cho bạn trong mã của bạn để bạn thực sự có thể truy cập nó. 1159 01:01:33,000 --> 01:01:36,000 Đây không phải là hấp dẫn, vì vậy hãy thực sự sử dụng toàn cầu siêu 1160 01:01:36,000 --> 01:01:38,000 và thực sự cố gắng để đăng ký một người nào đó. 1161 01:01:38,000 --> 01:01:41,000 Năm froshims1, tôi sẽ làm cho một sự thay đổi. 1162 01:01:41,000 --> 01:01:44,000 Tôi đang thay đổi hành động là register1.php, 1163 01:01:44,000 --> 01:01:46,000 và tôi đang làm một điều khác. 1164 01:01:46,000 --> 01:01:48,000 Tôi là loại xấu hổ bởi chất lượng của trang web của tôi ở đó. 1165 01:01:48,000 --> 01:01:52,000 Nó khá ghê gớm, một cách trung thực, do đó, nó quay ra 1166 01:01:52,000 --> 01:01:56,000 mà bạn có thể sử dụng rất dễ dàng trên Web 1167 01:01:56,000 --> 01:01:59,000 của người khác mã JavaScript, CSS của người khác 1168 01:01:59,000 --> 01:02:02,000 rằng họ đã viết và mở nguồn và thực hiện như là một thư viện, 1169 01:02:02,000 --> 01:02:06,000 vậy để nói chuyện, và ví dụ, ở đây tôi đang sử dụng một thư viện tự do có sẵn, 1170 01:02:06,000 --> 01:02:08,000 một loạt các mã mà người khác đã viết. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter đã xảy ra để viết mã này, và nó được gọi là thư viện bootstrap, 1172 01:02:11,000 --> 01:02:15,000 và nó chỉ là một loạt các phong cách trang CSS, một loạt các tập tin css 1173 01:02:15,000 --> 01:02:19,000 mà người khác đã viết và đã tìm ra làm thế nào để có được tất cả mọi thứ tốt đẹp và khá 1174 01:02:19,000 --> 01:02:22,000 để những người như chúng tôi có thể lo lắng một chút ít về tính thẩm mỹ và tập trung nhiều hơn nữa 1175 01:02:22,000 --> 01:02:24,000 logic và lập trình thực tế. 1176 01:02:24,000 --> 01:02:30,000 Bằng cách liên kết nó với tag, đó là cùng một thẻ nhớ sử dụng cho styles3.css trước, 1177 01:02:30,000 --> 01:02:34,000 Tôi bây giờ có quyền truy cập vào một tập tin gọi bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min chỉ có nghĩa là họ đã minified nó và họ đã nhận được thoát khỏi tất cả các không gian màu trắng và vv 1179 01:02:37,000 --> 01:02:40,000 chỉ để chắc chắn rằng họ không gửi cho tôi byte nữa tôi thực sự cần. 1180 01:02:40,000 --> 01:02:45,000 Nhưng trong đó là một bó toàn bộ của CSS, vì vậy nếu tôi mở ra phiên bản 1 của Frosh tin nhắn tức thì 1181 01:02:45,000 --> 01:02:49,000 nhận thấy rằng tập tin của tôi chắc chắn là đẹp hơn. 1182 01:02:49,000 --> 01:02:54,000 Bây giờ nó vẫn chỉ là màu đen và trắng, nhưng nhận thấy rằng bằng cách chỉ sử dụng phong cách trang tính của họ 1183 01:02:54,000 --> 01:02:58,000 và sử dụng các tính năng nhất định của nó trên hình thức của tôi nó không phải là tuyệt vời, 1184 01:02:58,000 --> 01:03:01,000 nhưng nó chắc chắn sạch hơn so với trước, và các máy chiếu không làm điều đó công lý. 1185 01:03:01,000 --> 01:03:05,000 Có ít dòng màu xám xung quanh các nút và xung quanh lĩnh vực văn bản ngay tại đây, 1186 01:03:05,000 --> 01:03:07,000 nhưng nó chắc chắn sạch hơn so với trước. 1187 01:03:07,000 --> 01:03:09,000 >> Bây giờ, trong sự công bằng, tôi đã phải thay đổi đánh dấu của tôi một chút. 1188 01:03:09,000 --> 01:03:12,000 Đây là phiên bản 1, và nhận thấy rằng tôi đã sử dụng một vài thẻ mới, 1189 01:03:12,000 --> 01:03:17,000 và trung thực, tôi không có ý tưởng làm thế nào để làm điều này cho đến khi tôi đọc tài liệu 1190 01:03:17,000 --> 01:03:20,000 cho thư viện bootstrap Twitter, và họ nói với tôi nếu bạn muốn sử dụng thư viện của chúng tôi 1191 01:03:20,000 --> 01:03:23,000 sử dụng một yếu tố fieldset bên trong biểu mẫu của bạn, 1192 01:03:23,000 --> 01:03:27,000 đặt một từ bạn muốn hiển thị bên cạnh một bên trong lĩnh vực của một thẻ nhãn, 1193 01:03:27,000 --> 01:03:30,000 sau đó cung cấp cho đầu vào của bạn một cái tên, giống như trước, 1194 01:03:30,000 --> 01:03:34,000 và sau đó cho hộp kiểm, không chỉ làm bạn bọc nó trong một phần tử nhãn, 1195 01:03:34,000 --> 01:03:36,000 bạn sử dụng một cái gì đó được gọi là một lớp học, vì vậy chúng tôi đã không nhìn thấy điều này trước khi, 1196 01:03:36,000 --> 01:03:39,000 nhưng bạn sẽ thấy điều này trong một trong những quần short pset 7. 1197 01:03:39,000 --> 01:03:43,000 Một lớp học trong CSS cho phép bạn làm một cái gì đó rất giống với ID, 1198 01:03:43,000 --> 01:03:46,000 nhưng trước khi chúng tôi đã có một ID với các biểu tượng # 1199 01:03:46,000 --> 01:03:48,000 đó là cho một và chỉ có một yếu tố. 1200 01:03:48,000 --> 01:03:51,000 Những gì tốt đẹp về một lớp học là nhiều yếu tố có thể có cùng một lớp 1201 01:03:51,000 --> 01:03:54,000 hoặc các công cụ CSS áp dụng cho nó. 1202 01:03:54,000 --> 01:03:57,000 >> Nhưng một lần nữa, thêm về những người trong ngắn hạn, và phần còn lại của điều này là chỉ cần sao chép và dán 1203 01:03:57,000 --> 01:04:00,000 từ tài liệu của họ, nơi tôi đã ở đây và ở đó thêm một nhãn. 1204 01:04:00,000 --> 01:04:03,000 Và cuối cùng, bởi vì tôi đã bao gồm thẻ liên kết ở đầu trang, 1205 01:04:03,000 --> 01:04:06,000 tất cả mọi thứ có vẻ đẹp tự động 1206 01:04:06,000 --> 01:04:10,000 chỉ đơn giản bằng cách đánh dấu trang của tôi một cách 1207 01:04:10,000 --> 01:04:12,000 Twitter mong đợi, và có rất nhiều cách khác nhau 1208 01:04:12,000 --> 01:04:14,000 làm điều này, và điều này thực sự là rất thích hợp. 1209 01:04:14,000 --> 01:04:17,000 Tại thời điểm này trong học kỳ, như bạn sẽ thấy trong spec của pset 7 của, 1210 01:04:17,000 --> 01:04:20,000 Googling xung quanh, đọc lên vào thư viện, bằng cách sử dụng CSS của người khác 1211 01:04:20,000 --> 01:04:23,000 và JavaScript để giải quyết các vấn đề phụ trợ 1212 01:04:23,000 --> 01:04:26,000 vấn đề thiết lập chính nó là chắc chắn khuyến khích và là cách 1213 01:04:26,000 --> 01:04:29,000 Web được xây dựng trong những ngày này, bằng cách đứng trên vai người khác 1214 01:04:29,000 --> 01:04:32,000 để bạn thực sự có thể tập trung vào các vấn đề mới và thú vị. 1215 01:04:32,000 --> 01:04:34,000 Nhưng bây giờ tập trung vào, một lần nữa, logic. 1216 01:04:34,000 --> 01:04:38,000 >> Đó là một đường vòng nhanh chóng vào thẩm mỹ chỉ để cho bạn hướng mà bạn có thể đi. 1217 01:04:38,000 --> 01:04:40,000 Tôi sẽ quay trở lại các uglier cho bây giờ chỉ vì 1218 01:04:40,000 --> 01:04:44,000 không có phiền nhiễu với các công cụ Twitter, và để cho tôi đi trước và mở 1219 01:04:44,000 --> 01:04:51,000 froshims2, trong đó, một lần nữa, chỉ khác ở register2.php, hành động, 1220 01:04:51,000 --> 01:04:55,000 và chúng ta hãy nhìn vào những gì hiệu quả là ở đây. 1221 01:04:55,000 --> 01:04:57,000 Hãy để tôi đi trước và gõ vào David. 1222 01:04:57,000 --> 01:04:59,000 Tôi sẽ không là đội trưởng lần này. 1223 01:04:59,000 --> 01:05:01,000 Tôi sẽ nói nam, Matthews, đăng ký. 1224 01:05:01,000 --> 01:05:05,000 Chết tiệt. Được rồi, đó là một ốc vít trên một phần của tôi. 1225 01:05:05,000 --> 01:05:07,000 Stand by. 1226 01:05:07,000 --> 01:05:17,000 Register2, dòng 22, nếu sản phẩm nào hoặc xin lỗi. 1227 01:05:17,000 --> 01:05:19,000 Hãy tải lại. 1228 01:05:19,000 --> 01:05:22,000 Được rồi, khi nộp mẫu đơn này những gì vừa xảy ra? 1229 01:05:22,000 --> 01:05:25,000 Tôi gõ vào David, kiểm tra nam, nhấp vào Matthews, đăng ký. 1230 01:05:25,000 --> 01:05:27,000 Bạn đã được đăng ký. (Vâng, không thực sự). 1231 01:05:27,000 --> 01:05:32,000 Đây rõ ràng là một bước tiến vượt ra ngoài chỉ in ra các nội dung của một số biến, 1232 01:05:32,000 --> 01:05:34,000 nhưng tập tin này được những gì thực sự đang làm gì? 1233 01:05:34,000 --> 01:05:37,000 Trong register2.php 1234 01:05:37,000 --> 01:05:40,000 nhận thấy rằng tôi có một số mã mới. 1235 01:05:40,000 --> 01:05:44,000 Bên trong của thẻ cơ thể của tôi, tôi có bản chất là một nếu khác xây dựng, 1236 01:05:44,000 --> 01:05:47,000 nhưng bởi vì tôi là đồng hòa điều này với một số HTML 1237 01:05:47,000 --> 01:05:51,000 Tôi phải nhập và thoát khỏi chế độ PHP qua lại, vì vậy chúng ta hãy xem những gì tôi đang làm. 1238 01:05:51,000 --> 01:05:55,000 >> Trong dòng đầu tiên ở đây tôi đang nói nếu đó là trường hợp 1239 01:05:55,000 --> 01:06:00,000 bài siêu toàn cầu có sản phẩm nào cho chìa khóa của tên, 1240 01:06:00,000 --> 01:06:04,000 do đó, nói cách khác, nếu người sử dụng không cho tôi một giá trị cho tên vào biểu mẫu, 1241 01:06:04,000 --> 01:06:07,000 sau đó sản phẩm nào được để trở về đúng bởi vì giá trị là trống rỗng. 1242 01:06:07,000 --> 01:06:11,000 Hoặc thông báo các thanh dọc-giới tính là trống rỗng 1243 01:06:11,000 --> 01:06:15,000 bên trong này siêu đặc biệt toàn cầu, trong đó, một lần nữa, đại diện cho các nội dung của hình thức, 1244 01:06:15,000 --> 01:06:19,000 hoặc ký túc xá là trống rỗng, sau đó tôi sẽ đi trước và la lên với người sử dụng. 1245 01:06:19,000 --> 01:06:22,000 Làm thế nào? Vâng, nhận thấy tôi sẽ nói bạn phải cung cấp tên, giới tính của bạn, và ký túc xá. 1246 01:06:22,000 --> 01:06:24,000 Hãy thực sự gây ra sai lầm đó. 1247 01:06:24,000 --> 01:06:27,000 Hãy để tôi quay trở lại hình thức của tôi. Hãy để tôi tải lại để xóa nó. 1248 01:06:27,000 --> 01:06:30,000 Và tôi chỉ cần đi để cung cấp cho họ David, và họ không cần biết nơi tôi sống. 1249 01:06:30,000 --> 01:06:33,000 Đăng ký. Rõ ràng tôi cần phải nói cho họ biết nơi tôi sống. 1250 01:06:33,000 --> 01:06:35,000 Bạn phải cung cấp tên, giới tính của bạn và ký túc xá. Quay trở lại. 1251 01:06:35,000 --> 01:06:39,000 >> Và tôi có thể nhấp vào để trở lại hình thức đó, nhưng tại sao vậy? 1252 01:06:39,000 --> 01:06:43,000 Vâng, trong trường hợp tên đó là không có sản phẩm nào, nhưng giới tính, và ký túc xá là, 1253 01:06:43,000 --> 01:06:47,000 do đó, điều này biểu hiện toàn bộ đánh giá đúng sự thật, và mặc dù cú pháp là một chút mới, 1254 01:06:47,000 --> 01:06:51,000 một lần nữa, chúng tôi nhập vào chế độ PHP, quen thuộc nếu tuyên bố, 1255 01:06:51,000 --> 01:06:54,000 nhưng phần mới ở đây chỉ là dấu hai chấm này, và tôi đã hơi say lên bằng cách bỏ qua một dấu ngoặc 1256 01:06:54,000 --> 01:06:57,000 do tai nạn, nhưng nhận thấy các dấu hai chấm, và điều đó có nghĩa 1257 01:06:57,000 --> 01:07:00,000 mặc dù chúng ta đang thoát khỏi chế độ PHP tất cả mọi thứ 1258 01:07:00,000 --> 01:07:03,000 sau phải được nhổ ra đúng nguyên văn cho trình duyệt 1259 01:07:03,000 --> 01:07:07,000 cho đến khi bạn nhìn thấy một khối khác, như chúng ta làm ở đây, 1260 01:07:07,000 --> 01:07:10,000 trong trường hợp này bạn nên thay vì nhổ này 1261 01:07:10,000 --> 01:07:13,000 cho đến khi bạn nhìn thấy endif, do đó, một số hơi mới cú pháp 1262 01:07:13,000 --> 01:07:16,000 cho phép tôi để chuyển đổi giữa HTML và PHP. 1263 01:07:16,000 --> 01:07:19,000 Chúng ta có thể làm sạch này lên cuối cùng, nhưng bây giờ, 1264 01:07:19,000 --> 01:07:22,000 đó là loại một cách thuyết phục các lỗi kiểm tra hình thức. 1265 01:07:22,000 --> 01:07:25,000 >> Bây giờ, tôi nói rằng bạn đang không thực sự đăng ký bởi vì rõ ràng chúng ta đã làm gì, nhưng các dữ liệu, 1266 01:07:25,000 --> 01:07:28,000 do đó, chúng ta hãy thực sự cố gắng để làm một cái gì đó mát mẻ. 1267 01:07:28,000 --> 01:07:33,000 Trong froshims3 sự khác biệt duy nhất là tôi sẽ trình register3, 1268 01:07:33,000 --> 01:07:35,000 vì vậy HTML có cùng. 1269 01:07:35,000 --> 01:07:38,000 Trong register3 nhận thấy điều này. 1270 01:07:38,000 --> 01:07:40,000 Đây là một trong những loại sexy. 1271 01:07:40,000 --> 01:07:44,000 Ở phía trên tôi đang sử dụng một tuyên bố độ cần thiết, do đó, điều này giống như # include. 1272 01:07:44,000 --> 01:07:46,000 Lần này nó không phải stdio.h hoặc bất cứ điều gì như thế. 1273 01:07:46,000 --> 01:07:50,000 Đó là một thư viện PHP, và điều này được gọi là PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Làm thế nào tôi biết chính xác điều này bao gồm chuỗi trích dẫn? 1275 01:07:53,000 --> 01:07:56,000 Tôi đọc nó trong tài liệu hướng dẫn, do đó, khi họ nói với tôi đặt ở trên cùng của tập tin 1276 01:07:56,000 --> 01:08:00,000 nếu bạn muốn sử dụng một thư viện đặc biệt được gọi là PHPMailer những gì nó nói. 1277 01:08:00,000 --> 01:08:03,000 Nó cho phép bạn gửi email thông qua PHP. 1278 01:08:03,000 --> 01:08:05,000 Bây giờ hãy di chuyển xuống thấp hơn nữa. 1279 01:08:05,000 --> 01:08:08,000 >> Chú ý để bắt đầu tôi trong PHP chế độ toàn bộ thời gian này, 1280 01:08:08,000 --> 01:08:11,000 vì vậy bây giờ nhận thấy ở đây sau khi nhập khẩu rằng thư viện, 1281 01:08:11,000 --> 01:08:13,000  có thể nói, tôi đang làm một số kiểm tra sanity. 1282 01:08:13,000 --> 01:08:16,000 Nếu đó là trường hợp tên đó là không có sản phẩm nào 1283 01:08:16,000 --> 01:08:19,000 và giới tính là không có sản phẩm nào nhận thấy các dấu chấm than 1284 01:08:19,000 --> 01:08:24,000 và ký túc xá không phải là trống rỗng, sau đó người dùng đã hợp lý điền vào mẫu đơn, ít nhất là đủ. 1285 01:08:24,000 --> 01:08:28,000 Tôi không quan tâm nếu họ là đội trưởng hay không. Tôi chỉ cần tên, giới tính của họ, và ký túc xá. 1286 01:08:28,000 --> 01:08:31,000 Nếu họ đã đầy những người ra để không ai trong số các lĩnh vực này là trống rỗng 1287 01:08:31,000 --> 01:08:33,000 điều này là hơi cú pháp mới. 1288 01:08:33,000 --> 01:08:36,000 PHP, một sang một bên, là một đối tượng ngôn ngữ lập trình hướng 1289 01:08:36,000 --> 01:08:39,000 mà một số bạn có thể nhớ lại từ APCS hoặc tương tự. 1290 01:08:39,000 --> 01:08:42,000 Để bây giờ, nếu không quen thuộc, chỉ biết rằng để sử dụng thư viện này 1291 01:08:42,000 --> 01:08:45,000 bạn phải viết một dòng mã như thế này bằng cách sử dụng một từ khóa mới, 1292 01:08:45,000 --> 01:08:47,000 nghĩa là một từ khóa mới được gọi là mới. 1293 01:08:47,000 --> 01:08:50,000 Nhưng ngoài ra, chúng tôi có một số cú pháp quen thuộc. 1294 01:08:50,000 --> 01:08:54,000 Đó là một nhà điều hành mũi tên, đó là tương tự như những gì chúng tôi được sử dụng cho cấu trúc trong bối cảnh của các con trỏ. 1295 01:08:54,000 --> 01:08:57,000 Cho ngày hôm nay PHP không có con trỏ, 1296 01:08:57,000 --> 01:09:01,000 nhưng biết rằng bên trong của biến thư 1297 01:09:01,000 --> 01:09:05,000 chủ yếu là loại một con trỏ đến một thư viện đặc biệt 1298 01:09:05,000 --> 01:09:08,000 mà người khác đã viết, và nếu tôi muốn truy cập các chức năng cụ thể 1299 01:09:08,000 --> 01:09:12,000 bên trong là thư viện của tôi, giống như trong C, sử dụng toán tử mũi tên, 1300 01:09:12,000 --> 01:09:14,000 mặc dù đây không phải là thực sự con trỏ. 1301 01:09:14,000 --> 01:09:16,000 Đó là loại phiên bản của PHP đó. 1302 01:09:16,000 --> 01:09:20,000 Điều này có nghĩa là đi vào thư viện và gọi hàm IsSMTP. 1303 01:09:20,000 --> 01:09:23,000 SMTP, thu hồi, từ các chiến binh của chúng tôi của Net đề cập để gửi email, 1304 01:09:23,000 --> 01:09:28,000 và điều đó chỉ có nghĩa là sử dụng một máy chủ email cho tin nhắn tức thì Frosh đăng ký. 1305 01:09:28,000 --> 01:09:30,000 >> Chủ nhà làm tôi muốn sử dụng? 1306 01:09:30,000 --> 01:09:34,000 Vâng, Harvard, nếu bạn Google xung quanh, có một máy chủ email được gọi là smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Nếu bạn đang chơi cùng tại nhà hoặc bạn sống trên một mạng Comcast 1308 01:09:37,000 --> 01:09:40,000 nó có thể là một cái gì đó giống như smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 Nó hoàn toàn phụ thuộc vào nơi bạn sống và ISP của bạn là. 1310 01:09:43,000 --> 01:09:47,000 Sau đó, tôi sẽ thiết lập của tôi từ địa chỉ tùy tiện được jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Sau đó tôi sẽ thiết lập để giải quyết được jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 Cách duy nhất tôi biết rằng các chức năng này được gọi là SetFrom và AddAddress 1313 01:09:55,000 --> 01:09:57,000 là, một lần nữa, tôi đọc tài liệu. 1314 01:09:57,000 --> 01:09:59,000 Đây không phải là loại kỳ diệu biết là tất cả các lập trình viên. 1315 01:09:59,000 --> 01:10:02,000 Sau đó, tôi thiết lập một chủ đề để "đăng ký". 1316 01:10:02,000 --> 01:10:07,000 Và bây giờ dòng này là một chút xấu xí bởi vì các nhà điều hành chấm có ý nghĩa gì trong PHP? 1317 01:10:07,000 --> 01:10:09,000 Bất cứ ai biết? 1318 01:10:09,000 --> 01:10:11,000 Tiếp nhau. 1319 01:10:11,000 --> 01:10:14,000 Trong C, nó là một cơn đau ở cổ để nối 2 chuỗi lại với nhau. 1320 01:10:14,000 --> 01:10:17,000 Bạn có để đối phó với malloc hoặc realloc hoặc tất cả các công cụ mà 1321 01:10:17,000 --> 01:10:20,000 chỉ để mở rộng chiều dài của một chuỗi. 1322 01:10:20,000 --> 01:10:22,000 Trong PHP, JavaScript và các ngôn ngữ khác 1323 01:10:22,000 --> 01:10:24,000 bạn thường có thể làm điều này với một nhân vật duy nhất. 1324 01:10:24,000 --> 01:10:28,000 Trong trường hợp này, dấu chấm có nghĩa là chuỗi này ở đây 1325 01:10:28,000 --> 01:10:30,000 và thêm chuỗi này. 1326 01:10:30,000 --> 01:10:32,000 >> Oh, và bằng cách này, gắn thêm vào nó chuỗi này, 1327 01:10:32,000 --> 01:10:34,000 mà sẽ xảy ra bên trong biến trên toàn cầu siêu. 1328 01:10:34,000 --> 01:10:37,000 Sau đó gắn thêm vào nó một dòng mới, do đó, tất cả các dấu chấm chỉ có nghĩa là 1329 01:10:37,000 --> 01:10:39,000 tiếp tục thực hiện một chuỗi lớn hơn và lớn hơn và lớn hơn, 1330 01:10:39,000 --> 01:10:43,000 và bạn không cần phải chăm sóc cả về malloc hoặc tương tự trong một ngôn ngữ như thế này, 1331 01:10:43,000 --> 01:10:46,000 và có những cách khác để làm điều này, nhưng đây là một trong những nhanh nhất 1332 01:10:46,000 --> 01:10:48,000 cách để đẻ nó ra. 1333 01:10:48,000 --> 01:10:50,000 Này đang làm gì? 1334 01:10:50,000 --> 01:10:55,000 Điều này tạo ra một cơ thể email đó là sẽ nói Tên: Captain: Giới tính: Dorm: 1335 01:10:55,000 --> 01:10:58,000 tất cả trên dòng riêng biệt, và sau đó cuối cùng, 1336 01:10:58,000 --> 01:11:00,000 một dòng mã, và tôi sẽ bỏ qua điều này cho bây giờ. 1337 01:11:00,000 --> 01:11:02,000 Nếu == false chỉ có nghĩa là nếu một cái gì đó đã đi sai, 1338 01:11:02,000 --> 01:11:04,000 nhưng kỳ diệu xảy ra ở đây. 1339 01:11:04,000 --> 01:11:08,000 Mail Gửi có nghĩa là gửi email này. 1340 01:11:08,000 --> 01:11:10,000 Hãy xem kết quả ròng là những gì. 1341 01:11:10,000 --> 01:11:13,000 Ở dưới cùng của tập tin, thông báo nó sẽ nói rằng bạn đã được đăng ký thực sự 1342 01:11:13,000 --> 01:11:15,000 nếu tôi nhận được rằng cho đến nay. 1343 01:11:15,000 --> 01:11:18,000 Nếu, mặc dù, người sử dụng vít lên, nhận thấy rằng chúng tôi bắt đầu 1344 01:11:18,000 --> 01:11:21,000 nếu điều kiện ở đây, nếu nó không trống rỗng và không có sản phẩm nào 1345 01:11:21,000 --> 01:11:24,000 và không có sản phẩm nào chúng tôi gửi thư. 1346 01:11:24,000 --> 01:11:27,000 Nếu không, chúng tôi sẽ gửi dòng mã này, 1347 01:11:27,000 --> 01:11:30,000 đó là sẽ có tác dụng, như bạn sẽ thấy trong pset 7, chuyển người dùng 1348 01:11:30,000 --> 01:11:35,000 trở lại froshims3.php, nơi họ đến. 1349 01:11:35,000 --> 01:11:38,000 >> Ngón tay vượt qua, nếu không điều này là có được các bản demo đáng thất vọng nhất ngày hôm nay. 1350 01:11:38,000 --> 01:11:40,000 Ở đây chúng tôi đi. 1351 01:11:40,000 --> 01:11:42,000 Hãy để tôi mở hộp thư email của tôi cho jharvard trong Gmail. 1352 01:11:42,000 --> 01:11:44,000 Không có email ngay bây giờ. Được rồi. 1353 01:11:44,000 --> 01:11:53,000 Bây giờ hãy để tôi mở froshims3, đó là ví dụ thứ ba và cuối cùng chúng ta sẽ xem tại đây. 1354 01:11:53,000 --> 01:11:55,000 Được rồi, ở đây chúng tôi đi. 1355 01:11:55,000 --> 01:12:00,000 Nate, anh ấy sẽ là đội trưởng, nam, từ, nói, Apley. 1356 01:12:00,000 --> 01:12:04,000 Đăng ký. Được rồi, bạn đã được đăng ký thực sự. 1357 01:12:04,000 --> 01:12:07,000 Bây giờ nếu tôi di chuyển đến email của tôi, oh, Thiên Chúa của tôi. 1358 01:12:07,000 --> 01:12:09,000 Tôi vừa tự động gửi một email trên Web. 1359 01:12:09,000 --> 01:12:11,000 >> Hãy để lưu ý. 1360 01:12:11,000 --> 01:12:16,000 Video là sắp tới cho các bài giảng mà chúng tôi đã bỏ lỡ. Hẹn gặp các bạn vào tuần tới. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]