>> [MUSIC PLAYING]
>> DAVID J. MALAN: Bütün sağ.
Bu CS50 edir.
Bu həftə səkkiz başlanğıc.
Və biz off tərk geri bilər Son dəfə yeni bir dil axtarır
cəmi.
Əslində, bir ki, kifayət qədər var yüngül və hətta deyil
bir proqramlaşdırma dili.
Bu, bizim imkan verir ki, bir biçimlendirme dili var həqiqətən strukturu və web pages.
Və başqa bir şey Hələ ilə birlikdə
və ya tezliklə olacaq, əgər Əgər siz artıq yoxdur.
Biz kaskad istifadə etmək olacaq Style Sheets, və ya CSS olan
dil bir növü xassələri və dəyərləri ilə
ki, bizə imkan olacaq şeyi rəngini istəyirəm
və mövqeyini dəyişdirmək və tweaks bu cür.
Amma bu gün və irəli, biz başlamaq daha güclü Dil diqqət,
PHP kimi faktiki proqramlaşdırma dilləri.
>> Belə ki, PHP bir müddət ətrafında olmuşdur.
Və siz onu görəcəksiniz kimi əsasən nəzərdə tutulmuşdur
erkən faktiki üçün web inkişaf istifadə
və həqiqətən web pages yaratmaq.
Belə ki, nə cür xüsusiyyətləri bir dil yoxdur
web etmək üçün lazımdır dinamik ilə pages?
>> Başqa sözlə, siz yaratmaq istəyirsinizsə Facebook kimi content dynamically--
Daim dəyişir newsfeed, və ya zaman açılır ki, ani mesajlar
Bu nə kimi time-- üçün funksionallığı əsas parça
Bir proqramlaşdırma dilində lazımdır ki, dinamik bildirin
ekran yeni məlumat çap?
>> TƏLƏBƏ: Kod.
DAVID J. MALAN: Kodu.
OK.
Biz almaq lazımdır.
Bir az daha dəqiq.
Mən demək, biz nə edə bilər səmimi C, bu.
Bu boyun bir ağrı ola bilər.
Bu öhdəlik ancaq var?
>> TƏLƏBƏ: Bəli.
Dəyişənlər, bəlkə?
DAVID J. MALAN: Dəyişənlər.
Əmin OK.
Dəyişənlər əlbəttə bizə kömək edə bilər.
Və hətta bir şey sadə.
Biz çox ilk onu istifadə ilk gün proqramı
Biz, həqiqətən, "salam dünya". dedi
>> TƏLƏBƏ: Print.
>> DAVID J. MALAN: Print, sağ?
Də çap, və ya printf C. Belə ki, bütün bu dəfə dünya,
Biz etdik bizim kənarlaşdırılması language-- C,
particular-- və hətta Ki, məsələ üçün danışıq
Mətn strings yarada.
>> Biz keçən həftə gördüm, həmçinin HTML əgər, ki, mətn strings yalnız bir dəstə
açıq Mötərizədə və qapalı ilə olsa Mötərizədə və şer bir növ
və bunun arxasında səbəbi, belə ki, biz, həqiqətən, ola bilər
ya web pages yaradan başlamaq əl gedit onları yazaraq
və ya Microsoft Word, ki matter-- biz yalnız bir mətn redaktoru lazımdır.
>> Yoxsa biz, kodu yazmaq bilər Sizin təklif
əvvəllər, bizə bildirin dinamik HTML yaratmaq,
və biz olacaq nə PHP ilə bunu başlamaq üçün
və nəticədə hətta ilə JavaScript adlı dil,
başqa yaratmaq üçün bir dil istifadə edir.
Və həqiqətən, bu nə Facebook və bir çox digər saytlar
həqiqətən dinamik etmək Sizə yeni məlumat göstərilir.
>> Belə ki, Hələ a ilə başlasın sirli axtarır line, lakin bir
həqiqətən olduqca güclü.
Bu günə qədər biz C istifadə etdik, bir tərtib dilidir.
Və yalnız bir sürətli recap-- tərtib dil nə xarakterik var?
Siz açıq-aydın tərtib etmək lazımdır Bu, lakin nə deməkdir?
Bəli?
>> TƏLƏBƏ: Bu olmalıdır maşın kodu daxil yığılmış.
>> DAVID J. MALAN: OK.
Bu yığılmış olmalıdır maşın kodu daxil.
Belə ki, mənbə kodu almaq ingilis-kimi sort edir.
Siz çevirmək bir şey aşağı səviyyədə,
son nəticədə adlanır object 0 və 1-in kod.
Və bu 0 və 1-in ki, bir CPU, Intel tərəfindən bu kimi,
həqiqətən başa düşürük.
>> İndi, PHP və Python və Ruby və JavaScript və digər dəstələri
languages ​​tərtib deyil languages ​​lakin Dil şərh,
deməkdir yalnız sonra onlara yazın və Siz 0 və 1-in onları çevirmək deyil.
Siz əvəzinə yalnız sonra təmin Başqasının proqramı giriş,
tərcüməçi çağırıb.
Və adamın proqram nəzərdə tutulmuşdur
anlamaq üçün nə hər və Python və ya PHP hər simvolu
Ruby və ya hər hansı bir sayı və ya digər dillər deməkdir.
>> Və belə ki, biz lazım olan bütün edir bu kimi bir şey.
Belə ki, əslində, mən gedirəm cihaz üzərində getmək
burada yalnız hər hansı bir köhnə pəncərə və biz istəyirik
irəli və açıq getmək gedir adlı bir fayl, salam demək.
İndi əvvəl, mən xilas ola bilər hətta bir fayl uzantısı ilə bu,
lakin mən gedirəm bir şey burada daha asan.
Mən irəli getmək və başlamaq üçün gedirəm Bu sirli sintaksis ilə bu fayl.
Belə ki, "istifadəçi bin, ENV, ətraf mühit üçün, php. "
>> Bu ki, kod sadəcə bir xətt mənim əməliyyat sistemi demək olacaq,
yerli tapmaq getmək ki, nə mühit,
PHP interpreter-- That yerdə və irəli getmək və tərcüməçi istifadə
aşağıdakı kodu şərh.
İndi bu cür deyil PHP bir çirkin xüsusiyyət.
Amma bu dil hər hansı zaman, PHP kodu yazmaq
Bu çirkin biri lazımdır Başladığını bölünməsi PHP tags
Sizin kod <? php.
>> Amma burada aşağıda, mən indi bir şey edə bilərsiniz olduqca sadə, kimi printf salam vergül
Dünya backslash n yaxın quote, yaxın parantez.
Və sonra yalnız yaxşı tədbir, mən gedirəm
irəli və yaxın getmək burada mənim php tag
belə ki, hər şey görünür gözəl yaraşıqlı çap.
>> Və tezliklə mən Save basın kimi gedit kifayət qədər ağıllı deyil
çox ilk xətti baxmaq və oh, siz PHP kodu yazılı etdiyiniz, həyata.
Mənə sintaksis vurgulayın edək rəngləri ilə
ki, burada dayanır bir az daha çox.
Amma indi getmək üçün gedirəm Mənim terminal pəncərə aşağı.
Mən zoom olacaq.
>> Bu proqram "salam" adlanırdı mən salam dot çizgi gedirəm
lakin icazə təkzib edib.
Və bash.
Biz, həqiqətən, ki, eşitdim şey bir neçə həftə əvvəl
Shellshock kontekstində, bu hataları biridir.
>> Amma icazə biz gördük inkar əvvəl, bəlkə fərqli kontekstində.
Hər kəs necə xatırlayıram yoxdur Əgər bir şey düzeltmek bilər
icazə oxşar rədd harada?
Komanda ən azı, nə var?
>> TƏLƏBƏ: chmod.
DAVID J. MALAN: Bəli, chmod, bir fayl rejimi dəyişdirmək üçün.
Və bütün daha çox istifadə almaq lazımdır bir sonrakı problem ilə bu gələn həftə
müəyyən.
Amma indi üçün, mən dəyişdirmək üçün gedirəm rejimi, oxunaqlı olmaq deyil
lakin hər kəs executeability vermək imtiyazlar imkanı
Bu fayl çalıştırmak üçün.
Və mən təyin gedirəm fayl ki, salam.
>> Mən indi dot çizgi deyilsə salam, sizə daxil əslində, bax, mənim proqram, dünya salam.
Və nə addım etdim aydın cəmi keçmək?
Tərtibi.
Mən yalnız sadəcə bu proqram qaçdı.
>> Və siz bunu edə bilərsiniz çıxır C. xatırladan sintaksis bir çox
, Bugünkü kodu gedək Mən mənim vhost kataloq istismara
Burada, real səbəbləri biz geri gəlmək lazımdır.
Mən getmək üçün gedirəm şərait 1 deyək.
>> Və ilk, burada görürsünüz və növbədə, şərh bir dəstə.
Amma bu əslində PHP yenidən yaradılması
bir proqram biz həftə etdi bir adlı şərait 1.c
burada məqsədi Bu proqram həyat
xahiş yəqin bir tam üçün istifadəçi
və sonra bəzi tüklü etmək bu vasitəsi təhlil
müsbət və ya əgər siz demək mənfi və ya sıfıra bərabər.
Mən yalnız bu yetişdirmək, çünki, bəlkə bir az ətraflı istisna olmaqla,
C. günə qədər fərqedilməz var
>> Bir xarakterik nədir burada bəlkə həyata Jumps
bir az fərqli kimi at?
Bəlkə iki şeyi.
Bəli?
>> TƏLƏBƏ: Dollar işarəsi n?
>> DAVID J. MALAN: Bəli.
Belə ki, dollar işarəsi n edir.
Və dollar əlamətləri kimi Biz gedirik, görəcəksiniz
başından fix olacaq PHP hər hansı bir dəyişən.
Bu həm yaxşı həm də bad-- yaxşı bu cür aydın nə var ki
Bu ki, pis bir dəyişən, başqa bir şey yazın.
Və digər bir var şey biz olduqca
ən azı bu yazım ilə görülür. Bəli?
>> TƏLƏBƏ: readline.
>> DAVID J. MALAN: readline.
Readline biz, özlüyündə, görmədim Bir şey var baxmayaraq C,
oxşar, biz GetString istifadə etdik, lakin və bu onun həmkarı edir.
Mən bu getmək əgər Belə ki, olmaq olur olan kataloq,
Mən vhost bir az izah edəcəyik kimi kataloq və mənim mənbə A directory,
və mən irəli getmək və dot çizgi yoxdur şəraitdə whoops-- dot çizgi
şərait 1, siz yenə görəcəksiniz Eyni issue-- icazə təkzib edib.
>> Mənə zoom imkan və bir plus chmod şərait, dot çizgi şərtlərlə x.
50, tam edin istərdim.
Və biz bu oynaya bilər oyun uzun bütün gün.
Bu dəqiq davranmaq olacaq Bu həftə bir etdi.
>> Başqa, OK, belə ki, bütün müxtəlif deyil deyil sintaksis yalnız kiçik bit,
lakin üst, mən yenə bu xətt idi
Mənə bir şey yaratmaq üçün icazə ki, , salam adlı C proqramı kimi görünür
adlı şərait 1.
Amma bu deyil 0 və olanları Mən birbaşa icra edirəm.
Əvəzinə çalışan oldu Onun adı tərcüməçi
dil eyni olur.
Bu proqram mənim kodu PHP adlanır və line aşağıda bir daxil qəbul olunur.
>> Biz başqa kifayət qədər sadə edə bilərsiniz bir şey xatırladan nümunə
biz həftə əvvəl idi.
Yenə də, bu bir növ deyil kodu ixtiyari yığın
ki, yəqin yoxdur Siz nə çalıştırdığınızda?
Bu ehtimalla, çap olacaq?
>> Belə ki, ilkin line 16, bu x yəqin ki, indi 2 deməyəcək.
% D printf üçün $ i kimi eyni.
Belə ki, o cubing edir, dot, dot, line 17, nöqtə.
Və sonra 18 görünür xətti bir funksiyası Cubed zəng etmək üçün.
Və Cubed müəyyən olunur?
>> Bəli, bu, line 25 kimi görünür belə ki, bütün fərqli deyil.
Mən yuxarıda bəzi şərhlər var Bu, lakin çox hissəsi üçün,
Bu kifayət qədər sadə hesabat və ya dönüşüm
PHP versiyası C proqram.
Amma indi bir neçə var bəlkə sıçramaq lazımdır ki, fərqlər.
Nə siz necə müxtəlif C bu proqram yazmaq bilər?
>> TƏLƏBƏ: [işitilemez].
>> DAVID J. MALAN: var heç bir prototip up top.
Belə ki, php və səmimi bir müasir dillərdə çox
çox asan və daha faydalıdır C siz ki derleyiciler çox
burada funksiyası bilər, Siz burada bir funksiyası bilər
və tərcüməçi gedir oxu lütf etmək
bütün fayl qərar əvvəl bəzi funksiyası mövcud deyil.
Sonra belə gözəl inkişaflar il.
Lakin bir şey var başqa müxtəlif və ya burada yoxdur.
Bəli?
>> TƏLƏBƏ: [işitilemez].
DAVID J. MALAN: Biz yoxdur , dəyişənlərin növləri elan
belə ki, biz uzun əvvəl görürsünüz PHP müxtəlif növləri var,
ancaq onları müəyyən etmək lazım deyil, olan da yaxşı və pis də deyil.
Və başqa bir şey itkin var.
>> TƏLƏBƏ: heç bir kitabxana var.
>> DAVID J. MALAN: heç bir kitabxana var.
OK, belə ki, gözəl.
Biz qutusu həyata daha çox almaq.
Yəni əslində bir çox daha çox var Mən fikir çox şeyi fərqli idi.
Necə geri yol haqqında?
Nə olub?
Bu bir daha demək?
>> TƏLƏBƏ: Pointer.
>> DAVID J. MALAN: No göstəricilər.
OK, ən azı bu nümunə, no.
Ki, ədalətli deyil.
Belə ki, göstəricilər var həqiqətən ümumiyyətlə PHP.
Deyilən bir şey istinadlar var, lakin biz orada çox vaxt sərf edəcək.
Və başqa nə?
>> TƏLƏBƏ: Main.
DAVID J. MALAN: Main.
Belə ki, bu Biggie idi Mən düşünürdüm.
Heç bir əsas giriş nöqtəsi var görürsünüz.
Siz sadəcə kodu yazmağa başlayın.
Və bu əslində üstünlüklü olacaq
biz zaman keçid bir anda həqiqətən istifadə
bu eyni dil web-based proqramlaşdırma olan biz
yalnız bir giriş nöqtəsi istəmirəm.
Biz bir dəstə etmək istəyirəm bilər URL'leri, müxtəlif faylları bir dəstə
bütün istifadəçi girişi alaraq və çıxış istehsal.
>> Amma burada çox disheartening edir Məsələn mən, son dəfə söz ki,
yəni bu qovluq burada hatası.
Olan, bu fayl Speller Belə ki, biz var çox çox vaxt sərf edəcək
mahiyyətcə porting-- P-O-R-T. Bu zaman, demək verilən yalnız söz var
bir dil çevirmək əl adətən başqa.
>> Bu PC hesabat deyil PSET 5 Speller versiyası.
Mən mahiyyətcə çevirmək çalışdı yaxından mən kimi xətti ilə line.
Belə ki, şey bu cür kimi, əgər, bu, həqiqətən bir nöqtədə dəyər
yan up həm onları çəkərək yan və eyni nə görən
və müxtəlif var.
Lakin onlar olduqca darn oxşar istəyirik.
Yadınızdadırsa nə Speller hətta kimi baxdı
etmədi baxmayaraq Bu fayl dəyişdirmək lazımdır,
bu olduqca oxşar struktur yalnız bir neçə
burada və orada dəyişikliklər.
>> Belə ki, bu, olduqca ki, demək yalnız speller çevirmək üçün sadə
C PHP.
Lakin lüğət var daha çekici bir şey.
Mənə irəli getmək və yaratmaq imkan öz dictionary.php fayl.
Ki, belə az fərqli biz c əvəzinə Php zəng edəcəyik.
Bu bir PHP fayl, çünki mən qədər var annoyingly-- do--
ilə fayl başlamaq üçün kimi bir php tag.
Və mən irəli getmək üçün gedirəm və bir neçə funksiyaları müəyyən.
Olan çek adlı funksiyası, əvvəl kimi bir söz etmək niyyətindədir.
Amma bu arqument nin dollar gedir
biz, yenə PHP istifadə etdiyiniz çünki olun.
Başqa funksiyası dictionary.c yük idi
və, lüğət adına aldı mən getmək üçün hazır funksiyası almaq lazımdır.
>> Dictionary.c başqa bir nə idi?
Size da, gözəl olanları biri idi azı ətrafında bir dəyişən saxlanılır əgər.
belə ölçüsü yalnız bir dəyişən qayıtmaq üçün var.
Və sonra boşaltmaq var idi.
>> Belə ki, bu dörd var idi problem funksiyaları 5 müəyyən
Siz həyata keçirilməsi üçün lazım Bəzi data strukturu və ya strukturları.
Mən vəd ki, PHP, biz elan edə bilər
bir hash table, məsələn, daha asan bütün.
Əslində, mən bir hash masa istəyirsinizsə, Mən yalnız bu kimi getmək üçün gedirəm
və mənim hash masa var.
Və qeyd, disheartening var Biz keçən dəfə off tərk.
Mən istəyirdim Əgər siz, nə bilirik ölçüsü üçün dəyişən, yaxşı,
bu bir bütün deyil C müxtəlif,
lakin mən irəli getmək və bunu gedirəm.
Və heç bir veri növü bildiriş.
Mən sonra geri getmək lazımdır və həqiqətən, burada bəzi şərhlər əlavə edin.
Amma yük haqqında nə?
>> Əgər dollar işarəsi lüğət mənim fayl adı
və mən, həqiqətən yüklemek üçün istəyirəm İndi bu masa sözlər,
Mən, həqiqətən, nə edə bilər kifayət qədər sadə bir şey.
One-- və bu minorly edir annoying-- PHP,
daxili daxil var bir funksiyası əgər
bəzi qlobal daxil olmaq istəyirsinizsə kənarda müəyyən edir ki, dəyişən.
>> Amma xüsusilə deyil indi maraqlı.
Hansı daha maraqlıdır bu hər üçün Mən keçən dəfə də demişdim ki, tikintisi.
Və PHP bir funksiyası var çıxır ki, kimin məqsədi həyat adlı fayl
bir fayl açmaq və oxumaq üçün bir sıra onun xətləri bütün
və geri onları əl.
>> Hansı Mən lüğət edə bilərsiniz demək deyil indi səmərəli I fayl zəng zaman ki,
Bu məni geri əl gedir fayl sözləri bir sıra.
Bu, bütün yaxşı deyil.
Bu hələ bir xətt olacaq sözləri, bir şey xətti.
Amma Mən irəli getmək və təkrarlamaq olar Bu sözləri hər istifadə üzərində
sintaksis biz qısa sonuncu dəfə gördüm.
Və daha çox görəcəksiniz qarşıdakı pset.
>> Amma indi bir loop iterating var Lüğətə hər bir söz üzərində.
Və hər iteration haqqında, Mən xatırlayıram "sözü." cari söz zəng
Və bütün bu almaq olacaq lüğətdir bir söz qoymaq
söz tahmin olacaq "true".
Bu mənim insert funksiyası var.
Bu mənim yük funksiyası Mənim lüğət üçün.
İndi çünki fırıldaqçı bir az var, Siz həqiqətən var nə bilirik
sözləri sonunda backslash n nin Mən yəqin ki, qurtarmaq lazımdır ki,
PHP çünki lakin bir problem deyil bir funksiyası adlanır chop olan sözün
çox sonunda bir xarakter off eti.
Belə ki, orada heç bir problem.
Biz irəli və həqiqətən getdi etdik yalnız bu qısaldılmış.
İndi yəqin ki, track saxlamaq lazımdır ölçüsü, belə edək azı Hələ nə
ölçüsü ++.
Mən əvvəl bunu edə bilərsiniz.
Və sonra bu yəqin gedir əsl qayıtmaq ki, yalnız gözəl işləməlidir.
Done.
Pset 5.
>> [Gülüş]
>> DAVID J. MALAN: OK.
Biz yenə bunu olacaq də növbəti PSET ilə.
Belə ki, nə ölçüsü haqqında?
Bəli, bu bir ümid haqqında Siz sonuncu dəfə beklediğiniz kimi,
Mən nə var, baxmayaraq ki, Bu axmaq qlobal şey.
Bu yalnız bir artifact var Bu dil dizayn.
>> Amma çek bir az daha maraqlı edir.
Mən dolların qəbul əgər Belə ki, Mən ilk söz imzalamaq
daxil olmaq istəyirəm qlobal dəyişən masa.
İndi istəyirsinizsə bir söz var, əgər yoxlamaq,
Mən sadəcə bu doğru əgər demək olar aşağıdakı cədvəldə müəyyən edilir,
sonra irəli getmək və geri true; başqa, saxta qayıtmaq.
Done.
PSET 5 digər yarısı.
>> Bütün hüquqlar, belə ki, daha mən Bir neçə guşələrindən kəsici.
Ədalətlilik, mən yəqin ki, olmalıdır bir neçə saniyə sərf
Bu həyata haqqında.
Mən yəqin ki, bütün istehza deyil saat qədər PSET qoymaq.
Belə ki, strtolower bir funksiyası var.
Something oxşar ekzistensialist C, ən azı simvol,
lakin PHP-nin bütün simli versiyası var.
>> Ki, hər şey məcbur olacaq , siz bəzi kiçik
nə canonicalize işlər ola bilər Siz lüğət qoyaraq edilmişdir.
İndi siz də, C bunu edə bilərsiniz.
Bu PHP ilə heç bir əlaqəsi yoxdur.
>> Amma heç bir zaman var bir Boolean vəziyyəti,
line bir şey kimi Yalnız orada 10,
qiymətləndirmək üçün gedən və ya yalan, və əgər başqa aydın
doğru və ya yalan qaytarılması, mən bilər sadəcə həqiqətən bu sexier etmək
və yalnız bu kimi bir şey.
Belə ki, mənim çek funksiyası var.
Sağ, əgər Boolean , bir doğru və ya yalan qaytarır
yalnız hemen geri bildirin.
>> Və bir neçə digər tweaks var Mən burada və orada edə bilər.
Load-- boşaltmaq, yolu ilə, ki, həyata.
Heç bir şey yoxdur etmək.
Yaddaş bütün çünki PHP və bir çox digər dillərdə
həqiqətən, sizin üçün idarə olunur.
C isə, belə Siz əzabla öyrəndim,
bir şey malloc ya calloc və ya realloc, siz özünüzü azad etmək lazımdır.
Siz fopen şey, siz fclose var, resursları nəticədə azad edilir ki,
və Valgrind kimi tools deyil qeyd və şikayət yoxdur,
onlara çalıştırmak üçün yaxşı bir şey deyil.
>> Amma şübhəsiz ki, orada olmalıdır sağ, bəzi kapsayan ola bilərmi?
Əks halda, biz növ boşa həftə bütün dəstə.
Belə ki, səbəblərdən hər hansı bir sayı var niyə biz sort, bu trajectory almaq
lakin ticarət-off var.
Sağ, bu tematik olmuşdur.
>> Belə ki, nə ticarət-off güc burada C PHP, hərəkət?
Bütün günə qədər digər çox qazanmaq kimi hiss burada və ya orada çirkinlik bir az.
Bəli.
Nə olub?
>> TƏLƏBƏ: [işitilemez] yaddaş.
DAVID J. MALAN: Speed.
OK.
Bəli, mənim sürəti olduqca sürətli idi.
Right?
Lakin proqramın icrası sürəti?
OK, belə ki, ədalətli nöqtə var.
>> Əvvəlcədən, mən baş kimi Belə ki, həm də mənim cəhd həll cued, bir
Mən böyük board idi Bir cəhd-based həll idi
Mən burada bu kataloq ki, var.
Mən bir anda, Mən irəli getmək və bilərsiniz Kral James Müqəddəs bu run,
Enter'a.
Bu inşallah doğru sonunda həyata keçirilməsi,
cəmi mənə vaxt verir ki, 0.38 saniyə
bir qədər özbaşına nümunəsidir.
>> Mən indi bu getmək əgər ikinci terminal pəncərə
Mən ilk gedit açılmışdır burada, burada imkan Mənə, yenidən, bugünkü kod daxil
Bu kataloq edir burada və Mənə davam və speller run bildirin.
Belə ki, yalnız, aydın olmaq Bu PHP versiyası.
Mən burada bu üst göstərən alıram.
>> Mən tilde CS50 speller əgər Pset 5 mətnlər, King James daxil edin.
Bu yazı hələ də sürətli C Bu, ancaq ümumi vaxt
halbuki, bildiriş, 0.93, mənim C-based həyata 0,38 idi.
Belə ki, bir qeyri-mənasız fərq var.
>> Və bu yalnız bir fayl var.
Siz iki run əgər böyük board qarşı proqramları
və vəsaitlərin bütün dəstə var test, bu, şübhəsiz ki, qədər əlavə edəcək.
Və biz, daha data dəstləri olsa bu da bütün daha əlavə edəcək.
Belə ki, bəli, bəzi qiymət ödəyir sürət, həqiqətən belədir.
Nə?
Bəli?
>> TƏLƏBƏ: RAM istifadə məbləği.
>> DAVID J. MALAN: RAM istifadə məbləği.
Mən bir ikinci vermədi Bu PHP yazarkən düşündüm
kimi versiyası nə qədər Yaddaş Mən istifadə idi.
Mən tamamilə PHP ki təxirə salınması alıram özü və kim proqram yazdı.
Və, OK ola bilər Amma əgər həqiqətən, həqiqətən,
qədər performans sıxıcı qayğı mənim proqram həyata və ya mənim web həyata
və ya hər hansı vasitə həyata Mən bəlkə, tikinti alıram
PHP, həqiqətən, doğru dil deyil.
>> Və əslində, ki, nə Məsələn, bir çox web servers--
faktiki proqramları web content-- xidmət
PHP yazılı deyil və ya Python və ya Ruby.
Onlar kimi, yazılı İndi, pset 6 edəcəyik
sıxmaq bilər ki, C bu performans hər bit
və həqiqətən həyata nə üzərində gözəl taxıl nəzarət
Bu altında gedən başlıq və yalnız onu
bəzi ali verilən üçün səviyyəli data strukturu.
>> Hesab, bütün sonra, PHP kim həyata
bir hash ki anlayışı bu, həqiqətən daha Masa
düzgün assosiativ array adlı o və ya o nə cür hər hansı bir fikir var
giriş siz olacaq strukturu qoyulması?
Belə ki, açıq-aydın deyil, sağ?
Bu ümumi bir aracıdır ki, Toolbar
istəyən hər kəs təmin belə ki, şübhəsiz istifadə, və bu
nəticədə optimize bilməz dəqiq nə etmək istəyirəm nə üçün.
>> Belə ki, ticarət-offs-- inkişaf zaman bilər performance fərqlənə bilər, fərqlənir,
mürəkkəbliyi və ya yaddaş istifadə fərqlənə bilər.
Və belə ki, tapa bilərsiniz nə getdikcə var ki
fərqli olacaq ticarət üçün alətlər.
Və bir super əksəriyyəti əslində Bu sinif insanların son layihələr,
iman və ya, C niyyətində deyil deyil istifadə etmək hüququ dil olmaq.
>> Və takeaways əslində, bir nəticədə bu kimi hər hansı bir sinif üçün
haqqında düşünür almaq üçün, yaxşı, nə off çəkmək lazımdır
rəf zaman istədiyiniz bir problem həll etsin.
Və həqiqətən, bu körpünü keçmək lazımdır daha da çox dillərdə baxmaq kimi
hətta bu gün kənarda.
>> Belə ki, indi üçün keçid edək bəlkə bir daha tanış kontekstində
PHP kimi bir dil istifadə.
Bu istifadə üçün bir qədər ümumi var scripts yazılı command line,
kimi etdim, lakin bu daha çox ümumi çox.
Və istifadə üçün nəzərdə tutulmuşdur adətən son faylların forması
da .php-- lakin var bir prerequisite--
özləri web content yaratmaq.
>> Mənə irəli getmək və bir neçə açmaq nümunələri əvvəlcədən hazırlanmış.
Və bu həqiqətən sort doğru ilk şey ki, bir hekayələr
Mən heç bitirdikdən sonra özümü etdi CS50 və bəlkə, mən hesab edirəm ki,
CS51 il əvvəl mənim roommate və mən kömək edildi
birinci intramural run idman proqramı, zaman olan,
birinci müxtəlif üçün qeydiyyatdan etmişdir kağız parçası dolduraraq idman,
bu adlanır kimi, gəzinti Wigglesworth həyətində arasında,
və bəzi düşmə disiplini qapı açılır.
Və sonra o keçmək olardı Onlara və sonra həqiqətən əl bizə e-poçt
biz bəzi idman üçün qeydiyyatdan ki.
>> Belə aydın bir fürsət təkmilləşdirilməsi üçün.
Bu gün, yalnız müraciət edə bilər Google formaları, lakin geri gün,
biz, həqiqətən, bu baxan mýsýn olmaq idi hətta uzun ago-- çatmaq deyil
bir proqramlaşdırma üçün PHP deyil ki, dil.
Zamanda, bu idi Perl deyilən bir şey,
olan ildən moda həyata keçmişdir.
Amma fikir eyni.
>> Mən mahiyyətcə cəhd oturdu port PHP Perl versiyasını gedir,
lakin tam disclaimer vermədi hər hansı yalnız hələ estetik fikir.
Belə ki, burada bir web səhifə.
Bu fayl.
Mən zoom əgər, onun yəqin adlı froshim0.php
yalnız bizim ilk çünki Bu sıra nümunə.
Və görünür nə var ki, görürsünüz çox çirkin bir HTML forması,
lakin bir formasıdır maraqlı Bu imkan verir, çünki
Mənə browser istifadəçi girişi təmin etmək.
>> İndi son dəfə biz, bir forma idi kimə biz sorğu parametri təqdim etdi
bu adlanır kimi queue parametri?
Sağ, Google belə?
Biz tamamilə ideyası punted giriş ilə bir şey edir.
>> Ancaq bu gün biz çıxış istehsal başlamaq.
Və davranış görürəm gedirəm burada ilkin olduqca mənasız edir.
David, mən gender off yoxlamaq lazımdır burada, burada Matthews deyirlər.
Mən kapitan olmayacaq.
Mən Qeydiyyatdan basın gedirəm.
Və URL var fark qeydiyyatdan-0.php dəyişib,
və sonra burada bu çirkin mətn var.
Mən heç bir fikir verdi bu format.
>> Lakin maraqlıdır ki, üç deyil dəyərləri yəqin qəbul olunmuşdur.
Bu PHP-nin sort printf ekvivalent
biz, həqiqətən, deyirlər nə görürsünüz yalnız yazdıran bir bit
nə onu keçdi.
Belə ki, bu formada ki, , ən azı üç sahələri var idi
və mənə onları yazın gördüm.
Biri mənim adı, biri idi gender, bir yataqxana idi.
Və kapitanı hətta göndərilir almaq etməyib server Mən bunu yoxlamaq deyil, çünki.
>> Belə ki, bu yəqin demək, web şeyi təqdim zaman,
yalnız bəzən URL yoxdur change-- bəzən deyil.
Əslində, fayl adı dəyişdi, lakin URL sahibi nə
Google ilə son dəfə görmək idi ki.
Bəli?
>> TƏLƏBƏ: No sorğu string
>> DAVID J. MALAN: heç bir sorğu string var.
Heç bir sual işarəsi bir şey var.
Heç bir sual işarəsi q var Biz keçən dəfə olduğu kimi, pişik bərabərdir.
Və heç əlbəttə var sual işarəsi adı bərabərdir
David və ya yurt Matthews bərabərdir, belə bütün gedir?
>> Yaxşı, məni burada geri gedit gedək və həmin faylları ilk açmaq
Mənim vhost yerli host, ictimai burada kataloq və froshim0 daxil.
Belə ki, demək olar ki, çıxır bu səhifənin yalnız HTML edir.
Bu, tanımadığı ola bilər lakin tezliklə PSET 6 ilə daha çox olacaq
və pset 7 və pset 8.
Amma bu yalnız bir HTML səhifə.
>> Və maraqlı stuff burada görünür.
Onların fəaliyyət atributu forması tag reyestrinin 0 dəyəri var.
Mən təqdim zaman niyə ki bu, fayl gedir.
Amma üsul müxtəlif today-- post edir.
Belə ki, ən azı orada var çıxır istifadə web iki üsulları
məlumat göndərmək üçün brauzer server.
Alın URL qoyur.
Post başqa qoyur.
Və zaman və nə siz bilər həqiqətən bir web istəyirəm
əvəzinə sonra post istifadə yalnız daxilən, almaq?
Hər hansı bir web.
Hansı məlumatları yalnız qəbul edilməlidir poçt vasitəsilə indi nəticəçıxarma qarşı
biz gördük əgər almaq iki fərqlər?
TƏLƏBƏ: [işitilemez] təmin.
DAVID J. MALAN: Əgər istəyirsinizsə, bir şey təhlükəsiz olmalıdır.
Belə ki, bir parol yazın bilər bir web daxil, bir kredit kartı
bir web daxil ki Bu suboptimal cür
browser qoymaq əgər URL daxilində dəyəri.
Niyə?
Deyil ki, siz onu görmək Belə bir böyük görünür,
lakin odds olduqca tez-tez gəzmək var üz sizin kompüter və ya istifadə kompüter
laboratoriyaları, və kimsə başqa ya hətta bir roommate
asanlıqla gəzmək və görmək bilər xüsusi məlumat.
Bir e-poçt göndərmək zaman internet vasitəsilə, siz yəqin ki,
ki, data sona istəmirəm URL qədər də.
Və səbəblərdən hər hansı bir sayı var niyə biz burada onu qoymaq istəyirəm bilər.
Photos-- sağ və, mən hətta olduqca Bir qrafik almaq necə təsəvvür,
bir JPEG kimi, və URL onu qoymaq.
Siz bunu edə bilər.
Orada kodlama yolları var, lakin bu yalnız kimi sadə deyil.
>> Belə ki, 0 əslində qeydiyyatdan Çox underwhelming.
Bütün bu sözün bu deyir.
Bəzi daxilində yazdıran HTML aşağıdakı tags.
Mən burada bir PHP tag var bir pre tag daxilində iç içə.
"Pre" yalnız pre-biçimli mətn deməkdir bir makina kimi, mono-aralıklı.
>> Printr çap recursive funksiyası var.
Və sonra bu var Burada maraqlı bir şey.
Və biz bu geri gəlmək lazımdır başqaları var, çünki,
lakin dollar işarəsi çizgi post görünür
PHP dəyişən olan hər şey Siz server browser göndər
sizin üçün saxlanılır olur.
Və biz almaq necə görürsünüz uzun əvvəl ki, məlumat.
>> Amma ilk, geri gedək bir az fərqli nümunəsidir.
Register-- daxil Going və ya daha doğrusu, froshims1.php,
bir az fərqli görünür.
Mən bir az daha etdi biçimlendirme ilə səy,
baxmayaraq hələ olduqca çirkin.
Amma irəlidə getmək üçün gedirəm və indi "David" yazın.
Kişi.
Biz "kapitanı" bu dəfə yoxlamaq lazımdır.
Biz Matthews edəcəyik.
Və qeydiyyatdan.
>> Və bu zaman hm, həqiqətən, deyir.
Bütün hüquqlar, belə ki, nə nin 1 qeydiyyatdan?
Mənə açıq reyestrində 1 and-- hm daxil edək.
Bütün hüquqlar, belə ki, bu deyil maraqlı, və bu
bir gücləndirməklə daş artıq doğru deyil daha maraqlı proqramları.
>> Bu fayl var üst edək PHP tag habelə bəzi yapılan yorumlar.
Bu, indi üçün, bir yayındırma var belə ki, yalnız şərh xilas edək
onlar C. etdiyiniz və mən iddia kimi bir comment ilə kod bu yığın ilə
Bu kodu edir ki, təqdim doğrulama.
>> Bəli, bu çıxır ki, dollar işarəsi kimi dəyişənlər
var post vurğulayır super Globals çağırıb.
Onlar bu kimi istəyirik xüsusi qlobal dəyişənlər
yalnız Omni-hazırda proqram çərçivəsində mövcuddur.
Və kvadrat mötərizə notation istifadə edə bilərsiniz index onlara nömrələri istifadə daxil
0, 1, 2, 3, lakin faktiki sözləri kimi.
>> Belə ki, dollar işarəsi hesab edə bilər bir hash masa növ vəzifəsini vurğulayır
Bir axtarış bir əsas keçə bilər ki, söz-in arasında kvadrat mötərizədə,
və geri vermək olacaq istifadəçi həqiqətən təmin dəyəri.
PHP bir funksiyası var ki, boş adlı yalnız
Bu, bəli və ya xeyr deyir dəyişən boş və ya deyil.
Biz bu ikiqat barlar var, yalnız C. kimi deməkdir və ya
>> Belə ki, faktiki olaraq, bu xətt 4 yalnız istifadəçi adı vermək olmasaydı deyərək
və ya gender vermir və ya etmədi bir yurt vermək, irəli getmək və onu İstiqamətləndirmə
və ya onun Burada bu xətt vasitəsilə.
Belə ki, bu, bir az sirli lakin bu, yalnız sözün deməkdir
Bu yer geri, belə ki, istifadəçi punts
geri o gəldi yerdə.
Amma bu bir az sərt var ki, mən ağır kodlu.
>> Amma nə bu, əgər vəziyyət doğru qiymətləndirmək deyil?
Istifadəçi mənə nə verdiniz əgər onun və ya onun adı və yurt və gender?
Vəziyyət deyil, əgər ki, doğru üçün qiymətləndirmək üçün gedir,
mən line 7 çıxış basmayın.
Belə ki, nə olur?
Bu nə edir PHP haqqında maraqlı.
>> Siz daxil və tərk edə bilər PHP rejimi, belə danışmaq.
Bəzi kodu icra etmək istəyirsinizsə, Siz açmaq və bir PHP tag bağlaya bilər
Mən burada etdiyiniz kimi və kodu qoymaq.
Kimi tezliklə bağlamaq kimi PHP tag, server
yalnız tüpürmək gedir nə siz orada qoymaq.
Və həqiqətən, bu hissəsi idi PHP orijinal dizayn,
pis üçün, bu idi kodu və biçimlendirme commingling
dil.
Və biz bu çox görəcəksiniz tez bir mess daxil devolves.
Və belə ki, biz daha yaxşı edəcəyik Bu nəticədə, ancaq
Mən ilə rahatlığı qeyd bir məntiq icra həqiqətən edə.
>> Amma yenə də bir az underwhelming.
Versiyası açmaq edək Frosh Ani, iki olan
yəqin register2.php təqdim edir.
Belə ki, bu fayl həqiqətən gedir demək olar ki, eyni baxmaq.
Mən Frosh Ani 2 getmək üçün gedirəm.
Amma Frosh Ani 2, nə görmək edək.
>> David kimi, radio 'düyməsinə basın Bu adlı; Matthews, heç kapitan.
Qeydiyyat.
Siz qeydə alınır.
Həqiqətən.
Oh gözləyin, biz yalnız ki, məsələn, biz etmədi?
Bütün hüquqlar tərəfindən seçilir.
Biz üç edəcəyik.
Aydın bir şey haqqında Gmail ilə baş.
Biz orada almaq lazımdır.
>> Belə ki, Frosh Ani 3 bu kimi görünür.
No fərqli.
Amma nə zaman David, kişi, Matthews, və Bu üçüncü və son versiyası qeydiyyatdan
iddiaları, sadəcə, sizə həqiqətən qeydə alınır.
Ki, sort qeyri-maddi deyil.
Amma bu iddia üçüncü və son versiyası
İndi dəqiq nə yeniden mənim roommate və mən Frosh Ani üçün inşa
əvvəl proqram il.
Və bu sadə idi.
Verilənlər bazası var idi Excel elektron tablo yoxdur.
Amma daha əhəmiyyətlisi, heç bir daha kağız var idi
Biz bu proqram ilə nə çünki , həqiqətən Proctor e-poçt olan
əvvəllər qəbul edilib formaları vasitəsilə bu şeylər.
>> Və yəqin ki, biz bu proqramlaşdırılmış sonra Belə bir yol kimsə qeydə ki,
John Harvard hesabı e-poçt Bu halda proctor-- ya özü,
John Harvard-- aşağıdakı text-- "Bu şəxs yalnız qeydə."
Adı, kapitan boş David edir; gender, kişi; və yurt, Matthews.
>> Belə ki, orada nə baş verdi?
Burada sual Yaxşı, fayl yəqin register3.php edir.
Mən bu açmaq əgər, siz görəcəksiniz bu kimi kodu gücü, həm də
və həmçinin, səmimi, etibarsızlıq e-poçt kimi bir sistem.
Mən yalnız səmərəli iddia var John Harvard bu şəkildə ola bilər.
>> Mən üst qədər açıq php tag var yalnız burada deyir bəzi PHP kodu gəlir.
Burada Down, orada çevrilir PHP kitabxana var.
Siz yalnız ehtiyac yoxdur qədər header faylları daxildir.
Siz daha çox almaq mətbəx sink, belə danışmaq.
>> Amma line 4 bu dəfə mən adlı xüsusi kitabxana istəyirəm
Bir şey sizə olan PHP poçt, bir çox sistemlərin pulsuz quraşdıra bilərsiniz.
Burada Down I doğrulama alıram təqdim yalnız
istifadəçi vermək idi yoxlanılması Mənə bir adı, gender, və bir yurt.
Və əgər, irəli getmək və bir poçt instantiate.
>> Siz kimi hesab edə bilər yalnız ayırır kod line.
Bu, malloc kimi ancaq Bir az sexier var
ki, siz yalnız qeyd malloc və bəzi ümumi sayı.
Siz mənə bu bir vermək demək Mənə bu yeni bir verir.
>> Və proqramlaşdırılmış olsanız Java və ya C ++ və ya digər dillərdə,
Bu görmüşəm bilər.
Amma bu qısa, əgər tanımadığı, bu xətt
dollar işarəsi mail qoyur adlı xüsusi struct
daxili ki, obyekt e-poçt funksionallığı.
Və əslində, qeyd və oxşar sintaksis.
>> Bu göstərici, özlüyündə deyil.
PHP yalnız eyni sintaksis istifadə edir.
Bu xətt istifadə söyləyərək SMTP-- Simple Mail Transfer
Yalnız olan protokol, protokol poçt göndərmək üçün istifadə.
Bu istifadə ifadə edir Harvard SMTP server olan
kampus haradasa burada.
>> Bu söyləyərək nə TCP sayı danışmaq port,
və mən yalnız ki, fiqurlu googling və ya yardım masası soruşaraq.
Və sonra Harvard bəzi istifadə edir, çünki poçt server-- sistem təhlükəsizlik
ən azı şifrelemek sizinlə onun arasında yol,
Hər kəs it-- göndərə bilərsiniz baxmayaraq Mən TLS protokol yandırmaq üçün gedirəm
Bu təhlükəsiz saxlanılması üçün.
>> Amma bu şeylər edir bir az qorxudan almaq.
Mən yalnız özbaşına bilər Mən jharvard edirəm ki,
və mən yalnız özbaşına bilər burada özümü e-poçt.
Və sonra mən bir belirtebilirsiniz Burada bu xətt ilə mövzu.
>> Və bu, yalnız çirkin görünür, lakin bu concatenation bir dəstə.
, PHP bir super faydalı simvolu çıxır Bəzi dillərdə kimi, dot operator,
yalnız sözün concatenates string simli sonra simli sonra,
və siz malloc ya rəqəm yoxdur simli ümumi uzunluğu həyata.
Siz yalnız bunu.
Və həqiqətən, mən concatenating deyiləm, çünki Bu nöqtələr ilə bu şeyi bütün,
ki, niyə e I var bunu kimi göndərilir baxdı.
>> Və sonra nəhayət burada, mən mail göndərilməsi alıram.
Bu yalan Belə ki, Mən yalnız ölmək gedirəm
bir funksiyası ki, yalnız izləri Ekranın bəzi səhv mesaj.
Amma bu əslində, göndərmək funksiyası zəng.
Əks halda, bütün bu etmədikdə, Burada mənə geri yönləndirən.
>> Və mən ona görə gördünüz Mən, həqiqətən, qeydiyyatdan alıram?
Yaxşı, burada baş verib.
Mən bu yetişdirmək səbəblərdən bir neçə.
>> Bir, bu necə qurmaq əgər dəqiq yekun layihə üçün web
və ya real dünya üçün, bu Siz e-poçt hatırlatıcıları göndərmək necə
sizin müştərilərin və ya abunəçiləri üçün.
Bu parol xatırlatmaları göndərmək necə.
Bu insanlar mesaj göndərmək necə onlar yeni bir Facebook var ki,
mesaj gözləyən və ya kimi bir şey.
>> Lakin bu da danışır əslində bu ola bilər
çox yaxşı olmuşdur Davin ya başqa hər kəs.
Mən bu cür demək Bir təbəssüm ilə Ben çünki
keçir, nə qədər əmin Bu nöqtədə sizin ağıl bir neçə.
Amma bu o biri I edirlər , Mən hər şeyi cür kimi, demək
Bu mənasız, çünki bu kimi e-poçt döymək.
Amma gördük bilər və ya Crimson oxumaq,
gec bu da olduqca insanlar üçün mənasız
geri mənşəli onları izləmək üçün.
Və bəlkə də, mənə bir müddət xahiş CS50 nahar necə Mən ilk
çox yaxından tanış olublar demək olar ki, ed board illər
əvvəl aşkar zaman necə internet çalışmışdır.
Hər hansı bir az iki halda da belə Bu ed board etdi sonra.
>> Belə ki, hər halda, orada bir super Globals bütün dəstə,
onlar burada deyilir etdiyiniz kimi, biri Biz dollar işarəsi çizgi post saw--.
Get adlı həmkarı var, bir URL tapa stuff deyil
gedən bitir.
Və digər bütün dəstə var too-- sessiya və server və cookie.
Biz geri gəlmək lazımdır başqa vaxt cookie,
lakin sessiya sərin cür çünki sağ now-- up now-- qədər
Hər şey bir web browser ilə etdik sort vətəndaşlığı olmayan, belə ki, danışmaq.
Mən ətrafında vurun, giriş server, bir şey faylları
, ekranda olur, lakin sonra keçid bağlayır.
İnternet Explorer və ya Firefox icon spinning vermir
və yalnız nə görmək web səhifə var.
>> Belə ki, HTTP ki, vətəndaşlığı olmayan edir bir bağlantısı edir bir dəfə,
ki, bu, bəzi məlumatlar alır.
No daha çox bağlı, Skype fərqli olaraq, Facetime, fərqli Gchat, fərqli olaraq
sabit saxlayır server əlaqəsi.
Web əsaslı , baxmayaraq ki, biz lazımdır qaralar
uzun əvvəl nə görmək biz hər şeyi simülasyonu bilər
Facebook chat və Gchat kimi, olan illusion-- qorumaq
və ya həqiqətən bir saxlamaq yoxdur istifadə daimi əlaqə
daha müasir texnologiya.
>> Amma getmək əgər, demək, counter.php, bu bir sadə nümunə,
biz görəcəksiniz kimi, hazırda düşünür Mən site sıfır vaxt ziyarət etdi.
Amma sadəcə səhifəni əgər, Bu elə mən əvvəl burada idi bilir.
Mən yenə yenidən varsa, Mən əvvəl burada idi bilir.
Və təkrar və təkrar.
>> Belə ki, bəzi plus-plussing var gedir, lakin bildiriş
kiçik şey belə heç spins qısa üst və sonra disconnects,
belə ki, mən bir sabit kimi deyil mənim cihaz keçid.
Bəli, mən counter.php getmək əgər, nə qədər sadə görürsünüz.
Mən ilk bu xüsusi zəng funksiyası ki, biz tezliklə lazımdır
göydən alaraq başlamaq sessiya start çağırıb.
Bir sessiya başlayın.
>> Və sessiya bundan sonra yalnız Bir alış-veriş kimi, bir bucket olacaq
Siz dəyərlər qoymaq biləcəyi araba və belə bir proqramçı kimi etibar
Onlar zaman burada olacaq ki, istifadəçi ikinci back-- gəlir
sonra bir saat sonra, hətta bir il sonra, o aydın deyil kimi uzun
onların cookies, biz nəhayət görəcəksiniz kimi.
Və indi yalnız var burada əgər vəziyyət.
Belə ki, aşağıdakı əsas əgər, adlı counter, içərisində müəyyən edilir
Bu super bu hash global-- masa, adlı sessiya will-- əgər,
sonra irəli getmək və qamarlamaq Bu session-- düşünürəm dəyər
Bir alış-veriş kimi bu cart-- və onu saxlamaq
counter adlı müvəqqəti dəyişən.
>> Əks halda ki, dəyəri counter əgər oldu sözdə Səbətinizdə müəyyən deyil,
yalnız 0 onu başlamaq.
Nəhayət, aşağı burada getmək və geri qoymaq Alış-veriş arabaları və ya sessiya
counter +1 dəyəri.
Belə ki, bu çıxır ki, xüsusi konteyner burada
ki, yenə bu səmt biridir Diziler, bir sıra bilərsiniz ki, index
əvəzinə nömrələri sözləri daxil istifadəçi üz gedir hətta sonra davam.
Yenə indi səhifəyə geri getmək lazımdır.
Bu dəqiqə və ya belə oldu.
Amma var ki, xatırlayır 19 dəfə əvvəl burada.
Bu, mənim 20 səfərimdir.
>> Və bu əsas olacaq xatırlayır ki, hər hansı bir web həyata
Siz qoymaq ki, daxil etdiyiniz Səbətinizdə hərfi şey
almaq və ya bəzi ki mesajların sayı həbssiz.
Anytime istədiyiniz məlumat unutmayın,
biz kimi ki, PHP görəcəksiniz bir neçə digər dillərdə,
dövlət bu illüziya ilə bizi təmin edir baxmayaraq ki, siz PSET 6 görəcəksiniz kimi,
kimi HTTP sorğu edirik müştəri server, ki, var.
Ki, geri almaq cavab, daha heç bir şey var
default server geri gəlir.
Amma biz ki, ətrafında işləmək üçün necə görürsünüz.
>> Yaxşı İndi edək bir az bu qədər təmiz.
Biz bir neçə gördüm Orada müxtəlif nümunələri.
Oh, və bir kənara, kimi tanış və ya tanımadığı,
səbəb ki, Frosh Ani Məsələn getdi
həqiqətən axtarır yaxşı slightly-- çirkin,
hələ yüngül ugly-- hələ çirkin baxmayaraq az çirkin
biz baxsaq, çünki burada mənbə kodu,
mən bu ki, həyata çevirir fayl çox üst.
>> Bootstrap çox biri olduğunu çıxır orada sərbəst mövcud kitabxana
proqramlaşdırma dilləri üçün mövcud həmişə, lakin CSS və ya JavaScript üçün
HTML və ya dillərdə hər hansı bir sayı və ya.
>> Burada və bu insanlar ilk çıxdı
Twitter-- yalnız var üslub bütün dəstə.
Bu kütləvi fayl var burada kimsə yazdı,
və ya kimsə zamanla, yazırdı ki, rəng və biçimlendirme ifadə
və etajer Mən ki, cür öz sintaksis borc
və anlamaq üçün yoxdur necə mənim formu qoymaq.
Bu da minified edir kompüter bilərsiniz ki,
onu anlamaq deyil mütləq bir insan.
Belə ki, yalnız nə var stilləşdirmə dəyişdirilib.
>> Amma indi daha yaxşı nə edək dizayn baxımından,
Biz aşağı qalmaq, çünki çox uzun bu yol,
bizim kodu olacaq messy və messier almaq.
Belə ki, burada bu nümunələr diqqət edək.
Bu gün üçün son.
>> Belə ki, burada bir super sadə CS50 veb version 1.0.
Bu, yalnız links var mühazirə və proqramı,
və bu unordered siyahısını istifadə edir Biz keçən dəfə istifadə ki, UL tag tag--.
Və əslində, mən əgər , View Page Source açmaq
Bu olduğunu görəcəksiniz həqiqətən, həqiqətən sadə HTML.
Və əslində, bu olsa başlıq altında PHP fayl,
Bu hələ yalnız spitting edir İndi yalnız HTML.
>> Mən mühazirələr basın əgər, biz bu baş görürük.
Mən həftə basın əgər sıfır, biz bunu görürük.
Mən basın əgər Çərşənbə, biz bunu görürük.
Bu yəqin PDF oldu ki, gündən slaydlar.
I etdiyiniz bütün bir ilə link burada bu URL anker tag.
>> Belə ki, bu olduqca demək yalnız CS50 saytında sadə versiyası.
Nin həyata necə görmək edək.
Mən mvc0 dizine getmək varsa, Biz bir neçə faylları görəcəksiniz.
Bir README, belə ki, əgər Bu bəzi çox sürətli
Siz yalnız ətrafında soxmaq bilər Daha yavaş-yavaş sonra.
Və burada bildiriş bir index.php fayl.
Belə çıxır ki, əgər Özünüz, insan,
bir finala adını daxil deyil bir URL, adətən web server
sizin üçün bir default adı infers.
Bir index dot bir şey ümumiyyətlə default edir.
>> Belə ki, niyə bir an əvvəl var Mən burada bu URL ziyarət zaman,
heç bir fayl adı, fayl uzadılması, URL heç bir dövr.
Bu yalnız magically elə bilirdi index.php üçün baxmaq.
Bu yalnız bir konvensiya var.
Bir şey adlandırmaq olar.
>> Mən indi getmək əgər Belə ki, index.php, siz görəcəksiniz
, edək indeed-- ki şərh qurtarmaq
burada həqiqətən var, çünki maraqlı bir şey it-- üçün
Bu yalnız ağır HTML kodlu olunur.
Belə ki, uyğun deyil Mənim iddiası ilə olsa da,
ki, HTML və PHP yoğurulduğu bilər.
Heç bir faktiki var Burada məntiq proqramlaşdırma.
>> Və digər faylları olduqca kimi maraqsız yalnız çox.
Bu, yalnız həftə bir ağır kodlu var burada həftə bir m və həftə bir, w
Bazar ertəsi və Çərşənbə.
Və sonra mən həftə sıfır açmaq əgər, demək olar ki, eyni bildiriş.
>> Və əsas paket növü var.
Bu necə lazımsız edək.
Bu fayllar ancaq dəyişdirmək, və hələ mən Bu surəti / yapışdırıb iş bir çıxardı
harada ehtimalla bir fayl etdi həftə sıfır kopyalanır
həftə bir ətrafında gəldiyi zaman, və bir neçə dəyərlər tweaked.
Biz yəqin ki, mümkün olmalıdır bu daha yaxşı etmək üçün.
>> Belə ki, MVC geri gedək və versiyası bir daxil.
Mən bir var fark bir neçə faylları, çünki
bu faylları bütün yalnız bir ortaq oldu Mən versiyası 0 geri getmək əgər an, ago--
indeksi geri gedək, və yalnız postulate--
Mən ŞƏRHLƏR qurtarmaq dəfə bu səhifənin hansı hissəsi
Mənim faylları hər biri güman edir?
Just həyata zəng.
Hansı xətləri təqlid edilir yəqin ki, bu pages bütün arasında?
Bəli?
>> TƏLƏBƏ: [işitilemez].
>> DAVID J. MALAN: 1 9 vasitəsilə.
Bəli, tamamilə.
Bəlkə 8 istisna olmaqla, 9 vasitəsilə 1, CS50 çünki bir az dəyişir
olur mühazirələr və ya həftə sıfır və ya bir şey.
Amma demək olar ki, eyni.
Belə ki, bütün bu məhsulları yalnız cür kopyalanamaz və yapışdırılır.
Və bir neçə var digər xətləri Mən hesab edirəm ki
ki, yəqin ki, eynidir bütün faylları arasında.
>> TƏLƏBƏ: 12 və 13.
DAVID J. MALAN: Bəli.
Əlbəttə, 12, 13 və 14 yəqin ki, yalnız maraqlı məhsulları çünki
xətləri 11 baş 10, görünür belə.
Belə ki, versiyası 1 baxaq, bu yaxşılaşdırılması üçün çalışır.
Bu MVC example-- versiyası 1 biz will izah bir anda mtr nə deməkdir
Mən index getmək əgər, bu cür İndi bir az confusing görünür.
Bu əvvəlki kimi olduqca kimi sadə deyil.
>> Amma başlamaq dəfə diqqətlə, bu oxumaq
bunu nə olduqca sadə.
Görünür 1 xətti və line 8 əvəz
Yalnız identified-- məhsullarının bütün yalnız yaxşı tədbir üçün olsa da,
Mən yalnız halda bəzi var Uls sol gün şeyi bir siyahısı yox idi.
Və cür funt kimi tələb C. Bu nüsxə və pastalar daxil
məzmunu səmərəli burada bu fayla.
>> Belə ki header.php, sizin kimi onun adı nəticə çıxarmaq bilər,
Səhifənin header olacaq.
Bu cür burada yetim var.
Bu, yalnız bu üst var, lakin Aşağıdakı heç bir daha çox content var.
>> Mən isə footer baxsaq, olan digər fayl mentioned--
bu bir, hətta az maraqlı deyil amma yenə hər şeyi ümumi var.
Belə ki, bu footer edir.
Bu mövzu deyil.
Bu ki, fayl dəyişir, belə ki, niyə
Bu ümumiliyi amil cəhd Burada bu iki xətləri ilə?
>> Amma biz bu təmiz olar daha az.
Mən irəli getmək gedirəm və versiyası iki harada açmaq
biz var ki, görürsünüz yeni bir fayl, helpers.php.
Biz bir anda nə görürsünüz.
Nin kimi, index gedək əvvəlki kimi giriş nöqtəsi.
>> Və indi tələb edirəm qeyd helpers.php, mövzu və ya footer deyil.
Amma köməkçiləri cür istəyirəm edir PSET 2 helpers.c və helpers.h
və ya uzun əvvəl zaman həqiqətən pset 3 axtarış və PSET tapa bilmədi,
və çeşidlənməsi üçün bütün kodu idi və ayrı bir fayl axtarış.
Yəni burada neler var.
>> İndi line 3 bir az fərqli görünür.
Və yalnız bir xətt var.
Bu daha etmək üçün aydın, yalnız bilər
Bu stylistically ardıcıl olmaq üçün nə başqa hər şey etdik.
Amma həqiqətən deyil işlevselliği dəyişir.
Bu real kod yalnız bir xətt var.
>> Görünür, bir funksiyası var haradasa header göstərmək adlı,
və bu şeylər edir olduqca güclü almaq.
Onun parantez ki, daxili edək sintaksis nə digər parça?
Bu, yəqin ki, demək bir az çətindir, lakin Mən bəzi ağ qoymaq lazımdır there's-- qeyd
space.
Kvadrat mötərizə var.
>> Və kvadrat mötərizə biz bir az əvvəl gördüm assosiativ seriallarda kontekstində,
hash masalar kimi, yenə, olan var.
Və C edirəm əgər bir funksiyası daxil dəlilləri sifarişi
həmişə eyni olmalıdır.
Siz nə xatırlayıram var That x, y, z və ya z, y, x-- sifariş
və həmişə onlara təmin etmək üçün var eyni qaydada və ya onlara baxmaq
unutursanız.
>> Amma bu ağıllı şəkildə görünür bir ixtiyari əsas dəyər keçən
adı adı vasitəsi cüt bu halda bir dəlil
və CS50 onun dəyəri.
Mən və əslində bu kvadratşəkilli mötərizələri
burada mən bilər o deməkdir ki, də bir şey keçmək
kimi bir həftə 1 və ya 0 və ya 2 və ya 3.
Beləliklə, biz parameterized etdik belə bir şəkildə bu funksiya
Bu birdən çox giriş edə bilər ki, lakin indi üçün yalnız biri.
>> İndi helpers.php getmək varsa, bunu nə görürsünüz.
Bu bir az yeni funksiyalar,
lakin indi yalnız almaq bu ki, iman
sintaksis ilə siz PHP bir funksiyası müəyyən.
Siz sözün funksiyası demək.
Siz geri daxil deyil yazın, və ardıcıl var
dəyişən detal əvvəlki ilə siz həqiqətən güclü yazın yoxdur.
>> Bu yalnız müəyyən ki, default, bu
bir assosiativ edir bir arqument kimi array.
Və nə bilirik?
Istifadəçi bir keçmir əgər bir default dəyəri daşımır.
>> Bu C yoxdur ki, bir xüsusiyyət Bizim üçün, indi, çünki, gözəl
data, hətta əgər bu bir şey vermir,
bir olacaq array lakin boş biridir.
Və bir kənara, çıxarış yalnız funky bir şey yoxdur
harada bu düymələri bütün edir assosiativ array, hər şeyi
Siz kvadrat mötərizədə qoymaq bilər, və onlardan dəyişənlərin yaradır
biz nəticədə əldə edə bilərsiniz, belə ki, onlara footet.php və header.php.
Ki, bir az mücərrəd var, Mənə bu işarə edək.
>> Index.php, mən deyiləm fark başlığı əsas dəyər cüt keçən
CS50 dəyəri ilə.
İndi helpers.php baxsaq, ki RenderHeader qeyd
Mən keçən alıram ki, məlumatların çıxarılması edir , sonra header.php tələb.
Mən etdik kasıb insanın sort İndi aşağıdakı həyata keçirilməsi.
>> Mən header.php açmaq varsa, Mən ağır artıq var ki, xəbərdarlıq
Bu mövzu fayl sözü CS50 kodlu.
Mən etiraf amansızlıqla bu gətirdik adlı funksiyası, HTML xüsusi chars,
orada.
Amma etdik nə görürsünüz.
Mən açıq HTML var.
Mən sonra, başı açmaq və açıq adı var.
>> Və sonra daxili adı açıq və yaxın tags, mən PHP kodu bir az var.
Bu, gözəl, lakin sintaksis bir deyil olan yalnız həyata səda deməkdir.
Bu sözün Hələ deməkdir aşağıdakı kimidir echo
lakin bu yazmaq üçün sexier edir.
Başlıq echo ki, qəbul edilmişdir.
>> Amma HTML nə düşünürsünüz xüsusi char, bütün haqqında
xüsusilə varsa Bəzi əvvəl HTML təcrübə?
Nə simvol ola bilər bir səhifə keçmək təhlükəli
siz dinamik yaradan edirik bu kimi kodu ilə web page?
Bu fayl gedək version Mən bu edə bilməz, əgər iki, və görürük.
>> Version iki bu.
Və hər şeyi qeyd yaxşı iş, gözəl.
Amma index.php getmək və güman Mən müəyyən ki, mənim səhifə adı
CS50 deyil.
Açıq bracket script alert Salam dünya, yaxın bir quote,
yaxın parantez, nöqtəli vergül, açıq bracket, çizgi script.
>> Script, biz lazımdır nəticədə tag bax
başqa istifadə üçün istifadə edə bilərsiniz ki, proqramlaşdırma dili çağırıb
Bir web page daxilində JavaScript.
İndi burada məntiq bilərsiniz.
Burada adı deyilən bir açardır.
Burada indi crazy uzun dəyər deyil.
>> Amma köməkçiləri getmək əgər Səhifə- daha doğrusu, header səhifə
Mən bu funksiyası zəng edirəm ilk adı.
Mən bu səhifəni əgər mən , gülünc görünür, bu görmək
lakin təhlükəsiz deyil.
Bu, yalnız axmaq görünür.
>> Lakin əvəzinə güman Mən bu unutmuşdular.
Və mənim sözləri qeyd, bir nonzero sayı Bunu unutmayın edəcək
və bəzi çalışqan almaq lazımdır tələbə və ya dost gələn
Sizə CS50 sərgidə ya anonim gecə web ətrafında poking
və mahiyyətcə kodu inyeksiya Sizin saytınıza sizə unbeknownst
elə.
>> Mən sadəcə tüpürmək Çünki burada adı və adı həyata
orada yaxşı, adı, əgər sözün Bu və PHP kimi görünür
tüpürmək bilər ki, bir dil kimi digər dillər mətn həyata,
bu sözün gedir bu tag əvəz,
Əlbəttə, mən başqa yerdə nə qoymaq.
>> Belə ki, əgər mən indi burada getmək və sonra yenidən bu təhlükəsizlik mexanizmləri məhvi,
İndi burada salam dünya var.
İndi bütün ki, böyük deyil məşğul, lakin bir şey edə bilər
bir az daha zərərli Burada kimi var
biz sərf dəfə görəcəksiniz kimi digər tags yeri kimi JavaScript daha çox vaxt
dot href quote, dırnağı bağlamaq, HTTP olur business.com, lakin qarşı
digər gün.
İndi bir web vadar edə bilər səhifə həqiqətən dərhal getmək
Burada bu web page.
>> Və həqiqətən, istəmirəm hətta business.com getmək
Mən istəmirəm, çünki ki, nə üçün.
Amma bu, çox, kodu tetikler Bu səhifədə enjekte ediləcək.
Belə ki, bu baxmayaraq ki, yalnız biz bəzi super erkən təqdim edirik
Bu daha mürəkkəb strukturların, əmin edilməsi üçün sonuna bütün
ki, kodu yararlığını deyil.
>> Belə ki, indi burada bir üçüncü versiyası.
Bu bir az meraklısı əldə edir.
Mən, həqiqətən, olmadı qədərdir mənə anal yan
tərəfindən bir az rahatsız əldə edilib Mən funksiyası adlanır ki, fakt
RenderHeader və RenderFooter demək olar ki, eyni idi.
Belə ki, mənə baş, niyə yoxdur Mən bu funksiyaları parameterize
göstərməyə çağırıb yalnız bir, ikinci bir dəlil almaq var
şablon adı kimi, final mövzu və ya footer ya render-- üçün necə?
Və sonra isteğe, mən istəyirəm bəzi əsas dəyər cüt keçmək
kimi mən üçün adı yoxdur lakin footer üçün header,
Mən bunu edə bilər.
>> Və indi mən helpers.php getmək əgər, bir az daha kompleks.
Mən mənim əlləri dalğa lazımdır ətraflı, lakin yalnız bir funksiyası var.
Belə ki, daha yaxşı dizayn doğru bir addımdır.
>> Biz bu bir addım bilər.
Mən dördüncü daxil edin Bu versiya, indi qeyd
Mən bir şey edirəm ki, sirli daha növ.
Mən bu bilirik çox, bir dəfə udmaq
lakin biz yalnız növ istəyirik şeyi təmizlənməsi.
İndi mənim köməkçilərim qoyulması alıram adlı qovluğa fayl
includes-- yalnız bir ixtiyari Mən stuff qoymaq istədiyiniz adı
Mən sonra include-- və istəyirəm ki, bu isə eyni.
>> Amma gedit indi baxmaq əgər, Mən xilas kazanılmış etdik ki, bildiriş
və həmin digər faylları bütün I var bura daxil, məsələn, onlara köçürülüb.
Və sonra şablonları, Mən burada bu var.
Və bu, bir addım doğru artıq bütün daha yaxşı dizayn model istifadə.
Və biz çox tez edirik uzaqlaşmaq niyyətindədir
PHP-nin default funksionallığı, biz, burada başladı
Yalnız PHP yoğurulduğu olduğu, və HTML və CSS,
və yalnız tüpürmək və sizin yol haqqında gedin.
Bu, çox maintainable olacaq deyil.
Just C kimi, biz istifadə açılmış birdən çox fayl və çox funksiyaları
və faktorinq şeyi ki.
Biz burada eyni edəcəyik.
Və əslində, beşinci və final versiyası burada, mən başqa bir şey idi.
Siz hətta, dot dot istifadə edə bilərsiniz, yenidən, yalnız əsas kataloq edir.
Daha təhlükəsizlik şüurlu olmaq üçün, Mən dinləmə baxsaq, çünki
burada beşinci və son versiyası bildiriş üçün Mən burada adlı bir kataloq var ki,
ictimai, və sonra bu eyni səviyyədə, belə ki, danışmaq
Mən daxildir və şablonları var və sonra mətn faylı readme.
>> Və səbəbi strukturlaşdırılmış etdik Bu Hələ və çox web istəyirəm
Host, xüsusilə $ 5 ay olanları və ya $ 10 ay olanları,
Əgər bu bir yaşadım əgər onlara çox nə services--
onlar yalnız bütün atmaq gözləyirik bir kataloq sizin faylları,
kimi biz artıq idi bu çox ilk nümunəsidir.
>> Amma tezliklə çox tikinti başlamaq kimi yalnız saxlamaq ki, inkişaf etmiş saytlar
data siz və faylları sizə qayğı həqiqətən, hər şeyi təşkil, haqqında qayğı
düzgün və daha çox təhlükəsizlik Nəzərə şüur ​​bilərsiniz
biz müdafiə başlamaq bütün dostlara qarşı
Siz və ya ki, Bu sinif xaricində olan,
tezliklə edilməsi başlamaq kimi web proqramları özünüz,
aldığınız başlamaq üçün gedir sizə və onlara.
>> Və belə ki, biz baxmaq lazımdır nəticədə bu dizayn.
Bu yalnız bir şəkil ki, aşağıdakı təsvir.
Biz bütün qoymaq olacaq bizim bir və ya daha faylları məntiq proqramlaşdırma,
və biz yalnız başlamaq olacaq o nəzarətçiləri zəng.
Bu harada beyin var Bizim web həqiqətən var.
Sonra biz olacaq fikir və fikir var
yalnız ayrı-ayrı kimi sadə tez-tez adlanan şablonları fayllar.
Onlar yalnız var mənim səhifə estetik,
Mən baxmaq səhifəni istəyirəm nə rəng və layout qədərdir
və vəzifələri dəyişənlərin bütün.
>> Və daha maraqlı sonra biz nəhayət almaq lazımdır ki,
yalnız olacaq olan model deyil digər texnologiyaları yumruq sözü
Biz gətirmək ki, şəkil, faktiki verilənlər bazası kimi,
Istədiyiniz zaman, belə ki, məlumat saxlamaq üçün,
Yalnız bir e-poçt göndərmək yoxdur Sizin Proctor və ya özünüz üçün,
Siz, həqiqətən, bir verilənlər bazası onu saxlamaq SQL kimi tanınan başqa bir dil istifadə.
Və belə ki, biz bu gün burada tərk edəcəyik və Çərşənbə günü bu ilə ala
və sonra verilənlər bazası təqdim edir.
>> [MUSIC PLAYING]