>> [संगीत खेल]
>> डेविड जे Malan: सब ठीक है.
इस CS50 है.
इस सप्ताह आठ की शुरुआत है.
और आप हम से दूर छोड़ दिया है कि याद कर सकते हैं पिछली बार एक नई भाषा को देखकर
कुल मिलाकर.
तथ्य यह है, एक में है कि काफी है हल्के और यह भी नहीं है
एक प्रोग्रामिंग भाषा.
यह हमें देता है कि एक मार्कअप भाषा है वास्तव में संरचना और वेब पृष्ठों को बनाने.
और जब आप कुछ और this-- के साथ संयोजन के रूप में
या आप जल्दी ही होगा, अगर आप पहले से ही नहीं है.
हम व्यापक उपयोग करने के लिए जा रहे हैं स्टाइल शीट, या सीएसएस, जो
भाषा का एक और प्रकार है गुण और मूल्यों के साथ
कि हमें ऐसा होने जा रहा है बातों के रंग बदलने की तरह
और स्थिति को बदलने और tweaks के इन प्रकार के.
लेकिन आज और आगे, हम करने के लिए शुरू अधिक शक्तिशाली भाषा पर ध्यान देते हैं,
PHP जैसे वास्तविक प्रोग्रामिंग भाषा.
>> तो PHP के कुछ समय के लिए आस पास कर दिया गया है.
और आप इसे देखेंगे के रूप में मुख्य रूप से डिजाइन किया गया था
जल्दी पर वास्तविक के लिए वेब विकास में उपयोग
और वास्तव में वेब पृष्ठों पैदा.
तो क्या प्रकार सुविधाओं एक भाषा करता है
वेब बनाने के क्रम में की जरूरत गतिशील रूप से इसके साथ पृष्ठों?
>> दूसरे शब्दों में, आप उत्पन्न करना चाहते हैं फेसबुक की तरह सामग्री dynamically--
लगातार बदलता है जो newsfeed, या समय से पॉप कि त्वरित संदेश
क्या तरह time-- को कार्यक्षमता के प्रमुख टुकड़ा
आप एक प्रोग्रामिंग भाषा में की जरूरत कि आप गतिशील देना होगा
स्क्रीन करने के लिए नई जानकारी प्रिंट?
>> छात्र: कोड.
डेविड जे Malan: कोड.
ठीक.
हम चाहते हैं कि ले जाऊँगा.
एक छोटे से अधिक सटीक.
मेरा मतलब है, हम कर सकते थे स्पष्ट सी, के साथ इस.
यह गर्दन में दर्द होगा.
इस प्रतिबद्धता But-- है?
>> छात्र: हाँ.
चर, हो सकता है?
डेविड जे Malan: चर.
सुनिश्चित करें, ठीक है.
चर निश्चित रूप से हमारी मदद कर सकते हैं.
और यहां तक ​​कि कुछ सरल.
हम बहुत पहले में इसका इस्तेमाल किया पहले ही दिन के कार्यक्रम
हम वास्तव में "नमस्ते दुनिया." ने कहा कि जब
>> छात्र: प्रिंट.
>> डेविड जे Malan: प्रिंट, है ना?
में छापा, या printf सी तो यह सब समय की दुनिया,
हम पर लिया है हमारी निपटान एक language-- सी,
particular-- में और भी उस बात के लिए स्क्रैच कि
पाठ के तार उत्पन्न कर सकते हैं.
>> हमने पिछले सप्ताह देखा खैर, एचटीएमएल, तो, है पाठ के तार का सिर्फ एक पूरी गुच्छा
खुला कोष्ठक और बंद के साथ यद्यपि कोष्ठक और कविता के कुछ प्रकार
और इसके पीछे कारण यह है कि, वैसे तो हम वास्तव में कर सकता है
या तो वेब पृष्ठों उत्पादन शुरू मैन्युअल एडिट में उन्हें बाहर लिखकर
या माइक्रोसॉफ्ट वर्ड में, उस के लिए matter-- हम सिर्फ एक पाठ संपादक की जरूरत है.
>> या फिर हम, कोड लिख सकता है आपके सुझाव के लिए
इससे पहले कि हमें देना होगा गतिशील रूप से एचटीएमएल उत्पन्न,
और कहा कि हम जा रहे हैं PHP के साथ कर रही शुरू करने के लिए
और अंत में भी एक साथ जावास्क्रिप्ट बुलाया भाषा,
एक और उत्पन्न करने के लिए एक भाषा का प्रयोग है.
और वास्तव में, यह क्या फेसबुक है और कई कई अन्य साइटों
वास्तव में गतिशील रूप से करने के लिए करते हैं आप को नई जानकारी प्रदर्शित करते हैं.
>> तो चलो this-- एक साथ शुरू करते हैं गुप्त देख लाइन, लेकिन एक
कि वास्तव में बहुत शक्तिशाली है.
इस प्रकार अब तक, हम सी का उपयोग किया गया है, जो एक संकलित भाषा है.
और सिर्फ एक त्वरित recap-- एक संकलित भाषा क्या विशेषता है?
आप स्पष्ट रूप से संकलन की जरूरत यह, लेकिन इसका क्या मतलब है?
हाँ?
>> छात्र: यह करने की जरूरत मशीन कोड में इकट्ठे हुए.
>> डेविड जे Malan: ठीक है.
इसे इकट्ठा करने की जरूरत है मशीन कोड में.
तो अगर आप अपने स्रोत कोड ले जो अंग्रेजी की तरह की तरह है.
आप करने के लिए कि कन्वर्ट कुछ निचले स्तर पर,
जो अंतत: कहा जाता है वस्तु 0 और 1 के code--.
और यह उन 0 और 1 की कि एक सीपीयू, इंटेल द्वारा किए गए उन लोगों की तरह,
वास्तव में समझते हैं.
>> अब, PHP और पायथन और रूबी और जावास्क्रिप्ट और अन्य के गुच्छों
भाषा संकलित नहीं कर रहे हैं भाषा लेकिन भाषाओं में व्याख्या की,
जो मतलब है कि आप बस फिर उन्हें टाइप और आप 0 और 1 के में उन्हें बारी नहीं है.
आप के बजाय सिर्फ तब के रूप में प्रदान किसी और के कार्यक्रम के लिए इनपुट,
एक दुभाषिया बुलाया.
और उस व्यक्ति की कार्यक्रम तैयार किया गया है
समझने की क्या प्रत्येक और अजगर या PHP में हर प्रतीक
रूबी या किसी भी संख्या का या अन्य भाषाओं का मतलब है.
>> और इसलिए हम सभी की जरूरत है कुछ इस तरह.
तो वास्तव में, मैं जा रहा हूँ उपकरण के लिए खत्म हो जाना
यहाँ, बस में किसी भी पुराने खिड़की, और हम कर रहे हैं
आगे और खुला जाना जा रहा कहा जाता है एक फ़ाइल, नमस्कार, कहते हैं.
अब इससे पहले, मैं बच गया हो सकता है यहां तक ​​कि एक फ़ाइल एक्सटेंशन के साथ इस,
लेकिन मैं क्या करने जा रहा हूँ कुछ यहां और भी आसान.
मुझे आगे जाना है और शुरू करने के लिए जा रहा हूँ इस गुप्त वाक्य रचना के साथ इस फाइल.
तो "उपयोगकर्ता, बिन, वातावरण, पर्यावरण के लिए, PHP. "
>> यह है कि कोड की बस एक पंक्ति है मेरे ऑपरेटिंग सिस्टम बताने जा रहा,
अपने स्थानीय में मिल जाना जो कुछ भी है पर्यावरण,
PHP के interpreter-- is-- जहाँ भी और आगे जाना है और कि दुभाषिया का उपयोग
निम्नलिखित कोड की व्याख्या करने के लिए.
अब, इस तरह की है PHP का एक बदसूरत सुविधा.
लेकिन इस भाषा में, किसी भी बार जब आप PHP कोड लिखने
आप इन बदसूरत में से एक है की जरूरत है शुरुआत Demarcating PHP के टैग
अपने code-- <? PHP की.
>> लेकिन यहाँ नीचे, मैं अब कुछ कर सकते हैं काफी सरल, जैसे printf हैलो अल्पविराम
दुनिया बैकस्लैश एन पास बोली, बंद कोष्ठक.
और फिर सिर्फ अच्छे के लिए उपाय, मैं जा रहा हूँ
आगे और करीब जाने के लिए यहाँ पर मेरे php टैग
इसलिए कि सब कुछ दिखता है अच्छी तरह से सुंदर मुद्रित.
>> और जैसे ही मैं, सहेजें के रूप में एडिट पर्याप्त वास्तव में स्मार्ट है
कि बहुत पहले लाइन को देखने के लिए और ओह, आप PHP कोड लिख रहे हैं, एहसास.
मुझे वाक्य रचना पर प्रकाश डाला रंगों के साथ यह
इतना है कि यहाँ यह खड़ा एक छोटे से अधिक बाहर.
लेकिन अब मैं जा रहा हूँ मेरे टर्मिनल विंडो के नीचे.
मैं में ज़ूम करेंगे.
>> इस कार्यक्रम "हैलो" कहा जाता था तो मैं नमस्कार डॉट स्लेश करने के लिए जा रहा हूँ
लेकिन अनुमति से इनकार किया.
और पार्टी की योजना बनाई.
हम वास्तव में उस के बारे में सुना बात एक दो सप्ताह पहले
SHELLSHOCK के संदर्भ में, उन कीड़ों से एक.
>> लेकिन अनुमति हमने देखा इनकार किया इससे पहले, शायद एक अलग संदर्भ में.
किसी को कैसे याद करता है आप कुछ ठीक कर सकता है
अनुमति के इस तरह से इनकार कर दिया है, जहां?
आदेश में कम से कम, क्या है?
>> छात्र: हमें.
डेविड जे Malan: हाँ, chmod, एक फाइल के मोड को बदलने के लिए.
और आप सभी को और अधिक करने के लिए इस्तेमाल मिलेगा बाद में एक समस्या के साथ यह अगले सप्ताह
सेट.
लेकिन अब के लिए, मैं परिवर्तित करने के लिए जा रहा हूँ मोड, पठनीय होने के लिए नहीं
लेकिन हर कोई executeability देने के लिए विशेषाधिकार, क्षमता
इस फ़ाइल को चलाने के लिए.
और मैं आवंटित करने के लिए जा रहा हूँ फाइल करने के लिए कि नमस्कार.
>> मैं अब डॉट स्लेश करते हैं हैलो, आप दर्ज वास्तव में, देखने, मेरे कार्यक्रम, नमस्ते दुनिया.
और क्या कदम मैंने किया स्पष्ट रूप से पूरी तरह छोड़?
संकलन.
इसलिए मैं अभी काफी बस इस कार्यक्रम में भाग गया.
>> और यह आप के साथ ऐसा कर सकते हैं पता चला है सी की याद ताजा वाक्य रचना का एक बहुत
, मुझे आज के कोड में चलते हैं जो मैं मेरे vhost निर्देशिका में डाल
यहाँ, असली कारणों के लिए हम वापस आऊँगा.
और मैं में जाने के लिए जा रहा हूँ शर्तों 1, हम कहते हैं.
>> और अगर आप पहले, यहाँ देखेंगे और सबसे पहले, टिप्पणी की एक पूरी गुच्छा.
लेकिन यह वास्तव में है PHP में एक फिर से निर्माण
एक कार्यक्रम के हम सप्ताह में किया था एक बुलाया शर्तों 1.c
जहां उद्देश्य में इस कार्यक्रम का जीवन
पूछने के लिए जाहिरा तौर पर है एक पूर्णांक के लिए उपयोगकर्ता
और फिर कुछ शराबी करना यह जिससे पर विश्लेषण
यह सकारात्मक है या अगर आप कहते हैं नकारात्मक या शून्य के बराबर.
और मैं केवल इस ऊपर लाने क्योंकि, शायद एक छोटे से विस्तार के अलावा,
यह सी से अब तक अप्रभेद्य है
>> एक विशेषता क्या है यहां कि शायद बाहर कूदता
एक छोटे से अलग रूप में आप पर?
शायद दो बातें.
हाँ?
>> छात्र: डॉलर के हस्ताक्षर एन?
>> डेविड जे Malan: हाँ.
तो डॉलर के हस्ताक्षर एन मौजूद है.
और डॉलर के संकेत के रूप में हम जा रहे हैं, देख लेंगे
शुरुआत करने के लिए एक तय होने के लिए PHP में किसी भी चर की.
यह दोनों में अच्छा और bad-- अच्छा है यह की तरह स्पष्ट है क्या है कि
यह है कि में बुरा एक चर, अभी तक एक और बात यह है कि टाइप करने के लिए.
और एक दूसरे को वहाँ बात हम नहीं है काफी
कम से कम इस वर्तनी से देखा. हाँ?
>> छात्र: ReadLine.
>> डेविड जे Malan: ReadLine.
ReadLine हम में, असल में, नहीं देखा वहाँ कुछ मौजूद है, भले ही सी,
इसी तरह, हम getstring का उपयोग किया है लेकिन, और यह अपने समकक्ष है.
मैं इस मामले में जाते हैं तो होना होता है जो निर्देशिका,
मैं अपने vhost में एक बिट में समझाता हूँ के रूप में निर्देशिका और मेरे स्रोत एक निर्देशिका,
और मुझे आगे जाना है और डॉट स्लैश करना conditions-- whoops-- डॉट स्लैश
शर्तों 1, तुम, फिर देखेंगे एक ही issue-- अनुमति से इनकार किया.
>> तो मुझे जूम इन करते हैं और एक से अधिक chmod करना शर्तों, डॉट स्लेश शर्तों पर एक्स.
मैं 50, एक पूर्णांक कृपया चाहते हैं.
और हम इस खेल सकता है खेल दिन भर.
यह वास्तव में व्यवहार करने के लिए जा रहा है यह सप्ताह एक में किया था.
>> को छोड़कर, ठीक है तो सब अलग नहीं नहीं वाक्य रचना की है कि बस थोड़ा सा,
लेकिन शीर्ष पर, मैं फिर से इस पंक्ति थी जो
मुझे कुछ बनाने के लिए अनुमति दी है कि हैलो नामक एक सी प्रोग्राम की तरह लग रहा है
कहा जाता शर्तों 1.
लेकिन ऐसा नहीं है 0 और लोगों को मैं सीधे निष्पादित कर रहा हूँ.
यह बजाय यह चल रहा है जिसका नाम दुभाषिया
भाषा के लिए समान होना होता है.
कार्यक्रम अपने कोड PHP बुलाया, और है रेखा के नीचे एक यह में पारित किया जा रहा है.
>> हम एक और काफी सरल कर सकते हैं कुछ की याद ताजा उदाहरण
हम सप्ताह पहले किया था.
फिर, इस का एक प्रकार है कोड का मनमाना हिस्सा
कि जाहिरा तौर पर करता है आप यह क्या चलाते हैं?
क्या यह मुमकिन है, मुद्रित करने के लिए हो रहा है?
>> इसलिए शुरू में लाइन 16 पर, यह है एक्स शायद, अब 2 है कहने जा रहा.
% घ printf के लिए $ मैं के रूप में ही है.
तो फिर यह cubing है, बिंदी, डॉट, रेखा 17 में, बिंदी.
और फिर 18 प्रकट लाइन एक समारोह Cubed कॉल करने के लिए.
और जहां Cubed परिभाषित किया गया है?
>> खैर, यह लाइन 25 में की तरह दिखता है इसलिए कि सब अलग नहीं है.
मैं ऊपर कुछ टिप्पणी मिल गया है यह, लेकिन सबसे अधिक भाग के लिए,
यह एक काफी सरल है पोर्टिंग या रूपांतरण
PHP संस्करण के लिए सी कार्यक्रम से.
लेकिन अब एक जोड़े हैं शायद बाहर कूद चाहिए कि मतभेद.
और क्या आप के बारे में कैसे अलग है सी में यह एक ही प्रोग्राम लिख सकता है?
>> छात्र: [अश्राव्य].
>> डेविड जे Malan: है कोई प्रोटोटाइप ऊपर शीर्ष.
तो PHP-- और स्पष्ट रूप से, एक आधुनिक languages-- की बहुत
एक बहुत चालाक और अधिक सहायक होते हैं सी तुम उस में compilers से
यहां समारोह रख सकते हैं, आप यहाँ नीचे एक समारोह रख सकते हैं
और दुभाषिया जा रहा है आप पढ़ने के पक्ष क्या करना
पूरी फाइल यह निर्णय लेता से पहले कुछ समारोह में मौजूद नहीं है कि.
बाद में तो अच्छा सुधार वर्षों.
लेकिन वहाँ भी कुछ है बाकी अलग या यहाँ अनुपस्थित.
हाँ?
>> छात्र: [अश्राव्य].
डेविड जे Malan: हम की जरूरत नहीं है चर का प्रकार घोषित
इसलिए हम लंबे समय से पहले देखेंगे कि PHP में विभिन्न प्रकार के होते हैं,
लेकिन आप उन्हें निर्दिष्ट करने की आवश्यकता नहीं है, जो भी अच्छा और बुरा दोनों है.
और एक और बात याद आ रही है.
>> छात्र: कोई पुस्तकालयों है.
>> डेविड जे Malan: कोई पुस्तकालयों है.
ठीक है, तो यह अच्छा है.
हम बॉक्स के बाहर एक बहुत अधिक मिलता है.
तो वास्तव में एक बहुत अधिक है मैंने सोचा था कि चीजें अलग थे.
कैसे वापस में रास्ते के बारे में?
वह क्या है?
यह एक बार फिर कहो?
>> छात्र: सूचक.
>> डेविड जे Malan: नहीं संकेत दिए.
ठीक है, कम से कम इस उदाहरण में, नहीं.
यह उचित है.
तो संकेत नहीं हैं वास्तव में सामान्य रूप में PHP में.
कुछ बुलाया संदर्भ हैं, लेकिन हम वहाँ बहुत अधिक समय खर्च नहीं होगा.
और क्या?
>> छात्र: मुख्य.
डेविड जे Malan: मुख्य.
तो यह बड़ी बात थी मैं सोच रहा था.
कोई मुख्य प्रवेश बिंदु वहाँ की सूचना.
आप बस अपने कोड लिखने शुरू करते हैं.
और यह वास्तव में है फायदेमंद होने जा रहा
हम संक्रमण जब क्षण भर वास्तव में उपयोग करने के लिए
के लिए यह एक ही भाषा वेब आधारित प्रोग्रामिंग, जिसके लिए हम
सिर्फ एक प्रवेश बिंदु है नहीं करना चाहती.
हम का एक गुच्छा है चाहते हो सकता है यूआरएल, अलग फ़ाइलों का एक गुच्छा
सभी उपयोगकर्ता इनपुट में ले जा और उत्पादन का निर्माण किया.
>> लेकिन यहाँ बहुत बेहद निराशाजनक है उदाहरण मैं पिछली बार वादा किया था कि
अर्थात् इस फ़ोल्डर में यहाँ, गलत वर्तनी.
जो, इस फाइल वर्तनीकार में तो हम , वहाँ पर बहुत अधिक समय खर्च नहीं होगा
अनिवार्य रूप से एक porting-- पी-ओ-आर-टी. यह जब, कहते दी बस शब्द है
आप एक भाषा से कन्वर्ट मैन्युअल आमतौर पर एक और करने के लिए.
>> इस पीसी के पोर्टिंग है PSET 5 से वर्तनीकार का संस्करण.
और मैं अनिवार्य रूप से बदलने की कोशिश की निकट के रूप में मैं कर सकता हूँ के रूप में रेखा ने यह लाइन.
तो अगर आप इस तरह की बात पसंद है, यह वास्तव में कुछ बिंदु पर लायक है
ऊपर की ओर से उन दोनों को खींच पक्ष और ही है क्या देख
और अलग क्या है.
लेकिन वे सुंदर रफ़ू समान हो.
अगर तुम्हें याद है क्या वर्तनीकार भी, की तरह देखा
तुम नहीं किया, भले ही इस फाइल को बदलने के लिए है,
यह बहुत समान है संरचनात्मक रूप से सिर्फ एक जोड़े के साथ
यहाँ और वहाँ परिवर्तन की.
>> तो यह है कि यह बहुत है कि कहने के लिए ही है वर्तनीकार कन्वर्ट करने के लिए सरल
सी से PHP के लिए.
लेकिन इस शब्दकोश में, वहाँ और भी अधिक सम्मोहक कुछ.
मुझे आगे जाना है और बना दें अपना खुद का dictionary.php फ़ाइल.
उस में तो थोड़ा अलग हम .c की बजाय यह .php फोन करता हूँ.
इस एक PHP फ़ाइल है, क्योंकि मैं थोड़ा है annoyingly-- do--
साथ फ़ाइल शुरू करने के लिए इस तरह एक PHP टैग.
और मैं आगे जाने के लिए जा रहा हूँ और कुछ कार्यों को परिभाषित.
जो चेक बुलाया समारोह, पहले की तरह एक शब्द में लेने के लिए जा रहा है.
लेकिन इस तर्क के एक डॉलर के लिए किया जा रहा
हम, फिर से, PHP का उपयोग कर रहे हैं क्योंकि साइन इन करें.
से एक और समारोह dictionary.c लोड था
और यह एक शब्दकोश के नाम पर ले लिया तो मैं जाने के लिए तैयार है कि समारोह मिलेगा.
>> Dictionary.c में एक दूसरे से क्या था?
आकार में, सबसे अच्छा लोगों में से एक था कम से कम आप के आसपास कुछ परिवर्तनशील रखा है.
इसलिए आकार सिर्फ एक चर वापस जाने के लिए है.
और फिर उतारना था.
>> इसलिए इन चार वहाँ थे समस्या के कार्यों में 5 सेट
आप के साथ लागू करने की जरूरत है कि कुछ डेटा संरचना या संरचनाओं.
तो मैंने वादा किया था कि में पीएचपी, हम घोषणा कर सकते हैं
एक हैश तालिका, उदाहरण के लिए, और अधिक आसानी से यह सब.
वास्तव में, मैं एक हैश तालिका चाहते हैं, मैं ऐसे ही जाने के लिए जा रहा हूँ
और मेरे हैश तालिका है.
और उस पर ध्यान दें, बेहद निराशाजनक है हम पिछली बार पर छोड़ा था कि.
मैं चाहता था और अगर आप, क्या पता आकार के लिए एक चर, ठीक है,
यह एक बिल्कुल नहीं है सी से अलग,
लेकिन मुझे आगे जाना है और ऐसा करने के लिए जा रहा हूँ.
और कोई डेटा प्रकार की सूचना.
और मैं बाद में वापस जाना होगा और वास्तव में यहाँ कुछ टिप्पणी जोड़ें.
लेकिन भार के बारे में क्या?
>> अगर डॉलर के हस्ताक्षर शब्दकोश मेरे फ़ाइल का नाम है
और मैं वास्तव में लोड करना चाहते हैं अब इस तालिका में शब्द,
मैं वास्तव में क्या कर सकते हैं काफी सरल कुछ.
One-- और इस minorly है annoying-- PHP में,
तुम अंदर निर्दिष्ट करने के लिए है एक समारोह के आप अगर
कुछ वैश्विक उपयोग करना चाहते हैं बाहर परिभाषित है कि चर.
>> लेकिन यह है कि विशेष रूप से नहीं है सही अब दिलचस्प.
क्या और अधिक रोचक है यह प्रत्येक के लिए है मैं पिछली बार उल्लेख किया है कि निर्माण.
और यह PHP एक समारोह है कि पता चला है जिसका उद्देश्य जीवन में बुलाया फ़ाइल
एक फ़ाइल को खोलने और पढ़ने के लिए है एक सरणी में अपने लाइनों के सभी
और वापस करने के लिए उन्हें हाथ.
>> जो मैं इतना शब्दकोश कर सकते हैं कहने के लिए है अब प्रभावी रूप से मैं फ़ाइल कॉल जब कि,
इस वापस मेरे हाथ करने के लिए जा रहा है फ़ाइल से शब्दों की एक सरणी.
यह सब अच्छा नहीं है.
यह अभी भी एक लाइन होने जा रहा है शब्द, कुछ रैखिक की.
लेकिन मुझे आगे जाना है और पुनरावृति कर सकते हैं इन शब्दों में से प्रत्येक का उपयोग कर अधिक
उस वाक्य रचना हम संक्षेप में आखिरी बार देखा था.
और आप अधिक यह देखेंगे आगामी PSET में.
>> लेकिन अब मैं एक पाश पुनरावृति है शब्दकोश में प्रत्येक शब्द पर.
और प्रत्येक यात्रा पर, मैं हूँ याद "शब्द भी नहीं." मौजूदा शब्द बुला
और यह सब करने के लिए ले जा रहा है शब्दकोश है में एक शब्द डाल
शब्द लगता होने जा रहा "सच है."
यही मेरी डालने समारोह है.
यही मेरी लोड समारोह मेरे शब्दकोश के लिए.
अब यह क्योंकि एक धोखा का एक सा है, आप वास्तव में क्या है, जानते हैं
शब्द के अंत में बैकस्लैश एन मैं शायद से छुटकारा मिलना चाहिए,
PHP का है क्योंकि लेकिन यह एक समस्या नहीं है एक समारोह में कहा जाता काट जो सचमुच
बहुत अंत में एक चरित्र बंद चोप्स.
तो वहाँ कोई समस्या नहीं है.
हम आगे और वास्तव में चला गया है कि सिर्फ इस लिए छोटा.
और अब मैं शायद ट्रैक रखना चाहिए आकार का है, तो चलो कम से कम this-- करना
आकार ++.
मैं पहले के रूप में कर सकते हैं.
और फिर यह शायद करने जा रहा है की वापसी सच तो यह है कि अभी ठीक काम करते हैं.
डन.
PSET 5.
>> [हँसी]
>> डेविड जे Malan: ठीक है.
हम फिर से ऐसा करने जा रहे हैं अगले PSET, साथ.
तो क्या आकार के बारे में?
खैर, यह एक उम्मीद के बारे में है आप पिछली बार की उम्मीद करेंगे,
मुझे क्या करना है, हालांकि इस बेवकूफ वैश्विक बात.
यह से बस एक विरूपण साक्ष्य है भाषा के डिजाइन.
>> लेकिन जांच एक छोटे से अधिक दिलचस्प है.
मैं डॉलर में पारित कर दिया तो अगर मैं पहली बार, शब्द पर हस्ताक्षर
करने के लिए उपयोग करना चाहते हैं कि वैश्विक चर तालिका.
और अब मैं करना चाहते हैं एक शब्द है, अगर वहाँ जाँच,
मैं बस यह सच है कि अगर कह सकता निम्न तालिका में सेट किया गया है,
तो आगे चलते हैं और वापसी सच; वरना, झूठी वापसी.
डन.
PSET 5 के अन्य आधा.
>> ठीक है, तो फिर, मैं हूँ कुछ कोनों में कटौती.
निष्पक्षता में, मैं शायद चाहिए कुछ और सेकंड खर्च
इस कार्यान्वयन पर.
और मैं शायद सब नकली नहीं चाहिए घंटे आप इतना PSET पर डाल दिया.
तो strtolower एक समारोह है.
कुछ इसी तरह अस्तित्ववादी सी में, कम से कम पात्रों के लिए,
लेकिन PHP के एक पूरे स्ट्रिंग संस्करण है.
>> यही सब कुछ के लिए मजबूर करने के लिए जा रहा है , आप में से जो कुछ लोअरकेस
क्या canonicalize करने के लिए किया गया हो सकता है आप अपने शब्दकोश में डाल रहे थे.
और अब तुम भी, सी में ऐसा कर सकते हैं.
इस PHP के साथ कुछ नहीं करना है.
>> लेकिन किसी भी समय आपके पास एक बूलियन हालत,
लाइन पर कुछ ऐसा केवल जो वहाँ 10,
सच करने के लिए मूल्यांकन करने के लिए जा रहा है या झूठी, और अपने अगर और स्पष्ट रूप से
सही है या गलत लौट रहा है, मैं कर सकता बस वास्तव में इस sexier बनाने
और अभी कुछ इस तरह करते हैं.
तो यह है कि मेरी जाँच समारोह है.
ठीक है, अगर बूलियन एक सच है या एक झूठे रिटर्न
चलो बस सीधे लौटा दो.
>> और कुछ अन्य tweaks वहाँ मैं यहाँ और वहाँ कर सकता है.
Load-- उतारना, वैसे, जो कुछ किया है.
वहाँ कुछ भी नहीं करना है.
स्मृति के सभी में बाद PHP और कई अन्य भाषाओं
वास्तव में आप के लिए किया जाता है.
सी में जबकि, तो जैसा आप दर्द सीखा है,
कुछ भी आप malloc या calloc या realloc, आप अपने आप को मुक्त करने के लिए है.
आप fopen कुछ भी, आप fclose करने के लिए है, संसाधनों अंततः मुक्त कर रहे हैं कि इतने
और वेलग्रिंड जैसे उपकरण नहीं सूचना और शिकायत नहीं है,
जो उन पर चलाने के लिए एक अच्छी बात है.
>> लेकिन निश्चित रूप से, वहाँ चाहिए सही, कुछ को पकड़ सकता?
अन्यथा, हम एक तरह से बर्बाद किया सप्ताह की एक पूरी गुच्छा.
इसलिए कारणों से किसी भी नंबर नहीं है यही कारण है कि हम की तरह, इस पथ ले
लेकिन एक व्यापार बंद है.
ठीक है, यह विषयगत कर दिया गया है.
>> तो क्या एक व्यापार बंद हो सकता है यहां सी से PHP के लिए, चलती?
सभी अब तक अन्य की तुलना में जीत की तरह लगता है यहाँ या वहाँ कुरूपता का एक सा.
हाँ.
वह क्या है?
>> छात्र: [अश्राव्य] स्मृति.
डेविड जे Malan: स्पीड.
ठीक.
खैर, मेरी गति बहुत तेज थी.
है ना?
लेकिन कार्यक्रम के क्रियान्वयन की गति?
ठीक है, इसलिए कि एक निष्पक्ष बिंदु है.
>> यह अग्रिम में, मैं ऐसा होगा तो जैसा दोनों मेरी कोशिश समाधान cued, एक
मैं बड़े बोर्ड पर था एक कोशिश आधारित समाधान, था
और मैं यहाँ इस निर्देशिका में कि है.
तो मैं एक पल में, मुझे आगे जाना है और कर सकते हैं राजा जेम्स बाइबिल पर इस दौड़,
दर्ज मार.
और यह उम्मीद है कि सही है अंत में कार्यान्वयन,
कुल में मुझे समय देता है उस के लिए 0.38 सेकंड का
एक हद तक मनमाना उदाहरण.
>> और मैं अब इस में जाना दूसरे टर्मिनल विंडो
मैं पहले एडिट खोला यहाँ है, जहां जाने मुझे, जो, फिर आज के code-- में जाने
इस निर्देशिका में है here-- और मुझे आगे जाना है और वर्तनीकार चलाते हैं.
तो बस, स्पष्ट होना इस PHP संस्करण है.
मैं बस यहाँ यह की चोटी दिखा रहा हूँ.
>> तो मैं टिल्ड CS50 के वर्तनीकार करते हैं PSET 5 ग्रंथों, राजा जेम्स, दर्ज करें.
यह लेखन की तुलना में अभी भी तेजी सी में यह है, लेकिन कुल समय
जबकि, नोटिस, 0.93, है मेरी सी-आधारित कार्यान्वयन 0.38 था.
तो यह एक गैर तुच्छ अंतर है.
>> और यह सिर्फ एक फ़ाइल पर है.
आप दो से चलाने के लिए गए थे बड़े बोर्ड बनाम कार्यक्रमों
और आदानों की एक पूरी गुच्छा है परीक्षण किया, यह निश्चित रूप से जोड़ना होगा.
और हम भी बड़े डेटा सेट था यह भी सभी को और अधिक अप जोड़ना होगा.
तो हाँ, कुछ कीमत का भुगतान गति की वास्तव में मामला है.
और क्या?
हाँ?
>> छात्र: राम उपयोग की राशि.
>> डेविड जे Malan: राम उपयोग की राशि.
तो मैं एक दूसरा नहीं दिया इस PHP लिखते समय सोचा
के रूप में संस्करण कितना स्मृति मैं उपयोग कर रहा था.
मैं पूरी तरह से PHP के लिए कि deferring हूँ खुद को और जो कोई भी है कि कार्यक्रम लिखा था.
और वह है, ठीक हो सकता है लेकिन मैं अगर वास्तव में सच
के रूप में ज्यादा प्रदर्शन फैलाएंगे देखभाल के बारे में मेरे प्रोग्राम से बाहर या मेरी वेबसाइट से बाहर
या जो भी उपकरण से बाहर मैं शायद, निर्माण कर रहा हूँ
पीएचपी, वास्तव में, सही भाषा नहीं है.
>> और वास्तव में, उस के लिए, क्यों है उदाहरण के लिए, कई वेब servers--
वास्तविक कार्यक्रमों है कि वेब content-- की सेवा
PHP में लिखा नहीं कर रहे हैं या अजगर या रूबी में.
वे तरह, लिखा जाता है अब आप PSEt 6 के साथ क्या करेंगे
आप निचोड़ कर सकते हैं कि इतनी सी में इससे बाहर प्रदर्शन के हर बिट
और वास्तव में व्यायाम क्या अधिक ठीक अनाज नियंत्रण
नीचे चल रहा डाकू और नहीं बस इसे ले
कुछ उच्च के लिए दी स्तर डेटा संरचना.
>> विचार करें, सब के बाद, PHP में जो कोई भी कार्यान्वित
एक हैश की धारणा है कि यह वास्तव में अधिक है table--
ठीक से एक साहचर्य array-- बुलाया वह करता है या वह किस तरह का कोई विचार है
आदानों की आप होने जा रहे हैं संरचना में डाल?
तो जाहिर है नहीं, है ना?
यह एक सामान्य उपकरण है है कि टूलकिट में
चाहता है किसी के लिए प्रदान की इसलिए निश्चित रूप से इसका इस्तेमाल करते हैं, और यह करने के लिए
अंततः अनुकूलित नहीं किया जा सकता वास्तव में आप क्या करना चाहते हैं के लिए.
>> तो व्यापार-offs-- विकास के समय हो सकता है प्रदर्शन में अंतर हो सकता, भिन्न,
जटिलता या स्मृति उपयोग भिन्न हो सकती है.
और तो आप क्या मिलेगा तेजी से है कि वहाँ है
अलग होने जा रहा व्यापार के लिए उपकरण.
और एक सुपर बहुमत के लिए वास्तव में इस वर्ग में लोगों के अंतिम परियोजनाओं,
यह विश्वास है या, सी नहीं जा रहा है नहीं उपयोग करने के लिए सही भाषा हो.
>> और takeaways की वास्तव में, एक अंततः इस तरह से किसी भी वर्ग के लिए
आप के बारे में सोच मिल रहा है, ठीक है, तुम क्या बंद खींच चाहिए
शेल्फ जब आप चाहते हैं कुछ समस्या को हल करने के लिए.
और वास्तव में, हम इस पुल को पार करेंगे यहां तक ​​कि अधिक हम और अधिक भाषाओं को देखने के रूप में
आज भी परे.
>> तो अब करने का संक्रमण करते हैं शायद एक अधिक परिचित संदर्भ
PHP जैसे एक भाषा प्रयोग करने के लिए.
यह उपयोग करने के लिए कुछ हद तक सामान्य है स्क्रिप्ट लिख कमांड लाइन,
जैसे मैंने किया था, लेकिन यह बात है , और अधिक आम ज्यादा.
और उस में इस्तेमाल किया जा करने का इरादा था आम तौर पर खत्म हो गई फ़ाइलों के प्रपत्र
में .php-- लेकिन है कि नहीं एक prerequisite--
खुद को वेब सामग्री उत्पन्न कि.
>> तो मुझे आगे चलते हैं और कुछ खुले उदाहरण मैं पहले से तैयार.
और ये वास्तव में की तरह सच हैं पहले चीजों में से एक है कि में कहानियों
मैं कभी खत्म होने के बाद खुद को किया CS50 और शायद, मुझे लगता है,
CS51 साल पहले है मेरी रूममेट और मैं मदद कर रहे थे
नए अंदर चलाने के लिए खेल कार्यक्रम, समय पर जो,
नए विभिन्न लिए पंजीकरण था एक कागज का टुकड़ा भर कर खेल,
यह कहा जाता था, घूमना Wigglesworth के लिए यार्ड में,
और कुछ में इसे छोड़ने प्रॉक्टर के दरवाजे ड्रॉप.
और फिर वह या वह के माध्यम से जाना होगा उन्हें और तब वास्तव में मैन्युअल हमें ईमेल
हम कुछ खेल के लिए पंजीकृत किया गया है.
>> तो जाहिर है, एक अवसर सुधार के लिए.
इन दिनों, तुम बस को बदल सकता है गूगल फार्म, लेकिन दिन में वापस,
हम वास्तव में इस for-- पहुँचना था यहां तक ​​कि लंबे समय ago-- तक नहीं पहुँच गया था
एक प्रोग्रामिंग के लिए PHP नहीं था कि भाषा.
समय, यह था पर्ल बुलाया कुछ,
जो बाद प्रचलन से बाहर चला गया है.
लेकिन विचार ही है.
>> और मैं अनिवार्य रूप से प्रयास करने के लिए बैठ गए पोर्ट PHP के लिए पर्ल संस्करण चला जाता है,
लेकिन पूर्ण Disclaimer में, नहीं दिया किसी भी बस अभी तक सौंदर्यशास्त्र के लिए सोचा.
तो यहाँ एक वेब पेज है.
यह एक फ़ाइल है.
मैं जूम इन करते हैं, इसका जाहिरा तौर पर कहा जाता froshim0.php
बस यह हमारी पहली क्योंकि इस श्रृंखला में उदाहरण.
और ऐसा लगता है क्या है कि नोटिस एक बहुत बदसूरत HTML फार्म होने के लिए,
लेकिन एक फार्म दिलचस्प है यह अनुमति देता है
मुझे ब्राउज़र को उपयोगकर्ता इनपुट प्रदान करने के लिए.
>> अब पिछली बार हम करने के लिए, एक रूप था जब जिसे हम अपने क्वेरी पैरामीटर प्रस्तुत किया
यह कहा जाता था कतार पैरामीटर?
ठीक है, गूगल के लिए तो?
हम पूरी तरह से विचार पर punted कि इनपुट के साथ कुछ भी कर रहे हैं.
>> लेकिन आज, हम उत्पादन का उत्पादन शुरू.
और व्यवहार मैं देखने जा रहा हूँ यहां शुरू में बहुत तुच्छ है.
डेविड, मैं लिंग बंद देख लेंगे यहाँ, यहाँ मैथ्यू कहते हैं.
मैं कप्तान नहीं होगा.
मुझे पंजीकरण क्लिक करने के लिए जा रहा हूँ.
और यूआरएल है कि नोटिस रजिस्टर-0.php करने के लिए बदल गया है,
और फिर यहाँ इस बदसूरत पाठ है.
मैं करने के लिए कोई विचार नहीं दिया इस के स्वरूपण.
>> लेकिन क्या दिलचस्प है कि तीन है मूल्यों जाहिरा तौर में पारित किए गए.
इस के लिए PHP के प्रकार है printf-- के बराबर
हम यह वास्तव में क्या कहा जाता है देखेंगे बस से बाहर है कि प्रिंट एक bit-- में
क्या आप इसे में पारित कर दिया.
तो यह है कि फार्म पता चलता है कि यह करने के लिए कम से कम तीन क्षेत्रों पड़ा
और तुम मुझ में उन्हें प्रकार देखा.
एक मेरा नाम था, एक था लिंग, एक छात्रावास था.
और कप्तान भी करने के लिए नहीं भेजा था पाने सर्वर मैं यह जाँच नहीं की थी क्योंकि.
>> तो यह जाहिरा तौर पर कहना है, आप वेब पर चीजों को प्रस्तुत करते हैं,
न केवल कभी कभी यूआरएल करता है change-- कभी कभी यह नहीं है.
वास्तव में, फ़ाइल नाम बदल गया है, लेकिन यूआरएल से अनुपस्थित क्या है
हम गूगल के साथ आखिरी बार देखा था कि.
हाँ?
>> छात्र: कोई क्वेरी स्ट्रिंग
>> डेविड जे Malan: कोई क्वेरी स्ट्रिंग है.
कोई प्रश्न चिह्न कुछ है.
कोई सवालिया निशान क्यू नहीं है हम पिछली बार किया था, बिल्लियों के बराबर होती है.
और कोई निश्चित नहीं है प्रश्न चिह्न नाम के बराबर होती है
डेविड या छात्रावास मैथ्यू के बराबर होती है, इसलिए जहां सब हो रहा है कि?
>> खैर, मुझे यहाँ वापस एडिट करने के लिए जाओ और उन फ़ाइलों की पहली खोल
मेरे vhost में, स्थानीय मेजबान, सार्वजनिक यहां निर्देशिका और froshim0 में चलते हैं.
तो यह है कि लगभग बाहर हो जाता है इस पृष्ठ के सभी बस HTML है.
और यह आप के लिए अपरिचित हो सकता है लेकिन यह जल्दी ही PSET 6 के साथ तो और अधिक हो जाएगा
और PSET 7 और PSET 8.
लेकिन यह सिर्फ एक HTML पृष्ठ है.
>> और दिलचस्प सामान यहाँ पर हो रहा है.
जिसका कार्रवाई विशेषता एक फार्म टैग रजिस्टर 0 के एक मूल्य है.
मैं प्रस्तुत जब यही कारण है कि यही नहीं, यह उस फ़ाइल को जाता है.
लेकिन विधि अलग today-- पोस्ट है.
तो यह कम से कम वहाँ है पता चला है इस्तेमाल किया वेब पर दो तरीकों
जानकारी भेजने के लिए ब्राउज़र से सर्वर से.
प्राप्त यूआरएल में डालता है.
पोस्ट कहीं डालता है.
और कब और क्यों तुम हो सकता है वास्तव में एक वेबसाइट चाहते हैं
के बजाय फिर पद का उपयोग करने के लिए की बस intuitively, मिलता है?
कोई वेबसाइट.
डेटा का किस तरह सिर्फ पारित किया जाना चाहिए पोस्ट के माध्यम से अब अनुमान से विरोध के रूप में
हमने देखा है, तो पाने के लिए दो मतभेद?
छात्र: [अश्राव्य] सुरक्षित.
डेविड जे Malan: यदि आप चाहते हैं कुछ सुरक्षित हो.
तो आप एक पासवर्ड टाइप सकता है एक वेबसाइट में एक क्रेडिट कार्ड
एक वेबसाइट में होगा इन suboptimal की तरह
ब्राउज़र डाला कि अगर यूआरएल के अंदर मूल्य.
क्यों?
नहीं करता है जो आप इसे देखना इतना बड़ा सौदा होने लगते हैं,
लेकिन हालात तुम बहुत अक्सर चलना हैं दूर अपने कंप्यूटर या उपयोग कंप्यूटर से
प्रयोगशालाओं, और इसलिए किसी को बाकी या यहां तक ​​कि एक रूममेट
आसानी से चल सकते हैं और देख सकता है कि निजी जानकारी.
आप एक ईमेल भेजने के लिए वेब के माध्यम से, आप शायद
उस डेटा को समाप्त नहीं करना चाहती यूआरएल में के रूप में अच्छी तरह से.
और इसलिए कारणों से किसी भी नंबर नहीं है हम यहाँ क्यों रखा करने के लिए चाहते हो सकता है.
Photos-- सही और, मैं नहीं कर सकता भी काफी तुम एक ग्राफिक ले जाएगा सोच भी कैसे,
एक जेपीईजी की तरह, और एक यूआरएल में डाल दिया.
आप यह कर सकता है.
वहाँ यह एन्कोडिंग के तरीके है, लेकिन यह बात है ऐसे ही सीधा नहीं.
>> तो 0 वास्तव में है रजिस्टर बहुत underwhelming.
सभी यह सचमुच यह है कहते हैं.
यह कुछ के अंदर बाहर प्रिंट एचटीएमएल निम्नलिखित टैग.
मैं यहाँ एक PHP टैग मिल गया है एक पूर्व टैग के अंदर नेस्ट.
"पूर्व" बस, पूर्व स्वरूपित पाठ का मतलब एक टाइपराइटर की तरह, मोनो स्थान दिया गया है.
>> Printr एक प्रिंट पुनरावर्ती समारोह है.
और फिर यह नहीं है यहां दिलचस्प बात.
और हम यह करने के लिए वापस आ गया हूँ दूसरों क्योंकि वहाँ,
लेकिन डॉलर के हस्ताक्षर अंडरस्कोर पद प्रतीत होता है
PHP में एक चर जो किसी भी चीज़ में आप सर्वर से ब्राउज़र से भेजें
आप के लिए जमा हो जाता है.
और हम में प्राप्त करने के लिए कैसे देखेंगे लंबे समय से पहले कि जानकारी.
>> लेकिन पहले, के लिए वापस जाओ एक अलग उदाहरण.
Register-- में जा रहे हैं या बल्कि, froshims1.php,
जो थोड़ा अलग दिखता है.
मैं एक छोटे से अधिक ले लिया स्वरूपण के साथ प्रयास,
भले ही यह अभी भी बहुत बदसूरत है.
लेकिन मैं आगे जाने के लिए जा रहा हूँ और अब "डेविड" में टाइप करें.
पुरुष.
हम "कप्तान" इस बार देखता हूँ.
हम मैथ्यू करूँगा.
और रजिस्टर.
>> और इस बार यह एचएम, वास्तव में नहीं है, कहते हैं.
ठीक है, तो क्या है 1 रजिस्टर?
मुझे खुला रजिस्टर 1 and-- एचएम में चलते हैं.
सब ठीक है, तो यह है दिलचस्प है, और इस
एक कदम पत्थर अब की ओर है अधिक दिलचस्प कार्यक्रम.
>> इस फाइल एक है के शीर्ष नोटिस PHP के टैग के साथ-साथ कुछ टिप्पणियों.
और ये, अब के लिए, एक व्याकुलता हैं तो चलो बस उन टिप्पणियों से छुटकारा मिलता है
वे सी में हैं और मैं दावा बस की तरह एक टिप्पणी के साथ कोड के इस खंड के साथ
इस कोड है कि प्रस्तुत मान्य.
>> खैर, यह पता चला है कि डॉलर के हस्ताक्षर की तरह चर
पोस्ट अंडरस्कोर सुपर वैश्विक कहा जाता है.
वे इस तरह से कर रहे हैं विशेष वैश्विक चर
कि सिर्फ ओमनी-वर्तमान में कर रहे हैं अपने कार्यक्रम के भीतर उपलब्ध.
और तुम वर्ग ब्रैकेट संकेतन का उपयोग कर सकते हैं सूचकांक के लिए उन्हें नंबर का उपयोग नहीं में
0, 1, 2, 3, लेकिन वास्तविक शब्दों की तरह.
>> तो तुम डॉलर के हस्ताक्षर के बारे में सोच सकते हैं एक हैश तालिका के प्रकार के रूप में पद अंडरस्कोर
यदि आप एक खोज में एक प्रमुख पारित कर सकता शब्द-इन के बीच वर्ग कोष्ठक,
और इसे वापस तुम्हें देने के लिए जा रहा है उपयोगकर्ता वास्तव में प्रदान की जाती है कि मूल्य.
PHP एक समारोह है उस खाली बुलाया बस
यह हाँ या ना का कहना है चर खाली है या नहीं.
हम इन डबल सलाखों है, जो सिर्फ सी में पसंद है, इसका मतलब है या
>> तो प्रभाव में, इस लाइन 4 बस है उपयोगकर्ता एक नाम नहीं दिया तो कह
या एक लिंग नहीं दे या नहीं किया था एक छात्रावास दे, आगे बढ़ो और उसे पुन: निर्देशित
या उसके यहां इस लाइन के माध्यम से.
तो यह एक छोटे से गुप्त है लेकिन यह सिर्फ शाब्दिक अर्थ
इस स्थान के लिए वापस जाओ, इसलिए यह उपयोगकर्ता punts
वापस वह या वह से आया जहाँ भी.
लेकिन यह एक छोटे से असजीला है उस में मैं मुश्किल यह कोडित.
>> लेकिन क्या यह तो हालत सच करने के लिए मूल्यांकन नहीं करता है?
उपयोगकर्ता मुझे क्या दिया अगर उसके या उसके नाम और छात्रावास और लिंग?
हालत नहीं है कि अगर सच करने के लिए मूल्यांकन करने के लिए जा रहा है,
इसलिए मैं लाइन 7 में बाहर निकलने मत मारो.
तो क्या होता है?
और यह क्या है PHP के बारे में दिलचस्प.
>> आप में और बाहर ड्रॉप कर सकते हैं PHP के मोड की, तो बात करने के लिए.
आप कुछ कोड निष्पादित करने के लिए चाहते हैं, आप खोल सकते हैं और एक PHP टैग बंद कर सकते हैं
मैं यहाँ किया गया है और वहाँ कोड डाल दिया.
जैसे ही आप बंद के रूप में PHP के टैग, सर्वर
सिर्फ बाहर थूक जा रहा है जो कुछ भी तुम वहाँ डाल दिया.
और वास्तव में, इस का हिस्सा था PHP के मूल डिजाइन,
बदतर के लिए बेहतर करने के लिए, यह था कोड और मार्कअप के commingling
भाषा.
और हम इस बहुत देखेंगे कि जल्दी से एक मेस में devolves.
और इसलिए हम से बेहतर कर लेंगे यह अंततः, लेकिन बस
मैं हूँ जिस आसानी नोटिस कुछ तर्क निष्पादित करने के लिए वास्तव में सक्षम.
>> लेकिन अभी भी थोड़ा underwhelming.
संस्करण को खोलने के चलो Frosh आईएमएस के दो जो
जाहिरा तौर पर register2.php को प्रस्तुत करें.
तो इस फाइल को वास्तव में हो रहा है लगभग एक ही देखने के लिए.
मैं Frosh आईएमएस 2 पर जाने के लिए जा रहा हूँ.
लेकिन Frosh आईएमएस 2 में, क्या होता है देखते हैं.
>> दाऊद, रूप, रेडियो बटन को क्लिक करें यह कहा जाता है; मैथ्यू, कोई कप्तान.
रजिस्टर.
आप पंजीकृत हैं.
ज़रूरी नहीं.
ओह रुको, हम बस किया कि उदाहरण के लिए, हम नहीं किया था?
सब ठीक है, द्वारा खड़े हो जाओ.
हम तीन करूँगा.
स्पष्ट रूप से कुछ के बारे में है जीमेल के साथ हो लिए.
हम वहाँ मिल जाएगा.
>> तो Frosh आईएमएस 3 इस तरह दिखता है.
कोई अलग.
लेकिन जब मैं दाऊद, पुरुष, मैथ्यू, और , इस तीसरे और अंतिम संस्करण रजिस्टर
दावा है, काफी बस, आप वास्तव में पंजीकृत हैं.
उस तरह का सारहीन है.
लेकिन मैं इस के साथ दावा तीसरे और अंतिम संस्करण
मैं अब वास्तव में क्या निर्मित है मेरी रूममेट और मैं Frosh आईएमएस के लिए बनाया
पहले कार्यक्रम के वर्षों.
और यह आसान था.
कोई डेटाबेस, वहाँ था एक्सेल स्प्रेडशीट नहीं.
लेकिन अधिक महत्वपूर्ण बात, कोई और अधिक कागज नहीं थी
हम इस कार्यक्रम के साथ क्या किया था क्योंकि , वास्तव में प्रॉक्टर ईमेल करने के लिए किया गया था जो
पहले प्राप्त था रूपों के माध्यम से इन बातों को.
>> और जाहिरा तौर पर हम में इस प्रोग्राम किया गया है इस तरह से किसी को पंजीकृत करता है जब कि,
जॉन हार्वर्ड के खाते ईमेल इस मामले में proctor-- या खुद को,
साथ जॉन Harvard-- निम्नलिखित text-- "यह व्यक्ति बस दर्ज की गई."
नाम, कप्तान को खाली है दाऊद है; लिंग, पुरुष; और छात्रावास, मैथ्यू.
>> तो वहाँ क्या हुआ?
यहाँ प्रश्न में ठीक है, फ़ाइल जाहिरा तौर पर register3.php है.
मैं इस खोलने और अगर, आप देखेंगे इस तरह कोड की शक्ति दोनों
और भी, सच में, असुरक्षा ईमेल की तरह एक प्रणाली की.
मैं सिर्फ प्रभावी ढंग से करने के लिए नाटक किया है जॉन हार्वर्ड निम्नलिखित तरीके से हो.
>> मैं, ऊपर ऊपर खुला PHP टैग है जो बस यहाँ कहते हैं कुछ PHP कोड आता है.
यहाँ नीचे, वहाँ पता चला है PHP में पुस्तकालयों हैं.
तुम बस की जरूरत नहीं है जितना हेडर फाइल शामिल हैं.
आप अधिक के साथ मिल पानी के नल, तो बात करने के लिए.
>> लेकिन लाइन 4 में इस बार, मैं क्या कर कहा जाता है विशेष पुस्तकालय करना चाहते हैं
कुछ आप जो PHP के मेलर, कई प्रणालियों में मुक्त करने के लिए स्थापित कर सकते हैं.
यहाँ नीचे मैं मान्य कर रहा हूँ प्रस्तुत बस
उपयोगकर्ता दिया जाँच करके मुझे एक नाम, एक लिंग, और एक छात्रावास.
और यदि ऐसा है तो, आगे बढ़ो और एक मेलर इन्स्तांत.
>> आप एक होने के रूप में इस के बारे में सोच सकते हैं सिर्फ आवंटित कोड की पंक्ति.
यह malloc की तरह है लेकिन यह एक छोटे से sexier है
उस में आप न सिर्फ उल्लेख malloc और कुछ सामान्य संख्या.
आप मुझे इन में से एक दे कहना मुझे इनमें से एक नया दे.
>> और तुम में प्रोग्राम किया गया है अगर जावा या सी ++ या अन्य भाषाओं
आप इस देखा हो सकता है.
लेकिन यह की कमी, अगर अपरिचित, इस लाइन
डॉलर के हस्ताक्षर मेल में डालता कहा जाता है एक विशेष संरचना
में बनाया गया है कि एक वस्तु ईमेल कार्यक्षमता.
और वास्तव में, नोटिस और इसी तरह के वाक्य रचना.
>> यह एक सूचक, असल में नहीं है.
PHP का सिर्फ एक ही वाक्य रचना का उपयोग करता है.
इस पंक्ति का उपयोग कह रहा है SMTP-- साधारण मेल स्थानांतरण
बस है जो प्रोटोकॉल, प्रोटोकॉल मेल भेजने के लिए इस्तेमाल किया.
इस प्रयोग को निर्दिष्ट है हार्वर्ड एसएमटीपी सर्वर, जो
परिसर में यहीं कहीं है.
>> यह क्या कह रहा है टीसीपी संख्या के लिए बात करने के लिए बंदरगाह,
और मैं बस से पता लगा कि googling या मदद डेस्क पूछकर.
और फिर हार्वर्ड कुछ का उपयोग करता है क्योंकि मेल server-- पर सिस्टम सुरक्षा
कम से कम एन्क्रिप्ट करने के लिए आप और यह के बीच यातायात,
किसी को भी it-- को भेज सकते हैं, भले ही मैं टीएलएस प्रोटोकॉल पर बारी करने के लिए जा रहा हूँ
इस सुरक्षित रखने के लिए.
>> लेकिन इस जहां चीजें है थोड़ा डरावना मिलता है.
मैं सिर्फ मनमाने ढंग से कर सकते हैं , मैं jharvard हूँ कहना है कि
और मैं सिर्फ मनमाने ढंग से कर सकते हैं यहाँ अपने आप को ईमेल करें.
और फिर मैं एक निर्दिष्ट कर सकते हैं यहां इस लाइन के साथ इस विषय.
>> और यह सिर्फ बदसूरत दिखता है, लेकिन यह बात है कड़ी का एक गुच्छा.
, PHP एक सुपर उपयोगी प्रतीक है बाहर वर्षगांठ कुछ भाषाओं की तरह, डॉट ऑपरेटर,
जो सिर्फ शाब्दिक concatenates स्ट्रिंग स्ट्रिंग के बाद स्ट्रिंग के बाद,
और आप malloc या आंकड़ा नहीं करना पड़ेगा स्ट्रिंग की कुल लंबाई बाहर.
आप सिर्फ यह करना है.
और वास्तव में, मैं concatenating हूँ क्योंकि इन डॉट्स के साथ इन सब बातों के अलावा,
यही कारण है कि ईमेल मैं है यह था के रूप में भेजा देखा.
>> और फिर अंत में यहाँ, मैं मेल भेज रहा हूँ.
इस झूठी है तो, अगर मैं तो बस, मरने के लिए जा रहा हूँ
जो एक समारोह है कि सिर्फ प्रिंट स्क्रीन कुछ त्रुटि संदेश.
लेकिन यह वास्तव में है, भेजें समारोह बुला.
अन्यथा, यह सब विफल रहता है, यह मुझे यहाँ वापस पुनर्निर्देश.
>> और मुझे लगता है कि क्यों देखा मैं वास्तव में पंजीकृत कर रहा हूँ?
खैर, यह यहीं हुआ.
तो मैं के लिए इस लाने कारणों में से एक जोड़े.
>> एक, यह आप कैसे निर्माण अगर ठीक है एक अंतिम परियोजना के लिए कुछ वेबसाइट
या असली दुनिया के लिए, यह है आप ईमेल अनुस्मारक भेजने कैसे
अपने ग्राहकों या अपने ग्राहकों के लिए.
यह आपको पासवर्ड याद दिलाते भेज कैसे है.
यह आप लोगों को संदेश भेजने कैसे है वे एक नया फेसबुक है कि
संदेश लंबित या ऐसा कुछ.
>> लेकिन यह भी करने के लिए बोलता है तथ्य यह है कि यह कर सकता है
से बहुत अच्छी तरह से किया गया है डेविन या किसी और को.
और मैं इस तरह का कहना है एक मुस्कान के साथ मैं हूँ क्योंकि
के माध्यम से क्या हो रहा है बहुत यकीन इस बिंदु पर अपने मन की कई.
लेकिन यह उन लोगों में से एक मैं के रूप में करना है , मैं चीजों की तरह कर के रूप में नहीं, कहना
यह करने के लिए तुच्छ है क्योंकि इस तरह से ईमेल बना.
लेकिन आप देखा हो सकता है के रूप में या क्रिमसन में पढ़ा,
की देर से यह भी सुंदर है लोगों के लिए तुच्छ
वापस कुछ मूल उन्हें पता लगाने के लिए.
और शायद, मुझे कुछ समय पूछना CS50 दोपहर के भोजन पर, कैसे मैं पहली बार
बहुत बारीकी से परिचित हुए लगभग एड बोर्ड कई वर्षों के लिए
पहले मुझे पता चला जब कैसे इंटरनेट काम किया.
किसी भी थोड़ा case-- में तो एड बोर्ड ने किया के बाद.
>> इसलिए किसी भी मामले में, वहाँ है एक सुपर वैश्विक की पूरी गुच्छा,
वे यहाँ बुलाया रहे हैं, जिनमें से एक हम डॉलर के हस्ताक्षर अंडरस्कोर पोस्ट saw--.
पाने नामक समकक्ष नहीं है, जो किसी URL से जहां सामान है
जा रहा समाप्त होता है.
और दूसरों के एक पूरी गुच्छा, वहाँ too-- सत्र और सर्वर और कुकी.
हम करने के लिए वापस आ गया हूँ कुछ अन्य समय कुकी,
लेकिन सत्र शांत की तरह है क्योंकि सही now-- ऊपर now-- तक
सब कुछ हम एक वेब ब्राउज़र के साथ किया है की तरह राज्यविहीन है, तो बात करने के लिए.
मैं चारों ओर क्लिक कर सकते हैं, का उपयोग सर्वर, कुछ पर फाइलें
स्क्रीन पर होता है, लेकिन फिर कनेक्शन बंद कर देता है.
इंटरनेट एक्सप्लोरर या फ़ायरफ़ॉक्स आइकन कताई बंद हो जाता है
और आप बस देखते हैं क्या उस वेब पेज में शामिल है.
>> तो एचटीटीपी कि में राज्यविहीन है यह एक संबंध बनाता है एक बार,
यह बात है, कुछ डेटा हो जाता है.
कोई और अधिक कनेक्शन, स्काइप के विपरीत, Facetime, विपरीत Gchat, विपरीत जो
एक निरंतर बनाए रखता है सर्वर से कनेक्शन.
वेब मौलिक है , हालांकि हम करेंगे काट दिया
लंबे समय तक कैसे पहले देखना हम चीजों अनुकरण कर सकते हैं
फेसबुक चैट और Gchat तरह, जो illusion-- बनाए रखने के
या वास्तव में एक बनाए रखने के लिए करते हैं का उपयोग निरंतर कनेक्शन
अधिक आधुनिक तकनीक.
>> लेकिन मैं करने के लिए जाते हैं, का कहना है, counter.php, यह एक सरल उदाहरण है,
हम देखेंगे कि, जैसा कि वर्तमान में सोचता है मैं साइट शून्य समय का दौरा किया.
लेकिन मैं बस पृष्ठ को फिर से लोड करते हैं, यह किसी भी तरह मैं यहाँ पहले था जानता है.
मैं फिर से फिर से लोड है, यह मैं यहाँ पहले था जानता है.
और फिर और फिर और फिर और फिर.
>> तो कुछ प्लस-plussing वहाँ चल रहा है, लेकिन नोटिस
छोटी सी बात तो कभी spins संक्षेप में ऊपर और फिर डिस्कनेक्ट,
तो यह है कि मैं एक स्थिर है पसंद नहीं है मेरी उपकरणों के लिए कनेक्शन.
खैर, मैं counter.php में जाओ, यह कैसे सरल नोटिस.
मैं पहली बार इस खास फोन समारोह है कि हम जल्द ही करेंगे
के लिए दी लेने शुरू सत्र शुरू कहा जाता.
एक सत्र प्रारंभ करें.
>> और एक सत्र अब से बस है एक खरीदारी की तरह, एक बाल्टी होने जा रहा
आप मान रख सकते हैं जिसमें गाड़ी और एक तरह से एक प्रोग्रामर के रूप में भरोसा
वे जब यहां होने जा रहे हैं कि कि उपयोगकर्ता एक दूसरे back-- आता
बाद में, एक घंटे बाद, यहां तक ​​कि एक साल बाद, वह या वह स्पष्ट नहीं करता है के रूप में इतने लंबे समय
उनके कुकीज़, हम अंत में देखेंगे के रूप में.
और अब मैं सिर्फ है यहां एक अगर हालत.
तो निम्नलिखित प्रमुख हैं, कहा जाता काउंटर, अंदर सेट है
इस सुपर के इस हैश global-- मेज, तुम्हें बुलाया सत्र will-- हैं,
तो आगे चलते हैं और हड़पने session-- थिंक से मूल्य
एक शॉपिंग के रूप में इस का cart-- और यह स्टोर
काउंटर नामक एक अस्थायी चर में.
>> अन्यथा, कि मूल्य काउंटर अगर था तथाकथित खरीदारी की टोकरी में सेट नहीं,
बस इसे 0 को प्रारंभ.
अन्त में, यहाँ नीचे, जाओ और वापस डाल शॉपिंग कार्ट या सत्र में
काउंटर + 1 के लिए मूल्य.
तो यह इस पता चला है कि विशेष कंटेनर here--
जो, फिर से, इन जुड़े से एक है सरणियों, एक सरणी है कि आप कर सकते हैं सूचकांक
बजाय numbers-- के शब्दों में उपयोगकर्ता दूर हो जाता है, के बाद भी बनी रहती है.
फिर, मैं अब वापस पृष्ठ के लिए जाना होगा.
यह या तो एक मिनट हो गया है.
लेकिन यह है कि मैं याद रखता है 19 बार यहाँ पहले.
यह मेरी 20 वीं यात्रा है.
>> और इसलिए यह करने के लिए महत्वपूर्ण होने जा रहा है याद रखता है कि किसी भी वेबसाइट को लागू
तुम डाल दिया है कि, में लॉग इन कर रहे हैं कि अपने शॉपिंग कार्ट में शाब्दिक कुछ
खरीदने के लिए या आप कुछ है कि करने के लिए संदेशों की संख्या लंबित.
जब भी आप करना चाहते हैं जानकारी याद है,
हम जैसे, कि PHP देखेंगे कई अन्य भाषाओं,
राज्य के इस भ्रम के साथ हमें प्रदान करता है भले ही आप PSET 6 में देखेंगे के रूप में,
के रूप में आप HTTP अनुरोध कर रहे हैं ग्राहक से सर्वर के लिए, यह बात है.
आपको लगता है कि वापस मिल जाने के बाद प्रतिक्रिया, अधिक कुछ भी नहीं है
डिफ़ॉल्ट रूप से वापस सर्वर से आ रहा है.
लेकिन हम उस के आसपास काम करने के लिए कैसे देखेंगे.
>> खैर अब, के लिए कोशिश करते हैं एक छोटा सा यह साफ.
हम कुछ देखा है वहाँ विभिन्न उदाहरणों.
ओह, और एक तरफ, के रूप में के लिए परिचित या अपरिचित उन,
कारण यह है कि Frosh आईएमएस उदाहरण चला गया
वास्तव में देखने से अच्छी तरह से slightly-- को बदसूरत,
अभी भी थोड़ा को ugly-- अभी भी बदसूरत हालांकि कम बदसूरत
हम देखते हैं क्योंकि अगर है यहां स्रोत कोड में,
यह मैं यह पता चला है कि फ़ाइल के ऊपर से ही.
>> बूटस्ट्रैप कई में से एक है कि पता चला है वहाँ से बाहर स्वतंत्र रूप से उपलब्ध पुस्तकालयों
प्रोग्रामिंग भाषा के लिए नहीं है कि अस्तित्व हमेशा की तरह, लेकिन सीएसएस के लिए या जावास्क्रिप्ट के लिए
HTML या भाषा के किसी भी संख्या या.
>> Here-- और इन लोगों मूल रूप से बाहर आया
Twitter-- की बस है शैलियों की एक पूरी गुच्छा.
यह एक बड़े पैमाने पर फ़ाइल है यहां किसी ने लिखा है कि,
या किसी के समय के साथ, ने लिखा है कि रंग और स्वरूपण निर्दिष्ट
और whatnot मैं कर सकता हूँ कि इतने एक तरह से उनके सिंटैक्स उधार
और यह पता लगाने की जरूरत नहीं कैसे अपने फार्म बाहर करना.
यह भी minified है एक कंप्यूटर कर सकते हैं कि इतना
यह समझ में नहीं बल्कि जरूरी नहीं कि एक मानव.
इसलिए कि अभी क्यों है stylization वहाँ बदल दिया है.
>> लेकिन अब बेहतर करते हैं डिजाइन के मामले में,
हम नीचे रहने क्योंकि अगर बहुत लंबे समय से इस सड़क,
हमारे कोड जा रहा है गंदा और मेसियर मिलता है.
तो चलो यहाँ इन उदाहरणों पर ध्यान केंद्रित करते हैं.
आज के लिए पिछले.
>> तो यहाँ एक सुपर सरल है CS50 की वेबसाइट के संस्करण 1.0.
यह केवल लिंक करने के लिए है व्याख्यान और पाठ्यक्रम,
और यह कि unordered सूची का उपयोग कर रहा है हम पिछली बार इस्तेमाल किया कि उल टैग tag--.
और वास्तव में अगर, मैं अगर , पृष्ठ स्रोत देखें खोल
आप यह है कि देखेंगे वास्तव में, वास्तव में सरल HTML.
और वास्तव में, यह है कि भले ही हुड के नीचे एक PHP फ़ाइल,
यह अभी भी सिर्फ थूकना है अब के लिए बाहर ही एचटीएमएल.
>> तो मैं व्याख्यान पर क्लिक करते हैं, हम देखना यह होगा.
और मैं सप्ताह पर क्लिक करें शून्य, हम देखते हैं.
और मैं पर क्लिक करें बुधवार, हम देखते हैं.
और यह जाहिरा तौर पर पीडीएफ था उस दिन से स्लाइड की.
मैंने किया है सभी एक साथ लिंक है यहाँ इस यूआरएल को लंगर टैग.
>> तो यह है कि यह एक बहुत है कहने के लिए ही है CS50 की वेबसाइट का सरल संस्करण.
चलो इसे लागू किया है कि कैसे देखते हैं.
मैं mvc0 निर्देशिका में जाओ, हम कुछ फ़ाइलों को देखेंगे.
एक एक README है, यदि ऐसा है तो इसमें से कुछ भी तेजी है
तुम बस के चारों ओर से प्रहार कर सकते हैं अधिक इत्मीनान से बाद में.
और यहाँ में नोटिस एक index.php फ़ाइल है.
अगर यह पता चला है कि तुम अपने आप को, मानव,
में एक अंतिम नाम निर्दिष्ट नहीं करते एक यूआरएल, आमतौर पर वेब सर्वर
आप के लिए कुछ डिफ़ॉल्ट नाम infers.
एक सूचकांक डॉट कुछ आम तौर पर तयशुदा है.
>> तो यह है कि क्यों एक पल पहले है मैं यहाँ इस यूआरएल का दौरा करते हैं,
कोई फ़ाइल नाम, कोई फ़ाइल विस्तार, URL में कोई अवधि.
यह सिर्फ जादुई किसी तरह पता था index.php लिए देखने के लिए.
यह सिर्फ एक सम्मेलन है.
कुछ भी कहा जा सकता है.
>> मैं अब में जाना तो अगर index.php, आप देखेंगे
, चलो indeed-- कि टिप्पणियों से छुटकारा पाने के
यहाँ सच है क्योंकि वहाँ दिलचस्प कुछ भी नहीं it-- को
यह सिर्फ मुश्किल एचटीएमएल कोडित है.
ताकि, सुसंगत है मेरे दावे के साथ हालांकि,
कि आप HTML और PHP मिलना कर सकते हैं.
कोई वास्तविक नहीं है यहाँ तर्क प्रोग्रामिंग.
>> और अन्य फ़ाइलों सुंदर हैं जैसे शुष्क सिर्फ ज्यादा.
यह सिर्फ सप्ताह एक हार्ड कोडित है यहां सप्ताह में एक मीटर और सप्ताह एक करने के लिए, डब्ल्यू
सोमवार और बुधवार के लिए.
और फिर मैं सप्ताह शून्य खोल अगर, यह लगभग समान है नोटिस.
>> और कहा कि एक प्रमुख takeaway की तरह है.
इस बस कैसे निरर्थक सूचना है.
इन फ़ाइलों को मुश्किल से बदल सकते हैं, और अभी तक मैं इन कॉपी / पेस्ट नौकरियों में से एक खींचा
जहां मैं शायद एक file-- ले लिया सप्ताह में zero-- यह नकल
सप्ताह के आसपास आया था, और कुछ मूल्यों tweaked.
हम शायद सक्षम होना चाहिए इस से बेहतर करने के लिए.
>> तो चलो MVC अप करने के लिए वापस जाओ और संस्करण एक में जाना.
और मैं एक मिल गया है नोटिस कुछ फ़ाइलें, क्योंकि क्या
उन फ़ाइलों के सभी बस एक आम था मैं संस्करण 0 करने के लिए वापस जाना अगर पल, ago--
के सूचकांक में वापस चलते हैं, और सिर्फ postulate--
मैं comments-- से छुटकारा पाने के लिए एक बार इस पेज का क्या हिस्सा
मेरी फाइल में से हर एक में शायद है?
बस इसे बाहर कहते हैं.
लाइनें जो दोहराया गया शायद इन पृष्ठों के सभी भर में?
हाँ?
>> छात्र: [अश्राव्य].
>> डेविड जे Malan: 1 से 9 तक.
हाँ, बिल्कुल.
शायद 8 को छोड़कर 9 के माध्यम से 1, CS50 क्योंकि एक छोटा सा परिवर्तन
हो जाता है व्याख्यान या सप्ताह शून्य या कुछ और.
लेकिन लगभग समान.
तो यह सब बस है तरह की नकल की और चिपकाया.
और कुछ नहीं है अन्य लाइनों मैं सोच सकते हैं
इस बात का शायद समान हैं सभी फाइलों को पार.
>> छात्र: 12 और 13.
डेविड जे Malan: हाँ.
ज़रूर, 12, 13, और 14 शायद, सिर्फ दिलचस्प सामान क्योंकि
लाइनों 11 पर हो रहा है और 10 है, तो यह प्रतीत होता है.
तो चलो संस्करण 1 को देखो, जो इस पर सुधार करने के लिए प्रयास करता है.
इस MVC example-- के संस्करण 1 में हम करेंगे समझा एक moment-- में MVC क्या मतलब है
मैं सूचकांक में जाना है, तो यह एक तरह से अब थोड़ा भ्रमित लग रहा है.
यह पहले के रूप में काफी के रूप में आसान नहीं है.
>> लेकिन आप को शुरू में एक बार यह ध्यान से, यह है पढ़ा
यह क्या कर रहा है बहुत सीधा.
जाहिर है 1 लाइन और लाइन 8 जगह ले ली है
आप बस identified-- सामान के सभी सिर्फ अच्छे उपाय के लिए हालांकि,
मैं सिर्फ मामले में कुछ में वहाँ ULS छोड़ा दिनों चीजों की एक सूची नहीं था.
और इतनी तरह की पौंड की तरह है की आवश्यकता सी यह प्रतियां और चिपकाता में शामिल
सामग्री प्रभावी ढंग से यहीं इस फाइल में.
>> तो header.php में, आप के रूप में जैसा कि इसके नाम से अनुमान हो सकता है,
पेज के हैडर होने जा रहा है.
यह एक तरह से यहां अनाथ है.
यह केवल इसे करने के लिए ऊपर है लेकिन नीचे कोई और अधिक सामग्री नहीं है.
>> और मैं इस बीच पाद लेख पर नजर डालें तो, जो अन्य फाइल था mentioned--
यह एक है, और भी कम दिलचस्प है लेकिन फिर, यह सब कुछ करने के लिए आम है.
तो इस पाद लेख है.
इस शीर्ष लेख है.
यह है कि फाइल है बदल रहा है, तो क्यों नहीं
समानता बाहर कारक कोशिश यहाँ इन दो लाइनों के साथ?
>> लेकिन हम यह साफ कर सकते हैं आगे एक छोटे से ऊपर.
मैं आगे जाने के लिए जा रहा हूँ और संस्करण दो जहां खोलो
हम वहाँ देखेंगे कि एक नई फ़ाइल, helpers.php.
हम जानते हैं कि एक क्षण में है क्या देखेंगे.
के रूप में, सूचकांक में चलते हैं पहले की तरह प्रवेश बिंदु.
>> और अब मैं आवश्यकता होती हूँ नोटिस helpers.php, शीर्ष लेख या पाद लेख नहीं.
लेकिन सहायकों की तरह की तरह है PSET 2 से helpers.c और helpers.h
या कुछ समय पहले जब वास्तव में आप PSET 3 खोज और उस PSET के लिए मिला,
और आप छँटाई के लिए अपने कोड के सभी था और एक अलग फाइल में खोज.
यही कारण है कि यहां क्या हो रहा है है.
>> और अब लाइन 3 थोड़ा अलग दिखता है.
और यह सिर्फ एक लाइन है.
यह भी अधिक बनाने के लिए स्पष्ट है, मैं बस सकता है
इस stylistically के अनुरूप होना है सब कुछ के साथ हम किया है.
लेकिन यह सच नहीं है कार्यक्षमता बदल रहा है.
यह वास्तविक कोड का सिर्फ एक लाइन है.
>> जाहिर है, एक समारोह नहीं है कहीं हैडर प्रस्तुत करना कहा जाता है,
और इस जहां चीजें है बहुत शक्तिशाली मिलता है.
इसके कोष्ठकों के अंदर नोटिस वाक्य रचना की क्या अन्य टुकड़ा है?
यह शायद कहना थोड़ा मुश्किल है लेकिन मैं कुछ सफेद डाल देता हूँ there's-- नोटिस
अंतरिक्ष.
वर्ग कोष्ठक है.
>> और वर्ग कोष्ठक हम थोड़ा पहले देखा था साहचर्य सरणियों के संदर्भ में,
हैश तालिकाओं की तरह, फिर से, जो कर रहे हैं.
और आप सी को अब लगता है कि अगर, एक समारोह में बहस के आदेश
हमेशा एक ही होना चाहिए.
आप क्या याद है is-- एक्स, वाई, जेड या जेड, वाई, x-- आदेश
और आप हमेशा उन्हें प्रदान करने के लिए है उसी क्रम में या उन्हें देखो
आप भूल गए हैं.
>> लेकिन यह एक चालाक रास्ता हो रहा है की एक मनमाना कुंजी मान गुजर
शीर्षक नाम है जिससे जोड़े इस मामले में एक बहस का
और CS50 अपने मूल्य है.
मुझे लगता है कि और तथ्य इन वर्ग कोष्ठक
यहाँ मैं कर सकता है कि इसका मतलब है भी कुछ में पारित
जैसे एक सप्ताह 1 या 0 या 2 या 3 है.
इसलिए हम parameterized किया है ऐसे में इस समारोह
यह कई आदानों ले जा सकते हैं, लेकिन अब के लिए यह सिर्फ एक है.
>> मैं अब helpers.php में जाना है, यह क्या कर रहा है नोटिस.
यह एक छोटा सा है नई कार्यक्षमता की,
लेकिन अब के लिए बस ले यह है कि आस्था पर
वाक्य रचना के साथ जो आप PHP में एक समारोह को परिभाषित.
तुम सचमुच समारोह का कहना है.
आप एक वापसी निर्दिष्ट नहीं करते टाइप करें, और उस अनुरूप है
चर विस्तार पहले साथ जहां आप वास्तव में दृढ़ता से टाइप नहीं है.
>> यह सिर्फ निर्दिष्ट कि, डिफ़ॉल्ट रूप से, इस
एक साहचर्य लेता है एक तर्क के रूप सरणी.
और तुम जानते हो क्या?
उपयोगकर्ता एक पास नहीं है, तो में, एक डिफ़ॉल्ट मान मान.
>> यह सी नहीं है कि एक विशेषता है हमारे लिए, जो अब क्योंकि, अच्छा है
डेटा, भले ही आप यह कुछ भी नहीं देते,
एक होने जा रहा है सरणी लेकिन एक खाली एक.
और एक तरफ, निकालने के रूप में सिर्फ कायरता कुछ भी करता है
जहां यह इस से चाबी के सभी लेता है साहचर्य सरणी, चीजों के सभी
आप वर्ग कोष्ठक में डाल सकता है, और उनमें से बाहर चर बनाता है
हम अंत में उपयोग हो सकता है कि इतना उन्हें footet.php और header.php में.
यह एक छोटे सार है, इसलिए मुझे इस बात करते हैं.
>> Index.php में, मैं कर रहा हूँ कि नोटिस शीर्षक की एक महत्वपूर्ण मूल्य जोड़ी में गुजर
CS50 का एक मूल्य के साथ.
मैं अब helpers.php को देखो, कि RenderHeader नोटिस
मैं जा रहा हूँ कि कि डेटा निकालने में, और फिर header.php की आवश्यकता होती है.
क्या मैंने किया है एक गरीब आदमी की तरह है अब निम्नलिखित के कार्यान्वयन.
>> मैं header.php ऊपर खुला, मैं मुश्किल नहीं रह गया है कि नोटिस
इस हेडर फाइल में शब्द CS50 कोडित.
मैं वैसे atrociously इस डाल दिया है नामित समारोह, एचटीएमएल विशेष वर्ण,
वहाँ में.
लेकिन मैंने क्या किया नोटिस.
मैं खुले एचटीएमएल मिल गया है.
मैं तो खुले सिर और ओपन खिताब है.
>> और फिर अंदर के शीर्षक के खुले और करीब टैग, मैं PHP कोड का एक सा है.
और यह अच्छा है, लेकिन वाक्य रचना की है जो सिर्फ बाहर गूंज मतलब है.
यह सचमुच this-- मतलब निम्नलिखित गूंज
लेकिन यह लिखने के लिए sexier है.
शीर्षक बाहर गूंज उस में पारित कर दिया गया है.
>> लेकिन आप HTML क्या लगता है विशेष वर्ण, सब के बारे में
विशेष रूप से अगर आपके पास कुछ पूर्व एचटीएमएल अनुभव?
क्या वर्ण हो सकता है एक पेज में पारित करने के लिए खतरनाक
जहां आप गतिशील पैदा कर रहे हैं इस तरह कोड के साथ वेब पेज?
मुझे इस फ़ाइल के लिए चलते हैं, संस्करण मैं इस प्रेरित नहीं कर सकते हैं अगर दो, और देखते हैं.
>> संस्करण दो इस है.
और सब कुछ नोटिस अच्छी तरह से काम कर रहा है, ठीक है.
लेकिन मैं index.php में जाकर लगता है मैं निर्दिष्ट है कि मेरे पृष्ठ का शीर्षक
CS50 नहीं है.
यह खुला ब्रैकेट स्क्रिप्ट चेतावनी है हैलो दुनिया, करीब एक बोली,
बंद कोष्ठक, अर्धविराम, खुला वर्ग, स्लैश स्क्रिप्ट.
>> स्क्रिप्ट, के रूप में हम करेंगे अंततः एक टैग है, देखते हैं
यदि आप किसी अन्य का उपयोग करने के लिए उपयोग कर सकते हैं प्रोग्रामिंग भाषा कहा जाता है
एक वेब पेज के अंदर जावास्क्रिप्ट.
और अब यहां तर्क नोटिस.
यहाँ शीर्षक नामक एक कुंजी है.
यहाँ यह अब पागल लंबे मूल्य है.
>> लेकिन मैं सहायकों के लिए जाना अगर पृष्ठ- या यों कहें, शीर्षक पृष्ठ,
मैं इस समारोह बुला रहा हूँ पहला कि शीर्षक पर.
इसलिए मैं अब इस पेज को फिर से लोड करते हैं, तो मैं हास्यास्पद लग रहा है, जो यह देख
लेकिन यह सुरक्षित है.
यह सिर्फ बेवकूफ लग रहा है.
>> लेकिन बजाय लगता है मैं यह भूल गया था.
और मेरी बात याद रखना, एक अशून्य संख्या आप ऐसा करना भूल जाओगे की
और आप कुछ मेहनती मिलेगा छात्र या दोस्त आ रहा
आप के लिए CS50 मेले में या गुमनाम रात में अपनी वेबसाइट पर आसपास poking
और अनिवार्य रूप से कोड इंजेक्शन अपनी साइट में आप के लिए अनजान
किसी भी तरह.
>> मैं बस थूक क्योंकि अगर यहाँ शीर्षक और शीर्षक बाहर
there-- खैर, शीर्षक अगर सचमुच इस और PHP की तरह लग रहा है
थूक कर सकते हैं कि एक भाषा के रूप में अन्य भाषाओं पाठ बाहर,
यह सचमुच जा रहा है के साथ इस टैग को बदलने के लिए,
बेशक, मैं कहीं और क्या डाल दिया.
>> तो अगर मैं अब यहाँ जाओ और बाद पुनः लोड उन सुरक्षा तंत्र नाश,
अब मैं यहाँ नमस्ते दुनिया है.
अब जब कि सब एक से बड़ा नहीं है सौदा, लेकिन आप कुछ कर सकता है
एक छोटे से अधिक दुर्भावनापूर्ण यहाँ की तरह नहीं है
हम हम खर्च करते हैं एक बार देखेंगे के रूप में अन्य tags-- स्थान की तरह JavaScript-- में अधिक समय
डॉट href बोली, गंदें शब्द बोलना, एचटीटीपी, हो जाता है business.com, लेकिन उस के विपरीत
दूसरे दिन से.
और अब आप एक वेब पैदा कर सकते हैं पेज वास्तव में तुरंत जाने के लिए
यहाँ इस वेब पेज के लिए.
>> और वास्तव में, मैं नहीं चाहता यहां तक ​​कि business.com पर जाने के लिए
मैं नहीं चाहता क्योंकि कि क्या है पता करने के लिए.
लेकिन यह भी है, कोड ट्रिगर किया जाएगा इस पेज में इंजेक्ट किया.
तो यह है कि भले ही कहने के लिए ही है हम कुछ पर सुपर जल्दी शुरू कर रहे हैं
इन अधिक जटिल संरचना की, यह सुनिश्चित करने के लिए एक अंत की ओर सब है
कि अपने कोड दोहन नहीं है.
>> तो अब यहाँ एक तीसरा संस्करण.
यह एक छोटे से शौक़ीन हो रही है.
मैं वास्तव में नहीं किया like-- मुझे का गुदा की ओर
एक छोटे से नाराज हो रही थी मैं एक समारोह में कहा था कि तथ्य
RenderHeader और RenderFooter कि लगभग समान थे.
इसलिए यह मेरे लिए हुआ है, क्यों नहीं करते मैं इन कार्यों parameterize
प्रस्तुत करना कहा जाता है सिर्फ एक में, यह एक दूसरा तर्क ले गए
टेम्पलेट के नाम की तरह, अंतिम शीर्ष लेख या पाद लेख या तो render-- करने के लिए?
और फिर वैकल्पिक रूप से, अगर मैं चाहता हूँ कुछ महत्वपूर्ण मूल्य जोड़े में पारित करने के लिए
जैसे मैं के लिए शीर्षक के लिए करते हैं लेकिन नहीं पाद लेख के लिए शीर्षक,
मैं ऐसा कर सकता है.
>> और इसलिए अब मैं helpers.php में जाओ, यह एक छोटे से अधिक जटिल है.
और मैं पर मेरे हाथ की लहर करेंगे विवरण, लेकिन यह सिर्फ एक समारोह है.
ताकि एक बेहतर डिजाइन की ओर एक कदम है.
>> हम इस एक कदम आगे ले जा सकते हैं.
मैं अपने चौथे में जाओ इस के संस्करण, अब नोटिस
मैं कुछ कर रहा हूँ कि गुप्त का और भी अधिक तरह.
और मैं इस एक है पता बहुत कुछ है, पर एक बार अवशोषित करने के लिए
लेकिन हम सिर्फ एक तरह से हो की बातों को सफाई.
अब मैं अपने सहायकों डाल रहा हूँ नामक फोल्डर में फाइल
includes-- सिर्फ एक मनमाना मैं सामान रखना चाहते हैं जहां नाम
मैं तो include-- और करना चाहते हैं इस के बाकी ही है.
>> लेकिन मैं एडिट में अब देखो, मैं छुटकारा मिल गया है कि नोटिस
और उन अन्य फ़ाइलों के सभी की मैं यहाँ में, उदाहरण के लिए, उन्हें ले जाया गया.
और फिर टेम्पलेट्स में, मैं भी, यहाँ यह है.
और तो यह एक कदम की ओर अब सब है का एक बेहतर डिजाइन पैटर्न का उपयोग.
और हम बहुत जल्दी कर रहे हैं दूर स्थानांतरित करने के लिए जा रहा
है PHP डिफ़ॉल्ट कार्यक्षमता से, जो हम साथ यहाँ शुरू
आप सिर्फ PHP का मिलना जहां, और अपने HTML, और अपने सीएसएस,
और आप बस इसे बाहर थूक और आप अपने रास्ते के बारे में जाना.
यह बहुत पोषणीय नहीं होने जा रहा है.
बस सी में की तरह, हम का उपयोग शुरू कई फाइलें और कई कार्य
और फैक्टरिंग चीजों है कि बाहर.
हम यहाँ भी ऐसा ही करेंगे.
और वास्तव में, पांचवें और अंतिम में संस्करण यहाँ, मैं एक दूसरी बात किया था.
तुम भी डॉट डॉट उपयोग कर सकते हैं जो, फिर से, बस मूल निर्देशिका है.
और भी अधिक सुरक्षा के प्रति जागरूक होने के लिए, मैं सुन पर लगता है कि क्योंकि
यहां पांचवें और अंतिम संस्करण, नोटिस के लिए मैं यहाँ बुलाया एक निर्देशिका है कि
सार्वजनिक, और तब पर एक ही स्तर, तो बात है,
मैं भी शामिल है और टेम्पलेट्स मिल गया है और फिर उस पाठ फ़ाइल रीडमी.
>> और कारण है कि मैं संरचित किया है यह this-- और इतने सारे वेब की तरह
मेजबान, विशेष रूप से उन $ 5 एक महीने के लोगों या $ 10 महीने वाले,
क्या आपने कभी इन में से एक था है अगर तो उनमें से कई क्या services--
वे तो बस आप सभी को डंप करने की उम्मीद है एक डायरेक्टरी में आपकी फ़ाइलों की,
जैसे हम साथ पहले से ही था यह बहुत ही पहला उदाहरण.
>> लेकिन जैसे ही आप अधिक निर्माण शुरू बस की दुकान है कि परिष्कृत साइटों
डेटा के बारे में आप और फ़ाइलें आप देखभाल वास्तव में चीजों के आयोजन के बारे में परवाह
सही तरीके से और अधिक सुरक्षा के साथ मन में चेतना सकते हैं
हम बचाव करने के लिए शुरू सभी दोस्तों के खिलाफ
तुम में या तो है कि इस वर्ग के बाहर जो,
जैसे ही आप कमाना शुरू के रूप में वेब पर कार्यक्रम अपने आप को,
उठा शुरू करने जा रहे हैं आप पर और उन पर.
>> और इसलिए हम देख लेंगे अंततः इस डिजाइन पर.
यह सिर्फ एक तस्वीर है कि निम्नलिखित दर्शाया गया है.
हम सभी डाल करने के लिए जा रहे हैं हमारे एक या एक से अधिक फ़ाइलों में तर्क प्रोग्रामिंग,
और हम बस शुरू करने जा रहे हैं उन नियंत्रकों बुला.
यह की जहां दिमाग है हमारी वेबसाइट वास्तव में कर रहे हैं.
तो फिर हम करने जा रहे हैं विचार, और विचारों है
सिर्फ अलग रूप में सरल हैं अक्सर कहा जाता है, टेम्पलेट्स files--.
वे बस पास मेरे पृष्ठ के सौंदर्यशास्त्र,
मैं देखने के लिए पेज क्या चाहते हैं रंग और लेआउट like--
के और पदों चर के सभी.
>> और अधिक दिलचस्प तो हम अंततः को मिलेगा
बस होने जा रहा है जो मॉडल है, हम अन्य प्रौद्योगिकियों पर थप्पड़ शब्द
हम में लाना है कि चित्र, वास्तविक डेटाबेस की तरह,
जब आप चाहते हैं कि ताकि जानकारी को बचाने के लिए,
आप बस एक ईमेल भेजने के लिए नहीं है अपने प्रॉक्टर करने के लिए या अपने आप को,
आप वास्तव में एक डेटाबेस में स्टोर एसक्यूएल के रूप में जाना एक और भाषा का प्रयोग.
और इसलिए हम आज यहाँ छोड़ दूँगा और बुधवार को इस के साथ लेने
और तब डेटाबेस परिचय.
>> [संगीत खेल]