[Powered by Google Translate] [Tuần 8]
[David J Malan] [Đại học Harvard]
[Đây là CS50.] [CS50.TV]
>> Chào mừng trở lại.
Đây là CS50, và đây là sự bắt đầu của tuần 8.
Một vài cơ hội trong tuần này,
trong đó có nói chuyện này ở đây, mà ở đó một vài món ăn sẽ được phục vụ.
Để biết thêm chi tiết kiểm tra các slide đang online.
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.
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,
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ì,
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.
CS50 ăn trưa là thứ sáu này.
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.
>> Và bây giờ chúng tôi nhảy vào một cái gì đó gọi là Hội thảo.
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
và các trợ lý và bạn bè của khóa học,
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
technophiles trong khuôn viên trường, cũng như một nhóm gọi là HCS,
Harvard Computer Society, sinh viên đại học được quan tâm tương tự trong máy tính.
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
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.
Nếu bạn muốn RSVP cho bất kỳ người trong số họ đầu đến URL đó ở đó.
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.
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,
nhiều trong số đó vẫn còn rất nhiều hiện nay về công nghệ mà bạn có thể
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ó.
>> CSS, những người bạn của những người đã quen thuộc với CSS,
nó trong một nutshell là gì?
CSS là gì?
Nó cascading style sheets, và có nghĩa là gì?
Điều đó có làm cho chúng ta, CSS?
Đượ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.
Điều đó có làm cho chúng ta?
Bất cứ ai ở tất cả?
Nó nhận được thật vụng về hỏi những câu hỏi.
HTML, ngôn ngữ đánh dấu siêu văn bản.
Vâng? Không?
[Không nghe được sinh viên phản ứng]
Đượ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.
Nó không phải là một ngôn ngữ lập trình.
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ị
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
là một cái gì đó siêu đơn giản như boldfacing, mở khung b đóng khung nói
làm cho văn bản in đậm, và đó là thực sự chỉ là một trong nhiều cách
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
stylizing trang web của bạn, làm cho những điều táo bạo và nghiêng
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
nhưng đúng hơn là với một kỹ thuật được gọi là CSS, cascading style sheets.
Đây là một ngôn ngữ unto chính nó.
Nó cũng không phải là một ngôn ngữ lập trình nhưng
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.
Một số khó khăn kỹ thuật. Không phải là một vấn đề.
>> CSS cho phép chúng tôi phong cách hóa trang
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
bằng cách của một số ví dụ cơ bản.
Hãy để tôi đi vào thiết bị.
Tôi có nguồn 8 Thứ hai thư mục ở đây,
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ộ
các tập tin chờ đợi cho chúng tôi tại đây,
và trong thư mục này, chúng tôi có, ví dụ, search0.html từ lần cuối cùng.
Bây giờ, nhớ lại với search0 chúng tôi còn lại trên lưu ý này
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,
và nhận thấy rằng chúng tôi đã có một số thẻ mới.
Chúng tôi đã có h1 cho một nhóm lớn, in đậm,,
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.
Hành động, ý nghĩa của một thuộc tính hành động là những gì
trên thẻ hình thức HTML?
Ý nghĩa của hành động này, là gì?
Tôi sẽ chỉ làm điều này ngày hôm nay.
Hành động là đích để các hình thức sẽ được đệ trình.
Thực tế là nói rằng hành động = "google.com / search"
có nghĩa là khi người dùng nhấn nút gửi hoặc tương đương
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
hoặc thiết bị của chúng tôi mà là với URL cụ thể tại Google.
Và phương pháp sẽ sử dụng được gọi là nhận được,
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
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.
>> Chú ý rằng có một đầu vào có tên là q
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
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,
search0.html, đó là một siêu mẫu đơn giản,
và nếu tôi tìm kiếm một cái gì đó giống như khoa học máy tính
và sau đó nhấn Enter hoặc click vào CS50 Tìm kiếm
nhận thấy rằng những gì xảy ra là ngoài được Google
Tôi đã đặc biệt đã kết thúc tại URL này ở đầu trang,
google.com / search q = máy tính + khoa học,
và khoa học máy tính rõ ràng là những gì tôi đã gõ.
+ Chỉ có nghĩa là đó là nơi một nhân vật không gian,
và nó được thực hiện bởi trình duyệt chỉ để chắc chắn rằng không có
sự nhầm lẫn và không gian trắng trong các URL thực tế.
Và sau đó q, tất nhiên, là tên tham số.
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.
Chúng ta có thể giả định rằng Google biết phải làm gì với điều này ở đây,
nhưng chúng tôi sẽ đạt được điều đó trong thời gian do ngày hôm nay.
>> Nhưng hãy để tôi có một cái nhìn thay vì ở search1.html,
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.
Ý tôi là, nó ở phía trên bên trái.
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
một chút giống như Google, mà trang chủ, thu hồi,
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.
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.
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,
không chỉ là đánh dấu lên đó.
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,
mà có thể nhảy ra khỏi bạn, hoặc có thể không,
nhưng một dòng hoặc đoạn của sự khác biệt là gì?
>> Có phong cách thuộc tính này, do đó, nó quay ra rằng trong HTML
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,
và bên trong đó thuộc tính style là một chuỗi trích dẫn,
và rằng chuỗi trích dẫn là CSS.
Bạn có thể đặt bảng mẫu xếp tầng trong đó
bằng cách xác định nó như là một tên bất động sản
theo sau bởi một dấu hai chấm theo sau bởi một giá trị.
Đâ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
CSS là một ngôn ngữ unto chính nó,
nhưng cú pháp rất khác với HTML.
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,
Tôi có CSS ​​bên trong các dấu ngoặc kép, và quy ước cho CSS
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,
tiếp theo là giá trị của tài sản đó, do đó, không có dấu hiệu bình đẳng.
Có không có dấu bổ sung.
Nó chỉ này đại tràng tách cặp giá trị quan trọng,
và dòng văn bản không chính xác những gì nó nói.
Căn văn bản trong cơ thể của trang, mà thực sự là ruột của trang,
ở trung tâm.
>> Được rồi, kết quả cuối cùng sau đó, rõ ràng, là điều này.
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ự.
Nhưng nếu tôi thay vì mở ra phiên bản 2 của điều này
và chỉ ra ở đây một thẻ mới hoàn toàn?
Bây giờ trong đầu trang của tôi, trước đây chỉ có thẻ
trong tất cả các ví dụ trước?
Nó chỉ có này, các tiêu đề.
Một lúc trước, thẻ đầu trông như thế này.
Bây giờ thay vì nó có một từ khóa phong cách bên trong của nó,
và điều này quá, tôi xin lỗi, cú pháp trông rất khác nhau từ HTML,
nhưng bạn đã quen với nó, theo đó bên trong thẻ phong cách
Bây giờ tôi có thể yếu tố là một khoảnh khắc trước đây
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.
>> Tại sao?
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
đô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.
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ỹ
vị trí trung tâm hơn là nó có tất cả xen nhau trong suốt HTML của bạn.
Đ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.
Đây là một chọn, và cơ thể chỉ có nghĩa là chọn các yếu tố cơ thể
và áp dụng các thuộc tính sau cho nó.
Vâng, tài sản là chính xác như nhau.
Đối với biện pháp tốt, tôi đã thêm một dấu chấm phẩy ở cuối,
có xu hướng được quy ước, và tôi đã bọc toàn bộ tài sản này
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.
Tôi thực sự có thể nói một cái gì đó như màu sắc: blue;
>> 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,
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
trang của văn bản tất cả các màu xanh.
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.
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ế.
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,
thuộc tính phong cách, và chúng tôi đã yếu tố nó ra ở đây.
Đâ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
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.
>> Trong search3.html trang web là gần như giống hệt nhau
ngoại trừ cho những gì từ khóa mới tại?
Liên kết, do đó, một trong những điều này không phải là rất aptly tên
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.
Thay vào đó, bạn sắp xếp làm việc tương đương với # include trong C
theo đó các từ khóa liên kết với một thuộc tính href
và một thuộc tính rel nói đi trước
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.
Nó không hoàn toàn làm được điều đó, nhưng đó là tinh thần của nó.
Nó nói đi mở tập tin đó, search3.css,
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
giống như tôi đã làm trong ví dụ trước.
Search3.css Trong khi đó, khá đơn giản.
Nó thực sự chỉ chứa chính xác những gì là một khoảnh khắc trước đây
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.
>> 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
chỉ trực giác động lực là những gì, có lẽ, bao thanh toán ra
đoạn nhỏ ngay cả CSS vào một tập tin riêng của mình
và sau đó bao gồm nó với thẻ này liên kết ở đây?
[Không nghe được sinh viên phản ứng]
Đượ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.
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 đó.
Những gì người khác có thể là hấp dẫn? Yeah.
[Không nghe được sinh viên phản ứng]
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
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
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ẽ,
và bạn muốn có nhiều trang web, chắc chắn là phổ biến trên
Thế giới thực tế Wide Web, và nó sẽ được loại của lame
phải copy và dán cùng màu xanh
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.
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
với các tập tin h., đặt nó ở vị trí trung tâm,
trong trường hợp này search3.css, và sau đó cho phép bất kỳ tập tin
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.
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
nhưng không nhất thiết phải là tốt nhất, và với mỗi bước,
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é
đối với thiết kế là một trình dọn dẹp chút và có chuẩn bị
cho các trang phức tạp hơn chúng ta có thể làm xuống đường.
>> Hãy để tôi mở ra một ví dụ cuối cùng ở đây chỉ để hiển thị
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.
Đây là search4.html, và nhận thấy rằng cấu trúc đó là gần như giống nhau
ngoại trừ cho sự ra đời của một thẻ mới, div.
Div là một từ khóa giới thiệu một bộ phận của trang.
Bạn có thể nghĩ về điều này như là một hình chữ nhật vô hình.
Nó sắp xếp tạo ra một vùng của khu vực trong trang web
mà bạn có thể phong cách hóa tất cả cùng một lúc.
Những gì tôi đã thực hiện ở đây là như sau.
Bên trong của thẻ cơ thể của tôi, mà đã được tất cả cùng,
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,
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.
Sau đó, cho tôi một hình chữ nhật thứ hai, mặc dù vô hình, bên dưới đó,
và xác định các nội dung tên, và sau đó cuối cùng,
cung cấp cho tôi một bộ phận thứ ba của trang ở phía dưới
được gọi là ID.
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,
nhưng khái niệm tôi có một bộ phận tiêu đề.
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
mặc dù đây chỉ là trong đánh dấu.
Người dùng sẽ không nhìn thấy 3 hình chữ nhật,
nhưng loại cấu trúc có đằng sau hậu trường
họ đang thực sự hiện nay.
>> Bây giờ, những người quan tâm? Tại sao thực sự làm được điều này?
Mọi thứ khác trên trang cũng giống như chúng ta đã thấy trước đây.
Đâ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.
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.
Dưới đây là một chân, mà là mới, chỉ vì tôi muốn giới thiệu
một số chi tiết nội dung ở đây.
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 đề.
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.
Và như tên cho thấy, khi bạn có một thuộc tính ID
trong HTML, theo định nghĩa nó phải xác định duy nhất
một trong các yếu tố, một trong các thẻ trong trang của bạn.
Gánh nặng là hoàn toàn vào bạn nhớ rằng bạn có một ID tiêu đề đã.
Bạn có một chân. Bạn có một ID nội dung rồi.
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,
vì vậy bạn có thể vô tình cung cấp cho 2 thẻ ID của tiêu đề,
và điều đó chỉ là sai.
>> Bạn phải ghi nhớ những gì bạn đã tạo ra,
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.
Tôi bây giờ có thể chỉ định trong thẻ phong cách của tôi ở đầu trang
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 đó,
Tôi có thể nói # header, và điều đó có nghĩa là bất cứ điều gì tag
trong trang web này có một ID của tiêu đề
và #, theo quy ước của con người, đại diện cho ID.
Dấu hiệu mạnh hoặc bảng dấu hiệu đại diện cho ID.
Tiêu đề là tên mà tôi đã cho nó.
Điều này có nghĩa là áp dụng khách sạn CSS
để bất cứ điều gì từ khóa trong trang này mang một ID của tiêu đề.
Tương tự đối phó ở đây.
Áp dụng tài sản này, mà sẽ xảy ra để được như vậy, bất kỳ yếu tố
có ID là nội dung, và sau đó xuống đây
nhận thấy tôi có một chút fancier với chân.
Bất kỳ yếu tố nào có ID là chân, trong đó có thể có một theo định nghĩa,
đi trước và làm cho kích thước font chữ của nó nhỏ hơn,
font chữ đậm của nó trọng lượng, tỷ suất lợi nhuận của nó 20 pixels.
>> Điều đó có nghĩa là gì?
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.
Đ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ó
chỉ để đẩy mọi thứ khác đi từ nó một chút, như bạn có thể làm trong Word,
Microsoft Word hoặc trang hoặc tương tự.
Và sau đó văn bản sắp xếp trung tâm.
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.
Đâ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.
Bây giờ, trong sự công bằng, tôi chỉ cần google "google tạo logo, font chữ."
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ó.
Trong thực tế, bạn có thể làm điều này quá.
Chúng tôi có "google phông chữ biểu tượng máy phát điện".
>> Hãy xem nếu chúng ta có thể làm điều này.
Được rồi, tôi nghĩ rằng đây là trang web của tôi được sử dụng.
Chúng ta có thể nói Ec 10, ví dụ, và làm cho họ của riêng mình.
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ó
và sau đó tải về GIF thực tế, đó là tất cả những gì tôi đã làm.
Và quả thực, đó là lý do tại sao trong HTML của tôi, nhớ lại, ở đây
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
nguồn mà là logo.gif.
Và những gì một lần nữa là động lực để có thuộc tính alt này,
thuộc tính này thay thế?
Yeah.
[Không nghe được sinh viên phản ứng]
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
bởi vì bạn có một kết nối mạng chậm hoặc hình ảnh bị hỏng
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,"
và sau đó cũng vì lý do khả năng tiếp cận.
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
và do đó rõ ràng là không thể nhìn thấy hình ảnh mà họ có thể ít nhất
nghe văn bản nếu máy tính của họ nói cho họ.
>> 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
để 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,
nó là gì mà trên trang của bạn.
Có một điều mà tôi đã làm ở đây
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
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.
Nhưng # nội dung liên quan đến từ khóa
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.
Vâng, những gì thú vị về CSS là bạn có thể
tham khảo các thẻ trong một trang Sắp xếp phân cấp,
và những gì đoạn này của CSS có nghĩa là tìm các từ khóa
có ID là nội dung, và sau đó áp dụng các thuộc tính sau
cho tất cả các thẻ đầu vào là con cháu của nội dung,
đó là được thụt vào bên trong của nó.
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,
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,
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
đó là một nơi nào đó bên trong hoặc lồng bên trong
các yếu tố có ID là nội dung.
>> Điều đó không áp dụng cho ai?
Vâng, có thực sự chỉ là 2 guys này ở đây.
Chú ý rằng bên trong của mẫu đơn có 2 đầu vào,
như có được cho tất cả các ví dụ.
Nhưng chú ý rằng những 2 đầu vào xảy ra được lồng vào bên trong,
mặc dù một chút sâu sắc, một lớp của indentation,
bên trong thẻ có ID là nội dung.
Điều này có nghĩa là gì?
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
cho tôi phóng to trong đó là một chút của padding giữa nút
và giữa các lĩnh vực văn bản.
>> Hãy để tôi tạm thời tắt tính.
Hãy để tôi đi đến CSS của tôi, và để cho tôi đi trước và chỉ
thay đổi tỷ suất lợi nhuận từ 5 điểm ảnh đến 0 pixels.
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
và tải lại, và xem giữa trang.
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
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ó.
Tôi muốn pad nó một chút, do đó, tôi đã giới thiệu lợi nhuận.
Những gì chúng tôi sẽ không làm trong bài giảng là đi qua hàng chục
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ỡ,
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,
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
và tài liệu tham khảo cho phép bạn chọn những việc này lên.
Nhưng những gì thực sự quan trọng vào cuối ngày
>> là phải hiểu được những điều này được áp dụng như thế nào.
Một lần nữa, nếu chúng ta có từ khóa phong cách bên trong
có thể đi selectors, các loại định danh chỉ định
ai muốn áp dụng các đặc tính này,
và sau đó bạn đặt các thuộc tính như cặp giá trị quan trọng
cách nhau bằng dấu hai chấm và sau đó kết thúc bằng dấu chấm phẩy,
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
unto chính nó.
Được rồi, bất kỳ câu hỏi nào về các khái niệm
hoặc bức tranh lớn của CSS?
Bạn lại sẽ xem chi tiết của nó trong pset 7,
nhưng chúng tôi sẽ giữ nó thường khá đơn giản.
Không? Được rồi.
Đó là thời gian cho một ngôn ngữ lập trình thực tế,
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ụ.
PHP là thực sự là một ngôn ngữ tuyệt vời truy cập
ở chỗ nó là cú pháp gần như tương đương với C.
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,
ít nhất là cú pháp, mặc dù có một số tính năng mới
và một số khái niệm mới, chúng tôi sẽ phải nhìn vào.
>> 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
hầu hết các công cụ mới là thực sự trong bức tranh lớn,
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
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.
Để tham khảo, đặc biệt là với pset 7 và dự án trở đi cuối cùng,
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.
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ả,
và bạn cũng sẽ thấy rằng những gì thực sự tốt đẹp về PHP
là có hàng trăm chức năng đi kèm với nó,
ngược lại trong C, bạn không nhất thiết phải có quyền truy cập
chức năng nhiều hơn trong thư viện toán học, thư viện CS50.
PHP và rất nhiều ngôn ngữ hiện đại, Python và Ruby trong số đó,
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
í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
người đã viết những điều nào đó cho bạn.
>> 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ụ.
Những gì tốt đẹp về PHP đầu tiên và quan trọng nhất
có không có chức năng chính.
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ã,
và bạn không phải lo lắng về việc chính.
Có int. Có không trở lại.
Không có argv, argc đó là cần thiết khi bạn viết chương trình.
Thay vào đó bạn chỉ có thể bắt đầu viết mã, và điều này là một phần
bởi vì PHP là những gì được gọi là một ngôn ngữ giải thích.
C đã được biên dịch, và nó đã được biên dịch trong ý nghĩa là bạn bắt đầu
với mã nguồn, chạy nó thông qua Clang, là một trình biên dịch,
và cuối cùng sau một số bước bạn có được mã đối tượng, 0 và 1.
PHP và Python và Ruby và Pearl và những người khác
là những loại khác nhau của ngôn ngữ mà bạn không biên dịch chúng.
Bạn không đi từ mã nguồn để 0 và 1.
Bạn chỉ cần chạy mã nguồn, và bạn chạy các mã nguồn
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
thay vì c, và những chương trình nào trên máy tính của bạn
nó theo nghĩa đen giải thích dòng code của bạn từng dòng.
>> 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
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.
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,
hoặc chỉ cần PHP nếu bạn đang ở trên hệ điều hành Mac OS hoặc Linux,
và bạn cung cấp đầu vào cho chương trình PHP mã nguồn của riêng bạn,
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,
và làm bất cứ điều gì bạn đã nói với nó để làm.
>> Hãy xem điều này sẽ có nghĩa là cú pháp.
Trong PHP, chúng ta có điều kiện.
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
bởi vì cú pháp điều kiện, IFS và ifs khác và khác trong PHP
nhìn chính xác như thế này.
Khi nói đến biểu thức boolean họ đang đi để tìm chính xác như thế này.
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.
Thiết bị chuyển mạch giống nhau, và bạn nhận được thêm lợi ích trong PHP
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.
Bạn không thể chuyển đổi một giá trị chuỗi.
Trong PHP bạn thực sự có thể có một biểu hiện
đó là một biến có nội dung là một chuỗi,
và bạn thực sự có thể làm so sánh chuỗi trong cách trực quan,
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.
Chúng ta sẽ thấy rằng có khả năng trước khi dài.
>> Loops quá tuyệt vời là như nhau.
Đố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.
Trong khi vòng cũng tồn tại trong PHP.
Làm trong khi vòng lặp cũng tồn tại trong PHP,
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,
nhưng những khái niệm là như nhau, và các khái niệm thực sự là như nhau
như chúng đã được in 0 Tuần Scratch.
Trước hết là dấu hiệu $.
Đây là một quyết định thiết kế trong PHP, theo đó bất kỳ biến
trong PHP bởi thiết kế bắt đầu với ký hiệu $.
Không có thêm X, Y, Z. Nó bây giờ $ X, Y, Z chỉ vì.
Đó là một cái gì đó để giữ trong tâm trí, và bây giờ ở phía bên tay phải
điều này có vẻ tương tự như một mảng,
nhưng chúng tôi đang sử dụng dấu ngoặc vuông ở đây.
Trong PHP và trong JavaScript, như chúng ta cuối cùng sẽ thấy,
để khai báo một mảng bạn làm khung hình vuông mở và đóng khung hình vuông,
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
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ó.
>> Bây giờ, làm thế nào chúng ta làm một cái gì đó như thế này trong C?
Cú pháp cho tĩnh khai báo một mảng các số được biết đến là gì?
Đó là dấu ngoặc nhọn, rất nhỏ sự khác biệt ở đây, nhưng trong cả hai PHP
và cuối cùng JavaScript chỉ sử dụng dấu ngoặc vuông, như vậy thực sự
các chi tiết thú vị ở đây là dấu hiệu cho tên biến
và cũng là dấu ngoặc vuông, và có một điều tò mò
đó là được bỏ qua như ở phía bên trái của dấu =.
Những gì còn thiếu mà chúng tôi đã yêu cầu tuần nay? Yeah.
[Không nghe được sinh viên phản ứng]
Kích thước, do đó, không có đề cập đến kích thước của mảng.
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
dấu =, và những gì khác là mất tích từ dòng?
Vâng >> [không nghe được sinh viên phản ứng].
Loại, vì vậy những gì thú vị đặc biệt là về PHP
là nó không phải là một ngôn ngữ mạnh mẽ đánh máy như C,
và đó là gõ mạnh mẽ trong ý nghĩa rằng bạn phải nói char,
bạn phải nói int, bạn phải nói phao.
>> 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ì.
PHP là một chút lazier.
Lỏng lẻo trong ý nghĩa rằng
bạn có thể có phao nổi và ký tự và chuỗi
và ints và vân vân, nhưng bản thân ngôn ngữ
không thực sự quan tâm những gì bạn đặt bên trong của một biến.
Bạn không cần phải thông báo trước kiểu dữ liệu
đang diễn ra trong một biến.
Đó là hoàn toàn vào bạn, do đó, điều này là tốt đẹp
trong đó bạn không cần phải lo lắng nhiều về dữ liệu nhập
và đáng lo ngại đối số của bạn là gì và vv.
Đ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
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
họ sẽ trở lại, bool false boolean, ví dụ, để biểu thị rằng cái gì đó đã đi sai.
Đ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ế
một chút lazier khi nói đến dữ liệu đánh máy.
>> Gì khác là có cần lưu ý ở đây?
Biến trông khá thích này, vì vậy $ s = "hello, thế giới".
Đó là có lẽ kết luận từ ví dụ trước,
và chúng tôi có một dạng khác của vòng lặp.
Đ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,
một foreach xây dựng.
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,
$ 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,
sau đó nghĩa là từ khóa như là, và sau đó cuối cùng,
một tên biến khác mà bạn có thể chọn.
Nó có thể là foo, bar, hoặc yếu tố,
và những gì xây dựng này không
nếu mảng $ bao gồm 10 yếu tố
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
biến gọi là yếu tố sẽ được cập nhật
là yếu tố đầu tiên trong mảng, sau đó yếu tố thứ hai trong mảng,
sau đó yếu tố thứ ba của mảng, do đó cần obviating các
để làm các ký hiệu khung vuông và hơi khó chịu
$ I để chỉ số vào một mảng.
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
chỉ tay phần tử tiếp theo từ mảng
mà không cần biết hoặc quan tâm về vị trí số chỉ số của nó.
>> Và rồi cuối cùng, cho bây giờ, có một tính năng khác của PHP
đó 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,
và đó là được biết đến như là một mảng kết hợp.
Các mảng mà chúng ta biết vậy, đến nay là 20 giây trước đây
và cho 8 tuần qua số lượng được lập chỉ mục mảng,
sắp xếp các mảng truyền thống nơi mà các chỉ số là ints,
0, 1, 2, tất cả các cách trên lên.
Mảng kết hợp rất nhiều mạnh hơn.
Chúng cho phép bạn có các phím tùy ý,
tùy ý các chỉ số và giá trị tùy ý.
Trong khi đó, trong một mảng truyền thống nó là 0, 1, 2,
trong một mảng kết hợp, bạn có thể có một chỉ số
hoặc một phím của foo có giá trị là thanh.
Sau đó, bạn có thể có một chìa khóa có tên là baz và có giá trị là qux.
>> Một lần nữa, ngu ngốc tên khoa học máy tính chung chung biến ở đây,
nhưng điểm là mảng này không có khung 0 hoặc khung 1.
Thay vào đó, nó sẽ có khung foo và khung baz.
Đ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
từ với các từ khác, phím với các giá trị hoàn toàn tùy tiện,
và chúng ta sẽ có thể để có được những giá trị trở lại trong thời gian liên tục
bởi vì bên dưới mui xe một mảng kết hợp
thực sự là một bảng băm.
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
đặt trong từ David nếu bạn muốn chèn David vào một số loại từ điển,
và sau đó bạn có được trở lại một số giá trị thông thường.
Trong trường hợp của speller, đúng hay sai.
David hoặc bất cứ điều gì từ hoặc không có trong từ điển.
Một mảng kết hợp thực sự chỉ là một bảng băm,
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ó.
Như chúng ta sẽ thấy, nó sẽ cho phép chúng tôi làm một số điều
rất, rất dễ dàng.
>> Hãy có một cái nhìn tại một số PHP cơ bản
các ví dụ và xem những gì chúng ta có thể làm với ngôn ngữ này.
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
một tập tin gọi hello1.php.
Tập tin này là bình luận hơn là thực tế mã,
vì vậy cho tôi thực sự loại bỏ tất cả các ý kiến ​​từ tập tin
và hiện tại bạn có lẽ là chương trình PHP đơn giản ngay tại đây.
5 dòng, và một số trong những không gian màu trắng,
do đó, nhận thấy một số khác biệt quan trọng ở đây.
Các tập tin được gọi là hello1.php.
Dòng đầu tiên, mặc dù, <? Php.
Tinh thần tương tự HTML,
rằng chuỗi các ký tự cho máy tính
"Hey, máy tính, ở đây có một chương trình chúng ta đang ở trong PHP."
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.
Dòng 2 là một không gian màu trắng thú vị.
Dòng 3 là người bạn cũ của chúng tôi printf,
thời gian này, trong bối cảnh của PHP.
PHP có phiên bản riêng của printf mà cư xử chính xác như nhau,
do đó, điều này là chỉ cần đi để in "hello, thế giới."
Và sau đó thẻ này đối diện ở đây,>, có nghĩa là đó là nó cho mã PHP của tôi.
>> Chúng ta hãy xem làm thế nào để chạy.
Tôi sẽ quay trở lại cửa sổ thiết bị đầu cuối của tôi ở đây.
Tôi sẽ đi vào thư mục PHP của tôi.
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.
Hãy để tôi đi trước và chạy này hello1.php,, nhập.
Quyền bị từ chối. Okay.
Làm thế nào chúng ta cố định những thứ như thế này trong quá khứ?
Rằng >> [không nghe được sinh viên phản ứng]
Chúng ta cần đọc và viết, nhưng hãy để tôi làm ls-l.
Hãy nhớ điều này đầu ra hơi khó hiểu theo đó hello1
dường như để có thể đọc và ghi của tôi
nhưng có thể đọc được tất cả mọi người khác.
Nó chỉ ra điều này thực sự không phải là một bước đi đúng hướng.
Sự khác biệt, một lần nữa, với một ngôn ngữ giải thích
là bạn không chạy chương trình trực tiếp.
Bạn thay vì chạy một phiên dịch và đưa nó mã
mà bạn đã viết để nó có thể giải thích từng dòng một.
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
là nghĩa đen được gọi là PHP.
>> Nơi nào đó trên ổ đĩa cứng của thiết bị này có một chương trình
người khác đã viết gọi là PHP, hoặc trên Windows php.exe.
Những gì tôi đang làm ở đây là tôi sẽ thực sự chạy PHP
nhưng cung cấp cho nó như là một đối số dòng lệnh mã mà tôi đã viết,
và sau đó tôi sẽ thu nhỏ và nhấn Enter.
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.
Hãy để tôi đi trước và mở ra một phương sai nhỏ này.
Trong thông báo hello2.php rằng điều này quá
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ọ,
và những gì khác biệt rõ ràng về tập tin này?
Có dòng này mới, hơi khó hiểu ở đầu trang.
Trong dòng 1 #! / Bin / php.
Bin là một quy ước trên Linux và Mac OS cho những chương trình,
/ 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
đã được lập trình, một trong số đó là PHP.
Dòng #! là biệt danh công việc,
đó là cách nhanh chóng để nói rằng nó, và điều này có nghĩa là gì
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
cho máy tính những thông dịch viên để sử dụng.
>> 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
"Này, chúng tôi đã viết chương trình này được gọi là hello1.php".
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.
Thành thật mà nói, nó sẽ chỉ được đẹp hơn để chạy hello1.php,
và quả thật, chúng ta có thể nếu chúng ta làm như sau.
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
và sau đó đọc đọc, vì vậy tôi có thể chưa làm được điều này, hello2.php.
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.
Nếu tôi làm chmod a x +, có nghĩa là tất cả các executability cộng,
và sau đó hello2.php và sau đó làm ls-l một lần nữa nhận thấy những thay đổi.
Một, Linux được hiển thị cho tôi tên file màu xanh lá cây để truyền đạt ý tưởng
nghĩ rằng nó được thực thi, nhưng quan trọng hơn, ở phía bên tay trái
nhận thấy rằng các bit đại diện cho x cho thực thi đã được thiết lập.
Điều này giờ đây có nghĩa là tôi có thể chạy ./hello2.php như bình thường,
nhấn Enter, và vì công việc ở đầu của tập tin
đó là một gợi ý, một lần nữa, Linux nói rằng
sử dụng thông dịch viên để chạy tập tin này.
Đừng lo lắng về việc buộc người dùng thực sự gõ nó.
>> 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
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
và đổi tên điều này đến hello2, ví dụ.
Và bây giờ nếu tôi làm ./hello2
và thu nhỏ chương trình của tôi vẫn tiếp tục chạy.
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
cho một cái gì đó như Clang và những người tìm kiếm chúng.
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.
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,
và tôi có thể viết hello2.rb và sau đó chạy này,
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.
Tuy nhiên, các phần mở rộng tập tin là vô nghĩa
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.
>> 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,
được sắp xếp của một thủ thuật hữu ích để biết.
Năm hello3, tôi đã làm một cái gì đó hơi sai
Tôi sẽ cập nhật trực tuyến mã nguồn.
Trong phiên bản 3 nó quay ra rằng trên hầu hết các máy tính Linux
có một chương trình được gọi là môi cho môi trường,
và những gì bạn có thể làm ở đây là nếu bạn không có ý tưởng mà PHP
đượ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
rằng ai đó đang sử dụng, env chỉ nói chạy env,
mà là trên hầu hết các hệ thống, và tìm ra nơi mà PHP.
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.
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
bạn có thể sử dụng lệnh đó.
>> Hãy để tôi thu nhỏ và loại php,
và nhận thấy nó nói với tôi nó thực sự trong usr / bin / php.
Đó là một lời nói dối. Nó cũng bin.
Nó chỉ hiển thị cho tôi hit đầu tiên.
Nếu bạn đã bao giờ tự hỏi nơi Clang, Clang, đó là trong usr / bin / kêu vang,
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
bạn có thể đã được gõ bin / usr / kêu vang nhập để chạy Clang,
nhưng đó là loại tẻ nhạt để làm điều đó, do đó, một số thư mục
như usr / bin và bin được giả định là mặc định
do đó, máy tính biết để tìm trong chúng cho bạn.
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
trong PHP và sau đó chạy nó?
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.
Được rồi, ở đây chúng tôi đi.
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.
>> Nếu tôi mở ra, ví dụ, chúng ta hãy làm beer1.php,
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
tôi ngồi xuống và đổ nó hoặc chuyển đổi
C mã để mã PHP ở đây.
Hầu hết các đầu của tập tin bình luận ở đây.
Nó chỉ ra có một chức năng mới chúng ta cần kêu gọi readline.
GetString, thu hồi, từ 0 Tuần trở đi là một điều CS50.
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
mất 1 đối số xác định dấu nhắc
mà bạn muốn hiển thị cho người dùng, và những gì readline
là nó trả về bất cứ điều gì người dùng gõ vào.
Trong trường hợp này, tôi tuyên bố một biến gọi là $ n.
Tôi đang lưu trữ trong nó giá trị trở lại của readline
sau khi khiến người sử dụng với chuỗi này.
Chỉ cần sao lưu, để thực sự chạy điều này, hãy để tôi đi trước
và chạy php beer1.php.
Sẽ có bao nhiêu chai? Chúng ta chỉ cần làm 2 lần này.
Enter. Đó là tất cả.
>> 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.
Tuy nhiên, cú pháp chúng ta hãy xem những gì khác nhau.
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,
và nếu n là ít hơn 1 bỏ thuốc lá và tôi in ra
một tin nhắn xin lỗi đến người dùng và lối ra với 1.
Điều này cũng là một chút khác nhau.
Trong C, chúng tôi đã làm gì? Trong C, chúng tôi trở về 1.
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
bởi vì bạn đang nghĩa đen thoát khỏi chương trình.
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
ngoại trừ các biến, do đó, xuống đây trong dòng 24 trở đi
chú ý cho vòng lặp là gần như giống nhau,
nhưng tôi có ở phía trước của i và n,
và cũng là mất tích từ dòng 26 chúng ta đã có trong quá khứ
khi khai báo một i biến?
Có loại nào.
Là không chính xác trong PHP nói int.
Bạn chỉ đơn giản là không cần phải làm điều đó.
Máy tính, PHP thông dịch viên là đủ thông minh để nhận ra
rằng nếu bạn đặt một số trong $ nó sẽ xử lý nó
như một số cho bạn.
Và sau đó xuống ở đây chúng tôi cắm $ i, $ i, $ i - 1.
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
và sau đó thoát (0).
>> Một lần nữa, takeaway ở đây là mặc dù chúng ta sẽ phải chi tiêu tương đối
í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,
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
và xa hơn nữa là tập trung thực sự trên một số những ý tưởng mới.
Chỉ để nhìn thấy rằng một trong những điều khác dịch từ C,
đây là một chương trình siêu đơn giản chúng tôi đã làm trong Tuần 1
hoặc 2 Cubed một giá trị.
Nhưng điều thú vị ở thời gian về chương trình này là nó
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.
Cú pháp trong PHP là gần như nhau.
Đây là chương trình của tôi lên hàng đầu.
Chú ý một lần nữa vắng mặt là bất cứ khái niệm chính.
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.
Tôi in ra x là 2, có lẽ.
Sau đó, tôi cho cubing ...
Sau đó, tôi gọi là chức năng khối lập phương và vượt qua trong $ x
và gán giá trị trả lại $ x.
Sau đó, tôi cho rằng nó Cubed, và sau đó tôi nói điều này, mà hy vọng
sẽ nói x bây giờ là 8.
Cú pháp cho các chức năng trong PHP bao giờ nên hơi khác nhau.
Một lần nữa mất tích là kiểu trả về.
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?
[Không nghe được sinh viên phản ứng]
Vâng, không sao, đó là tốt. Hãy quay trở lại trong một lần thứ hai.
>> Chúng tôi không có, ví dụ, int đây.
Chúng tôi không, ví dụ, đã int ở đây bởi vì, một lần nữa, trong PHP
bạn chỉ đơn giản là không cần và không nên làm điều đó,
mà là có từ khoá này mới được gọi là chức năng.
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
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
nếu có các đối số của nó.
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,
$ A * $ a * $ a.
Gì cũng là mất tích? Sammy chỉ ra điều này ở đây.
Ở 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.
Điều này cũng là do thiết kế.
Ngôn ngữ và phiên dịch như PHP thông minh hơn so với C bao giờ hết
trong trình biên dịch như Clang.
>> 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,
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
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.
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.
Họ sẽ mang nó theo mình để đọc qua tất cả các mã của bạn
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.
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.
Ngôn ngữ PHP và tương tự là đủ thông minh để nhìn về phía trước
tại tất cả mọi thứ trước khi thấy bạn như là một sai lầm.
Trường hợp nào để lại cho chúng tôi?
>> Hãy làm một ví dụ cuối cùng ở đây trong điều kiện,
và nếu tôi mở thông báo conditions2.php
cú pháp ở đây là gần như nhau.
Tôi đang sử dụng readline thay vì GetString, nhưng dòng đó là giống như trước,
"Tôi muốn một số nguyên."
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,
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,
vì vậy nếu tôi chạy điều này, php của conditions2,
và tôi cung cấp cho nó một số như 23 -
Tôi chọn một số dương. Nếu tôi cho nó -1 tôi đã chọn một số âm.
Nếu tôi cho nó 0, tôi thực sự đã chọn 0.
Vì vậy, những người quan tâm đến tất cả những điều này?
Vâng, một trong các loại thú vị của các bài tập ở đây
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,
pset lỗi chính tả.
Ta đã có tập tin này được gọi là speller.c,
và có một tập tin gọi dictionary.c.
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
mã PHP, và chúng tôi sẽ không dành nhiều thời gian trên speller
bởi vì giống như trong pset 5 bạn đã không thực sự cần phải
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.
>> Nó đủ để nói rằng nếu bạn đọc thông qua speller,
tập tin này ở đây, nó là khá nhiều tương đương với mã C
chúng tôi đã cho bạn cho pset 5.
Tôi đã chỉ cần thêm một số ở những nơi.
Tôi đã thay đổi tên chức năng nhất định nếu họ không tồn tại trong PHP.
Có thêm một điều ở đây, preg_match,
đó 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.
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
những gì nó cuối cùng thốt ra những điều này ở đây,
từ sai chính tả, các từ trong từ điển, từ trong văn bản.
Được rồi, vì vậy những gì thú vị bây giờ là sau đây.
Ở phía trên cùng của tập tin của tôi, tôi đang yêu cầu dictionary.php.
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
có khá nhiều làm điều tương tự, yêu cầu một tập tin gọi dictionary.php.
Làm thế nào tôi có thể đi về thực hiện pset 5?
Hãy để tôi đi trước và mở một file ở đây.
Hãy để tôi lấy một tham chiếu nhỏ ở đây.
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.
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.
Và bây giờ tôi sẽ phóng to.
Tôi sẽ bắt đầu file PHP của tôi với khung mở php đóng khung.
Và sau đó ở đây có một vài chức năng cần thiết để thực hiện cho pset 5,
vì vậy hãy để tôi bắt đầu thực hiện một số những người,
chức năng kiểm tra, trong đó có một từ trong như một đối số.
Chúng tôi sẽ làm điều đó và trở về với nó trong một thời điểm.
>> Có chức năng tải, trong những gì như một tham số?
Từ điển, do đó, các tập tin rằng tôi thực sự muốn tải.
Có chức năng kích thước, mà không có bất kỳ đối số
và có chức năng gì khác?
Dỡ bỏ, mà đã không có bất kỳ đối số.
Đây là 4 chức năng mà tôi sẽ cần phải thực hiện trong PHP,
và những gì tôi sẽ làm là đi trước và làm điều này.
Rất nhiều bạn đã sử dụng một bảng băm trong pset 5,
vì vậy hãy để tôi đi trước và tạo ra một bảng băm trong PHP.
Xong.
Điều đó mang lại cho tôi một bảng băm. Vâng, tại sao?
Một biến được gọi là $ table, chỉ để gợi lên ý tưởng về một bảng băm.
Các dấu ngoặc vuông, mặc dù, nhớ lại, đại diện cho những gì?
Một mảng, nhưng trong mảng PHP không được lập chỉ mục số lượng.
Họ cũng có thể là mảng kết hợp,
có nghĩa là bạn có thể có các phím tùy ý và giá trị.
>> 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
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,
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 đó.
Bạn nào đó nhớ một thực tế rằng các từ đã có.
Để bây giờ, sẽ là bảng băm của tôi,
và vì vậy bây giờ để đi về thực hiện chức năng kiểm tra
Tôi chỉ cần nhìn vào bên trong đó bảng băm
và xem nếu một từ là ở đó.
Những gì tôi sẽ làm là tôi sẽ nói nếu
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,
để isset ($ table [từ],
và nếu như vậy trở lại đúng sự thật.
Có bấy nhiêu thôi. Đó là pset 5 trong PHP.
Vâng, trong sự công bằng, okay.
Khác trở về sai, vì thế nó không có ở đó.
Những gì thực sự xảy ra ở đây?
Vâng, nếu bảng hoặc bảng băm ở đây nói chung
là một mảng kết hợp có nghĩa là bạn có thể chỉ mục vào nó
với một từ như "từ, và bạn có để có được trở lại một số giá trị.
>> Chúng tôi đã loại đi trước một bước của chính chúng ta.
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,
do đó, tải là không đơn giản, nhưng hãy để tôi đi trước và whip lên
thực hiện thực sự nhanh chóng tải.
Hãy để tôi đi trước và nói những lời nói được tập tin từ điển.
Chức năng tập tin trong PHP mở một tập tin
và trả về cho bạn một mảng của tất cả các từ trong tập tin đó,
chỉ tay chúng cho bạn.
Đó là một nỗi đau lớn quá, được không?
Bây giờ foreach, đây là xây dựng mới của chúng tôi, foreach ($ từ $ từ).
Vòng lặp này sẽ bắt đầu iterating trên các từ mảng
và gán cho biến $ từ mỗi từ trong tập tin
từ lần đầu tiên vào thứ hai thứ ba đến cách thứ tư tất cả các
vì vậy tôi không phải làm [i] ký hiệu gây phiền nhiễu và muốn.
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
được lưu trữ trong bảng của tôi bằng cách đánh chỉ mục vào bảng
và sau đó làm đúng bởi vì nhớ
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
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.
Và nếu nó không có ở đó, tôi không phải rõ ràng đặt sai,
nếu không tôi có phải đặt sai cho tất cả các từ có thể có trong vũ trụ.
>> Nó cũng đủ cho tôi chỉ để thiết lập một giá trị chỉ số
đúng nếu một từ thực sự là trong bảng băm của tôi.
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ờ,
nhưng bây giờ các chức năng tải được thực hiện.
Tôi tải tất cả các từ từ tập tin vào một mảng.
Tôi lặp qua mảng đó, và cho mỗi từ trong mảng
Tôi cắm nó vào bảng băm của tôi với 1 dòng mã.
Đ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ờ?
Vâng, kích thước luôn luôn là khá dễ dàng, trong sự công bằng.
Ở đây chúng tôi chỉ có thể làm được trả lại số của bảng.
Đó là khá dễ dàng quá, đếm số thứ trong bảng.
Đó là loại thực sự không phải là hiệu quả nhất.
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 đó
trong thời gian liên tục, nhưng đó là khá dễ dàng.
Oh, và sau đó dỡ bỏ, nếu chúng ta thực sự muốn có hậu môn ở đây
chúng ta có thể nói rằng đó là cách bạn lấy một cái gì đó.
Bạn chỉ cần đặt biến bằng một mảng rỗng,
và nó sẽ loại bỏ tất cả những gì đã có.
Không cần gọi miễn phí.
>> 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
có lẽ trong C, nhưng nếu bây giờ chúng ta đi trước và chạy này,
Tôi sẽ thực sự chạy các phiên bản mà tôi đã viết trước
vì vậy mà tôi đã không làm cho bất kỳ sai lầm cú pháp nào.
Hãy để tôi đi trước và chạy speller. Sử dụng là như nhau.
Đây là một tập tin từ điển mà chỉ chứa các từ foo.
Dưới đây là một file văn bản chỉ chứa foo bar.
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.
Có một lỗi chính tả, bar, và thì đấy.
Thực hiện với pset 5.
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.
Được rồi, chúng ta trở lại.
Chúng ta hãy làm ghét tôi trong một thời gian.
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
thực sự thực hiện điều này trong PHP.
Cấp, nó mất 45 giây để thực hiện.
>> Nhưng chúng ta hãy đi trước và chạy mọi thứ.
Hãy để tôi đi trước và chạy một phiên bản C
speller, và chúng tôi sẽ chạy nó trên một trong các tập tin lớn nhất,
đó là Kinh Thánh King James.
Và ở đây là trong chúng ta hãy đi vào thư mục C của chúng tôi,
speller về King James 5.
Rất nhiều từ sai chính tả.
Đượ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,
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ả
King James Bible là 0,38 giây, khá tốt bằng cách sử dụng mà thực hiện.
Bây giờ hãy để tôi đi vào trong phiên bản PHP, mà chúng tôi chỉ viết.
Hãy để tôi chạy speller King James.
Whoops, bỏ qua lỗi đó. Tôi đang ở trong thư mục sai.
Speller về King James 5.
Gần xong rồi.
>> Được rồi, người quan sát sắc sảo sẽ nhận ra đó là hơn 3 giây.
Đó là thời gian thực sự chạy.
Nó chỉ ra rằng phải mất thời gian để nhổ rất nhiều văn bản ra
vì đệm vấn đề, nhưng câu chuyện dài ngắn,
đó là 3,15 giây của cỗ máy thời gian, thời gian CPU,
so với nó là một chút thời gian trước đây?
Giống như .3.
Ý tôi là, nó là một thứ tự cường độ chậm hơn, do đó, nơi đó là
vô lý suy thoái đến từ đâu?
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
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.
Đôi khi giữa không gian, đôi khi giữa không gian và thời gian,
không gian, thời gian và nỗ lực phát triển, và thực sự ở đây, mặc dù
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ờ
phát triển thời gian thực hiện kiểm tra chính tả
bằng cách khâu vắt chỉ trong 45 giây với ngôn ngữ này
cái giá phải trả là nó là một thứ tự cường độ chậm như một kết quả,
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,
PHP, Python, Ruby, Pearl hoặc những người khác theo đó
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
từng dòng một, trên xuống dưới, trái sang phải,
mà trung gian là sẽ mất một số thời gian của riêng của mình,
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
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
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
với một tập tin khổng lồ chứa hàng trăm hàng ngàn từ.
>> Rằng chi phí sẽ tăng lên và tăng lên và tăng lên và thêm lên.
Đố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
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.
Tuy nhiên, sự sang trọng mà chúng ta có trong một thời điểm là nếu bạn
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
trong bối cảnh của Web, cho rằng vấn đề, bạn có lợi ích
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.
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.
Nhưng thực tế trên mạng Internet có một số lượng cao của độ trễ
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
đó là khá nhanh, một nửa một phần nghìn giây hoặc lâu hơn,
đó 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
hoặc một bức ảnh Facebook hoặc nhận được tin nhắn trên Facebook trò chuyện,
Gchat hoặc tương tự, tất cả những thời gian chuyến đi vòng quanh
giữa trình duyệt và máy chủ bắt đầu để thêm lên,
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
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
như PHP hay Python hay Ruby
nhưng đó là mặt tích cực rất lớn cho bạn và đồng nghiệp của bạn
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.
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.
Không có con trỏ trong PHP.
Có không có lỗi seg mà bạn có thể dễ dàng gây ra
trong cùng một cách bạn có thể trong C.
Với C bạn siêu gần đến phần cứng.
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,
với rất nhiều bảo vệ giữa bạn và những gì thực sự xảy ra
bên trong máy, và nó chỉ là một sự cân bằng.
>> Chúng tôi đã nhận được đến điểm có những hiện đại hơn, ngôn ngữ cấp cao
như PHP bởi vì các bài học kinh nghiệm trong các ngôn ngữ như PHP trong C.
Nhưng nếu bạn không hiểu những gì đã xảy ra bên dưới mui xe này
bạn chắc chắn không thể thực hiện quyền quyết định thiết kế,
và chắc chắn khi nói đến làm việc tại một nơi như Facebook hay Google
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
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
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ĩ
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
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,
hoặc nó cũng có thể mất thời gian.
Đâ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
đó 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
bạn thực sự hiểu, hoặc trong lý thuyết, thực sự hiểu
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 đủ
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
bạn phải từ bỏ kiểm soát nhiều hơn những người phát minh ra chúng
và có thể nhiều hơn để quyết định thiết kế của họ hơn của bạn.
Nhưng nếu chúng ta coi rằng hiệu suất
không phải là khá quan trọng trên Web vì những vấn đề khác,
chỉ tốc độ mạng là một chút chậm hơn so với tốc độ CPU anyway,
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
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.
>> 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.
Hãy để tôi đi vào một thư mục
trong số những ví dụ ngày nay được gọi là frosh.ims,
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
Tôi đã viết cho Web năm trước sau khi lấy CS50 và CS51
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,
thời gian này đủ năm trước đây, vào thời điểm đó
không có trang web cho chương trình, mặc dù đã có một trang Web,
và thay vào đó là một người giám sát trong Wigglesworth theo đó nếu bạn muốn
để đă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.
Sau đó bạn sẽ đi bộ trên sân.
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ị
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,
môn thể thao nào muốn làm, và những gì ký túc xá của bạn.
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ố
cơ hội để tự động hoá rất nhiều của quá trình này.
Bạn chỉ cần đi đến trang web. Bạn gõ một cái gì đó.
Bạn nhận được một email xác nhận, và sự bùng nổ, bạn đang làm.
>> Đâ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,
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
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
lập trình và không phải dựa trên những thứ như các trang web của Google
hoặc Excel hoặc các công cụ được giao cho bạn.
Các bạn bây giờ có khả năng làm những việc như thế này.
Đây là một phiên bản siêu xấu xí của một hình thức,
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à
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
để cho phép mọi người trên Web để đăng ký Frosh tin nhắn tức thì.
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,
nam hay nữ, và sau đó ký túc xá của họ ở trong,
và sau đó họ sẽ gửi mẫu này.
Hãy nhìn đầu tiên bên dưới mui xe HTML đại diện cho trang web này.
Hãy để tôi đi vào froshims0,
như là một dành cho pset 7 tôi cho các cấp
các thư mục và các thư mục mà tôi đang đưa mọi thứ.
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ị,
lệnh mod bạn có để chạy, do đó, không lo lắng về tất cả các
chi tiết ngu ngốc đồng bộ từ ở đây có được đi.
>> Được rồi, đây là froshims0.php.
Hãy để tôi di chuyển xuống, và những gì là tò mò,
đây là một file PHP, nhưng những gì bên trong của nó, rõ ràng?
Đó là một toàn bộ rất nhiều về HTML, và thực sự, PHP nguồn gốc
thực sự là một ngôn ngữ Web-trung tâm.
Một lúc trước, chúng tôi đã sử dụng nó để thực hiện ví dụ bia,
các điều kiện ví dụ, ví dụ hello, và đó là tốt.
Bạn có thể sử dụng PHP như là một ngôn ngữ kịch bản
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
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.
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
tương đối, chúng ta có thể tận dụng các chương trình trong PHP.
Nhưng nó đã thực sự được thiết kế để sử dụng cho Web,
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
Tôi bắt đầu với <? Php.
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ế độ.
Nhưng sau đó tôi thả vào chế độ HTML.
>> Có gì thú vị về PHP là dù file kết thúc bằng. Php
nó thường có nghĩa là phải trộn lẫn với HTML,
một số mã PHP, một số HTML.
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
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,
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,
rằng nếu bạn muốn một số HTML chỉ cần viết nó, và đó sẽ là
nhổ ra giống hệt với trình duyệt.
Nhưng nếu bạn cần một số kỹ thuật lập trình,
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.
Đây là HTML của tôi.
Tôi đã có một danh hiệu này cho Frosh tin nhắn tức thì.
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,
và sau đó xuống ở đây tôi có một hình thức mà dường như sẽ phải nộp
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.
Đó 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.
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,
một có tên là đội trưởng, có loại là hộp kiểm,
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.
Bạn sẽ nhận được một hộp kiểm thay vì một hộp văn bản.
Xuống ở đây bạn có một nút radio, đó là một trong những nút tròn
mà bạn có thể chọn một hoặc rằng một.
>> Chú ý nó là cố ý mà tôi đã cho cả hai nút radio tên của giới tính.
Đây là cách bạn có được loại trừ lẫn nhau, theo đó bạn phải nhấp vào
hoặc này hoặc rằng một trong, và bằng cách nhấn khác
nó unchecks khác, vì vậy bạn phải cung cấp cho họ cùng tên
nếu bạn muốn họ được loại trừ lẫn nhau như thế.
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.
Thẻ cho đó là lựa chọn.
Sau đó, bạn cung cấp cho các trình đơn thả xuống một cái tên,
và sau đó bạn có một bó toàn bộ các tùy chọn này.
Người đầu tiên, chỉ cần cho thẩm mỹ, là một chuỗi rỗng.
Tôi chỉ muốn thả xuống được để trống theo mặc định,
và sau đó có Apley, Canaday, Grays, và vv.
Và nhận thấy sự phân đôi ở đây.
Các tùy chọn trong trình đơn thả xuống có một giá trị,
nhưng sau đó nó có một tên con người thân thiện, trong ví dụ này
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ó
giá trị của sự giảm xuống này xuống chỉ là phiên bản ngắn,
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,
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.
Sau đó, xuống ở dưới cùng, chúng tôi có một nút submit
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.
Thay vào đó của CS50 tìm kiếm, tôi đã đưa ra nhãn "Đăng ký".
>> Kết quả cuối cùng là trang web này ở đây, và một lần nữa,
nơi nào có được trình?
Nó được gửi đến một số tập tin, các giá trị của thuộc tính hành động,
là register0.php.
Hãy xem những gì thực sự xảy ra ở đây.
Hãy để tôi đi trước và điền vào mẫu này, David,
nam, Matthews, và sau đó tôi sẽ nói đăng ký.
Hãy để tôi thu nhỏ và nhấp vào đăng ký.
Đượ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.
Chú ý rằng URL đã thay đổi được register0.php.
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?
[Không nghe được sinh viên phản ứng]
Được rồi, đó chỉ là người sử dụng Chrome là những ngày này.
Đó là thực tế ở đó. Họ chỉ cần ẩn nó để tiết kiệm không gian.
Tuy nhiên, suy nghĩ, suy nghĩ tốt.
Về phía đầu kia của URL, tuy nhiên, những gì còn thiếu? Yeah.
[Sinh viên] Các chuỗi truy vấn.
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.
Ngay sau khi tôi nhấn nút gửi URL
đư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õ.
Đó là bởi vì chúng tôi sử dụng phương pháp get với ví dụ tìm kiếm.
>> Thời gian này chúng tôi đang sử dụng những phương pháp thay thế?
Đăng bài, và một trong những sự khác biệt ngay lập tức
giữa GET và POST là bài mà không đưa đầu vào của người sử dụng trong URL.
Nó ẩn nó. Nó vẫn gửi nó.
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
bằng cách nhìn register0, tôi chỉ nhìn thấy các nội dung
của mảng đã được gửi từ trình duyệt đến máy chủ.
Nhưng URL không có một?, Không có bất kỳ từ khoá nào
hoặc các giá trị trong nó, và tại sao vậy?
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ủ,
nhưng nó không đặt nó trong URL, do đó, những loại thông tin là bài viết
đặc biệt thích hợp cho có lẽ khi bạn đang yêu cầu người dùng
gõ vào đầu vào để tạo thành một?
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?
Số thẻ tín dụng.
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
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
lịch sử internet của bạn và sau đó nghĩa là mật khẩu của bạn,
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
nhớ trong lịch sử bất cứ URL mà bạn đã ở,
do đó, nếu chỉ vì đó sẽ là một ý tưởng tồi.
Sử dụng ẩn bài viết có chi tiết từ người dùng.
>> Ngoài ra, làm thế nào để tải lên một bức ảnh lên Facebook?
Vâng, 2 chỉ cơ chế bạn thực sự có thể sử dụng,
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.
Làm thế nào để bạn có thể tải lên một hình ảnh thông qua một URL?
Bạn thực sự có thể làm điều đó.
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
hoặc một cái gì đó gọi là cơ sở 64.
Thay vì căn cứ 16 bạn sử dụng 64 cơ sở, trong đó chủ yếu trông giống như
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
sau khi một dấu hỏi, nhưng nói chung là có giới hạn kích thước.
Hầu hết các trình duyệt buộc URL là không nhiều hơn 1.000 ký tự,
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
10 MB Facebook ảnh.
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,
đó 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
bưu chính là con đường để đi.
Register0 được những gì thực sự làm gì ở đây?
Vâng, nếu tôi mở register0 thông báo rằng đây là một siêu trang đơn giản,
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,
HTML với PHP.
Toàn bộ tập tin này, ngoại trừ cho các ý kiến ​​ở trên cùng, HTML
ngoại trừ anh chàng này ở đây.
>> Chú ý ở giữa của mã PHP của tôi,
ở giữa của HTML của tôi, tôi có sắp xếp tạm
nhập PHP chế độ.
Tôi gọi một chức năng đặc biệt gọi là in r.
Nó có nghĩa là in đệ quy, và những gì nó làm là nó đệ quy in
bất kỳ biến nào bàn tay nó, dấu chấm phẩy, thoát khỏi chế độ PHP.
Và thẻ trước khi cung cấp cho bạn định dạng văn bản trước,
mono không gian văn bản để mọi không gian, bạn thực sự nhìn thấy nó.
Nó không biến mất. Bài là gì?
Vâng, những gì thú vị và hấp dẫn về PHP
là bất cứ khi nào bạn gửi một hình thức sử dụng được hoặc đăng
bất cứ điều gì đã được gửi cho bạn bởi một trình duyệt
PHP chính nó ra những cặp giá trị quan trọng,
con số ra nếu có dấu bằng, con số ra nếu có một dấu chấm hỏi.
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
có chứa tất cả mọi thứ mà người dùng gõ vào biểu mẫu.
Vâng, những lĩnh vực biểu mẫu này?
>> Nó có 4 lĩnh vực.
Một trong số đó là một trường văn bản được gọi là tên.
Một trong số đó là một ô trống được gọi là đội trưởng.
Một trong số đó là một nút radio gọi là giới tính,
và một là một trình đơn thả xuống được gọi là ký túc xá,
để nhận thấy khi tôi in đệ quy
các nội dung của biến đặc biệt này.
Đâ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ũ.
Đây là một biến toàn cầu đặc biệt mà PHP chỉ tạo ra cho bạn
và bàn tay cho bạn để bạn có thể truy cập vào tất cả mọi thứ
đã được gửi thông qua một hình thức bởi một người dùng.
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.
Chúng tôi đang làm điều này để xem bên trong của biến này,
và những gì bên trong của nó, tốt, 4 phím,
4 http thông số, có thể nói,
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
gõ vào với một ngoại lệ.
Tôi đã làm loại D-A-V-I-D.
Tôi kiểm tra hộp, mặc dù đối với nam, mà dường như gửi một giá trị
chỉ m được gọn gàng.
>> Khi tôi chọn Matthews đó là các giá trị đã được lựa chọn,
và điều này là một chút ngu ngốc, nhưng đó là quy ước.
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.
Nếu tôi đã không kiểm tra nó, không có giá trị sẽ được gửi gì.
Đâ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,
, và nó thật đặc biệt mà nó được gọi là một biến toàn cầu siêu.
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ó.
Đâ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
và thực sự cố gắng để đăng ký một người nào đó.
Năm froshims1, tôi sẽ làm cho một sự thay đổi.
Tôi đang thay đổi hành động là register1.php,
và tôi đang làm một điều khác.
Tôi là loại xấu hổ bởi chất lượng của trang web của tôi ở đó.
Nó khá ghê gớm, một cách trung thực, do đó, nó quay ra
mà bạn có thể sử dụng rất dễ dàng trên Web
của người khác mã JavaScript, CSS của người khác
rằng họ đã viết và mở nguồn và thực hiện như là một thư viện,
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,
một loạt các mã mà người khác đã viết.
>> Twitter đã xảy ra để viết mã này, và nó được gọi là thư viện bootstrap,
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
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á
để 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
logic và lập trình thực tế.
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,
Tôi bây giờ có quyền truy cập vào một tập tin gọi bootstrap.min.css.
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
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.
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ì
nhận thấy rằng tập tin của tôi chắc chắn là đẹp hơn.
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ọ
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,
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ý.
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,
nhưng nó chắc chắn sạch hơn so với trước.
>> 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.
Đâ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,
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
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
sử dụng một yếu tố fieldset bên trong biểu mẫu của bạn,
đặ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,
sau đó cung cấp cho đầu vào của bạn một cái tên, giống như trước,
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,
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,
nhưng bạn sẽ thấy điều này trong một trong những quần short pset 7.
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,
nhưng trước khi chúng tôi đã có một ID với các biểu tượng #
đó là cho một và chỉ có một yếu tố.
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
hoặc các công cụ CSS áp dụng cho nó.
>> 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
từ tài liệu của họ, nơi tôi đã ở đây và ở đó thêm một nhãn.
Và cuối cùng, bởi vì tôi đã bao gồm thẻ liên kết ở đầu trang,
tất cả mọi thứ có vẻ đẹp tự động
chỉ đơn giản bằng cách đánh dấu trang của tôi một cách
Twitter mong đợi, và có rất nhiều cách khác nhau
làm điều này, và điều này thực sự là rất thích hợp.
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,
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
và JavaScript để giải quyết các vấn đề phụ trợ
vấn đề thiết lập chính nó là chắc chắn khuyến khích và là cách
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
để bạn thực sự có thể tập trung vào các vấn đề mới và thú vị.
Nhưng bây giờ tập trung vào, một lần nữa, logic.
>> Đó 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.
Tôi sẽ quay trở lại các uglier cho bây giờ chỉ vì
không có phiền nhiễu với các công cụ Twitter, và để cho tôi đi trước và mở
froshims2, trong đó, một lần nữa, chỉ khác ở register2.php, hành động,
và chúng ta hãy nhìn vào những gì hiệu quả là ở đây.
Hãy để tôi đi trước và gõ vào David.
Tôi sẽ không là đội trưởng lần này.
Tôi sẽ nói nam, Matthews, đăng ký.
Chết tiệt. Được rồi, đó là một ốc vít trên một phần của tôi.
Stand by.
Register2, dòng 22, nếu sản phẩm nào hoặc xin lỗi.
Hãy tải lại.
Được rồi, khi nộp mẫu đơn này những gì vừa xảy ra?
Tôi gõ vào David, kiểm tra nam, nhấp vào Matthews, đăng ký.
Bạn đã được đăng ký. (Vâng, không thực sự).
Đâ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,
nhưng tập tin này được những gì thực sự đang làm gì?
Trong register2.php
nhận thấy rằng tôi có một số mã mới.
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,
nhưng bởi vì tôi là đồng hòa điều này với một số HTML
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.
>> Trong dòng đầu tiên ở đây tôi đang nói nếu đó là trường hợp
bài siêu toàn cầu có sản phẩm nào cho chìa khóa của tên,
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,
sau đó sản phẩm nào được để trở về đúng bởi vì giá trị là trống rỗng.
Hoặc thông báo các thanh dọc-giới tính là trống rỗng
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,
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.
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á.
Hãy thực sự gây ra sai lầm đó.
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ó.
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.
Đăng ký. Rõ ràng tôi cần phải nói cho họ biết nơi tôi sống.
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.
>> Và tôi có thể nhấp vào để trở lại hình thức đó, nhưng tại sao vậy?
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à,
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,
một lần nữa, chúng tôi nhập vào chế độ PHP, quen thuộc nếu tuyên bố,
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
do tai nạn, nhưng nhận thấy các dấu hai chấm, và điều đó có nghĩa
mặc dù chúng ta đang thoát khỏi chế độ PHP tất cả mọi thứ
sau phải được nhổ ra đúng nguyên văn cho trình duyệt
cho đến khi bạn nhìn thấy một khối khác, như chúng ta làm ở đây,
trong trường hợp này bạn nên thay vì nhổ này
cho đến khi bạn nhìn thấy endif, do đó, một số hơi mới cú pháp
cho phép tôi để chuyển đổi giữa HTML và PHP.
Chúng ta có thể làm sạch này lên cuối cùng, nhưng bây giờ,
đó là loại một cách thuyết phục các lỗi kiểm tra hình thức.
>> 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,
do đó, chúng ta hãy thực sự cố gắng để làm một cái gì đó mát mẻ.
Trong froshims3 sự khác biệt duy nhất là tôi sẽ trình register3,
vì vậy HTML có cùng.
Trong register3 nhận thấy điều này.
Đây là một trong những loại sexy.
Ở 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.
Lần này nó không phải stdio.h hoặc bất cứ điều gì như thế.
Đó là một thư viện PHP, và điều này được gọi là PHPMailer.
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?
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
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.
Nó cho phép bạn gửi email thông qua PHP.
Bây giờ hãy di chuyển xuống thấp hơn nữa.
>> Chú ý để bắt đầu tôi trong PHP chế độ toàn bộ thời gian này,
vì vậy bây giờ nhận thấy ở đây sau khi nhập khẩu rằng thư viện,
có thể nói, tôi đang làm một số kiểm tra sanity.
Nếu đó là trường hợp tên đó là không có sản phẩm nào
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
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à đủ.
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á.
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
điều này là hơi cú pháp mới.
PHP, một sang một bên, là một đối tượng ngôn ngữ lập trình hướng
mà một số bạn có thể nhớ lại từ APCS hoặc tương tự.
Để bây giờ, nếu không quen thuộc, chỉ biết rằng để sử dụng thư viện này
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,
nghĩa là một từ khóa mới được gọi là mới.
Nhưng ngoài ra, chúng tôi có một số cú pháp quen thuộc.
Đó 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ỏ.
Cho ngày hôm nay PHP không có con trỏ,
nhưng biết rằng bên trong của biến thư
chủ yếu là loại một con trỏ đến một thư viện đặc biệt
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ể
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,
mặc dù đây không phải là thực sự con trỏ.
Đó là loại phiên bản của PHP đó.
Điều này có nghĩa là đi vào thư viện và gọi hàm IsSMTP.
SMTP, thu hồi, từ các chiến binh của chúng tôi của Net đề cập để gửi email,
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ý.
>> Chủ nhà làm tôi muốn sử dụng?
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.
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
nó có thể là một cái gì đó giống như smtp.comcast.net.
Nó hoàn toàn phụ thuộc vào nơi bạn sống và ISP của bạn là.
Sau đó, tôi sẽ thiết lập của tôi từ địa chỉ tùy tiện được jharvard@cs50.net.
Sau đó tôi sẽ thiết lập để giải quyết được jharvard@cs50.net.
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
là, một lần nữa, tôi đọc tài liệu.
Đâ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.
Sau đó, tôi thiết lập một chủ đề để "đăng ký".
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?
Bất cứ ai biết?
Tiếp nhau.
Trong C, nó là một cơn đau ở cổ để nối 2 chuỗi lại với nhau.
Bạn có để đối phó với malloc hoặc realloc hoặc tất cả các công cụ mà
chỉ để mở rộng chiều dài của một chuỗi.
Trong PHP, JavaScript và các ngôn ngữ khác
bạn thường có thể làm điều này với một nhân vật duy nhất.
Trong trường hợp này, dấu chấm có nghĩa là chuỗi này ở đây
và thêm chuỗi này.
>> Oh, và bằng cách này, gắn thêm vào nó chuỗi này,
mà sẽ xảy ra bên trong biến trên toàn cầu siêu.
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à
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,
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,
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
cách để đẻ nó ra.
Này đang làm gì?
Điều này tạo ra một cơ thể email đó là sẽ nói Tên: Captain: Giới tính: Dorm:
tất cả trên dòng riêng biệt, và sau đó cuối cùng,
một dòng mã, và tôi sẽ bỏ qua điều này cho bây giờ.
Nếu == false chỉ có nghĩa là nếu một cái gì đó đã đi sai,
nhưng kỳ diệu xảy ra ở đây.
Mail Gửi có nghĩa là gửi email này.
Hãy xem kết quả ròng là những gì.
Ở 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ự
nếu tôi nhận được rằng cho đến nay.
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
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
và không có sản phẩm nào chúng tôi gửi thư.
Nếu không, chúng tôi sẽ gửi dòng mã này,
đó là sẽ có tác dụng, như bạn sẽ thấy trong pset 7, chuyển người dùng
trở lại froshims3.php, nơi họ đến.
>> 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.
Ở đây chúng tôi đi.
Hãy để tôi mở hộp thư email của tôi cho jharvard trong Gmail.
Không có email ngay bây giờ. Được rồi.
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.
Được rồi, ở đây chúng tôi đi.
Nate, anh ấy sẽ là đội trưởng, nam, từ, nói, Apley.
Đăng ký. Được rồi, bạn đã được đăng ký thực sự.
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.
Tôi vừa tự động gửi một email trên Web.
>> Hãy để lưu ý.
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.
[CS50.TV]