1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [PHP الشبكة العالمية للتنمية] 2 00:00:03,000 --> 00:00:05,000 [تومي MacWilliam] 3 00:00:05,000 --> 00:00:07,000 [هذا CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> في هذا الفيديو، ونحن سوف تتعلم حول استخدام PHP لتطوير الشبكة. 5 00:00:11,000 --> 00:00:14,000 PHP هي لغة البرمجة التي يمكن استخدامها لتنفيذ 6 00:00:14,000 --> 00:00:17,000 المواقع على خادم الويب. 7 00:00:17,000 --> 00:00:21,000 خادم الويب هو في الأساس جهاز مخصص لتقديم محتوى 8 00:00:21,000 --> 00:00:24,000 التي يمكن الوصول إليها عبر الإنترنت. 9 00:00:24,000 --> 00:00:30,000 عند الانتقال إلى صفحة على شبكة الإنترنت مثل Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 التعليمات البرمجية في ملف يسمى home.php الذي يعيش على خادم الويب الفيسبوك في مكان ما 11 00:00:35,000 --> 00:00:38,000 سوف يتم تنفيذها على ذلك الملقم. 12 00:00:38,000 --> 00:00:41,000 وهذا الرمز المرجح توليد بعض الانتاج 13 00:00:41,000 --> 00:00:43,000 الذي سيقوم بدوره أن ترسل من خادم 14 00:00:43,000 --> 00:00:45,000 لمتصفح الويب الخاص بك. 15 00:00:45,000 --> 00:00:49,000 سنكون باستخدام الأجهزة CS50 كخادم ويب. 16 00:00:49,000 --> 00:00:51,000 جهازك ربما لن يكون ما يقرب قوية مثل آلات 17 00:00:51,000 --> 00:00:57,000 في مركز البيانات الفيسبوك، ولكن سيكون لديك أي مشكلة في استخدامه لتطوير الشبكة. 18 00:00:57,000 --> 00:01:05,000 >> عندما كنا انتقال إلى URL مثل http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 نحن تكوين الجهاز عبر تطبيق يسمى خادم أباتشي HTTP 20 00:01:10,000 --> 00:01:19,000 للبحث عن ملف يسمى hello.php داخل الوطن / jharvard / vhosts / localhosts / أتش تي أم أل افتراضيا. 21 00:01:19,000 --> 00:01:23,000 في حالة وجود هذا الملف ثم سوف اباتشي استخدام مترجم PHP 22 00:01:23,000 --> 00:01:27,000 تنفيذ التعليمات البرمجية PHP في hello.php. 23 00:01:27,000 --> 00:01:31,000 حالة عدم وجود هذا الملف ثم اباتشي سوف يرمي خطأ لم يتم العثور على 24 00:01:31,000 --> 00:01:36,000 أو خطأ 404، والتي ربما كنت قد رأيت أثناء تصفح الويب. 25 00:01:36,000 --> 00:01:40,000 >> دعونا نلقي نظرة على hello.php. 26 00:01:40,000 --> 00:01:45,000 يمكننا أن نرى هنا أن hello.php يولد خط إشارة الإخراج. 27 00:01:45,000 --> 00:01:51,000 عندما هربنا hello.php في سطر الأوامر عبر فب hello.php 28 00:01:51,000 --> 00:01:54,000 وقد طبع هذا الإخراج إلى المحطة. 29 00:01:54,000 --> 00:01:58,000 الآن، عندما كنا الوصول إلى هذا الملف عبر URL في متصفح الويب 30 00:01:58,000 --> 00:02:01,000 سيتم إرسال انتاجها لمتصفح الويب، 31 00:02:01,000 --> 00:02:09,000 لذلك يتوجه إلى URL، http://localhost/hello.php، 32 00:02:09,000 --> 00:02:12,000 يمكننا أن نرى الإخراج في متصفح الويب لدينا. 33 00:02:12,000 --> 00:02:17,000 >> دعونا نحاول مضيفا printf آخر لبرنامجنا مرحبا العالم. 34 00:02:17,000 --> 00:02:23,000 حسنا، دعونا التوجه إلى متصفح الإنترنت ونرى ما لدينا. 35 00:02:23,000 --> 00:02:25,000 مثيرة للاهتمام. 36 00:02:25,000 --> 00:02:28,000 بدلا من طباعة خط آخر على السطر الخاص به، وكنت قد رأيت 37 00:02:28,000 --> 00:02:32,000 في المحطة، يبدو أنها حصلت على سمشيد على نفس الخط 38 00:02:32,000 --> 00:02:36,000 كما printf أخرى، وربما لذلك خطوط جديدة لا تعمل في PHP. 39 00:02:36,000 --> 00:02:38,000 ليس تماما. 40 00:02:38,000 --> 00:02:41,000 تذكر أن HTML وعادة ما تستخدم لإنشاء صفحات الويب 41 00:02:41,000 --> 00:02:44,000 التي يمكن عرضها بواسطة متصفحات الويب. 42 00:02:44,000 --> 00:02:49,000 هو ليس فقط سلسلة من مرحبا PHP HTML غير صالحة، 43 00:02:49,000 --> 00:02:53,000 ولكن أذكر أننا لا نستطيع استخدام الحرف \ ن في HTML 44 00:02:53,000 --> 00:02:55,000 لإنشاء خط فاصل. 45 00:02:55,000 --> 00:03:01,000 بدلا من مجرد إخراج دعونا السلسلة إخراج HTML صالحة. 46 00:03:01,000 --> 00:03:04,000 قبل به كل فقرة من المكالمات printf لدينا 47 00:03:04,000 --> 00:03:07,000 سيتم عرضه على السطر الخاص به، 48 00:03:07,000 --> 00:03:11,000 حتى الآن عندما نزور مشيرا إلى URL valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 نرى الإخراج الذي نبحث عنه. 51 00:03:19,000 --> 00:03:22,000 >> الآن، إذا كنا عرض مصدر هذه الصفحة 52 00:03:22,000 --> 00:03:25,000 يمكننا أن نرى أن نبحث الآن في صالح HTML، 53 00:03:25,000 --> 00:03:28,000 الذي خلقنا من PHP. 54 00:03:28,000 --> 00:03:31,000 وضع كل من HTML داخل المكالمات printf 55 00:03:31,000 --> 00:03:34,000 وبالطبع سوف تحصل على مزعج حقا. 56 00:03:34,000 --> 00:03:38,000 لحسن الحظ يمكننا خلط بسهولة HTML و PHP 57 00:03:38,000 --> 00:03:41,000 في نفس ملف بي. 58 00:03:41,000 --> 00:03:47,000 تذكر، يجب وضع كل رمز PHP لدينا في غضون <؟ فب 59 00:03:47,000 --> 00:03:49,000 و؟>. 60 00:03:49,000 --> 00:03:52,000 أي شيء غير المغلقة ضمن هذه المحددات 61 00:03:52,000 --> 00:03:55,000 ببساطة سوف يتم إرسالها كما الإخراج إلى مستعرض 62 00:03:55,000 --> 00:03:57,000 بدلا من إعدامهم. 63 00:03:57,000 --> 00:04:01,000 هذا يعني أننا يمكن أن تفعل شيئا من هذا القبيل. 64 00:04:01,000 --> 00:04:05,000 يمكننا ببساطة كتابة HTML داخل لدينا ملف PHP 65 00:04:05,000 --> 00:04:11,000 ثم إدراج كتل PHP أينما كنا نرغب بعض رمز PHP ليتم تنفيذها. 66 00:04:11,000 --> 00:04:15,000 نحن هنا تحديد بعض المتغيرات في الجزء العلوي من ملف، 67 00:04:15,000 --> 00:04:19,000 ونحن في وقت لاحق طباعتها داخل لدينا HTML. 68 00:04:19,000 --> 00:04:27,000 الآن إذا كنا في زيارة هذا الموقع، http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 يمكننا أن نرى لدينا PHP تقييمها داخل لدينا HTML. 70 00:04:33,000 --> 00:04:36,000 >> الآن دعونا نلقي نظرة على كيف يمكننا تمرير البيانات 71 00:04:36,000 --> 00:04:39,000 بين صفحات PHP لدينا مختلف. 72 00:04:39,000 --> 00:04:51,000 بدلا من القول <فب الطباعة (دولار)؛؟> 73 00:04:51,000 --> 00:04:58,000 نستطيع أن نقول ببساطة <؟ = المتغير نحن نرغب في طباعتها، أو لذلك، 74 00:04:58,000 --> 00:05:01,000 و؟>. 75 00:05:01,000 --> 00:05:03,000 دعونا الآن نلقي نظرة على كيف يمكننا تمرير البيانات 76 00:05:03,000 --> 00:05:06,000 بين صفحات PHP لدينا مختلف. 77 00:05:06,000 --> 00:05:11,000 طريقة واحدة يمكننا أن نفعل ذلك هو لترميز المعلومات في عنوان الصفحة. 78 00:05:11,000 --> 00:05:14,000 عند تصفح الإنترنت، وكنت قد لاحظت أن بعض عناوين URL 79 00:05:14,000 --> 00:05:20,000 تحتوي على؟ تليها سلسلة تحتوي اقحام وعلامات متساوية. 80 00:05:20,000 --> 00:05:23,000 هذا الجزء من URL كما هو معروف في سلسلة الاستعلام، 81 00:05:23,000 --> 00:05:29,000 وهذا يسمح لك لتمرير الحجج على نحو فعال لPHP النصي الخاص بك. 82 00:05:29,000 --> 00:05:34,000 تتكون سلسلة الاستعلام من أزواج قيمة المفتاح، تماما مثل جدول تجزئة. 83 00:05:34,000 --> 00:05:38,000 علامة المساواة يفصل مفتاح والقيمة المقابلة لها 84 00:05:38,000 --> 00:05:41,000 بينما اقحام فصل أزواج. 85 00:05:41,000 --> 00:06:05,000 A URL التي تبدو وكأنها http://localhost/get.php؟foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 لديه 2 أزواج قيمة المفتاح في سلسلة الاستعلام. 87 00:06:09,000 --> 00:06:12,000 فو مفتاح خرائط للشريط القيمة، 88 00:06:12,000 --> 00:06:16,000 والباز مفتاح خرائط لqux القيمة. 89 00:06:16,000 --> 00:06:23,000 يمكننا بسهولة الوصول إلى هذه أزواج قيمة المفتاح باستخدام متغير خاص في PHP، 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET هو مجموعة النقابي 92 00:06:32,000 --> 00:06:36,000 التي يتم تلقائيا نشر مع بيانات سلسلة الاستعلام. 93 00:06:36,000 --> 00:06:46,000 وهذا يعني أن تعطى هذه URL $ _GET ["فو"] 94 00:06:46,000 --> 00:06:49,000 وسوف يكون مساويا لشريط السلسلة. 95 00:06:49,000 --> 00:06:56,000 >> دعونا نلقي نظرة على get.php لرؤية _GET دولار في العمل. 96 00:06:56,000 --> 00:07:00,000 نحن هنا كنت تستخدم دالة يسمى var_dump، 97 00:07:00,000 --> 00:07:03,000 والتي عندما تعطى صفيف أو متغير آخر 98 00:07:03,000 --> 00:07:05,000 سوف طباعته بالنسبة لنا. 99 00:07:05,000 --> 00:07:12,000 الآن إذا أردنا الوصول ببساطة http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 ثم سنرى مجموعة فارغة لأننا لم تقدم سلسلة الاستعلام. 101 00:07:17,000 --> 00:07:29,000 إذا كنا لا توفر سلسلة الاستعلام عبر http://localhost/get.php؟foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 ثم يمكننا أن نرى أن المتغير $ _GET سيحتوي 103 00:07:34,000 --> 00:07:37,000 أزواج قيمة المفتاح سلسلة الاستعلام. 104 00:07:37,000 --> 00:07:42,000 ولكن ماذا إذا كنا لا نريد أن نضع البيانات المتوفرة لدينا داخل URL صفحة؟ 105 00:07:42,000 --> 00:07:46,000 لكميات كبيرة من البيانات، وهذا يمكن أن يؤدي في بعض عناوين قبيحة جدا 106 00:07:46,000 --> 00:07:49,000 التي تجري لجعل لدينا نظرة لامعة موقع عرجاء. 107 00:07:49,000 --> 00:07:52,000 يمكننا بدلا من ذلك وضعت سلسلة الاستعلام في الجسم 108 00:07:52,000 --> 00:07:57,000 من طلبات HTTP بدلا من URL الخاص الطلب. 109 00:07:57,000 --> 00:08:02,000 ثم يمكننا استخدام PHP في $ _POST متغير 110 00:08:02,000 --> 00:08:05,000 للوصول إلى أزواج قيمة المفتاح. 111 00:08:05,000 --> 00:08:10,000 طريقة واحدة للقيام بذلك هو عن طريق نموذج HTML. 112 00:08:10,000 --> 00:08:13,000 هنا لدينا نموذج HTML بسيطة. 113 00:08:13,000 --> 00:08:17,000 لاحظ هنا أن السمة طريقة هذا النموذج هو آخر. 114 00:08:17,000 --> 00:08:21,000 هذا يخبر المتصفح لوضع أزواج قيمة المفتاح للنموذج 115 00:08:21,000 --> 00:08:25,000 في نص الطلب بدلا من URL. 116 00:08:25,000 --> 00:08:28,000 >> إذا كان لنا أن استخدام القيمة الحصول على هذه السمة 117 00:08:28,000 --> 00:08:32,000 ثم أن أزواج قيمة المفتاح للنموذج بدلا الخوض في سلسلة الاستعلام، 118 00:08:32,000 --> 00:08:36,000 حتى نتمكن من الوصول إليها عبر $ _GET مرة أخرى. 119 00:08:36,000 --> 00:08:42,000 السمة عمل شكل تخبر المتصفح حيث لإرسال البيانات. 120 00:08:42,000 --> 00:08:46,000 هنا لدينا 2 عناصر المدخلات لها سمات الاسم. 121 00:08:46,000 --> 00:08:51,000 فإن قيمة سمات الاسم بمثابة مفاتيح في البيانات المتوفرة لدينا، 122 00:08:51,000 --> 00:08:56,000 وقيم المدخلات النص سوف تصبح قيم تلك المفاتيح. 123 00:08:56,000 --> 00:08:59,000 الآن دعونا نلقي نظرة على التدوينة، 124 00:08:59,000 --> 00:09:03,000 الملف الذي يتم تقديم هذا النموذج. 125 00:09:03,000 --> 00:09:10,000 مثلما فعلنا من قبل، نحن ببساطة عرض محتويات المتغير $ _POST. 126 00:09:10,000 --> 00:09:18,000 >> دعونا انتقل إلى النموذج مع http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 الآن عندما نقوم بإرسال النموذج يمكننا أن نرى أن البيانات من form.php 128 00:09:23,000 --> 00:09:30,000 يتم تمريرها إلى التدوينة دون إلحاق سلسلة الاستعلام إلى URL. 129 00:09:30,000 --> 00:09:35,000 الآن رأيناه 2 طرق مختلفة لتمرير البيانات بين صفحات PHP، 130 00:09:35,000 --> 00:09:37,000 الحصول على وظيفة. 131 00:09:37,000 --> 00:09:41,000 في الأمثلة لدينا، كنا 2 أنواع مختلفة من طلبات HTTP. 132 00:09:41,000 --> 00:09:45,000 كما قد تتوقع، وكان يستخدم لطلب الحصول عندما كنا بالسكان 133 00:09:45,000 --> 00:09:51,000 تم استخدام $ _GET من URL، وطلب آخر 134 00:09:51,000 --> 00:09:55,000 عندما كنا بالسكان $ _POST. 135 00:09:55,000 --> 00:09:59,000 في تصميم تطبيقات الويب الخاص بك انها قاعدة جيدة من الإبهام لاستخدام طلبات الحصول على 136 00:09:59,000 --> 00:10:03,000 عند التطبيق الخاص بك وسوف قراءة البيانات فقط، وطلبات الوظائف 137 00:10:03,000 --> 00:10:05,000 عند التطبيق الخاص بك سوف يكتب البيانات. 138 00:10:05,000 --> 00:10:09,000 على سبيل المثال، سوف استعلام البحث قراءة البيانات من التطبيق الخاص بك، 139 00:10:09,000 --> 00:10:12,000 لذلك طلب الحصول المنطقي. 140 00:10:12,000 --> 00:10:17,000 من ناحية أخرى، فإن التطبيق الخاص بك إرسال البيانات عبر ما يشبه استمارة التسجيل، 141 00:10:17,000 --> 00:10:22,000 لذلك طلب آخر من شأنه أن يكون أكثر منطقية، وهذا هو لمحة عامة عن بعض التقنيات 142 00:10:22,000 --> 00:10:26,000 ونحن سوف تستخدم في CS50 لإنشاء مواقع الويب باستخدام PHP. 143 00:10:26,000 --> 00:10:30,000 >> اسمي تومي، وهذا هو CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]