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 >> डेविड जे Malan: सब ठीक है. 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 और जब आप कुछ और this-- के साथ संयोजन के रूप में 12 00:00:33,350 --> 00:00:35,670 या आप जल्दी ही होगा, अगर आप पहले से ही नहीं है. 13 00:00:35,670 --> 00:00:38,530 हम व्यापक उपयोग करने के लिए जा रहे हैं स्टाइल शीट, या सीएसएस, जो 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 डेविड जे Malan: कोड. 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 मेरा मतलब है, हम कर सकते थे स्पष्ट सी, के साथ इस. 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 डेविड जे Malan: चर. 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 >> डेविड जे Malan: प्रिंट, है ना? 48 00:01:57,778 --> 00:02:01,050 में छापा, या printf सी तो यह सब समय की दुनिया, 49 00:02:01,050 --> 00:02:03,362 हम पर लिया है हमारी निपटान एक language-- सी, 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 >> हमने पिछले सप्ताह देखा खैर, एचटीएमएल, तो, है पाठ के तार का सिर्फ एक पूरी गुच्छा 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 या तो वेब पृष्ठों उत्पादन शुरू मैन्युअल एडिट में उन्हें बाहर लिखकर 56 00:02:20,440 --> 00:02:23,870 या माइक्रोसॉफ्ट वर्ड में, उस के लिए matter-- हम सिर्फ एक पाठ संपादक की जरूरत है. 57 00:02:23,870 --> 00:02:26,830 >> या फिर हम, कोड लिख सकता है आपके सुझाव के लिए 58 00:02:26,830 --> 00:02:30,435 इससे पहले कि हमें देना होगा गतिशील रूप से एचटीएमएल उत्पन्न, 59 00:02:30,435 --> 00:02:32,560 और कहा कि हम जा रहे हैं PHP के साथ कर रही शुरू करने के लिए 60 00:02:32,560 --> 00:02:34,900 और अंत में भी एक साथ जावास्क्रिप्ट बुलाया भाषा, 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 >> तो चलो this-- एक साथ शुरू करते हैं गुप्त देख लाइन, लेकिन एक 65 00:02:47,117 --> 00:02:48,450 कि वास्तव में बहुत शक्तिशाली है. 66 00:02:48,450 --> 00:02:51,210 इस प्रकार अब तक, हम सी का उपयोग किया गया है, जो एक संकलित भाषा है. 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 >> डेविड जे Malan: ठीक है. 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 जो अंतत: कहा जाता है वस्तु 0 और 1 के code--. 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 और पायथन और रूबी और जावास्क्रिप्ट और अन्य के गुच्छों 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 तो "उपयोगकर्ता, बिन, वातावरण, पर्यावरण के लिए, 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 के interpreter-- is-- जहाँ भी और आगे जाना है और कि दुभाषिया का उपयोग 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 आप इन बदसूरत में से एक है की जरूरत है शुरुआत Demarcating 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 दुनिया बैकस्लैश एन पास बोली, बंद कोष्ठक. 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 >> और जैसे ही मैं, सहेजें के रूप में एडिट पर्याप्त वास्तव में स्मार्ट है 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 और पार्टी की योजना बनाई. 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 >> छात्र: हमें. 123 00:05:24,159 --> 00:05:26,700 डेविड जे Malan: हाँ, 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 >> छात्र: डॉलर के हस्ताक्षर एन? 152 00:06:44,070 --> 00:06:44,944 >> डेविड जे Malan: हाँ. 153 00:06:44,944 --> 00:06:46,210 तो डॉलर के हस्ताक्षर एन मौजूद है. 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 >> डेविड जे Malan: 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 और मुझे आगे जाना है और डॉट स्लैश करना conditions-- whoops-- डॉट स्लैश 167 00:07:22,730 --> 00:07:26,710 शर्तों 1, तुम, फिर देखेंगे एक ही issue-- अनुमति से इनकार किया. 168 00:07:26,710 --> 00:07:33,610 >> तो मुझे जूम इन करते हैं और एक से अधिक chmod करना शर्तों, डॉट स्लेश शर्तों पर एक्स. 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 मुझे कुछ बनाने के लिए अनुमति दी है कि हैलो नामक एक सी प्रोग्राम की तरह लग रहा है 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 पर, यह है एक्स शायद, अब 2 है कहने जा रहा. 187 00:08:28,250 --> 00:08:30,920 % घ printf के लिए $ मैं के रूप में ही है. 188 00:08:30,920 --> 00:08:33,460 तो फिर यह cubing है, बिंदी, डॉट, रेखा 17 में, बिंदी. 189 00:08:33,460 --> 00:08:36,299 और फिर 18 प्रकट लाइन एक समारोह Cubed कॉल करने के लिए. 190 00:08:36,299 --> 00:08:37,600 और जहां Cubed परिभाषित किया गया है? 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 और क्या आप के बारे में कैसे अलग है सी में यह एक ही प्रोग्राम लिख सकता है? 197 00:08:56,100 --> 00:08:57,900 >> छात्र: [अश्राव्य]. 198 00:08:57,900 --> 00:09:00,070 >> डेविड जे Malan: है कोई प्रोटोटाइप ऊपर शीर्ष. 199 00:09:00,070 --> 00:09:03,210 तो PHP-- और स्पष्ट रूप से, एक आधुनिक languages-- की बहुत 200 00:09:03,210 --> 00:09:06,920 एक बहुत चालाक और अधिक सहायक होते हैं सी तुम उस में compilers से 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 डेविड जे Malan: हम की जरूरत नहीं है चर का प्रकार घोषित 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 >> डेविड जे Malan: कोई पुस्तकालयों है. 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 >> डेविड जे Malan: नहीं संकेत दिए. 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 डेविड जे Malan: मुख्य. 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 अनिवार्य रूप से एक 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 सी से 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 उस में तो थोड़ा अलग हम .c की बजाय यह .php फोन करता हूँ. 258 00:11:24,010 --> 00:11:26,980 इस एक PHP फ़ाइल है, क्योंकि मैं थोड़ा है annoyingly-- do-- 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 तो मैंने वादा किया था कि में पीएचपी, हम घोषणा कर सकते हैं 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 यह एक बिल्कुल नहीं है सी से अलग, 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 >> लेकिन अब मैं एक पाश पुनरावृति है शब्दकोश में प्रत्येक शब्द पर. 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 शब्द के अंत में बैकस्लैश एन मैं शायद से छुटकारा मिलना चाहिए, 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 और अब मैं शायद ट्रैक रखना चाहिए आकार का है, तो चलो कम से कम this-- करना 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 >> डेविड जे Malan: ठीक है. 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 कुछ इसी तरह अस्तित्ववादी सी में, कम से कम पात्रों के लिए, 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 और अब तुम भी, सी में ऐसा कर सकते हैं. 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 सही है या गलत लौट रहा है, मैं कर सकता बस वास्तव में इस sexier बनाने 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 >> और कुछ अन्य tweaks वहाँ मैं यहाँ और वहाँ कर सकता है. 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 सी में जबकि, तो जैसा आप दर्द सीखा है, 359 00:16:00,330 --> 00:16:04,700 कुछ भी आप malloc या calloc या realloc, आप अपने आप को मुक्त करने के लिए है. 360 00:16:04,700 --> 00:16:08,770 आप fopen कुछ भी, आप fclose करने के लिए है, संसाधनों अंततः मुक्त कर रहे हैं कि इतने 361 00:16:08,770 --> 00:16:11,690 और वेलग्रिंड जैसे उपकरण नहीं सूचना और शिकायत नहीं है, 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 लेकिन एक व्यापार बंद है. 367 00:16:24,440 --> 00:16:25,820 ठीक है, यह विषयगत कर दिया गया है. 368 00:16:25,820 --> 00:16:29,690 >> तो क्या एक व्यापार बंद हो सकता है यहां सी से 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 डेविड जे Malan: स्पीड. 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 >> यह अग्रिम में, मैं ऐसा होगा तो जैसा दोनों मेरी कोशिश समाधान cued, एक 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 दर्ज मार. 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 मैं पहले एडिट खोला यहाँ है, जहां जाने मुझे, जो, फिर आज के 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 के वर्तनीकार करते हैं PSET 5 ग्रंथों, राजा जेम्स, दर्ज करें. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 यह लेखन की तुलना में अभी भी तेजी सी में यह है, लेकिन कुल समय 395 00:17:43,050 --> 00:17:47,650 जबकि, नोटिस, 0.93, है मेरी सी-आधारित कार्यान्वयन 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 >> छात्र: राम उपयोग की राशि. 406 00:18:10,340 --> 00:18:11,756 >> डेविड जे Malan: राम उपयोग की राशि. 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 के लिए कि deferring हूँ खुद को और जो कोई भी है कि कार्यक्रम लिखा था. 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 पीएचपी, वास्तव में, सही भाषा नहीं है. 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 आप निचोड़ कर सकते हैं कि इतनी सी में इससे बाहर प्रदर्शन के हर बिट 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 यह विश्वास है या, सी नहीं जा रहा है नहीं उपयोग करने के लिए सही भाषा हो. 436 00:19:34,360 --> 00:19:37,880 >> और takeaways की वास्तव में, एक अंततः इस तरह से किसी भी वर्ग के लिए 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 इन दिनों, तुम बस को बदल सकता है गूगल फार्म, लेकिन दिन में वापस, 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 >> और मैं अनिवार्य रूप से प्रयास करने के लिए बैठ गए पोर्ट PHP के लिए पर्ल संस्करण चला जाता है, 466 00:20:58,940 --> 00:21:03,710 लेकिन पूर्ण Disclaimer में, नहीं दिया किसी भी बस अभी तक सौंदर्यशास्त्र के लिए सोचा. 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 हम पूरी तरह से विचार पर punted कि इनपुट के साथ कुछ भी कर रहे हैं. 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 >> डेविड जे Malan: कोई क्वेरी स्ट्रिंग है. 501 00:22:35,220 --> 00:22:37,270 कोई प्रश्न चिह्न कुछ है. 502 00:22:37,270 --> 00:22:40,050 कोई सवालिया निशान क्यू नहीं है हम पिछली बार किया था, बिल्लियों के बराबर होती है. 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 >> खैर, मुझे यहाँ वापस एडिट करने के लिए जाओ और उन फ़ाइलों की पहली खोल 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 प्राप्त यूआरएल में डालता है. 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 के बजाय फिर पद का उपयोग करने के लिए की बस intuitively, मिलता है? 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 डेविड जे Malan: यदि आप चाहते हैं कुछ सुरक्षित हो. 526 00:23:47,790 --> 00:23:50,360 तो आप एक पासवर्ड टाइप सकता है एक वेबसाइट में एक क्रेडिट कार्ड 527 00:23:50,360 --> 00:23:53,030 एक वेबसाइट में होगा इन suboptimal की तरह 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 एक जेपीईजी की तरह, और एक यूआरएल में डाल दिया. 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 वास्तव में है रजिस्टर बहुत underwhelming. 542 00:24:29,030 --> 00:24:31,610 सभी यह सचमुच यह है कहते हैं. 543 00:24:31,610 --> 00:24:35,910 यह कुछ के अंदर बाहर प्रिंट एचटीएमएल निम्नलिखित टैग. 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 >> और इस बार यह एचएम, वास्तव में नहीं है, कहते हैं. 564 00:25:24,110 --> 00:25:26,180 ठीक है, तो क्या है 1 रजिस्टर? 565 00:25:26,180 --> 00:25:30,509 मुझे खुला रजिस्टर 1 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 पोस्ट अंडरस्कोर सुपर वैश्विक कहा जाता है. 574 00:25:53,739 --> 00:25:55,530 वे इस तरह से कर रहे हैं विशेष वैश्विक चर 575 00:25:55,530 --> 00:25:58,840 कि सिर्फ ओमनी-वर्तमान में कर रहे हैं अपने कार्यक्रम के भीतर उपलब्ध. 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 इस स्थान के लिए वापस जाओ, इसलिए यह उपयोगकर्ता punts 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 बदतर के लिए बेहतर करने के लिए, यह था कोड और मार्कअप के commingling 604 00:27:25,280 --> 00:27:25,920 भाषा. 605 00:27:25,920 --> 00:27:28,670 और हम इस बहुत देखेंगे कि जल्दी से एक मेस में devolves. 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 >> लेकिन अभी भी थोड़ा underwhelming. 609 00:27:37,440 --> 00:27:41,210 संस्करण को खोलने के चलो Frosh आईएमएस के दो जो 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 मैं Frosh आईएमएस 2 पर जाने के लिए जा रहा हूँ. 613 00:27:50,780 --> 00:27:53,050 लेकिन Frosh आईएमएस 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 स्पष्ट रूप से कुछ के बारे में है जीमेल के साथ हो लिए. 622 00:28:08,560 --> 00:28:09,600 हम वहाँ मिल जाएगा. 623 00:28:09,600 --> 00:28:11,900 >> तो Frosh आईएमएस 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 मैं अब वास्तव में क्या निर्मित है मेरी रूममेट और मैं Frosh आईएमएस के लिए बनाया 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 कोई डेटाबेस, वहाँ था एक्सेल स्प्रेडशीट नहीं. 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 की तरह है लेकिन यह एक छोटे से sexier है 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 >> और तुम में प्रोग्राम किया गया है अगर जावा या सी ++ या अन्य भाषाओं 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 डॉलर के हस्ताक्षर मेल में डालता कहा जाता है एक विशेष संरचना 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 इस प्रयोग को निर्दिष्ट है हार्वर्ड एसएमटीपी सर्वर, जो 669 00:30:24,240 --> 00:30:25,830 परिसर में यहीं कहीं है. 670 00:30:25,830 --> 00:30:28,480 >> यह क्या कह रहा है टीसीपी संख्या के लिए बात करने के लिए बंदरगाह, 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-- को भेज सकते हैं, भले ही मैं टीएलएस प्रोटोकॉल पर बारी करने के लिए जा रहा हूँ 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 जो सिर्फ शाब्दिक concatenates स्ट्रिंग स्ट्रिंग के बाद स्ट्रिंग के बाद, 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 और वास्तव में, मैं concatenating हूँ क्योंकि इन डॉट्स के साथ इन सब बातों के अलावा, 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 लेकिन यह वास्तव में है, भेजें समारोह बुला. 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 लेकिन आप देखा हो सकता है के रूप में या क्रिमसन में पढ़ा, 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 >> इसलिए किसी भी मामले में, वहाँ है एक सुपर वैश्विक की पूरी गुच्छा, 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 इंटरनेट एक्सप्लोरर या फ़ायरफ़ॉक्स आइकन कताई बंद हो जाता है 725 00:33:17,450 --> 00:33:20,340 और आप बस देखते हैं क्या उस वेब पेज में शामिल है. 726 00:33:20,340 --> 00:33:23,530 >> तो एचटीटीपी कि में राज्यविहीन है यह एक संबंध बनाता है एक बार, 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 छोटी सी बात तो कभी spins संक्षेप में ऊपर और फिर डिस्कनेक्ट, 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 बजाय numbers-- के शब्दों में उपयोगकर्ता दूर हो जाता है, के बाद भी बनी रहती है. 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 कारण यह है कि Frosh आईएमएस उदाहरण चला गया 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 >> बूटस्ट्रैप कई में से एक है कि पता चला है वहाँ से बाहर स्वतंत्र रूप से उपलब्ध पुस्तकालयों 788 00:36:32,570 --> 00:36:37,140 प्रोग्रामिंग भाषा के लिए नहीं है कि अस्तित्व हमेशा की तरह, लेकिन सीएसएस के लिए या जावास्क्रिप्ट के लिए 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 और whatnot मैं कर सकता हूँ कि इतने एक तरह से उनके सिंटैक्स उधार 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 इसलिए कि अभी क्यों है stylization वहाँ बदल दिया है. 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 >> तो यहाँ एक सुपर सरल है CS50 की वेबसाइट के संस्करण 1.0. 805 00:37:18,720 --> 00:37:21,250 यह केवल लिंक करने के लिए है व्याख्यान और पाठ्यक्रम, 806 00:37:21,250 --> 00:37:25,490 और यह कि unordered सूची का उपयोग कर रहा है हम पिछली बार इस्तेमाल किया कि उल टैग tag--. 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 यह अभी भी सिर्फ थूकना है अब के लिए बाहर ही एचटीएमएल. 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 और यह जाहिरा तौर पर पीडीएफ था उस दिन से स्लाइड की. 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 में एक अंतिम नाम निर्दिष्ट नहीं करते एक यूआरएल, आमतौर पर वेब सर्वर 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 यह सिर्फ मुश्किल एचटीएमएल कोडित है. 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 यह सिर्फ सप्ताह एक हार्ड कोडित है यहां सप्ताह में एक मीटर और सप्ताह एक करने के लिए, डब्ल्यू 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 >> और कहा कि एक प्रमुख takeaway की तरह है. 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 सप्ताह के आसपास आया था, और कुछ मूल्यों tweaked. 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 उन फ़ाइलों के सभी बस एक आम था मैं संस्करण 0 करने के लिए वापस जाना अगर पल, ago-- 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 >> डेविड जे Malan: 1 से 9 तक. 859 00:39:47,660 --> 00:39:48,720 हाँ, बिल्कुल. 860 00:39:48,720 --> 00:39:52,080 शायद 8 को छोड़कर 9 के माध्यम से 1, 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 डेविड जे Malan: हाँ. 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 इस MVC example-- के संस्करण 1 में हम करेंगे समझा एक moment-- में MVC क्या मतलब है 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 और इतनी तरह की पौंड की तरह है की आवश्यकता सी यह प्रतियां और चिपकाता में शामिल 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 लेकिन सहायकों की तरह की तरह है PSET 2 से helpers.c और helpers.h 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 इस stylistically के अनुरूप होना है सब कुछ के साथ हम किया है. 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 यह शायद कहना थोड़ा मुश्किल है लेकिन मैं कुछ सफेद डाल देता हूँ there's-- नोटिस 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 और आप सी को अब लगता है कि अगर, एक समारोह में बहस के आदेश 917 00:42:36,230 --> 00:42:37,570 हमेशा एक ही होना चाहिए. 918 00:42:37,570 --> 00:42:41,146 आप क्या याद है is-- एक्स, वाई, जेड या जेड, वाई, 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 इसलिए हम parameterized किया है ऐसे में इस समारोह 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 >> यह सी नहीं है कि एक विशेषता है हमारे लिए, जो अब क्योंकि, अच्छा है 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 मैं वैसे atrociously इस डाल दिया है नामित समारोह, एचटीएमएल विशेष वर्ण, 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 मैं खुले एचटीएमएल मिल गया है. 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 यह सचमुच this-- मतलब निम्नलिखित गूंज 963 00:44:59,840 --> 00:45:01,910 लेकिन यह लिखने के लिए sexier है. 964 00:45:01,910 --> 00:45:05,000 शीर्षक बाहर गूंज उस में पारित कर दिया गया है. 965 00:45:05,000 --> 00:45:07,560 >> लेकिन आप HTML क्या लगता है विशेष वर्ण, सब के बारे में 966 00:45:07,560 --> 00:45:10,590 विशेष रूप से अगर आपके पास कुछ पूर्व एचटीएमएल अनुभव? 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 एक वेब पेज के अंदर जावास्क्रिप्ट. 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 मेले में या गुमनाम रात में अपनी वेबसाइट पर आसपास poking 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 बोली, गंदें शब्द बोलना, एचटीटीपी, हो जाता है 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 >> लेकिन मैं एडिट में अब देखो, मैं छुटकारा मिल गया है कि नोटिस 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, और अपने सीएसएस, 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 बस सी में की तरह, हम का उपयोग शुरू कई फाइलें और कई कार्य 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 मैं भी शामिल है और टेम्पलेट्स मिल गया है और फिर उस पाठ फ़ाइल रीडमी. 1054 00:49:38,490 --> 00:49:41,130 >> और कारण है कि मैं संरचित किया है यह this-- और इतने सारे वेब की तरह 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 आप वास्तव में एक डेटाबेस में स्टोर एसक्यूएल के रूप में जाना एक और भाषा का प्रयोग. 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