[موسیقی] دیوید مالان: این CS50 است، و این آغاز هفته هشت است. و ما خیلی هیجان زده به استقبال هستید تماس، تعجب بزرگ، رامون خود CS50 را گالوان، ارشد افزایش که شده است صرف چند ماه گذشته از جولای در LA، در هالیوود، به معنای واقعی کلمه بر روی یک تلویزیون با نام تجاری جدید کار نمایش به نام مستعمره، خالق که در واقع یک آلوم دانشگاه هاروارد بود. و ما خیلی هیجان زده برای دیدن این هستید اولین در شبکه USA این ماه ژانویه است. بنابراین در ارتباط باشید برای آن، و برای رامون بیشتر برای هفته به آمده است. اکنون می دانیم که پایان نزدیک است. و این بدان معنی است که وجود دارد همه که بسیاری از CS50 سمت چپ، غمگین می گویند. ما فقط سه مشکل مجموعه left-- وجود دارد مجموعه ای مشکل six-- است که در دست خود و یا به زودی خواهد شد، به دلیل بعد از این week-- است که به منظور پل جهان ما از خط فرمان، که در آن ما بیشتر وقت ما با استفاده از صرف C، و جهان از برنامه نویسی وب. خوب، شما بسیاری از ایده ببینید از کار خط فرمان قرض گرفته شده، بلکه بسیاری از جدید و ایده های جالب که نیز برای رفتن به وابسته برای برنامه های کاربردی تلفن همراه و برای فن آوری، به طور کلی، که شما با آن بچه ها آشنا هستیم امروزه بر روی لپ تاپ و گوشی های تلفن و مانند آن. بنابراین شما نه پیاده سازی یک صفحه وب، یا یک وب سایت در هر سه، اما یک سرور وب واقعی است. شما را به بقیه از یک وب سرور ارسال نوشته شده در C، که هدف در زندگی برای دریافت درخواست های HTTP، کسانی پاکت مجازی ما صحبت در مورد، و در واقع هم با پاسخ برخی content-- استاتیک مانند یک نقطه HTML فایل، یا یک نقطه و یا JPEG هر تعداد دیگر از فایل ها، و یا حتی یک فایل پی اچ پی وب سایت خود را به موجب آن سرور است که به تفسیر است که PHP کد و تف نتایج. در حال حاضر، ما شما را با ارائه کرده ام بسیار کمی از چارچوب برای it-- در واقع کد توزیع برای مشکل مجموعه شش است بیش از 1،000 خطوط طولانی، بسیاری از نظرات که، به fair-- است اما این است که واقعا به معنای بعنوان یک فرصت به دست خود را کثیف غواصی به یک پروژه نسبتا بزرگ که ما را بسیار به طور خاص حک شده قطعه از برای شما، به طوری که واقعا زمانی که شما خارج شوید و CS50 ورود به دنیای واقعی از برنامه نویسی و می خواهید برای اب شلپ شلپ کردن در هر تعداد از پروژه، شما بسیار بیشتر باید راحتی دانلود برخی از منبع کد، برخی از منبع باز پروژه بر روی وب، و غواصی در و تغییراتی که مناسب می بینید. مجموعه ای مشکل است که به هفت مورد می باشد ساخت نرم افزار مبتنی بر وب خود را که طول می کشد ورودی پویا و تولید خروجی پویا در فرم از یک وب سایت مانند etrade.com. و مجموعه ای مشکل هشت رتبهدهی نشده است خواهد تمرکز بر روی زبان دیگری شناخته شده به عنوان جاوا اسکریپت. در همین حال، نهایی پروژه در افق است. به اصطلاح قبل از پیشنهاد است که به علت یک هفته از امروز. پیش proposal-- در مشخصات، است که در website-- CS50 را یک فرصت بسیار است گاه به گاه برای شما را به ارسال یک ایمیل بسیار موجز به همکار تدریس خود را فقط به او مطلع کردن و یا او را از آنچه شما فکر، به به عنوان هیئت مدیره صدایی استفاده او و یا او. و یک سلامت عقل check-- که آیا شما فکر در مورد گاز گرفتن بیش از حد و یا شاید خیلی خیلی کم، یا شاید شما هیچ ایده آنچه و می خواهید برای شرکت در یک گفتگو. پس از آن یک پیشنهاد است و گزارش وضعیت، به اصطلاح هکاتون CS50 در کمبریج برای دانشجویان دانشگاههای هاروارد و ییل به طور یکسان. پروژه نهایی است پیاده سازی و سپس با توجه. و پس از آن یک نمایشگاه CS50 در اینجا، در کمبریج، و همچنین به عنوان یکی دیگر در نیوهیون. بنابراین پیشنهاد، نگاهی به وب سایت برای کسانی که خاص. اما excitingly بیشتر، بیش از حد است، این فرصت را به دست خود را کثیف، و ذهن خود را به یک کل باز دسته از موضوعات و ابزار و تکنیک های که فرعی به برنامه درسی هسته درس، اما با این وجود در ارتباط است. و همچنین سنگ های پله فوق العاده برای انجام پروژه های نهایی واقعا سرد است که رفتن فراتر از مواد ما تحت پوشش ام به طور رسمی در مجموعه مسائل و یا در سخنرانی. بنابراین به وب سایت CS50 برای رفتن کل فهرست سمینارها. اگر شما هنوز ثبت نام نکرده، که خوب است. برو جلو و ثبت نام و ما هنوز هم پیگیری با لینک جریان زندگی می کنند، روز و زمان بر روی وب سایت است. و همه چیز خواهد بود ثبت و قرار دادن آنلاین اگر شما نمی توانید را روز خاص و زمان. همانطور که به آنچه در پیش روست thereafter-- خوب، البته، هکاتون CS50 وجود دارد. این عکس، فراخوان، از هفته صفر گرفته ساعت 4 صبح یک شب در سال گذشته. این نمایشگاه CS50، که دوباره برگزار خواهد شد در هر دو شهرستانها است. و پس از آن، فقط به بوته بذر، اگرچه ما هنوز یک ماه به علاوه چپ ترم، اگر شما می خواهم به آموزش خود CS50 پیوستن کارکنان، و شما می خواهید شروع فکر کردن در مورد تبدیل شدن به یک CA، یا تدریس همکار، می دانم که ما شروع به صحبت کردن بیشتر در مورد آن بعد این ترم. اما این تصویر است ترین تیم این سال است. و بنابراین، PHP-- و من خیلی غمگین بود هفته گذشته که [؟ Allyse؟] مهربانی به تلاش برای گرفتن رفت ما این غرفه فوق العاده که من در نهایت با استفاده از، پس از آن واقعا فقط نوع احمقانه نگاه که ما یک بیل نشسته اینجا همه حال چهارشنبه گذشته روز، و یک قاشق کوچک. اما این استعاری من بود راه تلاش به رنگ تصویری از چرا ما در حال گذار از C به یک زبان مانند PHP. و همین می تواند از هر گونه گفت تعداد languages-- جاوا، پایتون، روبی و یا مجموعه ای از others-- اما در حالی که در C، به عنوان مثال، نوشتن یک برنامه در C ممکن است به طور معمول مانند مصرف یک قاشق مثل این و حفر یک سوراخ در زمین، در شن و ماسه و یا خاک. PHP اجازه می دهد تا شما را به حد گزش بزرگتر از مشکل، نوشتن کد به مراتب کمتر با استفاده از یک ابزار بسیار کوچکتر، چرا که خیلی بیشتر وجود دارد قابلیت در مسأله را حل. در حال حاضر، اگر ما واقعا چشمگیر بودند، ما می خواهم چیزی به بیل دارند در اینجا، اما پس از آن باشد. در همین حال، دیگر استعاره ما را با آمد است، البته، شما می توانید استفاده از چیزی شبیه به یک آچار به چکش در چیزی شبیه به یک ناخن. اما البته، حق ابزار برای استفاده در جریان است به نه آنقدر زبان به نام C-- و در حال حاضر من فقط ناراحت [؟ ساندرز،؟] احتمالا، ما این مشکل رفع شود تا later-- ابزار حق استفاده از اغلب است که نمی شود این کمترین ابزار سطح. و در واقع، C یک زبان است که بسیاری از شما همیشه رفتن برای استفاده، و یا لزوما باید دوباره استفاده کنید. و در واقع، کمی secret-- تنها زمانی من با استفاده از C خودم بسیار است بین سپتامبر و دسامبر از هر سقوط ترم تحصیلی. و این به دلیل ما استفاده از آن به عنوان یک فرصت آموزش مبانی برنامه نویسی، و با آن کامپیوتر اساسات علوم، داده سازه، الگوریتم و like-- اما بسیار به سرعت به شما در حال حاضر که به نحو و ایده های اساسی C هستند تا زیبا انتقال به مدرن تر زبان سطح بالاتر، مانند پی اچ پی و پایتون، پرل و و جاوا و هدف-C-- در واقع، نه آنقدر هدف C-- اما سویفت، این جدیدتر زبان هایی که بسیاری از شما پس از آن با شما پروژه نهایی اب شلپ شلپ کردن. بنابراین بدون ado بیشتر، اجازه دهید در واقع استفاده از پی اچ پی برای حل برخی از مشکلات. به یاد بیاورید که در اوایل، آخرین هفته، ما فقط استفاده CS50 IDE، ما یک برنامه کمی شیک نوشت که فقط گفت: "سلام جهان است." و پس از آن من آن را در ذخیره یک فایل به نام hello.php. و بعد من این دستور بود. و چرا؟ در زبان انگلیسی، چه خبر است اینجا؟ چه می کردم که من این دستور زد؟ آره؟ مخاطبان: برخی از تابع PHP وجود دارد که می خواند چه می داند که in--. دیوید مالان: خوب، برخی از تابع وجود دارد PHP-- و اجازه دهید من مشخص تر می شود، یک برنامه ای به نام پی اچ پی وجود دارد، a.k.a. مترجم، است که می فهمد محتویات hello.php، و تفسیر آن را از بالا به پایین، چپ به راست، و چه کسانی که دستورات است. دستورات در hello.php، البته، تنها منبع code-- توابع و متغیرها و حلقه ها و مانند آن، که ما خودمان نوشتن در PHP شروع کرده اند. اما بر خلاف C است، که یک زبان وارد شده، PHP شما فقط آن را ارسال، و اجرای آن. شما که گام واسطه از جست و خیز تبدیل آن به صفر و آنهایی که، و پس از آن در حال اجرا است. و بنابراین، آنچه حرکت صعودی از این است؟ چرا ما پرش در مرحله؟ چرا زبان مدرن تر انجام تمایل به این مرحله صرف نظر؟ فایده بود؟ یا فقط به طور مستقیم؟ حتی اگر ما نه نوشته شده بسیار PHP قبل، آنچه در مورد مفید نیست گردآوری کد خود را فکر می کنید؟ هیچ؟ ارتکاب نیست؟ خارش سر خود را؟ آره. مخاطبان: بیشتر پویا. دیوید مالان: بیشتر پویا؟ منظورت چیه؟ مخاطبان: [نامفهوم] دیوید مالان: OK، خوب، به طوری بسته به ورودی، شما لازم نیست که به هر زمان آن را کامپایل کنید. و آن را به عنوان ساده به عنوان that-- چه نقطه مداوم است به کامپایل کردن کد خود را؟ این تنها یک گام است که making-- این نیاز، برای چند گذشته هفته، دو بار به عنوان بسیاری از مراحل فقط به عنوان در حال اجرا برنامه خود را. آن را در دیدن است که شما مفید بوده است دیدن برخی از پیام های خطا و غیره، اما هنوز هم تنها یک گام آزار دهنده است. و به این ترتیب برنامه نویسان متوجه در طول زمان، چرا ما نه شروع به نوشتن زبان که نمی نیاز است که گام نسبتا مکانیکی، به طوری که میتوانید ارسال کد و خود را به آن را اجرا کنید. اما چه قیمت بود که ما دیدیم ما پرداخت می شود در هفته گذشته، با یک مثال خاص؟ بله؟ سرعت. بنابراین [؟ ] مترجم چه خبر؟ کمی آهسته تر، در صفر و آنهایی که هستند خوب و سریع برای یک کامپیوتر به درک، به دلیل اینتل پردازنده، یا هر چه که باشد، فقط می داند چه خبر است با آن الگوهای بیت است. در حالی که یک مترجم یک برنامه است که واقعا به خواندن منبع اسکی کد که شما نوشته شده است، و تبدیل آن، پس به صحبت می کنند، و یا کشف کردن که چگونه آن را تبدیل نهایت به صفر و آنهایی. پس از آن فقط طول می کشد کمی بیت از یک عملکرد ضربه. پس از آن یک بیت از یک تجارت کردن است. حال اگر ما این کار را انجام بیش از اینجا، به من اجازه به جلو و انجام یک مثال شرح زیر است. اگر من در اینجا، فایل جدید، من قصد دارم برای صرفه جویی در این کار را دوباره hello.php است. و در حال حاضر من قصد دارم به جلو بروید و می گویند، "چاپ سلام جهان" - و به یاد که من می توانم چاپ استفاده کنید، من نمی مجبور به استفاده از چاپ-F. و در حال حاضر در اینجا، اگر من پی اچ پی از hello.php، من huh-- به نظر نمی رسد به آن را تفسیر می شود. من چه اشتباهی کردم؟ مخاطبان: این دستبند زاویه دار. DAVID مالان: آره، شما نیاز که بالای براکت زاویه است. بنابراین این نوع از آزار دهنده است، اما شما به سرعت به آن استفاده می شود. اگر من برای نوشتن کد پی اچ پی، من به طور کلی نیاز به برنامه بگویید، و یا به مفسر، هی پی اچ پی، در اینجا می آید برخی از کد PHP. و پس از آن برای اندازه گیری خوبی، من می خواهم بستن این نه با این، بلکه با زاویه علامت سوال فقط براکت، به طوری که در حال حاضر در اینجا، اگر من این را دوباره اجرا کنید، در حال حاضر من به نتیجه مورد نظر را دریافت کنید. حالا اجازه دهید یک بهینه سازی کمی، فقط به طوری که شما قبل از آن دیده می شود. این نوع از آزار دهنده که من باید برای اجرای PHP hello.php فضا، چرا که در گذشته من فقط می تواند نقطه اسلش ارسال نام برنامه، است که نوع خوب است. این نوع از یک تجربه کاربری بهتر است. پس از آن معلوم شما می توانید این کار را انجام در PHP با من شرح زیر است می توانید این نسبتا مرموز استفاده افسون در بالای در اینجا، است که به طور کلی یک ابتکار نامیده می شود، به موجب آن این نماد تیز است، پس به صحبت، این یک انفجار است و یا علامت تعجب. و این در حال حاضر مسیر به یک برنامه در یک سیستم لینوکس معمولی که است محیط زیست، یا پاکت نامیده می شود. و این داستان طولانی line-- یک خط short-- فقط می گوید، هی کامپیوتر، پیدا کردن PHP مترجم برای من در محیط زیست، پیدا کردن آن را در حافظه خود، پس به صحبت می کنند. و چه خوب در حال حاضر، که اگر من به پایین در اینجا، من می توانم نقطه اسلش انجام سلام نقطه پی اچ پی، or-- مشکلی رخ. مجوز رد شد. خوب، شما حتی بیشتر از این را ببینید با مشکل اگر به شما در تنظیم هفت، در حال حاضر، با مجوز. به نظر می رسد که من نیاز به این دستور را اجرا نامیده می شوند [؟ chamod؟] برای تغییر mode-- یک به علاوه X hello.php. من نیاز [نامفهوم] این اضافی گام که گفتن کامپیوتر من، را اجرایی hello.php. و در حال حاضر به تماشای آنچه happens-- نقطه بریده بریده hello.php، آن را فقط اجرا می شود. من لازم نیست برای مشخص مترجم نیست. و من می توانم آن را حتی زیباتر، هنوز هم، اگر من این چیزی که تغییر نام دهید. اگر من hello.php حرکت به تنها Hello-- تا اطلاع در سمت چپ بالا، نام برنامه است در واقع در حال حاضر فقط خوش آمدید. حالا من می تواند آن را مانند یک برنامه C نگاه کنید، حتی اگر آن را در PHP-- نوشته و یا رک و پوست کنده هر تعداد از زبان های دیگر. بنابراین افزایش حاشیه ای، تفاوت عملکردی است. هیچ اما این فقط یک کنجکاوی کمی در حال حاضر، به طوری که شما می توانید برنامه های ارسال در هر زبان، و کاربر نمی باید بدانید که یا مراقبت چه کسانی هستند. خوب، اجازه دهید در یک نگاه بیشتر مثال در حال حاضر که من در پیش شلاق. و این است که quote.php نامیده می شود. و آن را آنلاین در دسترس است. و توجه کنید که آن را بسیار short-- اما آن را یک برنامه خط فرمان که رفتن به نگاه کردن به قیمت سهام برای من، که در واقع رفتن به وابسته به مجموعه ای مشکل هفت. بنابراین اجازه دهید که آنچه من انجام. در بالا بسیار من کردم باز براکت PHP علامت سوال است. سپس من این خط رو، به موجب آن من نیاز به یک فایل به نام functions.php-- ما در حال رفتن به بیشتر در مورد این در یک بیت، اما این است که مانند C نسخه تیز عبارتند از، که در آن شما می خواهید برای رفتن شامل یک فایل دیگر. PHP به آن نیاز، هر چند آن همچنین دارای یک شامل تابع. و معلوم است که function.php است تنها چیزیه که من قبل از کلاس نوشت. من آن را در همان دایرکتوری قرار دهید، زیرا من می خواستم به عامل از کد که ما ممکن است مایل به استفاده از جاهای دیگر است. در همین حال، شما احتمالا می تواند پی بردن به آنچه که در اینجا. این است که کمی متفاوت از C-- اما چه چیزی من اطمینان استفاده صحیح؟ ترجمه این اصطلاح فنی. تحت چه شرایطی هستم ترک برنامه، و یا خروج؟ آره؟ مخاطبان: هنگامی که شما لازم نیست دو آرگومان خط فرمان. دیوید مالان: هنگامی که من لازم نیست به فرمان آرگومان های خط. و به یاد داشته باشید که یکی از آن استدلال نام برنامه خود است. و دوم این است که برای رفتن به کلمه ای دیگر بعد از اعلان تایپ کنید. بنابراین درست مثل C، این راه من از چک کردن است، آیا کاربران همکاری و اجرای برنامه به عنوان من در نظر گرفته؟ در حال حاضر، چیزی وجود دارد کمی متفاوت با اولین C-- از همه ما این علامت دلار، و چه چیزی یک دلار ثبت نام دلالت در پی اچ پی؟ فقط یک متغیر است. که all-- فقط یک متغیر به دنبال این هر آنچه می خواهید را به واقع آن تماس بگیرید. توجه داشته باشید که چیزی وجود دارد از دست رفته از برنامه پی اچ پی من، درست مثل آن را از دست رفته گذشته هفته، در مقابل C است، که چه؟ انواع، بلکه چیز دیگری است. هیچ چیزی وجود دارد تابع تابع اصلی. هیچ عملکرد اصلی وجود دارد. شما فقط شروع به نوشتن کد خود را بدون نیاز در مورد یک نسبتا خودسرانه نگران کنوانسیون نامگذاری برخی از پیش فرض تابع اصلی. بنابراین ارگ C است واقعا یک متغیر جهانی که مفسر به من در دسترس می سازد. در حال حاضر، این جالب است. بنابراین نگاه کردن مسائل. سهام علامت دلار در است سمت چپ، که متغیر من است. در سمت راست، ظاهرا وجود دارد یک تابع در PHP به نام گرین کارت آمریکا این من عبور آخرین خط فرمان من بحث to-- هر کلمه است. و خواهیم دید که چگونه این با این نسخهها کار در یک لحظه. و سپس در آخر من گزارش قیمت می باشد. من چاپ کردن یک سهم چنین و چنان. و به یاد داشته، این است که راه در PHP-- راه در PHP-- که در آن شما را مجبور به انجام علامت دلار S نیست. شما میتوانید با استفاده از آکولاد و پلاگین در برخی از متغیر. شما لازم نیست که به نگرانی در مورد با استفاده از تابع () printf در به همان شیوه. و از سوی دیگر، زمانی که شما یک متغیر داخل دو علامت شبیه به این، شما با استفاده از یک تکنیک فانتزی به نام درون یابی متغیر است. این فقط بدان معناست پلاگین متغیر در اینجا. و از سوی دیگر، برخی از شما که آمده از زمینه های برنامه نویسی دیگر، شما ممکن است از نقل قول تکی استفاده کنید در اطراف رشته ها را به انجام این کار. شما باید برای استفاده از نقل قول ها دو درون یابی متغیر به کار است. شما به معنای واقعی کلمه در غیر این صورت آن آکولاد را ببینید. خوب در نهایت، اجازه دهید به جلو و اجرای این. اجازه دهید ترمینال من کمی بزرگتر. اجازه بدهید به جلو و اجرا در داخل دایرکتوری نقل قول من. [؟ CDsource؟] [؟ صبح ؟] [؟ نقل قول؟] PHP نقل قول نقطه پی اچ پی، و من قصد دارم به جستجو برای چیزی مانند GOOG است که نماد آن، و یک سهم از نام جدید خود، الفبای وارز، هزینه $ 717، از امروز. همه حق است، اگر ما می خواهید اجرای این دوباره، هر کسی یکی دیگر از سهام دارای صدای تیک تیک آنها می خواهند به نگاه کردن؟ من فکر می کنم مایکروسافت این یکی، MSFT-- 53 $. من فکر می کنم شاید که یاهو. و فیس بوک است که. پس چه این برنامه انجام شده است؟ سحر و جادو به نظر می رسد جاسازی شده باشد در این تابع گرین کارت آمریکا. بنابراین اجازه دهید نگاهی سریع. معلوم است که نمی آید با پی اچ پی، آن را در فایل functions.php است. و ما نمی خواهد از طریق رفتن این در جزئیات بزرگ، اما متوجه کلمه از عمل در اینجا که در خط شش تن از functions.php-- من به معنای واقعی کلمه می گویند تابع. من نام تابع من را مشخص کنید. من پس از آن مشخص هر استدلال، و یا پارامترها، من می خواهم که تابع به take-- هیچ نوع. و پس از آن من آن را اجرا می کنند. و من دست من موج در پیاده سازی، از آن حق نسبتا پیشرفته است حال حاضر، اما ما دوباره آن را در واقع دیدن در یک هفته در مجموعه ای مشکل هفت. اما من می توانم این تا تمیز کردن، بیش از حد. من هم در شامل کد امروز یک نسخه از نقل قول، که هیچ فایل نقطه PHP. از آنجا که آنچه است که احتمالا در بالای برنامه ای به نام فقط نقل قول؟ که به اصطلاح shebang-- افسون نسبتا مرموز که می گوید پیدا PHP و سپس اجرای آن را در کد من در اینجا. همه حق است، به طوری که به ارمغان می آورد ما به جایی که ما را ترک کردن آخرین time-- البته با برخی از نمونه های پیشرفته تر. هر گونه سوال در مورد تا کنون PHP و یا آنچه ما انجام می؟ No-- همه درست است. آره؟ مخاطبان: در داخل فایل های HTML، you-- انجام [؟ آیا تو ؟] [؟ فقط آن را پاسخ؟] یک [نامفهوم] فایل پی اچ پی؟ دیوید مالان: پرسش خوبی است. در مفاهیم وب، که ما به معنای واقعی کلمه در مورد انتقال به، استفاده نمی کنید به اصطلاح ابتکار در بالا، به دلیل server-- وب اغلب برنامه ای به نام آپاچی یا مایکروسافت IIS، سرور اطلاعات اینترنت، و یا هر تعداد از دیگر نرم افزار وب سرور، می داند که وقتی آن را می بیند یک فایل نقطه PHP، که آن را باید مفسر بر روی آن اجرا. این کار در آن خط اول نیست. بنابراین این ترفند خط اول فقط زمانی که شما نوشتن خط فرمان programs-- که ما نمی خواهد را فوق العاده در اغلب موارد، اما راه ما را از پل زدن است نمونه C ما به حال ما پی اچ پی. بنابراین اجازه دهید در واقع پل این جهان از جهان خط فرمان به وب با انجام اقدامات زیر. اجازه بدهید به جلو و رسم در اینجا برای فقط یک لحظه. بنابراین اگر ما یک وب سرور، و یا به جای اگر ما لپ تاپ من در اینجا، که من می خواهم این را جلب کند. و در اینجا ما باید اینترنت در بعضی از فرم. و پس از آن در اینجا، ما سرور در یک building-- این که چگونه اینترنت است works-- و در اینجا یک سرور با برخی از چراغ شاید است. چه در واقع در رفتن بین این دو اتصالات؟ بنابراین در این ساختمان یک وب سرور است. که فقط یک کامپیوتر که در حال اجرا برخی عامل system-- شاید نرم افزار رایگان به نام آپاچی، که CS50 IDE در حال اجرا است. بنابراین شما در واقع می توانید فکر می کنم از این ساختمان به عنوان ساختمان در که CSt0 IDE ذخیره شده است. این جایی است که همه شما حساب، آن همه از شما دارند وب سرور خود را در حال اجرا، از همه شما URL های منحصر به فرد خود، همانطور که ما شروع به بحث، و شما خواهید دید بیشتر در P. مجموعه شش. در اینجا لپ تاپ من جایی دیگری در اینترنت. و تا زمانی که من بازدید از یک URL که متعلق به من، که ترافیک اینترنت است که به سرور، سرور را دریافت HTTP request-- مثل گرفتن index.html و آن را پاسخ به آن صفحه وب. به طوری که پارادایم کلی است. در حالی که همه چیز تا به حال امروز، همه چیز تنها در اتفاق می افتد محدوده این ساختمان. من با استفاده از لپ تاپ من، اما من به CS50 IDE متصل شد، به طوری که همه از آن برنامه من در حال اجرا داخل آن سرور، خود بود. اما در حال حاضر، اجازه دهید شروع استفاده مجدد از پی اچ پی برای نوشتن برخی از برنامه های واقعی که هستند تا با یک وب سرور خدمت کرده است. و برای انجام این کار، من قصد دارم برای رفتن به یک دسته کامل از نمونه که این ایده معرفی در اینجا. بنابراین این نوع از راه فانتزی است توصیف یک الگوی برنامه نویسی. و در واقع، به عنوان خارج می شوید CS50 یا کار بر روی پروژه های نهایی، و یا برخی از دنبال در کلاس، شما شروع به برای دیدن که world-- به ویژه پس از رشد تا با زبانهایی مانند C که level-- فوق العاده کم متوجه است که وجود دارد بهتر است راه از نرم افزار نوشتن. خاص وجود دارد شما می توانید الگوهای دنبال، راه خاصی از سازماندهی فایل های خود و راه های نامگذاری توابع خود را، به طوری که داستان کوتاه مدت، جهان آمده است تا با یک دسته کامل از کلمات اختصاری و نام برای راه های برنامه نویسی. این فقط تکنیک های شما ممکن است استفاده کنید. و یکی از آنها است که به نام MVC، برای مدل نمایش کنترل. و این فقط برای در حال حاضر، بیش از حد پیچیده راه گفت که چگونه باید پخش کردن یک وب سایت مبتنی بر PHP، در مورد ما. چگونه فایل های خود را به شما در سازماندهی، چگونه منطق خود را به شما در سازماندهی، در راه است که باعث می شود آن را آسان تر به ارسال وب سایت های پیچیده تر؟ و در واقع، ما به سرعت رسیدن به آنجا با P-مجموعه هفت. بنابراین در جهان از MVC، شما در حال رفتن برای دیدن که کد ما به طور کلی می توان به صورت کد مدل مشخص، و یا کد کنترل، و یا مشاهده کد. و من قصد دارم به ساده آن را به عنوان follows-- کنترل است مغز از برنامه خود، آن را که در آن همه از منطق جالب اتفاق می افتد. بنابراین همه چیز ما شده ایم نوشتن تا کنون در کلاس، نوع مانند کنترل code-- آن را کنترل برنامه خود را، حلقه خود را، خود را شرایط، توابع خود را و متغیرهای و تمام. نمایش ها، در حال حاضر، در حال رفتن به یک در جهان از وب بیشتر آشکار است. نمایش زیبایی شناسی است وب سایت شما. این چیزی است که کاربران sees-- تصاویر، جداول HTML، تگ های HTML، و همه از آن، همه از زیبایی کرکی مسائل این است که که سخت به نوشتن نیست، اما تنها چیزی است که شما در حال تولید، نظر به اصطلاح، زیبایی شناسی است. و مدل، در نهایت، در جریان است به پایگاه داده stuff-- که ما از غواصی به همه شروع بیشتر این چهارشنبه. بنابراین کنترل منطق است، نمایش چیزهای زیبایی است، و مدل است برای رفتن به جایی که ما ذخیره داده های واقعی ما است. بنابراین اجازه دهید در این مشخص تر نگاه با مثال زیر. من قصد دارم به به دایرکتوری من به اینجا بروید از منبع امروز code-- همه از آن آنلاین در دسترس است. و من قصد دارم برای رفتن به نسخه صفر. و در اینجا is-- اجازه دهید آن تماس نسخه صفر از وب سایت CS50 است. وجود ندارد بسیار در اینجا در همه. این یک صفحه وب بسیار ساده است که به احتمالا با استفاده از چه HTML tags-- فقط حدس می زنم از نمونه های گذشته؟ آن چیست؟ H1-- احتمالا برای کلفت بزرگ عنوان، که آرم تا بالا، CS50. و چه چیز دیگری است در بازی؟ آره؟ مخاطبان: لیست نامرتب. دیوید مالان: list-- نامرتب به طوری که تگ UL و شاید چند برچسب ها LI. و اگر شما این یاد داشته باشید، این صادقانه مهم نیست. این نوع کرکی هستند جزئیات اجرای HTML که شما به سرعت نگاه کردن و شما را به در راه خود هستید. ما بیشتر در برنامه نویسی تمرکز ایده هایی که قطعات آبدارتر هستند. بنابراین اجازه دهید فقط سریع را در HTML-- نگاه و در واقع اگر من باز کردن نمایش مبدأ در اینجا، آره، این دقیقا همان چیزی که در اینجا. یک تگ UL وجود دارد. تو در تو در داخل آن است به دنبال LI. و پس از آن من قرض گرفته URL از برنامه درسی واقعی در اینجا. و سپس در lectures.php ظاهرا یک صفحه دیگر به صورت پویا تولید که برای رفتن به، اجازه دهید see-- آه، دو هفته اول از سخنرانی. بنابراین در هفته صفر و هفته، یک، اجازه دهید در this-- نگاه کنید اگر مشاهده منبع صفحه من، نیز فوق العاده ساده است. این منجر به دو صفحه نام week0.php و week1.php. بنابراین در حال حاضر در نظر گرفتن آنچه که اتفاق می افتد. زمانی که من در week0.php کلیک کنید، لپ تاپ من در حال انجام یک درخواست برای week0.php. وب سرور، a.k.a.، CS50 IDE، در حال دریافت که پاکت مجازی. آن را از دیدن یک پیام را دوست دارم، week0.php. پس از آن تفسیر فایل، بالا به پایین، از چپ به right-- فایل نام week0.php-- و تف کردن نتایج. بنابراین در داخل این فایل، week0.php، باید منطق کنترل است که تولید این HTML، و ما به زودی خواهید دید که. اما در حال حاضر، اجازه دهید من در هفته صفر کلیک کنید، و در حال حاضر ما چهارشنبه و جمعه، و در حال حاضر ما باید اسلاید به آرامی از هفته صفر. و شما ممکن است به یاد این از راه برگشت وقتی. به طوری که همه این وب سایت در حال انجام است. بنابراین اجازه دهید در نظر چگونه آن را انجام این کار. من قصد دارم به رفتن دوباره به کد منبع در اینجا، در CS50 IDE، و من قصد دارم برای باز کردن فایل index.php. در بالای این فایل یک دسته از نظرات است. و سپس در وسط این فایل آن، معلوم است، نه کد پی اچ پی ندارند. چرا که اگر شما هر یک از ندارد براکت باز برچسب ها علامت سوال PHP، شما آزاد هستید به فقط با قرار دادن HTML است. چون آنچه را که PHP مترجم قرار است به انجام، است که آن را می خواند این file-- بالا به پایین، از چپ به right-- آن را تنها تفسیر کد آن را می بیند بین کسانی که براکت زاویه علامت سوال است. و هر چیز دیگری که آن را نمی کند را به عنوان پی اچ پی، آن را فقط تف. HTML می باشد و در میان چیزهای آن را فقط به تف کردن. بنابراین این فایل می تواند داشته باشد index.html را نام شده است، اما من همه چیز را نامگذاری نقطه PHP به عنوان سنگ پله. Lectures.php-- مشابه underwhelming، آن را فقط برخی از HTML است. Week0.php، به طور مشابه تنها برخی HTML. اما در حال حاضر اجازه دهید بر روی قرار داده کلاه های مهندسی ضرب المثلی، و در نظر گرفتن چگونه ما می توانیم این را بهبود بخشد. این سخت نیست برای انجام این کار، اما من از نوع از به کپی و چسباندن واگذار شد. و در واقع، اگر من دو هفته، شما می می دانم آنچه من احتمالا کاری انجام دهید؟ من قصد دارم برای رفتن به week1.php، من رفتن به برجسته همه چیز است. من قصد دارم به آن را کپی کنید، رب آن به یک فایل جدید به نام week2.php، نیشگون گرفتن و کشیدن برخی از آدرس ها، و در راه من باشد. بنابراین در آنچه که ما بر اساس در C دیده می شود در حال حاضر، این را احساس نمی کند حق، امیدوارم. کپی، چسباندن به ندرت راه حل مناسب. پس چه می توانیم شروع کنیم به انجام برای بهبود این؟ فرصت که در آن برای طراحی بهتر است؟ در آن زمان من به هفته هشتم، آن را به واقعا آزار دهنده است اگر می خواهید به تغییر که قلم برای هر یک از صفحات من، یا اگر من می خواهم برای تغییر ساختار از طرح. طوری که در آن فرصت برای طراحی بهتر است؟ خوب، اجازه دهید در نظر چه به اشتراک گذاشته شده در تمام این فایل ها. در اینجا یک هفته، در اینجا هفته صفر، در اینجا lectures.php است، در اینجا index.php-- چه همان است و چه متفاوت است، به طور کلی، در هر یک از این فایل ها؟ آره؟ مخاطبان: [نامفهوم] دیوید مالان: OK، خوب است. بنابراین یک الگوی وجود دارد، قطعا، به موجب آن هر بار که من را انتخاب نمایید سخنرانی من، من باید تولید بسیار شبیه صفحه به دنبال. و به این ترتیب شاید من می تواند اهرم این واقعیت است که واقعا، ما عمدا عددی نمایه lectures-- ما اگر من می توانم حتی بیشتر قرار کلمات در پاسخ خود را. و چه تنها چیزی است، واقعا، که در حال تغییر بین هفته one-- و اجازه دهید من در پایین حرکت پس از آن تقریبا در همان place-- بنابراین در اینجا در هفته صفر است، تقریبا در بالای صفحه. در اینجا هفته یک، هفته است صفر، هفته، یک، هفته صفر است. OK، به معنای واقعی کلمه اگر شما می دانید هیچ برنامه آنچه، این در حال حاضر درست مثل یک الگوی تطبیق بازی ها. پس چه متفاوت است؟ آره؟ مخاطبان: [نامفهوم] دیوید مالان: خوب، به طوری که عنوان در حال تغییر است، همیشه تا کمی. صفر است که، البته، به یک است. همان چیزی که در تگ H1 اتفاق می افتد. و ما کاملا آن را به عنوان به راحتی، چون آدرس ها کمی طولانی است. اما این URL ها در حال تغییر کمی. اما آنچه در حال تغییر است، جرات من می گویند، بسیاری از مطالب از page-- تگ HTML است همان است، سر همان، عنوان شده است تقریبا یکسان است، بدن است همان است، و تقریبا هر چیز دیگری همان به جز برای است کسانی که کوچک. پس چگونه می تواند به ما در مورد مقاطعه برخی از این می شود؟ خب اجازه دهید به من پیشنهاد دقیقا که در نسخه های بعدی. بنابراین در اینجا در نسخه یک، من دقیق فایل های مشابه، به علاوه یک زن و شوهر از دیگران است. در اینجا index.php-- و حتی اگر شما PHP را دیده ام پیش از این هرگز، چه هستم من احتمالا انجام برای حل این بر اساس problem-- آنچه که اینجا میبینید؟ آره، این است که تعهد کمی؟ هیچ؟ بله، در رفتن. مخاطبان: [نامفهوم] دیوید مالان: بله. مخاطبان: [نامفهوم] DAVID مالان: من شما نیاز به فقط کمی بلندتر صحبت می کنند. مخاطبان: [نامفهوم] دیوید مالان: OK، خوب است. و من فکر می شد سخت به you-- اما من گوش فکر می کنم آنچه شما گرفتن در این است که برچسب ها که مشترک تا بالا، و برچسب ها که در مشترک بودند پایین، در حال حاضر عامل شده است، و یا تنزل به چه فایل؟ فایل header.php و footer.php-- و ما قصد داریم به برخی از ترفند به رسیدگی به نگرانی شما فقط مطرح در مورد تغییر اعداد، برای به عنوان مثال، اگر من شما را به درستی شنیده می شود. اما به نظر می رسد جان کلام آن. اگر مقدار زیادی از وجود دارد افزونگی در بالای صفحه، و مقدار زیادی از افزونگی در پایین، اجازه دهید به معنای واقعی کلمه فقط برجسته و برش که محتوای کردن، آن را در یک file-- جداگانه درست مثل این ایده از CSS، که در آن ما را عامل زیبایی شناسی بسیار مشابه، قرار داده است آن را در یک فایل نقطه PHP جداگانه، استفاده از نیاز mechanism-- که مثل C include-- تیز که اساسا مانند گفتن گرفتن محتویات فایل header.php، و کپی و آنها را در اینجا وارد کنید. اما این بدان معنی است که در حال حاضر در فایل index.php، من این دو خط. در lectures.php، من هم کسانی که دو خط. در week0.php، من هم کسانی که دو خط. بنابراین در حال حاضر، اگر من می خواهم برای تغییر عنوان همه صفحات من، و یا من می خواهم به تغییر ساختار اساسی، من می توانم آن در حال حاضر در یک مکان تغییر دهید، یا دو ضربه سر places-- و بالا و پایین، به ترتیب. در حال حاضر شروع کد به نگاه کمی بیشتر مرموز، درست است؟ اما اگر شما فکر می کنم آنچه در مورد صفحه است doing-- اگر من درخواست week0.php، درست مثل در طراحی بیش از here-- که week0.php درخواست شده است، معنی آن چیست؟ به معنای واقعی کلمه، این فایل درخواست شده توسط مرورگر. a.k.a. وب server-- CS50 ID-- این کاغذ برداشته فایل، week0.php، و می خواند آن بالا به پایین، چپ به راست. در خط یک، آن را بلافاصله مواجه براکت باز علامت سوال PHP، نیاز هدر نقطه پی اچ پی، و غیره چه مفسر PHP does-- که به وب ساخته شده است سرور، چرا که ما از پیش آن را برای you-- به طور خودکار می رود به فایل header.php، کپی مطالب، رب ها و سس آنها را در اینجا. اما پس از آن برخوردهای مترجم علامت سوال براکت نزدیک، پس از آن همه فکر انجام می شود. در حال حاضر آن فقط کورکورانه تف از خطوط دو تا هفت ساله، دلیل آن را فقط HTML خام است. می شود به خط هشت، و می کند که همان سحر و جادو again-- باز کردن فایل، گرفتن مطالب، و نیاز به آنها و یا چسباندن آنها سمت راست و سپس یا وجود دارد. اما من فقط به اشکال اشاره کرد. این یک گام رو به عقب جزئی است، چرا که اگر ما در header.php نگاه کنید، من به نوعی قطع کرنر زد. چه ویژگی های من بود تا در برای به دست آوردن این طراحی بهتر قابل بحث. آره؟ مخاطبان: [نامفهوم] دیوید مالان: آره، من نوع از قطع یک گوشه کوچک اما با اهمیت. شما اشاره کرد که آنچه در حال تغییر عنوان بود، تعداد در عنوان، و تعداد در H1. بنابراین راه حل من بود، OK، اجازه دهید فقط تغییر نام صفحه، و با آن مقابله نمی مشکل ندارند. به طوری که یک جزئی گام به عقب برای مطمئن. اما آنچه قابل توجه است که در اینجا است که آنچه من انجام داده اند در غیر این صورت عامل از همه چیز مشترک است. و در footer.php را، متوجه من عامل همه از که، البته کمتر، مسائل مشترک است. بنابراین من باید به نحوی در حال حاضر قادر به یک گام دیگر به جلو، و تعمیر که مسائل مربوط به عنوان. بنابراین اجازه دهید انجام این کار. اجازه بدهید من به نسخه دوم من به در اینجا، که، دوباره، تا به فایل های مشابه به جز یک مورد جدید. و آن را کمی بیشتر طولانی، اما اجازه دهید اگر ببینید که ما می توانید کسی را دست انداختن جدا چه خبر است در اینجا. بنابراین به جای نیاز به فایل header.php و footer.php را، من به نظر می رسد تنها نیاز به یک file-- نامیده می شود، البته، helpers.php. و اجازه دهید من در حال حاضر تصریح، آنچه در داخل helpers.php فقط یک دسته از توابع است که من نوشتم، درست مثل قبل. اما من آن را به نام helpers.php. در حال حاضر ظاهرا در، خط سه و 10، من تماس دو functions-- ارائه هدر، ارائه پایین صفحه. کسانی که با آمده است پی اچ پی، من آن خودم نوشتم. و من آنها را در helpers.php قرار داده است. در حال حاضر، ما فقط این نحو دیده یک بار، و آن را فوق العاده کوتاه بود. اما این ظاهرا یک استدلال ارائه هدر، تابع. چرا می دانم که من؟ خوب در اینجا یک پرانتز بسته، در اینجا یک پرانتز باز است. و البته، درست مانند C، هر چیزی بین آن پرانتز یک input-- یا آرگومان به تابع. نوع داده از این بحث چیست، بر اساس آنچه که من مشخص کردم؟ کسانی که براکت چه نشان می دهد، بر اساس هفته گذشته؟ آره، آن را به یک آرایه است به طور خاص یک آرایه انجمنی. و مسلما این نحو بد بو کمی است، اما این فقط عبور در یک جفت ارزش کلیدی است. مهم این است که، نقل قول را تمام کردن عنوان و ارزش CS50 است. اگر ما انجام داده بود این در C، آن را ممکن است به جای بیشتر شبیه این، فقط نقل قول را تمام کردن CS50-- و یا در واقع این امر می تواند در اشکال مختلف پرانتز، و یا چیزی شبیه به آن در C، که در آن کلید صفر است، و ارزش CS50 است. اما باز هم، در پی اچ پی، حتی اگر نحو است، دوباره، کمی عجیب و غریب، آن را اجازه می دهد تا شما را به تصویب در کلمات به جای شماره به معاشرت کلید با ارزش. پس چه چیزی این همه چیست؟ اگر من به helpers.php بروید، اجازه دهید در این تابع است. renderHeader.php، و نه renderHeader عملکرد من است، و من می دانم که چون من کلمه کلیدی در اینجا تابع. این جدید از C-- ظاهرا است یک استدلال به نام data-- طول می کشد اما من می توانم این نام هر چیزی، اما من آن را به نام داده، فقط به یک clean-- کمی و فقط یک حدس است، به ویژه اگر شما در برخی دیگر برنامه ریزی شده به زبان سطح بالا قبل، چیزی بالا C، مفهومی است. چه براکت باز برابر براکت احتمالا معنی است؟ و یا چه معنایی ممکن است؟ ما این را در C. دیده ام و نه آره؟ یک آرایه خالی. به طور خاص، این بدان معنی است که اگر کاربر می کند renderHeader پاسخ نمی با یک استدلال، من هنوز هم به یک استدلال به نام داده، اما مقدار پیش فرض آن است رفتن به یک آرایه خالی. پس از آن فقط یک راحتی خوب است. من لازم نیست به فریاد زدن در کاربر، و یا می گویند شما استفاده می شود تابع من اشتباه است. من فقط می تواند به کاربر به طور پیش فرض ارزش، اگر من به خصوص مراقبت. در حال حاضر این تابع، من قصد دارم به موج دست من در. اما این تابع عصاره اجازه می دهد تا ما به تصویب این متغیرها در داده به header.php در صورت زیر است. و این آخرین قطعه است، من فکر می کنم، از نحو بد بو. در اینجا نسخه جدید من است از آن header.php-- می گفت، به معنای واقعی کلمه، باز براکت عنوان CS50، و آن بود. و همان چیزی که برای H1. در حال حاضر ظاهرا می گوید چیزی بسیار بد بو. و اجازه دهید من این ساده برای یک لحظه شرح زیر است. این چیزی است که من عنوان من به توان تغییر داد. با این حال، آن را گرفتن کمی زشت به طور مداوم باز براکت با پی اچ پی، و سپس با استفاده از تابع print. معلوم می شود که پی اچ پی دارای مختصر نماد برای این است که فقط یک علامت مساوی، است که از لحاظ فنی تابع به نام اکو به جای چاپ، اما همان چیزی است، به طور موثر. که فقط به نظر می رسد بهتر است. این فقط یک نحوی شکر، اگر شما خواهد شد، که باعث می شود کد من نگاه کمی بهتر است. اما معلوم است، و ما این کار را دوباره ببینید قبل از اینکه طولانی، ما باید به این آزاردهنده عملکرد طولانی به نام کاراکتر های خاص در HTML PHP، چرا که معلوم است هستند ورودی خاصی وجود دارد که کاربر ممکن است به ما بدهد، یا که کاربران ممکن است به ما بدهد، که در حال رفتن برای شکستن سایت ما. اما ما که آینده را ببینید هفته با جاوا اسکریپت. اما در حال حاضر، فقط می دانم که این فایل، headers.php، به سادگی طول می کشد که عنوان من گذشت در، آن را به مطمئن شوید که آن را بی خطر را به یک وب تزریق شود صفحه، و آن را تف کردن عنوان من و به عنوان H1 است. بنابراین اگر من در حال حاضر به این نسخه رفتن، توجه کنید که سخنرانی است که عنوان آن تماس، هفته صفر است عنوان آن تماس، و در واقع، HTML من تولید مشابه به آنچه من است اولین نسخه was-- به جز فضای خالی من، چون من شروع به قالب بندی کد من کمی متفاوت است. اما من در تمام تولید کرده ایم کد من در مورد مراقبت. بنابراین اجازه دهید من برای مکث فقط یک لحظه و ببینید اگر هر گونه سوال وجود دارد و یا سردرگمی من ایجاد کرده اید. همه حق است، پس بیایید پیچ ​​و تاب کمی سخت تر در اینجا برای دیدن اگر یک وجود دارد فرصت را برای بهبود. Helpers.php همچنین این حال تابع، نام renderFooter. و چه چیزی قابل توجه در مورد renderHeader و renderFooter؟ و دوباره، برای مقاصد امروز، مطمئن شوید که تابع عصاره تنها راه من از استدلال عبور به header.php و footer.php را. متاسف؟ مخاطبان: [نامفهوم] دیوید مالان: آره، من تنها تغییر نیاز به خط. بنابراین به معنای واقعی کلمه، من گناه مرتکب شده ام از کپی کردن و چسباندن، اما دوباره. آن تعداد زیادی نیست از خطوط، اما شماها آمده اگر من کپی کردن و چسباندن همه چیز فقط برای تغییر یک کلمه کم، و یک کلمه کوچک است که آلن اشاره است بالا و پایین صفحه در اینجا، در مقابل هدر در اینجا. در غیر این صورت، همه چیز یکسان، به جز، البته، نام تابع است. بنابراین چه چیزی ما بهتر؟ خب من اجازه باز کردن این نسخه در اینجا، به موجب آن در helpers.php، چرا من فقط یک کمی دقیق در مورد این؟ ارسال کمی پیچیده تر است کد، اما پاسخ آن را ارائه؟ بنابراین آنچه را که من اساسا تغییر کرده است؟ طول می کشد تا یک استدلال now-- دو استدلال، داده ها هنوز هم. و پس از آن چه برای اولین بار نام احتمالا برای استفاده می شود، بر اساس آنچه شما در اینجا می خوانید؟ حتی اگر برخی از نحو است که هنوز هم جدید است. دلار الگو نشانه چیست؟ متاسف؟ مخاطبان: header و footer. دیوید مالان: header و footer. بنابراین ظاهرا، من تصمیم گرفتم که اگر تنها چیزی که در حال تغییر همان چیزی است که من می خواهم الگو به print-- و توسط الگو منظور من این است طرح برای کدی که من به خروجی می خواهید، اما من می خواهم به برق وصل در برخی از values-- پس اگر آن را تنها سرآیند و یا بالا و پایین صفحه، چرا من پارامترها که علامت دلار و استدلال پاسخ الگو؟ و سپس این نحو بد بو من اجازه می دهد تا برای ایجاد یک مسیر در یک متغیر در اینجا. بنابراین مسیر علامت دلار متغیر است. چه می کند این نحو کار، اگر شما آشنا هستید؟ آره؟ مخاطبان: [نامفهوم] دیوید مالان: دقیقا. اگر الگو است، نقل قول را تمام کردن، هدر، و یا اگر الگو است، نقل قول را تمام کردن، بالا و پایین صفحه، که خط وجود دارد که من مشخص کردم، خط هشت، است که به سادگی گرفتن که نام، مانند هدر، و اتصال آن را با نقطه PHP. بنابراین ما این اپراتور ندارد در C. این عملگر نقطه است یک چیز شگفت انگیز در PHP-- اگر شما با جاوا اسکریپت یا جاوا آشنا، شما می توانید به علاوه استفاده از ثبت نام را به انجام الحاق در C، آن را به یک درد در neck-- است و من خیلی متاسفم، در P-مجموعه شش، شما در حال رفتن به مجبور به انجام this-- آن درد در گردن است برای الحاق رشته ها. واسه چی؟ خب، چرا که اگر شما رو یک رشته است که این طولانی، و یکی دیگر از رشته که این طولانی، شما نمی توانید فقط آنها را با هم وصل کنید. چه چیزی شما را به جای باید انجام دهید در C؟ آره؟ مخاطبان: [نامفهوم] دیوید مالان: شما باید به malloc حافظه، و یا استفاده از یک آرایه در پشته. و شما در واقع به که آرایه به اندازه کافی بزرگ به تناسب این به علاوه این، به علاوه بک اسلش صفر. سپس آنها را با هم الحاق با استفاده از هم بزنید گربه و یا دستی با یک حلقه for، یا هر تعداد از تکنیک های. و ما به شما یک زن و شوهر در نشان دادن P مجموعه شش. این درد در گردن است. و این واقعا چه من این در مقابل this-- مانند C در مقابل PHP. شما فقط خیلی بیشتر قابلیت به صورت رایگان، به طوری که شما می توانید تمرکز، در حالت ایده آل، در سرگرم کننده بخشی از کدنویسی، پروژه شما می خواهید را حل کند، به جای فروع سطح پایین است. بنابراین این فقط فایل header.php یا تولید footer.php را که بر اساس آن یکی از من تماس بگیرید. و در واقع، اگر من به فایل index.php، متوجه همه که به جای changed-- تماس رندر هدر و یا ارائه بالا و پایین صفحه، من خواستار ارائه، به دنبال نام قالب که من می خواهم را انجام دهد. و شما این را ببینید، بیش از حد، در مشکل مجموعه هفت، به موجب آن ما به شما اجازه استفاده از همان تابع را خوشه و مجموعه ای از صفحات وب مختلف. بنابراین به جای بیش از حد ساکن خیلی بیشتر در آن details-- که شما دوباره در دید مجموعه ای مشکل seven-- اجازه دهید نگاه در حال حاضر آغاز یک راه حل به یک مشکل جالب تر است. تا کنون، هیچ چیز ما را انجام داده است را نجات داد. در واقع، تنها زمانی که ما تا به حال را نجات داد چیزی است که ما در این کلاس انجام داده ام است که ما تا به حال یک نسخه ی نمایشی بسیار ساده مدتی تماس، به موجب آن ما فایل IO در C استفاده می شود، و من فکر می کنم من به نام من تایپ، و نام هانا، و نام ماریا، و یا شاید نام اندی، و پس ما یک file-- CSV ذخیره کاما از هم جدا ارزش فایل. و ما استفاده fopen-- من فکر می کنم ما استفاده می شود به عنوان fprintf به یاد می آورم، و ما یک فایل ذخیره شده است. در حال حاضر، که ساده ترین است شکل یک پایگاه داده است. اگر شما می خواهید را به یک وب سایت برای برنامه جدید الورود انجمن ریاضی، به موجب آن دانشجویان سال اول می توانید برای یک ورزش ایده آل ثبت نام، شما می خواهید به انجام کاری با آن داده است. هفته گذشته، ما هیچ چیز با data-- ما فقط گفت، از ثبت نام، نه واقعا. یا شاید من ایمیل فرستاده ناظر، و آن بود. اما آن را اگر من می تواند خوب را که متولی یک فایل CSV، مانند یک فایل اکسل. یا بهتر است، آن را خوب می شود اگر من می توانم قرار داده و نام آن کاربران و خوابگاه نام و همه از آن به یک پایگاه داده که فقط زندگی می کند برای همیشه، تا زمانی که من را انتخاب کنید به حذف داده ها. یک پایگاه داده که اجازه می دهد تا من به پرس و جو اطلاعات و در واقع، این چیزی است که یک پایگاه داده است. ما امروز معرفی و هفته آینده، بیش از حد، فن آوری به نام پرس و جو ساخت یافته SQL-- زبان، که زبان دیگری است. این در اصل یک برنامه نویسی زبان، اما برای پایگاه داده. و یک پایگاه داده در حال حاضر، فقط از فکر می کنم به عنوان یک نسخه فوق العاده فانتزی از مایکروسافت اکسل، و یا گوگل صفحات گسترده، و یا شماره اپل. به طور کلی یک برنامه که اجازه می دهد شما برای ذخیره یک دسته کامل از داده در سطر و ستون، کاملا مانند شما ممکن است در اکسل. اما چه خوب، به خصوص اگر ما فوق العاده با اکسل آشنا نیست، چه SQL اجازه می دهد تا شما را به انجام پرس و جو این است اطلاعات با نوشتن خط کد که در آن شما می توانید، حتی اگر خود را پایگاه داده یک میلیون ردیف در آن، شما می توانید پیدا کردن چیزهایی فوق العاده سریع. در واقع، اکسل است که به ویژه بد در مجموعه داده های بزرگ. و در واقع، تا چند سال پیش، معلوم شد اکسل تنها اجازه می دهد به شما برای ذخیره تا 65،535 ردیف data-- که برای تلفن های موبایل مانند بسیاری است، اما در زمان من یک دانشجوی تحصیلات تکمیلی بود، و به یاد دارم قطع بیش از به این دلیل من بود تولید فایل های CSV برای تحقیق و من می خواستم به آنها به سرعت تجزیه و تحلیل تنها با باز کردن در اکسل. البته، کامپیوتر من فقط سقوط کرد، چون من بیش از 65،000 ردیف بود. اما در جایی که 65535 از کجا آمد؟ چه مایکروسافت انجام شده بود، احتمالا؟ اگر شما خوب با قدرت خود را از دو هستید؟ بله، آنها شد 16 بیتی با استفاده از ارزش به نمایندگی از تعداد ردیف. و دو تا 16 است 65،536-- منفی یک، چرا که اگر شما شاخص صفر بدان معنی است که بود بیشترین تعداد ردیف من می تواند داشته باشد. و آن را فقط یک تصمیم طراحی بود. با صرفه جویی در 16 بیت، آنها به من محدود به 16،000 ردیف، به جای 4 میلیارد دلار، که من می توانستم ایده آل بود. اما در حال حاضر، ما در حال رفتن به معرفی این بیشتر در زمینه وب است. و چه خوب در مورد SQL است که حتی هر چند آن را بسیار قدرتمند و زیبا پیچیده، آن را واقعا جوش به چهار عملیات های کلیدی، چهار کلید توابع، اگر شما will-- را انتخاب کنید، برای بازیابی داده، جستجو برای داده ها؛ حذف و یا حذف داده ها؛ قرار دادن برای اضافه کردن سطر به پایگاه داده باشد. و به روز رسانی. بنابراین اگر شما همیشه استفاده می شود گوگل صفحات گسترده، شماره اپل، مایکروسافت اکسل، شما را اعدام کرده اند، به احتمال زیاد، تمام این عملیات به عنوان یک انسان توسط فقط با استفاده از صفحه کلید و mouse-- خود را قرار دادن داده ها، با استفاده از چشم خود را برای انتخاب و یا جستجو برای داده ها، و یا داده های به روز رسانی و یا حذف داده. پس چه معنی است؟ خب، از پیش نصب شده در CS50 IDE برنامه ای به نام MySQL است. این یک رایگان، منبع باز پایگاه داده که فوق العاده محبوب است. فیس بوک، به عنوان مثال، آن را با استفاده از این روز، در میان ابزار های دیگر که آنها استفاده کنید. و بسیاری از وب سایت بسیار محبوب استفاده آن را در بخش های بزرگ به دلیل آن را سریع، و چون آن رایگان است. هر چند قطعا جایگزین وجود داشته باشد. و برخی از شما ممکن است با اب شلپ شلپ کردن جایگزین برای پروژه نهایی. این یک تصویر است، در عین حال، از یک ابزار مبتنی بر وب به نام از phpMyAdmin. این یک تصادف است که این ابزار مبتنی بر وب است نوشته شده در یک زبان، PHP، اما آنچه در آن را به معنای انجام به ما را مبتنی بر وب رابط به یک پایگاه داده. از آنجا که خروجی زیر به طور معمول است چیزی، به لحاظ تاریخی شما، با تنها تعامل با خط فرمان. و این امر می تواند فوق العاده آزار دهنده و محرمانه به به تایپ دستورات متنی را انتخاب کنید داده ها، وارد کردن داده، و حذف داده. بنابراین برخی از مردم در اینترنت نوشت یک برنامه مبتنی بر وب که فقط اجازه دهید ما مدیریت داده ها در پایگاه داده ما. آن را مانند دوبار کلیک بر روی اکسل، و در حال اجرا یک نسخه مبتنی بر وب آن. و آنچه را که شما قصد استفاده از این برای در نهایت هفته آینده، نه در-P مجموعه شش، اما برای ساختن چیزی نام CS50 مالی، که در حال رفتن به یک پایگاه داده از کاربران با نام کاربری و کلمه عبور، مقدار دلار که آنها در حساب های بانکی خود را دارند. آن را به چیزی است که شما برای ذخیره نمادها و مقادیر از سهام که کاربران با استفاده از مجازی خریداری کرده اند دلار که شما به آنها بدهد. و آن را به کاربران اجازه می دهد برای سایت شما ثبت نام، به طوری که حتی دوستان خود را می توانید به وب سایت خود تنظیم و در واقع ثبت نام، ورود به سیستم، و در سراسر بازی و سعی کنید برای پیدا کردن خطا در کد خود را، و سعی کنید به پیدا کردن باگ در وب سایت شما. و آنها به سادگی خواهید با ثبت نام اضافه کردن خود، به طور موثر، از طریق کد شما را به پایگاه داده خود را ارسال. به عنوان مثال، این یک تصویر سریع است از آنچه که یک پایگاه داده ممکن است مانند نگاه. این بود از یکی از solutions-- سال گذشته این مانند یک مینی اکسل فایل، ذخیره شده در بانک اطلاعاتی ما، ذخیره شده در این نرم افزار به نام داده. در سمت چپ، من ظاهرا با توجه به هر کاربر یک شماره منحصر به فرد. در ستون دوم، من به شما داده ام همه یک کاربر name-- خود من در میان آنها. و در سمت راست، من آنها را یک رشته هش داده ام. در حال حاضر این است که در واقع یک رمز عبور، اما آن را یک رمز عبور متن است. این رمز عبور رمزگذاری شده است، اگر شما خواهد شد، یا کلمه عبور هش. که ما به قبل از اینکه طولانی است. اما اگر شما تا کنون خوانده مقاله در مورد چگونگی رمز عبور خود را در برخی از بانک و یا برخی از وب سایت ممکن است به خطر افتاده است، به طور کلی می توانید یکی از دو چیز باشد. بنابراین این فقط گزیده ای از شش کاربران است. از همه شما هم اکنون می توانید شکل از طریق هک کردن یا ترک خوردگی چه کلمه عبور ما شش نفر هستند. اما اگر شما همیشه ام هشدار و یا یک عذرخواهی از یک شرکت و یا وب سایت گفت، با عرض پوزش، یک هکر شکست را به بانک اطلاعاتی ما، شما احتمالا باید خود را تغییر دهید رمز عبور، آنچه که ممکن است در آن چیست؟ خب، یک، می تواند به معنای شرکت شده است moronic تر، شده است و رمز عبور خود را ذخیره سازی در یک ستون شبیه به این، تکه تکه کردن. که به معنی دشمن، که به سرقت برده پایگاه داده، به معنای واقعی کلمه می داند خود را نام کاربری و رمز. که بدترین سناریوی ممکن است. و به عنوان شما را در P-مجموعه را ببینید هفت، بنابراین آسان برای جلوگیری از. مطلقا هیچ بهانه ای برای آن وجود دارد فرم حماقت در اینترنت امروز است. Two-- و ما برخی از مقالات را پیدا به شهادت این واقعیت است که این هنوز هم اتفاق می افتد، nonetheless-- دو، شاید دشمن این نسخه از پایگاه داده به سرقت برده. که است که هنوز هم نوع بد، چون در حال حاضر آنها می دانند که من شش مشتریان، من می دانم نام کاربر از آن شش مشتریان، و من می دانم که رمزگذاری شده نسخه، و یا نسخه های هش، از کلمات عبور آن شش مشتریان. اما هر یک از شما که ممکن انجام داده اند [؟ هکر 2؟] که در آن شما ترک خورده کلمه عبور، یا در زمان یک در این نسخه از مشکل نگاه مجموعه ای، به همین دلیل آن است که هنوز کمی نگران کننده اگر دشمن می داند هش خود را کلمه عبور؟ رسید زیرا آنها می توانند ورود به تمام فرهنگ لغت به تابع هش. و اگر رمز عبور خود را یک فرهنگ لغت است واژه، [؟ آنها فقط می توانید match--؟] دیوید مالان: دقیقا، دشمن فقط می توانید نوشتن کد، مانند برخی از شما برای انجام [؟ هکر؟] 2، به موجب آن شما تکرار بیش از تمام کلمات در فرهنگ لغت، و یا تمام ترکیبات ممکن است از یک از طریق Z و از طریق یکی از nine-- که برای تلفن های موبایل مانند بسیاری، و آن است. اما برای یک کامپیوتر، آن را رفو سریع می باشد. و در واقع، که بود نقطه [؟ هکر 2،؟] بود به چیزهای که به معنای واقعی کلمه به نظر می رسد مثل این، مهندسی معکوس و آنچه در آن واقع بود. بنابراین ما در چگونه ما می توانیم ذخیره این موثر تر است. معلوم است، خوشبختانه در خروجی، وجود دارد در حال رفتن به انواع داده. و یکی از بخش های سرگرم کننده در مورد طراحی پایگاه داده، به صداقت، است که در واقع برای خودتان تصمیم گیری چگونه باید به شما نشان داده؟ باید به شما نشان دهنده یک عدد گوشی به عنوان یک int، مانند یک عدد بزرگ، و یا یک مدت؟ و یا اینکه شما واقع آن را انجام به عنوان یک دنباله ای از کاراکتر؟ و می تواند بسیار وجود دارد اثرات غیر بدیهی از این. در واقع، یکی از اولین، داستان سرگرم کننده وابسته است که مارک زاکربرگ در حال ساخت فیس بوک، که در اصل در نوشته شده بود، و هنوز هم تا حد زیادی در PHP نوشته شده است. و یکی از بزرگترین چالش های آنها در اوایل بود پوسته پوسته شدن مواجه شده است. هنگامی که آنها نگه داشته اضافه کردن مدرسه پس از مدرسه بعد از مدرسه، به دانش من، یکی از راه حل اصلی بود اساسا به کپی و چسباندن بعضی از پایگاه داده و برخی از کد، به طوری که هاروارد بود در حال اجرا بر روی سرور خود را دارد، و MIT در حال اجرا بر روی سرور خود آن بود. و این بود که چرا، برای برخی از از شما که ممکن یاد می آورند، شما می توانید دوستان ندارد در شبکه های دیگر. احتمالا شما دوستان در ندارد MIT و یا دانشگاه هاروارد و یا تا 10 سال پیش، اما شما می توانید شبکه های پوشش دهد برای تا حدی به این دلیل. و یکی از بزرگترین چالش برای علامت و برای شرکت هایی مانند فیس بوک است که در واقع دست زدن به صدها و هزاران و میلیون ها از درخواست در هر ثانیه. تا چیزهایی که ما شروع صحبت کردن در مورد این هفته واقعا برای رفتن به وابسته به نوشتن نرم افزار خوب و محبوب ابزار موفق است که می توانید تعداد زیادی از کاربران را اداره کند. بنابراین ما در مورد چیزهایی صحبت مانند نمایه سازی و جستجو، اما از آن است که برای امروز. ما شما را برای روز چهارشنبه را ببینید. [MUSIC - "ساینفیلد" تم] دیوید مالان: شما می توانید به آن، و کم کردن از آن است. و شما لازم نیست که به چوب با برخی از مقدار از پیش تعیین شده از حافظه است. خوب، چه که رفتن به آن می شود؟ SPEAKER 1: خب، چه خبر است؟ SPEAKER 2: به چه معنی است؟ او را به یک سخنرانی. دیوید مالان: و ما می توانیم با استفاده از تابع به نام از malloc به حافظه SPEAKER 1: چرا اسلحه خود را در حال حرکت؟ SPEAKER 2: خوب that's-- شما می دانید، این طبیعی است. این درست مثل او تنها سوسیس بزرگ حلق آویز وجود دارد. SPEAKER 1: این طبیعی است؟ SPEAKER 2: آره، من فکر می کنم ما فقط او فرض به طور تصادفی جایگزین دئودورانت خود را با superglue.