1 00:00:00,000 --> 00:00:03,920 >> [השמעת מוסיקה] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> דוד י מלאן: בסדר. 4 00:00:13,800 --> 00:00:15,640 זה CS50. 5 00:00:15,640 --> 00:00:17,620 זוהי תחילתה של שבוע שמונה. 6 00:00:17,620 --> 00:00:22,440 ואתם אולי זוכרים שעזבנו את הפעם האחרונה מסתכל על שפה חדשה 7 00:00:22,440 --> 00:00:23,240 לגמרי. 8 00:00:23,240 --> 00:00:25,905 למעשה, אחת במחיר די קל משקל וזה אפילו לא 9 00:00:25,905 --> 00:00:26,940 שפת תכנות. 10 00:00:26,940 --> 00:00:31,100 זו שפת סימון המאפשרת לנו למעשה מבנה ולהפוך את דפי אינטרנט. 11 00:00:31,100 --> 00:00:33,350 וכאשר אתה משהו אחר בשיתוף עם זה-- 12 00:00:33,350 --> 00:00:35,670 או שאתה בקרוב, אם כבר אין לך. 13 00:00:35,670 --> 00:00:38,530 אנחנו הולכים להשתמש מדורגים גיליונות סגנון, או CSS, ש 14 00:00:38,530 --> 00:00:40,971 הוא סוג אחר של שפה עם תכונות וערכים 15 00:00:40,971 --> 00:00:43,220 זה הולך לתת לנו לעשות דברים רוצים לשנות את הצבע 16 00:00:43,220 --> 00:00:46,010 ולשנות את המיקום ומינים אלה tweaks. 17 00:00:46,010 --> 00:00:49,940 אבל היום והלאה, אנחנו מתחילים להתמקד בשפות חזקות יותר, 18 00:00:49,940 --> 00:00:52,810 שפות תכנות בפועל כמו PHP. 19 00:00:52,810 --> 00:00:54,880 >> אז PHP בסביבה כבר זמן מה. 20 00:00:54,880 --> 00:00:56,810 וכפי שתראה, זה נועד בעיקר 21 00:00:56,810 --> 00:01:00,280 כבר בשלב מוקדם לבפועל להשתמש בפיתוח אינטרנט 22 00:01:00,280 --> 00:01:02,360 ובעצם יצירת דפי אינטרנט. 23 00:01:02,360 --> 00:01:04,849 אז אילו סוגים של תכונות עושה שפה 24 00:01:04,849 --> 00:01:10,040 צריך כדי להפוך את האינטרנט דפים דינמי עם זה? 25 00:01:10,040 --> 00:01:14,760 >> במילים אחרות, אם אתה רוצה ליצור תוכן dynamically-- כמו פייסבוק של 26 00:01:14,760 --> 00:01:19,480 Newsfeed, שמשתנה כל הזמן, או הודעות מיידיות שצצות מעת 27 00:01:19,480 --> 00:01:21,872 לtime-- כמו מה חתיכה פונקציונלי מפתח 28 00:01:21,872 --> 00:01:24,580 אתה צריך בשפת תכנות שאאפשר לך באופן דינמי 29 00:01:24,580 --> 00:01:28,070 להדפיס מידע חדש על המסך? 30 00:01:28,070 --> 00:01:28,685 >> תלמיד: קוד. 31 00:01:28,685 --> 00:01:29,560 דוד י מלאן: קוד. 32 00:01:29,560 --> 00:01:30,440 אישור. 33 00:01:30,440 --> 00:01:31,995 אנחנו ניקח את זה. 34 00:01:31,995 --> 00:01:35,310 קצת יותר מדויק. 35 00:01:35,310 --> 00:01:37,639 אני מתכוון, אנחנו יכולים לעשות זה עם C, בכנות. 36 00:01:37,639 --> 00:01:38,930 זה יהיה כאב בצוואר. 37 00:01:38,930 --> 00:01:41,045 But-- מחויבות זו? 38 00:01:41,045 --> 00:01:41,895 >> סטודנט: כן. 39 00:01:41,895 --> 00:01:42,677 משתנים, אולי? 40 00:01:42,677 --> 00:01:43,760 דוד י מלאן: משתנה. 41 00:01:43,760 --> 00:01:44,160 אישור, בטוח. 42 00:01:44,160 --> 00:01:45,740 משתנים בהחלט יכולים לעזור לנו. 43 00:01:45,740 --> 00:01:47,020 ואפילו משהו פשוט יותר. 44 00:01:47,020 --> 00:01:50,640 אנחנו השתמשנו בו בראשון תכנית של היום הראשון 45 00:01:50,640 --> 00:01:55,686 כאשר אנו למעשה אמרו "שלום עולם". 46 00:01:55,686 --> 00:01:56,570 >> תלמיד: הדפסה. 47 00:01:56,570 --> 00:01:57,778 >> דוד י מלאן: הדפסה, נכון? 48 00:01:57,778 --> 00:02:01,050 הדפסה, או printf ב עולם של ג אז כל הזמן הזה, 49 00:02:01,050 --> 00:02:03,362 שהיינו לנו בבית שלנו רשות language-- C, 50 00:02:03,362 --> 00:02:05,570 בparticular-- ואפילו שריטה לצורך העניין ש 51 00:02:05,570 --> 00:02:07,400 ניתן להפיק מחרוזות טקסט. 52 00:02:07,400 --> 00:02:11,090 >> ובכן, אם HTML, כפי שראינו בשבוע שעבר, הוא פשוט חבורה של מחרוזות טקסט כולו 53 00:02:11,090 --> 00:02:14,692 גם אם בסוגריים פתוחים וסגור סוגריים ואיזה חרוז 54 00:02:14,692 --> 00:02:16,650 וסיבה מאחורי זה, גם אז אנחנו באמת יכולים 55 00:02:16,650 --> 00:02:20,440 להתחיל לייצר דפי אינטרנט או באופן ידני על ידי הקלדה אותם בgedit 56 00:02:20,440 --> 00:02:23,870 או ב- Microsoft Word, של עניין אנחנו רק צריכים עורך טקסט. 57 00:02:23,870 --> 00:02:26,830 >> או שאנחנו יכולים לכתוב קוד, להצעה שלך 58 00:02:26,830 --> 00:02:30,435 מוקדם יותר, שיאפשר לנו באופן דינמי לייצר HTML, 59 00:02:30,435 --> 00:02:32,560 וזה מה שאנחנו הולכים להתחיל לעשות עם PHP 60 00:02:32,560 --> 00:02:34,900 וסופו של דבר גם עם שפה נקראת JavaScript, 61 00:02:34,900 --> 00:02:37,910 הוא להשתמש בשפה אחת ליצירה אחרת. 62 00:02:37,910 --> 00:02:40,720 ואכן, זה מה שפייסבוק והרבה הרבה אתרים, אחרים 63 00:02:40,720 --> 00:02:44,530 לעשות כדי למעשה באופן דינמי להציג מידע חדש לך. 64 00:02:44,530 --> 00:02:47,117 >> אז בואו נתחיל עם זה-- קו נסתר מחפש, אבל אחד 65 00:02:47,117 --> 00:02:48,450 זה בעצם די חזק. 66 00:02:48,450 --> 00:02:51,210 עד כה, אנו כבר משתמשים C, שהיא שפת הידור. 67 00:02:51,210 --> 00:02:55,050 ורק recap-- מהיר הידור יש שפה מה מאפיין? 68 00:02:55,050 --> 00:02:59,050 ברור שאתה צריך לקמפל את זה, אבל מה זה אומר? 69 00:02:59,050 --> 00:03:00,505 כן? 70 00:03:00,505 --> 00:03:02,940 >> תלמיד: זה צריך להיות התאסף לתוך קוד מכונה. 71 00:03:02,940 --> 00:03:03,060 >> דוד י מלאן: אישור. 72 00:03:03,060 --> 00:03:04,530 זה צריך להיות מורכב לקוד מכונה. 73 00:03:04,530 --> 00:03:07,340 אז אתה לוקח את קוד המקור שלך, אשר הוא כמו סוג של-אנגלית. 74 00:03:07,340 --> 00:03:09,270 לך להמיר את זה ל משהו ברמה נמוכה יותר, 75 00:03:09,270 --> 00:03:11,590 אשר נקרא סופו של דבר אובייקט code-- של 0 ו -1. 76 00:03:11,590 --> 00:03:14,830 וזה 0 של אלה ושל 1 ש מעבד, כמו אלה שנעשו על ידי אינטל, 77 00:03:14,830 --> 00:03:16,110 להבין בעצם. 78 00:03:16,110 --> 00:03:19,690 >> עכשיו, PHP ו- Python ו- Ruby ו JavaScript וצרורות של אחרים 79 00:03:19,690 --> 00:03:23,190 שפות לא הידור שפות אבל פירשו שפות, 80 00:03:23,190 --> 00:03:26,630 מה שאומר שאתה פשוט להקליד אותם ולאחר מכן אתה לא הופך אותם לספרות 0 ו -1. 81 00:03:26,630 --> 00:03:30,790 אתה במקום רק לספק אחר כך כ קלט לתכנית של מישהו אחר, 82 00:03:30,790 --> 00:03:32,080 נקרא מתורגמן. 83 00:03:32,080 --> 00:03:34,460 ושל האדם ש תכנית תוכננה 84 00:03:34,460 --> 00:03:38,280 כדי להבין מה כל אחד ו כל סמל בפייתון או PHP 85 00:03:38,280 --> 00:03:42,650 או רובי או כל מספר של שפות אחרות משמעות. 86 00:03:42,650 --> 00:03:44,760 >> וכך כל מה שאנחנו צריכים זה משהו כזה. 87 00:03:44,760 --> 00:03:46,350 כך שלמעשה, אני הולך ניגש למכשיר 88 00:03:46,350 --> 00:03:48,100 כאן, רק לכל חלון ישן, ואנחנו 89 00:03:48,100 --> 00:03:52,580 הולך קדימה ופתוח קובץ בשם, אומר, שלום. 90 00:03:52,580 --> 00:03:55,780 עכשיו בעבר, שיכולתי להציל את זה אפילו עם סיומת קובץ, 91 00:03:55,780 --> 00:03:57,910 אבל אני הולך לעשות משהו אפילו פשוט יותר כאן. 92 00:03:57,910 --> 00:04:02,450 אני הולך קדימה ולהתחיל קובץ זה עם תחביר נסתר זה. 93 00:04:02,450 --> 00:04:06,310 אז "משתמש, בן, env, לסביבה, php. " 94 00:04:06,310 --> 00:04:10,670 >> זה פשוט שורת קוד אחת ש הולך לספר לי מערכת ההפעלה שלי, 95 00:04:10,670 --> 00:04:13,730 ללכת למצוא במקומי שלך סביבה מה שזה לא, 96 00:04:13,730 --> 00:04:18,149 בכל המקום בי PHP is-- interpreter-- ואתם מוזמנים להשתמש בי המתורגמן ש 97 00:04:18,149 --> 00:04:20,589 לפרש את הקוד הבא. 98 00:04:20,589 --> 00:04:22,760 עכשיו, זה סוג של תכונה מכוערת של PHP. 99 00:04:22,760 --> 00:04:24,980 אבל בשפה זו, כל פעם שאתה כותב קוד PHP, 100 00:04:24,980 --> 00:04:29,200 אתה צריך להיות אחד מאלה מכוערים תגי PHP סימון תחילת 101 00:04:29,200 --> 00:04:32,220 שלך code-- 00:04:37,430 >> אבל מתחת כאן, עכשיו אני יכול לעשות משהו כמו פסיק שלום די פשוט, printf 103 00:04:37,430 --> 00:04:40,922 קרוב n הקו הנטוי עולם ציטוט, קרובים סוגריים. 104 00:04:40,922 --> 00:04:42,630 ולאחר מכן רק לטובה מדד, אני הולך 105 00:04:42,630 --> 00:04:45,380 ללכת קדימה וקרוב תג php שלי לכאן 106 00:04:45,380 --> 00:04:47,390 כך שמראה של כל דבר יפה יפה מודפס. 107 00:04:47,390 --> 00:04:50,780 >> וברגע שאני לוחץ על שמירה, gedit הוא חכם בעצם מספיק 108 00:04:50,780 --> 00:04:54,620 להסתכל על זה שורה הראשונה ו מבין, אה, אתה כותב קוד PHP. 109 00:04:54,620 --> 00:04:56,710 הרשה לי להדגיש תחביר זה עם הצבעים 110 00:04:56,710 --> 00:04:58,690 כאן, כך שהוא עומד קצת יותר. 111 00:04:58,690 --> 00:05:01,300 אבל עכשיו אני הולך עד לחלון המסוף שלי. 112 00:05:01,300 --> 00:05:02,340 אני להתקרב. 113 00:05:02,340 --> 00:05:06,860 >> תכנית זו נקראה "שלום," אז אני הולך לעשות לוכסן נקודת שלום, 114 00:05:06,860 --> 00:05:07,990 אבל הרשות נדחתה. 115 00:05:07,990 --> 00:05:08,490 וbash. 116 00:05:08,490 --> 00:05:10,610 אנחנו בעצם שמענו על זה לפני דבר כמה שבועות 117 00:05:10,610 --> 00:05:13,140 בהקשר של Shellshock, אחד מהחרקים אלה. 118 00:05:13,140 --> 00:05:16,240 >> אבל הרשאה נדחתה שראינו בעבר, אולי בהקשר אחר. 119 00:05:16,240 --> 00:05:19,060 האם מישהו זוכר איך ייתכן לתקן משהו 120 00:05:19,060 --> 00:05:22,100 שבו רשות נמנעת כזה? 121 00:05:22,100 --> 00:05:23,490 מה הפקוד, לפחות? 122 00:05:23,490 --> 00:05:24,159 >> תלמיד: chmod. 123 00:05:24,159 --> 00:05:26,700 דוד י מלאן: כן, chmod, לשינוי המצב של קובץ. 124 00:05:26,700 --> 00:05:30,171 ותקבל את כל עוד משמש ל בשבוע הבא זה עם בעיה שלאחר מכן 125 00:05:30,171 --> 00:05:30,670 להגדיר. 126 00:05:30,670 --> 00:05:33,211 אבל לעת עתה, אני הולך לשנות המצב לא להיות קריא, 127 00:05:33,211 --> 00:05:36,650 אבל לתת לכולם executeability הרשאות, היכולת 128 00:05:36,650 --> 00:05:37,710 כדי להפעיל קובץ זה. 129 00:05:37,710 --> 00:05:40,360 ואני הולך להקצות כי לקובץ שלום. 130 00:05:40,360 --> 00:05:45,150 >> אם אני עכשיו עושה קו נטוי נקודת שלום להיכנס, אתה רואה, למעשה, התכנית שלי, שלום עולם. 131 00:05:45,150 --> 00:05:48,760 ומה צעד שעשה אני ברור לדלג לגמרי? 132 00:05:48,760 --> 00:05:49,520 קומפילציה. 133 00:05:49,520 --> 00:05:51,680 אז אני פשוט רצתי בתכנית זו בפשטות. 134 00:05:51,680 --> 00:05:55,690 >> ומתברר שאתה יכול לעשות את זה עם הרבה תחביר מזכיר ג 135 00:05:55,690 --> 00:06:03,400 תן לי ללכת לקוד של היום, שאני מכניס את ספריית vhost שלי 136 00:06:03,400 --> 00:06:05,250 כאן, לסיבות אמיתיות אנחנו נחזור ל. 137 00:06:05,250 --> 00:06:09,350 ואני הולך להיכנס, נניח, תנאי 1. 138 00:06:09,350 --> 00:06:12,450 >> ותראה כאן, ראשונה ו בראשונה, חבורה של הערות כל. 139 00:06:12,450 --> 00:06:15,240 אבל זה בעצם יצירה מחדש ב- PHP 140 00:06:15,240 --> 00:06:18,960 של תכנית שעשינו בשבוע ש 1.c אחד תנאים בשם 141 00:06:18,960 --> 00:06:20,690 שבו המטרה ב חיים של תכנית זו 142 00:06:20,690 --> 00:06:22,950 כנראה לשאול המשתמש עבור מספר שלם 143 00:06:22,950 --> 00:06:25,270 ולאחר מכן לעשות קצת רך ניתוח עליו לפי 144 00:06:25,270 --> 00:06:29,510 אתה אומר אם זה חיובי או שלילי או שווה לאפס. 145 00:06:29,510 --> 00:06:34,220 ואני מביא את זה רק בגלל, למעט אולי פרט אחד קטן, 146 00:06:34,220 --> 00:06:37,150 זה נבדל כל כך רחוק מג 147 00:06:37,150 --> 00:06:39,930 >> מה המאפיין אחד כאן שאולי קופץ 148 00:06:39,930 --> 00:06:41,410 עליך כקצת שונה? 149 00:06:41,410 --> 00:06:42,160 אולי שני דברים. 150 00:06:42,160 --> 00:06:42,660 כן? 151 00:06:42,660 --> 00:06:44,070 >> תלמיד: n סימן דולר? 152 00:06:44,070 --> 00:06:44,944 >> דוד י מלאן: כן. 153 00:06:44,944 --> 00:06:46,210 אז n סימן דולר הוא הווה. 154 00:06:46,210 --> 00:06:48,120 וסימני דולר, כ אנו רואים, הולכים 155 00:06:48,120 --> 00:06:51,460 להיות תיקון לתחילת של משתנה כלשהו בPHP. 156 00:06:51,460 --> 00:06:54,250 זה גם טוב טוב וbad-- ב שזה סוג של המובן מאליו את מה ש 157 00:06:54,250 --> 00:06:56,797 משתנה, רע שבזה עוד משהו להקליד. 158 00:06:56,797 --> 00:06:58,630 ויש אחד אחר דבר שיש לנו לא ממש 159 00:06:58,630 --> 00:07:00,876 ראה, לפחות על ידי כתיב זה. כן? 160 00:07:00,876 --> 00:07:01,630 >> תלמיד: readline. 161 00:07:01,630 --> 00:07:02,671 >> דוד י מלאן: readline. 162 00:07:02,671 --> 00:07:06,550 Readline לא ראו, כשלעצמה, ב ג ', למרות שקיים משהו 163 00:07:06,550 --> 00:07:09,530 דומה, אבל אנחנו כבר בשימוש getstring, ואת זה הוא מקבילו. 164 00:07:09,530 --> 00:07:12,950 אז אם אני נכנסתי לזה ספרייה, אשר קורה להיות, 165 00:07:12,950 --> 00:07:18,030 כפי שאסביר בקצת בvhost שלי ספרייה והמקור שלי בספרייה, 166 00:07:18,030 --> 00:07:22,730 ואני הולך קדימה ולעשות לוכסן נקודה לוכסן נקודת whoops-- conditions-- 167 00:07:22,730 --> 00:07:26,710 תנאי 1, תראו, שוב, אותו הרשות issue-- הכחישה. 168 00:07:26,710 --> 00:07:33,610 >> אז תן לי להתקרב ולעשות chmod בתוספת x בתנאים, תנאי לוכסן נקודה. 169 00:07:33,610 --> 00:07:35,222 אני רוצה מספר שלם, בבקשה, 50. 170 00:07:35,222 --> 00:07:36,930 ואנחנו יכולים לשחק את זה כל יום משחק. 171 00:07:36,930 --> 00:07:39,140 זה הולך להתנהג בדיוק כפי שעשה בשבוע אחד. 172 00:07:39,140 --> 00:07:42,860 >> אישור אז לא כל כך שונה, למעט לא רק שקצת קל של תחביר, 173 00:07:42,860 --> 00:07:45,490 אבל בראש, אני שוב היה זה קו ש 174 00:07:45,490 --> 00:07:49,760 אפשרו לי ליצור משהו ש נראה כמו תכנית C הנקראת שלום, 175 00:07:49,760 --> 00:07:51,150 תנאים בשם 1. 176 00:07:51,150 --> 00:07:54,520 אבל זה לא 0 ו אלה אני מבצע ישירות. 177 00:07:54,520 --> 00:07:57,620 זה במקום פועל זה מתורגמן ששמו 178 00:07:57,620 --> 00:07:59,440 קורה להיות זהה לשפה. 179 00:07:59,440 --> 00:08:04,970 התכנית נקראת PHP, והקוד שלי מתחת לקו אחד שעבר אליו. 180 00:08:04,970 --> 00:08:07,740 >> אנחנו יכולים לעשות אחר פשוט למדי דוגמא מזכירה משהו 181 00:08:07,740 --> 00:08:09,240 שעשינו לפני שבועות. 182 00:08:09,240 --> 00:08:12,020 שוב, מדובר בסוג של נתח שרירותי של קוד 183 00:08:12,020 --> 00:08:14,000 שכנראה עושה מה אם מפעיל אותו? 184 00:08:14,000 --> 00:08:15,625 מה זה הולך להדפיס, ככל הנראה? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> אז בהתחלה על קו 16, זה הולך להגיד x הוא כעת 2, כנראה. 187 00:08:28,250 --> 00:08:30,920 % d הוא בדיוק כמו שאני $ עבור printf. 188 00:08:30,920 --> 00:08:33,460 אז זה עִקוּב, נקודה, הנקודה, נקודה, בקו 17. 189 00:08:33,460 --> 00:08:36,299 ולאחר מכן בשורה 18 מופיע לקרוא לפונקציה בחזקה שלוש. 190 00:08:36,299 --> 00:08:37,600 ושבו מוגדרת בחזקה שלוש? 191 00:08:37,600 --> 00:08:40,319 >> ובכן, זה נראה כמו בקו 25, אז זה לא כל כך שונה. 192 00:08:40,319 --> 00:08:42,610 יש לי כמה הערות מעל זה, אבל על פי רוב, 193 00:08:42,610 --> 00:08:45,370 זה פשוט למדי סבה או המרה 194 00:08:45,370 --> 00:08:48,470 מתכנית ג 'לגרסת PHP. 195 00:08:48,470 --> 00:08:52,670 אבל יש עכשיו כמה הבדלים שאולי צריך לקפוץ החוצה. 196 00:08:52,670 --> 00:08:56,100 מה עוד שונה על איך אתה אולי לכתוב אותה תכנית זו ב- C? 197 00:08:56,100 --> 00:08:57,900 >> תלמיד: [לא ברור]. 198 00:08:57,900 --> 00:09:00,070 >> דוד י מלאן: יש אין עליון אב טיפוס למעלה. 199 00:09:00,070 --> 00:09:03,210 אמת שגם PHP-- ו, הרבה languages-- המודרני 200 00:09:03,210 --> 00:09:06,920 הם הרבה יותר חכמים ומועילים יותר מ C מהדרים שב 201 00:09:06,920 --> 00:09:09,740 יכול לשים את הפונקציה כאן, אתה יכול לשים את פונקציה כאן למטה, 202 00:09:09,740 --> 00:09:12,740 והמתורגמן הוא הולך לעשות לך טובה והקריאה 203 00:09:12,740 --> 00:09:16,010 כל הקובץ לפני שהוא מחליט כי כמה פונקציה לא קיימת. 204 00:09:16,010 --> 00:09:17,970 אז שיפורים נחמדים שנים מאוחר יותר. 205 00:09:17,970 --> 00:09:22,126 אבל יש גם משהו שונה אחר או נעדר כאן. 206 00:09:22,126 --> 00:09:22,626 כן? 207 00:09:22,626 --> 00:09:25,084 >> תלמיד: [לא ברור]. 208 00:09:25,084 --> 00:09:27,750 דוד י מלאן: אין לנו ל להכריז על סוגי משתנים, 209 00:09:27,750 --> 00:09:31,780 כך נוכל לראות לפני זמן רב ש ישנם סוגים שונים ב- PHP, 210 00:09:31,780 --> 00:09:34,970 אבל אתה לא צריך לציין אותם, שגם הוא טוב וגם רע. 211 00:09:34,970 --> 00:09:36,623 ויש חסר דבר אחד נוספת. 212 00:09:36,623 --> 00:09:37,430 >> תלמיד: אין ספריות. 213 00:09:37,430 --> 00:09:38,630 >> דוד י מלאן: לא נמצא ספריות. 214 00:09:38,630 --> 00:09:39,350 אוקיי, אז זה נחמד. 215 00:09:39,350 --> 00:09:40,540 אנחנו מקבלים הרבה יותר מהקופסה. 216 00:09:40,540 --> 00:09:43,373 אז יש למעשה הרבה יותר דברים ממה שחשבתי היו שונים. 217 00:09:43,373 --> 00:09:44,350 מה דעתך על דרך בגב? 218 00:09:44,350 --> 00:09:46,032 מה זה? 219 00:09:46,032 --> 00:09:46,740 תגיד את זה עוד פעם? 220 00:09:46,740 --> 00:09:47,960 >> תלמיד: פוינטר. 221 00:09:47,960 --> 00:09:49,270 >> דוד י מלאן: לא מצביעים. 222 00:09:49,270 --> 00:09:51,280 אישור, לפחות בדוגמא זו, לא. 223 00:09:51,280 --> 00:09:52,070 זה הוגן. 224 00:09:52,070 --> 00:09:55,090 כך שאין מצביעים ב- PHP למעשה באופן כללי. 225 00:09:55,090 --> 00:09:58,730 ישנן התייחסויות משהו שנקרא, אבל אנחנו לא לבזבז יותר מדי זמן שם. 226 00:09:58,730 --> 00:09:59,520 ומה עוד? 227 00:09:59,520 --> 00:10:00,185 >> תלמיד: ראשי. 228 00:10:00,185 --> 00:10:01,060 דוד י מלאן: ראשי. 229 00:10:01,060 --> 00:10:02,768 אז זה היה ביגי חשבתי. 230 00:10:02,768 --> 00:10:04,660 שים לב שאין נקודת כניסה הראשית. 231 00:10:04,660 --> 00:10:06,525 אתה פשוט להתחיל לכתוב את הקוד שלך. 232 00:10:06,525 --> 00:10:08,400 וזה בעצם הולך להיות יתרון 233 00:10:08,400 --> 00:10:10,560 כאשר אנו מעבר לרגע לשימוש בפועל 234 00:10:10,560 --> 00:10:13,980 מבוססת אינטרנט זה אותה שפה ל תכנות, שעבורו 235 00:10:13,980 --> 00:10:16,580 לא רוצה להיות רק אחד נקודת כניסה. 236 00:10:16,580 --> 00:10:19,980 אנחנו אולי רוצים להיות חבורה של כתובות, חבורה של קבצים שונים 237 00:10:19,980 --> 00:10:22,930 כל לוקח בקלט משתמש והפקת פלט. 238 00:10:22,930 --> 00:10:27,130 >> אבל כאן הוא מאוד מייאש דוגמא שהבטחתי בפעם האחרונה, 239 00:10:27,130 --> 00:10:30,130 כלומר בתיקייה זו כאן, שגיאות כתיב. 240 00:10:30,130 --> 00:10:33,680 אז באיות בקובץ זה, שבו אנו לא לבזבז יותר מדי זמן על, יש 241 00:10:33,680 --> 00:10:37,870 בעצם P-O-R-T porting--. זה פשוט מילת נתונה כאשר, למשל, 242 00:10:37,870 --> 00:10:40,800 לך להמיר משפה אחת למשנהו באופן ידני בדרך כלל. 243 00:10:40,800 --> 00:10:45,680 >> זוהי סבה של מחשב גרסה של איות מPSET 5. 244 00:10:45,680 --> 00:10:48,856 ואני בעצם ניסיתי להמיר קו זה על ידי קו, ככל שאני יכול. 245 00:10:48,856 --> 00:10:51,730 אז אם אתם אוהבים דברים מסוג זה, זה באמת שווה בשלב מסוים 246 00:10:51,730 --> 00:10:54,229 מושך את שניהם צד ב צד ולראות מהו הדבר 247 00:10:54,229 --> 00:10:55,230 ומה שונה. 248 00:10:55,230 --> 00:10:57,510 אבל הם די מעצבנים הזה דומה. 249 00:10:57,510 --> 00:11:00,110 אם אתה זוכר מה איות אפילו נראה כמו, 250 00:11:00,110 --> 00:11:02,110 למרות שאתה לא צריך לשנות את קובץ זה, 251 00:11:02,110 --> 00:11:04,860 זה די דומה מבחינה מבנית עם רק כמה 252 00:11:04,860 --> 00:11:06,200 שינויים פה ושם. 253 00:11:06,200 --> 00:11:10,140 >> אז זה רק אומר שזה די פשוט להמיר איות 254 00:11:10,140 --> 00:11:12,000 מC ל- PHP. 255 00:11:12,000 --> 00:11:15,390 אבל במילון, יש משהו אפילו יותר משכנע. 256 00:11:15,390 --> 00:11:19,270 תן לי להמשיך וליצור קובץ dictionary.php שלי. 257 00:11:19,270 --> 00:11:24,010 אז מעט שונה שב אנחנו קוראים לזה .php במקום .ג. 258 00:11:24,010 --> 00:11:26,980 כיוון שמדובר בקובץ PHP, אני do-- מעט annoyingly-- יש לי 259 00:11:26,980 --> 00:11:30,132 כדי להתחיל את הקובץ עם תג כמו שphp. 260 00:11:30,132 --> 00:11:32,340 ואני הולך קדימה ולהגדיר כמה פונקציות. 261 00:11:32,340 --> 00:11:35,770 פונקציה שנקראת צ'ק, שהוא הולך לקחת במילה כמו לפני. 262 00:11:35,770 --> 00:11:37,520 אבל טענה זו של אצטרך דולר 263 00:11:37,520 --> 00:11:39,840 לחתום כי אנחנו, שוב, באמצעות PHP. 264 00:11:39,840 --> 00:11:42,350 פונקציה נוספת מ dictionary.c היה עומס 265 00:11:42,350 --> 00:11:47,120 וזה לקח בשמו של מילון, אז אני אקבל תפקיד שמוכן ללכת. 266 00:11:47,120 --> 00:11:50,920 >> עוד אחד בdictionary.c היה מה? 267 00:11:50,920 --> 00:11:54,580 גודל היה אחד הרגעים היפים ביותר ב, ב לפחות אם גדלת כמה משתנים בסביבה. 268 00:11:54,580 --> 00:11:57,830 כך גודל פשוט צריך לחזור משתנה. 269 00:11:57,830 --> 00:11:59,090 ואז היה לפרוק. 270 00:11:59,090 --> 00:12:02,830 >> אז היו ארבעה אלה פונקציות בבעיה להגדיר 5 271 00:12:02,830 --> 00:12:06,770 זה שהיית צריך ליישם ב כמה מבנה נתונים או מבנים. 272 00:12:06,770 --> 00:12:10,170 אז הבטחתי שב PHP, אנחנו יכולים להכריז 273 00:12:10,170 --> 00:12:14,490 טבלת חשיש, למשל, כל מה שבקלות רבה יותר. 274 00:12:14,490 --> 00:12:17,377 למעשה, אם אני רוצה שולחן חשיש, אני רק הולך כמו ש 275 00:12:17,377 --> 00:12:18,460 ויש טבלת החשיש שלי. 276 00:12:18,460 --> 00:12:21,555 וזה הפתק, זנב לחבורה, שעזבנו את בפעם האחרונה. 277 00:12:21,555 --> 00:12:23,930 ואתם יודעים מה, אם אני רוצה משתנה לגודל, גם, 278 00:12:23,930 --> 00:12:25,867 זה אחד זה לא הכל שונה מC, 279 00:12:25,867 --> 00:12:27,450 אבל אני הולך להמשיך ולעשות את זה. 280 00:12:27,450 --> 00:12:28,630 ושים לב לא סוג הנתונים. 281 00:12:28,630 --> 00:12:31,180 ואני אחזור מאוחר יותר ו בעצם להוסיף כמה הערות כאן. 282 00:12:31,180 --> 00:12:32,480 אבל מה עם עומס? 283 00:12:32,480 --> 00:12:35,780 >> אם מילון סימן דולר הוא שמו של הקובץ שלי 284 00:12:35,780 --> 00:12:39,600 ואני דווקא רוצה לטעון מילות לשולחן הזה עכשיו, 285 00:12:39,600 --> 00:12:42,360 אני באמת יכול לעשות משהו פשוט למדי. 286 00:12:42,360 --> 00:12:44,880 One-- וזה minorly annoying-- ב- PHP, 287 00:12:44,880 --> 00:12:47,710 אתה צריך לציין בתוך של פונקציה אם אתה 288 00:12:47,710 --> 00:12:51,060 רוצה לגשת לחלק גלובלי משתנה זה מוגדר מחוץ. 289 00:12:51,060 --> 00:12:53,530 >> אבל זה לא במיוחד מעניין עכשיו. 290 00:12:53,530 --> 00:12:57,920 מה מעניין יותר הוא זה עבור כל לבנות שהזכרתי בפעם האחרונה. 291 00:12:57,920 --> 00:13:01,880 ומתברר שPHP יש פונקציה קובץ בשם מטרתו בחיים 292 00:13:01,880 --> 00:13:05,550 הוא לפתוח קובץ ולקרוא ב כל הקווים שלה למערך 293 00:13:05,550 --> 00:13:06,840 ולמסור אותם חזרה ל. 294 00:13:06,840 --> 00:13:12,170 >> כלומר אני יכול לעשות מילון כך כי עכשיו ביעילות כאשר אני קורא קובץ, 295 00:13:12,170 --> 00:13:15,472 זה הולך להחזיר לי מערך של מילות מהקובץ. 296 00:13:15,472 --> 00:13:16,430 זה לא כל כך טוב. 297 00:13:16,430 --> 00:13:20,130 זה עדיין הולך להיות קו מילים, ליניארי משהו. 298 00:13:20,130 --> 00:13:23,880 אבל אני יכול להמשיך ולחזר על כל אחת ממילות אלה באמצעות 299 00:13:23,880 --> 00:13:25,710 תחביר שראינו בפעם האחרונה לזמן קצר. 300 00:13:25,710 --> 00:13:27,940 ואתה רואה את זה יותר בPSET הקרוב. 301 00:13:27,940 --> 00:13:32,070 >> אבל עכשיו יש לי iterating לולאה על כל מילה במילון. 302 00:13:32,070 --> 00:13:36,100 ועל כל איטרציה, זוכר אני קורא את המילה הנוכחית "מילה." 303 00:13:36,100 --> 00:13:39,790 וכל זה הולך לקחת ל לשים מילה למילון זו 304 00:13:39,790 --> 00:13:43,530 הולך להיות מילת ניחוש "נכון." 305 00:13:43,530 --> 00:13:44,740 זה הוספת הפונקציה שלי. 306 00:13:44,740 --> 00:13:46,661 זה פונקצית העומס שלי למילון שלי. 307 00:13:46,661 --> 00:13:49,410 עכשיו זה קצת לרמות, כי, אתה יודע מה, יש למעשה 308 00:13:49,410 --> 00:13:52,920 קו נטוי n של בסוף המילים שאני כנראה צריך להיפטר ממנו, 309 00:13:52,920 --> 00:13:56,380 אבל זה לא בעיה, כי PHP יש קוצצים פונקציה שנקראת שפשוטו כמשמעו 310 00:13:56,380 --> 00:13:58,480 צלעות את הדמות אחת ממש בסוף. 311 00:13:58,480 --> 00:13:59,400 אז אין בעיה. 312 00:13:59,400 --> 00:14:02,199 אנחנו כבר הלכנו קדימה ולמעשה קיצר שרק זה. 313 00:14:02,199 --> 00:14:05,240 ועכשיו אני כנראה צריך לעקוב אחר של גודל, אז בואו לפחות לעשות זה-- 314 00:14:05,240 --> 00:14:05,835 גודל ++. 315 00:14:05,835 --> 00:14:07,339 אני יכול לעשות את זה כמו קודם. 316 00:14:07,339 --> 00:14:10,380 ואז זה כנראה הולך עובד בסדר גמור, כך שנחזור אמיתי. 317 00:14:10,380 --> 00:14:10,930 עשה. 318 00:14:10,930 --> 00:14:11,797 PSET 5. 319 00:14:11,797 --> 00:14:13,545 >> [שחוק] 320 00:14:13,545 --> 00:14:14,420 >> דוד י מלאן: אישור. 321 00:14:14,420 --> 00:14:16,628 אנחנו הולכים לעשות את זה שוב עם PSET הבא, מדי. 322 00:14:16,628 --> 00:14:18,730 אז מה לגבי גודל? 323 00:14:18,730 --> 00:14:22,080 ובכן, זה אחד בתקווה הוא על כפי שהיית מצפה בפעם האחרונה, 324 00:14:22,080 --> 00:14:24,460 למרות שאני חייב לעשות הדבר הגלובלי המטופש הזה. 325 00:14:24,460 --> 00:14:26,610 זה רק חפץ מ העיצוב של השפה. 326 00:14:26,610 --> 00:14:28,450 >> אבל הבדיקה היא קצת יותר מעניינת. 327 00:14:28,450 --> 00:14:31,420 אז אם עברתי בדולר ראשון לחתום מילה, אני 328 00:14:31,420 --> 00:14:34,060 רוצה לקבל גישה ל כי שולחן משתנה גלובלי. 329 00:14:34,060 --> 00:14:36,700 ועכשיו אם אני רוצה לבדוק אם מילה היא שם, 330 00:14:36,700 --> 00:14:44,350 אני פשוט יכול לומר אם זה נכון ש הבא מוגדר בטבלה, 331 00:14:44,350 --> 00:14:49,957 אז קדימה והחזרה אמיתי; אחר, בתמורת שווא. 332 00:14:49,957 --> 00:14:51,180 עשה. 333 00:14:51,180 --> 00:14:52,440 החצי השני של PSET 5. 334 00:14:52,440 --> 00:14:54,540 >> בסדר, אז שוב, אני חיתוך כמה פינות. 335 00:14:54,540 --> 00:14:56,831 למען הגינות, אני כנראה צריך להשקיע עוד כמה שניות 336 00:14:56,831 --> 00:14:58,300 ביישום זה. 337 00:14:58,300 --> 00:15:01,860 ואני בטח לא צריך ללעוג כל שעות לך לשים על PSET כל כך הרבה. 338 00:15:01,860 --> 00:15:04,045 אז strtolower היא פונקציה. 339 00:15:04,045 --> 00:15:06,670 אקזיסטנציאליסטי דומה משהו ב- C, לפחות לדמויות, 340 00:15:06,670 --> 00:15:08,560 אבל PHP של לי גרסת מחרוזת שלמה. 341 00:15:08,560 --> 00:15:11,226 >> זה הולך להכריח את כל מה ש לאותיות קטנות, שחלק מכם 342 00:15:11,226 --> 00:15:14,944 אולי היה עושה לcanonicalize מה אתה מעמיד את במילון שלך. 343 00:15:14,944 --> 00:15:16,360 ועכשיו אתה יכול לעשות את זה ב- C, גם. 344 00:15:16,360 --> 00:15:17,780 אין לזה שום קשר עם PHP. 345 00:15:17,780 --> 00:15:20,260 >> אבל כל זמן שיש לך מצב בוליאנית, 346 00:15:20,260 --> 00:15:22,680 כמו משהו על קו 10 שם, וזה רק 347 00:15:22,680 --> 00:15:27,145 הולך להעריך לנכון או שקר, ואם אחר באופן ברור 348 00:15:27,145 --> 00:15:33,620 חוזר אמת או שקר, שיכולתי פשוט באמת לעשות יותר סקסי 349 00:15:33,620 --> 00:15:38,360 ופשוט לעשות משהו כזה. 350 00:15:38,360 --> 00:15:40,500 כך שיש פונקצית הבדיקה שלי. 351 00:15:40,500 --> 00:15:42,560 נכון אם בוליאנית, מחזיר אמת או שקר, 352 00:15:42,560 --> 00:15:44,630 בואו פשוט נחזיר אותו מייד. 353 00:15:44,630 --> 00:15:47,340 >> ויש כמה שיפורים אחרים אני יכול לעשות פה ושם. 354 00:15:47,340 --> 00:15:51,380 לפרוק Load--, דרך אגב, שזה נעשה. 355 00:15:51,380 --> 00:15:52,850 מה לעשות שם. 356 00:15:52,850 --> 00:15:55,840 מאז בכל הזיכרון ב PHP ושפות רבות אחרות 357 00:15:55,840 --> 00:15:57,570 הוא למעשה הצליח לך. 358 00:15:57,570 --> 00:16:00,330 אז אילו בC, כ שלמדת בכאב, 359 00:16:00,330 --> 00:16:04,700 כל דבר או שאתה malloc או calloc להקצות מחדש, אתה צריך לשחרר את עצמך. 360 00:16:04,700 --> 00:16:08,770 כל דבר שאתה fopen, אתה צריך fclose, כך שמשאבים משוחררים סופו של דבר 361 00:16:08,770 --> 00:16:11,690 וכלים כמו Valgrind לא שמתי לב ולא מתלונן, 362 00:16:11,690 --> 00:16:13,570 וזה דבר טוב לרוץ עליהם. 363 00:16:13,570 --> 00:16:16,190 >> אבל אין ספק, שחייב להיות איזשהו מלכוד, נכון? 364 00:16:16,190 --> 00:16:19,400 אחרת, אנחנו סוג של בזבוז חבורה שלמה של שבועות. 365 00:16:19,400 --> 00:16:23,270 אז יש כל מספר של סיבות למה אנחנו סוג של לקחת מסלול זה, 366 00:16:23,270 --> 00:16:24,440 אבל יש trade-off. 367 00:16:24,440 --> 00:16:25,820 נכון, זה היה נושאיות. 368 00:16:25,820 --> 00:16:29,690 >> אז מה עלול trade-off כאן נע, מC ל- PHP? 369 00:16:29,690 --> 00:16:33,250 מרגיש כאילו כל לנצח עד כה מלבד קצת כיעור כאן או שם. 370 00:16:33,250 --> 00:16:34,040 כן. 371 00:16:34,040 --> 00:16:34,700 מה זה? 372 00:16:34,700 --> 00:16:36,064 >> תלמיד: [לא ברור] זיכרון. 373 00:16:36,064 --> 00:16:36,980 דוד י מלאן: מהירות. 374 00:16:36,980 --> 00:16:37,479 אישור. 375 00:16:37,479 --> 00:16:40,720 ובכן, המהירות שלי הייתה די מהירה. 376 00:16:40,720 --> 00:16:42,020 נכון? 377 00:16:42,020 --> 00:16:44,320 אבל מהירות ביצוע של התכנית? 378 00:16:44,320 --> 00:16:45,580 אוקיי, אז זה נקודה טובה. 379 00:16:45,580 --> 00:16:50,930 >> אז כפי שזה יקרה, אני מראש תשמיע את שניהם פתרון נסה, אחד 380 00:16:50,930 --> 00:16:53,510 היה לי על הלוח הגדול היה פתרון מבוסס ניסיון, 381 00:16:53,510 --> 00:16:55,510 ויש לי שבמדריך זה כאן. 382 00:16:55,510 --> 00:16:58,510 אז ברגע, שאני יכול להמשיך ו להפעיל את זה על המלך ג'יימס התנ"ך, 383 00:16:58,510 --> 00:16:59,657 להכות על Enter. 384 00:16:59,657 --> 00:17:01,990 וזה נכון בתקווה יישום בסוף, 385 00:17:01,990 --> 00:17:05,109 נותן לי זמן בסך הכל של 0.38 שניות של 386 00:17:05,109 --> 00:17:07,270 דוגמא שרירותית אחת. 387 00:17:07,270 --> 00:17:09,270 >> ואם אני עכשיו נכנסתי לזה חלון מסוף שני 388 00:17:09,270 --> 00:17:14,569 כאן המקום שבו נפתח gedit ראשון, תן לי לי ללכת לcode-- היום שבו, שוב, 389 00:17:14,569 --> 00:17:19,650 במדריך זה here-- ו תן לי ללכת קדימה ולהפעיל איות. 390 00:17:19,650 --> 00:17:23,470 אז רק שיהיה ברור, זה הוא גרסת PHP. 391 00:17:23,470 --> 00:17:25,170 אני פשוט מראה את החלק העליון שלה כאן. 392 00:17:25,170 --> 00:17:32,020 >> אז אם אני עושה את האיות של CS50 טילדה 5 טקסטים PSET, המלך ג'יימס, להיכנס. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 זה עדיין מהיר יותר מכתיבה זה ב- C, אבל הזמן הכולל 395 00:17:43,050 --> 00:17:47,650 הוא, הודעה, 0.93, ואילו שלי יישום מבוסס C היה 0.38. 396 00:17:47,650 --> 00:17:49,110 אז זה הבדל לא טריוויאלית. 397 00:17:49,110 --> 00:17:51,100 >> וזו רק בקובץ אחד. 398 00:17:51,100 --> 00:17:53,480 אם היית מפעיל את שני תוכניות מול הלוח הגדול 399 00:17:53,480 --> 00:17:56,510 ויש חבורה של תשומות כל נבדק, זו הייתה ללא ספק להוסיף עד. 400 00:17:56,510 --> 00:18:00,310 ואם היו לנו ערכות נתונים גדולות עוד יותר, זה, יותר מדי, הייתי מוסיף את כל יותר. 401 00:18:00,310 --> 00:18:04,820 אז כן, משלם מחיר כלשהו מהירות הוא אכן המקרה. 402 00:18:04,820 --> 00:18:05,470 מה עוד? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 כן? 405 00:18:08,860 --> 00:18:10,340 >> תלמיד: כמות שימוש זיכרון RAM. 406 00:18:10,340 --> 00:18:11,756 >> דוד י מלאן: הסכום של שימוש זיכרון RAM. 407 00:18:11,756 --> 00:18:15,380 אז לא לתת שנייה אחת חשב בעת כתיבת PHP זה 408 00:18:15,380 --> 00:18:17,300 גרסה עד כמה זיכרון הייתי משתמש בה. 409 00:18:17,300 --> 00:18:22,080 אני דוחה לחלוטין שלPHP עצמו ומי שכתב תכנית ש. 410 00:18:22,080 --> 00:18:24,500 וזה יכול להיות בסדר, אבל אם אני ממש ממש 411 00:18:24,500 --> 00:18:28,420 אכפת לסחוט כמה שיותר ביצועים מתוך התכנית שלי או מאתר האינטרנט שלי 412 00:18:28,420 --> 00:18:31,150 או מתוך מה שכלי אני בונה, אולי 413 00:18:31,150 --> 00:18:33,310 PHP, אכן, הוא לא בשפה הנכונה. 414 00:18:33,310 --> 00:18:36,330 >> ולמעשה, זו הסיבה, ל למשל, servers-- אינטרנט רב 415 00:18:36,330 --> 00:18:38,980 התוכניות בפועל ש לשרת את content-- האינטרנט 416 00:18:38,980 --> 00:18:41,810 לא כתובים ב- PHP או בפייתון או רובי. 417 00:18:41,810 --> 00:18:44,630 הם כתובים, כמו עכשיו אתה תעשה עם PSEt 6, 418 00:18:44,630 --> 00:18:48,120 ב- C, כך שאתה יכול לסחוט כל טיפה של ביצועים מזה 419 00:18:48,120 --> 00:18:50,780 ובאמת לממש את שליטה העדינה תבואה על מה 420 00:18:50,780 --> 00:18:52,980 קורה מתחת ל מכסה המנוע ולא רק לקחת את זה 421 00:18:52,980 --> 00:18:54,890 כמובן מאליו כמה גבוה מבנה נתונים ברמה. 422 00:18:54,890 --> 00:18:58,071 >> לשקול, אחרי הכל, מי ב- PHP מיושם 423 00:18:58,071 --> 00:19:00,070 רעיון זה של חשיש table-- זה בעצם יותר 424 00:19:00,070 --> 00:19:04,260 נקרא array-- אסוציאטיבי כראוי האם הוא או לה מושג איזה סוג 425 00:19:04,260 --> 00:19:07,090 תשומות אתה הולך להיות מכניס לתוך המבנה? 426 00:19:07,090 --> 00:19:08,260 אז ברור שלא, נכון? 427 00:19:08,260 --> 00:19:10,340 זה כלי גנרי בערכת הכלים זה 428 00:19:10,340 --> 00:19:13,430 הניתן לכל מי שרוצה כדי להשתמש בו, וכך אין ספק שזה 429 00:19:13,430 --> 00:19:17,680 לא יכול להיות מותאם סופו של דבר בדיוק את מה שאתה רוצה לעשות. 430 00:19:17,680 --> 00:19:21,180 >> אז אולי זמן פיתוח סחר-offs-- שונה, ביצועים עשויים להיות שונים, 431 00:19:21,180 --> 00:19:23,120 מורכבות או שימוש בזיכרון, עשויות להיות שונה. 432 00:19:23,120 --> 00:19:24,820 ואז מה שאתה תמצא יותר ויותר הוא שיש 433 00:19:24,820 --> 00:19:26,570 הולך להיות שונה כלים למסחר. 434 00:19:26,570 --> 00:19:31,160 ולמעשה למרבית סופר של פרויקטי הגמר של אנשים במעמד הזה, 435 00:19:31,160 --> 00:19:34,360 תאמינו או לא, C לא הולך להיות השפה הנכונה לשימוש. 436 00:19:34,360 --> 00:19:37,880 >> ואכן, אחד מהמזנונים סופו של דבר לכל סוג כזה 437 00:19:37,880 --> 00:19:40,510 הוא לגרום לך לחשוב על, טוב, מה שאתה צריך לשלוף 438 00:19:40,510 --> 00:19:42,710 המדף מתי שאתה רוצה כדי לפתור כמה בעיות. 439 00:19:42,710 --> 00:19:46,720 ואכן, אנחנו נעבור את הגשר הזה אפילו יותר כמו שאנחנו נראים בשפות נוספות 440 00:19:46,720 --> 00:19:47,920 אפילו מעבר להיום. 441 00:19:47,920 --> 00:19:50,530 >> אז בואו מעבר כעת ל אולי הקשר מוכר יותר 442 00:19:50,530 --> 00:19:52,480 לשימוש בשפה כמו PHP. 443 00:19:52,480 --> 00:19:56,720 זה קצת נפוץ לשימוש ב בשורת הפקודה, כתיבת סקריפטים 444 00:19:56,720 --> 00:19:59,050 כמו שאני עשיתי, אבל זה הרבה, הרבה יותר נפוץ. 445 00:19:59,050 --> 00:20:02,350 והוא מיועד לשימוש ב הצורה של קבצים, כי בדרך כלל בסופו של 446 00:20:02,350 --> 00:20:05,060 ב.php-- אבל זה לא prerequisite-- 447 00:20:05,060 --> 00:20:07,990 כי עצמם ליצור תוכן אינטרנט. 448 00:20:07,990 --> 00:20:11,310 >> אז תן לי ללכת קדימה ולפתוח כמה דוגמאות שהכנתי מראש. 449 00:20:11,310 --> 00:20:15,100 ואלה הם למעשה סוג של אמת סיפורים שבאחד הדברים הראשונים 450 00:20:15,100 --> 00:20:18,200 שעשיתי אי פעם לאחר שסיימתי את עצמי CS50 ואולי, אני חושב, 451 00:20:18,200 --> 00:20:21,350 שנות CS51 הוא לפניי שותפה ואני עוזר 452 00:20:21,350 --> 00:20:24,320 כדי להפעיל את הביצוע עצמי הלימודים הראשונה תכנית ספורט, ש, בזמן, 453 00:20:24,320 --> 00:20:28,610 הייתה השנה הראשונה הרשמה לשונה ספורט על ידי מילוי פיסת נייר, 454 00:20:28,610 --> 00:20:31,800 כפי שנקרא, הליכה מעבר לחצר לWigglesworth, 455 00:20:31,800 --> 00:20:34,030 והשחרור בכמה דלת הירידה של המשגיח. 456 00:20:34,030 --> 00:20:37,210 ואז הוא או היא יהיה ב שלהם ואז בעצם שלח לנו דוא"ל באופן ידני 457 00:20:37,210 --> 00:20:39,140 שנרשמנו לכמה ספורט. 458 00:20:39,140 --> 00:20:41,166 >> אז ברור, הזדמנות לשיפור. 459 00:20:41,166 --> 00:20:44,040 בימים אלה, אתה עלול להפוך לפשוט טפסים ב- Google, אך חזרה היום, 460 00:20:44,040 --> 00:20:46,914 היו לנו בעצם להגיע for-- זה אפילו לא כל כך הרבה זמן להגיע ago-- 461 00:20:46,914 --> 00:20:49,410 לתכנות שפה שלא PHP. 462 00:20:49,410 --> 00:20:51,200 באותו הזמן, זה היה משהו שנקרא פרל, 463 00:20:51,200 --> 00:20:52,890 שיצא מהאופנה מאז. 464 00:20:52,890 --> 00:20:54,160 אבל הרעיון הוא אותו. 465 00:20:54,160 --> 00:20:58,940 >> ואני בעצם התיישבתי לנסות לנמל הולך גרסאות Perl ל- PHP, 466 00:20:58,940 --> 00:21:03,710 אבל בויתור מלא, לא נתן לי כל חשבו לאסתטיקה עדיין. 467 00:21:03,710 --> 00:21:04,960 אז הנה דף אינטרנט. 468 00:21:04,960 --> 00:21:05,670 מקורו של קובץ. 469 00:21:05,670 --> 00:21:09,470 אם אני להתקרב,, ככל הנראה, froshim0.php נקרא 470 00:21:09,470 --> 00:21:12,060 רק בגלל שזה ראשון שלנו למשל בסדרה זו. 471 00:21:12,060 --> 00:21:15,970 ושים לב שיש לה את מה שנראה להיות טופס HTML מכוער מאוד, 472 00:21:15,970 --> 00:21:18,680 אבל צורה מעניינת משום שהיא מאפשרת 473 00:21:18,680 --> 00:21:21,910 שלי לספק קלט משתמש לדפדפן. 474 00:21:21,910 --> 00:21:27,730 >> עכשיו בפעם האחרונה שהיינו לנו צורה, ל מי עשיתי לנו להגיש פרמטר השאילתה שלנו, 475 00:21:27,730 --> 00:21:30,450 פרמטר התור כפי שנקרא? 476 00:21:30,450 --> 00:21:31,330 אז לגוגל, נכון? 477 00:21:31,330 --> 00:21:34,090 אנחנו לגמרי חתרנו במוט על הרעיון של עושה שום דבר עם קלט ש. 478 00:21:34,090 --> 00:21:36,160 >> אבל היום, אנחנו מתחילים לייצר תפוקה. 479 00:21:36,160 --> 00:21:39,420 וההתנהגות שאני הולך לראות כאן בתחילה הוא די טריוויאלי. 480 00:21:39,420 --> 00:21:42,980 דוד, אני אבדוק את מין כאן, אומר מתיוס כאן. 481 00:21:42,980 --> 00:21:43,800 אני לא אהיה קפטן. 482 00:21:43,800 --> 00:21:45,410 אני הולך ללחוץ רישום. 483 00:21:45,410 --> 00:21:50,720 ושים לב שיש לו את כתובת האתר השתנה להירשם-0.php, 484 00:21:50,720 --> 00:21:52,310 ואז יש הטקסט המכוער הזה כאן. 485 00:21:52,310 --> 00:21:54,460 לא הקדשתי כל מחשבה ל העיצוב של זה. 486 00:21:54,460 --> 00:21:59,900 >> אבל מה שמעניין הוא שלוש ש הערכים הועברו ככל הנראה ב. 487 00:21:59,900 --> 00:22:02,960 זהו הסוג של של PHP שווה ערך לprintf-- 488 00:22:02,960 --> 00:22:06,330 נראה מה זה באמת נקרא בbit-- שרק מדפיס 489 00:22:06,330 --> 00:22:08,300 מה שאתה עבר לתוכה. 490 00:22:08,300 --> 00:22:11,414 אז זה מצביע על כך שצורה היו לפחות שלושה שדות לזה, 491 00:22:11,414 --> 00:22:12,580 ואתה ראית אותי להקליד אותם. 492 00:22:12,580 --> 00:22:15,739 אחד מהם היה השם שלי, אחד היה מין, אחד היה מגורים. 493 00:22:15,739 --> 00:22:18,780 וקפטן אפילו לא נשלח ל השרת כי אני לא בדקתי את זה. 494 00:22:18,780 --> 00:22:22,150 >> אז זה אומר כנראה, כשאתה מגיש את הדברים באינטרנט, 495 00:22:22,150 --> 00:22:26,830 לא רק עושה את כתובת האתר לפעמים change-- לפעמים לא. 496 00:22:26,830 --> 00:22:30,330 למעשה, שם הקובץ השתנה, אבל מה שנעדר מאת כתובת האתר 497 00:22:30,330 --> 00:22:32,861 כי אנחנו לא רואים בפעם האחרונה עם גוגל. 498 00:22:32,861 --> 00:22:33,360 כן? 499 00:22:33,360 --> 00:22:34,380 >> סטודנט: לא מחרוזת שאילתא 500 00:22:34,380 --> 00:22:35,220 >> דוד י מלאן: אין מחרוזת שאילתא. 501 00:22:35,220 --> 00:22:37,270 אין משהו סימן שאלה. 502 00:22:37,270 --> 00:22:40,050 אין q סימן שאלה שווה חתולים, כפי שעשינו בפעם האחרונה. 503 00:22:40,050 --> 00:22:42,170 ובוודאי אין שם סימן שאלה שווה 504 00:22:42,170 --> 00:22:46,310 דוד או במעונות שווה מתיוס, אז איפה שכולם הולכים? 505 00:22:46,310 --> 00:22:51,290 >> ובכן, תן לי לחזור לgedit כאן ולפתוח הראשון של קבצים אלה 506 00:22:51,290 --> 00:22:57,020 בvhost שלי, מארח מקומי, ציבורי ספרייה כאן ולהיכנס לfroshim0. 507 00:22:57,020 --> 00:23:02,060 אז מתברר שכמעט כל דף זה הוא רק HTML. 508 00:23:02,060 --> 00:23:05,410 וזה בלתי מוכר לך, אבל זה יהיה בקרוב יותר עם PSET 6 509 00:23:05,410 --> 00:23:07,370 וPSET 7 וPSET 8. 510 00:23:07,370 --> 00:23:09,160 אבל זה רק דף HTML. 511 00:23:09,160 --> 00:23:12,400 >> והדברים המעניינים נראה שיש כאן. 512 00:23:12,400 --> 00:23:16,290 תג צורת פעולה שתכונה יש לו ערך של אוגר 0. 513 00:23:16,290 --> 00:23:18,890 זו הסיבה שכאשר אני מגיש זה, זה הולך לקובץ ש. 514 00:23:18,890 --> 00:23:20,620 אבל שיטה היא שלאחר today-- שונה. 515 00:23:20,620 --> 00:23:23,120 אז מתברר שיש לפחות שתי שיטות באינטרנט בשימוש 516 00:23:23,120 --> 00:23:24,911 כדי לשלוח מידע מדפדפן לשרת. 517 00:23:24,911 --> 00:23:25,980 קבל מנסח זאת ב- URL. 518 00:23:25,980 --> 00:23:27,950 ההודעה מעמידה אותו במקום אחר. 519 00:23:27,950 --> 00:23:30,570 ומתי ומדוע ייתכן ש באמת רוצה אתר אינטרנט 520 00:23:30,570 --> 00:23:34,110 להשתמש פוסט אז במקום של לקבל, רק באופן אינטואיטיבי? 521 00:23:34,110 --> 00:23:37,080 כל אתר אינטרנט. 522 00:23:37,080 --> 00:23:42,010 איזה סוג נתונים יש חלף לפי מסקנה עכשיו באמצעות הודעה בניגוד 523 00:23:42,010 --> 00:23:45,184 כדי לקבל, אם ראינו שני ההבדלים? 524 00:23:45,184 --> 00:23:46,350 תלמיד: [לא ברור] לאבטח. 525 00:23:46,350 --> 00:23:47,790 דוד י מלאן: אם אתה רוצה משהו כדי להיות בטוח. 526 00:23:47,790 --> 00:23:50,360 אז תוכל להקליד את הסיסמה לאתר, כרטיס אשראי 527 00:23:50,360 --> 00:23:53,030 לאתר היית סוג של תת-אופטימלי אלה 528 00:23:53,030 --> 00:23:56,220 אם הדפדפן של לשים את זה ערך הפנימי של כתובת האתר. 529 00:23:56,220 --> 00:23:57,680 למה? 530 00:23:57,680 --> 00:24:00,059 אתה רואה את זה, שלא נראה שיש לו עניין גדול, 531 00:24:00,059 --> 00:24:03,350 אבל רוב הסיכויים הם שדי לעתים קרובות ללכת רחוק מהמחשב המחשב או שימוש שלך 532 00:24:03,350 --> 00:24:05,310 מעבדות, ואז מישהו אחר או אפילו שותף לדירה 533 00:24:05,310 --> 00:24:08,220 בקלות יכל לגשת ולראות שמידע פרטי. 534 00:24:08,220 --> 00:24:10,220 כאשר אתה שולח דואר אלקטרוני דרך האינטרנט, אתה כנראה 535 00:24:10,220 --> 00:24:12,350 לא רוצה שסוף הנתונים בכתובת האתר גם כן. 536 00:24:12,350 --> 00:24:15,266 ולכן יש כל מספר של סיבות מדוע אנו עשויים רוצים לשים את זה כאן. 537 00:24:15,266 --> 00:24:18,610 אפילו ותקין photos--, אני לא ממש יכול דמיינו כיצד אתם היו לוקחים גרפיים, 538 00:24:18,610 --> 00:24:21,480 כמו JPEG, והכניס אותו לכתובת אתר. 539 00:24:21,480 --> 00:24:22,330 אתה יכול לעשות את זה. 540 00:24:22,330 --> 00:24:25,840 יש דרכים לקידוד זה, אבל זה פשוט לא פשוט כמו ש. 541 00:24:25,840 --> 00:24:29,030 >> אז לרשום 0 הוא למעשה מאוד משעמם. 542 00:24:29,030 --> 00:24:31,610 כל זה אומר, פשוטו כמשמעו, הוא זו. 543 00:24:31,610 --> 00:24:35,910 היא מדפיסה את חלק פנימי של חלק תגי HTML הבא. 544 00:24:35,910 --> 00:24:38,640 יש לי תג PHP כאן מקונן בתוך של תג מראש. 545 00:24:38,640 --> 00:24:42,300 "מראש" רק אומר שטקסט מעוצב מראש, מונו ברווח, כמו מכונת כתיבה. 546 00:24:42,300 --> 00:24:44,836 >> Printr היא פונקציה רקורסיבית הדפסה. 547 00:24:44,836 --> 00:24:46,710 ויש גם את זה דבר מעניין כאן. 548 00:24:46,710 --> 00:24:48,835 ואנחנו נחזור לזה בגלל שיש לאחרים, 549 00:24:48,835 --> 00:24:51,140 אבל קו תחתון סימן דולר הודעה נראית 550 00:24:51,140 --> 00:24:56,110 משתנה ב- PHP שבו כל דבר אתה שולח מדפדפן לשרת 551 00:24:56,110 --> 00:24:58,040 מקבל מאוחסן בשבילך. 552 00:24:58,040 --> 00:25:00,930 ונראה איך להגיע ב שמידע לא עבר זמן רב. 553 00:25:00,930 --> 00:25:04,000 >> אבל קודם, בואו נחזור ל דוגמא מעט שונה. 554 00:25:04,000 --> 00:25:09,050 הולך לregister-- או ולא, froshims1.php, 555 00:25:09,050 --> 00:25:10,470 שנראה קצת שונה. 556 00:25:10,470 --> 00:25:12,670 לקחתי קצת יותר מאמץ עם עיצוב, 557 00:25:12,670 --> 00:25:14,370 למרות שזה עדיין די מכוער. 558 00:25:14,370 --> 00:25:16,990 אבל אני הולך קדימה והקלד "דוד" עכשיו. 559 00:25:16,990 --> 00:25:17,850 זכר. 560 00:25:17,850 --> 00:25:19,360 אנחנו נבדוק את "קפטן" זה זמן. 561 00:25:19,360 --> 00:25:20,660 אנחנו נעשה את מתיוס. 562 00:25:20,660 --> 00:25:22,430 ולהירשם. 563 00:25:22,430 --> 00:25:24,110 >> והפעם זה אומר, HM, לא ממש. 564 00:25:24,110 --> 00:25:26,180 בסדר, אז מה לרשום 1? 565 00:25:26,180 --> 00:25:30,509 תן לי ללכת לקופה פתוחה 1 HM and--. 566 00:25:30,509 --> 00:25:32,300 בסדר, אז זה , וזה מעניין 567 00:25:32,300 --> 00:25:34,880 הוא קרש קפיצה עכשיו ל תוכניות מעניינות יותר. 568 00:25:34,880 --> 00:25:38,970 >> שים לב שהחלק העליון של קובץ זה יש תג PHP, כמו גם כמה הערות. 569 00:25:38,970 --> 00:25:42,590 ואלה, לעת עתה, הסחת דעת אז בואו פשוט להיפטר מאלה הערות 570 00:25:42,590 --> 00:25:47,070 בדיוק כמו שהם בג ואני טוען עם נתח זה של קוד עם תגובה 571 00:25:47,070 --> 00:25:49,280 שהקוד הזה הוא אימות ההגשה. 572 00:25:49,280 --> 00:25:51,690 >> ובכן, מתברר ש משתנים כמו סימן דולר 573 00:25:51,690 --> 00:25:53,739 מדגיש פוסט הם נקרא globals סופר. 574 00:25:53,739 --> 00:25:55,530 הם כמו אלה משתנים הגלובליים מיוחדים 575 00:25:55,530 --> 00:25:58,840 כי הם פשוט Omni-כיום זמין בתוך התכנית שלך. 576 00:25:58,840 --> 00:26:03,870 ואתה יכול להשתמש בסימון סוגריים מרובע למדד לא באמצעות מספרים 577 00:26:03,870 --> 00:26:07,460 כמו 0, 1, 2, 3, אבל מילים עצמן. 578 00:26:07,460 --> 00:26:12,100 >> אז אתה יכול לחשוב על סימן דולר מדגיש שלאחר כסוג של טבלת חשיש 579 00:26:12,100 --> 00:26:15,920 כי אתה יכול לעבור מפתח ל, בדיקה מילה שבין סוגריים מרובעים, 580 00:26:15,920 --> 00:26:19,370 וזה הולך להחזיר אותך ערך שהמשתמש סיפק למעשה. 581 00:26:19,370 --> 00:26:21,210 PHP יש פונקציה נקרא ריק שרק 582 00:26:21,210 --> 00:26:23,720 אומר כן או לא, זה משתנה ריק או שלא. 583 00:26:23,720 --> 00:26:27,250 יש לנו הברים כפולים הללו, שרק אומר או, כמו בג 584 00:26:27,250 --> 00:26:31,740 >> אז למעשה, קו זה 4 הוא רק אומר אם המשתמש לא נתן שם 585 00:26:31,740 --> 00:26:36,540 או לא לתת מין או לא לתת מעונות, קדימה ולהפנות אותו 586 00:26:36,540 --> 00:26:38,184 או שלה באמצעות הקו הזה כאן. 587 00:26:38,184 --> 00:26:40,600 אז זה קצת סתום, אבל זה רק אומר, פשוטו כמשמעו, 588 00:26:40,600 --> 00:26:43,330 לחזור למיקום זה, כך שסירות המשתמש 589 00:26:43,330 --> 00:26:45,420 בחזרה לכל מקום שהוא או היא באה. 590 00:26:45,420 --> 00:26:47,880 אבל זה קצת לא אלגנטי שבמקודד קשה זה. 591 00:26:47,880 --> 00:26:52,150 >> אבל מה אם זה אם מצב לא מעריך לנכון? 592 00:26:52,150 --> 00:26:55,790 מה אם המשתמש נתן לו או שמה ומעונות ומין? 593 00:26:55,790 --> 00:26:58,540 שאם מצב לא הולך להעריך לנכון, 594 00:26:58,540 --> 00:27:00,650 אז אני לא פגע ביציאה בקו 7. 595 00:27:00,650 --> 00:27:01,680 אז מה קורה? 596 00:27:01,680 --> 00:27:03,880 וזה מה שזה מעניין על PHP. 597 00:27:03,880 --> 00:27:07,470 >> אתם יכולים להוריד לתוך ומחוץ של מצב PHP, אם אפשר לומר כך. 598 00:27:07,470 --> 00:27:10,985 אם אתה רוצה קצת קוד לביצוע, אתה יכול לפתוח ולסגור תג PHP 599 00:27:10,985 --> 00:27:13,010 ולשים את הקוד שם כמו שעשיתי כאן. 600 00:27:13,010 --> 00:27:16,810 ברגע שאתה סוגר תג PHP, השרת 601 00:27:16,810 --> 00:27:19,407 הוא רק הולך לירוק מה לשים לך שם. 602 00:27:19,407 --> 00:27:21,740 ואכן, זה היה חלק מ העיצוב המקורי של PHP, 603 00:27:21,740 --> 00:27:25,280 לטוב ולרע, היה זה ערבוב של קוד וסימון 604 00:27:25,280 --> 00:27:25,920 שפה. 605 00:27:25,920 --> 00:27:28,670 ונראה שזה מאוד מוטל במהירות לתוך בלגן. 606 00:27:28,670 --> 00:27:31,280 וכך יהיה לנו לעשות טוב יותר מ זה סופו של דבר, אבל רק 607 00:27:31,280 --> 00:27:35,620 תבחין הקלות שבה אני תוכל למעשה לבצע קצת היגיון. 608 00:27:35,620 --> 00:27:37,440 >> אבל עדיין קצת משעמם. 609 00:27:37,440 --> 00:27:41,210 בואו לפתוח את גרסה שניים מהפרוש IMs, ש 610 00:27:41,210 --> 00:27:44,270 כנראה מגיש לregister2.php. 611 00:27:44,270 --> 00:27:47,600 אז בקובץ זה באמת קורה להיראות כמעט זהה. 612 00:27:47,600 --> 00:27:50,780 אני הולך ללכת לפרוש IMs 2. 613 00:27:50,780 --> 00:27:53,050 אבל בפרוש IMs 2, בואו לראות מה קורה. 614 00:27:53,050 --> 00:27:58,110 >> דוד, לחץ על לחצן האפשרויות, כ זה נקרא; מתיוס, לא קפטן. 615 00:27:58,110 --> 00:27:59,230 הרשם. 616 00:27:59,230 --> 00:28:00,130 אתה רושמים. 617 00:28:00,130 --> 00:28:00,700 לא ממש. 618 00:28:00,700 --> 00:28:02,574 אה רגע, אנחנו פשוט לא דוגמא ש, לא עשיתי לנו? 619 00:28:02,574 --> 00:28:04,520 בסדר, עומדים על. 620 00:28:04,520 --> 00:28:06,602 אנחנו נעשה את השלושה. 621 00:28:06,602 --> 00:28:08,560 ברור שמשהו עומד לקרות עם Gmail. 622 00:28:08,560 --> 00:28:09,600 אנחנו נגיע לשם. 623 00:28:09,600 --> 00:28:11,900 >> אז פרוש IMs 3 נראה כך. 624 00:28:11,900 --> 00:28:13,050 שונה אין. 625 00:28:13,050 --> 00:28:19,850 אבל כשאני עושה דוד, זכר, מתיוס, ו לרשום, גרסה שלישית ואחרונה זה 626 00:28:19,850 --> 00:28:22,230 טענות, בפשטות, אתה רשומים באמת. 627 00:28:22,230 --> 00:28:23,560 זה סוג של שאינו מהותי. 628 00:28:23,560 --> 00:28:25,600 אבל אני טוען שעם זה גרסה שלישית ואחרונה 629 00:28:25,600 --> 00:28:30,610 יש לי עכשיו מחדש בדיוק את מה ששלי שותפה ואני בניתי לIMs הפרוש 630 00:28:30,610 --> 00:28:31,731 שנות תכנית לפני. 631 00:28:31,731 --> 00:28:32,480 וזה היה פשוט. 632 00:28:32,480 --> 00:28:34,330 לא היו שום בסיס הנתונים, אין גיליון אלקטרוני של Excel. 633 00:28:34,330 --> 00:28:36,450 אבל יותר חשוב, לא היה יותר נייר 634 00:28:36,450 --> 00:28:42,520 בגלל מה שעשינו עם תכנית זו היה למעשה לדוא"ל המשגיח, ש 635 00:28:42,520 --> 00:28:44,530 היה מקבל בעבר את הדברים האלה באמצעות טפסים. 636 00:28:44,530 --> 00:28:48,890 >> וכנראה אנחנו מתוכנתים ב כך שכאשר מישהו רושם, 637 00:28:48,890 --> 00:28:52,470 המיילים חשבונו של ג'ון הרווארד proctor-- או את עצמו במקרה זה, 638 00:28:52,470 --> 00:28:55,960 ג'ון Harvard-- עם הבא text-- "אדם זה רק רשום." 639 00:28:55,960 --> 00:29:00,560 שם הוא דוד, קפטן הוא ריק; מין, גברי; ומעונות, מתיוס. 640 00:29:00,560 --> 00:29:01,560 >> אז מה קרה שם? 641 00:29:01,560 --> 00:29:05,360 ובכן, הקובץ מדובר כאן הוא register3.php כנראה. 642 00:29:05,360 --> 00:29:09,080 ואם אני פותח את זה, תראה גם את הכח של קוד כזה 643 00:29:09,080 --> 00:29:12,380 וגם, למען האמת, חוסר הביטחון של מערכת כמו דואר אלקטרוני. 644 00:29:12,380 --> 00:29:16,290 יש לי רק ביעילות העמיד פנים ש להיות ג'ון הרווארד בדרך הבאה. 645 00:29:16,290 --> 00:29:20,920 >> יש לי את תג PHP הפתוח למעלה, ש רק אומר כאן מגיע חלק קוד PHP. 646 00:29:20,920 --> 00:29:23,155 כאן למטה, מסתבר שיש ספריות ב- PHP. 647 00:29:23,155 --> 00:29:26,410 אתה פשוט לא צריך כולל קבצי כותרת באותה מידה. 648 00:29:26,410 --> 00:29:28,900 אתה מקבל יותר עם כיור מטבח, אם אפשר לומר כך. 649 00:29:28,900 --> 00:29:31,820 >> אבל הפעם בשורה 4, אני עושה רוצה ספרייה מיוחדת שנקראת 650 00:29:31,820 --> 00:29:36,087 מיילר PHP, וזה משהו שאתה יכול להתקין בחינם במערכות רבות. 651 00:29:36,087 --> 00:29:37,920 כאן אני מאמת ההגשה רק 652 00:29:37,920 --> 00:29:40,540 על ידי בדיקה האם המשתמש נותן לי שם, מין, ומעונות. 653 00:29:40,540 --> 00:29:44,130 ואם כן, קדימה, מופע מיילר. 654 00:29:44,130 --> 00:29:47,020 >> אתה יכול לחשוב על זה כעל שורת קוד שפשוט מקצה. 655 00:29:47,020 --> 00:29:48,950 זה כמו malloc, אבל זה קצת יותר סקסי 656 00:29:48,950 --> 00:29:51,790 שבאתה מזכיר לא רק malloc וחלק מספר גנרי. 657 00:29:51,790 --> 00:29:55,030 אתה אומר לי אחד מהם, לתת לי אחד חדש של אלה. 658 00:29:55,030 --> 00:29:57,950 >> ואם אתה כבר מתוכנת ב Java או C ++ או בשפות אחרות, 659 00:29:57,950 --> 00:29:59,130 ייתכן שראית את זה. 660 00:29:59,130 --> 00:30:01,840 אבל הקצר שלו, אם , קו לא מוכר זה 661 00:30:01,840 --> 00:30:05,410 מכניס את דואר סימן דולר struct מיוחד הנקרא 662 00:30:05,410 --> 00:30:08,731 אובייקט שמובנה ב פונקציונלי דוא"ל. 663 00:30:08,731 --> 00:30:10,355 ואכן, לב ותחביר דומה. 664 00:30:10,355 --> 00:30:11,900 >> זה לא מצביע, כשלעצמו. 665 00:30:11,900 --> 00:30:13,990 PHP פשוט משתמש באותו התחביר. 666 00:30:13,990 --> 00:30:17,660 קו זה אומר שימוש העברת דואר אלקטרוני SMTP-- 667 00:30:17,660 --> 00:30:20,900 פרוטוקול, שהוא רק פרוטוקול המשמש לשליחת דואר אלקטרוני. 668 00:30:20,900 --> 00:30:24,240 זה המפרט שימוש שרת SMTP של אוניברסיטת הרווארד, ש 669 00:30:24,240 --> 00:30:25,830 הוא איפשהו כאן בקמפוס. 670 00:30:25,830 --> 00:30:28,480 >> שזה אומר מה TCP מספר יציאה לדבר, 671 00:30:28,480 --> 00:30:31,650 ואני פשוט הבנתי שעל ידי googling או על ידי לשאול את מחלקת התמיכה. 672 00:30:31,650 --> 00:30:34,640 ולאחר מכן בגלל הרווארד משתמשת בכמה אבטחה במערכת על server-- הדואר 673 00:30:34,640 --> 00:30:37,060 לפחות כדי להצפין תנועה בינך לבינו, 674 00:30:37,060 --> 00:30:41,380 למרות שכל אחד יכול לשלוח לit-- אני הולך להפעיל את פרוטוקול TLS 675 00:30:41,380 --> 00:30:42,710 לשמירה על זה מאובטח. 676 00:30:42,710 --> 00:30:44,730 >> אבל זה שבו דברים לקבל קצת מפחיד. 677 00:30:44,730 --> 00:30:47,970 אני יכול רק באופן שרירותי להגיד שאני jharvard, 678 00:30:47,970 --> 00:30:51,930 ואני יכול רק באופן שרירותי שלח את עצמי כאן. 679 00:30:51,930 --> 00:30:55,650 ואז אני יכול לציין נושא עם הקו הזה כאן. 680 00:30:55,650 --> 00:30:58,460 >> וזה פשוט נראה מכוער, אבל זה פשוט חבורה של שרשור. 681 00:30:58,460 --> 00:31:04,480 מתברר PHP יש סמל סופר שימושי, כמו כמה שפות, מפעיל הנקודה, 682 00:31:04,480 --> 00:31:07,340 שרק, פשוטו כמשמעו, משרשר מחרוזת אחרי מחרוזת אחרי מחרוזת, 683 00:31:07,340 --> 00:31:09,810 ואין לך לmalloc או דמות מתוך האורך הכולל של המחרוזת. 684 00:31:09,810 --> 00:31:10,820 אתה פשוט עושה את זה. 685 00:31:10,820 --> 00:31:15,220 ואכן, בגלל שאני שרשור בכל הדברים האלה עם נקודות אלה, 686 00:31:15,220 --> 00:31:18,330 זו הסיבה שאני הדואר האלקטרוני נשלח נראה כפי שהוא עשה. 687 00:31:18,330 --> 00:31:20,610 >> ואז לבסוף כאן, אני שולח דואר. 688 00:31:20,610 --> 00:31:22,580 אז אם זה שקר, אני רק הולך למות, 689 00:31:22,580 --> 00:31:25,680 שהיא פונקציה שרק מדפיס למסך כמה הודעת שגיאה. 690 00:31:25,680 --> 00:31:29,170 אבל זה, למעשה, קריאה לפונקצית send. 691 00:31:29,170 --> 00:31:31,780 אחרת, אם כל זה לא מצליח, זה מפנה אותי בחזרה לכאן. 692 00:31:31,780 --> 00:31:34,050 >> ולמה אני לא רואה את זה אני רשום באמת? 693 00:31:34,050 --> 00:31:36,110 ובכן, זה קרה ממש כאן. 694 00:31:36,110 --> 00:31:38,170 אז אני מביא את זה ל כמה סיבות. 695 00:31:38,170 --> 00:31:41,542 >> אחד, זה בדיוק איך אם לבנות איזה אתר לפרויקט גמר 696 00:31:41,542 --> 00:31:44,000 או לעולם האמיתי, זה הוא איך אתה שולח תזכורות בדואר אלקטרוני 697 00:31:44,000 --> 00:31:45,924 ללקוחות שלך או למנויים שלך. 698 00:31:45,924 --> 00:31:47,590 זה איך אתה שולח תזכורות סיסמא. 699 00:31:47,590 --> 00:31:50,760 זה איך אתה שולח הודעות לאנשים שיש להם פייסבוק חדש 700 00:31:50,760 --> 00:31:52,990 הודעה תלויה ועומדת או משהו כזה. 701 00:31:52,990 --> 00:31:55,010 >> אבל הוא גם מדבר ל העובדה שזה יכול 702 00:31:55,010 --> 00:31:58,160 היה טוב מאוד מ דווין או כל אחד אחר. 703 00:31:58,160 --> 00:32:00,567 ואני אומר מסוג זה בחיוך כי אני 704 00:32:00,567 --> 00:32:03,400 די בטוח מה קורה ב כמה מהמוחין שלך בשלב זה. 705 00:32:03,400 --> 00:32:11,910 אבל זה אחד מאותם יעשה מה שאני אומר, לא כמו שאני עושה סוג של דברים, 706 00:32:11,910 --> 00:32:14,480 בגלל זה טריוויאלי ל לזייף מיילים כאלה. 707 00:32:14,480 --> 00:32:16,480 אבל כפי שאתה יכול לראות או לקרוא בCrimson, 708 00:32:16,480 --> 00:32:18,271 לאחרונה זה גם די טריוויאלי לאנשים 709 00:32:18,271 --> 00:32:20,050 לאתר אותם חזרה לחלק מוצא. 710 00:32:20,050 --> 00:32:23,790 ושואל אותי כמה זמן, אולי בארוחת הצהריים CS50, איך אני ראשון 711 00:32:23,790 --> 00:32:27,080 התוודע מקרוב מאוד כמעט לשנים רבות עורך הלוח 712 00:32:27,080 --> 00:32:30,890 לפני כאשר גיליתי איך האינטרנט עובד. 713 00:32:30,890 --> 00:32:36,940 אז בכל מעט case-- לאחר לוח אד עשה. 714 00:32:36,940 --> 00:32:42,300 >> אז בכל מקרה, יש כל חבורה של globals סופר, 715 00:32:42,300 --> 00:32:45,960 כפי שהם מכונים כאן, שאחד מהם אנו saw-- פוסט תחתון סימן דולר. 716 00:32:45,960 --> 00:32:49,530 יש מקבילה בשם גט, מקום שבו דברים מכתובה URL 717 00:32:49,530 --> 00:32:50,690 בסופו הולך. 718 00:32:50,690 --> 00:32:54,051 ויש חבורה של אחרים כל, מושב too-- ושרת ועוגייה. 719 00:32:54,051 --> 00:32:55,800 אנחנו נחזור ל עוגייה בפעם אחרת, 720 00:32:55,800 --> 00:33:01,340 אבל פגישה היא סוג של מגניב משום שזכות now-- עד now-- 721 00:33:01,340 --> 00:33:06,350 כל מה שעשינו עם דפדפן אינטרנט הוא סוג של חסר אזרחות, אם אפשר לומר כך. 722 00:33:06,350 --> 00:33:10,060 אני יכול ללחוץ סביב, גישה קבצים בשרת, משהו 723 00:33:10,060 --> 00:33:13,500 קורה על המסך, אבל אז החיבור נסגר. 724 00:33:13,500 --> 00:33:17,450 Internet Explorer או סמל פיירפוקס מפסיק להסתובב 725 00:33:17,450 --> 00:33:20,340 ואתה פשוט רואה מה ש כי דף האינטרנט מכיל. 726 00:33:20,340 --> 00:33:23,530 >> אז HTTP הוא חסר שב ברגע שזה הופך את חיבור, 727 00:33:23,530 --> 00:33:25,050 יקבל קצת נתונים, זהו זה. 728 00:33:25,050 --> 00:33:29,940 לא עוד קשר, שלא כמו סקייפ, שלא כמו FaceTime, Gchat כלשהו בניגוד, ש 729 00:33:29,940 --> 00:33:32,180 שומר מתמיד חיבור לשרת. 730 00:33:32,180 --> 00:33:34,650 האינטרנט הוא ביסודו מנותק, אם כי אנחנו 731 00:33:34,650 --> 00:33:36,630 רואה לפני זמן רב איך אנו יכולים לדמות דברים 732 00:33:36,630 --> 00:33:39,300 כמו צ'אט של פייסבוק וGchat כלשהו, אשר לשמור illusion-- 733 00:33:39,300 --> 00:33:41,680 או בעצם לעשות לשמור חיבור קבוע באמצעות 734 00:33:41,680 --> 00:33:43,270 טכנולוגיה מודרנית יותר. 735 00:33:43,270 --> 00:33:49,000 >> אבל אם אני הולך ל, אומר, counter.php, זה עוד דוגמא פשוטה, 736 00:33:49,000 --> 00:33:52,700 כפי שנראה, שחושב כיום ביקרתי בזמן אפס האתר. 737 00:33:52,700 --> 00:33:56,790 אבל אם אני פשוט לטעון את הדף, זה איכשהו יודע שהייתי כאן לפני. 738 00:33:56,790 --> 00:33:58,840 אם אני לטעון מחדש שוב, זה יודע שהייתי כאן לפני. 739 00:33:58,840 --> 00:34:01,100 ושוב ושוב ושוב ושוב. 740 00:34:01,100 --> 00:34:03,610 >> אז יש כמה בתוספת-plussing קורה, אבל הודעה 741 00:34:03,610 --> 00:34:07,090 הדבר הקטן ספינים אי פעם כל כך בקצרה למעלה ולאחר מכן מתנתק, 742 00:34:07,090 --> 00:34:11,179 אז זה לא שיש לי קבוע חיבור למכשיר שלי. 743 00:34:11,179 --> 00:34:16,929 ובכן, אם אני נכנסתי לcounter.php, שם לב כמה זה פשוט. 744 00:34:16,929 --> 00:34:19,080 אני קורא לזה ראשון מיוחד פונקציה שבקרוב 745 00:34:19,080 --> 00:34:21,513 להתחיל לקחת כמובן מאליו נקרא תחילת פגישה. 746 00:34:21,513 --> 00:34:22,179 התחל הפעלה. 747 00:34:22,179 --> 00:34:25,095 >> ומושב מעתה ואילך רק הולך להיות דלי, כמו קניות 748 00:34:25,095 --> 00:34:28,120 עגלה שבו אתה יכול לשים את הערכים וסוג של אמון כמתכנת 749 00:34:28,120 --> 00:34:31,590 שהם הולכים להיות כאן כש משתמש שמגיע back-- שני 750 00:34:31,590 --> 00:34:35,670 מאוחר יותר, שעה לאחר מכן, גם בשנה שלאחר מכן, כל עוד הוא או היא עושה לא ברור 751 00:34:35,670 --> 00:34:37,602 העוגיות שלהם, כפי שאנו רואים את סופו של דבר. 752 00:34:37,602 --> 00:34:39,310 ועכשיו יש לי רק אם מצב כאן. 753 00:34:39,310 --> 00:34:44,679 אז אם המפתח הבא, דלפק נקרא, מוגדר בתוך 754 00:34:44,679 --> 00:34:49,210 של סופר זה global-- חשיש זה שולחן, אם אתה will-- מושב נקרא, 755 00:34:49,210 --> 00:34:53,350 אז קדימה, לתפוס את ערך מחושב session-- 756 00:34:53,350 --> 00:34:55,250 זה כמו קניות cart-- ולאחסן אותו 757 00:34:55,250 --> 00:34:57,680 במשתנה זמנית בשם מונה. 758 00:34:57,680 --> 00:35:02,240 >> אחרת, אם כי דלפק הערך היה לא נקבע בעגלת הקניות מה שנקרא, 759 00:35:02,240 --> 00:35:04,430 רק לאתחל אותו ל -0. 760 00:35:04,430 --> 00:35:09,830 לבסוף, כאן למטה, ללכת ולהחזיר לעגלות קניות או הפגישה 761 00:35:09,830 --> 00:35:13,000 הערך של מונה +1. 762 00:35:13,000 --> 00:35:16,730 אז מתברר שזה here-- מיכל מיוחד 763 00:35:16,730 --> 00:35:20,355 אשר, שוב, הוא אחד הקשורים אלה מערכים, מערך שאתה יכול מדד 764 00:35:20,355 --> 00:35:25,010 במילים במקום אחר מספרים נמשך גם לאחר שהמשתמש יוצא משם. 765 00:35:25,010 --> 00:35:26,510 שוב, אני אחזור לדף החברה. 766 00:35:26,510 --> 00:35:28,400 זה היה רגע או כך. 767 00:35:28,400 --> 00:35:31,300 אבל הוא זוכר שיש לי היה כאן 19 פעמים בעבר. 768 00:35:31,300 --> 00:35:32,740 זהו ביקורו ה -20 שלי. 769 00:35:32,740 --> 00:35:36,560 >> וכך זה הולך להיות מפתח ל יישום כל אתר אינטרנט שזוכר 770 00:35:36,560 --> 00:35:40,640 שאתה מחובר, כי אתה מכניס משהו מילולי בסל הקניות שלך 771 00:35:40,640 --> 00:35:43,902 לקנות או שיש לך כמה מספר ההודעות ממתין. 772 00:35:43,902 --> 00:35:45,610 כל פעם שאתה רוצה לזכור מידע, 773 00:35:45,610 --> 00:35:48,130 אנחנו תראו PHP ש, כמו כמה שפות אחרות, 774 00:35:48,130 --> 00:35:53,640 מספק לנו את האשליה הזאת של מדינה למרות, כפי שתראה בPSET 6, 775 00:35:53,640 --> 00:35:57,642 כפי שאתה עושה בקשות HTTP מצד לקוח לצד שרת, זה הכל. 776 00:35:57,642 --> 00:35:59,850 ברגע שאתה מקבל את זה בחזרה תגובה, אין דבר יותר 777 00:35:59,850 --> 00:36:01,790 חוזר מהשרת כברירת מחדל. 778 00:36:01,790 --> 00:36:03,820 אבל אנחנו תראו איך לעקוף את זה. 779 00:36:03,820 --> 00:36:07,430 >> ובכן עכשיו, בואו ננסה תנקה את זה קצת. 780 00:36:07,430 --> 00:36:09,470 ראינו כמה דוגמאות שונות לשם. 781 00:36:09,470 --> 00:36:12,250 אה, וכמו בצד, ל אלה מוכרים או לא מוכרים, 782 00:36:12,250 --> 00:36:14,230 הסיבה ש דוגמא הפרוש IMs הלכה 783 00:36:14,230 --> 00:36:18,060 מהתבוננות באמת מכוער לslightly-- גם, 784 00:36:18,060 --> 00:36:23,160 עדיין ugly-- למעט פחות מכוער אם כי עדיין מכוער 785 00:36:23,160 --> 00:36:25,230 משום שאם אנחנו מסתכלים בקוד המקור כאן, 786 00:36:25,230 --> 00:36:28,240 מתברר שיש לי זה בחלקו העליון של הקובץ. 787 00:36:28,240 --> 00:36:32,570 >> מתברר שbootstrap הוא אחד מרבים ספריות זמינות באופן חופשי בחוץ 788 00:36:32,570 --> 00:36:37,140 שקיימות לא לשפות תכנות תמיד, אבל לCSS או JavaScript ל 789 00:36:37,140 --> 00:36:39,190 או HTML או כל מספר השפות. 790 00:36:39,190 --> 00:36:42,160 >> והאנשים האלה here-- יצא במקור 791 00:36:42,160 --> 00:36:44,730 של Twitter-- רק צריכים חבורה שלמה של סגנונות. 792 00:36:44,730 --> 00:36:47,360 זה קובץ מאסיבי כאן שמישהו כתב, 793 00:36:47,360 --> 00:36:51,020 או של מישהו כתב, לאורך זמן ש מציין צבעים ועיצוב 794 00:36:51,020 --> 00:36:53,740 ומה לא, כך שאני יכול סוג של ללוות התחביר שלהם 795 00:36:53,740 --> 00:36:56,157 ולא צריך להבין איך להניח את טופסי. 796 00:36:56,157 --> 00:36:57,990 זה גם minified כך שיכול מחשב 797 00:36:57,990 --> 00:37:00,560 הבנת את זה אבל לא בהכרח אנושי. 798 00:37:00,560 --> 00:37:03,050 אז זה בדיוק למה את הסגנון יש השתנה. 799 00:37:03,050 --> 00:37:05,450 >> אבל בואו עכשיו לעשות טוב יותר מבחינת עיצוב, 800 00:37:05,450 --> 00:37:07,490 כי אם נשארו למטה הכביש הזה יותר מדי זמן, 801 00:37:07,490 --> 00:37:11,290 הקוד שלנו הולך להתלכלך ומבולגן. 802 00:37:11,290 --> 00:37:13,040 אז בואו נתמקד בדוגמאות אלה כאן. 803 00:37:13,040 --> 00:37:15,090 האחרון להיום. 804 00:37:15,090 --> 00:37:18,720 >> אז הנה הוא סופר פשוט גרסת 1.0 של אתר האינטרנט של CS50. 805 00:37:18,720 --> 00:37:21,250 יש לו רק קישורים ל הרצאות ולימודים, 806 00:37:21,250 --> 00:37:25,490 וזה שימוש שרשימה לא מסודרת tag-- תג UL שהשתמשנו בפעם האחרונה. 807 00:37:25,490 --> 00:37:28,800 ואם אכן, אם אני לפתוח צפה במקור דף, 808 00:37:28,800 --> 00:37:31,710 אתה תראה שזה הוא באמת, HTML ממש פשוט. 809 00:37:31,710 --> 00:37:35,460 ואכן, על אף שזו קובץ PHP מתחת למכסת המנוע, 810 00:37:35,460 --> 00:37:38,620 זה עדיין רק לירוק מתוך HTML רק לעת עתה. 811 00:37:38,620 --> 00:37:41,312 >> אז אם אני לוחץ על הרצאות, אנחנו רואים את זה קורה. 812 00:37:41,312 --> 00:37:43,020 ואם אני לוחץ על שבוע אפס, אנחנו רואים את זה. 813 00:37:43,020 --> 00:37:44,920 ואם אני לוחץ על יום רביעי, אנחנו רואים את זה. 814 00:37:44,920 --> 00:37:47,900 וזה כנראה היה PDF של שקופיות מאותו היום. 815 00:37:47,900 --> 00:37:52,020 כל מה שעשיתי הוא קישור עם תג עוגן לכתובת אתר זו כאן. 816 00:37:52,020 --> 00:37:55,400 >> אז זה רק לומר שזה די גרסה פשוטה של ​​אתר האינטרנט של CS50. 817 00:37:55,400 --> 00:37:56,790 בואו לראות איך זה מיושם. 818 00:37:56,790 --> 00:38:01,240 אם אני הולך לספריית mvc0, אנחנו תראו כמה קבצים. 819 00:38:01,240 --> 00:38:03,250 אחת מהן הוא README, כך שאם חלק מזה הוא מהיר מדי, 820 00:38:03,250 --> 00:38:05,166 רק אתה יכול לחטט יותר נינוח מאוחר יותר. 821 00:38:05,166 --> 00:38:07,930 והודעה לכאן הוא קובץ index.php. 822 00:38:07,930 --> 00:38:09,960 מתברר שאם אתה בעצמך, האדם, 823 00:38:09,960 --> 00:38:14,460 לא תציין את השם אחרון ב כתובת URL, שרת האינטרנט, בדרך כלל 824 00:38:14,460 --> 00:38:17,010 infers כמה שם ברירת מחדל עבורך. 825 00:38:17,010 --> 00:38:20,060 משהו נקודת מדד בדרך כלל ברירת המחדל. 826 00:38:20,060 --> 00:38:23,010 >> אז בגלל זה לפני רגע כשביקרתי את כתובת האתר הזה כאן, 827 00:38:23,010 --> 00:38:26,750 לא שם קובץ, אין קובץ סיומת, אין התקופה ב- URL. 828 00:38:26,750 --> 00:38:29,710 זה פשוט ידע איכשהו באורח פלא לחפש index.php. 829 00:38:29,710 --> 00:38:30,870 זה פשוט כנס. 830 00:38:30,870 --> 00:38:32,360 אפשר לקרוא לכל דבר. 831 00:38:32,360 --> 00:38:35,110 >> אז אם אני עכשיו הולך ל index.php, תראה 832 00:38:35,110 --> 00:38:37,100 ש, indeed-- בואו להיפטר מההערות 833 00:38:37,100 --> 00:38:39,500 כאן בגלל שיש באמת שום דבר מעניין לit-- 834 00:38:39,500 --> 00:38:41,579 זה פשוט קשה מקודד HTML. 835 00:38:41,579 --> 00:38:43,370 אז זה עולה בקנה אחד, אם כי, עם הטענה שלי 836 00:38:43,370 --> 00:38:45,230 שאתה יכול להתמזג HTML ו- PHP. 837 00:38:45,230 --> 00:38:48,060 אין בפועל תכנות היגיון כאן. 838 00:38:48,060 --> 00:38:51,030 >> וקבצים האחרים הם די הרבה רק לא מעניין כ. 839 00:38:51,030 --> 00:38:56,240 זה פשוט קשה מקודד-שבוע אחד כאן לשבוע מ 'ושבוע w, 840 00:38:56,240 --> 00:38:57,510 ליום השני ורביעים. 841 00:38:57,510 --> 00:39:01,890 ואז אם אני פותח את השבוע אפס, שם לב שזה כמעט זהה. 842 00:39:01,890 --> 00:39:03,320 >> וזה סוג של אוכל מוכן מפתח. 843 00:39:03,320 --> 00:39:06,180 שים לב עד כמה מיותר זה. 844 00:39:06,180 --> 00:39:10,710 קבצים אלה בקושי לשנות, ובכל זאת אני משכתי אחד מההעתק / דבק עבודות אלה 845 00:39:10,710 --> 00:39:13,420 שבו לקחתי file-- אחד כנראה בשבוע zero-- העתיק אותו 846 00:39:13,420 --> 00:39:16,320 כאשר שבוע אחד בא, וצבט כמה ערכים. 847 00:39:16,320 --> 00:39:18,590 אנחנו כנראה צריכים להיות מסוגלים לעשות יותר טוב מזה. 848 00:39:18,590 --> 00:39:21,800 >> אז בואו נחזור עד MVC ולהיכנס לגרסה אחת. 849 00:39:21,800 --> 00:39:24,810 ושים לב שיש לי כמה קבצים, משום מה 850 00:39:24,810 --> 00:39:29,870 היה משותף לכל אותם התיקים רק רגע ago-- אם אני חוזר לגרסה 0, 851 00:39:29,870 --> 00:39:32,600 בואו נחזור למדד, ורק postulate-- 852 00:39:32,600 --> 00:39:36,090 ברגע שאני להיפטר מcomments-- איזה חלק של דף זה 853 00:39:36,090 --> 00:39:40,072 הוא ככל הנראה בכל אחד מהקבצים שלי? 854 00:39:40,072 --> 00:39:40,780 פשוט תקרא את זה. 855 00:39:40,780 --> 00:39:44,620 איזה קווים משוכפלים כנראה בכל אחד מהדפים הללו? 856 00:39:44,620 --> 00:39:45,120 כן? 857 00:39:45,120 --> 00:39:46,110 >> תלמיד: [לא ברור]. 858 00:39:46,110 --> 00:39:47,660 >> דוד י מלאן: 1 עד 9. 859 00:39:47,660 --> 00:39:48,720 כן, בהחלט. 860 00:39:48,720 --> 00:39:52,080 1 עד 9, למעט אולי 8 משנה קצת, מפני שCS50 861 00:39:52,080 --> 00:39:54,650 הופך הרצאות או שבוע אפס או משהו. 862 00:39:54,650 --> 00:39:55,970 אבל כמעט זהה. 863 00:39:55,970 --> 00:39:58,657 אז כל הדברים האלה הוא פשוט סוג של להעתיק ולהדביק. 864 00:39:58,657 --> 00:40:00,490 ויש כמה קווים אחרים שאני יכול לחשוב 865 00:40:00,490 --> 00:40:05,000 של שהם כנראה זהים בכל הקבצים. 866 00:40:05,000 --> 00:40:06,315 >> תלמיד: 12 ו -13. 867 00:40:06,315 --> 00:40:07,190 דוד י מלאן: כן. 868 00:40:07,190 --> 00:40:11,220 בטח, 12, 13, ו -14 ככל הנראה, רק בגלל שהדברים המעניינים 869 00:40:11,220 --> 00:40:15,460 קורה על קווי 11 ו -10, כך שזה היה נראה. 870 00:40:15,460 --> 00:40:18,350 אז בואו נסתכל על גרסת 1, אשר מנסה לשפר את זה. 871 00:40:18,350 --> 00:40:24,020 בגרסת 1 של example-- MVC זו אנו להסביר מה MVC אמצעים בmoment-- 872 00:40:24,020 --> 00:40:27,420 אם אני נכנסתי למדד, זה סוג של נראה קצת מבלבל עכשיו. 873 00:40:27,420 --> 00:40:28,880 זה לא ממש פשוט כמו שלפני. 874 00:40:28,880 --> 00:40:30,906 >> אבל ברגע שאתה מתחיל לקרוא אותו בזהירות, זה 875 00:40:30,906 --> 00:40:32,530 די פשוט מה שהיא עושה. 876 00:40:32,530 --> 00:40:34,397 כנראה קו 1 ו קו 8 החליף 877 00:40:34,397 --> 00:40:37,230 כל הדברים שאתה פשוט identified-- אם כי רק למען סדר טוב, 878 00:40:37,230 --> 00:40:41,900 עזבתי את ULS שם רק במקרה מסוים לא היו לי ימים רשימה של דברים. 879 00:40:41,900 --> 00:40:47,860 וכך דורש הוא כמו סוג של קילו לכלול בעותקי C. זה ומשחות 880 00:40:47,860 --> 00:40:50,470 התוכן ביעילות ממש כאן בקובץ זה. 881 00:40:50,470 --> 00:40:53,650 >> אז בheader.php, כפי שאתה שמשתמע משמו, 882 00:40:53,650 --> 00:40:55,330 הולך להיות הכותרת של הדף. 883 00:40:55,330 --> 00:40:57,110 זה סוג של יתומים כאן. 884 00:40:57,110 --> 00:41:01,820 יש לו רק את החלק העליון אליו, אבל אין יותר תוכן בהמשך. 885 00:41:01,820 --> 00:41:05,070 >> אם אני מסתכל על כותרת תחתונה בינתיים ו, שהיה הקובץ האחר mentioned-- 886 00:41:05,070 --> 00:41:08,830 זה אחד אפילו פחות מעניין, אבל שוב, זה משותף לכל דבר. 887 00:41:08,830 --> 00:41:10,250 אז זה תחתונה. 888 00:41:10,250 --> 00:41:11,300 זה הכותרת. 889 00:41:11,300 --> 00:41:13,950 זהו הקובץ זה שינוי, אז למה לא 890 00:41:13,950 --> 00:41:18,140 מנסה לפרק לגורמים את את המכנה המשותף עם שתי שורות אלה כאן? 891 00:41:18,140 --> 00:41:20,090 >> אבל אנחנו יכולים לנקות את זה קצת יותר. 892 00:41:20,090 --> 00:41:23,260 אני הולך קדימה, לפתוח את הגרסה שתי שבו 893 00:41:23,260 --> 00:41:27,106 אנו רואים שיש קובץ חדש, helpers.php. 894 00:41:27,106 --> 00:41:28,610 נצטרך לראות מה שהוא ברגע. 895 00:41:28,610 --> 00:41:30,930 בואו נלך למדד, כפי ש נקודת כניסה כמו קודם. 896 00:41:30,930 --> 00:41:35,230 >> ועכשיו שמתי לב שאני דורש helpers.php, לא כותרת עליונה או תחתונה. 897 00:41:35,230 --> 00:41:41,720 אבל עוזרים הוא כמו סוג של helpers.c וhelpers.h מPSET 2 898 00:41:41,720 --> 00:41:46,150 או PSET 3 מזמן כאשר אתה בעצם לא לחפש ולמצוא עבור PSET ש, 899 00:41:46,150 --> 00:41:50,950 והיה לך את כל הקוד שלך למיון וחיפוש בקובץ נפרד. 900 00:41:50,950 --> 00:41:52,510 זה מה שקורה כאן. 901 00:41:52,510 --> 00:41:54,390 >> ועכשיו קו 3 נראה קצת שונה. 902 00:41:54,390 --> 00:41:55,920 וזה רק קו אחד. 903 00:41:55,920 --> 00:41:57,950 כדי להפוך את זה אפילו יותר ברור, אני רק יכול 904 00:41:57,950 --> 00:42:01,820 עושה זאת כדי להיות סגנונית עקבית עם כל דבר אחר שעשינו. 905 00:42:01,820 --> 00:42:04,130 אבל זה לא באמת לשנות את הפונקציונליות. 906 00:42:04,130 --> 00:42:05,880 זה רק שורה אחת של קוד אמיתי. 907 00:42:05,880 --> 00:42:09,010 >> ככל הנראה, יש פונקציה נקרא למקום להבהיר כותרת, 908 00:42:09,010 --> 00:42:11,420 וזה שבו דברים לקבל די חזק. 909 00:42:11,420 --> 00:42:17,040 שים לב בתוך שהסוגריים שלה מה קטע של תחביר אחר? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 זה כנראה קצת קשה לומר, אבל לב יש-- אני אשים קצת לבן 912 00:42:23,350 --> 00:42:24,300 חלל. 913 00:42:24,300 --> 00:42:25,530 יש סוגריים מרובעים. 914 00:42:25,530 --> 00:42:29,700 >> וסוגריים מרובעים שראינו לפני קצת בהקשר של מערכים אסוציאטיביים, 915 00:42:29,700 --> 00:42:31,580 אשר, שוב, כמו שולחנות חשיש. 916 00:42:31,580 --> 00:42:36,230 ואם אתם חושבים עכשיו לC, סדר טיעונים לפונקציה 917 00:42:36,230 --> 00:42:37,570 יש תמיד להיות אותו הדבר. 918 00:42:37,570 --> 00:42:41,146 אתה צריך לזכור מה להורות x is--, y, z או z, y, x-- 919 00:42:41,146 --> 00:42:44,020 ואתה צריך תמיד לספק להם באותו סדר או לחפש אותם 920 00:42:44,020 --> 00:42:45,100 אם שכחת. 921 00:42:45,100 --> 00:42:51,140 >> אבל זה נראה דרך חכמה של העברת ערך מפתח שרירותי 922 00:42:51,140 --> 00:42:55,840 זוגות לפי הכותרת היא השם ויכוח במקרה זה 923 00:42:55,840 --> 00:42:58,334 וCS50 הוא הערך שלה. 924 00:42:58,334 --> 00:43:00,250 והעובדה שיש לי סוגריים מרובעים אלה 925 00:43:00,250 --> 00:43:02,560 כאן אומר שאני יכול גם לעבור במשהו 926 00:43:02,560 --> 00:43:07,550 כמו בשבוע שהוא 1 או 0 או 2 או 3. 927 00:43:07,550 --> 00:43:10,550 אז יש לנו להגדיר להם פרמטרים פונקציה זו באופן כזה 928 00:43:10,550 --> 00:43:15,180 כי זה יכול לקחת מספר רב של תשומות, אך לעת עתה זה רק אחד. 929 00:43:15,180 --> 00:43:20,060 >> אם אני עכשיו הולך לhelpers.php, שים לב למה שהוא עושה. 930 00:43:20,060 --> 00:43:22,030 זה קצת פונקציונאלית חדש, 931 00:43:22,030 --> 00:43:24,190 אך לעת עתה רק לקחת על אמונה שזה 932 00:43:24,190 --> 00:43:26,570 התחביר שבה אתה להגדיר פונקציה ב- PHP. 933 00:43:26,570 --> 00:43:27,840 אתה ממש אומר פונקציה. 934 00:43:27,840 --> 00:43:30,090 לא תציין תמורה הקלד, וזה עולה בקנה אחד 935 00:43:30,090 --> 00:43:33,880 עם הפירוט משתנה קודם לכן שבו אתה לא ממש חזק להקליד. 936 00:43:33,880 --> 00:43:35,650 >> זה רק מציין כי, כברירת מחדל, זה 937 00:43:35,650 --> 00:43:37,460 לוקח אסוציאטיבי מערך כטיעון. 938 00:43:37,460 --> 00:43:38,210 ואתם יודעים מה? 939 00:43:38,210 --> 00:43:41,450 אם המשתמש אינו עובר אחד ב, להניח ערך ברירת מחדל. 940 00:43:41,450 --> 00:43:44,680 >> זוהי תכונה שC אין בשבילנו, וזה נחמד, כי עכשיו 941 00:43:44,680 --> 00:43:46,430 הנתונים, גם אם אתה לא לתת לו שום דבר, 942 00:43:46,430 --> 00:43:49,300 הולך להיות מערך אך ריק אחד. 943 00:43:49,300 --> 00:43:51,860 ואגב זה, תמצית פשוט עושה משהו פאנקי 944 00:43:51,860 --> 00:43:56,380 לאן זה לוקח את כל המפתחות מזה מערך אסוציאטיבי, את כל הדברים 945 00:43:56,380 --> 00:43:59,950 אתה יכול לשים בסוגריים מרובעים, ויוצר משתנים מהם 946 00:43:59,950 --> 00:44:06,270 כך שניתן לנו בסופו של גישה להם בfootet.php וheader.php. 947 00:44:06,270 --> 00:44:08,950 זה קצת מופשט, אז תן לי להצביע על כך. 948 00:44:08,950 --> 00:44:12,990 >> בindex.php, שמו לב שאני עובר בזוג ערך מפתח של כותרת 949 00:44:12,990 --> 00:44:14,850 עם ערך של CS50. 950 00:44:14,850 --> 00:44:18,660 אם אני מסתכל עכשיו בhelpers.php, לב RenderHeader ש 951 00:44:18,660 --> 00:44:23,870 שמחלץ את הנתונים שאני מעביר ב, ולאחר מכן דורש header.php. 952 00:44:23,870 --> 00:44:27,970 מה שעשיתי הוא סוג של הגבר עני יישום עכשיו מאלה. 953 00:44:27,970 --> 00:44:31,720 >> אם אני פותח את header.php, הודעה שאין לי יותר קשה 954 00:44:31,720 --> 00:44:34,890 מקודד את המילה CS50 בקובץ כותרת זו. 955 00:44:34,890 --> 00:44:39,310 שמתי את זה יש להודות להחריד פונקציה בשם, תווים מיוחדים HTML, 956 00:44:39,310 --> 00:44:40,170 שם. 957 00:44:40,170 --> 00:44:41,640 אבל שים לב מה שעשיתי. 958 00:44:41,640 --> 00:44:44,240 יש לי בתבנית HTML. 959 00:44:44,240 --> 00:44:47,420 אז יש לי פתוח בראש וכותרת פתוחה. 960 00:44:47,420 --> 00:44:52,380 >> ואז בתוך ופתוח של הכותרת קרובים תגים, יש לי קצת קוד PHP. 961 00:44:52,380 --> 00:44:56,670 וזה נחמד, אבל של תחביר, שרק אומר הד החוצה. 962 00:44:56,670 --> 00:44:59,840 זה פשוטו כמשמעו זה-- הד following-- 963 00:44:59,840 --> 00:45:01,910 אבל זה יותר סקסי לכתוב. 964 00:45:01,910 --> 00:45:05,000 הד את הכותרת זה כבר עבר ב. 965 00:45:05,000 --> 00:45:07,560 >> אבל מה אתה חושב HTML char המיוחד הוא על כל, 966 00:45:07,560 --> 00:45:10,590 במיוחד אם יש לך קצת ניסיון HTML לפני? 967 00:45:10,590 --> 00:45:14,050 מה דמויות יכולה להיות מסוכן לעבור לדף 968 00:45:14,050 --> 00:45:17,980 שבו אתה יוצר באופן דינמי דף האינטרנט עם קוד כזה? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 תן לי ללכת לקובץ זה, גרסה שני, ותראו אם אני לא יכול לגרום לזה. 971 00:45:24,650 --> 00:45:26,210 >> גרסה השנייה היא זו. 972 00:45:26,210 --> 00:45:28,510 ושים לב כל מה ש זה בסדר, עובד היטב. 973 00:45:28,510 --> 00:45:35,280 אבל נניח שאני נכנסתי לindex.php ו אני צוין כי הכותרת של הדף שלי 974 00:45:35,280 --> 00:45:36,630 לא CS50. 975 00:45:36,630 --> 00:45:44,930 זה התראת תסריט הסוגר פתוח שלום עולם, ציטוט אחד קרוב, 976 00:45:44,930 --> 00:45:49,740 קרובים סוגריים, פסיק, הסוגר פתוח, תסריט נטוי. 977 00:45:49,740 --> 00:45:51,897 >> תסריט, שכן אנו סופו של דבר לראות, הוא תג 978 00:45:51,897 --> 00:45:54,480 כי אתה יכול להשתמש בו כדי להשתמש אחר שפת תכנות בשם 979 00:45:54,480 --> 00:45:56,330 JavaScript בתוך דף אינטרנט. 980 00:45:56,330 --> 00:45:57,960 ועכשיו שים לב להיגיון כאן. 981 00:45:57,960 --> 00:45:59,840 הנה מפתח נקרא כותרת. 982 00:45:59,840 --> 00:46:02,690 הנה זה ערך ארוך מטורף עכשיו. 983 00:46:02,690 --> 00:46:07,840 >> אבל אם אני הולך לעוזרים בכל דף בנפרד או לייתר דיוק, בעמוד הכותרת, 984 00:46:07,840 --> 00:46:11,310 אני מתקשר בפונקציה זו בכותרת שראשונה. 985 00:46:11,310 --> 00:46:15,250 אז אם אני עכשיו לטעון מחדש את הדף, אני רואה את זה, שנראה מגוחך, 986 00:46:15,250 --> 00:46:16,110 אבל זה בטוח. 987 00:46:16,110 --> 00:46:17,310 זה פשוט נראה טיפשי. 988 00:46:17,310 --> 00:46:20,320 >> אבל נניח שבמקום שכחתי את זה. 989 00:46:20,320 --> 00:46:24,660 וזכרו את הדברים, מספר שאינו אפס שלך לא ישכח לעשות את זה 990 00:46:24,660 --> 00:46:27,790 ותקבל כמה חרוץ סטודנט או חבר מתקרב 991 00:46:27,790 --> 00:46:31,540 לך ביריד CS50 או בעילום שם בלילה לחטט באתר שלך 992 00:46:31,540 --> 00:46:35,300 ובעצם הזרקת קוד וללא הידיעה אותך לאתר שלך 993 00:46:35,300 --> 00:46:35,800 איכשהו. 994 00:46:35,800 --> 00:46:39,000 >> כי אם אני פשוט לירוק הכותרת כאן ושם ב 995 00:46:39,000 --> 00:46:44,330 there-- גם, אם כותרת ממש נראה כך וPHP 996 00:46:44,330 --> 00:46:47,660 כשפה שיכול לירוק מתוך טקסט של שפות אחרות, 997 00:46:47,660 --> 00:46:50,650 זה הולך ממש להחליף תג זה עם, 998 00:46:50,650 --> 00:46:53,010 כמובן, מה ששמתי את במקום אחר. 999 00:46:53,010 --> 00:46:57,640 >> אז אם אני עכשיו הולך כאן וטען מחדש לאחר ביטול מנגנוני בטיחות אלה, 1000 00:46:57,640 --> 00:46:59,982 עכשיו יש לי שלום עולם כאן. 1001 00:46:59,982 --> 00:47:02,690 עכשיו זה לא כל כך גדול של להתמודד, אבל אתה יכול לעשות משהו 1002 00:47:02,690 --> 00:47:05,119 קצת יותר זדוני כאן, כמו שיש 1003 00:47:05,119 --> 00:47:08,410 tags-- אחר כפי שנראה ברגע שאנחנו מבלים יותר זמן בJavaScript-- כמו מיקום 1004 00:47:08,410 --> 00:47:14,910 נקודת href מקבל, ציטוט, סוף ציטוט, HTTP business.com, אבל ההפך מזה 1005 00:47:14,910 --> 00:47:15,950 מהיום האחר. 1006 00:47:15,950 --> 00:47:20,120 ועכשיו אתה יכול לגרום לאינטרנט הדף ללכת למעשה באופן מיידי 1007 00:47:20,120 --> 00:47:21,190 לדף אינטרנט זה כאן. 1008 00:47:21,190 --> 00:47:23,000 >> ובעצם, אני לא רוצה אפילו ללכת לbusiness.com 1009 00:47:23,000 --> 00:47:24,749 כי אני לא רוצה ליודע מה זה. 1010 00:47:24,749 --> 00:47:28,710 אבל זה, מדי, יפעיל את קוד להיות מוזרק לתוך דף זה. 1011 00:47:28,710 --> 00:47:32,680 אז זה רק למרות שאומר ש אנחנו מציגים סופר מוקדם על כמה 1012 00:47:32,680 --> 00:47:36,800 של מבנים מורכבים יותר אלה, זה כל כיוון סוף לוודא 1013 00:47:36,800 --> 00:47:39,320 שהקוד שלך הוא לא לניצול. 1014 00:47:39,320 --> 00:47:40,960 >> אז עכשיו גרסה שלישית כאן. 1015 00:47:40,960 --> 00:47:42,470 זה מתחיל להיות קצת יותר מסובך. 1016 00:47:42,470 --> 00:47:44,875 אני לא ממש like-- הצד האנאלי שלי 1017 00:47:44,875 --> 00:47:47,750 הייתי מקבל קצת מעוצבן על ידי עובדה שיש לי פונקציה שנקראת 1018 00:47:47,750 --> 00:47:51,940 RenderHeader וRenderFooter שהיו כמעט זהה. 1019 00:47:51,940 --> 00:47:55,400 אז עלתה בדעתי, למה לא אני parameterize פונקציות אלה 1020 00:47:55,400 --> 00:47:59,180 לאחד נקרא לדקלם, יש לה לקחת טיעון שני 1021 00:47:59,180 --> 00:48:04,420 כמו השם של התבנית, סופי לrender-- או כותרת עליונה או תחתונה? 1022 00:48:04,420 --> 00:48:07,160 ולאחר מכן אופציונלי, אם אני רוצה לעבור בכמה זוגות ערך מפתח 1023 00:48:07,160 --> 00:48:10,580 כמו שאני עושה על התואר ל כותרת אבל לא לתחתון, 1024 00:48:10,580 --> 00:48:11,800 אני יכול לעשות את זה. 1025 00:48:11,800 --> 00:48:16,510 >> ואז עכשיו אם אני נכנסתי helpers.php, זה מורכב קצת יותר. 1026 00:48:16,510 --> 00:48:19,670 ואני אניף את הידיים שלי ב פרטים, אבל זה רק תפקיד אחד. 1027 00:48:19,670 --> 00:48:21,890 אז זה צעד לקראת עיצוב טוב יותר. 1028 00:48:21,890 --> 00:48:23,360 >> אנחנו יכולים לקחת את זה צעד אחד קדימה. 1029 00:48:23,360 --> 00:48:28,890 אם אני נכנסתי לרביעי שלי גרסה של זה, שם לב עכשיו 1030 00:48:28,890 --> 00:48:31,320 שאני עושה משהו אפילו יותר די נסתר. 1031 00:48:31,320 --> 00:48:33,230 ואני יודע שזה הרבה לקלוט בבת אחת, 1032 00:48:33,230 --> 00:48:35,080 אבל אנחנו פשוט סוג של ניקוי דברים. 1033 00:48:35,080 --> 00:48:38,550 עכשיו אני שם את העוזרים שלי קובץ לתיקייה הנקראת 1034 00:48:38,550 --> 00:48:41,190 includes-- רק שרירותי שם שבו אני רוצה לשים את הדברים 1035 00:48:41,190 --> 00:48:44,300 כי אני רוצה include-- ולאחר מכן שאר זה זהה. 1036 00:48:44,300 --> 00:48:47,140 >> אבל אם אני מסתכל עכשיו בgedit, הודעה שאני כבר הצלחתי להיפטר 1037 00:48:47,140 --> 00:48:51,940 כל קבצים אחרים אלה ולי העביר אותם, למשל, לכאן. 1038 00:48:51,940 --> 00:48:55,110 ולאחר מכן בתבניות, יש לי את זה כאן, מדי. 1039 00:48:55,110 --> 00:48:59,292 ואז זה כל פעם לכיוון אחר צעד שימוש בתבנית עיצוב הרבה יותר טובה. 1040 00:48:59,292 --> 00:49:01,000 ואנחנו מהר מאוד הולך להתרחק 1041 00:49:01,000 --> 00:49:03,870 מפונקציונלי ברירת המחדל של PHP, שהתחלנו כאן עם, 1042 00:49:03,870 --> 00:49:07,655 שבו אתה פשוט מתמזג PHP, ו- HTML שלך, וה- CSS שלך, 1043 00:49:07,655 --> 00:49:09,780 ואתה פשוט לירוק אותו ואתה הולך על הדרך שלך. 1044 00:49:09,780 --> 00:49:11,404 זה לא הולך להיות מאוד לתחזוקה. 1045 00:49:11,404 --> 00:49:14,481 בדיוק כמו ב- C, שהתחלנו להשתמש מספר קבצים ופונקציות מרובות 1046 00:49:14,481 --> 00:49:15,730 והדברים פקטורינג שיצא. 1047 00:49:15,730 --> 00:49:16,688 אנחנו נעשה את אותו הדבר כאן. 1048 00:49:16,688 --> 00:49:19,970 ואכן, בחמישי ואחרון גרסה כאן, עשיתי דבר אחד אחר. 1049 00:49:19,970 --> 00:49:23,710 אתה יכול אפילו להשתמש בנקודת נקודה, אשר, שוב, הוא פשוט ספריית האב. 1050 00:49:23,710 --> 00:49:28,260 כדי להיות עוד יותר ביטחון מודע, כי אם אני מסתכל על ההקשבה 1051 00:49:28,260 --> 00:49:32,450 כאן לחמישי וגרסה סופית, הודעה שיש לי מדריך אחד כאן בשם 1052 00:49:32,450 --> 00:49:35,180 , ולאחר מכן על הציבור אותה רמה, אם אפשר לומר כך, 1053 00:49:35,180 --> 00:49:38,490 יש לי כולל ותבניות ולאחר מכן שreadme קובץ טקסט. 1054 00:49:38,490 --> 00:49:41,130 >> והסיבה שאני כבר מובנה זה כמו זה-- וכל כך הרבה אינטרנט 1055 00:49:41,130 --> 00:49:44,330 מארחים, במיוחד של $ 5 אלה אלה חודש או אלה 10 $ בחודש, 1056 00:49:44,330 --> 00:49:47,170 אם אי פעם היה לכם אחד כזה services-- מה כל כך הרבה מהם לעשות 1057 00:49:47,170 --> 00:49:50,690 הוא שהם פשוט מצפים ממך לזרוק את כל של הקבצים שלך לתוך ספרייה אחת, 1058 00:49:50,690 --> 00:49:53,640 כמו שכבר עשו עם דוגמא הראשונה זה. 1059 00:49:53,640 --> 00:49:56,740 >> אבל ברגע שאתה מתחיל לבנות יותר אתרים מתוחכמים שרק לאחסן 1060 00:49:56,740 --> 00:50:00,480 נתונים שאכפת לך וקבצים ש אכפת, בעצם ארגון דברים 1061 00:50:00,480 --> 00:50:05,060 בצורה נכונה ועם יותר ביטחון תודעה במוח יכול 1062 00:50:05,060 --> 00:50:07,927 אנחנו מתחילים להגן על כנגד כל החברים 1063 00:50:07,927 --> 00:50:10,135 שיש לך או או מחוץ לכיתה זו ש, 1064 00:50:10,135 --> 00:50:12,510 ברגע שאתה מתחיל לעשות תוכניות עצמך באינטרנט, 1065 00:50:12,510 --> 00:50:15,140 הולכים להתחיל לקטוף עליך ועליהם. 1066 00:50:15,140 --> 00:50:17,420 >> ואז אנחנו נראים סופו של דבר בעיצוב הזה. 1067 00:50:17,420 --> 00:50:20,010 זה רק תמונה שמתאר את הדברים הבאים. 1068 00:50:20,010 --> 00:50:22,897 אנחנו הולכים לשים את כולנו תכנות היגיון בקובץ אחד או יותר, 1069 00:50:22,897 --> 00:50:25,230 ואנחנו הולכים רק כדי להתחיל קוראים בקרים אלה. 1070 00:50:25,230 --> 00:50:28,022 זה מקום שבי מוחם של אתרי האינטרנט שלנו הם למעשה. 1071 00:50:28,022 --> 00:50:29,730 ואז אנחנו הולכים ל יש נוף, ונוף 1072 00:50:29,730 --> 00:50:32,480 הם פשוט כמו רק נפרדים files-- תבניות הנקראות, לעתים קרובות. 1073 00:50:32,480 --> 00:50:34,410 רק שיש להם אסתטיקה של הדף שלי, 1074 00:50:34,410 --> 00:50:37,020 מה שאני רוצה שהדף ייראה like-- הצבעים והפריסה 1075 00:50:37,020 --> 00:50:38,870 והעמדות של כל אחד מהמשתנים. 1076 00:50:38,870 --> 00:50:41,120 >> ואז יותר מעניין שסופו של הדבר יגיע ל 1077 00:50:41,120 --> 00:50:45,420 הוא המודל, שהוא הולך להיות פשוט המילה שאנו סטירה על טכנולוגיות אחרות 1078 00:50:45,420 --> 00:50:47,771 כי אנחנו מביאים ל תמונה, כמו בסיסי נתונים בפועל, 1079 00:50:47,771 --> 00:50:49,520 כך שכאשר אתה רוצה כדי להציל את המידע, 1080 00:50:49,520 --> 00:50:52,140 אתה פשוט לא לשלוח דוא"ל למשגיח שלך או לעצמך, 1081 00:50:52,140 --> 00:50:57,350 אתה באמת לאחסן אותו במסד נתונים שימוש בשפה אחרת, הנקראת SQL. 1082 00:50:57,350 --> 00:51:00,450 ואז אנחנו נצא מכאן היום ו להרים עם זה ביום רביעי 1083 00:51:00,450 --> 00:51:02,990 ולהציג את מאגרי מידע ולאחר מכן. 1084 00:51:02,990 --> 00:51:06,940 >> [השמעת מוסיקה] 1085 00:51:06,940 --> 00:54:24,555