داگ لوید: بنابراین در ما ویدئو در گرامر PHP ما زیادی در مورد چگونگی صحبت PHP را می توان در خط فرمان استفاده می برای اجرای برنامه به شیوه ای که ما بسیار آشنا با از C. هستید اما من به عنوان همچنین به ذکر است در آن ویدئو، PHP در ابتدا به توسعه داده شد پیاده سازی برنامه نویسی وب، وب سایت. و به این ترتیب در این فیلم ما رفتن به صحبت در مورد چگونه ما استفاده از پی اچ پی در زمینه توسعه وب است. ما می دانیم، در حال حاضر، از ویدیو های ما در HTML، وب سایت های ساخته شده که از مجموعه ای از تگ های HTML که از لحاظ معنایی تعریف ساختار یک صفحه وب است. اما وب سایت های که ساخته شده با خالص HTML از بسیار رنج می برند، محدودیت بسیار جدی است. و برای نشان دادن این محدودیت، اجازه دهید به شرح زیر در نظر بگیرید. بنابراین در حال حاضر من می خواهم برای ساخت یک صفحه وب ، هر زمان که کاربر بازدیدکننده داشته است آن را، آن را به من می دهد که در حال حاضر زمان در کمبریج، ماساچوست، نمایش آن را به آخرین دقیقه است. اگر من در حال حاضر ساخت این حق، من ممکن است چیزی شبیه به این می گویند. زمان کنونی در Cambridge-- بنابراین من تگ های HTML، برچسب ها سر، تگ عنوان، بدن جریان tags-- زمان در کمبریج 14:08، چاپ کردن زمان نظامی. چه اتفاقی می افتد اگر آن را در حال حاضر 2:09، 14:09. خب تا کنون، با HTML، من به در و تغییر آن به 14:09. و سپس یک دقیقه بعد، من باید آن را تغییر دوباره. و سپس یک دقیقه بعد، من باید آن را تغییر دوباره. و همانطور که می توانید تصور کنید، که احتمالا بدترین کار همیشه. شما وب مستر برای یک صفحه وب هستید، و هر دقیقه، 24 ساعت شبانه روز، شما نیاز به به روز رسانی زمان کنونی توسط دستی باز time.html و تغییر درست است که قطعه از کد را به می گویند که زمان کنونی در ساعت و دقیقه. که احتمالا بسیار نیست استفاده از منابع ما، هر دو انسان و محاسباتی. وب سایت هایی که همه HTML به طور کامل استاتیک می باشد. تنها راهی که شما می توانید به روز رسانی محتوا، به عنوان ما فقط دیده می شود، است به صورت دستی آن منبع باز فایل ها، آنها را ویرایش کنید، و ذخیره آنها. و پس از آن زمانی که کاربر تازه صفحه، یا بازدیدکننده داشته است به صفحه برای اولین زمان، آنها را از جدیدترین مطالب را دریافت کنید. اما فقط به این دلیل که ما کرده ایم دستی آن را ویرایش کنید. اگر ما شروع به ترکیب برخی از PHP در آن وجود دارد، کد ما می توانید تعداد زیادی انعطاف پذیر بیشتری دریافت کنید. و ما می تواند یک راه برای صفحات ما به پویا، به روز رسانی و یا خود، بدون نیاز به فقیر ما وب مستر در مثال قبلی به صورت دستی به روز رسانی است. آنها می توانند آن طور خودکار انجام. ما لازم نیست که به دخالت. ما می توانیم برخی از خواب است. که احتمالا چیز خوب است اگر شما در حال انجام بسیاری از برنامه نویسی وب. بنابراین در CS50 IDE، ما برای اجرای یک وب سرور آپاچی به نام. این بسیار معمول استفاده می شود، منبع باز سیستم وب سرور. این سیستم دارای ظرفیت تفسیر پی اچ پی، است که رفتن به اگر مفید باشد شما می خواهید برای انجام هر گونه برنامه نویسی پی اچ پی. و در CS50 IDE، ما یک دستور به این بسیار آسان برای انجام، apache50 شروع می شود. و پس از آن که بریده بریده مسیر، بریده بریده به، بریده بریده دیر، که فقط یک راه واقعا مشترک است نشان می دهد آنچه شما در اینجا مشخص کرده اید یک مسیر به یک خاص است راهنمای شما که می خواهم به ریشه سایت، و یا صفحه ریشه، یا پوشه ای را که وب سرور شما شروع خواهد شد به بررسی فایل ها و خدمت آنها را به مشتریان که آنها را درخواست می کند. بنابراین اجازه دهید بیش از پاپ به CS50 IDE، فقط به شما نشان می دهد، واقعا سریع، چگونه این کار می کند. بنابراین در اینجا در CS50 IDE، من در یک هستم دایرکتوری با نام هفته صفر نه. و من two-- من اعدام یک دستور LS فقط بالا به شما نشان دهد که من آن را دو دایرکتوری در اینجا، پی اچ پی، است که مجموعه ای از فایل است که من استفاده در پی اچ پی ویدئو نحو، و سپس PHP-وب، است که مجموعه ای از فایل است که من می خواهم به استفاده در این ویدیو. و من می خواهم برای شروع یک نمونه وب سرور با محتویات پوشه PHP-وب به عنوان فایل ها در حال خدمت است. پس چه هستم من کاری انجام دهید؟ من قصد دارم به نوع apache50 فضای شروع، PHP فضا، وب داش. که مسیر دایرکتوری از جایی که من در حال حاضر. سپس من آمار را وارد کنید. آن را به انجام یک کمی از مسائل در اینجا. و سپس آن را به می گویند، آپاچی موفقیت آغاز شده است. سایت خود را در حال حاضر موجود at-- و پس از آن URL برای سایت وجود دارد. پس چه هستم من کاری انجام دهید؟ من قصد دارم به سرعت کپی این. و من قصد دارم برای باز کردن up-- و من زوم کردن کمی here-- من قصد دارم برای باز کردن یک تب جدید در کروم. و من قصد دارم به بازدید که URL. من قصد دارم به ضربه را وارد کنید. آن را برای بارگذاری. و من دوباره زوم کردن. و ما در اینجا می توانید ببینید است محتویات پی اچ پی وب من. بنابراین در حال حاضر چه اتفاق می افتد این است که اساسا در اینجا، به عنوان مثال من از CS50 IDE است در خدمت این فایل ها به هر کسی که آنها را درخواست. و در طول دوره از این فیلم، ما مرتب کردن بر اساس نگاهی به یک دسته از این فایل های مختلف در زمینه. برای تست که آپاچی خود را سرور در حال کار است، که به طور کلی رفتن را به صورت را در CS50 IDE، اما اگر شما این کار را به طور کلی، و شما شروع به ساخت وب خود را سرور، یک واقعا وجود دارد مرتب سازی بر اساس مشترک آنالوگ به، "سلام جهان" است که معمولا برای توسعه وب پی اچ پی استفاده می شود. که است که به یک فایل متشکل از فقط این code-- یک جداکننده PHP مجموعه ای با اطلاعات پی اچ پی، پرانتز، نقطه و ویرگول در میان است. که در واقع یک ویژه پی اچ پی تابع که به شما می گوید چه نسخه ای از پی اچ پی شما در حال اجرا هستند. بنابراین در CS50 IDE، من که فقط فایل های موجود به شما نشان دهد چه این نگاه می خواهم. بنابراین من به دنبال در شاخص من از نمونه php من. به عنوان مثال آپاچی در حال اجرا است من محتویات PHP-وب. و من یک فایل اینجا info.php نامیده می شود. من قصد دارم به آن کلیک کنید، زوم کردن. این چیزی است که شما در حال رفتن برای دیدن، تقریبا. این است که فقط به من گفتن که سرور آپاچی من به کار است. و این است که، ظاهرا، نسخه PHP که من در حال اجرا هستم. این آنالوگ به است "سلام جهان است." بنابراین من می دانم همه چیز عملیاتی هستند. بنابراین ما خوب به آن بروید. ما می توانید از اینجا ادامه دهید. بنابراین اجازه دهید دوباره که زمان به عنوان مثال ما صحبت کردن در مورد با وب مستر فقیر ما که تا به حال به روز رسانی صفحه به طور مداوم. این ممکن است یک راه حل برای چگونه من همه چیز را پیاده سازی به طوری که وب مستر نیست به روز رسانی آن زمان بود. آن را فقط نوعی از اتفاق می افتد به صورت خودکار. پایین زیر، HTML، آن را بسیار مشابه، با یک استثنا. اما در اینجا من برخی از PHP در بالای کردم. من، ظاهرا، این نام date_default_timezone_set تابع. و ما حرف نمی زنند در مورد تمام این توابع در CS50، چون پی اچ پی احتمالا دهها هزار. که ممکن است یک بیت از یک اغراق است، اما آن را نمی ممکن. این رو بسیاری از توابع ساخته شده در. و بنابراین این یک تابع است که ظاهرا مجموعه منطقه زمانی من به عنوان ایالات متحده / شرقی، که منطقه زمانی که من است در حال حاضر در ساخت این فیلم. پس از آن من یک تماس به تابع به نام، تاریخ. و، ظاهرا، من ذخیره سازی او از چیزی به نام، زمان. پس چه اتفاقی افتاده؟ خب، اساسا چه اتفاق می افتد، من ساخت یک تماس به برخی از سرور است که رفتن به به من بگویید چه زمان در حال حاضر است. و من آن را تبدیل به یک فرمت ساعت، دقیقه، ثانیه صورت گرفت. و به همین دلیل آن را H سرمایه این است در حال رفتن به من زمان 24 ساعت را، نه 12 زمان ساعت، خواهد بود که ساعت کوچک. و من فقط ذخیره سازی که در یک متغیر به نام، زمان. به طوری که خط دوم از پی اچ پی وجود دارد، فراخوانی تابع، تاریخ، این است که فقط گرفتن برخی از رشته است که رفتن به من تاریخ را، و زمان، و یک دسته از اطلاعات دیگر. و اولین آرگومان وجود دارد، که خود را، تنها استخراج بخش مهم که من در مورد این مثال مراقبت از خود، که ساعت، دقیقه، و دوم است. به طوری که همه که رفتن بر روی است. بنابراین من ذخیره که در یک زمان متغیر $. و پس از آن در بسیار پایین وجود دارد، من که خلاصه نویسی برای چاپ کردن زمان جاری است. بنابراین من فقط رفتن به چاپ از چه زمان فعلی است. بنابراین اجازه دهید نگاهی به این در IDE CS50 و ببینید که ما چگونه در حال حاضر صرفه جویی که وب مستر بسیاری از مشکلات. همه حق است، بنابراین در اینجا من دوباره هستم تماس در دایرکتوری ریشه به عنوان مثال آپاچی من. و من یک فایل در اینجا به نام time.php. من فقط رفتن به کلیک بر روی آن. و من حرکت به بالا، به دلیل ما در خیلی دور بزرگنمایی. زمان در حال حاضر 14:20:34 است. بنابراین من آن را انجام ساعت، دقیقه و ثانیه. و من می توانم تازه کردن صفحه و زمان جدید است. --41. من قصد دارم به روز کردن صفحه و زمان جدید، 44، 46، 47. بنابراین، من به وضوح نیست تغییر هر چیزی خودم. من اینجا طراوت صفحه. بنابراین من نمی تواند به عقب وجود دارد ویرایش آن. و من به شما قول، من نمی هر گونه همدستان که در حال ویرایش فایل از طرف من در سمت. من فقط با استفاده از آن پی اچ پی تابع، زمان، برای تولید زمان برای من بطور خودکار. به طوری که حتی اگر من خوابم، و وب سرور من در حال اجرا است، کاربر مراجعه کنندگان که صفحه هنوز رفتن به دقیقا زمان جاری است. به طوری که خیلی خوب است. من سایت من پویا تر ساخته شده با کد PHP بیش از حد نیست. این فقط دو خط کد بود و پس از آن یک کمی از بیانیه چاپ. و در حال حاضر من یک سایت بسیار پویا که مثال اول ما شاهد در آغاز از ویدئو. بنابراین، از این ویدئو را در نحو PHP یاد که زمانی که مفسر PHP را اجرا می کند برنامه های ما، همه چیز را نادیده می گیرد آن را که در داخل جداکننده پی اچ پی نیست، تف کردن آن را. در این مثال، چه چیزی که تف شد HTML بود. و این بدان معنی من هم اکنون می توانید متفرق HTML و PHP با هم. از آنجا که فقط به مترجم چشم پوشی از HTML و خروجی آن را به معنای واقعی کلمه. که خوب است، درست است؟ از آنجا که احتمالا، در پایان روز، من سایت من برای دوست شود از HTML ساخته شده است. به طوری که هر مرورگر وب می تواند تفسیر آن، و یا درک HTML در صفحه و ارائه آن را به عنوان چیزی است که ما در واقع می تواند به عنوان انسان را درک کنید. و من فقط می توانم استفاده از PHP برای بخش هایی از سایت من نیاز پویایی، که من نیاز به همه چیز که به طور مداوم به روز رسانی. اطلاعات شخص می توانید همان باقی بماند. خوب، پس این خوب است. اما چرا من این کار را؟ چرا HTML و PHP مخلوط کنم؟ من فقط می تواند نسخه قابل چاپ کردن همه HTML، با استفاده از تابع PHP نسخه قابل چاپ. چرا دارم اون کار که نه؟ در مورد آن فکر برای یک ثانیه. چرا، وقتی که من فقط می تواند چاپ out-- من می تواند خطوط از پی اچ پی که فقط می گویند، چاپ تگ HTML، هد چاپ. چرا دارم اون کار که نه؟ چرا من مخلوط کردن PHP و HTML؟ خوب، اگر شما فکر می کنم در مورد آن برای یک ثانیه. PHP، مترجم به تفسیر آنچه در آن می بیند. و پس از آن را برای رفتن به برای اجرای یک خط کد. نسخه قابل چاپ کردن HTML. نسخه قابل چاپ کردن برچسب سر باز است. نسخه قابل چاپ کردن تگ عنوان باز است. آن را به به اجرا و تفسیر که هر مرحله تنها از راه. چرا که نه فقط اجازه دهید مترجم فقط براق بیش از همه چیز آن را درک نمی و آن را به طور خودکار؟ آن را به من زمان زیادی صرفه جویی به مخلوط HTML و PHP من من با هم. و به همین دلیل ما نمی فقط باید ذخیره PHP باز و پس از آن فقط از کل چاپ محتوای صفحه ما به عنوان یکی PHP غول پاسخ به تابع، چاپ، و پس از آن ذخیره PHP نزدیک و ما در حال انجام. به طوری که به همین دلیل ما آنها را مخلوط کردن با هم. تا کنون، ما بیش از حد نه دیده شده تفاوت از نحو PHP به طور کلی. آن بوده است بسیار ساده. ما در حال حاضر دیده می شود علامت سوال، برابر است. ما شاهد یک زن و شوهر از فراخوانی تابع جدید، اما هیچ چیز واقعا فانتزی در رفتن. بیایید شاید همه چیز را کمی خیال باف. اگر که می خواهید برای انتقال اطلاعات بین فایل های PHP مختلف، به طوری که کاربر می تواند شاید ارائه اطلاعات به من. و پس از آن من می توانم چیزی انجام با آن را در یک صفحه دیگر. بنابراین PHP دارای پشتیبانی چیزی به نام جهانی فوق العاده متغیرها که برای تلفن های موبایل بسیار عالی است. آنها واقعا فقط هستید آرایه های انجمنی غول که کمک به اجرای این قابلیت عبور اطلاعات بین فایل های پی اچ پی که می موجود بر روی وب سرور ما. اولین بار از این فوق العاده GLOBALS است که به نام $ _GET. و آن را احتمالا ساده ترین کار به درک. چه با $ _GET اتفاقی می افتد؟ خوب، در واقع، کاربر رفتن به اطلاعات اضافی تایپ در پایان از URL است. و هر نوع آنها، با فرض آن را در یک روش خاص فرمت نام رشته پرس و جو، است که فقط مجموعه ای از جفت کلید از هم جدا توسط آمپرسندهای. کسانی که جفت کلید خواهد بود ذخیره شده در یک آرایه انجمنی $ _GET. و از ویدیو های ما در نحو PHP، ما می دانیم نحوه کار با آرایه های انجمنی در حال حاضر. بنابراین در اینجا یک نمونه از برخی از PHP، که در آن شاید من استخراج تمام جفت کلید که کاربر عرضه شده در URL. بنابراین من باید ذخیره PHP گسترش است. من یک حلقه foreach. من تکرار من در سراسر سوپر آرایه جهانی به نام $ _GET. و من می خواهم که قادر به مراجعه به هر دو کلید و ارزش. و من فقط آنها را چاپ خارج، هر یک در ظاهر تگ پاراگراف خود را در اینجا. من چاپ برخی HTML و درون مقادیر کلید و مقدار را به بیانیه ای که. بنابراین اجازه دهید نگاهی به این در واقع در IDE ما کار می کنند. و شاید این کمک خواهد کرد نشان دادن یک کمی از آنچه است که در واقع انجام. بنابراین من به اینجا در ریشه وب من هستم. و من در یک زوم کمی به شما نشان می دهد که من یک فایل با نام، get1.php. بنابراین اجازه دهید در get1.php را کلیک کنید. و من از دیدن هر یک از مطالب است. که عجیب و غریب، درست است؟ خب، واقعا در واقع. از آنجا که من عرضه نمی هر چیزی را در URL. من قصد دارم به get1.php، اما من هیچ جفت کلید عرضه نمی به عنوان بخشی از رشته پرس و جو است. بنابراین اضافه کردن رشته پرس و جو اجازه و ببینید چه چیزی این فایل می توانید انجام دهید. برای شروع یک رشته پرس و جو شما فقط علامت سوال تایپ کنید. پس از آن شاید من می گویم نام = داگ و در سال = 2015. و بعد من را خواهد ضربه را وارد کنید. در حال حاضر متوجه آنچه اتفاق می افتد. من هنوز در get1.php هستم. اما در حال حاضر من عرضه کرده ام جفت کلید، و من چاپ آنها را خود به خود نام paragraph--، سال Doug--، 2015. که دقیقا کد، ما فقط یک لحظه پیش بر روی اسلاید را دیدم. و اگر من می خواهم به شاید یکی دیگر از اضافه کلید جفت ارزش، و کلاس = CS50. در حال حاضر من ارزش کلید دیگر جفت که چاپ وقتی که من URL دوباره دوباره. در حال حاضر شاید این است که فرمت وحشتناکی است. بنابراین من باید نسخه دیگری از get.php. آن get2.php. تفاوت در این یکی این است که من فایل CSS، و فرمت آن را همه چیز کمی سادگی بیشتر برای من. این شاید بیشتر نمی CSS های زیبا در جهان است. اما این فقط یکی دیگر از انجام آن است. پس من هنوز هم می توانید دسترسی به متغیرهای من با استفاده از $ _GET. و در این مورد، من فقط نوع من ساخت CSS کمی فانتزی تر. و اگر ما را به پاپ IDE من برای یک ثانیه، من شما را در وب پی اچ پی من نشان می دهد دایرکتوری اینجا، get2.php. ما آن را در اینجا باز، برخی از HTML. ظاهرا من ارتباط در فایل CSS من در مورد صحبت شد. من برای باز کردن یک برچسب جدول. و پس از آن در اینجا حلقه foreach من است. در اینجا این است که، آنچه که من بر روی اسلاید قبل نشان داد. تنها تفاوت من است این کلید و مقدار CSS یک ظاهر طراحی شده است که من استفاده از آن. اما این همه من انجام است که من، تکرار در سراسر $ _GET برای دریافت تمام از جفت کلید. و من آنها را چاپ به عنوان میز. و، ظاهرا، من قالب بندی کلید در یک راه، با