1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [שבוע 8] 2 00:00:02,000 --> 00:00:04,000 [הדוד J מלאן] [אוניברסיטת הרווארד] 3 00:00:04,000 --> 00:00:07,000 [זה CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> ברוך שובך. 5 00:00:09,000 --> 00:00:11,000 זה CS50, וזו היא ההתחלה של 8 שבועות. 6 00:00:11,000 --> 00:00:14,000 כמה הזדמנויות השבוע, 7 00:00:14,000 --> 00:00:17,000 ביניהם הדיבורים האלה כאן, שבו אוכל יוגשו. 8 00:00:17,000 --> 00:00:20,000 לפרטים נוספים לבדוק את השקופיות שנמצאות באינטרנט. 9 00:00:20,000 --> 00:00:24,000 וגם אירוע נוסף שבוע על ידי תומאס עצמו Carriero. 10 00:00:24,000 --> 00:00:27,000 הוא אחד מהבחורים של CS50 לשעבר ראש ההוראה שנמצאים כיום בDropbox, 11 00:00:27,000 --> 00:00:29,000 והוא הבחור שחבר אותנו עם אתה יודע מה, 12 00:00:29,000 --> 00:00:36,000 כך שאם אתה רוצה יותר מזה ראש לשיחתם אחר הצהריים לDropbox ויותר. 13 00:00:36,000 --> 00:00:38,000 CS50 הצהריים הם ביום שישי הקרוב. 14 00:00:38,000 --> 00:00:41,000 האם יצטרף אלינו אם אתה מסוגל, 1:15, כרגיל, באש וקרח. 15 00:00:41,000 --> 00:00:45,000 >> ועכשיו אנחנו לצלול לתוך משהו שנקרא סמינרים. 16 00:00:45,000 --> 00:00:49,000 CS50 הסמינרים שלנו, כזכור, הם כיתות אופציונליות אלה הובילו על ידי עמיתי ההוראה 17 00:00:49,000 --> 00:00:51,000 וכמובן עוזרים וחברים של הקורס, 18 00:00:51,000 --> 00:00:55,000 אנשים מקבוצה בקמפוס הנקראים ABCD, שהיא קבוצה של 19 00:00:55,000 --> 00:00:58,000 technophiles בקמפוס, כמו גם קבוצה שנקראת HCS, 20 00:00:58,000 --> 00:01:02,000 חברת הרווארד מחשב, סטודנטים המעוניינים באופן דומה במחשוב. 21 00:01:02,000 --> 00:01:08,000 הסגל של השנה של סמינרים כולל סמינרים באנדרואיד ו iOS ו-JavaScript 22 00:01:08,000 --> 00:01:13,000 וPHP, יוניקס, Vim, ועוד, ולכן הבינו שהסמינרים האלה באים. 23 00:01:13,000 --> 00:01:16,000 אם אתה רוצה לאשר השתתפות לכל אחד מהם בראש לאותה כתובת שם. 24 00:01:16,000 --> 00:01:20,000 אז אנו נפרסם באתר האינטרנט של הקורס את הזמנים ומקומות ברגע שהם סופיים. 25 00:01:20,000 --> 00:01:26,000 אבל יודע שיש שווה של 5 השנים של סמינרים קודמים זמין באינטרנט, 26 00:01:26,000 --> 00:01:29,000 רבים מהם עדיין מאוד נוכחיים במונחים של טכנולוגיות שאולי 27 00:01:29,000 --> 00:01:36,000 רוצה לשחק עם לפרויקט הגמר שלך, ולכן בראש שיש לחלק מהסרטונים הזמינים. 28 00:01:36,000 --> 00:01:39,000 >> CSS, אלה מכם שמכירים CSS כבר, 29 00:01:39,000 --> 00:01:42,000 מה זה על רגל האחת? 30 00:01:42,000 --> 00:01:45,000 מה זה CSS? 31 00:01:45,000 --> 00:01:48,000 זה גיליונות סגנון מדורג, ומה זה אומר? 32 00:01:48,000 --> 00:01:53,000 מה זה עושה לנו, CSS? 33 00:01:53,000 --> 00:01:57,000 בסדר, בואו להתחמם עם 1 קל, HTML, שפת סימון היפרטקסט. 34 00:01:57,000 --> 00:02:01,000 מה זה עושה לנו? 35 00:02:01,000 --> 00:02:04,000 מישהו בכלל? 36 00:02:04,000 --> 00:02:07,000 זה מתחיל להיות ממש מביך לשאול את השאלות האלה. 37 00:02:07,000 --> 00:02:11,000 HTML, שפת סימון היפרטקסט. 38 00:02:11,000 --> 00:02:14,000 כן? לא? 39 00:02:14,000 --> 00:02:17,000 [תגובת תלמיד לא נשמעה] 40 00:02:17,000 --> 00:02:20,000 אוקיי, טוב, זה מאפשר לנו לסמן טקסט להצגה בדפדפן אינטרנט. 41 00:02:20,000 --> 00:02:22,000 זה לא שפת תכנות. 42 00:02:22,000 --> 00:02:25,000 זה אכן שפת סימון, שאומר שהוא מורה לדפדפן כיצד להציג 43 00:02:25,000 --> 00:02:28,000 מידע, כך הגלגול הפשוט של זה כפי שראינו 44 00:02:28,000 --> 00:02:32,000 זה משהו סופר פשוט כמו boldfacing, סוגר פתוח סוגר ב סגור אומר 45 00:02:32,000 --> 00:02:36,000 להפוך את הטקסט הזה מודגש, וזה בעצם רק אחת מדרכים רבות 46 00:02:36,000 --> 00:02:39,000 שבו אנחנו יכולים לעשות את זה, ואכן, בימים אלה גישה טובה יותר 47 00:02:39,000 --> 00:02:42,000 לstylizing דף האינטרנט שלך, מה שהופך את דברי הדגשה והטיה 48 00:02:42,000 --> 00:02:47,000 ומרוכז ומוצדקים וכדומה, לא נעשה באמצעות תגי HTML לבד 49 00:02:47,000 --> 00:02:51,000 אלא בטכניקה הנקראת CSS, גיליונות סגנון המדורג. 50 00:02:51,000 --> 00:02:53,000 זו היא שפה בפני עוצמה. 51 00:02:53,000 --> 00:02:55,000 גם היא לא שפת תכנות אבל- 52 00:02:55,000 --> 00:02:58,000 כולם, זה דן, ששומר על שהצטרף אלינו היום. 53 00:02:58,000 --> 00:03:01,000 חלק מהקשיים טכניים. לא בעיה. 54 00:03:01,000 --> 00:03:04,000 >> CSS מאפשר לנו לסגנן דף 55 00:03:04,000 --> 00:03:07,000 על ידי קביעה מה שנקרא נכסים, אז בואו נסתכל על זה 56 00:03:07,000 --> 00:03:09,000 בדרך של כמה דוגמאות בסיסיות. 57 00:03:09,000 --> 00:03:12,000 בואו ייכנסו למכשיר אותי היום. 58 00:03:12,000 --> 00:03:15,000 יש לי ביום שני 8 בספריית המקור כאן, 59 00:03:15,000 --> 00:03:18,000 ואני מתכוון להיכנס לספרייה בשם CSS שם יש לנו חבורה שלמה 60 00:03:18,000 --> 00:03:21,000 של קבצים שמחכים לנו ממש כאן, 61 00:03:21,000 --> 00:03:27,000 בתיקייה זו ויש לנו, למשל, search0.html מהעת האחרונה. 62 00:03:27,000 --> 00:03:31,000 עכשיו, זוכר עם search0 יצאנו בפתק זה 63 00:03:31,000 --> 00:03:35,000 על ידי סוג של יישום Google או באמת רק הקצה הקדמי לזה לפני שבוע בערך, 64 00:03:35,000 --> 00:03:38,000 ושים לב שיש לנו כמה תגים חדשים שם. 65 00:03:38,000 --> 00:03:41,000 היו לנו h1 לכותרת גדולה, נועזת, 66 00:03:41,000 --> 00:03:45,000 טופס, אשר אפשר לנו למעשה יש טופס HTML עבור קלט של משתמש. 67 00:03:45,000 --> 00:03:48,000 פעולה, מה הייתה המשמעות של תכונת פעולה 68 00:03:48,000 --> 00:03:52,000 על תג הטופס HTML? 69 00:03:52,000 --> 00:03:58,000 מה הייתה המשמעות שלה, פעולה זו? 70 00:03:58,000 --> 00:04:00,000 אני רק עושה את זה היום. 71 00:04:00,000 --> 00:04:03,000 פעולה היא היעד שבו לצורה הולכת להיות מוגש. 72 00:04:03,000 --> 00:04:07,000 פעולת העובדה שאומרת = "google.com / חיפוש" 73 00:04:07,000 --> 00:04:10,000 משמעות דבר הוא שכאשר המשתמש לוחץ על כפתור השליחה או שווה הערך 74 00:04:10,000 --> 00:04:14,000 כל צורה ששדות שהם מלאו הולכים להיות לא נשלחו לשרת שלנו 75 00:04:14,000 --> 00:04:17,000 או המכשיר שלנו אלא לכך שכתובת אתר המבוקשת בגוגל. 76 00:04:17,000 --> 00:04:19,000 ואת השיטה שהוא הולך להשתמש נקראת להגיע, 77 00:04:19,000 --> 00:04:25,000 ולקבל, לעת עתה, היא רק טכניקה להעברת מידע לאורך לשרת אינטרנט 78 00:04:25,000 --> 00:04:29,000 בדרך של כתובת האתר, אז בואו נעיף מבט מהיר לאחור כיצד זה עובד. 79 00:04:29,000 --> 00:04:31,000 >> שים לב שיש קלט ששם q 80 00:04:31,000 --> 00:04:35,000 הסוג שלו הוא טקסט ולאחר מכן קלט שני מסוג submit 81 00:04:35,000 --> 00:04:39,000 הערך שלו הוא CS50 חיפוש, ואכן, אם אנחנו פותחים את הקובץ הזה לכאן, 82 00:04:39,000 --> 00:04:42,000 search0.html, זו צורת סופר פשוטה, 83 00:04:42,000 --> 00:04:45,000 ואם אני מחפש משהו כמו מדעי מחשב 84 00:04:45,000 --> 00:04:50,000 ואז הקש על Enter או לחץ על CS50 חיפוש 85 00:04:50,000 --> 00:04:53,000 תבחין כי מה שקורה הוא מעבר להגעה לגוגל 86 00:04:53,000 --> 00:04:56,000 אני כבר הסתיימתי באופן ספציפי את בכתובת זו בראש, 87 00:04:56,000 --> 00:05:01,000 google.com / חיפוש? q = מחשב + מדע, 88 00:05:01,000 --> 00:05:04,000 ומדעי מחשב הם ללא ספק מה שאני הקלדה 89 00:05:04,000 --> 00:05:06,000 + רק אומר שזה מקום שבי תו רווח היה, 90 00:05:06,000 --> 00:05:10,000 וזה נעשה על ידי הדפדפן רק כדי לוודא שאין 91 00:05:10,000 --> 00:05:13,000 בלבול וחלל לבן בכתובת האתר בפועל. 92 00:05:13,000 --> 00:05:15,000 ואז ש, כמובן, הוא שם הפרמטר. 93 00:05:15,000 --> 00:05:20,000 לא ראינו איך אנחנו, המתכנת, יכולים למעשה לגשת q עדיין. 94 00:05:20,000 --> 00:05:23,000 אנחנו יכולים להניח שגוגל יודעת מה לעשות עם זה כאן, 95 00:05:23,000 --> 00:05:25,000 אבל אנחנו נגיע לשם בבוא זמן היום. 96 00:05:25,000 --> 00:05:30,000 >> אבל תן לי להעיף מבט במקום בsearch1.html, 97 00:05:30,000 --> 00:05:34,000 שנראה קצת שונה, כי החליט שטופס זה כאן היה קצת צולע. 98 00:05:34,000 --> 00:05:36,000 אני מתכוון, זה בפינה השמאלית העליונה. 99 00:05:36,000 --> 00:05:40,000 באמת אין אסתטיקה לזה, ולכן אני רוצה לסגנן זה 100 00:05:40,000 --> 00:05:43,000 קצת יותר כמו גוגל, דף הבית שלו, כזכור, 101 00:05:43,000 --> 00:05:47,000 למרות שאתה לא יכול לבקר אותו, כי לעתים קרובות, נראה כך היום בליל כל קדושים. 102 00:05:47,000 --> 00:05:53,000 אם במקום לפתוח את הגרסה 1 של קובץ זה, 1.html חיפוש, שמרכזתי אותה. 103 00:05:53,000 --> 00:05:57,000 עדיין די מכוער, אבל לפחות עכשיו אני כבר התחלתי לשלוט באסתטיקה של דף זה, 104 00:05:57,000 --> 00:06:00,000 לא רק מסמן אותם. 105 00:06:00,000 --> 00:06:04,000 בואו נסתכל 1 חיפוש, ויש באמת רק הבדל אחד כאן, 106 00:06:04,000 --> 00:06:06,000 אשר עשוי לקפוץ החוצה אליך, או אולי לא, 107 00:06:06,000 --> 00:06:11,000 אבל מה השורה או קטע אחד של הבדל? 108 00:06:11,000 --> 00:06:14,000 >> יש מאפיין סגנון זה, כך מתברר, כי ב-HTML 109 00:06:14,000 --> 00:06:19,000 רוב האלמנטים, רוב התגים יכולים להיות תכונת סגנון עליהם, 110 00:06:19,000 --> 00:06:23,000 ובתוך שתכונת הסגנון הוא מחרוזת מצוטטת, 111 00:06:23,000 --> 00:06:26,000 ושהמחרוזת המצוטטת היא CSS. 112 00:06:26,000 --> 00:06:29,000 אתה יכול לשים את גיליון סגנונות מדורגים שם 113 00:06:29,000 --> 00:06:32,000 על ידי ההגדרה כשם מאפיין 114 00:06:32,000 --> 00:06:34,000 אחריו נקודות ואחריו ערך. 115 00:06:34,000 --> 00:06:37,000 זה סוג של עיצוב החלטה מצערת לפני כמה שנים 116 00:06:37,000 --> 00:06:40,000 שCSS היא שפה בפני עוצמה, 117 00:06:40,000 --> 00:06:43,000 אבל מבחינה תחבירית זה שונה מאוד מ-HTML. 118 00:06:43,000 --> 00:06:46,000 במקרה זה, אנו רואים בתוך דף האינטרנט שלי, שכתוב ב-HTML, 119 00:06:46,000 --> 00:06:51,000 יש לי CSS הפנימי של ציטוטים אלה, והכנס לCSS 120 00:06:51,000 --> 00:06:55,000 הוא שיש לך מה שנקרא מאפיין ואחרי, שוב, מעי גס, 121 00:06:55,000 --> 00:06:58,000 אחריו את הערך של אותו נכס, כך שאין סימן שוויון. 122 00:06:58,000 --> 00:07:00,000 אין פה ציטוטים נוספים. 123 00:07:00,000 --> 00:07:03,000 זה פשוט הצמד הזה המעי הגס המופרד מפתח הערך, 124 00:07:03,000 --> 00:07:05,000 ושורת טקסט עושה בדיוק מה זה אומר. 125 00:07:05,000 --> 00:07:09,000 זה מיישר את הטקסט בגוף הדף, וזה באמת את האומץ של הדף, 126 00:07:09,000 --> 00:07:11,000 במרכז. 127 00:07:11,000 --> 00:07:13,000 >> אוקיי, אז התוצאה הסופית, שיהיה ברור, היא זו. 128 00:07:13,000 --> 00:07:17,000 לא כל כך סקסי, אבל לפחות זה מרוכז וקצת יותר כמו גוגל האמיתית. 129 00:07:17,000 --> 00:07:21,000 אבל מה אם אני במקום לפתוח את הגרסה 2 של זה 130 00:07:21,000 --> 00:07:25,000 ולהצביע כאן למטה תג חדש לגמרי? 131 00:07:25,000 --> 00:07:30,000 עכשיו בראש הדף שלי, שבעבר היה רק ​​שתג 132 00:07:30,000 --> 00:07:32,000 בכל הדוגמות הקודמות? 133 00:07:32,000 --> 00:07:34,000 זה פשוט היה זה, בתואר. 134 00:07:34,000 --> 00:07:38,000 רגע לפני תג הראש נראה כמו זה. 135 00:07:38,000 --> 00:07:40,000 עכשיו, במקום שיש לו בתוך תג סגנון שלו, 136 00:07:40,000 --> 00:07:44,000 וגם את זה, אני מתנצל, מבחינה תחבירית נראה מאוד שונה מ-HTML, 137 00:07:44,000 --> 00:07:47,000 אבל אתה מתרגל לזה, לפיו בתוך תג הסגנון 138 00:07:47,000 --> 00:07:50,000 עכשיו אני יכול גורם את מה שהייתה לפני רגע 139 00:07:50,000 --> 00:07:54,000 תכונה, תכונת הסגנון, ואני יכול לשים אותו בחלקו העליון של הדף שלי. 140 00:07:54,000 --> 00:07:56,000 >> למה? 141 00:07:56,000 --> 00:08:00,000 ובכן, זה הוא צעד לקראת לנקות דברים, ממש כמו בכתיבת קוד C 142 00:08:00,000 --> 00:08:04,000 לפעמים אנחנו נכתוב פונקציות לfactor את התפקוד משותף. 143 00:08:04,000 --> 00:08:07,000 זה רק מעט נקי יותר כדי להתחיל הפקטורינג את הדברים כמו האסתטיקה 144 00:08:07,000 --> 00:08:11,000 למיקום מרכזי אחד ולא שיש את כל זה לפזר ברחבי HTML שלך. 145 00:08:11,000 --> 00:08:14,000 זה גם עושה מה שהוא אומר, למרות שיש בזה קצת בתחביר חדש. 146 00:08:14,000 --> 00:08:19,000 זה כאן הוא בורר, וגוף רק אומר לבחור את אלמנט הגוף 147 00:08:19,000 --> 00:08:21,000 ולהחיל את המאפיינים הבאים אליו. 148 00:08:21,000 --> 00:08:23,000 ובכן, המאפיין הוא בדיוק אותו הדבר. 149 00:08:23,000 --> 00:08:25,000 למען סדר טוב אני הוספתי פסיק בסוף, 150 00:08:25,000 --> 00:08:29,000 אשר נוטה להיות כנס, ואני עטוף כל נכס זה 151 00:08:29,000 --> 00:08:33,000 בסוגריים מסולסלים, כי אני באמת יכול להיות דברים שונים כאן. 152 00:08:33,000 --> 00:08:39,000 אני באמת יכול להגיד משהו כמו צבע: כחול; 153 00:08:39,000 --> 00:08:42,000 >> עכשיו גם זה לא הולך להיות צעד לקראת משהו כל כך יפה, 154 00:08:42,000 --> 00:08:47,000 אבל אם אני עכשיו אחזור לגרסה 2 שלפחות עכשיו עשיתי את הגוף שלי 155 00:08:47,000 --> 00:08:49,000 הטקסט של הדף הכחול לגמרי. 156 00:08:49,000 --> 00:08:51,000 הכפתור נשאר זהה כי זה קלט. זה לא טקסט טהור. 157 00:08:51,000 --> 00:08:56,000 אבל כל דבר אחר שהוא טקסט, כמו CS50 חיפוש למעלה, הוא עובדה בכחול. 158 00:08:56,000 --> 00:09:01,000 שוב, כל מה שעשינו עכשיו הוא להסיר מתג הגוף, שים לב, 159 00:09:01,000 --> 00:09:04,000 תכונת הסגנון, ויש לנו בחשבון את זה כאן. 160 00:09:04,000 --> 00:09:08,000 זה לא שיפור עצום, אבל אם אנחנו לוקחים את זה צעד אחד קדימה 161 00:09:08,000 --> 00:09:10,000 שים לב למה שאנחנו יכולים לעשות בגרסה שלישית זה כאן. 162 00:09:10,000 --> 00:09:14,000 >> בsearch3.html דף האינטרנט הוא כמעט זהה 163 00:09:14,000 --> 00:09:17,000 פרט למה תג חדש עכשיו? 164 00:09:17,000 --> 00:09:20,000 קישור, כך שזו לא בשם מאוד קולע 165 00:09:20,000 --> 00:09:24,000 בגלל שאתה לא מקשר במובן של היפר לחיץ. 166 00:09:24,000 --> 00:09:28,000 במקום זאת, אתה עושה סוג של המקבילה של # כולל ב-C 167 00:09:28,000 --> 00:09:31,000 לפי תג הקישור עם תכונת href 168 00:09:31,000 --> 00:09:34,000 ותכונת rel אומרת קדימה 169 00:09:34,000 --> 00:09:39,000 ועותק להדביק את תוכן קובץ שנקרא search3.css ממש כאן, בעצם. 170 00:09:39,000 --> 00:09:42,000 זה לא ממש עושה את זה, אבל זה הרוח שלו. 171 00:09:42,000 --> 00:09:45,000 זה אומר ללכת לפתוח את הקובץ, search3.css, 172 00:09:45,000 --> 00:09:49,000 ולהתייחס אליו כאילו שהמשתמש הקליד אותו ממש כאן בראש העמוד 173 00:09:49,000 --> 00:09:51,000 בדיוק כמו שעשיתי בדוגמא הקודמת. 174 00:09:51,000 --> 00:09:54,000 Search3.css, בינתיים, הוא די פשוט. 175 00:09:54,000 --> 00:09:58,000 זה באמת פשוט מכיל בדיוק מה שהייתה לפני רגע 176 00:09:58,000 --> 00:10:03,000 בתג הסגנון, אבל יש לי בחשבון את זה כאן לקובץ משלה. 177 00:10:03,000 --> 00:10:07,000 >> למרות שלא בילו הרבה זמן בכל ב-HTML או תכנות האינטרנט 178 00:10:07,000 --> 00:10:11,000 רק באופן אינטואיטיבי מה המוטיבציה, אולי, להפקטורינג החוצה 179 00:10:11,000 --> 00:10:14,000 קטע זה קטן אפילו של CSS לקובץ משלה 180 00:10:14,000 --> 00:10:19,000 ואז ובכלל זה עם תג קישור זה כאן? 181 00:10:19,000 --> 00:10:21,000 [תגובת תלמיד לא נשמעה] 182 00:10:21,000 --> 00:10:25,000 אוקיי, זה קל יותר לקריאה במובן זה שיש לך CSS שלך בקובץ CSS. 183 00:10:25,000 --> 00:10:28,000 יש לך HTML שלך בקובץ HTML שלך, כך שזה יהיה קריא יותר במובן הזה. 184 00:10:28,000 --> 00:10:30,000 מה עוד יכול להיות משכנע? כן. 185 00:10:30,000 --> 00:10:32,000 [תגובת תלמיד לא נשמעה] 186 00:10:32,000 --> 00:10:35,000 כן, כדי שתוכל לכלול אותו פעמים רבות, ולכן כרגע אנחנו עושים אלה 187 00:10:35,000 --> 00:10:38,000 דוגמאות בסיסיות עם קבצים בודדים, אבל תנחנה שאתה בעצם עושה 188 00:10:38,000 --> 00:10:42,000 אתר אמיתי כמו שאתם רוצים ל7 pset או פרויקט הגמר שלך אולי, 189 00:10:42,000 --> 00:10:45,000 ואתה רוצה להיות דפי אינטרנט מרובים, כפי שהוא בוודאי משותף על 190 00:10:45,000 --> 00:10:48,000 World Wide Web בפועל, וזה יהיה סוג של צולע 191 00:10:48,000 --> 00:10:52,000 יש להעתיק ולהדביק אותו הצבע הכחול 192 00:10:52,000 --> 00:10:56,000 ואת אותו הטקסט מיושר למרכז בכל אחד מהדפים הללו. 193 00:10:56,000 --> 00:10:59,000 במקום זה הגיוני יותר גורם החוצה, ממש כמו שעשינו ב-C 194 00:10:59,000 --> 00:11:02,000 עם. קובץ h, לשים אותו במקום אחד מרכזי, 195 00:11:02,000 --> 00:11:06,000 במקרה search3.css זה ולאחר מכן לאפשר לכל קובץ 196 00:11:06,000 --> 00:11:11,000 באתר האינטרנט שלך לקובץ שבעצם כולל בדרך של תג זה כאן בקו 16. 197 00:11:11,000 --> 00:11:14,000 כהוא בדרך המקרה, התחיל עם גרסה 0, איזה סוג של עבודות 198 00:11:14,000 --> 00:11:18,000 אבל הוא לא בהכרח הטוב ביותר, ועם כל צעד, 199 00:11:18,000 --> 00:11:21,000 1 חיפוש, חיפוש 2, ועכשיו חיפוש 3 נקטנו צעדי תינוק אלה 200 00:11:21,000 --> 00:11:26,000 כיוון עיצובים ששואב קטן ויותר הכנה 201 00:11:26,000 --> 00:11:30,000 לדפים יותר מורכבים שאנחנו יכולים לעשות בהמשך הדרך. 202 00:11:30,000 --> 00:11:33,000 >> תן לי לפתוח לי את הדוגמא האחרונה כאן רק כדי להראות 203 00:11:33,000 --> 00:11:36,000 דף גם מסוגנן יותר, אבל קודם בואו נסתכל על ה-HTML. 204 00:11:36,000 --> 00:11:41,000 זה search4.html, ושים לב שמבנה זה כמעט אותו הדבר 205 00:11:41,000 --> 00:11:44,000 פרט להקדמה של תג חדש, דיב. 206 00:11:44,000 --> 00:11:48,000 דיב הוא תג שמציג חלוקה של הדף. 207 00:11:48,000 --> 00:11:51,000 אתה יכול לחשוב על זה כמלבן בלתי נראה. 208 00:11:51,000 --> 00:11:54,000 זה יוצר סוג של רצועה של אזור בדף האינטרנט 209 00:11:54,000 --> 00:11:56,000 כי אתה יכול לסגנן הכל בבת אחת. 210 00:11:56,000 --> 00:11:58,000 מה שעשיתי כאן הוא כדלקמן. 211 00:11:58,000 --> 00:12:01,000 בתוך תג הגוף שלי, שהיה שם כל זמן, 212 00:12:01,000 --> 00:12:05,000 אני אומר ליצור חלוקה של הדף כאן באמצעות קווים 45 עד 47, 213 00:12:05,000 --> 00:12:09,000 וזה אומר בעצם לתת לי מלבן סמוי לאורך חלק העליון של הדף. 214 00:12:09,000 --> 00:12:14,000 אז תן לי מלבן שני, אמנם בלתי נראה, מתחת לזה, 215 00:12:14,000 --> 00:12:16,000 ולזהות אותו בשם התוכן, ולאחר מכן לבסוף, 216 00:12:16,000 --> 00:12:19,000 תן לי את חטיבה שלישית של העמוד בתחתית 217 00:12:19,000 --> 00:12:21,000 בשם זהות. 218 00:12:21,000 --> 00:12:23,000 אנחנו נראה למה עשיתי את זה ברגע, 219 00:12:23,000 --> 00:12:26,000 אבל מושגית יש לי חלוקת כותרת. 220 00:12:26,000 --> 00:12:30,000 יש לי חטיבת תוכן, ויש לי חלוקה תחתונה של העמוד 221 00:12:30,000 --> 00:12:32,000 למרות אלה הם רק בסימון. 222 00:12:32,000 --> 00:12:35,000 המשתמש לא הולך לראות 3 מלבנים, 223 00:12:35,000 --> 00:12:37,000 אבל סוג של מבני יש מאחורי הקלעים 224 00:12:37,000 --> 00:12:39,000 הם בעצם הווה. 225 00:12:39,000 --> 00:12:41,000 >> עכשיו, למי אכפת? למה בעצם לעשות את זה? 226 00:12:41,000 --> 00:12:43,000 כל דבר אחר על הדף זהה כפי שראינו בעבר. 227 00:12:43,000 --> 00:12:47,000 הנה הטופס שלי. הנה הקלט שלי, הקלט שלי, מעבר שורה וכן הלאה. 228 00:12:47,000 --> 00:12:50,000 הנה תמונה, אם כי, ולכן אנחנו רואים לאן זה הגיע מרגע. 229 00:12:50,000 --> 00:12:52,000 הנה כותרת תחתונה, שהיא חדשה, רק בגלל שרציתי להציג 230 00:12:52,000 --> 00:12:54,000 עוד קצת תוכן כאן. 231 00:12:54,000 --> 00:12:58,000 אם אנחנו לגלול למעלה נבחין זהות של div זה כותרת. 232 00:12:58,000 --> 00:13:02,000 זיהוי של div זה הוא תוכן, ותעודת הזהות של אחד זה תחתון. 233 00:13:02,000 --> 00:13:05,000 וכפי שהשם מרמז, כאשר יש לך תכונת זיהוי 234 00:13:05,000 --> 00:13:09,000 ב-HTML, מעצם הגדרתו חייבת לזהות באופן ייחודי 235 00:13:09,000 --> 00:13:12,000 אחד מהאלמנטים, אחד מהתגים בדף שלך. 236 00:13:12,000 --> 00:13:16,000 הניטל הוא לחלוטין עליך לזכור שיש לך מזהה כותרת כבר. 237 00:13:16,000 --> 00:13:19,000 יש לך תחתון. יש לך מזהה תוכן כבר. 238 00:13:19,000 --> 00:13:22,000 המחשב לא הולך להבין מה זהות זמינה בשבילך, 239 00:13:22,000 --> 00:13:27,000 כך שאתה יכול לתת בטעות 2 תגי זיהוי של כותרת, 240 00:13:27,000 --> 00:13:29,000 וזה היה פשוט טועה. 241 00:13:29,000 --> 00:13:31,000 >> אתה צריך לזכור את מה שאתה יצרת, 242 00:13:31,000 --> 00:13:34,000 אבל ברגע שעשית את ההודעה כי מה שאנחנו יכולים לעשות כאן. 243 00:13:34,000 --> 00:13:38,000 עכשיו אני יכול לציין בתגית הסגנון שלי בראש 244 00:13:38,000 --> 00:13:41,000 או באופן שקול בקובץ CSS שלי, אם אני עדיין משתמש בגרסה ש, 245 00:13:41,000 --> 00:13:46,000 אני יכול לומר # כותרת, ומה שזה אומר הוא שכל מה שתג 246 00:13:46,000 --> 00:13:49,000 בדף זה יש זיהוי של הכותרת 247 00:13:49,000 --> 00:13:53,000 ו#, פשוט על ידי כינוס אנושי, מייצג זהות. 248 00:13:53,000 --> 00:13:56,000 השלט או סימן הק"ג החד מייצג זהות. 249 00:13:56,000 --> 00:13:58,000 הכותרת היא השם שנתתי לו. 250 00:13:58,000 --> 00:14:01,000 משמעות הדבר הוא החלת מאפיין זה CSS 251 00:14:01,000 --> 00:14:04,000 לכל תג בדף זה נושא תעודת זהות של כותרת. 252 00:14:04,000 --> 00:14:06,000 עסקה גם כאן. 253 00:14:06,000 --> 00:14:09,000 החל נכס זה, אשר קורה להיות אותו הדבר, לכל אלמנט 254 00:14:09,000 --> 00:14:11,000 זהות שלו הוא תוכן, ולאחר מכן כאן 255 00:14:11,000 --> 00:14:14,000 שם לב יש לי קצת להשתכלל עם כותרת תחתונה. 256 00:14:14,000 --> 00:14:18,000 כל אלמנט מזהה שהוא תחתון, שלא יכול להיות רק אחד בהגדרה, 257 00:14:18,000 --> 00:14:21,000 קדימה ולהפוך את גודל הגופן שלו קטן יותר, 258 00:14:21,000 --> 00:14:24,000 הנועז משקל גופן, השולים שלה 20 פיקסלים. 259 00:14:24,000 --> 00:14:26,000 >> מה זה אומר? 260 00:14:26,000 --> 00:14:28,000 זה רק שולים בחלק העליון, התחתון, והשמאל והימין. 261 00:14:28,000 --> 00:14:31,000 פירושו של הדבר לתת לי מרווח בלתי נראה 20-פיקסל סביבו 262 00:14:31,000 --> 00:14:35,000 רק כדי לדחוף את כל שאר ממנו קצת, כמו שאתה יכול לעשות ב-Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word או עמודים או כמו. 264 00:14:37,000 --> 00:14:39,000 ולאחר מכן טקסט ליישר מרכז. 265 00:14:39,000 --> 00:14:43,000 בואו לראות את התוצאה הסופית, ואחר כך נלך חזרה עד לקטע שנותר אחד מCSS יש. 266 00:14:43,000 --> 00:14:48,000 זוהי הגרסה 4, האחרונה שלנו לדוגמאות החיפוש, וזה הרבה הרבה יותר סקסי. 267 00:14:48,000 --> 00:14:54,000 עכשיו, בהגינות, אני פשוט בגוגל "מחולל לוגו גופן google". 268 00:14:54,000 --> 00:14:58,000 וזה אפשר לי ליצור קובץ GIF, פורמט תמונה, שנראה כמו שיש. 269 00:14:58,000 --> 00:15:00,000 למעשה, אתה יכול לעשות את זה יותר מדי. 270 00:15:00,000 --> 00:15:03,000 יש לנו "מחולל לוגו גופני google". 271 00:15:03,000 --> 00:15:05,000 >> בואו נראה אם ​​אנחנו יכולים לעשות את זה. 272 00:15:05,000 --> 00:15:07,000 אוקיי, אני חושב שזה הייתי האתר. 273 00:15:07,000 --> 00:15:11,000 אנחנו יכולים לומר Ec 10, למשל, ולהפוך אותם לעצמם. 274 00:15:11,000 --> 00:15:13,000 אתה יכול לשחק עם זה במשך כל יום ארוך ולאחר מכן לחץ לחיצה ימנית על זה 275 00:15:13,000 --> 00:15:16,000 ולאחר מכן להוריד את הקובץ GIF בפועל, שזה כל מה שאני עשיתי. 276 00:15:16,000 --> 00:15:19,000 ואכן, בגלל זה ב-HTML שלי, כזכור, לכאן 277 00:15:19,000 --> 00:15:22,000 היה לי תג תמונה, שראינו בשבוע שעבר בקצרה 278 00:15:22,000 --> 00:15:24,000 מקורו logo.gif. 279 00:15:24,000 --> 00:15:28,000 ומה שוב היה מוטיבציה שיש תכונת alt זה, 280 00:15:28,000 --> 00:15:31,000 תכונה זו אלטרנטיבה? 281 00:15:31,000 --> 00:15:33,000 כן. 282 00:15:33,000 --> 00:15:35,000 [תגובת תלמיד לא נשמעה] 283 00:15:35,000 --> 00:15:37,000 טוב, כל כך 2 סיבות באמת, אם הדפדפן לא יכול למשוך את התמונה 284 00:15:37,000 --> 00:15:40,000 כי יש לך חיבור לרשת איטי או התמונה פגומה 285 00:15:40,000 --> 00:15:44,000 או משהו כזה כי לפחות אדם יכול לראות "CS50 חיפוש" 286 00:15:44,000 --> 00:15:46,000 ולאחר מכן גם מסיבות של נגישות. 287 00:15:46,000 --> 00:15:48,000 אם יש לך משתמש שהוא עיוור והוא משתמש בקורא מסך 288 00:15:48,000 --> 00:15:50,000 ולכן ברורים שלא יכול לראות את תמונות שהם יכולים לפחות 289 00:15:50,000 --> 00:15:52,000 לשמוע טקסט אם המחשב שלהם מדבר אותה אליהם. 290 00:15:52,000 --> 00:15:56,000 >> באופן כללי, זה הכי טוב להתאמן כשמדובר בנגישות של דפים 291 00:15:56,000 --> 00:16:00,000 כך שמשתמש אפילו בסיטואציה הזאת יכולה לשמוע או לראות, אם אפשר לומר כך, 292 00:16:00,000 --> 00:16:03,000 מה זה זה בדף שלך. 293 00:16:03,000 --> 00:16:05,000 יש עוד דבר אחד שעשיתי כאן 294 00:16:05,000 --> 00:16:09,000 שהוא קצת מעניין, ואנו רואים יותר על זה בבעיה להגדיר 7 295 00:16:09,000 --> 00:16:12,000 באמצעות אחד מהמכנסיים הקצרים בראשות אחד מעמיתי ההוראה. 296 00:16:12,000 --> 00:16:15,000 אבל # תוכן מתייחס לתג 297 00:16:15,000 --> 00:16:20,000 זהות שלו הוא תוכן, אבל יש תו רווח, ואז יש את מילת הקלט. 298 00:16:20,000 --> 00:16:25,000 ובכן, מה שמעניין הוא שעל CSS אתה יכול 299 00:16:25,000 --> 00:16:29,000 מתייחס לתגים בסוג של דף בצורה היררכית, 300 00:16:29,000 --> 00:16:33,000 ומה הקטע הזה של אמצעי CSS הוא למצוא את התג 301 00:16:33,000 --> 00:16:37,000 זהות שלו הוא תוכן, ולאחר מכן להחיל את המאפיינים הבאים 302 00:16:37,000 --> 00:16:42,000 לכל תגי הקלט שהם צאצאיו של תוכן, 303 00:16:42,000 --> 00:16:44,000 זה שמסוכסך בתוכו. 304 00:16:44,000 --> 00:16:48,000 כניסה, שוב, היא חשובה רק למחשב, לא לבני האדם, 305 00:16:48,000 --> 00:16:51,000 אלא על ידי ועידתנו לשנן את הדברים כמו שאנחנו הולכים עמוקים יותר לתוך דף, 306 00:16:51,000 --> 00:16:54,000 אז זה אומר שחל בהפרש של 5 פיקסלים לכל אלמנט קלט 307 00:16:54,000 --> 00:16:57,000 זה איפשהו בתוך או מקונן בתוך של 308 00:16:57,000 --> 00:16:59,000  מרכיב הזהות שלו הוא תוכן. 309 00:16:59,000 --> 00:17:01,000 >> מי זה קשור אל? 310 00:17:01,000 --> 00:17:03,000 ובכן, יש למעשה רק 2 החבר 'ה האלה כאן. 311 00:17:03,000 --> 00:17:05,000 שים לב שבתוך של הטופס יש 2 כניסות, 312 00:17:05,000 --> 00:17:07,000 כפי שהיה לכל הדוגמות הללו. 313 00:17:07,000 --> 00:17:11,000 אבל שים לב ש2 הכניסות האלה יקרו לי לקנן בפנים, 314 00:17:11,000 --> 00:17:13,000 אם כי מעט מאוד, כמה שכבות של כניסה, 315 00:17:13,000 --> 00:17:16,000 בתוך תג זיהוי שלו הוא תוכן. 316 00:17:16,000 --> 00:17:18,000 מה זה אומר? 317 00:17:18,000 --> 00:17:21,000 אם תלכו לדפדפן כאן אתה יכול לראות, מעט אי פעם כל כך 318 00:17:21,000 --> 00:17:23,000 תנו לי להתמקד שביש קצת ריפוד בין הכפתור 319 00:17:23,000 --> 00:17:25,000 ובין שדה הטקסט. 320 00:17:25,000 --> 00:17:27,000 >> תן לי לבטל באופן זמני את זה. 321 00:17:27,000 --> 00:17:30,000 עזוב אותי ל-CSS שלי, ונתת לי ללכת קדימה ופשוט 322 00:17:30,000 --> 00:17:34,000 לשנות שולים מזה 5 פיקסלים ל0 פיקסלים. 323 00:17:34,000 --> 00:17:37,000 תן לי ללכת קדימה ואז לשמור את הקובץ, לחזור למנוע החיפוש 324 00:17:37,000 --> 00:17:40,000 ולטעון מחדש, ולצפות באמצע העמוד. 325 00:17:40,000 --> 00:17:43,000 יש הכול דחוס יחד, וכשאני ראשון הצלפתי דוגמה זו 326 00:17:43,000 --> 00:17:46,000 חשבתי שנראה טיפשי בשדה הטקסט ולאחר מכן על הכפתור מייד מתחתיו. 327 00:17:46,000 --> 00:17:50,000 אני רוצה לרפד אותה קצת, אז אני הצגתי שולים. 328 00:17:50,000 --> 00:17:55,000 מה שלא יעשו בהרצאה היא לעבור כמה עשרות 329 00:17:55,000 --> 00:17:58,000 מאפייני CSS שקיימת כי, שוב, יש דברים כמו גודל גופן, 330 00:17:58,000 --> 00:18:02,000 משקל גופן, שולים, ליישר טקסט, וכמה תריסרים אחרים, 331 00:18:02,000 --> 00:18:06,000 ואנו להפנות אותך בבעיה להגדיר 7 להדרכות שונות באינטרנט 332 00:18:06,000 --> 00:18:08,000 והפניות שמאפשרות לך לקחת את הדברים האלה. 333 00:18:08,000 --> 00:18:10,000 אבל מה שבאמת חשוב בסופו של היום 334 00:18:10,000 --> 00:18:12,000 >> הוא להבין איך הדברים האלה מיושמים. 335 00:18:12,000 --> 00:18:15,000 שוב, אם יש לנו בתוך תגית סגנון בי 336 00:18:15,000 --> 00:18:19,000 יכול ללכת לבוררים, מהסוג שציין מזהים 337 00:18:19,000 --> 00:18:21,000 למי אתה רוצה להחיל מאפיינים אלו, 338 00:18:21,000 --> 00:18:24,000 ואז אתה מכניס את המאפיינים כזוג ערך מפתח 339 00:18:24,000 --> 00:18:28,000 מופרד על ידי מעי גס ולאחר מכן הסתיים בנקודת פסיק, 340 00:18:28,000 --> 00:18:32,000 או שאתה יכול לקרוע את כל זה ולשים אותו בקובץ CSS נפרד 341 00:18:32,000 --> 00:18:35,000 בפני עצמו. 342 00:18:35,000 --> 00:18:39,000 בסדר, כל שאלה על המושגים 343 00:18:39,000 --> 00:18:41,000 או התמונה הגדולה של CSS? 344 00:18:41,000 --> 00:18:43,000 אתה שוב תראה את זה יותר ב7 pset, 345 00:18:43,000 --> 00:18:47,000 אך תשמרו את זה בדרך כלל די פשוט. 346 00:18:47,000 --> 00:18:49,000 לא? בסדר. 347 00:18:49,000 --> 00:18:51,000 הגיע זמן לשפת תכנות עצמו, 348 00:18:51,000 --> 00:18:54,000 ואנחנו נחזור לקצת CSS בצורה של דוגמה. 349 00:18:54,000 --> 00:18:58,000 PHP היא למעשה שפה נגישה להפליא 350 00:18:58,000 --> 00:19:02,000 בכך שהוא כמעט שווה ערך מבחינה תחבירית לג 351 00:19:02,000 --> 00:19:06,000 במילים אחרות, אם אתה יודע C, אתה יודע לחלק הכי PHP, 352 00:19:06,000 --> 00:19:08,000 לפחות מבחינה תחבירית, למרות שיש כמה תכונות חדשות 353 00:19:08,000 --> 00:19:10,000 וכמה מושגים חדשים יהיו לנו להסתכל. 354 00:19:10,000 --> 00:19:13,000 >> אבל על פי רוב, עכשיו שאנו מעבר מ C ל-PHP 355 00:19:13,000 --> 00:19:16,000 רוב הדברים החדשים הוא באמת בתמונה הגדולה, 356 00:19:16,000 --> 00:19:19,000 איך אתה משתמש בשפה לתכנית באינטרנט בניגוד ל 357 00:19:19,000 --> 00:19:23,000 בשורת הפקודה או במהבהב פקודה כפי שעשינו עד כה. 358 00:19:23,000 --> 00:19:27,000 להתייחסות, במיוחד עם 7 pset ואילך פרויקט הגמר, 359 00:19:27,000 --> 00:19:31,000 אל תנצל את כתובת האתר כאן אם אתה רוצה לקרוא על הרשמיות של PHP. 360 00:19:31,000 --> 00:19:34,000 הם ממש כמו ספר לימוד מקוון חופשי ביעילות, 361 00:19:34,000 --> 00:19:37,000 ואתה גם תמצא כי מה שבאמת נחמד בPHP 362 00:19:37,000 --> 00:19:41,000 הם שיש מאת פונקציות שמגיעות עם זה, 363 00:19:41,000 --> 00:19:44,000 ואילו ב-C שלא בהכרח יש גישה ל 364 00:19:44,000 --> 00:19:47,000 פונקציות נוספות מעבר להיו בספריית המתמטיקה, CS50 הספרייה. 365 00:19:47,000 --> 00:19:51,000 ב PHP והרבה שפות מודרניות, פייתון ורובי ביניהם, 366 00:19:51,000 --> 00:19:54,000 אתה מקבל גישה לפונקציות רבות יותר, מה שאומר שאתה מקבל לכתוב 367 00:19:54,000 --> 00:19:57,000 הרבה פחות קוד, כי אתה יכול לעמוד על כתפיהם של אנשים אחרים 368 00:19:57,000 --> 00:19:59,000 שכבר כתב דברים מסוימים בשבילך. 369 00:19:59,000 --> 00:20:03,000 >> בואו ניקח לסיור מהיר של התחביר של PHP ואז לכתוב כמה דוגמאות. 370 00:20:03,000 --> 00:20:06,000 מה שיפה על PHP הראש ובראשונה 371 00:20:06,000 --> 00:20:08,000 אין פונקציה עיקרית. 372 00:20:08,000 --> 00:20:10,000 אם אתה רוצה לכתוב תכנית ב-PHP אתה פשוט תתחיל לכתוב קוד, 373 00:20:10,000 --> 00:20:12,000 ואתה לא צריך לדאוג לראשי. 374 00:20:12,000 --> 00:20:14,000 אין int. אין תמורה. 375 00:20:14,000 --> 00:20:17,000 אין argv, argc שנדרש בעת כתיבת התכנית. 376 00:20:17,000 --> 00:20:20,000 במקום זאת אתה יכול פשוט להתחיל לכתוב קוד, וזה בחלק 377 00:20:20,000 --> 00:20:23,000 כי PHP היא מה שנקרא שפה לפרש. 378 00:20:23,000 --> 00:20:26,000 ג נערך, והוא נערך במובן זה שאתה מתחיל 379 00:20:26,000 --> 00:20:29,000 עם קוד מקור, להפעיל אותו באמצעות קלאנג, שהוא מהדר, 380 00:20:29,000 --> 00:20:33,000 וסופו של דבר, לאחר מספר מסוים של צעדים שאתה מקבל קוד אובייקט, 0s ו 1s. 381 00:20:33,000 --> 00:20:36,000 PHP ופייתון ורובי ופרל ואחרים 382 00:20:36,000 --> 00:20:39,000 סוגים שונים של שפות שבאינך לקמפל אותם. 383 00:20:39,000 --> 00:20:42,000 אתה לא הולך מקוד המקור ל0s ו 1s. 384 00:20:42,000 --> 00:20:45,000 אתה פשוט להפעיל את קוד המקור, ואתה מפעיל את קוד המקור 385 00:20:45,000 --> 00:20:49,000 על ידי כתיבה בקובץ טקסט רגיל, שהסתיימה ב. PHP במקרה זה 386 00:20:49,000 --> 00:20:53,000 במקום. ג, ומה התכנית עושה במחשב שלך 387 00:20:53,000 --> 00:20:57,000 הוא מפרש אותו, פשוטו כמשמעו, קו הקוד שלך על ידי שורה אחרת שורה. 388 00:20:57,000 --> 00:21:00,000 >> במילים אחרות, במקום לכתוב תכנית ולהריץ את התוכנה 389 00:21:00,000 --> 00:21:04,000 ישירות במקום לכתוב תכנית עם קובץ המסתיים ב. PHP. 390 00:21:04,000 --> 00:21:09,000 ואז אתה מפעיל את תכנית בפועל נקראת php.exe, אם אתה ב-Windows, 391 00:21:09,000 --> 00:21:12,000 או סתם PHP אם אתה ב-Mac OS או לינוקס, 392 00:21:12,000 --> 00:21:17,000 ואתה מספק כקלט לתכנית PHP קוד המקור שלך, 393 00:21:17,000 --> 00:21:20,000 ומטרתו בחיים היא לקרוא בראש שלך הקוד למטה, מהשמאל לימין, 394 00:21:20,000 --> 00:21:23,000 ולעשות כל מה שאמרת לו לעשות. 395 00:21:23,000 --> 00:21:25,000 >> בואו לראות מה זה הולך מתכוון תחבירי. 396 00:21:25,000 --> 00:21:27,000 ב PHP יש לנו תנאים. 397 00:21:27,000 --> 00:21:29,000 שקופית זה זהה למה שראית שוב בשבוע 1 398 00:21:29,000 --> 00:21:33,000 בגלל תנאים תחביריים, IFS IFS ואחר ואחר ב-PHP 399 00:21:33,000 --> 00:21:35,000 נראה בדיוק כמו זה. 400 00:21:35,000 --> 00:21:38,000 כשזה מגיע לביטויי וליאניות שהם הולכים להיראות בדיוק כמו זה. 401 00:21:38,000 --> 00:21:43,000 כשזה מגיע לדברים anding יחד כבוליאנים זה הולך להיראות בדיוק כמו זה. 402 00:21:43,000 --> 00:21:46,000 מתגים נראים אותו הדבר, ואתה מקבל יתרון הנוסף ב-PHP 403 00:21:46,000 --> 00:21:51,000 כי מתגים ב C יכולים לעבור רק על char או int. 404 00:21:51,000 --> 00:21:53,000 אתה לא יכול לעבור על ערך מחרוזת. 405 00:21:53,000 --> 00:21:55,000 ב PHP אתה בעצם יכול להיות ביטוי 406 00:21:55,000 --> 00:21:58,000 שהוא משתנה שתוכן הם מחרוזת, 407 00:21:58,000 --> 00:22:01,000 ואתה באמת יכול לעשות השוואת מחרוזת בצורה אינטואיטיבית האמיתית, 408 00:22:01,000 --> 00:22:06,000 לא השוואת מצביע, על מנת להחליט אם לעשות את המקרה אני או j או משהו אחר. 409 00:22:06,000 --> 00:22:09,000 נראים שפוטנציאל לפני זמן רב. 410 00:22:09,000 --> 00:22:11,000 >> לולאות מדי להפליא הן אותו הדבר. 411 00:22:11,000 --> 00:22:15,000 ללולאות יש אתחול, מצב, וחלק מספר העדכונים. 412 00:22:15,000 --> 00:22:18,000 בעוד לולאות קיימות גם ב-PHP. 413 00:22:18,000 --> 00:22:21,000 לעשות בזמן שלולאות קיימות גם ב-PHP, 414 00:22:21,000 --> 00:22:26,000 ומערכים קיימים ב-PHP, אבל הנה שבו התחביר מתחיל להיות קצת שונה, 415 00:22:26,000 --> 00:22:29,000 אבל המושגים הם אותו הדבר, ואת המושגים באמת אותו הדבר 416 00:22:29,000 --> 00:22:32,000 כפי שהיו ב0 שבוע עם גרד. 417 00:22:32,000 --> 00:22:34,000 בראש ובראשונה הוא הסימן $. 418 00:22:34,000 --> 00:22:37,000 זו הייתה החלטת עיצוב ב-PHP לפי כל משתנה 419 00:22:37,000 --> 00:22:41,000 ב-PHP על ידי העיצוב מתחיל עם סימן $. 420 00:22:41,000 --> 00:22:46,000 אין יותר X, Y, Z. זה עכשיו $ X, Y $, $ Z רק בגלל. 421 00:22:46,000 --> 00:22:49,000 זה משהו שצריך לזכור, ועכשיו בצד ימין 422 00:22:49,000 --> 00:22:52,000 זה נראה דומה למערך, 423 00:22:52,000 --> 00:22:54,000 אבל אנחנו משתמשים בסוגריים מרובעים כאן. 424 00:22:54,000 --> 00:22:57,000 ב-PHP ו ב-JavaScript, כמו שנראים בסופו של דבר לראות, 425 00:22:57,000 --> 00:23:01,000 כדי להצהיר על מערך אתה עושה סוגר מרובע פתוח וסגור סוגריים מרובעים, 426 00:23:01,000 --> 00:23:04,000 ואז יש לך רשימה של ערכים מופרדים בפסיקים, אם ints 427 00:23:04,000 --> 00:23:09,000 או מחרוזות תווים, או מה שאתה רוצה, בתוך של שהביטוי שם. 428 00:23:09,000 --> 00:23:11,000 >> עכשיו, איך אנחנו עושים משהו כמו זה ב-C? 429 00:23:11,000 --> 00:23:16,000 מה היה התחביר להכרזה על מערך של מספרים ידועים סטטי? 430 00:23:16,000 --> 00:23:19,000 זה היה סוגריים מסולסלים, הבדל כל כך קל כאן, אבל בשניהם PHP 431 00:23:19,000 --> 00:23:22,000 וסופו של דבר זה רק משתמש JavaScript סוגריים מרובעים, כך שבאמת 432 00:23:22,000 --> 00:23:25,000 הפרט המעניין היחיד כאן הוא סימן $ לשם משתנה 433 00:23:25,000 --> 00:23:28,000 וגם את הסוגריים המרובעים, ויש דבר אחד מוזר 434 00:23:28,000 --> 00:23:32,000 זה הושמט, כמו גם בצד השמאלי של הסימן =. 435 00:23:32,000 --> 00:23:36,000 מה חסר כי אנחנו כבר דורשים בשבועות אחרונים? כן. 436 00:23:36,000 --> 00:23:38,000 [תגובת תלמיד לא נשמעה] 437 00:23:38,000 --> 00:23:41,000 הגודל, כך שאין אזכור לגודל של המערך. 438 00:23:41,000 --> 00:23:45,000 למען אמת, אין שום אזכור לסוגריים מרובעים בצד השמאל 439 00:23:45,000 --> 00:23:47,000 של הסימן =, ומה עוד חסר בקו? 440 00:23:47,000 --> 00:23:49,000 כן. >> [תגובת תלמיד לא נשמעה] 441 00:23:49,000 --> 00:23:52,000 הסוג, ולכן מה שמעניין במיוחד על PHP 442 00:23:52,000 --> 00:23:56,000 הוא שזה לא שפה חזקה מוקלדת כC הוא, 443 00:23:56,000 --> 00:23:58,000 וזה מאופיין חזק במובן זה שאתה חייב לומר char, 444 00:23:58,000 --> 00:24:00,000 אתה חייב לומר int, אתה חייב לומר לצוף. 445 00:24:00,000 --> 00:24:03,000 >> כל פעם שאתה רוצה יש לך משתנה לספר קלאנג מה הסוג שלו הוא. 446 00:24:03,000 --> 00:24:05,000 PHP היא קצת עצלה יותר. 447 00:24:05,000 --> 00:24:08,000 זה הוקלד באופן רופף, במובן זה 448 00:24:08,000 --> 00:24:11,000 אתה יכול לקבל צוף תווים ומחרוזות 449 00:24:11,000 --> 00:24:14,000 וints וכן הלאה, אבל השפה עצם 450 00:24:14,000 --> 00:24:17,000 לא ממש אכפת לי מה אתה מכניס בתוך משתנה. 451 00:24:17,000 --> 00:24:20,000 אתה לא צריך להודיע ​​לו מראש מה סוג נתונים 452 00:24:20,000 --> 00:24:22,000 הוא הולך במשתנה. 453 00:24:22,000 --> 00:24:24,000 זה לגמרי תלוי בך, אז זה נחמד 454 00:24:24,000 --> 00:24:27,000 בכך שאתה לא צריך לדאוג כל כך הרבה על נתוני הקלדה 455 00:24:27,000 --> 00:24:29,000 ולדאוג מה הטיעונים שלך, וכן הלאה. 456 00:24:29,000 --> 00:24:32,000 זה גם אומר לבסוף פונקציות ב-PHP הולכות להיות מסוגל לחזור 457 00:24:32,000 --> 00:24:36,000 גם רוב int של הזמן, ואולי פעם בכמה זמן 458 00:24:36,000 --> 00:24:40,000 הם יחזרו bool, שקר וליאני, למשל, למקרה שמשהו ישתבש. 459 00:24:40,000 --> 00:24:44,000 זה נותן לנו כמה upsides, אבל זה יהיה גם לגרום לנו סוג של עיצוב על ידי 460 00:24:44,000 --> 00:24:47,000 קצת עצל יותר כשזה מגיע להקלדת נתונים. 461 00:24:47,000 --> 00:24:50,000 >> מה עוד יש לזכור כאן? 462 00:24:50,000 --> 00:24:54,000 משתנים נראים די אוהבים, כל כך של $ = זה "שלום, עולם". 463 00:24:54,000 --> 00:24:57,000 זה אולי inferable מהדוגמא הקודמת, 464 00:24:57,000 --> 00:24:59,000 ויש לנו סוג אחר של לולאה. 465 00:24:59,000 --> 00:25:02,000 זה אחד אנחנו בעצם רואים פעם בכמה זמן מאז שזה די נוח, 466 00:25:02,000 --> 00:25:04,000 foreach לבנות. 467 00:25:04,000 --> 00:25:11,000 במקרה זה, לוקחת לולאת foreach בתוך סוגר 3 מילותיה בדרך כלל, 468 00:25:11,000 --> 00:25:16,000 משהו $ ראשון, שזה מה שמערך אתה רוצה לחזר על החברים, 469 00:25:16,000 --> 00:25:19,000 אז פשוטו כמילת מפתח, ואז לבסוף, 470 00:25:19,000 --> 00:25:21,000 עוד שם משתנה שאתה יכול לבחור. 471 00:25:21,000 --> 00:25:23,000 זה יכול להיות foo, בר, או רכיב, 472 00:25:23,000 --> 00:25:26,000 ומה זה לבנות עושה 473 00:25:26,000 --> 00:25:29,000 הוא אם מערך $ מכיל 10 מרכיבים 474 00:25:29,000 --> 00:25:34,000 בכל איטרציה של מערך מצטער שזה, בכל איטרציה של לולאה זה 475 00:25:34,000 --> 00:25:37,000 המרכיב משתנה בשם הולך להיות מעודכן 476 00:25:37,000 --> 00:25:40,000 להיות האלמנט הראשון במערך, אז האלמנט השני במערך, 477 00:25:40,000 --> 00:25:44,000 אז המרכיב השלישי במערך, ובכך מייתר את הצורך 478 00:25:44,000 --> 00:25:46,000 לעשות את כיתוב סוגר המרובע המעצבן מעט ו 479 00:25:46,000 --> 00:25:49,000 $ I כדי אינדקס לתוך מערך. 480 00:25:49,000 --> 00:25:53,000 PHP עושה את כל זה בשבילך את העבודה ועל כל איטרציה 481 00:25:53,000 --> 00:25:55,000 רק מושיט לך את האלמנט הבא מהמערך 482 00:25:55,000 --> 00:26:01,000 מבלי שתצטרך לדעת על או אכפת מיקום האינדקס המספרי שלו. 483 00:26:01,000 --> 00:26:04,000 >> ואז לבסוף, לעת עתה, קיימת תכונה של PHP אחד אחרת 484 00:26:04,000 --> 00:26:08,000 זה הולך להיות הרבה מאוד שימושי, במיוחד כאשר אנו מתחילים בתכנות באינטרנט, 485 00:26:08,000 --> 00:26:10,000 וזה, כידוע, מערך אסוציאטיבי. 486 00:26:10,000 --> 00:26:13,000 המערכים שאנו מכירים עד כה כשל 20 שניות לפני 487 00:26:13,000 --> 00:26:17,000 ובמשך 8 השבועות האחרונים צמודים מערכים מספריים, 488 00:26:17,000 --> 00:26:20,000 סוג של מערכים מסורתיים שבו המדדים ints, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, כל הדרך למעלה. 490 00:26:23,000 --> 00:26:25,000 מערכים אסוציאטיביים הם הרבה יותר חזקים. 491 00:26:25,000 --> 00:26:28,000 הם מאפשרים לך יש מפתחות שרירותיים, 492 00:26:28,000 --> 00:26:31,000 מדדים שרירותיים וערכים שרירותיים. 493 00:26:31,000 --> 00:26:34,000 בעוד במערך מסורתי זה 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 במערך אסוציאטיבי שאתה יכול להיות ראשים 495 00:26:37,000 --> 00:26:41,000 או מפתח של foo שערך בר. 496 00:26:41,000 --> 00:26:46,000 אז אתה יכול לקבל מפתח נוסף ששם באז וערך שלו הוא qux. 497 00:26:46,000 --> 00:26:49,000 >> שוב, שמות טיפשיים במדעי מחשב גנריות משתנים כאן, 498 00:26:49,000 --> 00:26:55,000 אבל הנקודה היא שהמערך הזה אין סוגר 0 או סוגר 1. 499 00:26:55,000 --> 00:26:59,000 זה במקום הולך להיות הסוגר foo וסוגר באז. 500 00:26:59,000 --> 00:27:03,000 זה הרבה יותר תכליתי שבאנחנו הולכים להיות מסוגלים לשייך 501 00:27:03,000 --> 00:27:07,000 מילים עם מילים אחרות, מפתחות עם ערכים לחלוטין באופן שרירותי, 502 00:27:07,000 --> 00:27:12,000 ואנחנו הולכים להיות מסוגלים לקבל את אותם ערכים אחורה בזמן קבוע 503 00:27:12,000 --> 00:27:14,000 משום מה מתחת למכסת מנוע מערך אסוציאטיבי 504 00:27:14,000 --> 00:27:16,000 באמת הוא שולחן חשיש. 505 00:27:16,000 --> 00:27:20,000 תזכיר כי שולחן חשיש מאפשר לך לשים בקלט כלשהו 506 00:27:20,000 --> 00:27:25,000 רוצה לשים את מילת הדוד אם ברצונך להוסיף דוד לסוג של מילון, 507 00:27:25,000 --> 00:27:27,000 ואז אתה מקבל חזרה ערך כלשהו בדרך כלל. 508 00:27:27,000 --> 00:27:29,000 במקרה של איות, אמת או שקר. 509 00:27:29,000 --> 00:27:33,000 דוד או מה שמילה הוא באו שאינו נמצא במילון. 510 00:27:33,000 --> 00:27:36,000 מערך אסוציאטיבי הוא באמת רק שולחן חשיש, 511 00:27:36,000 --> 00:27:38,000 אבל זה גלגול ידידותי למשתמש הרבה יותר מזה. 512 00:27:38,000 --> 00:27:41,000 כפי שנראה, זה הולך כדי לאפשר לנו לעשות כמה דברים 513 00:27:41,000 --> 00:27:43,000 מאוד, מאוד בקלות. 514 00:27:43,000 --> 00:27:45,000 >> בואו ניקח מבט על כמה PHP בסיסי 515 00:27:45,000 --> 00:27:47,000 דוגמאות ולראות מה אנחנו יכולים לעשות עם שפה זו. 516 00:27:47,000 --> 00:27:51,000 תן לי ללכת קדימה ולפתוח בספרייה שלנו היום 517 00:27:51,000 --> 00:27:54,000 קובץ שנקרא hello1.php. 518 00:27:54,000 --> 00:27:57,000 קובץ זה הוא תגובה יותר מאשר קוד בפועל, 519 00:27:57,000 --> 00:28:00,000 אז תן לי למעשה להסיר את כל ההערות מהקובץ 520 00:28:00,000 --> 00:28:05,000 ובהווה לך אולי תכנית PHP הפשוטה ממש כאן. 521 00:28:05,000 --> 00:28:07,000 5 שורות, וכמה מהם הם חלל לבן, 522 00:28:07,000 --> 00:28:09,000 כל כך להבחין בכמה הבדלים עיקריים כאן. 523 00:28:09,000 --> 00:28:12,000 הקובץ נקרא hello1.php. 524 00:28:12,000 --> 00:28:16,000 הקו הראשון, אם כי, הוא 00:28:18,000 דומה ברוח ה-HTML, 526 00:28:18,000 --> 00:28:21,000 הרצף של תווים שמציין למחשב 527 00:28:21,000 --> 00:28:25,000 "היי, מחשב, הנה מגיע תכנית אנחנו בב-PHP". 528 00:28:25,000 --> 00:28:28,000 היא מוודא שזה לא מבולבל שזה קצת שפה אחרת. 529 00:28:28,000 --> 00:28:30,000 קו 2 הוא חלל לבן ומעניין. 530 00:28:30,000 --> 00:28:32,000 קו 3 הוא הידיד הוותיק שלנו printf, 531 00:28:32,000 --> 00:28:34,000 הפעם בהקשר של PHP. 532 00:28:34,000 --> 00:28:37,000 PHP יש גרסה משלה printf שמתנהג בדיוק אותו הדבר, 533 00:28:37,000 --> 00:28:39,000 אז זה רק הולך להדפיס "שלום, עולם". 534 00:28:39,000 --> 00:28:46,000 ואז תג מול זה כאן,?>, אומר שזהו לקוד PHP שלי. 535 00:28:46,000 --> 00:28:48,000 >> בואו לראות איך להפעיל את זה. 536 00:28:48,000 --> 00:28:50,000 אני הולך לחזור לחלון המסוף שלי כאן. 537 00:28:50,000 --> 00:28:52,000 אני הולך להיכנס לספריית PHP שלי. 538 00:28:52,000 --> 00:28:56,000 שים לב שיש לנו חבורה שלמה של קבצים, הראשון בם הוא hello.php. 539 00:28:56,000 --> 00:29:01,000 תן לי ללכת קדימה ולרוץ, hello1.php זה, להיכנס. 540 00:29:01,000 --> 00:29:03,000 לא ניתן אישור. אוקיי. 541 00:29:03,000 --> 00:29:06,000 איך אנחנו יכולים לסדר דברים כאלה בעבר? 542 00:29:06,000 --> 00:29:08,000 מה זה? >> [תגובת תלמיד לא נשמעה] 543 00:29:08,000 --> 00:29:11,000 אנחנו צריכים לקרוא ולכתוב, אבל תנו לי לעשות ls-l. 544 00:29:11,000 --> 00:29:14,000 זכור את התפוקה סתומה למדי זה לפי hello1 545 00:29:14,000 --> 00:29:17,000 נראה שיהיה קריא וכתיבה על ידי 546 00:29:17,000 --> 00:29:19,000 אבל קריאה על ידי כולם. 547 00:29:19,000 --> 00:29:22,000 מסתבר שזה באמת לא צעד בכיוון הנכון. 548 00:29:22,000 --> 00:29:25,000 ההבדל, שוב, עם שפה פרשה 549 00:29:25,000 --> 00:29:27,000 הוא אינך מפעיל את התוכנה ישירות. 550 00:29:27,000 --> 00:29:30,000 אתה במקום לרוץ מתורגמן ומושיט אותו הקוד 551 00:29:30,000 --> 00:29:33,000 שכתבת כך שהוא יכול לפרש אותו השורה אחרת השורה. 552 00:29:33,000 --> 00:29:36,000 במקרה זה, המתורגמן או תוכנה, אני ממש רוצה לרוץ 553 00:29:36,000 --> 00:29:38,000 נקרא מילולי PHP. 554 00:29:38,000 --> 00:29:41,000 >> אי שם על כונן הקשיח של המכשיר יש תכנית 555 00:29:41,000 --> 00:29:45,000 מישהו אחר כתב בשם PHP או ב-Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 מה שאני הולך לעשות כאן הוא שאני לא ממש להפעיל PHP 557 00:29:48,000 --> 00:29:51,000 אלא לתת לו כארגומנט שורת פקודת הקוד שאני כתבתי, 558 00:29:51,000 --> 00:29:54,000 ואז אני התרחקתי ומקיש על Enter. 559 00:29:54,000 --> 00:29:58,000 היא פועלת תכנית שלי בשבילי, מלמעלה למטה, משמאל לימין. 560 00:29:58,000 --> 00:30:01,000 תן לי ללכת קדימה, לפתוח את שונות קלות של זה. 561 00:30:01,000 --> 00:30:05,000 בהודעת hello2.php שגם זה 562 00:30:05,000 --> 00:30:08,000 היא בעיקר הערות, אז בואו להיפטר מאלו כהסחתי, 563 00:30:08,000 --> 00:30:13,000 ומה שונה בבירור כרגע על הקובץ הזה? 564 00:30:13,000 --> 00:30:15,000 יש קו זה חדש, סתום למדי בחלק העליון. 565 00:30:15,000 --> 00:30:20,000 בתור 1 זה #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 סל הוא מוסכמה על לינוקס ו-Mac OS לקבצים בינאריים, 567 00:30:24,000 --> 00:30:27,000 כך / bin פירוש זה הוא תיקייה המכילה אוסף של קבצים בינאריים 568 00:30:27,000 --> 00:30:29,000 שמתוכן, שאחד מהם הוא PHP. 569 00:30:29,000 --> 00:30:32,000 #! הוא כונה עסק, 570 00:30:32,000 --> 00:30:35,000 המהווה את הדרך המהירה ולומר זאת, ומה זה אומר 571 00:30:35,000 --> 00:30:40,000 הוא שכאשר אתה מפעיל תכנית זו כעת יש רמז בחלק העליון של הקובץ 572 00:30:40,000 --> 00:30:44,000 המספר את המחשב איזה פרשן לשימוש. 573 00:30:44,000 --> 00:30:47,000 >> זה נהיה קצת מעצבן אם היה לך לספר למשתמשים וללקוחות שלך שלך 574 00:30:47,000 --> 00:30:50,000 "היי, כתב תכנית זו נקראת hello1.php." 575 00:30:50,000 --> 00:30:54,000 כל מה שאתה צריך לעשות זה לרוץ לנצח PHP ולאחר מכן את שמה של תכנית זו. 576 00:30:54,000 --> 00:30:58,000 למען אמת, זה יהיה רק ​​יותר נחמד לרוץ hello1.php, 577 00:30:58,000 --> 00:31:00,000 ואכן, אנחנו יכולים אם אנחנו נעשה את הדברים הבאים. 578 00:31:00,000 --> 00:31:05,000 תן לי ללכת קדימה ולעשות ls-l, והודעה בhello2 זה עדיין רק לקרוא לכתוב 579 00:31:05,000 --> 00:31:10,000 ואז לקרוא לקרוא, אז אני לא יכול עדיין לעשות את זה, hello2.php. 580 00:31:10,000 --> 00:31:15,000 אבל אנחנו הצגנו את זה ולו בחטף הפעם אחרונה, את פקודת chmod. 581 00:31:15,000 --> 00:31:20,000 אם אני עושה chmod + x, מה שאומר שכל executability התוספת, 582 00:31:20,000 --> 00:31:26,000 ולאחר מכן ולאחר מכן לעשות hello2.php ls-l שוב לב מה השתנה. 583 00:31:26,000 --> 00:31:29,000 אחד, לינוקס מראה לי את שם הקובץ בירוק להעביר את הרעיון 584 00:31:29,000 --> 00:31:32,000 שהפעלה של זה, אבל חשוב יותר, בצד השמאלי 585 00:31:32,000 --> 00:31:36,000 שם לב שקצת מייצג x להפעלה בינתיים נקבע. 586 00:31:36,000 --> 00:31:42,000 מה זה אומר שעכשיו הוא שאני יכול להפעיל ./hello2.php כרגיל, 587 00:31:42,000 --> 00:31:45,000 הקש על Enter, ובגלל כל העסק בחלקו העליון של הקובץ 588 00:31:45,000 --> 00:31:48,000 זה רמז, שוב, ללינוקס שאומרת 589 00:31:48,000 --> 00:31:51,000 להשתמש במתורגמן זה כדי להפעיל קובץ זה. 590 00:31:51,000 --> 00:31:54,000 אל תדאגו מאלץ את המשתמש להקליד אותו למעשה. 591 00:31:54,000 --> 00:31:57,000 >> ומה שיפה הוא כעת זה סוג של לא רלוונטי ללקוחות שלי או החברים שלי 592 00:31:57,000 --> 00:32:01,000 באיזו שפה כתבתי את התכנית הזאת ב, אז אני יכול ללכת קדימה עם MV 593 00:32:01,000 --> 00:32:04,000 ושנה את שם הדבר הזה לhello2, למשל. 594 00:32:04,000 --> 00:32:07,000 ועכשיו אם אני עושה ./hello2 595 00:32:07,000 --> 00:32:10,000 ולהקטין את תצוגת התכנית שלי ממשיכה לפעול. 596 00:32:10,000 --> 00:32:13,000 סיומות קבצים אלה הן מוסכמה אנושית שזה נחוץ 597 00:32:13,000 --> 00:32:15,000 למשהו כמו קלאנג ולעשות שתחפשו אותם. 598 00:32:15,000 --> 00:32:18,000 אבל עבור PHP, אני יכול להתקשר לכל דבר סיומת קובץ זה שאני רוצה. 599 00:32:18,000 --> 00:32:22,000 אני יכול להערים על העולם לחשוב שאני ממש טוב ברובי, 600 00:32:22,000 --> 00:32:25,000 ואני יכול לכתוב hello2.rb ולאחר מכן להפעיל את זה, 601 00:32:25,000 --> 00:32:28,000 וזהו, עכשיו יש לי את גרסת רובי, שהוא שקר מוחלט. 602 00:32:28,000 --> 00:32:30,000 אבל את סיומות קבצים הן חסרות משמעות 603 00:32:30,000 --> 00:32:35,000 אם קובץ הפעלה ויש רמז מיוחד זה בחלק העליון של הקובץ. 604 00:32:35,000 --> 00:32:38,000 >> עכשיו, כמו בצד, תנו לי להראות לך במהירות גרסה 3, 605 00:32:38,000 --> 00:32:40,000 שהוא סוג של טריק שימושי לדעת. 606 00:32:40,000 --> 00:32:45,000 בhello3 שעשיתי משהו רע במקצת 607 00:32:45,000 --> 00:32:47,000 שאני אעדכן מקוון קוד המקור. 608 00:32:47,000 --> 00:32:50,000 בגרסת 3 מתברר כי ברוב מחשבי לינוקס 609 00:32:50,000 --> 00:32:53,000 יש תכנית בשם env לאיכות הסביבה, 610 00:32:53,000 --> 00:32:56,000 ומה אתה יכול לעשות כאן הוא אם אין לך מושג בו PHP 611 00:32:56,000 --> 00:33:00,000 מותקן על הכונן הקשיח המקומי, כי אכן זה יכול להשתנות בהתאם למחשב 612 00:33:00,000 --> 00:33:03,000 שמישהו משתמש, env פשוט אומר לרוץ env, 613 00:33:03,000 --> 00:33:07,000 שהוא ברוב המערכות, ולהבין איפה PHP היא. 614 00:33:07,000 --> 00:33:11,000 רק תרגיל משותף, כך שאינך צריך לדאוג למצוא איפה היא תכנית. 615 00:33:11,000 --> 00:33:14,000 אבל אם אתה עושה את הטיפול כדי לגלות איפה היא תכנית ולא היה אכפת עד כה 616 00:33:14,000 --> 00:33:16,000 אתה יכול להשתמש בפקודה ש. 617 00:33:16,000 --> 00:33:19,000 >> בואו להגדיל אותי החוצה וסוג שPHP, 618 00:33:19,000 --> 00:33:23,000 ושימו לב שהוא אומר לי שזה ממש בusr / bin / php. 619 00:33:23,000 --> 00:33:25,000 זה סוג של שקר. זה גם בסל. 620 00:33:25,000 --> 00:33:27,000 זה רק מראה לי את המכה הראשונה. 621 00:33:27,000 --> 00:33:31,000 אם אי פעם תהית איפה הוא קלאנג, שקלאנג, זה בusr / bin / צלצול, 622 00:33:31,000 --> 00:33:34,000 אשר עושים, usr / bin / לעשות, ומה משמעות של זה הוא כל הזמן הזה 623 00:33:34,000 --> 00:33:38,000 היית יכול להקליד / bin usr / צלצול להיכנס לרוץ קלאנג, 624 00:33:38,000 --> 00:33:41,000 אבל זה סוג של מייגע לעשות את זה, ולכן חלק מתיקיות 625 00:33:41,000 --> 00:33:44,000 כמו usr / bin ובן מניחים שיהיו ברירת מחדל 626 00:33:44,000 --> 00:33:50,000 כדי שהמחשב יודע להסתכל בם בשבילך. 627 00:33:50,000 --> 00:33:53,000 כל שאלות על כתיבת תכנית סופר, סופר פשוטה Hello World 628 00:33:53,000 --> 00:33:55,000 ב-PHP ולאחר מכן מפעיל אותו? 629 00:33:55,000 --> 00:33:59,000 כי עכשיו נתחיל להציג את התחביר יותר משכנע. 630 00:33:59,000 --> 00:34:01,000 בסדר, הנה זה בא. 631 00:34:01,000 --> 00:34:03,000 תוכניות אלה שראינו ממש לפני כולם. 632 00:34:03,000 --> 00:34:07,000 >> אם אני פותח, למשל, בואו נעשיתי beer1.php, 633 00:34:07,000 --> 00:34:09,000 אנחנו לא נעבור על כמה גרסות של זה, אבל מה שעשיתי 634 00:34:09,000 --> 00:34:13,000 היה אני ישבתי ומזגתי אותו או להמרה 635 00:34:13,000 --> 00:34:15,000 הקוד שלי C לקוד PHP כאן. 636 00:34:15,000 --> 00:34:18,000 רוב העליון של הקובץ הוא כאן הערות מעלה. 637 00:34:18,000 --> 00:34:20,000 מתברר שיש פונקציה חדשה אחד שאנחנו צריכים קראנו readline. 638 00:34:20,000 --> 00:34:23,000 GetString, כזכור, בין 0 ואילך שבוע היה CS50 דבר. 639 00:34:23,000 --> 00:34:27,000 PHP מגיע עם הפונקציה שלו ידידותית למשתמש בשם readline 640 00:34:27,000 --> 00:34:30,000 שלוקח את הטיעון 1, אשר מציין את הפקודה 641 00:34:30,000 --> 00:34:33,000 כי אתה רוצה להראות למשתמש, ומה עושה readline 642 00:34:33,000 --> 00:34:35,000 הוא מחזיר אותו כל מה שהמשתמש מקליד פנימה 643 00:34:35,000 --> 00:34:39,000 במקרה זה, אני מכריז על משתנה בשם n $. 644 00:34:39,000 --> 00:34:42,000 אני מאחסן אותו בערך ההחזרה של readline 645 00:34:42,000 --> 00:34:44,000 לאחר להציג הודעה למשתמש במחרוזת הזאת. 646 00:34:44,000 --> 00:34:47,000 רק כדי לגבות, למעשה להפעיל את הדבר הזה, תן לי ללכת קדימה 647 00:34:47,000 --> 00:34:50,000 ולהפעיל beer1.php PHP. 648 00:34:50,000 --> 00:34:53,000 כמה בקבוקים יהיו? בואו פשוט לעשות 2 שלב זה. 649 00:34:53,000 --> 00:34:55,000 Enter. זה הכל. 650 00:34:55,000 --> 00:34:59,000 >> התכנית היא פונקציונלי זהה לגרסת C משבועות לפני. 651 00:34:59,000 --> 00:35:01,000 אבל מבחינה תחבירית בואו לראות מה שונה. 652 00:35:01,000 --> 00:35:05,000 אחרי שאני מקבל int ממשתמש ההודעה שאני עושה איזה בדיקת שגיאות, 653 00:35:05,000 --> 00:35:08,000 ואם n הוא פחות מ 1 אני מתפטר ואני מדפיס את 654 00:35:08,000 --> 00:35:11,000 הודעה מצטערת למשתמש והיציאה עם 1. 655 00:35:11,000 --> 00:35:13,000 גם זה קצת שונה. 656 00:35:13,000 --> 00:35:16,000  ב C מה עשינו? ב C חזרנו 1. 657 00:35:16,000 --> 00:35:20,000 ב PHP אתה יוצא עם 1, אשר בכנות אני חושב שהוא קצת יותר אינטואיטיבי 658 00:35:20,000 --> 00:35:22,000 בגלל שאתה ממש אתה לצאת מהתוכנה. 659 00:35:22,000 --> 00:35:25,000 בסדר, ואז כאן השיר המעצבן זהה תחבירי 660 00:35:25,000 --> 00:35:29,000 פרט למשתנה, ולכן כאן בקו 24 ואילך 661 00:35:29,000 --> 00:35:31,000 שם לבי ללולאה הוא כמעט אותו הדבר, 662 00:35:31,000 --> 00:35:34,000 אבל יש לי $ מולי וn, 663 00:35:34,000 --> 00:35:37,000 ומה גם שחסר בקו 26 שהיו לנו בעבר 664 00:35:37,000 --> 00:35:39,000 כאשר הכריז אני משתנה? 665 00:35:39,000 --> 00:35:41,000 אין שום סוג. 666 00:35:41,000 --> 00:35:43,000 אין זה נכון ב-PHP לומר int. 667 00:35:43,000 --> 00:35:45,000 אתה פשוט לא צריך לעשות את זה. 668 00:35:45,000 --> 00:35:48,000 המחשב, מתורגמן PHP הוא חכם מספיק כדי להבין 669 00:35:48,000 --> 00:35:51,000 כי אם אתה שם את מספר ב$ אני יהיה לטפל בו 670 00:35:51,000 --> 00:35:53,000 כמספר בשבילך. 671 00:35:53,000 --> 00:35:57,000 ואז כאן אנחנו תקע ב$ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 כל זה הוא אותו הדבר, ואז אנחנו עושים כאן למטה "וואו, זה מעצבן" printf 673 00:36:00,000 --> 00:36:02,000 ולאחר מכן צא (0). 674 00:36:02,000 --> 00:36:05,000 >> שוב, טייק אוויי כאן הוא שלמרות שאנחנו הולכים לבלות יחסית 675 00:36:05,000 --> 00:36:09,000 מעט זמן על PHP, ובוודאי לעומת מה שעשינו בג', 676 00:36:09,000 --> 00:36:12,000 זה כמעט אותו הדבר, ולכן מה שנעשינו היום ובשבוע הבא 677 00:36:12,000 --> 00:36:14,000 ומעבר לו להתמקד באמת על כמה רעיונות החדשים. 678 00:36:14,000 --> 00:36:17,000 רק כדי לראות שדבר אחד אינו מעל לתרגם מ C, 679 00:36:17,000 --> 00:36:20,000 זו הייתה תכנית פשוטה סופר שעשינו בשבוע 1 680 00:36:20,000 --> 00:36:22,000 או 2 קוביות שערך. 681 00:36:22,000 --> 00:36:25,000 אבל מה שהיה מעניין באותה העת על תכנית זו היא שהיא 682 00:36:25,000 --> 00:36:28,000 הציג את הרעיון של פונקציה נכתבה מותאמת אישית שכתבו בעצמנו. 683 00:36:28,000 --> 00:36:31,000 התחביר ב-PHP הוא כמעט אותו הדבר. 684 00:36:31,000 --> 00:36:33,000 הנה התכנית שלי למעלה. 685 00:36:33,000 --> 00:36:35,000 שימו לב שוב נעדר זה רעיון עיקרי. 686 00:36:35,000 --> 00:36:39,000 אני מתחיל לכתוב קוד, וזה מה שהולך לקבל להורג על ידי המתורגמן. 687 00:36:39,000 --> 00:36:42,000 אני מדפיס את x הוא כעת 2, ככל הנראה. 688 00:36:42,000 --> 00:36:44,000 אז אני טוען עקוב ... 689 00:36:44,000 --> 00:36:47,000 אז אני קורא לפונקצית הקובייה ולעבור בx $ 690 00:36:47,000 --> 00:36:50,000 ולהקצות את ערך ההחזרה לx $. 691 00:36:50,000 --> 00:36:53,000 אז אני טוען שהוא חתוך לקוביות, ואז אני אומר את זה, שאני מקווה 692 00:36:53,000 --> 00:36:55,000 יגיד x הוא כעת 8. 693 00:36:55,000 --> 00:36:59,000 התחביר של הפונקציה ב-PHP הוא לא היה בצורה. 694 00:36:59,000 --> 00:37:01,000 שוב חסר הוא סוג התמורה. 695 00:37:01,000 --> 00:37:05,000 שוב חסר הוא סוג ההחזרה וגם חסר הוא איזה סוג אחר? 696 00:37:05,000 --> 00:37:07,000 [תגובת תלמיד לא נשמעה] 697 00:37:07,000 --> 00:37:10,000 טוב, בסדר, זה טוב. בואו נחזור לזה בשנייה. 698 00:37:10,000 --> 00:37:12,000 >> אין לנו, למשל, int כאן. 699 00:37:12,000 --> 00:37:15,000 אנחנו לא, למשל, יש int כאן כי, שוב, ב-PHP 700 00:37:15,000 --> 00:37:18,000 אתה פשוט לא צריך ולא צריך לעשות את זה, 701 00:37:18,000 --> 00:37:20,000 אלא שיש מילת המפתח החדש הזה שנקרא פונקציה. 702 00:37:20,000 --> 00:37:23,000 ב PHP זה כמעט קצת יותר ברור, כי כאשר אתה רוצה פונקציה 703 00:37:23,000 --> 00:37:26,000 אתה ממש אומר פונקציה, אתה נותן לו את שם ולאחר מכן רשימה מופרדת בפסיקים 704 00:37:26,000 --> 00:37:28,000 אם כל טענותיה. 705 00:37:28,000 --> 00:37:32,000 אין צורך לומר חלל או משהו כזה, ואז התשואה היא זהה, 706 00:37:32,000 --> 00:37:35,000 $ * $ * $. 707 00:37:35,000 --> 00:37:38,000 מה גם שחסר? סמי ציין את זה כאן. 708 00:37:38,000 --> 00:37:43,000 בראש הקובץ נעדר לחלוטין ב-PHP גם הוא אב טיפוס. 709 00:37:43,000 --> 00:37:45,000 גם זה על ידי עיצוב. 710 00:37:45,000 --> 00:37:48,000 שפות ומתורגמנים כמו PHP חכמות יותר מאי פעם C הייתה 711 00:37:48,000 --> 00:37:50,000 במהדרים כמו קלאנג. 712 00:37:50,000 --> 00:37:53,000 >> זוכר שקלאנג, אם לא אמר לו קובייה שקיים, 713 00:37:53,000 --> 00:37:56,000 אם לא אמר לו שprintf מקיים כעם אב טיפוס 714 00:37:56,000 --> 00:38:00,000 או עם # כולל, טוב, זה הולך לצעוק עליך ואפילו לא לקמפל את הקוד שלך. 715 00:38:00,000 --> 00:38:03,000 PHP ושפות מודרניות יותר הם הרבה יותר חכם כשזה מגיע לזה. 716 00:38:03,000 --> 00:38:07,000 הם ייקחו על עצמם לקרוא את כל הקוד שלך 717 00:38:07,000 --> 00:38:11,000 ואז צעק עליך רק אם הוא מוצא שום מקום קובייה. 718 00:38:11,000 --> 00:38:15,000 זה לא משנה אם קובייה היא בתחתית או בראש או אפילו בחלק הקובץ נפרד. 719 00:38:15,000 --> 00:38:18,000 שפות PHP ודומות כעת חכמות מספיק כדי להסתכל קדימה 720 00:38:18,000 --> 00:38:26,000 על הכול לפני הסוברת כמי שעשה טעות. 721 00:38:26,000 --> 00:38:28,000 איפה זה משאיר אותנו? 722 00:38:28,000 --> 00:38:32,000 >> בואו נעשה הדוגמא האחרונה כאן בתנאים, 723 00:38:32,000 --> 00:38:35,000 ואם אני פותח את הודעת conditions2.php מדי 724 00:38:35,000 --> 00:38:37,000 תחביר כאן הוא כמעט אותו הדבר. 725 00:38:37,000 --> 00:38:40,000 אני משתמש readline במקום GetString, אבל קו שהוא אותו הדבר כמו קודם, 726 00:38:40,000 --> 00:38:42,000 "הייתי רוצה שלם בבקשה." 727 00:38:42,000 --> 00:38:45,000 אז יש מצב, אם, אם אחר, ולאחר מכן אחר, 728 00:38:45,000 --> 00:38:48,000 אבל תפקודי תכנית זו היא גם זהה לזה שעשינו לפני שבועות, 729 00:38:48,000 --> 00:38:51,000 כך שאם אני מפעיל את הדבר הזה, PHP של conditions2, 730 00:38:51,000 --> 00:38:54,000 ואני נותן לו מספר כמו 23 - 731 00:38:54,000 --> 00:38:57,000 הרמתי מספר חיובי. אם אני נותן לו -1 לקחתי מספר שלילי. 732 00:38:57,000 --> 00:39:00,000 אם אני נותן לו 0 אני אכן הרמתי 0. 733 00:39:00,000 --> 00:39:02,000 אז למי אכפת מכל זה? 734 00:39:02,000 --> 00:39:06,000 ובכן, אחד מהסוג שהכיף של תרגילים כאן 735 00:39:06,000 --> 00:39:10,000 לי לפחות היה לחזור ולראות כמה מהר אני יכול ליישם pset 5, 736 00:39:10,000 --> 00:39:12,000 pset שגיאות הכתיב. 737 00:39:12,000 --> 00:39:15,000 זוכר שהיה הקובץ הזה שנקרא speller.c, 738 00:39:15,000 --> 00:39:17,000 והיה שם קובץ שנקרא dictionary.c. 739 00:39:17,000 --> 00:39:20,000 מה שעשיתי היה לי סוג של בילה כמה דקות ואני אומר קוד C 740 00:39:20,000 --> 00:39:23,000 לקוד PHP, ואנחנו לא מבלים זמן רב באית 741 00:39:23,000 --> 00:39:26,000 כי בדיוק כמו בpset 5 אתה לא באמת צריך 742 00:39:26,000 --> 00:39:29,000 מבלה זמן רב באית עצמו בגלל תשומת הלב שלך הייתה במילון. 743 00:39:29,000 --> 00:39:32,000 >> תסתפק בכך שאומר שאם אתה קורא את האיות, 744 00:39:32,000 --> 00:39:35,000 קובץ זה כאן, זה פחות או יותר שווה ערך לקוד C 745 00:39:35,000 --> 00:39:37,000 אנחנו נתנו לך לpset 5. 746 00:39:37,000 --> 00:39:39,000 אני רק הוספתי כמה דולרים במקומות. 747 00:39:39,000 --> 00:39:43,000 שיניתי את שמות פונקציות מסוימים אם הם לא היה קיימים ב-PHP. 748 00:39:43,000 --> 00:39:45,000 יש דבר אחד נוסף כאן, preg_match, 749 00:39:45,000 --> 00:39:48,000 שזו הדרך קטנה של להשתכלל עושה משהו, אבל אנחנו עוד נחזור לזה בסוף. 750 00:39:48,000 --> 00:39:51,000 אבל בקיצור, אית הוא כמעט זהה, ואם אתה מסתכל בתחתית 751 00:39:51,000 --> 00:39:54,000 מה זה בסופו יורק את זה כאן, 752 00:39:54,000 --> 00:39:57,000 מילים באיות שגויה, מילים במילון, מילים בטקסט. 753 00:39:57,000 --> 00:40:00,000 בסדר, אז מה זה מעניין עכשיו הוא הבא. 754 00:40:00,000 --> 00:40:05,000 בחלק העליון של הקובץ שלי אני דורש dictionary.php. 755 00:40:05,000 --> 00:40:09,000 בדיוק כמו C # שכולל PHP יש פונקציה מיוחדת הנקראת דורשים 756 00:40:09,000 --> 00:40:14,000 שפחות או יותר עושה את אותו הדבר, דורש קובץ שנקרא dictionary.php. 757 00:40:14,000 --> 00:40:18,000 איך אני יכול ללכת על יישום pset 5? 758 00:40:18,000 --> 00:40:21,000 תן לי ללכת קדימה, לפתוח את קובץ כאן. 759 00:40:21,000 --> 00:40:24,000 תן לי לקחת קצת התייחסות כאן. 760 00:40:24,000 --> 00:40:29,000 ותן לי ליצור קובץ חדש ולהתחיל לקרוא dictionary.php זה. 761 00:40:29,000 --> 00:40:31,000 תן לי לשים אותו בתיקייה אחרת, כדי שנוכל לעשות את זה לחיות. 762 00:40:31,000 --> 00:40:33,000 ועכשיו אני זום פנימה 763 00:40:33,000 --> 00:40:37,000 אני הולך להתחיל קובץ PHP שלי עם סוגר פתוח PHP סגור סוגריים. 764 00:40:37,000 --> 00:40:40,000 ואז לכאן היו כמה פונקציות שנחוצות ליישום לpset 5, 765 00:40:40,000 --> 00:40:42,000 אז תן לי להתחיל ליישם כמה מאלה, 766 00:40:42,000 --> 00:40:47,000 כך סימון הפונקציה, שהייתי צריך לקחת את מילה כבטיעון. 767 00:40:47,000 --> 00:40:49,000 אנחנו נעשה את זה ונחזור אליו ברגע. 768 00:40:49,000 --> 00:40:53,000 >> היה עומס פונקציה, אשר לקח כבמה ויכוח? 769 00:40:53,000 --> 00:40:56,000 מילון, ולכן הקובץ שממש רציתי לטעון. 770 00:40:56,000 --> 00:41:00,000 היה גודל פונקציה, שלא לנקוט בכל טיעונים 771 00:41:00,000 --> 00:41:04,000 ולא הייתה פונקציה, מה היה אחרים? 772 00:41:04,000 --> 00:41:06,000 לפרוק, שלא לקחת שום טיעונים או. 773 00:41:06,000 --> 00:41:10,000 אלה הם 4 הפונקציות שהייתי צריך כעת ליישם ב-PHP, 774 00:41:10,000 --> 00:41:13,000 ומה שאני הולך לעשות הוא ללכת ולעשות את זה. 775 00:41:13,000 --> 00:41:16,000 הרבה השתמש בטבלת חשיש בpset 5, 776 00:41:16,000 --> 00:41:21,000 אז תן לי להמשיך וליצור טבלת חשיש ב-PHP. 777 00:41:21,000 --> 00:41:23,000 עשה. 778 00:41:23,000 --> 00:41:25,000 זה נותן לי שולחן חשיש. ובכן, מדוע? 779 00:41:25,000 --> 00:41:30,000 אחד, משתנה נקרא שולחן $, רק כדי להעלות את הרעיון של שולחן חשיש. 780 00:41:30,000 --> 00:41:34,000 הסוגריים המרובעים, אם כי, כזכור, מייצגים את מה? 781 00:41:34,000 --> 00:41:37,000 מערך, אבל במערכי PHP לא צריך להיות צמוד מספרי. 782 00:41:37,000 --> 00:41:41,000 הם יכולים גם להיות מערכים אסוציאטיביים, 783 00:41:41,000 --> 00:41:44,000 מה שאומר שאתה יכול לקבל את המפתחות וערכים שרירותיים. 784 00:41:44,000 --> 00:41:49,000 >> ממש כמו בpset 5, אלו מכם שעשו יישומי שולחן חשיש 785 00:41:49,000 --> 00:41:53,000 אתה כנראה הכנסת את המילה ולאחר מכן הכנסת אותו לשרשרת של רשימות מקושרות, 786 00:41:53,000 --> 00:41:56,000 או שאתה מאוחסן הערך של מקום או משהו דומה לזה אמיתי. 787 00:41:56,000 --> 00:41:59,000 אתה איכשהו זכרת את העובדה שהמילה הייתה שם. 788 00:41:59,000 --> 00:42:01,000 לעת עתה, שהולך להיות שולחן החשיש שלי, 789 00:42:01,000 --> 00:42:06,000 ואז עכשיו ללכת על יישום פונקצית ההמחאה 790 00:42:06,000 --> 00:42:09,000 אני רק צריך להסתכל לתוכו ששולחן החשיש 791 00:42:09,000 --> 00:42:11,000 ולראות אם מילה היא שם. 792 00:42:11,000 --> 00:42:15,000 מה שאני הולך לעשות הוא שאני עומד לומר אם- 793 00:42:15,000 --> 00:42:20,000 תניחו isset, שהיא פונקצית PHP שממש רק אומר הוא סט המפתח, 794 00:42:20,000 --> 00:42:24,000 כך isset ($ שולחן [$ מילה], 795 00:42:24,000 --> 00:42:29,000 ואם כן החזר אמיתי. 796 00:42:29,000 --> 00:42:32,000 זה הכל. זה pset 5 ב-PHP. 797 00:42:32,000 --> 00:42:34,000 ובכן, בהגינות, בסדר. 798 00:42:34,000 --> 00:42:37,000 אחרת בתמורת שווא, כך שזה לא שם. 799 00:42:37,000 --> 00:42:39,000 מה באמת קורה פה? 800 00:42:39,000 --> 00:42:42,000 ובכן, אם שולחן או חשיש שולחן כאן באופן כללי יותר, 801 00:42:42,000 --> 00:42:46,000 הוא מערך אסוציאטיבי שאומר שאתה יכול להוסיף לאינדקס לתוכו 802 00:42:46,000 --> 00:42:50,000 עם מילה כמו "מילה", ואתה צריך לחזור קצת ערך. 803 00:42:50,000 --> 00:42:52,000 >> אנחנו מקבלים סוג של צעד אחד לפנינו. 804 00:42:52,000 --> 00:42:56,000 זה יהיה די נחמד אם אנחנו באמת עמוסים הקובץ ראשון, 805 00:42:56,000 --> 00:42:58,000 כך העומס הוא לא ממש פשוט, אבל תן לי להמשיך ולהלהיב 806 00:42:58,000 --> 00:43:00,000  יישום מהיר באמת של עומס. 807 00:43:00,000 --> 00:43:07,000 תן לי ללכת קדימה ואומרים מילות מילון מקבלת קובץ. 808 00:43:07,000 --> 00:43:10,000 פונקצית הקובץ ב-PHP פתחה קובץ 809 00:43:10,000 --> 00:43:12,000 ואתה חוזר למערך של כל מילים שבקובץ, 810 00:43:12,000 --> 00:43:14,000 רק מושיט לך אותם. 811 00:43:14,000 --> 00:43:16,000 זה היה כאב גדול מדי, לא? 812 00:43:16,000 --> 00:43:21,000 עכשיו foreach, זה המבנה החדש שלנו, foreach ($ מילים כמילת $). 813 00:43:21,000 --> 00:43:25,000 לולאה זה הולך להתחיל iterating על מילות המערך 814 00:43:25,000 --> 00:43:30,000 ולהקצות למילה משתנית $ כל מילה בקובץ 815 00:43:30,000 --> 00:43:32,000 מהראשונה לשני לשלישי לרביעים את כל הדרך 816 00:43:32,000 --> 00:43:35,000 כך שאני לא צריך לעשות [i] כיתוב המעצבן ואוהבים. 817 00:43:35,000 --> 00:43:38,000 ומה שאני פשוט הולך לעשות לכל אחת ממילים אלה 818 00:43:38,000 --> 00:43:43,000 הוא לאחסן אותו בשולחן שלי על ידי יצירת אינדקס לטבלה 819 00:43:43,000 --> 00:43:47,000 ואז עושה נכון כי לזכור 820 00:43:47,000 --> 00:43:50,000 שמילה נמצאת במילון שלי כל מה שאני באמת צריך לעשות 821 00:43:50,000 --> 00:43:55,000 הוא סוג של להעיף קצת ולומר את המילה הזו בטבלת החשיש שלי היא שם, נכון. 822 00:43:55,000 --> 00:43:58,000 ואם זה לא שם, אין לי במפורש לשים שווא, 823 00:43:58,000 --> 00:44:01,000 אחרת הייתי צריך לשים שווא לכל המילים האפשריות ביקום. 824 00:44:01,000 --> 00:44:05,000 >> די לי רק כדי להגדיר ערך מדד 825 00:44:05,000 --> 00:44:09,000 לנכון גם אם מילה היא למעשה בשולחן החשיש שלי. 826 00:44:09,000 --> 00:44:12,000 עכשיו, אני חותך כמה פינות כאן שאני אניף את הידות שלי בעכשיו, 827 00:44:12,000 --> 00:44:15,000 אבל עכשיו פונקצית העומס נעשתה. 828 00:44:15,000 --> 00:44:18,000 אני טוען את כל המילים מהקובץ לתוך מערך. 829 00:44:18,000 --> 00:44:21,000 אני לחזר על שהמערך, ועבור כל מילה במערך 830 00:44:21,000 --> 00:44:24,000 אני מחבר אותו לשולחן החשיש שלי עם קו 1 של קוד. 831 00:44:24,000 --> 00:44:26,000 זה כיף. אתה יודע איך אנחנו יכולים ליישם את הגודל עכשיו? 832 00:44:26,000 --> 00:44:28,000 ובכן, גודל הוא תמיד די קל, בהגינות. 833 00:44:28,000 --> 00:44:32,000 כאן אנו יכולים פשוט להחזיר ספירה של שולחן. 834 00:44:32,000 --> 00:44:34,000 זה די קל מדי, לספור את מספר הדברים בטבלה. 835 00:44:34,000 --> 00:44:36,000 זה בעצם סוג של לא יעיל ביותר. 836 00:44:36,000 --> 00:44:39,000 אני כנראה צריך להיות בגודל משתנה בשם כדי שנוכל לעשות את זה 837 00:44:39,000 --> 00:44:41,000 בזמן קבוע, אבל זה די קל. 838 00:44:41,000 --> 00:44:45,000 אה, ולאחר מכן לפרוק, אם אנחנו באמת רוצים להיות כאן אנאליים 839 00:44:45,000 --> 00:44:47,000 אנו יכולים לומר כי ככה אתה פורק משהו. 840 00:44:47,000 --> 00:44:49,000 אתה פשוט להגדיר משתנה שווה למערך ריק, 841 00:44:49,000 --> 00:44:51,000 והוא נפטר מכל מה שהיה שם. 842 00:44:51,000 --> 00:44:53,000 אין הצורך להתקשר חינם. 843 00:44:53,000 --> 00:44:56,000 >> שוב, חתכתי כמה פינות, ואני מתנצל על סט בעיית ההקצאה 5 844 00:44:56,000 --> 00:45:00,000 אולי ב-C, אבל אם אנחנו עכשיו הולכים קדימה ולהפעיל את זה, 845 00:45:00,000 --> 00:45:02,000 אני הולך בעצם להפעיל את הגרסה שכתבתי מראש 846 00:45:02,000 --> 00:45:05,000 רק כדי שלא יעשו טעויות תחביריות שהיא. 847 00:45:05,000 --> 00:45:08,000 תן לי ללכת קדימה ולהפעיל איות. השימוש הוא זהה. 848 00:45:08,000 --> 00:45:12,000 הנה קובץ מילון שמכיל רק את המילה foo. 849 00:45:12,000 --> 00:45:15,000 כאן הוא קובץ טקסט המכיל רק foo בר. 850 00:45:15,000 --> 00:45:19,000 בואו בדיקת איות, כך אית זה, באמצעות קובץ מילון זה בקובץ הטקסט הזה. 851 00:45:19,000 --> 00:45:21,000 יש מילה אחת שגוי, בר, וזהו. 852 00:45:21,000 --> 00:45:23,000 עשה עם pset 5. 853 00:45:23,000 --> 00:45:30,000 בואו ניקח הפסקה של 5 דקות הליכה כאן, ואנחנו נחזור ויותר על PHP. 854 00:45:30,000 --> 00:45:32,000 בסדר, אנחנו חוזרים. 855 00:45:32,000 --> 00:45:34,000 בואו נעשה-שונאים אותי לזמן מה. 856 00:45:34,000 --> 00:45:37,000 עכשיו בואו נראה אם ​​זה ממש לא היה חיובי 857 00:45:37,000 --> 00:45:39,000 למעשה יישום הדבר הזה ב-PHP. 858 00:45:39,000 --> 00:45:43,000 נכון, זה לקח 45 שניות ליישום. 859 00:45:43,000 --> 00:45:45,000 >> אבל בואו נלך קדימה עכשיו ולנהל את העניינים. 860 00:45:45,000 --> 00:45:49,000 תן לי ללכת קדימה ולהפעיל גרסת C 861 00:45:49,000 --> 00:45:52,000 מאית, ושנריץ את זה על אחד מהקבצים הגדולים, 862 00:45:52,000 --> 00:45:54,000 אשר תנ"ך. 863 00:45:54,000 --> 00:45:57,000 וכי כאן הם בבואו נכנסנו לתיקיית C, 864 00:45:57,000 --> 00:46:01,000 אית בקינג ג'יימס 5. 865 00:46:01,000 --> 00:46:03,000 הרבה מילים באיות שגויה. 866 00:46:03,000 --> 00:46:06,000 אוקיי, אז זה הפלט יכול להיות שעלית גם אם לעתים הם קצת שונים, 867 00:46:06,000 --> 00:46:09,000 אם יש לך כל מה שעובד בצורה נכונה, ולכן זמן בסך הכל לבדיקת איות 868 00:46:09,000 --> 00:46:13,000 תנ"ך היה .38 שניות, אז די טוב באמצעות יישום זה. 869 00:46:13,000 --> 00:46:16,000 עכשיו תן לי ללכת לגרסת PHP, שאנחנו פשוט כתבנו. 870 00:46:16,000 --> 00:46:18,000 תן לי לנהל את האיות בקינג ג'יימס. 871 00:46:18,000 --> 00:46:21,000 אופס, טעות להתעלם מזה. אני בספרייה הלא הנכונה. 872 00:46:21,000 --> 00:46:24,000 בודק איות בקינג ג'יימס 5. 873 00:46:46,000 --> 00:46:48,000 כמעט סיימתי. 874 00:46:48,000 --> 00:46:51,000 >> אוקיי, ההבחנה הדקה תבין שהייתה יותר מ 3 שניות שם. 875 00:46:51,000 --> 00:46:54,000 זה זמן לפעול נכון. 876 00:46:54,000 --> 00:46:58,000 מתברר שזה לוקח זמן לירוק הרבה טקסט מתוך 877 00:46:58,000 --> 00:47:00,000 בגלל חציצת בעיות, אבל סיפור ארוך קצר, 878 00:47:00,000 --> 00:47:04,000 שהיו 3.15 שניות של מכונת זמן, זמן מעבד, 879 00:47:04,000 --> 00:47:07,000 לעומת מה שהיה זה לפני רגע? 880 00:47:07,000 --> 00:47:09,000 כמו .3. 881 00:47:09,000 --> 00:47:11,000 אני מתכוון, שזה סדר הגודל איטי יותר, אז איפה הוא כי 882 00:47:11,000 --> 00:47:14,000 האטה מגוחכת מגיעה? 883 00:47:14,000 --> 00:47:17,000 ובכן, כפי שקרה עם רוב כל החלטת עיצוב שעשינו 884 00:47:17,000 --> 00:47:21,000 בכיתה במשך 9 השבועות האחרונים יש כמעט תמיד האיזון הזה. 885 00:47:21,000 --> 00:47:24,000 לפעמים פשוט בין המרחב, לפעמים בין המרחב והזמן, 886 00:47:24,000 --> 00:47:27,000 מרחב, זמן ומאמץ פיתוח, ואכן כאן, למרות 887 00:47:27,000 --> 00:47:31,000 אנחנו הצלנו את כמות עצומה של זמן, אולי פוטנציאל 10-20-30 שעות 888 00:47:31,000 --> 00:47:34,000 זמן פיתוח יישום בודק האיות 889 00:47:34,000 --> 00:47:36,000 על ידי הצלפה אותו במרחק 45 שניות בשפה זו 890 00:47:36,000 --> 00:47:40,000 המחיר שאנחנו משלמים הוא שזה סדר הגודל איטי יותר כתוצאה מכך, 891 00:47:40,000 --> 00:47:43,000 וזה בדרך כלל קורה עם ביותר בכל שפה פרשה, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, פרל או אחר לפיו 893 00:47:46,000 --> 00:47:49,000 אם אתה הולך להפעיל אותו באמצעות מתורגמן ויש לו לקרוא את הקוד שלך 894 00:47:49,000 --> 00:47:52,000 שורה אחרת שורה, מלמעלה למטה, משמאל לימין, 895 00:47:52,000 --> 00:47:55,000 המתווך שהוא הולך לקחת קצת זמן משלו, 896 00:47:55,000 --> 00:47:59,000 ומה שאת מרגישה כאן ב3 השניות לעומת 0.3 שניות 897 00:47:59,000 --> 00:48:02,000 היא העובדה שיש מתווך שיש לו את זה, פשוטו כמשמעו, כדי לפרש את הקוד שלנו 898 00:48:02,000 --> 00:48:05,000 שורה אחרת שורה, וחס וחליל אם אתה בתוך לולאה 899 00:48:05,000 --> 00:48:08,000 עם קובץ ענק המכיל מאה אלף מילים. 900 00:48:08,000 --> 00:48:11,000 >> שמעל הולך להוסיף ולהוסיף ולהוסיף ולהוסיף עד. 901 00:48:11,000 --> 00:48:16,000 לכלי כזה זה כנראה לא השפה הטובה ביותר לשימוש עבור יישום 902 00:48:16,000 --> 00:48:20,000 בודק איות אם מיידיות הוא לעניין את המשתמשים שלך ולך. 903 00:48:20,000 --> 00:48:23,000 אבל יש לנו את המותרות ברגע היא אם אתה 904 00:48:23,000 --> 00:48:27,000 להשתמש בשפה כמו PHP או הרבה שפות פורשו 905 00:48:27,000 --> 00:48:30,000 בהקשר של האינטרנט, לצורך העניין, יש לך את היתרון 906 00:48:30,000 --> 00:48:34,000 כי האינטרנט הוא הרבה יותר איטי מרוב המחשבים. 907 00:48:34,000 --> 00:48:38,000 יש לך מעבד GHz במחשב שלך, 2 ג'יגה הרץ, אולי אפילו יותר בימים אלה. 908 00:48:38,000 --> 00:48:41,000 אבל המציאות היא באינטרנט יש כמות גבוהה של מיסות 909 00:48:41,000 --> 00:48:45,000 לפי לדפדפן לשוחח עם שרת, למרות שראינו בשבוע שעבר 910 00:48:45,000 --> 00:48:47,000 שזה די מהר, חצי אלפית שני או כך, 911 00:48:47,000 --> 00:48:51,000 גם מוסיף, ואם אתה מוריד דברים כמו תמונה 912 00:48:51,000 --> 00:48:54,000 או תמונה לפייסבוק או לקבל הודעות מיידיות על פטפוט פייסבוק, 913 00:48:54,000 --> 00:48:57,000 Gchat או כמו כל פעמים הללו הלוך 914 00:48:57,000 --> 00:49:00,000 בין הדפדפן ותחילת השרת להוסיף עד, 915 00:49:00,000 --> 00:49:03,000 מה שהופך את הבחירה הספציפית שלך של שפה במקרים רבים 916 00:49:03,000 --> 00:49:07,000 לא כל כך רלוונטי, כך שאתה עדין באמצעות שפה קצת יותר איטית 917 00:49:07,000 --> 00:49:10,000 כמו PHP או Python או Ruby 918 00:49:10,000 --> 00:49:13,000 אבל עבורה יש upsides הענק לך ולעמיתיך 919 00:49:13,000 --> 00:49:17,000 והחברים שלך, כי אתה יכול ליישם את הדברים כך, כל כך הרבה יותר מהר. 920 00:49:17,000 --> 00:49:20,000 ויותר מכך, יש לך הרבה פחות סיכון לפגמי אבטחה מסוימים. 921 00:49:20,000 --> 00:49:22,000 אין שום כיוונים ב-PHP. 922 00:49:22,000 --> 00:49:25,000 אין שום תקלות SEG שאתה יכול בקלות לגרום 923 00:49:25,000 --> 00:49:27,000 באותו אופן כמו בג 924 00:49:27,000 --> 00:49:29,000 עם C אתה סופר קרוב לחומרה. 925 00:49:29,000 --> 00:49:33,000 עם שפות PHP ודומות שאתה סוג של רמה גבוהה יותר, אם אפשר לומר כך, 926 00:49:33,000 --> 00:49:37,000 עם הרבה גינות בינך ובין מה שבאמת קורה 927 00:49:37,000 --> 00:49:39,000 בתוך המכונה, וזה רק איזון. 928 00:49:39,000 --> 00:49:42,000 >> אנחנו הגענו לנקודה שיש שפות הבאות מודרניות יותר, ברמה גבוהה 929 00:49:42,000 --> 00:49:47,000 כמו PHP בגלל הלקחים בשפות כמו PHP בג 930 00:49:47,000 --> 00:49:50,000 אבל אם אתה לא מבין מה שקורה מתחת למכסת המנוע כל הזמן הזה 931 00:49:50,000 --> 00:49:53,000 אתה בוודאי לא יכול לקבל את ההחלטות הנכונות בעיצוב, 932 00:49:53,000 --> 00:49:56,000 ובוודאי כשזה מגיע לעבודה במקום כמו פייסבוק או גוגל 933 00:49:56,000 --> 00:49:59,000 או כל אחד מהמקומות האלה שיותר ויותר משחק עם ערכות נתונים גדולים 934 00:49:59,000 --> 00:50:01,000 גם אם תחזור ואל premed ועובדים עם חלק MD 935 00:50:01,000 --> 00:50:04,000 על כמה נתונים גדולים להגדיר מעורב חולים ורופאים 936 00:50:04,000 --> 00:50:08,000 וכמו שימוש בכלים הנכונים בהרבה מאוד משכנע 937 00:50:08,000 --> 00:50:11,000 כי אחרת הניתוח של חלק ערכת נתונים שלך עלול לקחת שניות, 938 00:50:11,000 --> 00:50:14,000 או שזה ממש עלול לקחת שעות. 939 00:50:14,000 --> 00:50:17,000 זוהי רק דוגמה אחת, שלא לתסכל אותך במאמץ אחת כמה וכמה 940 00:50:17,000 --> 00:50:21,000 זה היה ב C אבל כדי לעזור לך להבין שכאשר אתה ליישם משהו ב-C 941 00:50:21,000 --> 00:50:24,000 אתה באמת מבין, או בתאוריה, באמת מבין 942 00:50:24,000 --> 00:50:28,000 איך הכל או צריך לעבוד, ויש לך שליטה כמעט מלאה 943 00:50:28,000 --> 00:50:31,000 על מה שקורה מתחת למכסת המנוע, ועם שפות ברמה גבוהות אלה 944 00:50:31,000 --> 00:50:34,000 יש לך לוותר על שליטה רבה יותר לאנשים שהמציאו אותם 945 00:50:34,000 --> 00:50:37,000 וכפוף יותר להחלטות העיצוב שלהם יותר משלך. 946 00:50:37,000 --> 00:50:41,000 אבל אם אנחנו לוקחים כמובן מאליו שביצועים 947 00:50:41,000 --> 00:50:44,000 הוא לא ממש חשוב כמו באינטרנט בגלל הבעיות האחרות האלה, 948 00:50:44,000 --> 00:50:47,000 רק מהירויות רשת הן מעט איטיות יותר ממהירויות מעבד בכל מקרה, 949 00:50:47,000 --> 00:50:50,000 כדי שנוכל למיין של להרשות לעצמו להשתמש בשפה קצת יותר איטית 950 00:50:50,000 --> 00:50:55,000 אם upsides אנחנו יכולים לפתח דברים מהר יותר פי 10 או אפילו יותר. 951 00:50:55,000 --> 00:50:57,000 >> בואו לראות איך אנחנו יכולים להתחיל להשתמש בזה. 952 00:50:57,000 --> 00:51:00,000 תן לי ללכת לתיקייה 953 00:51:00,000 --> 00:51:03,000 בין הדוגמות של היום נקרא frosh.ims, 954 00:51:03,000 --> 00:51:06,000 וזה למעשה היה מוטיבציה אישית על ידי העובדה שהדבר הראשון 955 00:51:06,000 --> 00:51:10,000 כתבתי לאינטרנט לפני שנים לאחר נטילת CS50 וCS51 956 00:51:10,000 --> 00:51:14,000 היה אתר אינטרנט לתכנית IMs הפרוש, ספורט כיתה ט ביצוע עצמי, 957 00:51:14,000 --> 00:51:16,000 אשר בשלב זה היה לפני מספיק שנים כי בעת 958 00:51:16,000 --> 00:51:19,000 אין אתר אינטרנט לתכנית, אף שלא היה אינטרנט, 959 00:51:19,000 --> 00:51:22,000 ובמקום שיש משגיח בWigglesworth שלפיו אם אתה רוצה 960 00:51:22,000 --> 00:51:26,000 להרשמה לכדורעף או כדורגל או מה שאתה יכול למלא את פיסת נייר. 961 00:51:26,000 --> 00:51:28,000 אז היית חוצה את החצר. 962 00:51:28,000 --> 00:51:31,000 אז היית דופק על הדלת והחלקה בדלת או את ידם למשגיח 963 00:51:31,000 --> 00:51:34,000 פיסת נייר עם השם שלך על זה, אם אתה רוצה להיות קפטן קבוצה, 964 00:51:34,000 --> 00:51:37,000 מה ספורט שאתה רוצה לעשות, ומה שהיית במעונות פנימה 965 00:51:37,000 --> 00:51:39,000 זה היה סוג של דרך בית ספר ישנה של עשיית דברים, וזה היה ראש ממשלה 966 00:51:39,000 --> 00:51:41,000 ההזדמנות להפוך הרבה של תהליך זה. 967 00:51:41,000 --> 00:51:43,000 אפשר פשוט ללכת לאתר האינטרנט. אתה מקליד משהו פנימה 968 00:51:43,000 --> 00:51:46,000 אתה מקבל אישור בדואר אלקטרוני, ובום, שתסיים. 969 00:51:46,000 --> 00:51:49,000 >> זה היה הדבר הראשון שעשיתי, אם כי בשפה הנקראת פרל, 970 00:51:49,000 --> 00:51:52,000 אבל זה יחסית קל לעשות ב-PHP, וזה סוג של נציג 971 00:51:52,000 --> 00:51:55,000 מהבעיות שאתה יכול להתחיל לפתור כאשר אתה יכול להביע את עצמך 972 00:51:55,000 --> 00:51:58,000 תכנות ולא צריך להסתמך על דברים כמו אתרי Google 973 00:51:58,000 --> 00:52:01,000 או Excel או כלים שנמסרו לך. 974 00:52:01,000 --> 00:52:03,000 אתם עכשיו יש את היכולת לעשות דברים כאלה. 975 00:52:03,000 --> 00:52:06,000 זוהי גרסה מכוערת במיוחד של טופס, 976 00:52:06,000 --> 00:52:09,000 אבל בואו פשוט להשתמש בו לתחילת השיחה לפי זה 977 00:52:09,000 --> 00:52:12,000 בערך מה שנראית כמו צורה לפני שנים בשבילנו 978 00:52:12,000 --> 00:52:14,000 כדי לאפשר לאנשים באינטרנט כדי להירשם לפרוש IMS. 979 00:52:14,000 --> 00:52:18,000 בקשנו שם, תיבת סימון לאו אם הם לא רוצים להיות קפטן, 980 00:52:18,000 --> 00:52:21,000 זכר או נקבה, ואז מה שהם היו במעונות, 981 00:52:21,000 --> 00:52:23,000 ואז הם היו לשלוח טופס זה. 982 00:52:23,000 --> 00:52:27,000 תן מבט של 1 מתחת למכסת המנוע בHTML שמייצג דף זה. 983 00:52:27,000 --> 00:52:31,000 תן לי ללכת לfroshims0, 984 00:52:31,000 --> 00:52:35,000 וכמאמר מוסגר, ל7 pset אני לוקח כמובן מאליו 985 00:52:35,000 --> 00:52:37,000 הספריות והתיקיות שאני מכניס את הדברים פנימה 986 00:52:37,000 --> 00:52:40,000 אנחנו ננחה אותך בדיוק היכן דברים צריך ללכת במכשיר, 987 00:52:40,000 --> 00:52:43,000 שפקודות mod אתה צריך לרוץ, אז אל תדאג על כל 988 00:52:43,000 --> 00:52:46,000 פרטים טיפשיים בסינכרון מהרגע הראשון כאן. 989 00:52:46,000 --> 00:52:49,000 >> בסדר, הנה froshims0.php. 990 00:52:49,000 --> 00:52:52,000 בואו לגלול אותי, ומה שמוזר כאן, 991 00:52:52,000 --> 00:52:56,000 מדובר בקובץ PHP, אבל מה בתוכו, באופן ברור? 992 00:52:56,000 --> 00:52:59,000 זה המון HTML, ואכן, המקור של PHP 993 00:52:59,000 --> 00:53:02,000 באמת היו בשביל להיות שפת אינטרנט ממוקדת. 994 00:53:02,000 --> 00:53:04,000 רגע לפני שאנו השתמשנו בו כדי ליישם את דוגמא הבירה, 995 00:53:04,000 --> 00:53:07,000 התנאים לדוגמא, דוגמא שלום, וזה בסדר גמור. 996 00:53:07,000 --> 00:53:11,000 אתה יכול להשתמש ב PHP כשפת scripting 997 00:53:11,000 --> 00:53:15,000 שם תסריט הוא באמת רק המינוח שניתן לתכנית מהירה ומלוכלכת 998 00:53:15,000 --> 00:53:19,000 או משהו שאתה כותב בתסריט או באופן כללי יותר שפה לפרש. 999 00:53:19,000 --> 00:53:22,000 PHP היא סופר שימושי שמשום שראית כמה מהר 1000 00:53:22,000 --> 00:53:24,000 יחסית אנחנו יכולים להלהיב תוכניות ב-PHP. 1001 00:53:24,000 --> 00:53:27,000 אבל זה באמת היה מיועד לשימוש באינטרנט, 1002 00:53:27,000 --> 00:53:31,000 ומיועד לאינטרנט במובן זה שמבחין כאן בחלק העליון של הקובץ 1003 00:53:31,000 --> 00:53:34,000 אני מתחיל עם 00:53:38,000 אז יש לי חבורה של הערות חסרות תועלת, שהוענקו, אבל אז אני סוגר מצב PHP. 1005 00:53:38,000 --> 00:53:41,000 אבל אז אני שוקע במצב HTML. 1006 00:53:41,000 --> 00:53:45,000 >> מה שמעניין בPHP הוא על אף שהקובץ מסתיים ב. php 1007 00:53:45,000 --> 00:53:48,000 זה אמור בדרך כלל להיות שותף התערבב-עם HTML, 1008 00:53:48,000 --> 00:53:50,000 איזה קוד PHP, קצת HTML. 1009 00:53:50,000 --> 00:53:53,000 ואנחנו נראים סופו של דבר שאנחנו יכולים להתחיל להקניט אלה בנפרד 1010 00:53:53,000 --> 00:53:56,000 ולשמור בנפרד HTML שלנו מPHP לגמרי, 1011 00:53:56,000 --> 00:53:59,000 אבל את המקורות של PHP באמת היינו נותנים לך את הגמישות הזאת, 1012 00:53:59,000 --> 00:54:02,000 שאם אתה רוצה קצת HTML פשוט לכתוב את זה, וזה יהיה 1013 00:54:02,000 --> 00:54:04,000 לירוק זהה לדפדפן. 1014 00:54:04,000 --> 00:54:07,000 אבל אם אתה צריך קצת טכניקת תכנות, 1015 00:54:07,000 --> 00:54:12,000 קצת קוד תכנות, אתה יכול גם לשים אותו לתוך אותו הקובץ המדויק, כפי שמייד תראו. 1016 00:54:12,000 --> 00:54:14,000 הנה HTML שלי. 1017 00:54:14,000 --> 00:54:16,000 יש לי תואר הזה לפרוש IMS. 1018 00:54:16,000 --> 00:54:20,000 יש לי תג גוף שיש לי חלק בזה CSS לכל מרכז באמצע, 1019 00:54:20,000 --> 00:54:23,000 ואז יש לי כאן בצורה שכנראה הולכת להיות מוגש 1020 00:54:23,000 --> 00:54:27,000 לקובץ חדש בשם register0.php, ולכן אנחנו רואים את זה ברגע. 1021 00:54:27,000 --> 00:54:31,000 זה באמצעות שיטה הנקראת הודעה, שאנחנו נחזור גם. 1022 00:54:31,000 --> 00:54:34,000 אז יש לי כמה כניסות טופס, שם אחד שנקרא, סוג שלו הוא טקסט, 1023 00:54:34,000 --> 00:54:37,000 אחד ששם הוא קפטן, סוג שלו היא תיבת סימון, 1024 00:54:37,000 --> 00:54:40,000 וזה, שלא ראו את זה לפני, אבל זה בדיוק מה שזה אומר. 1025 00:54:40,000 --> 00:54:42,000 אתם תקבלו תיבת סימון במקום תיבת טקסט. 1026 00:54:42,000 --> 00:54:46,000 כאן למטה יש לך כפתור רדיו, שהוא אחד מהכפתורים העגולים האלה 1027 00:54:46,000 --> 00:54:48,000 כי אתה יכול לבחור אחד זה או אחר. 1028 00:54:48,000 --> 00:54:52,000 >> שים לב שזה מכוון שנתתי שני כפתורי הרדיו את שמו של מין. 1029 00:54:52,000 --> 00:54:55,000 זה איך אתה מקבל הרחקה הדדית לפיה עליכם ללחוץ 1030 00:54:55,000 --> 00:54:58,000 או זה או שאחד, ועל ידי לחיצה על השני 1031 00:54:58,000 --> 00:55:01,000 זה unchecks אחר, אז אתה צריך לתת להם אותו שם 1032 00:55:01,000 --> 00:55:03,000 אם אתה רוצה שהם יהיו סותרים כזה. 1033 00:55:03,000 --> 00:55:07,000 ולאחר מכן למעונות, אני לא חושב שראינו את זה עדיין, אבל זה תפריט בחירה, תפריט נפתח. 1034 00:55:07,000 --> 00:55:09,000 התג לכך הוא בחירה. 1035 00:55:09,000 --> 00:55:11,000 לאחר מכן עליך לתת תפריט הנפתח שם, 1036 00:55:11,000 --> 00:55:13,000 ואז יש לך חבורה שלמה של אפשרויות אלה. 1037 00:55:13,000 --> 00:55:16,000 בשלב הראשון, רק לאסתטיקה, הוא מחרוזת ריקה. 1038 00:55:16,000 --> 00:55:20,000 רציתי רק את הירידה כריקה כברירת מחדל, 1039 00:55:20,000 --> 00:55:22,000 ואז יש Apley, Canaday, אפור, וכן הלאה. 1040 00:55:22,000 --> 00:55:24,000 ושים לב לדיכוטומיה כאן. 1041 00:55:24,000 --> 00:55:27,000 האפשרות בנפתחת יש ערך, 1042 00:55:27,000 --> 00:55:30,000 אבל אז יש לו שם ידידותי לאדם, שבדוגמה זו 1043 00:55:30,000 --> 00:55:33,000 זהה, אבל אם אנחנו באמת רוצים להיות אנאליים יכולים להיות לנו 1044 00:55:33,000 --> 00:55:36,000 הערך של נפתח זו פשוט להיות גרסה הקצרה, 1045 00:55:36,000 --> 00:55:39,000 אפור, אבל אנחנו יכולים לומר באמת אפור הול שהאדם בעצם רואה, 1046 00:55:39,000 --> 00:55:43,000 אבל זה לא כל כך מעניין, אז אני פשוט עושה את זה פשוט והפכתי אותם זהה. 1047 00:55:43,000 --> 00:55:46,000 ואז למטה בתחתית יש לנו כפתור שליחה 1048 00:55:46,000 --> 00:55:49,000 אשר שראינו בעבר, אבל שמנו לב שאני פשוט נתתי לזה מילה אחרת. 1049 00:55:49,000 --> 00:55:53,000 במקום CS50 חיפוש נתתי את התווית "הרשמה". 1050 00:55:53,000 --> 00:55:56,000 >> התוצאה הסופית היא זה דף אינטרנט כאן, ושוב, 1051 00:55:56,000 --> 00:56:00,000 איפה זה מקבל הוגש ל? 1052 00:56:00,000 --> 00:56:04,000 הוא מקבל שהוגש לקובץ מסוים, הערך של תכונת הפעולה, 1053 00:56:04,000 --> 00:56:07,000 שהיה register0.php. 1054 00:56:07,000 --> 00:56:09,000 בואו לראות מה באמת קורה כאן. 1055 00:56:09,000 --> 00:56:13,000 תן לי ללכת קדימה ולמלא טופס זה, אומר דוד, 1056 00:56:13,000 --> 00:56:16,000 זכר, מתיוס, ואז אני אגיד את ההרשמה. 1057 00:56:16,000 --> 00:56:18,000 בואו להגדיל אותי החוצה ולחץ על הרשמה. 1058 00:56:18,000 --> 00:56:22,000 אוקיי, אז סוג של טעם, אבל בואו נראים מה באמת קורה. 1059 00:56:22,000 --> 00:56:26,000 שימו לב שכתובת האתר השתנתה להיות register0.php. 1060 00:56:26,000 --> 00:56:34,000 מה הוא סקרנות נעדרה מכתובת האתר, אם כי, למרות שאנחנו פשוט הגשנו את הטופס? 1061 00:56:34,000 --> 00:56:37,000 [תגובת תלמיד לא נשמעה] 1062 00:56:37,000 --> 00:56:39,000 אוקיי, זה פשוט משתמש להיות Chrome ידידותי בימים אלה. 1063 00:56:39,000 --> 00:56:42,000 זה ממש שם. הם פשוט להסתיר אותו כדי לחסוך מקום. 1064 00:56:42,000 --> 00:56:44,000 אבל מחשבה טובה, מחשבה טובה. 1065 00:56:44,000 --> 00:56:46,000 לקראת הקצה השני של כתובת האתר, אם כי, מה חסר? כן. 1066 00:56:46,000 --> 00:56:48,000 [סטודנטים] מחרוזת השאילתה. 1067 00:56:48,000 --> 00:56:51,000 מחרוזת השאילתה, כך זוכרת מדוגמאות החיפוש של Google הפשוטות שלנו. 1068 00:56:51,000 --> 00:56:54,000 ברגע שאני לוחץ על כפתור שליחה את כתובת האתר 1069 00:56:54,000 --> 00:57:00,000 לקח אותי לגוגל, אבל אז לא היו? q = מדעי מחשב או מה שהקלדתי פנימה 1070 00:57:00,000 --> 00:57:04,000 זה בגלל שהשתמשנו בשיטה מקבלת עם דוגמא החיפוש. 1071 00:57:04,000 --> 00:57:06,000 >> הפעם אנחנו משתמשים בשיטה מה במקום? 1072 00:57:06,000 --> 00:57:10,000 הודעה, ואחת ההבחנות המיידיות 1073 00:57:10,000 --> 00:57:14,000 בין לקבל ולפרסם פוסט שלא מעמיד את הקלט של המשתמש ב-URL. 1074 00:57:14,000 --> 00:57:16,000 היא מסתירה אותו. זה עדיין שולח אותו. 1075 00:57:16,000 --> 00:57:19,000 למעשה, מה שאנחנו רואים בדפדפן כאן, כפי שנגלים ברגע 1076 00:57:19,000 --> 00:57:22,000 על ידי התבוננות בregister0, הוא שאני פשוט רואה את התוכן 1077 00:57:22,000 --> 00:57:25,000 במערך שהוגשו מהדפדפן לשרת. 1078 00:57:25,000 --> 00:57:29,000 אבל את כתובת האתר לא חייבת?, אין שום מילות מפתח 1079 00:57:29,000 --> 00:57:31,000 או ערכים בזה, ולמה זה? 1080 00:57:31,000 --> 00:57:35,000 ובכן, הודעה מאפשרת לך עדיין לשלוח נתונים מהטופס לשרת, 1081 00:57:35,000 --> 00:57:38,000 אבל זה לא שם אותו ב-URL, אז איזה סוג של מידע הוא הודעה 1082 00:57:38,000 --> 00:57:41,000 מתאים במיוחד לאולי כשאתה שואל את המשתמש 1083 00:57:41,000 --> 00:57:44,000 הקלד בקלט לטופס? 1084 00:57:44,000 --> 00:57:48,000 משהו כמו סיסמא, משהו כמו מה עוד? 1085 00:57:48,000 --> 00:57:50,000 מספרי כרטיסי אשראי. 1086 00:57:50,000 --> 00:57:53,000 כל דבר שהוא מעט רגיש אתה בטח לא רוצה לגמור בכתובת האתר 1087 00:57:53,000 --> 00:57:56,000 אם רק כי זה אומר שהשותף שלך או בן משפחה יכול פשוט לחפור ב 1088 00:57:56,000 --> 00:57:59,000 ההיסטוריה שלך באינטרנט ולאחר מכן, פשוטו כמשמעו, לראות את הסיסמות שלך, 1089 00:57:59,000 --> 00:58:02,000 פשוטו כמשמעו, לראות את מספרי כרטיסי האשראי שלך, כי רוב הדפדפנים 1090 00:58:02,000 --> 00:58:05,000 זוכר בהיסטוריה כל כתובות אתה כבר בבית, 1091 00:58:05,000 --> 00:58:09,000 כך שאם רק בגלל שזה יהיה רעיון לא רע. 1092 00:58:09,000 --> 00:58:11,000 שימוש בעורות הודעה שפרטים מהמשתמש. 1093 00:58:11,000 --> 00:58:14,000 >> כמו כן, איך אתה להעלות תמונה לפייסבוק? 1094 00:58:14,000 --> 00:58:17,000 ובכן, את 2 מנגנונים היחידים שאתה באמת יכול להשתמש, 1095 00:58:17,000 --> 00:58:21,000 למרות שיש כמה אלה יותר מסתוריים אחרים, לקבל ולפרסם. 1096 00:58:21,000 --> 00:58:26,000 איך אפשר בכלל אפשר להעלות תמונה דרך כתובת אתר? 1097 00:58:26,000 --> 00:58:28,000 למעשה אתה יכול לעשות את זה. 1098 00:58:28,000 --> 00:58:30,000 אתה יכול לקחת JPEG או מפה סיבית או GIF ואתה יכול לייצג אותו בקסדצימלי 1099 00:58:30,000 --> 00:58:32,000 או משהו שנקרא בסיס 64. 1100 00:58:32,000 --> 00:58:35,000 במקום בסיס 16 אתה משתמש בבסיס 64, שלמעשה נראה כמו 1101 00:58:35,000 --> 00:58:38,000 תווי ASCII, ולמעשה אתה יכולים להעלות תמונה דרך ה-URL 1102 00:58:38,000 --> 00:58:41,000 אחרי סימן שאלה, אבל יש בדרך כלל מגבלות גודל. 1103 00:58:41,000 --> 00:58:44,000 רוב הדפדפנים לכפות כתובות להיות לא יותר מ -1,000 שחקנים, 1104 00:58:44,000 --> 00:58:47,000 אולי 2,000 תווים או דומיהם, ולכן אינך יכולים להעלות 1105 00:58:47,000 --> 00:58:50,000 10 MB פייסבוק תמונה. 1106 00:58:50,000 --> 00:58:54,000 בשביל זה אתה משתמש בהודעה, כמו גם, אז לעת עתה מקבל מכניס את הפרמטרים ב-URL, 1107 00:58:54,000 --> 00:58:57,000 וזה נחמד ושימושי לפעמים, אבל לכל דבר רגיש או גדול 1108 00:58:57,000 --> 00:58:59,000 הודעה היא הדרך ללכת. 1109 00:58:59,000 --> 00:59:02,000 מה register0 בעצם עושה כאן? 1110 00:59:02,000 --> 00:59:05,000 ובכן, אם אני פותח את ההודעה register0 שזה הוא דף סופר פשוט, 1111 00:59:05,000 --> 00:59:09,000 אבל זה ממחיש את העובדה שאני יכול לשתף להתערבב, לטוב או לרע, 1112 00:59:09,000 --> 00:59:12,000 HTML עם PHP. 1113 00:59:12,000 --> 00:59:15,000 כל הקובץ הזה, פרט להערות בראש, הוא HTML 1114 00:59:15,000 --> 00:59:19,000 חוץ מהבחור הזה כאן. 1115 00:59:19,000 --> 00:59:22,000 >> שים לב באמצע קוד PHP שלי, 1116 00:59:22,000 --> 00:59:26,000 באמצע HTML שלי, יש לי סוג של באופן זמני 1117 00:59:26,000 --> 00:59:28,000 נכנס למצב של PHP. 1118 00:59:28,000 --> 00:59:31,000 אני קורא לפונקציה מיוחדת הנקראת ההדפסה r. 1119 00:59:31,000 --> 00:59:34,000 זה אומר להדפיס רקורסיבית, ומה שהיא עושה זה מדפיס באופן רקורסיבי 1120 00:59:34,000 --> 00:59:38,000 כל מה שמשתנה אתה מוסר אותו, פסיק, מצב יציאת PHP. 1121 00:59:38,000 --> 00:59:40,000 והתג מראש נותן לך טקסט מעוצב מראש, 1122 00:59:40,000 --> 00:59:43,000 טקסט מרחב מונים, כך שכל מקום שאתה באמת רואה את זה. 1123 00:59:43,000 --> 00:59:46,000 זה לא ייעלם. מהי הודעה? 1124 00:59:46,000 --> 00:59:48,000 ובכן, מה שמעניין ומשכנע על PHP 1125 00:59:48,000 --> 00:59:52,000 הוא שכל פעם שאתה שולח טופס באמצעות לקבל או לפרסם 1126 00:59:52,000 --> 00:59:56,000 ומה שהוגש לך על ידי דפדפן 1127 00:59:56,000 --> 01:00:00,000 PHP עצמו דמוי מה זוגות ערך המפתח הללו, 1128 01:00:00,000 --> 01:00:02,000 דמויות לבדוק אם יש סימנים שווים, דמויות לבדוק אם יש סימן שאלה. 1129 01:00:02,000 --> 01:00:07,000 זה עושה את כל העבודה הקשה לך, ואז זה נותן לך מערך אסוציאטיבי 1130 01:00:07,000 --> 01:00:10,000 המכיל את כל מה שמשתמש הקליד בטופס. 1131 01:00:10,000 --> 01:00:12,000 ובכן, מה עשה שדות טופס זה יש? 1132 01:00:12,000 --> 01:00:14,000 >> היה לו 4 שדות. 1133 01:00:14,000 --> 01:00:16,000 אחד היה שדה טקסט בשם שם. 1134 01:00:16,000 --> 01:00:18,000 אחד מהם היה תיבת סימון שנקראה קפטן. 1135 01:00:18,000 --> 01:00:22,000 אחד מהם היה כפתור רדיו בשם מין, 1136 01:00:22,000 --> 01:00:24,000 ואחד היה תפריט נפתח נקרא מעונות, 1137 01:00:24,000 --> 01:00:27,000 כל כך שם לב כשאני מדפיס באופן רקורסיבי 1138 01:00:27,000 --> 01:00:29,000 את תוכנו של המשתנה המיוחדת הזה. 1139 01:00:29,000 --> 01:00:34,000 זה משתנה גלובלי מיוחד שנקרא פשוטו $ _POST, בכל הכמוסות. 1140 01:00:34,000 --> 01:00:39,000 זה משתנה גלובלי מיוחד שPHP רק יוצר עבורך 1141 01:00:39,000 --> 01:00:42,000 וידות אליך, כך שאתה יכול לגשת לכל הדבר 1142 01:00:42,000 --> 01:00:45,000 שהוגש באמצעות טופס על ידי משתמש. 1143 01:00:45,000 --> 01:00:48,000 ועל ידי התקשרות r הדפסה עליו, לא היית עושה את זה ביישום רגיל. 1144 01:00:48,000 --> 01:00:50,000 אנחנו עושים את זה כדי לראות בפנים של משתנה זה, 1145 01:00:50,000 --> 01:00:53,000 ומה שבתוכו, טוב, 4 מפתחות, 1146 01:00:53,000 --> 01:00:56,000 4 פרמטרי http, אם אפשר לומר כך, 1147 01:00:56,000 --> 01:00:59,000 שם, קפטן, מין, מעונות, ולאחר מכן את הערכים שהמשתמש 1148 01:00:59,000 --> 01:01:01,000 הקליד בלמעט במקרה אחד. 1149 01:01:01,000 --> 01:01:03,000 עשיתי סוג D--V-I-D. 1150 01:01:03,000 --> 01:01:05,000 למרות שבדקתי את התיבה,, לגבר, כנראה שהגיש את ערך 1151 01:01:05,000 --> 01:01:07,000 מסתם מ 'להיות תמציתי. 1152 01:01:07,000 --> 01:01:10,000 >> כשנבחרתי מתיוס זה הערך שנבררו, 1153 01:01:10,000 --> 01:01:12,000 ואת זה הוא קצת טיפשי, אבל זה האמנה. 1154 01:01:12,000 --> 01:01:17,000 כאשר בדקתי את התיבה, ערך על, "על", קבל הוגש לתיבת הסימון. 1155 01:01:17,000 --> 01:01:21,000 אם לא בדקתי את זה, אין שום ערך היית נשלח כלל. 1156 01:01:21,000 --> 01:01:26,000 זה רק נותן לנו תובנה לתוך מה שבפנים של המשתנה הגלובלי המיוחד הזה, 1157 01:01:26,000 --> 01:01:29,000 וזה כל כך מיוחד שהיא נקראת במשתנת סופר גלובלית. 1158 01:01:29,000 --> 01:01:33,000 היא קיימת בכל מקום בשבילך בתוך הקוד שלך, כך שאתה ממש יכול לגשת אליו. 1159 01:01:33,000 --> 01:01:36,000 זה לא שמשכנע, אז בואו באמת להשתמש הגלובלי הסופר 1160 01:01:36,000 --> 01:01:38,000 ובעצם מנסה לרשום למישהו. 1161 01:01:38,000 --> 01:01:41,000 בfroshims1 אני הולך לעשות שינוי אחד. 1162 01:01:41,000 --> 01:01:44,000 אני משנה את הפעולה להיות register1.php, 1163 01:01:44,000 --> 01:01:46,000 ואני עושה עוד דבר אחד. 1164 01:01:46,000 --> 01:01:48,000 אני היה סוג של נבוך מהאיכות של דף האינטרנט שלי שם. 1165 01:01:48,000 --> 01:01:52,000 זה די מחריד, בכנות, כך מתברר 1166 01:01:52,000 --> 01:01:56,000 כי אתה יכול להשתמש בקלות באינטרנט 1167 01:01:56,000 --> 01:01:59,000 של אנשים אחרים קוד JavaScript, CSS של אנשים אחרים 1168 01:01:59,000 --> 01:02:02,000 שהן כתבו ופתחו את הקוד ונעשתה זמינים כספרייה, 1169 01:02:02,000 --> 01:02:06,000 אם אפשר לומר כך, ולמשל, כאן אני משתמש בספרייה זמינה באופן חופשי, 1170 01:02:06,000 --> 01:02:08,000 חבורה של קוד שמישהו אחר כתב. 1171 01:02:08,000 --> 01:02:11,000 >> טוויטר במקרה כתב את הקוד הזה, וזה נקרא ספריית bootstrap, 1172 01:02:11,000 --> 01:02:15,000 וזה פשוט חבורה של גיליונות סגנון CSS, צרור. קבצי css 1173 01:02:15,000 --> 01:02:19,000 שמישהו אחר כתב והבין איך להשיג הכל נחמד ויפה 1174 01:02:19,000 --> 01:02:22,000 כך שאנשים כמונו יכולים לדאוג קצת פחות על אסתטיקה ולהתמקד הרבה יותר 1175 01:02:22,000 --> 01:02:24,000 על ההיגיון ותכנות בפועל. 1176 01:02:24,000 --> 01:02:30,000 על ידי קישורו עם שהתג, המהווה את אותו התג הייתי זכור לstyles3.css קודם לכן, 1177 01:02:30,000 --> 01:02:34,000 עכשיו יש לי גישה לקובץ שנקרא bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 דקות רק אומרות שהם כבר minified זה והם שנפטרים מכל החלל הלבן וכן הלאה 1179 01:02:37,000 --> 01:02:40,000 רק כדי לוודא שהם לא שולחים לי יותר בתים ממה שאני ממש צריך. 1180 01:02:40,000 --> 01:02:45,000 אבל יש בקבוצה שלמה של CSS, אז אם אני עכשיו פותח את הגרסה 1 של הפרוש IMs 1181 01:02:45,000 --> 01:02:49,000 שם לב שהקובץ שלי הוא בהחלט יפה. 1182 01:02:49,000 --> 01:02:54,000 עכשיו זה עדיין רק שחור ולבן, אבל שם לב שרק על ידי שימוש גיליון הסגנון שלהם 1183 01:02:54,000 --> 01:02:58,000 ושימוש בתכונות מסוימות שלה על הטופס שלי זה לא מדהים, 1184 01:02:58,000 --> 01:03:01,000 אבל זה בהחלט נקי יותר ממה שהיה בעבר, והמקרן לא עושה את זה צדק. 1185 01:03:01,000 --> 01:03:05,000 יש קווים אפורים קטנים מסביב לכפתורים וסביב שדה הטקסט ממש כאן, 1186 01:03:05,000 --> 01:03:07,000 אבל זה בהחלט נקי יותר ממה שהיה לפני. 1187 01:03:07,000 --> 01:03:09,000 >> עכשיו, בהגינות, אני לא צריך לשנות את הסימון שלי קצת. 1188 01:03:09,000 --> 01:03:12,000 זו היא גרסת 1, ושים לב שאני השתמשתי כמה תגים חדשים, 1189 01:03:12,000 --> 01:03:17,000 ובכנות, לא היה לי מושג איך לעשות את זה עד שקראתי את התיעוד 1190 01:03:17,000 --> 01:03:20,000 לספריית bootstrap של טוויטר, והם אמרו לי שאם אתה רוצה להשתמש בספרייה שלנו 1191 01:03:20,000 --> 01:03:23,000 להשתמש באלמנט בתוך קבוצת שדות הטופס שלך, 1192 01:03:23,000 --> 01:03:27,000 לשים את המילה שאתה רוצה להראות לצד בתוך שדה של תג תווית, 1193 01:03:27,000 --> 01:03:30,000 ואז לתת את הקלט שלך שם, בדיוק כמו בעבר, 1194 01:03:30,000 --> 01:03:34,000 ולאחר מכן לתיבה, לא רק שאתה עוטף אותו באלמנט תווית, 1195 01:03:34,000 --> 01:03:36,000 אתה משתמש במשהו שנקרא בכיתה, ולכן אנחנו לא ראינו את זה בעבר, 1196 01:03:36,000 --> 01:03:39,000 אבל אתה רואה את זה באחד מכנסיים הקצרים של pset 7. 1197 01:03:39,000 --> 01:03:43,000 כיתה בCSS מאפשרת לך לעשות משהו דומה מאוד לזיהוי, 1198 01:03:43,000 --> 01:03:46,000 אבל לפני שהיינו לנו זהות עם הסמל # 1199 01:03:46,000 --> 01:03:48,000 שזה היה אחד ורק אלמנט אחד. 1200 01:03:48,000 --> 01:03:51,000 מה שנחמד בכיתה הוא שמספר אלמנטים יכולים להיות באותה הכיתה 1201 01:03:51,000 --> 01:03:54,000 או אותו חומר CSS להחיל את זה. 1202 01:03:54,000 --> 01:03:57,000 >> אבל שוב, נוסף על אלה בטווח הקצר, ושאר זה פשוט להעתיק ולהדביק 1203 01:03:57,000 --> 01:04:00,000 מהתיעוד שלהם שבו אני הוספתי תווית פה ושם. 1204 01:04:00,000 --> 01:04:03,000 ובסופו, משום שצרפתי את תג הקישור בראש, 1205 01:04:03,000 --> 01:04:06,000 הכל נראה יפה יותר באופן אוטומטי 1206 01:04:06,000 --> 01:04:10,000 פשוט על ידי כך שסמן את הדף שלי באופן ש 1207 01:04:10,000 --> 01:04:12,000 טוויטר צפוי, ויש כל כך הרבה דרכים שונות 1208 01:04:12,000 --> 01:04:14,000 לעשות את זה, וזה אכן מאוד מתאים. 1209 01:04:14,000 --> 01:04:17,000 בשלב זה של הסמסטר, כפי שתראה במפרט של pset 7, 1210 01:04:17,000 --> 01:04:20,000 Googling בסביבה, לקרוא על ספריות, באמצעות CSS של אנשים אחרים 1211 01:04:20,000 --> 01:04:23,000 וJavaScript כדי לפתור את בעיות נלוות 1212 01:04:23,000 --> 01:04:26,000 כדי להגדיר את הבעיה עצם בהחלט מעודדת והיא הדרך 1213 01:04:26,000 --> 01:04:29,000 האינטרנט בנוי בימים אלה, על ידי שעמד על כתפיהם של אנשים אחרים 1214 01:04:29,000 --> 01:04:32,000 כך שאתה באמת יכול להתמקד בבעיות החדשות ומעניינות. 1215 01:04:32,000 --> 01:04:34,000 אבל בואו נתמקד עכשיו, שוב, את ההיגיון. 1216 01:04:34,000 --> 01:04:38,000 >> זה היה עיקוף מהיר על אסתטיקה, רק כדי להראות לך את הכיוון שבו אתה יכול ללכת. 1217 01:04:38,000 --> 01:04:40,000 אני הולך לחזור למכוער יותר אחד לעכשיו רק בגלל 1218 01:04:40,000 --> 01:04:44,000 אין שום סח דעת עם דברי טוויטר, ותנו לי ללכת קדימה, לפתוח את 1219 01:04:44,000 --> 01:04:51,000 froshims2, ששוב, נבדל בפעולה, register2.php, 1220 01:04:51,000 --> 01:04:55,000 ובואו נסתכל על מה שההשפעה היא כאן. 1221 01:04:55,000 --> 01:04:57,000 תן לי ללכת קדימה והקלד בדוד. 1222 01:04:57,000 --> 01:04:59,000 אני לא אהיה קפטן זה זמן. 1223 01:04:59,000 --> 01:05:01,000 אני אגיד את הזכר, מתיוס, פנקס. 1224 01:05:01,000 --> 01:05:05,000 לעזאזל. אוקיי, זה בורג על החלק שלי. 1225 01:05:05,000 --> 01:05:07,000 Stand by. 1226 01:05:07,000 --> 01:05:17,000 Register2, 22 קו, אם ריק או מצטער. 1227 01:05:17,000 --> 01:05:19,000 בואו לטעון מחדש. 1228 01:05:19,000 --> 01:05:22,000 אוקיי, על שליחת טופס זה מה בדיוק קרה? 1229 01:05:22,000 --> 01:05:25,000 אני הקלדתי בדוד, בדק זכר, לחץ מתיוס, פנקס. 1230 01:05:25,000 --> 01:05:27,000 אתה רושם. (טוב, לא ממש.) 1231 01:05:27,000 --> 01:05:32,000 זה ברור צעד מעבר פשוט מדפיס את תוכנו של משתנה כלשהו, 1232 01:05:32,000 --> 01:05:34,000 אבל מה שהקובץ הזה בעצם עושה? 1233 01:05:34,000 --> 01:05:37,000 בregister2.php 1234 01:05:37,000 --> 01:05:40,000 שם לב שיש לי קצת קוד חדש. 1235 01:05:40,000 --> 01:05:44,000 בתוך תג הגוף שלי יש לי בעצם אם אחר לבנות, 1236 01:05:44,000 --> 01:05:47,000 אבל בגלל שאני אשתף מתערבב זה עם קצת HTML 1237 01:05:47,000 --> 01:05:51,000 יש לי להיכנס ולצאת ממצב PHP קדימה ואחורה, אז בואו לראות מה אני עושה. 1238 01:05:51,000 --> 01:05:55,000 >> בשורה הראשונה כאן שאני אומר אם זה המקרה 1239 01:05:55,000 --> 01:06:00,000 שהודעת הסופר הגלובלי ריק למפתח של שם, 1240 01:06:00,000 --> 01:06:04,000 כך במילים אחרות, אם המשתמש לא נתן לי ערך לשם בצורה, 1241 01:06:04,000 --> 01:06:07,000 לאחר מכן רוקן הולך לחזור נכון כי את הערך ריק. 1242 01:06:07,000 --> 01:06:11,000 או להבחין בפסים האנכיים, אם מין ריק 1243 01:06:11,000 --> 01:06:15,000 בתוך הסופר הגלובלי המיוחד הזה, ששוב, מייצג את תוכן הטופס, 1244 01:06:15,000 --> 01:06:19,000 או המעונות ריקות, אז אני הולך קדימה וצועק על המשתמש. 1245 01:06:19,000 --> 01:06:22,000 איך? ובכן, שם לב שאני עומד לומר לך לספק את שמך, המין, והמעונות. 1246 01:06:22,000 --> 01:06:24,000 בואו בעצם לגרום את הטעות הזאת. 1247 01:06:24,000 --> 01:06:27,000 תן לי לחזור לצורה שלי. תן לי לטעון מחדש כדי לנקות אותה. 1248 01:06:27,000 --> 01:06:30,000 ואני רק הולך לתת להם דוד, והם לא צריכים לדעת איפה אני גר. 1249 01:06:30,000 --> 01:06:33,000 הרשמה. כנראה שאני צריך להגיד להם איפה אני גר. 1250 01:06:33,000 --> 01:06:35,000 עליך לספק שם, המין והמעונות שלך. חזור. 1251 01:06:35,000 --> 01:06:39,000 >> ואני יכול ללחוץ כדי לחזור לצורתו, אך מדוע זה כך? 1252 01:06:39,000 --> 01:06:43,000 ובכן, במקרה שהשם לא היה ריק, אבל היה מין, והמעון היה, 1253 01:06:43,000 --> 01:06:47,000 כך כל הביטוי זה הוערך לנכון, ולמרות שהתחביר הוא קצת חדש, 1254 01:06:47,000 --> 01:06:51,000 שוב, אנחנו נכנסים למצב PHP ומוכר אם הצהרה, 1255 01:06:51,000 --> 01:06:54,000 אבל החלק החדש כאן הוא רק זה מעי גס, ואני פשלתי ידי השמטת סוגריים 1256 01:06:54,000 --> 01:06:57,000 במקרה, שלא להבחין במעי הגס, וזה אומר 1257 01:06:57,000 --> 01:07:00,000 למרות שאנחנו יוצאים כל מצב PHP 1258 01:07:00,000 --> 01:07:03,000 העוקב יש לירוק את המילה במילה לדפדפן 1259 01:07:03,000 --> 01:07:07,000 עד שתראה בלוק אחר, כפי שאנו עושים כאן, 1260 01:07:07,000 --> 01:07:10,000 בכל מקרה אתה צריך במקום לירוק את זה 1261 01:07:10,000 --> 01:07:13,000 עד שתראה את endif, אז כמה מעט תחביר חדש 1262 01:07:13,000 --> 01:07:16,000 שמאפשר לי לעבור בין HTML ו-PHP. 1263 01:07:16,000 --> 01:07:19,000 אנחנו יכולים לנקות את זה סופו של דבר, אך לעת עתה, 1264 01:07:19,000 --> 01:07:22,000 זה סוג של דרך משכנעת של בדיקת שגיאות בטופס. 1265 01:07:22,000 --> 01:07:25,000 >> עכשיו, אני אומר לך לא באמת נרשמתי, כי ברור שלא עשיתי דבר, אלא את הנתונים, 1266 01:07:25,000 --> 01:07:28,000 אז בואו באמת מנסה לעשות משהו מגניב. 1267 01:07:28,000 --> 01:07:33,000 בfroshims3 ההבדל היחיד הוא שאני הולך להגיש לregister3, 1268 01:07:33,000 --> 01:07:35,000 כך HTML יש את אותו. 1269 01:07:35,000 --> 01:07:38,000 בregister3 יבחין זה. 1270 01:07:38,000 --> 01:07:40,000 זה אחד הוא סוג של סקסי. 1271 01:07:40,000 --> 01:07:44,000 בראש אני משתמש במשפט דורש, אז זה כמו תכלול #. 1272 01:07:44,000 --> 01:07:46,000 הפעם זה לא stdio.h או משהו כזה. 1273 01:07:46,000 --> 01:07:50,000 זה ספריית PHP, וזה נקרא PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 איך אני יודע בדיוק לכולל מחרוזת צוטטה? 1275 01:07:53,000 --> 01:07:56,000 קראתי אותו בתיעוד, ולכן כאשר הם אמרו לי לשים את זה בחלק העליון של הקובץ 1276 01:07:56,000 --> 01:08:00,000 אם ברצונך להשתמש בספרייה מיוחדת הנקראת PHPMailer שעושה מה שהוא אומר. 1277 01:08:00,000 --> 01:08:03,000 זה מאפשר לך לשלוח דוא"ל דרך PHP. 1278 01:08:03,000 --> 01:08:05,000 עכשיו בואו לגלול למטה עוד יותר. 1279 01:08:05,000 --> 01:08:08,000 >> שים לב להתחיל אני במצב PHP כל הזמן הזה, 1280 01:08:08,000 --> 01:08:11,000 אז עכשיו שם לב לכאן לאחר היבוא שהספרייה, 1281 01:08:11,000 --> 01:08:13,000  כביכול, אני עושה כמה בדיקות שפיות. 1282 01:08:13,000 --> 01:08:16,000 אם זה המקרה שהשם אינו ריק 1283 01:08:16,000 --> 01:08:19,000 והמגדר אינו ריק להבחין בסימני קריאת נקודות 1284 01:08:19,000 --> 01:08:24,000 ומעונות אינן ריקות, ואז המשתמש מלא את הטופס באופן הגיוני, לפחות מספיק. 1285 01:08:24,000 --> 01:08:28,000 לא אכפת לי אם הם קפטן או לא. אני רק צריך את השם שלהם, מין, ומעונות. 1286 01:08:28,000 --> 01:08:31,000 אם הם מלאו אותם החוצה כך שאף אחד מהתחומים האלה הם ריקים 1287 01:08:31,000 --> 01:08:33,000 זה מעט תחביר חדש. 1288 01:08:33,000 --> 01:08:36,000 PHP, כדרך אגב, הוא שפת תכנות מונחה עצמים 1289 01:08:36,000 --> 01:08:39,000 שחלק מכם אולי זוכר מרכבים ממוגנים או כדומים. 1290 01:08:39,000 --> 01:08:42,000 לעת עתה, אם לא מוכר, רק יודע שכדי להשתמש בספרייה זו 1291 01:08:42,000 --> 01:08:45,000 אתה צריך לכתוב שורת הקוד כמו זה באמצעות מילת מפתח חדשה, 1292 01:08:45,000 --> 01:08:47,000 ממש מילת מפתח חדשה בשם חדש. 1293 01:08:47,000 --> 01:08:50,000 אבל מעבר לכך, יש לנו כמה תחביר מוכר. 1294 01:08:50,000 --> 01:08:54,000 זה מפעיל חץ, שהוא דומה למה שנהגתי לstructs בהקשר של מצביעים. 1295 01:08:54,000 --> 01:08:57,000 להיום PHP אין מצביעים, 1296 01:08:57,000 --> 01:09:01,000 אך אני יודע שעכשיו בתוך של המשתנה האלקטרוני 1297 01:09:01,000 --> 01:09:05,000 הוא למעשה סוג של מצביע לספרייה מיוחדת 1298 01:09:05,000 --> 01:09:08,000 שמישהו אחר כתב, ואם אני רוצה לגשת פונקציונלי ספציפי 1299 01:09:08,000 --> 01:09:12,000 בתוך הספרייה שאני, כמו ב-C, להשתמש באופרטור החץ, 1300 01:09:12,000 --> 01:09:14,000 למרות שלא מדובר בעצם מצביעים. 1301 01:09:14,000 --> 01:09:16,000 זה סוג של גרסתם של PHP עצמו. 1302 01:09:16,000 --> 01:09:20,000 פירושו של הדבר ללכת לספרייה ולקרוא את פונקצית IsSMTP. 1303 01:09:20,000 --> 01:09:23,000 SMTP, כזכור, מהלוחמים שלנו נקי מתייחס לדוא"ל, 1304 01:09:23,000 --> 01:09:28,000 וזה רק אומר ששימוש בשרת דואר אלקטרוני עבור פרוש IMs רישום זה. 1305 01:09:28,000 --> 01:09:30,000 >> מה מארח אני רוצה להשתמש? 1306 01:09:30,000 --> 01:09:34,000 ובכן, הרווארד, אם גוגל מסביב, יש שרת הדוא"ל נקרא smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 אם אתה משחק יחד בבית או שאתה חי על Comcast רשת 1308 01:09:37,000 --> 01:09:40,000 זה יכול להיות משהו כמו smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 זה לגמרי תלוי איפה אתה גר ומי ספק האינטרנט שלך הוא. 1310 01:09:43,000 --> 01:09:47,000 אחרי זה אני הולך להגדרה שלי מכתובת באופן שרירותי להיות jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 אז אני הולך להגדיר את הכתובת כדי להיות jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 הדרך היחידה שאני מכיר שפונקציות אלה נקראו SetFrom וAddAddress 1313 01:09:55,000 --> 01:09:57,000 הוא, שוב, אני קורא את התיעוד. 1314 01:09:57,000 --> 01:09:59,000 זה לא סוג של הקסם ידוע לכל המתכנתים. 1315 01:09:59,000 --> 01:10:02,000 אז אני קובע לנושא "רישום". 1316 01:10:02,000 --> 01:10:07,000 ועכשיו הקו הזה הוא קצת מכוער משום מה מפעיל הנקודה מתכוון ב-PHP? 1317 01:10:07,000 --> 01:10:09,000 מישהו יודע? 1318 01:10:09,000 --> 01:10:11,000 לשרשר. 1319 01:10:11,000 --> 01:10:14,000 ב C זה כאב בצוואר כדי לשרשר 2 מחרוזות יחד. 1320 01:10:14,000 --> 01:10:17,000 אתה צריך להתמודד עם malloc או realloc או כל הדברים האלה 1321 01:10:17,000 --> 01:10:20,000 רק כדי להאריך את אורכו של חוט. 1322 01:10:20,000 --> 01:10:22,000 ב-PHP, ב-JavaScript ובשפות אחרות 1323 01:10:22,000 --> 01:10:24,000 אתה בדרך כלל יכול לעשות את זה עם תו בודד. 1324 01:10:24,000 --> 01:10:28,000 במקרה זה, משמעות הדבר היא לקחת נקודת מחרוזת זה כאן 1325 01:10:28,000 --> 01:10:30,000 ולצרף אליו זה מחרוזת. 1326 01:10:30,000 --> 01:10:32,000 >> אה, ודרך אגב, אותו יש לצרף למחרוזת זו, 1327 01:10:32,000 --> 01:10:34,000 אשר קורה להיות בתוך משתנה הגלובלי שהסופר. 1328 01:10:34,000 --> 01:10:37,000 ואז לצרף אותו לשורה חדשה, כך שכל הנקודות האלה רק אומרות 1329 01:10:37,000 --> 01:10:39,000 לשמור על מה שהופך גדולה יותר ויותר ויותר גדולה מחרוזת, 1330 01:10:39,000 --> 01:10:43,000 ואתה לא צריך לדאוג בכלל על malloc או כמו בלשון כזאת, 1331 01:10:43,000 --> 01:10:46,000 ויש דרכים אחרות לעשות את זה, אבל זה הוא אחד המהיר ביותר 1332 01:10:46,000 --> 01:10:48,000 דרכים סכמה את זה. 1333 01:10:48,000 --> 01:10:50,000 מה זה עושה? 1334 01:10:50,000 --> 01:10:55,000 זה יוצר גוף מייל שהולך להגיד שם: קפטן: מין: Dorm: 1335 01:10:55,000 --> 01:10:58,000 , ואז לבסוף, כל בשורות נפרדות 1336 01:10:58,000 --> 01:11:00,000 שורה אחת של קוד, ואני הולך להתעלם מזה לעת עתה. 1337 01:11:00,000 --> 01:11:02,000 אם == שווא רק אומר שאם משהו ישתבש, 1338 01:11:02,000 --> 01:11:04,000 אבל הקסם שקורה כאן. 1339 01:11:04,000 --> 01:11:08,000 שלח דואר הפירוש לשלוח דוא"ל זה. 1340 01:11:08,000 --> 01:11:10,000 בואו לראות מה התוצאה הסופית היא. 1341 01:11:10,000 --> 01:11:13,000 בתחתית הקובץ, שים לב שזה הולך אומר שאתה רושם באמת 1342 01:11:13,000 --> 01:11:15,000 אם אני מקבל כל כך רחוק. 1343 01:11:15,000 --> 01:11:18,000 אם, לעומת זאת, ברגי המשתמש עד, שים לב שאנחנו התחלנו בזה 1344 01:11:18,000 --> 01:11:21,000 אם מצב כאן, אם הוא לא ריק ולא ריק 1345 01:11:21,000 --> 01:11:24,000 ולא רוקנו לשלוח את הדואר. 1346 01:11:24,000 --> 01:11:27,000 אחר אנחנו הולכים לשלוח את שורת קוד הזאת, 1347 01:11:27,000 --> 01:11:30,000 שהוא הולך להיות השפעה, כפי שתראה ב7 pset, של הפניית המשתמש 1348 01:11:30,000 --> 01:11:35,000 חזרה למקום ממנו בא, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> תחזיק אצבעות, אחר זה הולך להיות ההדגמה המאכזבת ביותר כיום. 1350 01:11:38,000 --> 01:11:40,000 הנה אנחנו מתחילים. 1351 01:11:40,000 --> 01:11:42,000 תן לי לפתוח את תיבת הדואר הנכנס שלי הדוא"ל שלי לjharvard ב-Gmail. 1352 01:11:42,000 --> 01:11:44,000 אין דוא"ל עכשיו. בסדר. 1353 01:11:44,000 --> 01:11:53,000 עכשיו בואו תפתחו אותי froshims3, המהווה את הדוגמא השלישית ואחרונה אנחנו מסתכלים כאן. 1354 01:11:53,000 --> 01:11:55,000 אוקיי, הנה זה בא. 1355 01:11:55,000 --> 01:12:00,000 נייט, הוא יהיה קפטן, זכר, מ, נגיד, Apley. 1356 01:12:00,000 --> 01:12:04,000 הרשמה. אוקיי, אתה רושם באמת. 1357 01:12:04,000 --> 01:12:07,000 עכשיו, אם אני לגלול מעל לדוא"ל שלי, הו, אלוהים שלי. 1358 01:12:07,000 --> 01:12:09,000 יש לי רק באופן דינמי נשלח דואר אלקטרוני באינטרנט. 1359 01:12:09,000 --> 01:12:11,000 >> בואו נשאיר באווירה שכזו. 1360 01:12:11,000 --> 01:12:16,000 וידאו הוא קרוב להרצאה שפספסנו. להתראות בשבוע הבא. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]