[संगीत बजाना] स्पीकर 1: यह CS50 है और इस सप्ताह के सात का अंत है। आज शायद हम कहाँ है वास्तव में आप भाषाओं के शिक्षण। हम पिछले कुछ में पेश सप्ताह एचटीएमएल और सीएसएस, जिनमें से न भाषाओं प्रोग्रामिंग कर रहे हैं। और वास्तव में, हमने किया है, भले ही नहीं लगभग सभी टैग की देखो कि HTML के साथ है और लगभग सभी आता है सीएसएस के साथ आता है कि संपत्तियों की, कि एचटीएमएल और सीएसएस के लिए यह की तरह है। हम सिर्फ आम तौर पर हूँ आप यह सोचते हैं कि शुरू सामान्य विचारों को समझने टैग, और विशेषताओं की, और पृष्ठों भेजा जा रहा है ग्राहक से सर्वर से। आज हम को देखने के लिए शुरू की वजह से एक और प्रोग्रामिंग भाषा, पीएचपी। हम इस सुपर फास्ट क्या करने जा रहे हैं। हम, पीएचपी से प्रति आप को पढ़ाने के लिए नहीं जा रहे हैं हम आप को पढ़ाने के लिए नहीं आकांक्षा बहुत पसंद है सी, असल में, बल्कि प्रोग्रामिंग। और वास्तव में, में से एक इस पाठ्यक्रम के लिए लक्ष्यों आप सी को पढ़ाने के लिए नहीं है, या एचटीएमएल, या सीएसएस, या पीएचपी, या अन्य के किसी भी संख्या चर्चा शब्दों या परिवर्णी शब्द, लेकिन कंप्यूटर विज्ञान के बजाय और कैसे मौलिक कार्यक्रम के लिए। और वास्तव में, आज हम लेने के लिए शुरू सब बंद उन प्रशिक्षण के पहियों आगे एक के माध्यम से उड़ान से इस प्रकार के रूप में भाषा, पीएचपी बुलाया। यहाँ इस भाषा की तरह दिखता है। यह कोई जरूरत के लिए नहीं है, पता चला है कि लिखा एक कार्यक्रम में एक मुख्य समारोह पीएचपी नामक एक भाषा में। कि पहले से ही एक छोटे से सरल लगता है तो सी की तुलना में, जिसके साथ हम परिचित हैं। यह पता चला है कि अगर आप एक चर घोषित करना चाहते हैं, आप सेल्सियस के लगभग हूबहू यह है, लेकिन एक अंतर यहाँ स्पष्ट रूप से नहीं है, मैं एक स्ट्रिंग घोषित, या शायद दो मतभेद। क्या अलग लग रहा है? दर्शकों: डॉलर के हस्ताक्षर। स्पीकर 1: हाँ, डॉलर वहाँ हम पहले कभी नहीं देखा है, जो साइन इन करें। और क्या याद आ रही है? हाँ? दर्शकों: [अश्राव्य] स्पीकर 1: हाँ, कोई डेटा प्रकार नहीं है। तो यह पीएचपी क्या है पता चला है कि हम एक शिथिल टाइप भाषा, जहां फोन सी दृढ़ता से लिखा गया है। शिथिल मतलब है कि बस टाइप किया अलग डेटा प्रकार के होते हैं, तार, और ints, और मंगाई हैं। लेकिन कंप्यूटर आंकड़े कि बाहर। आप मानव प्रोग्रामर यह पता लगाने की जरूरत नहीं है। इतना सब तुम्हें क्या करना है एक चर रहा है की घोषणा करने के लिए डॉलर के हस्ताक्षर के नाम पर अपने चर, और उसके बाद, उदाहरण के लिए, बोली गंदें शब्द बोलना, हैलो दुनिया। वैसे यह क्या एक है हालत पीएचपी में की तरह लग रहा है। कोई मतभेद? नहीं। यह पता चला है तो ये समान हैं। और आप कम हो सकता है शाखाओं या अधिक शाखाओं, लेकिन वाक्य रचना में बदल जाता है बिल्कुल वैसा ही बाहर। बूलियन अभिव्यक्ति कर सकते हैं एक साथ आदेश दिया जा सकता है। बूलियन अभिव्यक्ति एक साथ anded जा सकता है। तुम अब भी स्विच है। यहां तक ​​कि आप इस्तेमाल नहीं किया है इन, इन सी में मौजूद नहीं है और वे कार्यात्मक हो PHP में बराबर। और वास्तव में, पीएचपी में वे कर रहे हैं एक छोटे से अधिक शक्तिशाली है। सी में, आप केवल कुछ तुलना कर सकते हैं ints और वर्ण की तरह डेटा प्रकार, पीएचपी में आप वास्तव में तुलना कर सकते हैं, जबकि बिना पूर्ण कलियाना तार संकेत और के बारे में चिंता करने की। यहाँ तो पाश के लिए एक है। यह सिर्फ स्यूडोकोड है कोड, अगर तुम जाएगा। लेकिन संरचनात्मक रूप से यह सी के समान है यहां थोड़ी देर के पाश, स्यूडोकोड है therefore-- सी के समान समान loop-- जबकि यहाँ क्या है। और इतनी तरह की नहीं है, यहाँ इस पद्धति जिससे कुछ अन्य वाक्यात्मक वहाँ सुविधाओं है कि हम वास्तव में देखने के लिए जा रहे हैं। वास्तव में, यहाँ एक अच्छा है जिससे पीएचपी में जिस तरह से, आप पुनरावृति करना चाहते हैं एक सरणी से अधिक है, और आप के माध्यम से कूद नहीं करना चाहते हैं होने के मानसिक और वाक्यात्मक हुप्स पूर्णांक मैं मैं कम, 0 के बराबर होती है n से, मैं प्लस प्लस, जो कष्टप्रद वाक्य रचना का सिर्फ एक बहुत कुछ है। आप एक छोटे से अधिक कह सकते हैं fluidly प्रत्येक संख्या के लिए इस मामले में नंबर, जहां के रूप में डॉलर के हस्ताक्षर नंबर, मैं मान रहा हूँ, एक सरणी बुलाया नंबर की तरह है। और फिर मैं नंबर मान रहा हूँ विलक्षण, एक चर होने जा रहा है। और पीएचपी मैं पुनरावृति के रूप में मेरे लिए क्या करना होगा इस पाश से अधिक है, प्रत्येक यात्रा पर है, यह करने के लिए चर संख्या अद्यतन हो रहा है बहुवचन संख्या में ith तत्व है, हो सकता है। तो यह सिर्फ मेरे लिए है कि सभी को संभालती है। कोई वर्ग कोष्ठक, कोई डॉलर के हस्ताक्षर, कोई अर्द्ध कॉलन। यह सिर्फ एक छोटे से सरल है। खैर, अगर आप चाहते हैं एक सरणी, यह पता चला है आप करने के लिए बहुत कुछ इसी तरह कर सकते हैं सी वाक्य रचना एक छोटे से अलग है। लेकिन यहाँ एक सरणी कहा जाता है डॉलर संख्या पर हस्ताक्षर किए। और मैं PHP में, का उपयोग करें, वर्ग कोष्ठक, यह पता चला है। और हम फिर से इन को देखने के लिए जा रहे हैं JavaScript-- में अभी तक किसी अन्य भाषा। मैं सिर्फ वर्ग कोष्ठक संकेतन का उपयोग एक अल्पविराम से अलग सूची है इस मामले में पूर्णांक, के। लेकिन यह है कि मुझे एक सरणी देता है। लेकिन पीएचपी में और भी अधिक शक्तिशाली, हम भी आम तौर पर क्या कर रहे हैं साहचर्य arrays बुलाया। और भाषाओं का एक बहुत साथ ही इन लोगों की है। सी सरणियों के बारे में बात अनुक्रमित यह है कि एक सरणी, बात के लिए है कि आप वर्ग कोष्ठक में जो प्रयोग के माध्यम से आप तत्वों का उपयोग, क्या होना चाहिए? दर्शकों: [अश्राव्य] स्पीकर 1: वे संख्या होना है या विशेष रूप से शून्य से ऊपर पर पूर्णांकों,। खैर, पीएचपी में, और, यह बदल जाता है बाहर, अन्य भाषाओं में, आपके पास करने के लिए शुरू कर सकते हैं संख्यात्मक नहीं हैं कि अनुक्रमित। लेकिन वे वास्तव में शब्दों रहे हैं या वाक्यांशों के बजाय, इतना है कि जहां कुछ याद करने की कोशिश , या एक चर मैं में भंडारित किया जाता है, आप वास्तव में एक शब्द का उपयोग और कह सकते हैं that-- आप इस तरह एक शब्द कह सकते हैं। तो डॉलर के हस्ताक्षर उद्धरण है यहां एक चर का नाम। यह कुछ हद तक कायरता वाक्य रचना है कि दो प्रमुख मूल्य जोड़ है इस चर के लिए जोड़े। विशेष रूप से, यह मुझे दे रहा है लंबाई 2 की है कि एक सरणी। लेकिन अनुक्रमित 0 और 1 नहीं हैं। अनुक्रमित बोली गंदें शब्द बोलना हैं प्रतीक और बोली गंदें शब्द बोलना मूल्य। और उन अनुक्रमित के मूल्यों, क्रमश: अमेरिकन प्लान फेसबुक के लिए है मैं पिछले जब और $ 79.53, इस के लिए एक मूल्य की जाँच की। इसका क्या मतलब है? खैर, यह मतलब है कि बजाय कोड लिखने की मैं कुछ करने के लिए इस्तेमाल किया जाता है, जहां इस तरह, डॉलर sign-- या यों कहें, सी में की तरह मैं भी एक डॉलर के हस्ताक्षर की जरूरत नहीं होगी। मैं कुछ करना होगा तो उद्धरण और तरह मैं मैं कुछ पर पाने के लिए ब्रैकेट करना होगा मनमाने ढंग से संख्यानुसार मूल्य अनुक्रमित। अगर तुम, पीएचपी में आज से कुछ मूल्य पर प्राप्त करना चाहते हैं, हम की तरह अधिक है अर्थ अर्थवत्ता। कहने का सिर्फ एक अच्छा तरीका है कि हम यह कर सकते हैं सिर्फ इसलिए कि वे क्या कर रहे हैं बातें कहते हैं। और अगर आप प्राप्त करना चाहते हैं कुछ प्रतीक पर, अब आप सचमुच ऐसा गंदें शब्द बोलना प्रतीक बोली वर्ग कोष्ठक में बजाय एक मात्र संख्या की। तो यह एक अच्छी सुविधा है। और कहा कि यह अभी के लिए की तरह है। के गुच्छों नहीं है पीएचपी में अन्य सुविधाएँ। और वास्तव में, पीएचपी के साथ आता है लौकिक पानी के नल। दर्जनों कार्यों के सैकड़ों के साथ आ सी के साथ आया था और अधिक से अधिक PHP-- तो कई और उस का इरादा नहीं है डूब बल्कि मदद आपको लगता है कि हम कोई एहसास अब कोड लिखने के लिए कि धारणात्मक यहां एक तरह से नीचे है। अब हम सिर्फ लाभ लेने शुरू कर सकते हैं के और अधिक उन्नत सुविधाओं पीएचपी जैसी भाषाओं है। इसलिए हम के बारे में चिंता करने की जरूरत नहीं है स्मृति में चारों ओर बातें चलती। हम malloc के बारे में चिंता करने की जरूरत नहीं है और इन निचले स्तर के सभी, आप कुश्ती होगा कि शक्तिशाली विवरण साथ pset5, के साथ संघर्ष नहीं है, तो लेकिन आप शुरू कर सकते हैं के लिए दी जल्द ही ले लो। वास्तव में, के एक सुपर लिखने पीएचपी में सरल कार्यक्रम, के रूप में इस प्रकार है। मैं CS50 में सिर जाने के लिए जा रहा हूँ यहां आईडीई, और मैं क्या करने जा रहा हूँ कि बहुत आसानी से, एक नई फ़ाइल बनाने है हैलो डॉट पीएचपी के नाम से जाना जा रहा है। तो बजाय डॉट ग की, यह है जा रहा डॉट पीएचपी बुलाया जाना। और फिर इस फाइल में, मैं टाइपिंग शुरू कर सकते हैं। लेकिन यह पता चला है कि एक बात मैं जानना चाहता है सामान्य तौर पर किसी भी PHP फ़ाइल की जरूरत है, वह यह है कि कुछ विशेष वाक्य रचना के साथ शुरू करने के लिए। HTML करने के लिए भावना में इसी प्रकार, लेकिन फिर, पीएचपी एक प्रोग्रामिंग भाषा नहीं है एक मार्कअप भाषा। इसलिए हर फ़ाइल, और यह की तरह है बेवकूफ मैं मानता हूँ देख रहे हैं। ओपन वर्ग, प्रश्न चिह्न, पीएचपी। और कहा कि सिर्फ है कहने का भाषा का तरीका, अरे, कंप्यूटर यहाँ कुछ कोड आता है पीएचपी नामक एक भाषा में लिखा है। और तब आपकी फ़ाइल के बहुत अंत में, आप विपरीत की तरह की तरह है। तुम फिर से पीएचपी सिर्फ लिखने के लिए नहीं है प्रश्न चिह्न, कोण ब्रैकेट करते हैं। और फिर कुछ भी आप के अंदर डाल इन दो टैग की, तो बात है, हो सकता है, या PHP कोड होना चाहिए। तो चलो सुपर सरल कुछ करते हैं। मुझे आगे जाना है और प्रिंट करने जा रहा हूँ डेफ, नमस्ते दुनिया, बैकस्लैश एन, बचाने के लिए। और अब मेरे प्रॉम्प्ट पर, मैं जा रहा हूँ , ऐसा नहीं है, मैं क्या करने जा रहा हूँ hello-- बनाने, डॉट हैलो स्लेश। नहीं, डॉट स्लेश, एचएम। तो कुछ अलग है। और वास्तव में, यह एक महत्वपूर्ण अंतर है सी सी की तरह PHP और भाषाओं के बीच एक तथाकथित संकलित भाषा थी। सी संकलित करने के लिए इसका क्या मतलब था? निहितार्थ क्या था? हाँ। दर्शकों: मशीन कोड में इसे लिखा था इसलिए यह कंप्यूटर द्वारा चलाया जा सकता है। स्पीकर 1: बिल्कुल। हम पहली बार में इसे बदलने के लिए मशीन कोड, शून्य और लोगों तथाकथित, यह वास्तव में निष्पादन योग्य हो जाएगा से पहले और कंप्यूटर द्वारा समझा। अंदर इंटेल द्वारा। कंप्यूटर के अंदर सीपीयू द्वारा। पीएचपी, इसके विपरीत, क्या कहा जाता है एक व्याख्या की भाषा, जो आप यह संकलन नहीं है इसका मतलब शून्य और लोगों, मशीन कोड में, आप के बजाय स्रोत कोड के रूप में इसे छोड़ दें। और आप के बजाय इनपुट के रूप में इसे पारित एक कार्यक्रम के लिए, एक दुभाषिया किसी और ने लिखा है कि साल पहले यह समझता है कि लाइन से लाइन, चरित्र के लिए चरित्र। तो दूसरे शब्दों में, मनुष्य को वहाँ से बाहर लिखा था दिखेगा एक कार्यक्रम लाइन द्वारा अपने कोड लाइन पर, और यह पता लगाने की क्या कंप्यूटर, क्या करना चाहिए यह बदलने के बिना सीधे शून्य और लोगों के लिए। यह एक पाश के लिए देखता है तो, इस तथाकथित दुभाषिया , मुझे ऐसा करना चाहिए सब ठीक है, की तरह होने जा रहा है फिर और फिर और फिर कुछ करो। मैं क्या करूँ? मुझे अगली पंक्ति पर नजर डालते हैं। मुझे अगली पंक्ति पर नजर डालते हैं। और यह वास्तव में लाइन से यह लाइन की व्याख्या। इसलिए इसे लागू करने के लिए, मैं मेकअप का प्रयोग नहीं करते। मैं इस मामले में डॉट स्लेश का उपयोग नहीं करते। मैं बजाय है जो, पीएचपी करना एक कार्यक्रम, उर्फ ​​का नाम एक दुभाषिया, कि CS50 आईडीई में पूर्व स्थापित, और अब मैं एक पारित करने की जरूरत कमांड लाइन तर्क है, जो की काफी बस नाम है मैं व्याख्या करना चाहते हैं उस फ़ाइल। या अधिक लापरवाही, मैं चलाने के लिए चाहते हैं। मैं हिट दर्ज करें और, अगर वहाँ हमारे पास है। हैलो वर्ल्ड। अब यह पता चला है कि मैं खेतों में प्रिंट डेफ जानबूझ पीएचपी सी से हमें पाटने के लिए। सबसे PHP प्रोग्रामर, जैसा कि आप देखेंगे, यहां तक ​​कि प्रिंट डेफ का उपयोग कर परेशान नहीं करते। वे सिर्फ नाम के एक समारोह का उपयोग सी नहीं था जो प्रिंट,। और इसलिए मैं वास्तव में, अब यह फिर से दौड़ना यदि कार्यात्मक रूप में एक ही बर्ताव करती है। मैं प्रतिशत s का उपयोग नहीं कर सकते और इतना आगे प्रतिशत मैं और, लेकिन अन्य तरीके हैं कर रही है कि पीएचपी में। लेकिन यह केवल करने के लिए है , वाक्य रचना का कहना है कि ऊपर कुछ अजीब चीजों की तुलना में अन्य शीर्ष, और नीचे कुछ अजीब अक्षर तल में, अवधारणाओं अब की यह अन्य भाषा में प्रोग्रामिंग वास्तव में एक ही होने जा रहे हैं। वास्तव में, के एक अन्य उदाहरण करते हैं। तो मैं आगे जाने के लिए जा रहा हूँ और इस फाइल को बंद कर दें। मुझे एक और एक पैदा करते हैं कि मैं परिस्थितियों 1 डॉट पीएचपी फोन करता हूँ। तो कोई शून्य, मैंने क्या किया है क्योंकि मैं कुछ ही हफ्ते पहले वापस देखा था हम नामक एक फाइल किया था शर्तों 1 डॉट सी और क्या मैं इसे में परिवर्तित कर दिया गया था मेरी सिर, और कागज पर यहाँ में, और जल्द ही पाठ्यक्रम के पर वेबसाइट, पीएचपी में लाइन से लाइन। सी संस्करण में तो, हम कुछ किया स्ट्रिंग की तरह है स्ट्रिंग प्राप्त हो जाता है। इसलिए यह थोड़ा अलग है पीएचपी में है कि क्या करना है। इसके बजाय, मैं तो बस जा रहा हूँ बल्कि करते हैं, या करने के लिए, मैं किया होगा int n मिलता हो जाता है पूर्णांक, पहले इस उदाहरण में। तो बजाय कि, मैं n क्या करने जा रहा हूँ लाइन पढ़ा जाता है, मैं एक पूर्णांक चाहते हैं, कृपया। तो यह सिर्फ मेरे शीघ्र है। और इसलिए यह पता चला है, और मैं केवल यह पता होता है से पढ़ने के लिए या समारोह देखा है इससे पहले, पीएचपी में समारोह की लाइनों को पढ़ने एक संकेत है कि एक तर्क लेता है मानव, और जीवन में अपने उद्देश्य के लिए पाठ की एक पंक्ति को पढ़ने के लिए है में वह या वह प्रकार है। और फिर यह है कि दुकानों चर n में पाठ। और अब मुझे कुछ करना चाहते हो सकता है जैसे मैं की तरह सप्ताह में, हफ्ते पहले किया कक्षा में से एक। N से अधिक है, तो शून्य है, तो, मैं जा रहा हूँ हम सिर्फ देखा कि वाक्य रचना उधार लेने के लिए, प्रिंट डेफ, आप एक सकारात्मक संख्या उठाया बैकस्लैश एन। वरना एन के बराबर होती है, तो मैं कर रहा हूँ, शून्य के बराबर होती है आगे जाना है और कहने के लिए जा रहा है, प्रिंट डेफ, आप शून्य बैकस्लैश एन उठाया। वरना, मामला यहां चाहिए ज़ाहिर है, हो सकता है प्रिंट डेफ, आप एक नकारात्मक संख्या उठाया। और हम निश्चित रूप से लागू कर सकते हैं इस बात का तर्क अलग से एक गुच्छा में तरीके हैं, लेकिन यहां मुद्दा कि, वाक्य रचना है मुश्किल से कुछ भी नया नहीं है। यह सिर्फ डॉलर के हस्ताक्षर है और एक नया समारोह और पढ़ लाइन। लेकिन मौलिक, नया क्या है अब मैं इस व्याख्या कर रहा हूँ है। मैं इनपुट के रूप में इसे पारित कर रहा हूँ एक अन्य कार्यक्रम के लिए। मैं, तो इस चलाना चाहते हैं तो मैं किसी भी गलती नहीं थी, मैं की, पीएचपी को चलाने के लिए जा रहा हूँ 1 डॉट पीएचपी, दर्ज की स्थिति, मैं नंबर 50 में टाइप करने के लिए जा रहा हूँ और चलो अब यह काम करता है के लिए मान लेते हैं। तर्क है, क्योंकि सप्ताह के रूप में एक ही चीज है। ठीक है, तो लगता है कि बहुत है underwhelming, है ना? हम किसी में यह कर सकता है भाषाओं की संख्या। चलो कुछ रास्ता अधिक शक्तिशाली करते हैं। चलो खत्म समस्या पाँच निर्धारित किया है। तो मुझे आगे जाना है और यह करने के लिए जा रहा हूँ। मैं एक फ़ाइल बनाने के लिए जा रहा हूँ शब्दकोश डॉट पीएचपी कहा जाता है, तुम हो सकता है के रूप में और इच्छुक नोटों की बहुत सारी नीचे हाथापाई करने के लिए, नोटों केवल मदद मिलेगी क्या आप की अनुमति दी हो, तो समस्याओं पीएचपी में पांच सेट को लागू करने के लिए। लेकिन हम देखते हैं कि कैसे जल्दी से अब करेंगे हम कि एक ही समस्या सेट को लागू कर सकते हैं। इसलिए शब्दकोश डॉट पीएचपी में, मैं जा रहा हूँ पहले से ही लगता है कि वहाँ के लिए दुनिया में एक फ़ाइल वर्तनीकार बुलाया। और वास्तव में, मैं अग्रिम में ऐसा किया और हम इस लाइन के माध्यम से नहीं चलना होगा लाइन द्वारा, लेकिन आप कर रहे हैं जिज्ञासु बाद में और वास्तव में चाहते हैं चारों ओर अपने मन लपेटो सी और पीएचपी के बीच मतभेद सचमुच इस फ़ाइल की तुलना, आज के स्रोत कोड से स्पेलर, हम बाद में पोस्ट करेंगे कि आज, पी सेट के खिलाफ हम आपको दे कि पांच वर्तनीकार डॉट सी, और यह लाइन से लगभग एक ही लाइन है। कुछ और डॉलर के संकेत नहीं है। एक जोड़ी कार्य कर रहे हैं थोड़ा सा अलग। लेकिन यह एक अच्छा तरीका है की तरह की देख कैसे आप एक दूसरे के लिए भाषा का अनुवाद। और यह लाइन के लिए लगभग समान रेखा है। लेकिन मुझे लगता है कि कल्पना करने के लिए जा रहा हूँ मौजूद है, और क्या मैं यहाँ क्या करने जा रहा हूँ उड़ाने की कोशिश है आपके reimplementing द्वारा मन समस्या की सम्पूर्णता पाँच तरह से सेट आप की तुलना में तेजी से इस प्रकार अब तक कर दिया गया है। तो उदाहरण के लिए, जब मैं पहली बार करने जा रहा हूँ , आकार नामक एक वैश्विक चर घोषित और शून्य के बराबर निर्धारित किया है। अब लगता है कि ज्यादा बचत नहीं है। बाधाओं आप लागू कर रहे हैं बहुत ज्यादा एक ही आकार, या संकेत संकेत, आज रात या कल होगा, सिर्फ नामक एक वैश्विक चर का उपयोग आकार, और शून्य के बराबर इसे स्थापित। यही कारण है कि एक विशेष रूप से नहीं है अद्भुत बिगाड़ने। तो अपने डेटा की संरचनाओं क्या थे चुनाव में डुबकी लगाई है, जो आप उन लोगों के और कल्पना पढ़ा, क्या डेटा संरचनाओं आप में से अधिकांश का उपयोग किया गया है? एक हैश तालिका या हो सकता है, की कोशिश उसके कुछ वेरिएंट। इसलिए कम से कम एक हैश तालिका को लागू करने, , कोड की लाइनों की एक बहुत की तरह है है ना? और उन सभी को हो सकता है नहीं सप्ताह में इस बिंदु पर कार्यात्मक, लेकिन वह ठीक है। पीएचपी में, क्योंकि अगर मैं किया, एक हैश तालिका चाहते हैं। है ना? मैं कि उस चर तो सिर्फ जाहिर है घोषित डॉलर के हस्ताक्षर तालिका कहा जाता है, पहले परिचय प्रति। लेकिन मैं वास्तव में सिर्फ पर, चाहते हैं दिन के अंत में, एक सरणी। लेकिन एक संख्यानुसार अनुक्रमित सरणी, कि दो सप्ताह की तरह है क्योंकि सामान, हम सरणियों के बारे में बात करते हैं। मैं एक हैश तालिका चाहते हैं। लेकिन एक हैश तालिका सच है कहने का सिर्फ एक ठोस तरीका, आप एक साहचर्य सरणी चाहते हैं। आप करने के लिए सक्षम होना चाहता हूँ मूल्यों के साथ सहयोगी चाबियाँ। मूल्यों के साथ कुंजी। वास्तव में, एक शब्दकोश क्या है? वैसे यह चाबी का एक पूरी गुच्छा है। सेब, नाशपाती, और केले जैसे शब्द, और इन अंग्रेजी शब्दों के सभी हम आपको हाथ है। और मूल्यों आप को प्रभावी ढंग से कर रहे हैं कि अपने शब्दकोश में डालने या तो यह सच है, या अनुपस्थिति, झूठे। दूसरे शब्दों में आप डालने हैं महत्वपूर्ण मूल्य जोड़े की एक पूरी गुच्छा, सेब, यह सच है, नाशपाती, यह सच है, केला, सच है। आप पुनः प्राप्त करने या जब देखो तो यह है कि अपने हैश तालिका में डेटा है कि ऊपर आपका चेक समारोह के साथ, आप कर रहे हैं या तो एक जवाब वापस हो रही है, हाँ, मैं अपने परिसर में यह पाया तालिका हैश, या नहीं, यह कुछ नहीं है, इसलिए आप वापसी झूठी। तो यह है कि ऐसा करने के लिए, मैं सभी की जरूरत डेटा है मैं जैसी संरचना से पहले प्रस्ताव रखा। मैं बस में सक्षम होने की जरूरत है शब्द संबद्ध करने के लिए जैसे, गंदें शब्द बोलना बोली, प्रतीक, सच एक मूल्य की तरह, के साथ। तो मेरा हैश तालिका है। वास्तव में इसका इस्तेमाल करते हैं। तो कुछ कार्य कर रहे है मैं लागू करने की जरूरत है। मुझे आगे जाना है और काटने के लिए जा रहा हूँ एक समारोह में कहा जाता आकार बंद। यह कोई तर्क लेता है। मैं के साथ चिंता करने की जरूरत नहीं है शब्द, पीएचपी में, शून्य। मैं बस आकार वापस करने के लिए जा रहा हूँ। और एक अलग रूप में, पीएचपी है इस minorly कष्टप्रद विस्तार, कुछ वैश्विक है जहां अगर, आप के लिए है आप उपयोग कर रहे हैं, जिसमें समारोह बताओ यह, अरे, यह एक वैश्विक चर रहा है। तो, नाबालिग मूर्खता है, लेकिन आप फिर भी यह करना होगा। तो क्या भार के बारे में? मैं लागू करने जा रहा हूँ एक समारोह में कहा जाता लोड कि, एक शब्दकोश के नाम पर ले जाता है बस समस्या में पांच सेट की तरह। और मैं आगे बढ़ने से पहले, मैं नहीं किया है कि नोटिस एक ही काफी बातें टाइप किया गया। के बारे में क्या पीएचपी में स्पष्ट रूप से अलग है कैसे आप सी बनाम एक समारोह की घोषणा? हाँ। दर्शकों: [अश्राव्य] स्पीकर 1: नहीं वापसी प्रकार। और वास्तव में, यह मामला है, पीएचपी है यह शिथिल टाइप insofar के रूप में, यह भी है कि भावना में एक छोटे से मैला है। आप प्रोग्रामर के रूप में निर्दिष्ट नहीं करते इस फ़ंक्शन देता है क्या। आप वास्तव में देखने के लिए होगा कोड पर है कि यह पता लगाने के लिए। या टिप्पणियों को पढ़ने या दस्तावेज। Pluses और minuses की तो फैसले के इन प्रकार की। लेकिन मैं कहना है महत्वपूर्ण शब्द, समारोह। और जब हम सीख एक दो सप्ताह में जावास्क्रिप्ट हम एक ही बात को देखने के लिए जा रहे हैं फिर से, लेकिन यह एक ही विचार है। समारोह के नाम पर, अपने तर्क या क्या है, और अब तर्क या कमी यहां कार्यान्वयन है। तो मैं बस कुछ कोनों में कटौती करने जा रहा हूँ बस एक पल के लिए नाटकीय ढंग से हो। लेकिन मुझे आगे जाना है और यह कहने के लिए जा रहा हूँ। यह मैं लोड कर सकते हैं कि कैसे है एक सरणी में एक फ़ाइल। फ़ाइल कहा PHP में एक समारोह है। आप इसे एक फ़ाइल के नाम हाथ। यह अंदर, एक सरणी आप वापस हाथ जिनमें से फ़ाइल से हर पंक्ति है। शून्य, एक से, ऊपर पर n शून्य से 1 लाइनों के लिए। यह सही है, यह क्या है? कोई च पढ़ने नहीं है। कोई च मिल रहा है। कोई प्रतिशत रहा है। कोई सिर दर्द नहीं है। कोई feof है। कि सामान के सभी के साथ जो आप शायद कुश्ती किया गया है पी चार और पांच सेट के साथ दूर हो जाता है। तो मैं बस में उन पंक्तियों को पढ़ने के फ़ाइल, और फिर तुम जानते हो क्या? मैं उन शब्दों पर पुनरावृति करना चाहते हैं, मैं रेखा के रूप में प्रत्येक लाइनों के लिए, कर सकते हैं। इस तरह का एक चालाक था कि याद रखें एक सरणी, सूचकांक पर iterating के रास्ते सूचकांक के आधार पर, और प्रत्येक यात्रा के फोन पर मौजूदा लाइन, डॉलर के हस्ताक्षर लाइन। और यहीं मैं जाने के लिए जा रहा हूँ और मेज, वर्ग, रेखा, सच हो जाता है कहना। दूसरे शब्दों में, यह है कि मैं कैसे पीएचपी में मेरी हैश तालिका में सम्मिलित करें। मैं डॉलर के हस्ताक्षर मेज, जो कहते हैं था कि मेरे साहचर्य सरणी है ऊपर कोड के प्रति पंक्ति खाली। इस बारे में मैं तो सूचकांक नहीं, एक नंबर का उपयोग कर, लेकिन सचमुच का उपयोग कर मैं देखभाल के बारे में उस कीवर्ड। शायद यह सेब या नाशपाती है या केले या जो भी, लेकिन विशेष रूप से मैं अनुक्रमण रहा हूँ इस बारे में मैंने पहले प्रस्तावित पसंद है। मैं का नाम नहीं ले मेरी साहचर्य सरणी, और फिर मैं में बोली गंदें शब्द बोलना उपयोग एक तार के साथ वर्ग कोष्ठक, बजाय एक वास्तविक संख्या का। और तो यह बात है। लोड समारोह किया जाता है। कि पाश दोहराता एक बार, मैं डाल दिया है हैश तालिका में सब कुछ। अब छोटे अस्वीकरण, वहाँ एक मैं ठीक करने की जरूरत है कुछ बातें। और संस्करण मैं ऑनलाइन पोस्ट करेंगे बारीकियों के सभी होगा, लेकिन यह ज्यादातर सिर्फ कुछ होने जा रहा है त्रुटि जाँच और कुछ छोटे tweaks। लेकिन यह है कि वास्तव में इसे का सार है। मैं अब लागू करना चाहते हैं कहा जाता समारोह एक उम्मीद है, जो जाँच अपने तर्क के रूप में शब्द, मुझे लगता है कि ऐसा करने के बारे में कैसे जा सकता है? खैर, मैं तो बस, तो कहने जा रहा हूँ मेरी मेज के अंदर, स्थान शब्द पर, यदि निर्धारित है। तो वहाँ है- यदि वास्तव में, क्या आप जानते हैं? मैं में ऐसा करने जा रहा हूँ स्यूडोकोड का एक सा। लेकिन विचार ही है। सच है कि बराबर होती है, तो सच वापसी। ठीक है। आप की तरह देख सकते हैं जहाँ Else-- इस झूठी लौटने के लिए going-- है। हो गया। चेक किया जाता है। बहुत अच्छा है, है ना? और तो वास्तव में हो रही यह क्या है? और यह भी, मैं कुछ कोनों में कटौती। ऑनलाइन संस्करण को देखो मामूली बारीकियों के सभी के लिए। लेकिन यह है कि इसे का सार है। में सूचकांक अपने साहचर्य सरणी, उर्फ एक मूल्य है कि अगर वहाँ हैश तालिका, देखें वहाँ, यह सच करने के लिए सेट है, और यदि ऐसा है तो, सच वापसी। इसलिए हम नीचे whittled किया है जटिलता के सभी। तो मन की तरह उड़ाने, है ना? मैं उतारना के साथ इसे खत्म परेशान नहीं करेगा में fact-- क्योंकि ओह, तुम जानते हो क्या? हाँ, चलो अनलोड के साथ इसे खत्म कर देना। लग सकता है एक हैश तालिका में उतारना समारोह उतारना, जैसे लौट आते हैं। ठीक है तो कि उतारना है। कुछ भी नहीं है क्योंकि ठीक है, अनलोड करने के लिए? कोई malloc है। मैं स्पष्ट रूप से नहीं पूछा था कुछ के लिए ऑपरेटिंग सिस्टम। मैं सिर्फ चर का उपयोग शुरू कर दिया। और तो यह भी की एक मिसाल है उच्च स्तर की भाषाओं की सुविधाएँ। तो फिर, इस अवधि के सबसे हम यहाँ नीचे काम कर रहा है सी सुपर कम स्तर के साथ। आप कंप्यूटर की मेमोरी देख सकते हैं। आप कुछ भी छू सकता है आपके कंप्यूटर की रैम में चाहते हैं, बेहतर या बदतर के लिए। यहाँ तक, हम जा रहे हैं कि सत्ता को देने के लिए। लेकिन मेरे भगवान, कैसे दिखते बहुत कम कोड मैंने लिखा है। वास्तव में मैं बात नहीं कर रहे थे, तो और मेरी टाइपिंग पर बात कर, हम साथ किया गया होता पांच मिनट पहले इस उदाहरण। तो कीमत क्या भुगतान किया जा रहा है? अच्छा चलो एक नजर डालते हैं। चलो एक नज़र डालते हैं। मुझे आगे जाना है और CS50 चलाने के लिए जा रहा हूँ। मुझे पहली बार में चलते हैं आज के उदाहरण हैं जहां मैं पहले के रूप में ग्रंथों निर्देशिका है। मैं हल चलाने के लिए जा रहा हूँ कि यह समस्या पाँच सेट बुलाया के साथ आता है CS50 के खाते में है, जो स्पेलर,। और मैं कुछ पर इसे चलाने के लिए जा रहा हूँ राजा जेम्स बाइबिल जैसे बड़े, बस इतना है कि हम वास्तव में डाल परीक्षण करने के लिए कर्मचारियों समाधान। अब कभी कभी इंटरनेट के एक थोड़ी धीमी है, एक छोटे से तेजी से, स्क्रॉल करने के लिए एक समय लग सकता है। लेकिन यह 0.56 सेकंड के एक कुल लिया राजा जेम्स जाँच जादू करने के लिए बाइबिल कर्मचारियों समाधान का उपयोग। तो बहुत अच्छा है। तुम्हारा है, बहुत धीमी हो सकती है और कहा कि पूरी तरह से ठीक है। लेकिन यह यहाँ सही है। तो यह है कि कर्मचारियों के समाधान है। मैं में जाने के लिए और PHP संस्करण को साफ करते हैं। और मैं एक छोटे क्या करने जा रहा हूँ पाक शो बात की तरह। हम मैंने लिखा कोड लेने के लिए जा रहे हैं इससे पहले, तो यह पूरी तरह से सही है। मैंने लिखा कोड नहीं जा रहा है क्योंकि बस अब पूरी तरह से सही हो। लेकिन मैं PHP संस्करण चलाते हैं, क्या मैं आज तक देने के लिए क्या करना है? के लिए मुझे पांच मिनट लग गए लागू P पांच सेट, मैं दावा करते हैं। क्या कीमत मैं भुगतान कर दिया है? हाँ। दर्शकों: स्पीड। स्पीकर 1: स्पीड। आपका क्या अर्थ है? दर्शकों: यह लंबे समय तक लेने के लिए जा रहा है। स्पीकर 1: ठीक है। चलो देखते हैं। यह लंबे समय तक ले जा रहा है नहीं लिखने के लिए है, लेकिन इसे चलाने के लिए। हाँ। तो चलो इस कोशिश करते हैं। यहाँ तो मुझे आगे जाना है और क्या करने जा रहा हूँ वर्तनीकार की पीएचपी, और क्योंकि फाइल की वर्तनीकार बुलाया। इसलिए मैं नहीं चल रहा हूँ शब्दकोश, याद है, मैं वर्तनीकार नामक कार्यक्रम चल रहा हूँ। मैं एक ही में पारित करने के लिए जा रहा हूँ फ़ाइल, राजा जेम्स पांचवें। यह द्वारा उड़ रही है। यह सिर्फ इंटरनेट की गति हो सकता है इसलिए बहुत ज्यादा है कि में पढ़ा नहीं है। लेकिन यह सुनिश्चित करने के लिए लंबे समय तक महसूस करता है। 1.26 सेकंड। अब जब कि बहुत अभी भी है बहुत तेजी से, है ना? और की तरह महसूस किया है कि एक ही कारण अधिक तीन या चार या पाँच की तरह सेकंड, कि सिर्फ इसलिए है इंटरनेट धीमी गति से किया जा रहा था। बिताए कंप्यूटर समय 1.26 था सेकंड, बनाम मैं 0.56 लगता है। धीमी गति के रूप में दो बार की तुलना में तो अधिक। अब यह बहुत अरे अब भी है तेजी से है, लेकिन यह एक मिसाल है की, वास्तव में, कि सटीक कीमत। हम व्याख्या कर रहे हैं क्योंकि लाइन द्वारा कोड लाइन में, और कहा कि कार्यक्रम पीएचपी पढ़ रही है मेरी सही करने के लिए छोड़ दिया नीचे करने के लिए कोड शीर्ष, इसे और अधिक सोच क्या करना है। यह एक तरह से परिवर्तित करने के लिए है के ही अंदर यह इसी मशीन के लिए मक्खी पर कोड, तो बात है, यहां तक ​​कि यांत्रिकी यद्यपि थोड़ा अलग हैं। इसके बजाय सिर्फ खिलाने की इंटेल सीपीयू कच्चे शून्य और लोगों कि यह नेटिव समझता है। तो बिल्कुल, हाथ नीचे, हम एक कीमत चुकाई है। और कोड एक भाषा में लिखा पीएचपी आदत की तरह धीमी होने के लिए। लेकिन मेरे भगवान। तो अब मैं जांच जादू जब मेरे फ़ाइल, मैं एक अतिरिक्त 0.7 खर्च या तो 20 घंटे बनाम सेकंड लागू करने के लिए एक तेजी से सही, वर्तनी परीक्षक? यह एक व्यापार बंद की तरह है। और तुम बस पी शुरू कर रहे हैं 20 घंटे नहीं हो सकता है, पांच की स्थापना की। उस से भी अब तक कम हो सकता है। लेकिन यह असली के लिए, एक व्यापार बंद है। और तुम सच में बड़ा पर कोड चला रहे हैं डेटा सेट, या यहां तक ​​कि पुराने हार्डवेयर पर, मतभेद के उन प्रकार निश्चित रूप से जोड़ सकते हैं। कोई प्रश्न इस प्रकार अब तक? हाँ। दर्शकों: [अश्राव्य] स्पीकर 1: क्षमा करें, कर सकते हैं आप इसे एक बार और कहना चाहिए? दर्शकों: [अश्राव्य] स्पीकर 1: आप समय दे रहे हैं। खैर, तो हाँ। आप से समय की बचत कर रहे हैं यह संकलन करने के लिए नहीं, अगर है कि आप क्या कह रहे हैं। और वास्तव में, CS50 में, कार्यक्रमों की सबसे अधिक है, वे कुछ समय लग सकता है, भले ही लिखने के लिए, वे अपेक्षाकृत कम कर रहे हैं। कुछ दर्जन, कोड की कुछ सौ लाइनों, और इसलिए वे बहुत जल्दी संकलन। लेकिन जब आप शुरू बड़ा प्रोग्राम लिखने, जैसे आप माइक्रोसॉफ्ट रहे हैं या आप कर रहे हैं गूगल और लेखन वास्तव में बड़े कार्यक्रमों सी, या सी ++ में, या इसी तरह संकलित भाषाओं, कई सेकंड ले सकता है, या यहां तक ​​कि मिनट या उससे अधिक समय के लिए कोड की लाइनों के लाखों संकलन। और वहाँ भी है, कि अंतर को जोड़ने जा रही है। और वास्तव में, हम एक बार संक्रमण आज, एक ही दिन आज, वेब प्रोग्रामिंग करने के लिए PHP का उपयोग कर, आप कर रहे हैं यह सिर्फ इतना मिल जा कोड लिखने के लिए और अधिक सुखद आप इन बेवकूफ ऐसा करने की जरूरत नहीं है जब अपने टर्मिनल के लिए परिवर्तन जैसे कदम खिड़की, प्रकार बनाने नमस्ते, फिर इसे चलाने के लिए, खिड़की पुनः लोड। बेवकूफ अभी तो कई यांत्रिक कदम है कि बस कर के रास्ते में मिल दिलचस्प, मजेदार काम करते हैं। और वास्तव में हम PHP के साथ कि दूर फेंक देते हैं। और हम बातचीत कर सकते हैं और अधिक तेजी से इसके साथ। हाँ। दर्शकों: [अश्राव्य] स्पीकर 1: यकीन है। मैं यह स्पष्ट क्या कर सकते हैं व्याख्या होने का मतलब? आप एक भाषा संकलित करें सी की तरह है, यह नीचे चला जाता है हम मशीन के रूप में कहा कि कोड, शून्य और लोगों। और इंटेल साल पहले फैसला किया है कि शून्य और लोगों के कुछ पैटर्न इसके अलावा,, या घटाव का प्रतिनिधित्व या प्रिंट, या अन्य बुनियादी कार्यों। एक व्याख्या की भाषा की दुनिया में पीएचपी, या JavaScript, या अजगर की तरह, या रूबी, या गुच्छों दूसरों के बजाय किसी लिखा है एक इस मामले में interpreter--, यह भी करने के लिए समान, पीएचपी कहा जाता है कि अनिवार्य रूप से language-- का नाम उस में दोहराता है कि एक बड़ा पाश है कोड की लाइनों के सभी पर मैं इनपुट के रूप में यह है कि फ़ीड, जैसे हैलो डॉट पीएचपी, या शब्दकोश डॉट पीएचपी। और फिर आप उनकी बड़ी सोच सकते हैं शर्तों का एक बहुत होने के रूप में पाश। और अगर उन शर्तों का कहना है, मानव के लिए कीवर्ड लिखा है, शुरू कर रही है उसके या उसके कोड को बार-बार। या मानव है, तो कोड की लाइन में लिखा है, यदि, केवल अमल उनकी सशर्त अगली पंक्ति। तो यह व्याख्या की तरह वास्तव में है एक मानवीय भावना, लाइन में यह लाइन द्वारा, और कहा कि अभी समय लगता है। यह भूमि के ऊपर ले जाता है। और इतना है कि एक price-- है अच्छा question-- हम भुगतान करते हैं। तो चलो एक और डेमो करते हैं कि एक छोटे से अधिक नाटकीय है। एक ballpark इस पर, मैं कह सकता हूँ, वहाँ है बुरी तरह असफल होने के एक 90% संभावना है, लेकिन आप हैरान हो जाएगा 10% संभावना के साथ। इसलिए हर साल हम कोशिश जिससे हम यह करने के लिए के माध्यम से चला जाता है कि एक प्रोग्राम लिखने के लिए कोशिश समस्या है जिसके लिए आप है, शून्य सेट प्रस्तुत अपने फोन नंबर और एक अन्य जनसांख्यिकीय जानकारी का बहुत कुछ है, और हम प्रोग्राम के आप एक पाठ संदेश भेज सकते हैं। और फिर हर किसी के फोन beeping या हिल शुरू होता है, और इसकी वजह, बस कमाल है खैर, कंप्यूटर क्या कर सकते हैं पर दिखेगा। यह शायद ही कभी सही ढंग से काम करता है यह बड़े हिस्से में लगता है, मैं आमतौर पर काली सूची में डाल क्योंकि जीमेल या किसी अन्य सेवा से के लिए वास्तव में बड़े पैमाने पर यह करने के लिए कोशिश कर रहा। लेकिन अजीब बात यह है कि हम के बाद से, बहुत है आज यहां हर किसी को नहीं है, पिछली बार जब हम मजेदार तथ्य दो साल पहले यह कोशिश की मैंने सोचा कि मैं एक कार्यक्रम में लिखा था लगता है कि एक पाश पुनरावृति में बैठे कक्षा में सभी छात्रों से अधिक है, और उन्हें एक पाठ संदेश के प्रत्येक, और यह कुछ की तरह कहा क्यों आप व्याख्यान में नहीं हैं? , CS50 बॉट से प्यार है। आप कितने क्षमाप्रार्थी कोई पता नहीं है और तरह की दर्दनाक ईमेल मैं से प्रतिक्रिया में मिला है n शून्य से यहां नहीं थे, जो 100 लोग उस दिन। और भी मजेदार है, और अधिक शर्मनाक story-- तुम्हें पता है, वहाँ इसे बाहर डाल दिया। यह कुछ साल पहले वीडियो पर पहले से ही है। तो क्या आप मुझे जल्द ही देखेंगे पाश के लिए एक लिखते हैं, जिससे यह उस में एक बग लिखने के लिए बहुत आसान है पाश के लिए, ऐसा है कि पहली बार पाश के माध्यम से, आप एक पाठ संदेश भेजें। पाश के माध्यम से मैं दूसरी बार एक और टेक्स्ट संदेश भेजा जाना चाहिए था, और फिर एक और पाठ संदेश, और अधिक है। आप एक टाइपो बनाने लेकिन अगर यह पता चला आप कभी-कभी जब प्रोग्रामिंग एक भेज प्रोग्राम है कि लिख सकते हैं पाठ संदेश, तो दो पाठ संदेश, हर किसी के लिए फिर तीन पाठ संदेश जो पहले से ही एक पाठ संदेश प्राप्त हुआ है। जैसा कि आप जानते हैं, कुछ कर रही है, प्लस कुछ, प्लस कुछ है, प्लस कुछ है, एक बहुत की बड़ा हे है पाठ संदेशों के, या एन चुकता, या $ 0.10 एक पाठ संदेश, $ 20000 पर। शुक्र है कि मैं उस से पहले नियंत्रण सी मारा हुआ है, लेकिन मैं कम से कम एक एहसान किया अपने पूर्ववर्तियों के लिए $ 20 की 200 कुछ अजीब पाठ संदेश, कि केवल, उसका फोन करने के लिए चला गया नहीं लेकिन यह भी यह एक पुराने फ्लिप फोन की तरह था इसलिए इसे से बाहर धक्का दे दिया तरह अपने हर दूसरे व्यक्तिगत पाठ स्मृति संदेश है कि वह वास्तव में मिल गया था। इसलिए हम एक ही लक्ष्य है आज, क्या करना है कि नहीं। हो सकता है कि हवाई जहाज मोड पर बारी। ठीक है। तो चलो एक में जाने यहां callled-- कार्यक्रम मैं PHP डॉट पाठ फोन करेंगे। और अग्रिम में, मैं यहाँ दो फाइलें मिल गया है। मैं सिर्फ कर्मचारियों के लिए एक फ़ाइल बनाया है, कि मिल गया है कर्मचारियों की जानकारी के सभी, सभी के नाम पाठ्यक्रम की वेबसाइट से। और फिर अब के लिए मैं सिर्फ डाल कुछ नकली संख्या 555-1212। तो ये वास्तव में कहीं भी नहीं जाना होगा। लेकिन, इस सीएसवी फ़ाइल के अंदर नोटिस हम पहले संक्षेप में के बारे में बात की थी, जो फ़ाइल आईओ के संदर्भ में। एक सीएसवी फ़ाइल क्या है? कॉमा चर अलग कर दिया। और यह एक बहुत की तरह की तरह है हल्के डेटाबेस, अगर तुम जाएगा। की तरह चार स्तंभों की तरह नहीं है इस फाइल में है, और वहाँ दांतेदार, अनिवार्य रूप से, लेकिन अल्पविराम फ़ाइल में स्तंभों का प्रतिनिधित्व करते हैं। पहले कॉलम टीएफ या सीए के नाम है। दूसरे स्तंभ उनकी आखिरी नाम है। तीसरे स्तंभ उनके फोन नंबर है। और चौथा स्तंभ जाहिरा तौर है- चौथे स्तंभ जाहिरा तौर पर क्या है? ठीक है, तो यह उनकी वाहक है। Verizon, या स्प्रिंट, या क्या नहीं तो। और जैसा कि मैंने पहले सीएसवी misspoke है। कॉमा मूल्यों अलग सीएसवी यहाँ है। इसलिए मैं इस के साथ क्या कर सकते हैं? वैसे यह सिर्फ एक बड़ा पाठ फ़ाइल है और यह सही है, की लंबी तरह है? इस तरह करने जा रहा है एक तरह से परेशान किया जा। और यह, हालांकि, पता चला है कि अगर मैं चलो के लिए एक पाठ संदेश भेजना चाहते हैं यहां एलेक्स कहते हैं। मुझे अपने ब्राउज़र को चलें और पूर्ण स्क्रीन मोड से बाहर अभी तो मैं आगे और पीछे चालू कर सकते हैं। यह मैं में जाना है, तो चलो देखते हैं, पता चला है यहां, और जीमेल, सब सही में लॉग इन करें। इस हिस्से को मत देखो। बस मैं देखने को मिलता है। ज़ाहिर है Livestream कर सकते हैं फिर भी मैं क्या कर रहा हूँ देखते हैं। ठीक है। यहाँ तो बस के साथ जीमेल है जॉन हार्वर्ड के खाते। मैं एक भेजना चाहते हैं तो एलेक्स के लिए पाठ संदेश, मैं निश्चित रूप से एक संदेश रचना कर सकते हैं। और यह पता चला है, और मैं , यहां से पहले एलेक्स के साथ यह परीक्षण किया इसलिए यदि आप एक निश्चित डोमेन संलग्न कर सकते हैं लोगों के फोन नंबर के लिए नाम है, वहाँ दुनिया में मौजूद है, क्योंकि बातों के प्रवेश द्वार के ईमेल करने के लिए एसएमएस का आह्वान किया। जो सब कह का एक अच्छा तरीका है हम में से जो मोबाइल फोन है कि ज़ाहिर है, फोन नंबर है, शायद, अपने कैरियर के लिए नहीं है पर जैसे एक निश्चित प्रत्यय Verizon के पाठ संदेश के लिए Vtext.com आप को संलग्न कर सकते हैं कि डॉट कॉम, अपने अपने निजी फोन नंबर, और उसके बाद आप या दोस्तों, या अपने माता-पिता से कर सकते हैं उस विशेष पते पर आप पाठ। और Verizon, एक ईमेल एक सर्वर है सर्वर, पर इस ईमेल प्राप्त है कि, तब संख्यात्मक हिस्सा है और पर लग रहा है जो कुछ भी विशेष उद्योग जादू का उपयोग करता है वे वास्तव में अधिक से बाहर भेज दिया है अपने विशेष सेल करने के लिए एयरवेव्स फोन। मैं नहीं जानता, क्योंकि अब यह अच्छा है वास्तव में एक पाठ संदेश भेजने के लिए पता या अभी तक कोड लिखने के लिए अपने मोबाइल फोन के लिए, और आप के लिए वास्तव में ऐसा हो सकता है एक अंतिम परियोजना है, लेकिन अभी सब मैं अपने लैपटॉप के यहां है। इसलिए मुझे लगता है कि सीएसवी पर पुनरावृति करना चाहते हैं फ़ाइल, लाइन, लाइन से लाइन द्वारा, लाइन से, , स्टाफ के फोन नंबरों में से प्रत्येक हड़पने और उनकी वाहक और programatically, फोन कनेक्ट, वह यह है कि जुटना उचित डोमेन नाम के साथ नंबर और फिर एक ईमेल भेजें। तो यह है कि कदम की एक बहुत कुछ है। और अच्छी किस्मत सी में कर रही है कि यह एक ऐसी स्थिति के लिए एक बुरा सपना है एक फ़ाइल को खोलने के लिए, इसे पढ़ने के लिए लाइन, लाइन से लाइन द्वारा, आप के रूप में देख रहे हैं, या जल्द ही देख सकते हैं समस्या के साथ, पांच सेट नहीं तो समस्या तो चार सेट, और गतिशील जोड़ना दो तार एक साथ, सी में है, क्योंकि दो तार लेते हैं और उन्हें गठबंधन करने के लिए, न्यूनतम आप क्या करते हैं सबसे अधिक संभावना करने की ज़रूरत है? आप सही हैं, और अधिक स्मृति घोषित करने की जरूरत है? और मैं और अधिक स्मृति हो सकता है, malloc पूछ रहे हो? इसलिए मैं इस का आधा डाल सकते हैं यहाँ, यहाँ इस बात का आधा है। यह सिर्फ इतना कई कदम है। और उस बिंदु से आप खो दिया है बेवकूफ छोटे डेमो में ब्याज जहां आप हर किसी के फोन बीप बनाते हैं। के पीएचपी का इस तरह करते हैं शैली, जिससे हम बस कि पानी के नल के अधिक उपयोग शुरू करते हैं। और विचार कर रहे हैं मौलिक ही, लेकिन हम भी चिंता करने की जरूरत नहीं है कि निचले स्तर के बारे में ज्यादा। तो मैं कैसे हो सकता है चलो देखते हैं इस काम को करने के बारे में जाना। और सिर्फ इतना है कि मैं नहीं , पिछले गलतियों को दोहराना मैं यहां खुद के लिए कुछ नोट लिखा है। और मैं अमेरिका से चल सकता है, तो चलो देखते हैं के कुछ बुनियादी कदम के माध्यम से, और फिर समय की खातिर हम करेंगे शायद अंत में कुछ कोनों में कटौती। मुझे आगे जाना है और खुले में क्या करने जा रहा हूँ ब्रैकेट पीएचपी इस फाइल को शुरू करने के लिए। और मुझे आगे जाना है और यह करने के लिए जा रहा हूँ। आप करेंगे, संभाल फ़ाइल जल्द ही वास्तव में, देखें खुला च नामक एक समारोह कहता है। और यह एक फ़ाइल को खोलता है याद है। और बोली, गंदें शब्द बोलना, आर फिर, क्या मतलब है? सिर्फ पढ़ने के लिए यह खुला। अब के लिए पी सेट में, आप ऐसा किया। और कुछ भी हो सकता संभाल, फू, बार, बस, किसी भी चर नाम। लेकिन आम तौर पर एक कंप्यूटर वैज्ञानिक, एक फ़ाइल खोलने फोन होगा , आप एक फाइल नियंत्रण दे रही है कुछ तो बात पर पकड़। मैं तो बस क्या करने जा रहा हूँ कुछ त्रुटि की जाँच। संभाल गलत है तो, अगर सिर्फ पसंद सी में, मैं ऐसा कुछ करने जा रहा हूँ, फ़ाइल, बैकस्लैश n नहीं खोल सकता। और फिर मैं सिर्फ जा रहा हूँ आगे और बाहर निकलें जाने के लिए। और यह, पीएचपी में पता चला है, मैं एक समारोह के अंदर नहीं हूँ। यहाँ कोई मुख्य समारोह में नहीं है। तो मैं प्रति एसई, वापस नहीं है। मैं बाहर निकला। जो अनिवार्य रूप से एक ही बात है। और मैं शायद एक y के साथ बाहर निकल रहा हूँ। एक बस को किसी प्रकार की कोई त्रुटि का अर्थ है। यह गैर-शून्य है, तो यह एक त्रुटि है। ठीक है, मैं अब यहाँ नीचे हूँ, इसलिए यदि अपने कार्यक्रम में मैं फ़ाइल खोल दिया है। मुझे आगे जाना है और घोषणा करने के लिए जा रहा हूँ पतों नामक एक सरणी, और सी में मुझे पता करना होगा अग्रिम में सरणी के आकार, है ना? या मैं इस घोषित करने की आवश्यकता होगी एक सूचक है, और फिर malloc का उपयोग करें। और फिर हर बार जब मैं पढ़ फाइल में एक और पंक्ति के माध्यम से, मैं malloc करने की आवश्यकता के लिए जा रहा हूँ और अधिक स्मृति, malloc और अधिक स्मृति। यही कारण है कि गर्दन में दर्द हो रहा है। और शुक्र है, पीएचपी, और रूबी, और अजगर, और जावास्क्रिप्ट, वे अपने सरणियों विकसित होगा आप के लिए स्वचालित रूप से। कोई और अधिक malloc। कोई और अधिक स्मृति प्रबंधन। कंप्यूटर इस बात का ख्याल रखता है। लेकिन कीमत है जो आप भुगतान करते हैं। यह एक छोटे से धीमी है। और इस तरह एक कार्यक्रम के लिए हम नोटिस नहीं जा रहे हैं। हम 100 पाठ संदेश भेजने के लिए जा रहे हैं। उदाहरण के लिए यह महसूस करने के लिए नहीं जा रहा है। यह वास्तव में केवल करने के लिए शुरू होता है अपनी पसंद की भाषा में बात जब अपने डेटा या अपने कार्यक्रमों , वास्तव में, वास्तव में बड़े आकार का मिलता है तो और अधिक मामले के रूप में होगा हमारी वेब आधारित सामान के साथ। लेकिन अभी के लिए आगे बना देते हैं। यह पता चला है, जबकि एक भी नहीं है सी में समारोह च सीएसवी मिल बुलाया। सीएसवी फाइल मिलता है, कि लेता है एक अपने तर्क के रूप में संभाल फाइल, और इसके द्वारा, तो पंक्ति आय पंक्ति, पंक्ति से, एक पंक्ति में पढ़ने के लिए। तो यह सिर्फ एक लाइन पढ़ता फ़ाइल से पाठ की। लेकिन, इस समारोह के बारे में अच्छी क्या है यह सिर्फ मेरे पाठ की एक पंक्ति हाथ नहीं है। यह उन लोगों के लिए अल्पविराम के लिए लग रहा है, और लाइन डेसिमल। और लाइन विश्लेषण में विभाजित करने के लिए इसका मतलब है इस संदर्भ में कुछ मूल्यों पर यह। दूसरे शब्दों में, डॉलर के हस्ताक्षर पंक्ति है कि एक चर रहा है मुझे अनुक्रमित का एक गुच्छा देने के लिए जा रहा है। यह होने जा रहा है मेरी सीएसवी में पहले कॉलम। यह दूसरा होने जा रहा है स्तंभ, इस तीसरे होने जा रहा है और इस चौथे होने जा रहा है। याद है, और एक्सेल क्योंकि न , हम इस किया था पिछली बार सहयोग मैं डाउनलोड लेकिन अगर कर्मचारियों सीएसवी डॉट। ओह, नाम नहीं। मैं कर्मचारियों डॉट डाउनलोड करते हैं सीएसवी, और इसे खोलने की कोशिश, मैं पहले से ही ओह मैं registered-- गए हैं पिछली बार के बाद एक्सेल अद्यतन नहीं किया। आप कर्मचारियों डॉट में देखेंगे कि सीएसवी, मैं चार कॉलम है। इसलिए मैं में पढ़ा जब यहाँ एबी के लिए पहली पंक्ति, डॉलर के हस्ताक्षर पंक्ति 0, एबी है डॉलर के हस्ताक्षर पंक्ति एक, लियोन्स है डॉलर के हस्ताक्षर पंक्ति दो, उसका नंबर है और फिर उसके फोन की वाहक। इसलिए वह सब है। और कहा कि अच्छा है, मैं क्योंकि अब यह पता लगाने की जरूरत नहीं है उन अल्पविराम के सभी वास्तव में कर रहे हैं। तो मैं आगे जाने के लिए जा रहा हूँ और कि परिभाषा दी, ऐसा करते हैं, मैं उसका नाम है कि कहने के लिए जा रहा हूँ पंक्ति ब्रैकेट शून्य में वादा किया था। और मैं grab-- करने के लिए जा रहा हूँ और वास्तव में, क्या आप जानते हैं? मैं इस बारे में चिंता करने के लिए नहीं जा रहा हूँ उसका नाम है, इस मामले में। मैं इसे सरल रखने के लिए जा रहा हूँ। मैं उसका नंबर है करने के लिए जा रहा हूँ पंक्ति ब्रैकेट दो में, मुझे लगता है। और उसके वाहक जहां में था? पंक्ति में तीन, के ऊपर एक। तो कुछ भी नहीं है नया। यह एक सरणी में सिर्फ शून्य अनुक्रमण है। और अब, मैं निम्नलिखित करने के लिए जा रहा हूँ। वाहक के बराबर होती है, तो एटी एंड T-- के बराबर होती है मैं सिर्फ एक loop-- किया जा रहा हूँ मैं एक ईमेल बनाना चाहते हैं इस तरह से लग रहा है कि पता। यह 617-555-1212 होने जा रहा है पर, यह क्या है, text.ATT.net, मैं क्या करना चाहते है। फिर मेरे द्वारा इसे कैसे किया जाएगा? मैं निम्नलिखित करने के लिए जा रहा हूँ। उसका पता, उसका नंबर होने जा रहा है और अब, मुझे आगे जाना है और यह करते हैं। यह कुछ दिखलाना वाक्य रचना है। मैं प्रतिशत की चाल हो सकती है, लेकिन मैं वास्तव में सिर्फ यह कर सकते हैं। तो यह एक पीएचपी बात है, लेकिन कि मैं क्या कर रहा हूँ पर विचार करते हैं। डॉलर पर पता हस्ताक्षर बाएं, बस एक चर। मुझे एक चर दीजिए। मैं प्रकार निर्दिष्ट करने की जरूरत नहीं है। पीएचपी यह पता लगाना होगा। दाहिने हाथ की ओर, डेटा प्रकार क्या है कि पूरी बात पर की दाहिने हाथ की ओर? एक स्ट्रिंग की तरह लग रहा है, डबल क्योंकि वहाँ अब तक छोड़ दिया है और अब तक सही पर उद्धरण। अब यहाँ कुछ दिखलाना नई वाक्य रचना नहीं है। घुंघराले ब्रेसिज़ नहीं है, और डॉलर के हस्ताक्षर नंबर। लेकिन एक है कि वाक्य रचना क्या है अनुमान ले शायद मेरे लिए ऐसा करने के लिए पीएचपी कह रहा है? हाँ। बस वहाँ मूल्य डालें। तो कोई प्रतिशत है। हम प्रिंट च, या एस इस्तेमाल कर सकते हैं प्रिंट च या ऐसा कुछ है, PHP और एक बहुत की लेकिन उच्च स्तर की भाषाओं, आप आप सकता है कि देखने के लिए जा रहे हैं शायद, कार्यात्मक ही बात करते हैं छह अलग अलग तरीकों से। और तो यह हो शुरू होता है डिजाइन या शैली की बात है। तो यह सिर्फ एक गुप्त देख रास्ता है कहने का, मुझे एक ईमेल पता दे लेकिन प्लग में नंबर में इन घुंघराले ब्रेसिज़ के बीच। और घुंघराले ब्रेसिज़ नहीं होगा अंतिम भाषण में खत्म होता है। अब हम में से कुछ पर छोड़ सकते हैं समय की खातिर इन लाइनों। तो एक वाहक के बराबर होती है, तो , verHorizon-- वूप्स के बराबर होती है मैं कुछ करना चाहते हैं Verizon-- बहुत समान है, जहां पता हो जाता है, बोली, text.ATT.net में गंदें शब्द बोलना, संख्या। और फिर मैं की इसी तरह कर सकते हैं वाहकों के आराम के लिए बात। लेकिन मैं अभी के लिए डॉट, डॉट, डॉट कर देंगे। और अब लगता है कि चलो मैं धक्का, सरणी जोड़ना चाहते हैं। मैं में जोड़ना चाहते हैं सरणी, पते का आह्वान किया। यह पता है, यह तुम कैसे है PHP में एक सरणी के लिए कुछ जोड़ने। आप malloc क्या करने की जरूरत नहीं है। आप सरणी का आकार बदलने की जरूरत नहीं है। तुम बस सरणी, धक्का कहते हैं। आप क्या सरणी push-- करने के लिए क्या करना चाहते हैं आप पर कुछ पुश करने के लिए करना चाहते हैं? पतों। आप पतों पर पुश करने के लिए क्या चाहते हैं? पता। और वास्तव में, अगर आप वास्तव में चालाक होना चाहते हैं, कुछ वाक्यात्मक चीनी इस के लिए, तो बात है, जो सिर्फ आप में यह कर सकते हैं कि कैसे इसका मतलब सुंदर तरीके से, यह करने के लिए किया जाएगा। वह भी बढ़ रही है का प्रभाव पड़ता है आकार एक करके पतों सरणी, और फिर उस अतिरिक्त खटखटाने इस बारे में ई-मेल पता। हाँ। दर्शकों: [अश्राव्य] स्पीकर 1: पर एक टाइपो वरना, ओह वाहक if--। ठीक है। यह भी करने के लिए मेरे विफलता की तरह नहीं होगा इस कार्यक्रम का हिस्सा लागू बाद में। लेकिन पकड़ने के लिए धन्यवाद। एक और बग। धन्यवाद। हम इस Vtext.com होना चाहते हैं। हाँ। ठीक है। तो यह हमें कहां छोड़ता है? हम फ़ाइल को खोलने के लिए कोड लिखा है। हम पुनरावृति करने के लिए एक पाश है फ़ाइल में पंक्तियों पर। हम कहते हैं कि कोड है मेरी एक समय में सरणी, एक, सही ढंग से स्वरूपित ईमेल पता। तो सच में बनी हुई है कि सभी भेज रहा है इन लोगों में से प्रत्येक के लिए एक ईमेल। तो मैं आगे चला गया है और इस प्रकार के रूप में खुद सज। क्या मैं है- यहां करते हैं और चलो करने के लिए जा रहा हूँ आगे बढ़ो और कुछ वास्तविक कोड को छोड़, जो इस तरह दिखता है। यहाँ तो पूर्व बेक्ड है संस्करण जैसा कि मैंने पहले लिखा था। और मैं समाप्त नोटिस स्प्रिंट लागू करने। मैं टी-मोबाइल को लागू समाप्त हो गया। मैं वर्जिन मोबाइल को लागू समाप्त हो गया। और मैं पहले से माफी माँगता जाएगा। कुछ वाहक नहीं है कि कक्षा में कुछ छात्रों के लिए है मैं गणना की जहमत नहीं उठाई कि अगर यहाँ हालत में। इतना ही नहीं सभी ग्रंथों बाहर जाना होगा। लेकिन मुझे क्या करना चाहिए और क्या देखते हैं। मैं तो बस, फाइल बंद की तरह पी में चार सेट। और इस नए वाक्य रचना है। और हम एक छोटे देखेंगे समय के साथ इस बात का सा है, विशेष रूप से पी के साथ सात और आठ निर्धारित किया है। लेकिन इस बनाने के लिए वाक्यविन्यास है संरचना का एक विशेष प्रकार का। एक पुस्तकालय नहीं है, इसे बाहर चला है कि पीएचपी, कहा जाता पीएचपी मेलर के साथ आता है। जीवन में अपने उद्देश्य के लिए है प्रोग्राम के ईमेल भेजें। यह कोड किसी और ने लिखा है कि हमें ईमेल भेजने के लिए के लिए यह आसान बनाता है, इसलिए हम रखने की जरूरत नहीं है आगे और पीछे जीमेल के लिए जा रहा है, और लोगों के ई-मेल पते में चिपकाने। यहां लाइनों की एक पूरी गुच्छा है कि ईमानदारी से, मैं बस की तरह की नकल की और प्रलेखन से चिपकाया। और वास्तव में, आप कर रहे हैं जिज्ञासु, मैं सब छोड़ दिया दस्तावेज के यूआरएल की कोड में हम बाद में पोस्ट करेंगे कि। और बीच में है कि नोटिस मैं क्या कर रहा हूँ बातें , मैं इस पुस्तकालय बता रहा हूँ है, सही, जीमेल के सर्वर का उपयोग करें? एसएमटीपी हम जब के बारे में संक्षेप में बात की थी साधारण मेल होने के बारे में येल में थे ट्रांसफर प्रोटोकॉल। यह प्रोटोकॉल है कि ईमेल भेजने के लिए इस्तेमाल किया सर्वर, और that's-- जीमेल उन लोगों में से एक है। एक बंदरगाह, इस टीसीपी पोर्ट संख्या है। आप यदि यह ठीक है इससे पहले 587 नहीं देखा है। सिर्फ दस्तावेज से पता है। यहाँ अपने उपयोगकर्ता नाम है। मैं CF50 बॉट का उपयोग करने के लिए जा रहा हूँ। और एक क्षण में, मैं सिर्फ करने के लिए जा रहा हूँ बॉट के वास्तविक पासवर्ड में टाइप करें। और फिर यहाँ नीचे बनी हुई है, क्या नोटिस। मैं पते से मेरे सेट CS50.net पर bot किया जाना है। मैंने सोचा कि मैं एक भेजने अफसोस नहीं होगा लगता है टेक्स्ट मैसेज के लिए 800 लोगों को लगता है कि , तुम्हें याद प्यार CS50 बॉट शायद कहते हैं, आज यह नहीं कर सकता है जो उन लोगों के लिए। और फिर लाइन 76 में, मैं क्या करूँ? सी की तरह लग रहा है की इस तरह तो मैं के लिए 0 के बराबर होती है, एन बराबर होती अब नया है गिनती। यह आप प्राप्त करना चाहते हैं कि पता चला है एक सरणी में बातें की संख्या, आप इसे अब और याद करने की जरूरत नहीं है। तुम सिर्फ एक पूछ सकते हैं गिनती बुलाया समारोह, और इसे आप कितने बता देंगे पतों कि सरणी में हैं। और फिर मैं जोड़ने के लिए जा रहा हूँ ई-मेल का पता। और मैं इस से पता प्रलेखन का उपयोग कर। एक ऐड पता समारोह नहीं है। और अब वहाँ नोटिस वाक्य रचना का एक टुकड़ा है। हम पहले यह देखा है आत्मा में सी में इसी प्रकार के। आप डॉलर के हस्ताक्षर के बारे में सोच सकते हैं यह है, जो एक चर, के रूप में मेल। लेकिन इसके अंदर एक संरचना है जो न केवल गुण हैं, चर अगर तुम जाएगा। लेकिन यह पता चला है पीएचपी में, जो कि एक वस्तु उन्मुख प्रोग्रामिंग है भाषा, जावा की तरह आप APCs ले लिया है। डॉलर के हस्ताक्षर मेल, अगर आप चाहते है-- यह भी, कि इसके अंदर कार्य किया है या तरीकों। तो यह है कि कहने के लिए है विशेष पीएचपी मेलर पुस्तकालय, मैं उसका एक चर मिल गया है, मैं एक समारोह कॉल करना चाहते हैं कि कि पुस्तकालय के साथ आता है, आज के प्रयोजनों के लिए, बस आप तीर संकेतन का उपयोग पता है। कोई डॉट संकेतन है। यह सिर्फ तीर है। लेकिन यह है कि एक सूचक नहीं है। यह सिर्फ सी वाक्य रचना से उधार लिया है। तो फोन के अंदर पता जोड़ने इस लाइब्रेरी की वस्तु या चर। ठीक है। यह जादुई रेखा है। यही कारण है कि मैं एक ईमेल भेज कैसे करना है। यही कारण है कि खोलने के बराबर है जीमेल, इसे बाहर टाइपिंग, और भेज मार। लेकिन यह बजाय एक भेजने के लिए जा रहा है इस शरीर के साथ, इस पते पर ईमेल, CS50 बॉट से। और अब कुंजी लाइन। यह लाइन 2011 की तरह में अनुपस्थित था मुझे लगता है कि जब मैं पिछले इस कोशिश की। वहाँ उस रेखा, ज़ाहिर है, पतों को साफ करता है। तो तार्किक रूप से, मैं अगर पता स्पष्ट नहीं है प्रत्येक यात्रा के बाद, पहली बार ईमेल या पाठ संदेश ऐलिस के लिए चला जाता है, दूसरे के लिए चला जाता है एलिस और बॉब, तीसरे एलिस और बॉब और चार्ली के लिए चला जाता है, इसलिए बहुत महंगा गलती मुझे लगता है कि साल बनाया। तो चलो देखते हैं। क्या कोई सवाल हैं हम आप सभी के लिए एक पाठ भेजने से पहले 10 प्रतिशत संभावना के साथ संदेश? कोई प्रश्न? ठीक है। मुझे यहाँ और परिवर्तन में चलते हैं काम करना चाहिए क्या करने के लिए पासवर्ड, संभावना जीमेल द्वारा काली सूची में डाला हो जाएगा। इसलिए वे सभी को नहीं जाना हो सकता है बाहर, वे के बाद से शायद 800 ईमेल भेजने हमें पसंद नहीं है सभी को एक बार पाश के लिए एक में। ऐसा नहीं है के बाद से विशेष रूप से मानव व्यवहार। ओह, मैं एक दूसरी बात बदलने के लिए जा रहा हूँ। शीर्ष पर, मैं sent-- करने के लिए जा रहा हूँ छात्रों सीएसवी डॉट को फ़ाइल बदल जाते हैं। और मैं इस खुला नहीं होगा, लेकिन यह एक है नहीं 100 कर्मचारियों के साथ समान सीएसवी फ़ाइल, लेकिन 800 छात्रों, बस हार्वर्ड से, क्योंकि येल इस हफ्ते अक्टूबर अवकाश है। और यह एक झटका बात की तरह की तरह लगता है के रूप में क्यों उनमें से सभी पाठ के लिए क्या करना वे छुट्टी पर कक्षा में नहीं कर रहे हैं। ठीक है। बस हार्वर्ड छात्रों उस फ़ाइल के अंदर आज। और अब वापस जाओ मेरी टर्मिनल विंडो के लिए। मैं एक तरह से परेशान कर रहा हूँ। ठीक है तो अब मैं में जाने के लिए जा रहा हूँ निर्देशिका, और पीएचपी पाठ डॉट पीएचपी। कैसे एक बहादुर स्वयंसेवक के बारे में? तो मैं मुझ पर यह नहीं चाहता। ठीक है, ऊपर पर आते हैं। आपका नाम क्या है? माया: माया। स्पीकर 1: माया। ऊपर, माया पर आओ। ठीक है। यह काम करता है तो चलो देखते हैं। मैं अपने खुद का ईमेल पता लगा फाइल में अपना खुद का फोन नंबर file--, इसलिए उम्मीद है कि मैं के रूप में अच्छी तरह से एक मिल जाएगा। आपसे मिलना अच्छा रहा। माया: इसी तरह। स्पीकर 1: तो तुम सब करना है है 800 पाठ संदेश भेजने के लिए हिट दर्ज करें, मैं पेंच नहीं था। अच्छा लगा। सांख्यिकीय, एक समय लग सकता है, हम एक ईमेल करने के लिए मिलता है जब तक address-- है कि एक पाठ संदेश ठीक है अब कमरे में। के अभी भी ताजा है और देखते हैं। दर्शकों: [सीटी] स्पीकर 1: हाँ, ओह। दर्शकों: पकड़ लिया, ओह। स्पीकर 1: छोरों के लिए इस are-- क्योंकि पीएचपी की धीमी गति से नहीं है। यह धीमी है जीमेल क्योंकि हमें थ्रॉटलिंग और नहीं है अमेरिका की तुलना में अधिक भेज दे प्रति सेकंड एक ईमेल की तरह। कुछ? यह मुझ पर परीक्षण करने के लिए एक मुश्किल काम था इसलिए मुझे और मेरे एक फोन बस के साथ घर,। कि बॉट से उम्मीद है? हाँ? नहीं? हाँ कहें। नहीं? यह एक दोस्त से है? अजीब। ठीक। हालांकि यह काम कर रहा है पूरा यकीन है। उह ओह। वे ओह, एक मिनट रुको black--। ओह, तुम जानते हो क्या? कृपया एक क्षण। केवल माया और I-- मिया, यह था? माया: माया। स्पीकर 1: माया, करने के लिए जा रहे हैं मैं यहाँ गलत क्या किया पता है। ओह, एक मिनट रुको। मैंने सोचा कि मैं सिर्फ 100 भेजा लगता है 555-1212 के लिए पाठ संदेश। समर्थन करना। मैं किसी भी वर्ष नहीं जीत सकते। ठीक। माया? पोस्ट उत्पादन में है कि ठीक करें। Dammit! पते से बाद। ठीक है, द्वारा खड़े हो जाओ। माफ़ कीजिए। यह हर साल दर्दनाक है। ठीक है एक सेकंड। यह अच्छा है। मैं इसके बजाय यह करने के लिए जा रहा हूँ। प्रिंट पता। ठीक है, द्वारा खड़े हो जाओ। प्रिंट पते, ब्रैकेट मैं। हाँ, मुझे अच्छा लगा। डॉलर sign-- ठीक है मैं मैं क्या कर रहा हूँ समझाता हूँ मैं इस भाग लिया है के बाद, एक पल में कर रहे हैं। प्रत्येक वर्ष। ओके हम अब जाते हैं। मैं just-- है और मैं नहीं चाहता हर किसी के फोन नंबर को दिखाने के लिए, लेकिन माया की पुष्टि कर सकते हैं सिर की मंजूरी के साथ, कि वह हर किसी को है देखता है कक्षा में फोन नंबर मैं में कॉपी करने के लिए जा रहा हूँ कि जीमेल एक कार्यक्रम में कहा। और जीमेल में हैं, तो क्या हम कहना चाहते हो? तुम्हारी याद आती है। Love-- कि मुझ से नहीं है। मैं भी अभी तक भेजना नहीं मारा है। तो चलो आगे चलते हैं और करते हैं इस, मैं में ज़ूम कर सकते हैं। ठीक। इसलिए मैं अब जीमेल नामक एक प्रोग्राम का उपयोग कर रहा हूँ। माया हैं, तो आप के लिए करना चाहते संदेश बटन पर क्लिक करें हम क्या कि अनुकरण करेंगे कोड किया जाना चाहिए। कुछ? [Beeps] दर्शकों: हाँ। स्पीकर 1: हाँ? मुक्ति? दर्शकों: हाँ। स्पीकर 1: मिस आप। और मैं आराम से बाहर भेजने के लिए जा रहा हूँ। मुझे नहीं लगता था क्योंकि मैं आधे बाहर भेजा जीमेल उन के माध्यम से जाने देना होगा। तो बस आज का दिन है, याद कि तुम्हें पता है मैं Gmail का उपयोग कर सकते हैं कि सीखा। यही कारण है कि भयानक था। माया के लिए एक बड़ा तालियां। धन्यवाद। इसलिए सब ठीक है,। क्या [Beeps] हम हाँ, कुछ बीप मिला? ठीक है। अब मैं वास्तव में 700 पाने के लिए जा रहा हूँ वापस सहपाठियों से दुखी ईमेल। तो कम से कम हम देखेंगे कि यह लायक था। तो क्या गलत हो गया? मैं चला गया पता लगाने की क्या करेंगे इस तथ्य के बाद गलत, लेकिन अभी कितना आसान लग रही है यह पीएचपी में ऐसा करने के लिए किया गया था। इसलिए हम वास्तव में लगता है कि अब क्या कर सकते हैं हम पीएचपी के इस अर्थवत्ता है। भयानक था कि उस was--। ठीक है। तो यह है कि बाहर चले गए हैं चाहिए क्या था। यह मुझ पर यह सुबह का परीक्षण किया गया है मेरी फोन, मेरे फोन की वास्तविक स्क्रीनशॉट। लेकिन अब के लिए क्यों विचार करते हैं हम वास्तव में शुरू कर रहे हैं पहली जगह में यह सब के सब। इसलिए लक्ष्य के लिए नहीं है इन कार्यक्रमों में लिखते हैं कि कमांड लाइन पर लिखा जाता है, है ना? तो मैं एक साधारण लिखा कार्यक्रम हैलो, मैं ने लिखा है सशर्त करता है कि एक छोटे से कार्यक्रम, और इसके आगे एक पढ़ा लाइन और इस्तेमाल किया। और सिद्धांत में, मैं सिर्फ लिखा था बाहर भेजा है कि एक कार्यक्रम 800 पाठ संदेश, दे या 800 ले। और कहा कि इस कार्यक्रम में सभी था अभी भी कमांड लाइन पर चला रहे हैं। और निश्चित रूप से यह है कि नहीं वेब, है ना? लक्ष्य अब का उपयोग शुरू करने के लिए है क्या मैं दावा उपयोग में आसान एक है भाषा, एक और अधिक हिम्मत करना मामले में शक्तिशाली भाषा सुविधाओं की है कि इसके साथ आते हैं, शुरू करने के लिए वेब पृष्ठों को उत्पन्न करता है कि कोड लिखने। इसलिए पिछले समय और पिछले सप्ताह, हम HTTP और HTML के बारे में बात की थी। और HTML के बारे में अच्छी क्या है यह सिर्फ शुद्ध पाठ है कि है। और पाठ निश्चित रूप से है कुछ है कि आप कर सकते हैं सचमुच प्रिंट फोन करके मुद्रित च समारोह, या प्रिंट समारोह। और वास्तव में, कि पीएचपी क्या है अब हमें ऐसा करने की अनुमति के लिए जा रहा है। तो उदाहरण के बीच हम आज के स्रोत कोड में है, कोड के कुछ करने के अलावा कि मैं एक पल पहले वहाँ लगाई हम उदाहरण के लिए इस तरह के कार्यक्रमों की है। Froshims, या नए अंदर का खेल, वास्तव में था पहले extracurriculars में से एक मैं साल पहले के साथ शामिल हो गया। और मेरी रूममेट और मैं साथ परिसर में कुछ अन्य बच्चों, froshims कार्यक्रम को चलाने के लिए प्रयोग किया जाता है। अब मैं अपने पाठ संदेश हो रही है। अब तो हम वापस दिन में, तो यह 1996 था या ऐसा है, एक इंटरनेट नहीं था लेकिन कोई process-- वहाँ नहीं थी froshims के लिए कोई वेबसाइट था। और तो आप के लिए साइन अप करना चाहता था फुटबॉल या वॉलीबॉल या जो कुछ भी, आप इस बात को बाहर भरना होगा कागज के एक टुकड़े कहा जाता है, और आप हार्वर्ड भर में चलना होगा यार्ड, और आप इसे स्लाइड होगा प्रॉक्टर का मेल स्लॉट में कौन Wigglesworth, छात्रावास से एक में था। और यह पंजीकृत तुम्हें थे। और वह या तो वह होगा आप के लिए एक ईमेल रचना मैन्युअल, जितना मुझे पसंद बस, माया के साथ यहाँ था और उसके बाद आप इस बात की पुष्टि की जाएगी गया के रूप में दर्ज की गई। तो यह कम की तरह था फल फांसी, तो बात करो। यह एक तरह से है कि मूर्ख था हम इस के लिए कागज का उपयोग कर रहे थे। मैं हमें सक्षम होना चाहता था सिर्फ एक वेबसाइट पर जाने के लिए, या नए के एक पर जाना है वेबसाइट, खेल के लिए रजिस्टर और सिर्फ इस सामान का एक बहुत स्वचालित उनके नाम और ईमेल डाल द्वारा और इसके आगे एक डेटाबेस में। और वास्तव में, बहुत पहले संस्करण वेबसाइट के, सुपर बदसूरत HTML का उपयोग कर, कुछ इस तरह देखा है हो सकता है। यह वास्तव में था, विडंबना यह है कि अधिक शर्मनाक यह वापस से देख फिर। लेकिन मैं एक प्रोग्रामिंग भाषा का इस्तेमाल किया। पीएचपी, बल्कि पर्ल नहीं बुलाया, जो एक पुराने भाषा है, लेकिन भावना में बहुत समान। और मैं अभी पूरी तरह से यह अपने आप को पढ़ाया जाता है। और यह, यह समझ से बाहर करने के लिए मुझे थोड़ा वक्त लगा दोस्तों में से बहुत सारे सवाल पूछ रहे हैं। लेकिन वहाँ विचारों वास्तव में एक ही थे। पीएचपी वास्तव में क्या बनाया गया था क्योंकि के लिए कमांड लाइन सामान नहीं है हम बस के साथ खेला लेकिन वेब प्रोग्रामिंग के लिए। यह सच में अपनी सुविधा में बंधा है वेब के लिए सेट, के रूप में इस प्रकार है। इस froshims है। और अगर मैं चाहता था इस रूप में रजिस्टर, यह काफी बदसूरत है निश्चित रूप से, लेकिन मुझे आगे चलते हैं और एक कम आराम से छात्र हो, और मैथ्यू के लिए जो कुछ खेल, रजिस्टर पर क्लिक करें। मैं वास्तव में ऐसा करने में सक्षम होना चाहता हूँ, क्या एक रूप से जानकारी प्रस्तुत, नहीं की तरह गूगल के सर्वर से हम पूरी तरह से पिछली बार किया था उनकी बैकएंड का उपयोग करके धोखाधड़ी, मैं मेरे अपने बैकएंड कोड को लागू करना चाहते हैं। कौन सा लिखने पीएचपी इसका मतलब एक यूआरएल पर रहता है कि कोड उस प्रपत्र डेटा को प्रस्तुत की जा सकती है। और फिर अपने कोड, एक सर्वर पर PHP में लिखा है, तो यह है कि उपयोगकर्ता इनपुट का जवाब कर सकते हैं। उसके या उसके नाम, या आराम के स्तर की तरह, या तो छात्रावास, और इसके साथ कुछ करो। इस मामले में, मैं तो बस मूर्खता से इसे बाहर मुद्रित सुंदर है कि सब नहीं है, जो पाठ के रूप में। लेकिन आप निश्चित रूप से कर सकता है आप HTML पता है, कल्पना, और आप जल्दी ही उत्पन्न करने के लिए कैसे पता चल जाएगा प्रिंट च, और प्रिंट के साथ HTML, समान कार्य करता है और आप निश्चित रूप से कर सकते हैं कहते हैं, कि एक सुंदर वेब पेज उत्पन्न हे डेविड, अब आप पंजीकृत हैं। आप एक कम आराम कर रहे हैं मैथ्यू से छात्र, है ना? तुम बस% सत्र की एक पूरी गुच्छा का उपयोग कर सकते हैं, या घुंघराले ब्रेसिज़ और डॉलर के हस्ताक्षर संकेतन मैं करने के लिए, एक पल पहले इस्तेमाल किया अधिक उपयोगकर्ता के अनुकूल है कि पाठ उत्पन्न इस से। तो चलो इस एक फ़ाइल पर एक नजर डालते हैं। Froshim शून्य डॉट पीएचपी इस तरह दिखता है। मैं CS50 आईडीई फिर से लोड करते हैं, froshim शून्य इस तरह दिखता है। इस froshim शून्य डॉट पीएचपी है। और अगर आप इस फाइल के बारे में नोटिस क्या है? दर्शकों: [अश्राव्य] स्पीकर 1: माफ करना, थोड़ा जोर से? दर्शकों: [अश्राव्य] यह HTML में है। और वास्तव में, यह है, क्योंकि है क्या PHP के बारे में दिलचस्प है यह डिजाइन किया गया था कि है बेहतर करने के लिए, होना करने के लिए या बुरा, intermingled एचटीएमएल कोड के साथ। और वास्तव में, यहां तक ​​कि हालांकि इस फ़ाइल, शून्य डॉट पीएचपी froshim शीर्ष पर एक PHP टिप्पणी इसके बारे में, यह सब सिर्फ एचटीएमएल है। लेकिन इसके विपरीत, मैं ऊपर खुला, तो चलो कहते हैं, शून्य डॉट पीएचपी, रजिस्टर जो सिर्फ शीर्ष पर एक बड़ी टिप्पणी है। यह भी लगभग पूरी तरह से लग रहा है के अलावा क्या एचटीएमएल, पसंद है? रेखा, क्या, 21 एक अजीब सा लग रहा है। लेकिन मैं पीएचपी मोड में प्रवेश कर रहा हूँ नोटिस खुले ब्रैकेट प्रश्न चिह्न PHP के साथ। तब मैं कुछ सामान मिल गया है। और फिर उस लाइन के अंत में लगभग मेरे पास है, मार्क पीएचपी सवाल। और यह मैं intermingled से क्या मतलब है। आप HTML लिख सकते हैं कि आप सिर्फ सर्वर बाहर थूक करना चाहते हैं। लेकिन अगर आप कुछ करना चाहते हैं, तो पेज के माध्यम से गतिशील partway, जैसे मेरे नाम डालने या छात्रावास या आराम के स्तर, मैं एक समारोह का उपयोग कर सकते हैं प्रिंट आर की तरह, जो है बस, जिसका मतलब है पुनरावर्ती मुद्रित यह स्वरूपण, इस चर बाहर प्रिंट कभी भी जो आपको चाहिए। इसके लिए वास्तव में नहीं है मानव प्रयोजनों के लिए, यह सिर्फ है डिबगिंग या नैदानिक ​​प्रयोजनों के लिए। तो यह है कि मैंने किया है कि कैसे करना है। मैं इसके बजाय दो डॉट पीएचपी froshims जाना है, सूचना है कि इस फार्म की कार्रवाई के रूप में शून्य डॉट पीएचपी पंजीकृत नहीं है old-- पिछले एक वास्तव में था। लेकिन यह दो डॉट पीएचपी पंजीकृत है। तो चलो कैसे इस एक को देखो थोड़ा अलग तरह से व्यवहार करता है। मैं संस्करण दो में चले गये हैं। यहाँ तो मैं दाऊद के रूप में पंजीकृत हैं, तो कम आरामदायक, मैथ्यूज के छात्रावास से, रजिस्टर। तो इस बार यह है कि आप ने कहा, नहीं, वास्तव में पंजीकृत हैं। मैं यहाँ क्या किया है देखते हैं। मैं रजिस्टर दो डॉट पर नजर डालें तो पीएचपी, यह कुछ और पीएचपी कोड है। ऐसा लगता है कि हालांकि, एक छोटे से क्लीनर है अभी भी इस लाइन पर एक छोटे से लंबे समय लपेटता है। यहाँ पर ध्यान दें। मैं अपने एचटीएमएल टैग प्रिंट आउट, मेरे सिर टैग, मेरे शीर्षक टैग, सिर, शरीर। और फिर मैं कहना शुरू पीएचपी मोड में प्रवेश की तरह बातें। और कहा कि टैग इसलिए, खुले ब्रैकेट PHP-- प्रश्न चिह्न पीएचपी, कहते हैं अरे, सर्वर, व्याख्या execute-- पीएचपी के रूप में निम्नलिखित सामान आप अंत टैग को देखने तक। और अगर आप किसी भी पता नहीं हो सकता है, भले ही आप इस प्रकार अब तक देखा है के अलावा अन्य पीएचपी, आप की तरह पढ़ सकते हैं यह बहुत intuitively। नाम खाली है, या आराम है खाली, या छात्रावास खाली है, मैं क्या करूँ? मैं उपयोगकर्ता के लिए क्या कहते हैं? आप अपना नाम प्रदान करनी चाहिए, आराम, और छात्रावास, और बहुत आगे है। वरना, मैं आप कर रहे हैं का कहना है पंजीकृत, अच्छी तरह से वास्तव में नहीं है। और मैं वास्तव में नहीं कहना कोई डाटाबेस नहीं है क्योंकि वहाँ। मैं डेटा के साथ कुछ भी नहीं कर रहा हूँ। मैं बस इसे दूर फेंक रहा हूँ प्रदर्शन प्रयोजनों के लिए। अब मैं एक तरह से लाइन 22 से अधिक skimped। अधिक वाक्य रचना नहीं है वहाँ, लेकिन डॉलर के हस्ताक्षर पोस्ट दिलचस्प की तरह है रेखांकित। और इस पीएचपी के बारे में अच्छा है क्या है। पीएचपी में, आप क्या कहा जाता है कुछ सुपर वैश्विक चर। वे भी अधिक प्रकार के होते हैं वैश्विक चर से महत्वपूर्ण है। और इन सभी पूंजीकृत जैसे, पीएचपी के साथ आते हैं। आप एक सर्वर है, तो लगता है कि एक वेब सर्वर, अपाचे, जैसे स्थापित और आप भाषा को स्थापित पीएचपी, अचानक सभी के लिए समर्थन आप इन सुपर का उपयोग शुरू कर सकते हैं अपने कोड में वैश्विक चर। और के बारे में क्या अच्छा है पीएचपी है कि अगर आप सिर्फ डॉट में समाप्त हो जाती है कि एक फाइल लिखने पीएचपी, एक वेब सर्वर पर डाल दिया और फिर आप इसे करने के लिए एक फार्म जमा कार्रवाई की है कि टैग और एक फार्म के टैग के माध्यम से, में कार्रवाई की है कि विशेषता प्रपत्र टैग, पीएचपी और वेब पूरी तरह से हड़पने के लिए बाहर के आंकड़े कैसे उन महत्वपूर्ण मूल्य जोड़े के सभी बाहर सवाल की तरह यूआरएल की मार्क क्ष, बिल्लियों के बराबर होती है यह कैसे करने के लिए क्यू और बिल्लियों पता लगाना होगा। आप एक तस्वीर है, या एक उपयोगकर्ता नाम सबमिट करते हैं, या एक पासवर्ड, फेसबुक की तरह करने के लिए पीएचपी आप के लिए बाहर आंकड़ा होगा जहां कि डेटा के सभी है। और यह सिर्फ हाथ होगा आप एक साहचर्य सरणी कहा जाता डॉलर के हस्ताक्षर अंडरस्कोर पोस्ट, या डॉलर के हस्ताक्षर मिल को रेखांकित, आप कर रहे हैं, इस पर निर्भर प्राप्त या पोस्ट प्रस्तुतियाँ का उपयोग कर। और यह सिर्फ तुम हाथ में कर देगा एक सुपर वैश्विक चर, आप नाम पर प्राप्त करना चाहते हैं तो यह है कि उपयोगकर्ता है कि वेब के माध्यम से प्रस्तुत कि फार्म, तुम सचमुच सिर्फ नाम का कहना है सुपर वैश्विक चर का, बोली, गंदें शब्द बोलना, नाम है। और बोली, गंदें शब्द बोलना आराम, और बोली, गंदें शब्द बोलना छात्रावास। और हम ऐसा करने में सक्षम होने के लिए जा रहे हैं इस और इतना अधिक PHP के साथ। और यह था कि भले ही इस पर एक बवंडर नज़र हम और अधिक अगले सप्ताह में डुबकी हूँ। हम एक डेटाबेस मिलवाता हूँ इतना है कि आप वास्तव में कर रहे हैं लागू करने शुरू करने जा रहा है अपने ई-व्यापार based-- सिर्फ एक सप्ताह का समय में वेबसाइट की तरह। तो हम आपको अगली बार देखते हैं, और हूँ आप पाठ संदेश मिला उम्मीद है। अलविदा। [संगीत बजाना] [दरवाज़ा खोलना] स्पीकर 2: सुनो। अध्यक्ष 3: क्या बात है? स्पीकर 2: तुम क्या कर रहे हो? अध्यक्ष 3: एक समस्या सेट पर कार्य करना। स्पीकर 2: अच्छा। दो ताली। [दो ताली] उह, तुम यहां क्या कर रहे हो क्या are--? अध्यक्ष 3: बस बाहर लटके। बस वापस जिम से मिला है। मैं मदद नहीं कर सकता, लेकिन जब हम उच्च fived नोटिस, कि आप सुंदर किसी न किसी हाथ है। क्या आप व्यायामशाला जाते हैं? स्पीकर 2: नहीं नहीं। अध्यक्ष 3: यार, तुम बहुत बड़ी लग रही है। हर कोई जानता है, जिसकी वजह से बुरा है, 8 गेंद परिसर में बड़ा आदमी है। दो ताली। स्पीकर 2: नहीं, उह। नहीं, मैं मैं अच्छा हूँ। मैं मैं अच्छा हूँ।