[Powered by Google Translate] [Týždeň 8]
[David J Malan] [Harvard University]
[To je CS50.] [CS50.TV]
>> Vitajte späť.
To je CS50, a to je začiatok týždňa 8.
Pár príležitostí, ktoré tento týždeň,
medzi nimi, to talk tu na ktorých niektoré jedlo sa podáva.
Pre viac informácií pozrite sa na snímky, ktoré sú on-line.
A tiež ďalšie akcie tento týždeň našej Thomas Carrier.
Je to jeden z bývalých kolegov CS50 je hlava výučby, ktorý je teraz na Dropbox,
a on je ten, kto zahnutý nás sa viete čo,
takže ak chcete viac, že ​​hlavy ich rozhovore to popoludnie pre Dropbox a ďalšie.
CS50 obed je tento piatok.
Do k nám, ak ste schopní, 01:15, ako obvykle, na Fire and Ice.
>> A teraz sme sa ponoriť do niečoho s názvom Semináre.
Naše CS50 Semináre, spomínam, sú tieto voliteľné kurzy vedené výukové kolegami
a kurz asistenti a priatelia kurzu,
ľudia zo skupiny na koľaji tzv ABCD, ktorý je skupina
technophiles na akademickej pôde, rovnako ako skupina tzv HCS,
Harvard Computer Society, vysokoškoláci, ktorí sú podobne záujem v práci na počítači.
Tohtoročný zoznam seminárov zahŕňa semináre na Android a iOS a JavaScript
a PHP, Unix, Vim, a ďalšie, takže si uvedomiť, že tieto semináre sa blíži.
Ak by ste sa chceli RSVP pre niektorý z nich zamieri do danej adrese URL tam.
Budeme potom post na ihrisku internetových stránkach časy a miesta, akonáhle budú dokončené.
Ale viem, že je 5 rokov v hodnote predchádzajúcich seminárov k dispozícii on-line,
z ktorých mnohé sú stále veľmi aktuálne, pokiaľ ide o technológie, ktoré by mohli
Chcem sa hrať s vaším záverečných prác, tak zamierte tam pre niektoré dostupné videá ich.
>> CSS, tí z vás, ktorí sú oboznámení s CSS už,
čo je to v kocke?
Čo je to CSS?
Je to kaskádové štýly, a čo to znamená?
Čo to urobiť pre nás, CSS?
Dobre, poďme zahriať ľahšie jeden, HTML, Hypertext Markup Language.
Čo to urobiť pre nás?
Každý, kto vôbec?
Je to stále veľmi trápne pýtať na tieto otázky.
HTML, Hypertext Markup Language.
Áno? Nie?
[Nepočuteľné Študent odpoveď]
Dobre, dobre, to nám umožňuje označiť text zobraziť vo webovom prehliadači.
To nie je programovací jazyk.
Je to naozaj značkovací jazyk, čo znamená, že pokyn prehliadač, ako zobraziť
informácie, takže najjednoduchšie inkarnácia to ako sme videli
je niečo, čo super jednoduchý ako boldfacing, otvorený držiak b uzavretý držiak hovorí
aby tento text tučne, a to je v skutočnosti len jedným z mnohých spôsobov, ako
v ktorom môžeme urobiť, a naozaj, v týchto dňoch lepší prístup
k štylizácia svoje webové stránky, robiť veci tučné a kurzíva
a v strede a oprávnená, a podobne, nie je vykonané pomocou HTML tagov sám
ale skôr s technikou zvanou CSS, kaskádové štýly.
To je jazyk sám pre seba.
To tiež nie je programovací jazyk, ale-
všetci, toto je Dan, ktorý vedie k nám ešte dnes.
Niektoré technické problémy. Nie je problém.
>> CSS nám umožňuje štylizovať stránku
nastavením, čo sa nazýva vlastnosti, takže sa poďme pozrieť na to
prostredníctvom niekoľkých základných príkladov.
Nechaj ma ísť do prístroja dnes.
Mám zdrojový 8 pondelok adresár tu,
a ja idem do adresára s názvom CSS, kde máme veľa
súborov čakajúcich na nás tu,
a v tejto zložke máme, napríklad, search0.html z minula.
Teraz si pripomeňme s search0 sme odišli na túto poznámku
podľa druhu vykonávacích Google alebo naozaj len predný koniec pre ňu týždeň alebo tak dávno,
a všimnite si, že sme mali nejaké nové značky tam.
Mali sme h1 pre veľké, tučné čísla,
forma, ktorá nám umožnila skutočne HTML formulár pre vstup užívateľa.
Akcie, čo bolo význam akčného atribútu
na HTML tagu form?
Aký bol význam tohto, akcie?
Budem jednoducho robiť to dnes.
Akcia je určenie, kde je formulár bude predložený.
Skutočnosť, že hovorí, že action = "google.com / search"
znamená, že keď používateľ klikne na tlačidlo Odoslať alebo ekvivalent
bez ohľadu na formu polia sú vyplnené sa bude zaslaný na našom serveri
alebo naše zariadenie, ale skôr, že konkrétne URL na Google.
A metóda, že to bude používať, sa nazýva dostať,
a získať pre túto chvíľu je len technika pre prenos informácií so sebou na webový server
prostredníctvom adresy URL, takže sa poďme rýchlo pozrieť späť na to, ako to funguje.
>> Všimnite si, že je to vstup, ktorého meno je q
ktorého typ je text a potom druhý vstup typu predloží
ktorého hodnota je CS50 hľadať, a skutočne, keď sa otvoriť tento súbor tu,
search0.html, je to super jednoduchý formulár,
a keď som hľadať niečo ako počítačové vedy
a potom stlačte kláves Enter alebo kliknite na CS50 Hľadanie
Všimnite si, že to, čo sa stane, je mimo dostať do Google
Ja som konkrétne skončil na tejto adrese hore,
google.com / search? q = počítač + vedy,
informatika a výpočtová technika je samozrejme to, čo som napísal palcov
+ Jednoducho znamená, že ak je medzera bola,
a je to v prehliadači len aby sa ubezpečil, že to nie je
zmätok a biela plocha v aktuálnej URL.
A potom q, samozrejme, je parameter názov.
Nevideli sme, ako sme, programátor, môže skutočne prístup q doteraz.
Môžeme predpokladať, že Google vie, čo s tým robiť tu,
ale budeme sa tam dostať včas dnes.
>> Ale dovoľte mi, aby som sa pozrieť na miesto search1.html,
ktorý vyzerá trochu inak, pretože som sa rozhodol, že táto forma tu bola len trochu kríva.
Myslím, že je to v ľavej hornej časti.
Je to naozaj žiadne estetika k nej, a tak sa chcem štylizovať tento
trochu viac, ako je Google, ktorého strana, odvolanie,
aj keď nemusí navštíviť tak často, vyzerá to dnes na Halloween.
Ak by sme namiesto toho otvoriť verzii 1 tohto súboru, vyhľadávanie 1.html, som sústredený to.
Napriek tomu dosť škaredé, ale aspoň teraz som začal kontrolovať estetiku tejto stránke,
nielen značkovanie ich.
Poďme sa pozrieť na hľadanie 1, a je to naozaj len jeden rozdiel tu je,
ktoré by mohli vyskočiť na vás, alebo ani nie,
ale to, čo je jeden riadok alebo fragment rozdiel?
>> Tam je to štýl atribút, tak sa ukazuje, že v HTML
väčšina prvkov, väčšina tagy mať atribút style na ne,
a vo vnútri tohto atribútu style je reťazec v úvodzovkách,
a že reťazec v úvodzovkách je CSS.
Môžete si dať kaskádových štýlov tam
zadaním ako názov vlastnosti
dvojbodku nasleduje hodnotou.
To je druh nešťastného návrhu rozhodnutia pred niekoľkými rokmi
že CSS je jazyk sám pre seba,
ale syntakticky je to veľmi odlišné od HTML.
V tomto prípade, vidíme, že vo vnútri mojej stránky, ktorý je uvedený v HTML,
Mám CSS vnútri týchto úvodzoviek, a konvencie pre CSS
je, že to, čo sa nazýva vlastnosť nasleduje, opäť, hrubého čreva,
nasleduje hodnota tohto majetku, takže nie je znamienko rovnosti.
Nie sú tu žiadne ďalšie citácie.
Je to práve tento čiarkami oddelený hodnota kľúča dvojica,
a textový riadok robí presne to, čo hovorí.
To zarovná text v tele stránky, čo je naozaj odvahu na stránke,
v centre mesta.
>> Dobre, konečný výsledok potom, aby bolo jasno, je to.
Nie všetci, že sexy, ale aspoň je to stred a trochu viac ako skutočné Google.
Ale čo keď namiesto otvorenia verzia 2 tejto
a poukázať sem novú značku dohromady?
Teraz v hlave mojej stránky, ktoré boli predtým len mala, ktorý tag
vo všetkých predchádzajúcich príkladoch?
Proste mal toto, titul.
Pred chvíľou hlavu tag vyzeral takto.
Teraz miesto má štýl značky vnútri neho,
a to taky, ospravedlňujeme sa, syntakticky vyzerá veľmi odlišne od HTML,
ale človek si zvykne na to, kedy vo vnútri štýlu tagu
Teraz môžem vytknúť to, čo bolo pred chvíľou
atribút, atribút style, a môžem dať na samom vrchole mojej strane.
>> Prečo?
No, je to krok smerom k vyčisteniu veci, podobne ako v písaní C kóde
by sme niekedy píšu funkcie vytknúť spoločnú funkčnosť.
Je to len trochu čistejšie, kto factoring sa veci, ako je estetika
na jednom centrálnom mieste, skôr než mať to všetko roztrousit celom HTML.
To tiež robí to, čo hovorí, aj keď tam je trochu nové syntax.
Toto je výber, a telo jednoducho znamená, vyberte telo prvok
a použiť nasledujúce vlastnosti k tomu.
No, majetok je presne rovnaký.
Pre správnu mieru som pridal bodkočiarku na konci,
ktorá má tendenciu byť dohovor, a ja som zabalil tento celý majetok
v zložených zátvorkách, pretože som mohol skutočne mať rôzne veci tu.
Mohol by som vlastne povedať niečo ako farba: modrá;
>> Teraz to taky nebude mať krok k niečomu všetko krajšie,
ale keď som sa teraz vrátiť k verzii 2 som aspon teraz robil telo mojej
Page je text celej modrej.
Tlačidlo zostane rovnaká, pretože to je vstup. Nie je to čistý text.
Ale všetko ostatné, čo je text, rovnako ako CS50 Hľadanie hore hore, je v skutočnosti modré.
Opäť, všetko sme urobili teraz je odstrániť z tela tagu, oznámenia,
štýl atribút, a máme ovplyvnil ju tu.
To nie je veľké zlepšenie, ale ak vezmeme do ešte o krok ďalej
upozornenie, čo môžeme urobiť v tejto tretej verzii tu.
>> V search3.html webová stránka je takmer zhodná
s výnimkou toho, čo nový tag teraz?
Link, takže toto nie je výstižne pomenovaný
pretože nie ste prepojenie v zmysle klikacie hypertextový odkaz.
Skôr, že si trochu robí ekvivalent # include v C
pričom link tag s atribútu href
a rel atribút hovorí ísť dopredu
a kopírovanie vložiť obsah súboru s názvom search3.css tu, v podstate.
To nie je úplne to urobiť, ale je to duch toho.
To hovorí, že ísť otvoriť tento súbor, search3.css,
a zaobchádzať s ňou, ako by používateľ mal ju napísali priamo tu v záhlaví stránky
rovnako ako ja v predchádzajúcom príklade.
Search3.css, zatiaľ, je veľmi jednoduchý.
Je to naozaj len obsahuje presne to, čo bolo pred chvíľou
v štýle značky, ale ja som ovplyvnil ho sem vlastným súboru.
>> Aj keď sme sa strávili veľa času na to všetko v HTML alebo webové programovanie
Len intuitívne, čo je motivácia, možno, pre factoring von
tento malý úryvok dokonca CSS do vlastného súboru
a potom aj s týmto link tag tu?
[Nepočuteľné Študent odpoveď]
Dobre, je to jednoduchšie vykladať v tom zmysle, že máte svoj CSS do CSS súboru.
Máte svoj HTML v súbore HTML, takže je to lepšie čitateľné v tomto zmysle.
Čo iné by mohlo byť presvedčivé? Jo.
[Nepočuteľné Študent odpoveď]
Jo, takže môžete zahrnúť to mnohokrát, takže teraz budeme robiť tieto
základné príklady s jednotlivými súbormi, ale predpokladám, ste vlastne robiť
skutočný webové stránky, ako vy bude pre PSet 7 alebo váš konečný projekt možná,
a chcete mať viac webových stránok, ako je iste obyčajné na
Skutočná World Wide Web, a to by bolo docela lame
musieť skopírovať a vložiť rovnakú modrú farbu
a rovnaký text zarovnaný centrum v každom z týchto stránok.
Skôr to dáva väčší zmysel vytknúť, rovnako ako sme urobili v C
s súbor h, vložte ju na jednom centrálnom mieste,
v tomto prípade search3.css, a potom sa nechá ľubovoľný súbor
na svoje webové stránky, aby skutočne zahrnúť tento súbor prostredníctvom tohto tagu tu v riadku 16.
Ako je typicky prípad, sme začali s verziou 0, aký druh práce
ale nemusí byť nevyhnutne najlepšie, a na každom kroku,
Vyhľadávanie 1, vyhľadávanie 2, a teraz hľadajte 3 sme prijali tieto detské krôčiky
k vzorom, ktoré sú trochu čistejšie a sú prípravné
pre zložitejšie stránky, ktoré by sme mohli robiť po ceste.
>> Dovoľte mi otvoriť jednu posledný príklad tu len pre zobrazenie
ešte viac štylizovaná stránku, ale najprv poďme sa pozrieť na HTML.
To je search4.html, a všimnite si, že štrukturálne je to takmer rovnaké
okrem zavedenia novej značky, div.
Div je tag, ktorý zavádza rozdelenie stránky.
Môžete myslieť na to ako neviditeľný obdĺžnik.
Je to druh vytvára pás o výmere do webovej stránky
že môžete štylizovať naraz.
Čo som urobil tu je nasledujúce.
Vnútri môjho tela tagu, ktorý bol tam celý čas,
Hovorím vytvoriť rozdelenie stránky tu cez linky 45 až 47,
a to znamená, že v podstate mi neviditeľný obdĺžnik pozdĺž hornej časti stránky.
Potom mi druhý obdĺžnik, hoci neviditeľná, pod tým,
a identifikovať podľa mena obsahu, a potom konečne,
mi tretiny rozdelenie stránky na dne
tzv ID.
Uvidíme, prečo som to urobil za chvíľu,
ale koncepčne mám hlavičku divíziu.
Mám obsahu divíziu, a mám pätu rozdelenie stránky
aj keď sa jedná len v kóde.
Užívateľ nebude vidieť 3 obdĺžniky,
ale nejako štruktúrne tam v zákulisí
sú skutočne prítomný.
>> Teraz, koho to zaujíma? Prečo vlastne robiť?
Všetko ostatné na stránke je rovnaké ako sme videli predtým.
Tu je moja forma. Tu je môj vstup, môj vstup, koniec riadku, a tak ďalej.
Tu je obrázok, aj keď, tak uvidíme, kedy to prišlo z za chvíľu.
Tu je päty, ktorý je nový, len preto, že som chcel predstaviť
niektoré ďalšie obsah tu.
Ak sa posunúť nahor všimnúť, že ID tejto div je hlavičky.
ID tohto div je obsah, a ID tohto jedného je päta.
A ako už názov napovedá, ak máte atribút ID
vo formáte HTML, podľa definície musí jednoznačne identifikovať
jedným z prvkov, jeden z tagov vo vašom stránke.
Záťaž je úplne na vás, nezabudnite, že máte hlavičke ID už.
Máte päty. Máte ID obsahu už.
Počítač nebude prísť na to, čo k dispozícii ID je pre vás,
takže si mohol náhodne dať 2 slová o ID hlavičku,
a že by jednoducho bolo zlé.
>> Musíte mať na pamäti to, čo ste vytvorili,
ale akonáhle ste urobili, že oznámenie, čo môžeme robiť tu.
Teraz môžem špecifikovať v mojom štýle značky na vrchole
alebo ekvivalentne v mojom súbore CSS, keď som bol stále používate túto verziu,
Môžem povedať, # hlavičku, a čo to znamená, že bez ohľadu na tag
v tejto webovej stránky má ID záhlavie
a #, len ľudskú konvencií, predstavuje ID.
Ostrý znak alebo znak libry predstavuje ID.
Header je názov, ktorý som dal.
To znamená, že použitie tejto vlastnosti CSS
na akúkoľvek tag na tejto stránke nesie ID hlavičky.
Rovnaká dohoda tu.
Použiť túto vlastnosť, ktorá sa stane byť rovnaké, do akéhokoľvek prvku
ktorého ID je obsah, a potom tu dole
všimnete som trochu obsiahlejší s pätu.
Akýkoľvek prvok, ktorého ID je päty, ktorý tam môže byť len jeden z definície,
choďte do toho a aby jej veľkosť písma menšie,
jeho písmo hmotnosť tučné, jej okraj 20 pixelov.
>> Čo to znamená?
Je to len marže na hornej, dolnej, a ľavý a pravý.
To znamená, že mi 20 pixelov neviditeľného rozpätie okolo neho
len tlačiť všetko ostatné preč od toho trochu, ako by ste mohli urobiť v programe Word,
Microsoft Word alebo Pages alebo podobne.
A potom texte Zarovnať na stred.
Poďme sa pozrieť na konečný výsledok, a potom sa vrátime do jednej zostávajúce fragment CSS tam.
Toto je verzia 4, naša posledná na vyhľadávanie príkladov, a je to oveľa, oveľa viac sexy.
Teraz, v spravodlivosť, som Googled "Google Font logo generátor."
A že mi umožnila vytvoriť GIF, formát obrazu, ktorý vyzerá ako, že tam.
V skutočnosti, môžete to urobiť taky.
Máme "google fonty logo generátor."
>> Poďme sa pozrieť, či to môžeme urobiť.
Dobre, myslím, že to je na internetových stránkach som použil.
Dá sa povedať, EC 10, napríklad, a aby im ich vlastné.
Môžete hrať s touto celý deň a potom kliknite pravým tlačidlom na neho
a potom stiahnuť aktuálne GIF, ktorý je všetko, čo som urobil.
A skutočne, to je dôvod, prečo v mojom HTML, pripomenúť, tu
Mal som disk značku, ktorá sme videli minulý týždeň krátko
ktorého zdrojom je logo.gif.
A čo bol opäť motivácie za to, že tento atribút alt,
Táto alternatíva atribút?
Jo.
[Nepočuteľné Študent odpoveď]
Dobré, takže 2 dôvody naozaj, ak prehliadač nedokáže vytiahnuť obraz
pretože máte pomalé pripojenie k sieti alebo obraz je poškodený
alebo niečo podobné, že aspoň človek môže vidieť "CS50 hľadanie"
a potom tiež pre prístupnosť dôvodov.
Ak máte užívateľa, ktorý je slepý a používa pre čítanie z obrazovky
a preto samozrejme nemôže vidieť obrazy, ktoré možno aspoň
počuť text, ak ich počítač hovorí to na ne.
>> Všeobecne platí, že je to najlepšie praxi, pokiaľ ide o dostupnosť stránok
tak, aby aj užívatelia v tejto situácii môže vidieť alebo počuť, aby som tak povedal,
čo to je, že je na vašej strane.
Je tu ešte jedna vec, že ​​som urobil tú
čo je celkom zaujímavé, a uvidíme, viac o tom v probléme nastavenia 7
prostredníctvom jedného z krátkych filmov pod vedením jedného z výučbových štipendistov.
Ale # obsah sa týka tagu
ktorého ID je obsah, ale potom je tu medzera, a potom je tu slovo vstup.
No, čo je na tom zaujímavé CSS je, že môžete
odkazujú na tagy na stránke druhu hierarchicky,
a čo to úryvok z prostriedkov CSS je nájsť značku
ktorého ID je obsah, a potom použite nasledujúce vlastnosti
na všetky vstupné značiek, ktoré sú potomkami obsahu,
to je, že sú odsadené vnútri nej.
Odsadenie, opäť, je len dôležité, aby v počítači, nie k človeku,
ale podľa konvencie sme zarážke veci tak, ako sme sa ísť hlbšie do stránky,
tak to znamená uplatňovať rozpätie 5 pixelov na každom vstupného prvku
že je niekde vo vnútri alebo vložený vnútri
prvok, ktorého ID je obsah.
>> Kto to má platiť pre?
No, je to vlastne len tieto 2 ľudí tu.
Všimnite si, že vo vnútri tohto formulára tam 2 vstupy,
ako tam bol na všetkých týchto príkladoch.
Ale všimnite si, že tieto 2 vstupy stalo, že sa vnorená,
aj keď trochu hlbšie, pár vrstiev odsadenie,
vnútri tagu, ktorého ID je obsah.
Čo to znamená?
Ak pôjdeme do prehliadača tu môžete vidieť niekedy tak trochu-
dovoľte mi, aby som priblížiť, že je trochu vypchávky medzi tlačidlom
a medzi textového poľa.
>> Dovoľte mi, aby som dočasne vypni to.
Nechaj ma ísť do mojej CSS, a nechaj ma ísť dopredu a len
zmenu tohto rozpätie od 5 pixelov na 0 obrazových bodov.
Nechaj ma ísť napred a potom uložte súbor, prejdite späť do vyhľadávača
a znova, a pozerať sa na stred stránky.
Všetko dostal stlačený dohromady, a keď som prvýkrát šľahačkou tento príklad sa
Myslel som, že sa pozrel hlúpy s textovým poľom a potom tlačidlo bezprostredne pod ním.
Chcel som pad ju trochu, tak som predstavil marže.
Čo neurobíme v prednáške, je ísť cez niekoľko desiatok
CSS vlastnosti, ktoré existujú, pretože opäť, tam sú veci ako veľkosť písma,
font hmotnosť, rozpätie, text zarovnať, a niekoľko desiatok ďalších,
a budeme vás odkázať na problém nastaviť 7 rôznych cvičení on-line
a odkazy, ktoré vám umožní vybrať tieto veci.
Ale to, čo je skutočne dôležité na konci dňa
>> je pochopiť, ako sú aplikované tieto veci.
Opäť, ak máme štýl tag vnútri ktorých
môže ísť o selektory, radenie identifikátorov, ktoré určujú
ktorým chceš použiť tieto vlastnosti,
a potom si dať vlastnosti ako kľúčový hodnota dvojice
oddelené dvojbodkou a potom skončil s bodkočiarkou,
alebo môžete ripovať všetky tým von a dať ju do samostatného súboru CSS
sama o sebe.
Dobre, nejaké otázky na pojmy
alebo veľký obraz CSS?
Budete opäť vidieť viac z toho v PSet 7,
ale budeme držať to všeobecne celkom jednoduché.
Nie? Dobrá.
Je čas pre skutočný programovací jazyk,
a vrátime sa trochu CSS vo forme príkladu.
PHP je vlastne úžasne prístupné jazyk
v tom, že je syntakticky takmer ekvivalentná C.
Inými slovami, ak viete, C, viete, z veľkej časti PHP,
aspoň syntakticky, aj keď tam sú niektoré nové funkcie
a niektoré nové pojmy budeme musieť pozrieť na.
>> Ale pre najviac sa rozdeliť, teraz, keď sme prechod z C do PHP
väčšina nových vecí je skutočne vo veľkom obrázku,
ako použiť jazyk programu na webe ako protichodný k
na príkazovom riadku alebo v riadku bliká ako sme to robili doteraz.
Pre porovnanie, najmä s PSet 7 a záverečnej projektu dopredu,
sa využiť tejto adrese tu, ak chcete, aby si prečítali na formalitách PHP.
Je to vlastne ako bezplatný on-line učebnicu efektívne,
a budete tiež zistíte, že to, čo je naozaj pekné o PHP
je to, že existujú stovky funkcií, ktoré prichádzajú s tým,
vzhľadom k tomu, v C ste nutne mať prístup k
viac funkcií, než bolo v matematickej knižnici, CS50 knižnica.
V PHP a mnoho moderných jazykov, Python a Ruby medzi nimi,
získate prístup k toľkým ďalším funkciám, ktoré znamená, že si písať
oveľa menej kódu, pretože môžete stojí na ramenách iných ľudí
ktorí už bolo napísané určité veci pre vás.
>> Poďme sa rýchlu prehliadku syntax PHP a potom napísať pár príkladov.
Čo je pekné o PHP v prvom rade
je tam to nie je hlavné funkcie.
Ak chcete napísať program v PHP stačí začať písať kód,
a nemusíte sa starať o hlavné.
Nie je int. Tam to nie je návratu.
Nie je ArGV, argc, že ​​je nutné pri písaní programu.
Skôr stačí začať písať kód, a to v časti
pretože PHP je to, čo sa nazýva interpretovaný jazyk.
C bol zostavený, a to bol zostavený v tom zmysle, že začnete
so zdrojovým kódom, spustite ho cez Clang, čo je kompilátor,
a nakoniec po nejakom počte krokov získate objektový kód, 0s a 1s.
PHP a Python a Ruby a Pearl a ďalšie
sú rôzne druhy jazykov, v ktorej nezostavujú je.
Nemusíte ísť od zdrojového kódu na 0s a 1s.
Stačí spustiť zdrojový kód, a spustiť zdrojový kód
písomne ​​v obvyklej textového súboru, končiť. php v tomto prípade
miesto. c, a to, čo program robí na počítači
je to doslova interpretuje svoj kód riadok po riadku po riadku.
>> Inými slovami, skôr ako napísať program a program spustiť
priamo, namiesto toho napísať program s súbor s koncovkou v php.
Potom spustíte vlastný program s názvom php.exe, ak ste na Windows,
alebo len PHP, ak ste na Mac OS alebo Linux,
a poskytujú ako vstup do programu PHP vlastný zdrojový kód,
a jeho účel v živote je čítať kód zhora nadol, zľava doprava,
a to čo ste to povedal, aby robil.
>> Poďme sa pozrieť, čo to bude znamenať syntakticky.
V PHP máme podmienky.
Tento snímok je totožný s tým, čo ste videli späť v týždni 1
pretože syntakticky podmienky, IFS a inde IFS a inde v PHP
vyzerať presne takto.
Pokiaľ ide o booleovských výrazov idú vyzerať presne takto.
Pokiaľ ide o anding veci spoločne ako booleans to bude vyzerať presne takto.
Prepína vyzerajú rovnako, a získate navyše tú výhodu, v PHP
že spínača v C by mohli prejsť iba na char alebo int.
Dalo by sa to prejsť na hodnotu reťazca.
V PHP môžete skutočne výraz
že je premenná, ktorej obsah je reťazec,
a môžete skutočne urobiť nákupný reťazcov v reálnom intuitívnym spôsobom,
nie je ukazovateľ porovnanie, aby bolo možné rozhodnúť, či chcete vec i alebo j, alebo niečo iné.
Uvidíme, že potenciálne onedlho.
>> Slučky príliš nádherne, sú rovnaké.
Pre slučky majú inicializácii, čo je podmienka, a určitý počet aktualizácií.
Kým slučky tiež existujú v PHP.
Do while tiež existujú v PHP,
a polia existujú v PHP, ale tu je miesto, kde syntax začína byť trochu iný,
ale tieto pojmy sú rovnaké, a pojmy sú naozaj rovnaké
ako tomu bolo v týždni 0 sa Scratch.
V prvom rade je $ sign.
To bol návrh rozhodnutia v PHP podľa ktorého všetky premenné
v PHP design začína znakom $.
Nie je viac X, Y, Z. Teraz je $ X, Y $, $ Z len preto, že.
Je to niečo, čo mať na pamäti, a teraz na pravej strane
to vyzerá podobne ako pole,
ale my sme sa pomocou hranatých zátvoriek tu.
V PHP a JavaScriptu, ako budeme nakoniec vidieť,
deklarovať pole, ktoré robiť otvorenú hranatou zátvorku a zavrel hranatú zátvorku,
a potom máte čiarkou oddelený zoznam hodnôt, či už ints
alebo reťazca alebo písmen, čo chcete, v tejto výrazu tam.
>> Teraz, ako sme niečo také v C?
Čo bolo syntaxe pre staticky deklarovať pole známych čísel?
To bolo zložené zátvorky, tak malý rozdiel tu, ale v oboch PHP
a nakoniec JavaScript, iba využíva hranaté zátvorky, takže naozaj
jediný zaujímavý detail je tu $ znak pre názov premennej
a tiež hranaté zátvorky, a tam je jedna čudná vec
, Ktorá bola vynechaná aj na ľavej strane znak =.
Čo chýba, že sme sa vyžaduje niekoľko týždňov? Jo.
[Nepočuteľné Študent odpoveď]
Veľkosť, takže žiadna zmienka o veľkosť poľa.
Úprimne povedané, neexistuje žiadna zmienka o hranatých zátvorkách na ľavej strane
označenie =, a čo iného chýba z linky?
Jo. >> [Nepočuteľné Študent odpoveď]
Typ, takže to, čo je zaujímavé najmä o PHP
je to, že sa nejedná o silne typový jazyk ako C,
a že je silne zadali v tom zmysle, že je potrebné povedať char,
musíte povedať int, musíte povedať float.
>> Kedykoľvek budete chcieť premennú musíš povedať rinčať čo jeho typ.
PHP je trochu lenivejší.
Je to voľne zadali v tom zmysle, že
môžete mať plaváky a pripaľuje a reťazce
a ints a tak ďalej, ale jazyk sám
naozaj nie je jedno, čo si dať dovnútra premenné.
Nemusíte informovať v predstihu, čo dátový typ
sa deje v premennej.
Je to úplne na vás, tak to je pekný
v tom, že nemusíte mať strach, ako moc o údaje písanie
a obáv, aké sú vaše argumenty sú, a tak ďalej.
To tiež znamená, prípadne funkcie v PHP sa bude môcť vrátiť
buď int väčšinu času, a možno raz za čas
sa vrátim bool, a false, napríklad znamenať, že sa niečo pokazilo.
To nám dáva nejaké upsides, ale tiež nám umožní druh zámerné
trochu lenivejší, pokiaľ ide o dátové písaní.
>> Čo iného je tam mať na pamäti, tu?
Premenné vyzerajú celkom páči, takže $ s = "hello, world."
To je snáď inferable z predchádzajúceho príkladu,
a máme iný typ slučky.
Tento budeme skutočne vidieť raz za čas, pretože je to celkom šikovný,
foreach konštrukcie.
V tomto prípade, je slučka foreach sa vnútri svojich slov zátvorke 3 typicky,
$ Niečo prvý, čo je to, čo pole chceš iterácii členmi,
potom doslova kľúčové slovo ako, a potom konečne,
ďalšie premenné meno, ktoré dostanete na výber.
To môže byť foo, bar, alebo prvok,
a čo tento konštrukt robí
ak je $ pole obsahuje 10 prvkov
na každej iterácii tohto poľa-ľúto, na každej iterácii tohto cyklu
premenná nazýva prvok bude aktualizovaný
byť prvý element v poli, potom druhý prvok v poli,
potom tretí prvok poľa, a tým odstraňuje potrebu
robiť niečo otravného hranatá zátvorka notáciu a
$ I, aby sa index do poľa.
PHP robí všetky, ktoré pracujú pre vás a na každej iterácii
Len podá vám ďalší prvok z poľa
bez toho aby ste museli poznať alebo sa starať o jeho číselné umiestnenie indexu.
>> A potom konečne, pre teraz, je tu ešte jedna ďalšie rys PHP
že to bude veľmi užitočné, najmä keď sme sa začať s programovaním na webe,
a to je známe ako asociatívne pole.
V pole, ktoré poznáme, teda pokiaľ ide o 20 sekúnd pred
a za posledných 8 týždňov sú číselne indexované pole,
druh tradičných polí, kde indexy sú ints,
0, 1, 2, úplne hore.
Asociatívne polia sú oveľa silnejšie.
Tie vám umožní mať ľubovoľné klávesy,
ľubovoľné indexy a ľubovoľné hodnoty.
Zatiaľ čo v tradičnom pole je 0, 1, 2,
v asociatívnym poli môžete mať index
alebo kľúč foo, ktorých hodnota je bar.
Potom môžete mať iný kľúč, ktorého meno je baz a ktorých hodnota je qux.
>> Opäť platí, že hlúpe počítačovej vedy druhové názvy premenných tu,
ale ide o to, že tieto polia nemá držiak 0 alebo konzolou 1.
Je to miesto bude mať držiaku foo a konzoly Baz.
To je oveľa viac univerzálny v tom, že budeme mať možnosť spojiť
slová s inými slovami, kľúče s hodnotami úplne svojvoľne,
a budeme mať možnosť získať tieto hodnoty späť v konštantnom čase
pretože pod pokrievku toho, čo asociatívne pole
naozaj je hash tabuľka.
Pripomeňme, že hash tabuľky umožňuje, aby v niektorých vstupov
ako dal v slove Davida, ak chcete vložiť Davida do nejakého slovníka,
a potom sa vrátiť nejakú hodnotu obvykle.
V prípade Speller, true alebo false.
David alebo čokoľvek slovo alebo nie je v slovníku.
Asociatívne pole je naozaj len hash tabuľky,
ale je to oveľa viac užívateľsky prívetivé stelesnenie toho.
Ako uvidíme, bude to, ktoré nám umožní robiť niektoré veci
veľmi, veľmi ľahko.
>> Poďme sa pozrieť na nejaké základné PHP
Príklady a uvidíme, čo môžeme urobiť s týmto jazykom.
Nechaj ma ísť napred a otvoriť v našom zdrojovom adresári dnes
súbor s názvom hello1.php.
Tento súbor je ďalší komentár, než je skutočný kód,
tak nech mi skutočne odstrániť všetky pripomienky zo súboru
a predloží vám možno najjednoduchšie PHP programu tu.
5 riadkov, a niektoré z nich sú prázdne miesto,
takže zaznamenáte niektoré kľúčové rozdiely tu.
Súbor sa volá hello1.php.
Prvý riadok, keď je <? Php.
Podobný v duchu do HTML,
že postupnosť znakov povie počítači
"Hej, počítač, tu je program sme v PHP."
To je istý, že to nie je zmätený, že je to nejaký iný jazyk.
Linka 2 je zaujímavý biely priestor.
Linka 3 je náš starý priateľ printf,
tentoraz v súvislosti s PHP.
PHP má vlastnú verziu printf, ktorá sa chová úplne rovnako,
takže je to len bude tlačiť "Hello, world".
A potom to opak tag tu,>, znamená to, že je to pre moje PHP kódu.
>> Poďme sa pozrieť, ako spustiť tento.
Chystám sa vrátiť do svojho terminálovom okne tu.
Chystám sa ísť do môjho PHP adresára.
Všimnite si, že máme veľa súborov, prvý z ktorých jeden je hello.php.
Nechaj ma ísť napred a spustiť tento, hello1.php, zadajte.
Prístup zamietnutý. Dobre.
Ako sme pevne veci, ako je tento v minulosti?
Čo je to? >> [Nepočuteľné Študent odpoveď]
Potrebujeme čítať a písať, ale nechaj ma to urobiť ls-l.
Označiť túto trochu záhadný výstup podľa ktorého hello1
Zdá sa, že čítať a zapisovať mne
ale čitateľné všetkými ostatnými.
Ukázalo sa, že to v skutočnosti nie je krok správnym smerom.
Rozdiel, opäť s interpretovaný jazyk
sa nemusíte spúšťať program priamo.
By ste namiesto toho použiť tlmočníka a odovzdať ho kódu
že ste napísali tak to môže interpretovať je riadok po riadku.
V tomto prípade, tlmočníka alebo program, ktorý som v skutočnosti chcete spustiť
je doslova nazýva PHP.
>> Niekde na tomto disku spotrebiča je program,
niekto iný napísal len PHP alebo Windows php.exe.
Čo budem robiť, je tu budem skutočne spustiť PHP
ale dať to ako argument príkazového riadku kódu, ktorý som napísal,
a potom budem oddialiť a stlačte klávesu Enter.
To beží môj program mi, zhora nadol, zľava doprava.
Nechaj ma ísť napred a otvoriť mierny rozptyl tohto.
V hello2.php oznámenia, že to taky
je väčšinou pripomienky, tak mi dovoľte zbaviť tých ako rozptýlenie,
a to, čo je jasne odlišné teraz o tomto súbore?
Tam je to nová rada, trochu tajomná hore.
V riadku 1 je #! / Bin / php.
Bin je dohovor o Linuxe a Mac OS pre binárne súbory,
tak / bin znamená, že tento je zložka obsahujúca veľa binárek
, Ktorý je naprogramovaný, z ktorých jedna je PHP.
#! je přezdíval shebang,
ktorý je rýchly spôsob, ako to povedať, a čo to znamená
je, že pri spustení tohto programu teraz tam náznak v hornej časti súboru
, Ktorá hovorí počítaču, čo interpret použiť.
>> To je trochu nepríjemné, ak ste mali povedať svojim užívateľom a vaše zákazníkov
"Hej, my napísal tento program s názvom hello1.php."
Jediné, čo musíte urobiť, je navždy spustiť PHP a potom názov tohto programu.
Úprimne povedané, bolo by to jednoducho byť krajšie spustiť hello1.php,
a skutočne, ak môžeme vykonať nasledovné kroky.
Nechaj ma ísť ďalej a robiť ls-l, a všimnite si, v hello2 je to stále len čítať písať
a potom si prečítajte čítať, tak som si ešte urobiť, hello2.php.
Ale sme zaviedli to niekedy tak krátko minule, príkaz chmod.
Ak som to chmod a + x, čo znamená, že všetky Plus vykonateľnosti,
a potom hello2.php a potom sa ls-l opäť všimnúť, čo sa zmenilo.
Jeden, Linux je mi ukázal názov súboru v zelenej vysvetliť myšlienku,
že je to spustiteľný, ale ešte dôležitejšie je, na ľavej strane
Všimnite si, že trochu representing x pre spustiteľný súbor je teraz nastavená.
Čo to teraz znamená, môžem bežať ./hello2.php ako zvyčajne,
stlačte Enter, a to z dôvodu shebang na veľmi začiatok súboru
to je náznak, znovu, Linux, ktorá hovorí,
použiť tento interpret spustiť tento súbor.
Nerobte si starosti nútiť užívateľa skutočne písať.
>> A čo je pekné teraz je to tak trochu irelevantné pre moje zákazníkov alebo moji priatelia
aký jazyk som napísal tento program, takže môžem pokračovať s MV
a premenovať vec hello2, napríklad.
A teraz keď to urobím ./hello2
a oddialiť môj program beží.
Tieto prípony súborov sú ľudské konvencie, ktorá je nevyhnutná
niečo ako Clang a robiť, ktorí hľadajú pre ne.
Ale pre PHP, mohol by som zavolať túto príponu, čo chcem.
Mohol by som prinútiť svet, aby si mysleli, že som naozaj dobrý Ruby,
a ja som mohol písať hello2.rb a potom spustiť to,
a voila, teraz mám verziu Ruby, ktorá je úplná lož.
Ale prípony súborov sú bezvýznamné
v prípade, že je súbor spustiteľný a má tento špeciálny náznak v hornej časti súboru.
>> Teraz, rovnako ako stranou, dovoľte mi ukázať vám rýchlo verzia 3,
ktorá je trochu užitočný trik vedieť.
V hello3 som niečo trochu zle
že budem aktualizovať zdrojový kód online.
Vo verzii 3 sa ukáže, že na väčšine linuxových počítačov
je tu program s názvom env pre životné prostredie,
a čo môžete urobiť je, ak máte tušenie, kde PHP
je nainštalovaný na lokálnom pevnom disku, pretože to naozaj môže líšiť v závislosti na počítači
že niekto používa, env len hovorí, spustiť env,
ktorý je na väčšine systémov, a zistiť, kde je PHP.
Len bežný trik, takže nemusíte mať strach o to zistiť, kde je program.
Ale ak si pozor, aby zistili, kde je program a vy ste nestaral tak ďaleko
môžete použiť príkaz, ktorý.
>> Dovoľte mi, aby som oddialiť a typ, ktorý php,
a všimnite si, že mi hovorí, že je to vlastne v usr / bin / php.
Je to trochu lož. Je to tiež v priehradke.
Je to jednoducho ukazuje mi prvý hit.
Ak ste sa niekedy nad tým, kde je zvonenie, ktoré zvonenie, to je v usr / bin / rinčať,
ktoré tvoria, usr / bin / make, a čo to znamená je po celú tú dobu
ste mohli byť písanie usr / bin / rinčať zadajte spustiť rinčať,
ale je to docela únavné k tomu, že, takže niektoré zložky
ako usr / bin a bin sú považované za východiskový
takže počítač vie, hľadať v nich pre vás.
Akékoľvek otázky týkajúce sa písania super, super jednoduchý Hello World program
v PHP a necháte ho?
Vzhľadom k tomu, teraz začneme zavádzať presvedčivý syntax.
Dobre, ideme na to.
Tieto programy sme videli skutočne všetky z nich pred.
>> Ak som otvoriť, napríklad, poďme urobiť beer1.php,
nepôjdeme cez niekoľko verzií, ale to, čo som urobil
bol som si sadol a nalial, alebo previesť
môj C kód PHP kód tu.
Väčšina z hornej časti súboru je komentáre nahor.
Ukázalo sa, že je tu ešte jedna nová funkcia musíme nazýva readline.
GetString, stiahnutie, z týždeň 0 vpred bol CS50 vec.
PHP prichádza s vlastnou užívateľsky príjemný funkciu nazvanú readline
že trvá 1 argument, ktorý určuje riadku
ktoré chcete zobraziť na užívateľa, a to, čo robí readline
je vráti bez ohľadu užívateľ zadá v
V tomto prípade, som deklarovaní premennej s názvom $ n
Som skladovanie v ňom návratovú hodnotu readline
po výzve užívateľa s týmto reťazcom.
Len pre zálohovanie, skutočne spustiť túto vec, nechaj ma ísť napred
a spustiť php beer1.php.
Koľko fliaš bude? Urobme 2 tentoraz.
Enter. To je všetko.
>> Program je funkčne zhodný s verziou C od týždne.
Ale syntakticky poďme pozrieť, čo je odlišné.
Potom, čo som si int z užívateľského oznámenia, že robím nejakú kontrolu chýb,
a ak je n menšie ako 1 som prestal a ja vytlačiť
Ospravedlňujem správa pre užívateľa a výstup s 1.
Aj to je trochu iný.
V C čo sme urobili? V jazyku C sme sa vrátili 1.
V PHP môžete ukončiť, 1, ktoré úprimne povedané je myslím trochu viac intuitívne
preto, že ste doslova ukončenia programu.
Dobre, a potom sem otravné pieseň je totožný syntakticky
okrem premenné, takže sa tu v súlade 24 vpred
všimnete moju dušu pre sláčiky je takmer rovnaký,
ale mám $ pred i a n,
a čo je tiež chýba z riadku 26, ktoré sme mali v minulosti
pri deklarovaní premennej i?
Tam je žiadny typ.
Je nesprávne v PHP povedať int.
Vy proste musíte urobiť, že.
Počítač, interpret PHP je dosť šikovný na to, aby si uvedomiť,
že ak vložíte číslo $ I to bude liečiť
ako číslo pre vás.
A potom sa tu pripojiť $ i, $ i, $ i - 1.
To všetko je rovnaké, a potom tu dole budeme robiť "Wow, to je nepríjemné" printf
a potom ukončite (0).
>> Opäť, stánok s jedlom je, že aj keď budeme tráviť pomerne
málo času na PHP, určite versus to, čo sme urobili na C,
je to skoro rovnaké, a tak to, čo budeme dnes robiť a budúci týždeň
a ďalej je zameraná naozaj na niektoré z nových myšlienok.
Len vidieť, že jedna vec sa preložiť cez od C,
to bolo super jednoduchý program, ktorý sme robili v 1. týždňa
alebo 2, ktoré kocky hodnotu.
Ale čo bolo zaujímavé, v čase, keď o tomto programe je to, že
zaviedol aj pojem vlastné písomného funkcie, ktorú sme sami napísali.
Syntax v PHP je takmer rovnaký.
Tu je môj program do hornej.
Všimnite si opäť chýba, je nejaké poňatie o hlavné.
Aj začať písať kód, a to je to, čo sa deje, aby si vykonaný tlmočníka.
Aj vytlačiť x je teraz 2, pravdepodobne.
Potom som tvrdiť, Cubing ...
Potom som volať kocky funkcie a odovzdať $ x
a priradiť návratovú hodnotu $ x.
Potom som tvrdiť, že je to kocky, a potom som povedal to, ktoré snáď
bude hovoriť x je teraz 8.
Syntax pre funkciu v PHP je niekedy tak trochu inak.
Opäť chýba, je návratový typ.
Opäť chýba, je návratový typ a tiež chýba, je to, čo iný typ?
[Nepočuteľné Študent odpoveď]
No, jo, to je dobrý. Vráťme sa k tomu v druhom.
>> Nemáme napríklad int tu.
Nechceme, napríklad, že int tu preto, opäť v PHP
jednoducho nemusíte, a to nemal robiť, že,
ale tam je to nové kľúčové slovo volané funkcie.
V PHP je to skoro trochu jasnejšie, pretože ak chcete funkciu
ste doslova povedal funkciu, dáte mu meno a potom čiarkami oddelený zoznam
ak niektorý z jej argumentov.
Nie je potrebné hovoriť, neplatné alebo niečo podobné, že, a potom návrat je rovnaký,
$ * $ * $.
Čo je tiež chýba? Sammy upozornil tento tu.
V hornej časti súboru úplne chýba v PHP je tiež prototyp.
Aj to je zámerné.
Jazyky a tlmočníci, ako PHP sú múdrejší ako C kedy bol
v kompilátory ako Clang.
>> Pripomeňme, že zvoniť, ak ste nepovedal to, že kocku existuje,
ak ste si povedať, že printf existuje ako s prototypom
alebo # include, dobre, to bude revať na vás a ani kompiláciu kódu.
PHP a ďalšie moderné jazyky sú oveľa múdrejší, keď príde na toto.
Budú mať to na sebe prečítať všetky vaše kódu
a potom kričať na vás iba vtedy, ak zistí, že kocky nikde.
Nezáleží na tom, či je kocka na dne alebo hornej, alebo dokonca v niektorých samostatnom súbore.
PHP a podobné jazyky sú teraz dosť bystrí na to dívať dopredu
na všetko, čo pred považovali vás ako mať urobil chybu.
Ak nám teda zostáva?
>> Poďme urobiť posledný príklad tu v podmienkach,
a keď som otvoriť conditions2.php oznámenia príliš
Syntax je tu takmer rovnaký.
Ja používam readline miesto GetString, ale že linka je rovnaká ako predtým,
"Rád by som číslo prosím."
Potom som mať, ak podmienku, else if, a potom iný,
ale funkčne je tento program tiež totožné s tým, čo sme robili pred niekoľkými týždňami,
takže keď som spustiť túto vec, PHP conditions2,
a dám mu číslo ako 23 -
Vybral som si kladné číslo. Ak dám, že -1 Vybral som si záporné číslo.
Ak dám, že som naozaj vybral 0 0.
Takže kto sa zaujíma o všetko?
No, jeden z legrace druhu cvičenia tu
aspoň pre mňa bolo vrátiť sa späť a uvidíte, ako rýchlo by som mohol implementovať PSet 5,
pravopisné chyby Pset.
Pripomeňme si, že tam bol tento súbor s názvom speller.c,
a tam bol súbor s názvom dictionary.c.
Čo som urobil, bolo mi trochu strávil niekoľko minút a ja som konvertoval kód C
ku kódu PHP, a nebudeme tráviť toľko času na Speller
pretože rovnako ako v PSet 5 ste naozaj potrebujete
trávia veľa času na Speller sám, pretože vaša pozornosť bola na slovníku.
>> Postačí, keď poviem, že ak budete čítať cez Speller,
tento súbor tu, je to celkom veľa zodpovedá kódu C
sme vám dali za PSet 5.
Práve som pridal nejaké $ miestach.
Zmenil som niektoré názvy funkcií v prípade, že neexistovala v PHP.
Je tu ešte jedna ďalšia vec tu, preg_match,
čo je trochu obsiahlejší spôsob, ako robiť niečo, ale vrátime k tomu nakoniec.
Ale v skratke, pravopisu je takmer totožné, a keď sa pozriete na samom dne
to, čo sa nakoniec vypľuje je to tu,
slová nesprávne, slová v slovách slovníka, v texte.
Dobre, takže to, čo je zaujímavé, teraz je nasledujúci.
V hornej časti môjho súboru som vyžadujúce dictionary.php.
Rovnako ako C je # include PHP má špeciálnu funkciu nazvanú vyžadujú
že skoro robí to isté, vyžadujú súbor s názvom dictionary.php.
Ako môžem ísť o implementácii PSet 5?
Nechaj ma ísť ďalej a otvoriť súbor tu.
Dovoľte mi, aby som trochu odkaz tu.
A dovoľte mi vytvoriť nový súbor a spustite volaním tejto dictionary.php.
Dovoľte mi, aby som dal ho do inej zložky, takže môžeme urobiť žiť.
A teraz budem Zoom
Chystám sa začať môj PHP súbor s otvoreným držiakom php uzavretý držiak.
A potom tu bolo niekoľko funkcií, ktoré som potreboval na vykonanie pre PSet 5,
tak mi dovoľte začať vykonávať niektoré z tých,
tak kontrola funkcie, ktorý mal vziať slovo ako argument.
Urobíme to a vrátiť sa k nemu za chvíľu.
>> Tam bol zaťaženia pre funkciu, ktorá sa v čom ako argument?
Slovník, takže súbor, ktorý som vlastne chcel načítať.
Tam bol funkcia veľkosti, ktorá neprijala žiadne argumenty
a tam bol na funkciu, čo bola tá druhá?
Uvoľniť, ktorá neprijala žiadne argumenty ani.
Jedná sa o 4 funkcie, ktoré by som napríklad teraz realizovať v PHP,
a to, čo budem robiť, je pokračovať a urobiť to.
Mnoho z vás používa hash tabuľku v PSet 5,
tak nechajte ma ísť dopredu a vytvoriť hash tabuľku v PHP.
Hotovo.
To mi dáva hash tabuľky. No, prečo?
Jeden je premenná s názvom $ table, len vykúzliť predstavu hash tabuľky.
Hranaté zátvorky, aj keď, spomínam, predstavujú čo?
Pole, ale v poliach PHP nemusí byť číselne indexované.
Oni môžu tiež byť asociatívne pole,
čo znamená, že môžete mať ľubovoľné kľúče a hodnoty.
>> Rovnako ako v PSet 5, tí z vás, kto to urobil hash tabuľky implementácie
pravdepodobne znie slovo a potom ju vložil do reťazca prepojených zoznamov,
alebo ste uložili hodnotu pravého kdesi niečo v tom zmysle.
Môžete nejako spomenul na skutočnosť, že slovo tam bol.
Pre túto chvíľu, že to bude môj hash tabuľka,
a tak teraz ísť o vykonávaní kontrolnej funkcii
Aj stačí sa pozrieť dovnútra tohto hash tabuľky
a uvidíme, či slovo je tam.
Čo budem robiť, je, že poviem ak,
povedzme isset, čo je PHP funkcia, ktorá doslova znamená, kľúčov,
tak isset ($ tabuľka [$ slovo],
a ak áno, vráti hodnotu true.
To je všetko. To je Pset 5 v PHP.
No, v spravodlivosť, v poriadku.
Else vráti false, tak to tam nie je.
Čo sa naozaj deje?
No, ak tabuľka alebo hash table tu všeobecne-
je asociatívne pole, ktoré znamená, že môžete index do neho
so slovom ako "slovo", a budete musieť vrátiť nejakú hodnotu.
>> Sme trochu dostať o krok napred pred seba.
To by bolo celkom pekné, keby sme skutočne načítaný súbor najprv,
takže zaťaženie nie je tak jednoduché, ale nechajte ma ísť dopredu a vybičovať
Naozaj rýchla implementácia zaťaženie.
Nechaj ma ísť ďalej a povedať, slová, dostane súbor slovník.
Súbor funkcie v PHP otvorí súbor
a vráti sa do teba poľa všetkých slov v tomto súbore,
Len podá je na vás.
To bola veľká bolesť taky, nie?
Teraz foreach, toto je náš nový konštrukt, foreach ($ slová ako $ slovo).
Táto slučka sa začnú iterácie sa pole slová
a priradiť k $ slovo premenné každé slovo v súbore
od prvého do druhého na tretie až štvrté celú cestu
takže nemám robiť nepríjemné [i] notáciu a podobne.
A to, čo som jednoducho robiť pre každú z týchto slov
je uložte ho vo svojom tabuľke indexovanie do tabuľky
a potom robí pravda, pretože si pamätať
že slovo je v mojom slovníku, všetko čo naozaj musíte urobiť,
je druh otočiť a trochu hovoria, že toto slovo v mojom hašovacia tabuľke je tam, pravda.
A pokiaľ to tam nie je, nemám explicitne dať false,
inak by som musel dať false vo všetkých možných slov vo vesmíre.
>> To stačí, ma len nastaviť hodnoty indexu
ako pravdivé, ak slovo je vlastne v mojom tabuľky hash.
Teraz som rezanie pár zákrut sem, že budem mávať rukami na teraz,
ale teraz zaťaženie funkcia je hotovo.
Aj načítať všetky slová zo súboru do poľa.
Aj iterácii tohto poľa, a pre každé slovo v poli
Aj zapojte ho do hash tabuľky s 1 riadok kódu.
To je legrace. Viete, ako môžeme realizovať veľkosť teraz?
No, veľkosť je vždy celkom jednoduché, v spravodlivosť.
Tu sa môžeme jednoducho vrátiť počet tabuľky.
To je celkom jednoduché aj spočítať počet vecí v tabuľke.
To je vlastne celkom nie je najúčinnejší.
Asi by som mala mať premennú s názvom veľkosti, takže môžeme urobiť
v konštantnom čase, ale to je celkom jednoduché.
Oh, a potom uvoľnite, ak skutočne chceme byť análny tu
môžeme povedať, že to, ako sa uvoľniť niečo.
Stačí nastaviť premennú rovnajúca sa prázdne pole,
a zbaví všetkého, čo tam bol.
Nie je potrebné volať zadarmo.
>> Opäť, som odrezala niektoré rohy, a ospravedlňujeme sa za sadu problém prideľovanie 5
snáď v C, ale ak teraz pokračovať a spustiť to,
Chystám sa skutočne spustiť verziu, ktorá som napísal v predstihu
len preto, že som nemal žiadne syntaktické chyby vôbec.
Nechaj ma ísť napred a spustiť pravopisu. Použitie je rovnaké.
Tu je slovník súbor, ktorý nájdete len slovo foo.
Tu je textový súbor, ktorý nájdete len foo bar.
Poďme kontrolu pravopisu tento, tak pravopisu, pomocou tohto slovníka súbor na tomto textovom súbore.
Je tu ešte jedna chybne napísané slovo, bar, a voila.
Hotovo s PSet 5.
Poďme sa 5-minút prestávku tu, a vrátime sa a viac na PHP.
Dobre, sme späť.
Poďme si-ma nenávidia za chvíľu.
Poďme sa teraz skutočne uvidíme, či to nie je pozitívny
skutočne vykonáva túto vec v PHP.
Dajme tomu, že trvalo 45 sekúnd na prevedenie.
>> Ale poďme pokračovať teraz beží veci.
Nechaj ma ísť napred a spustiť verzii C
z Speller, a budeme ho spustiť na jednom z najväčších súborov,
ktorý je King James Biblie.
A to je tu v-poďme do nášho adresára C,
Speller na kráľa Jakuba 5th.
Mnoho slovami s chybným.
Dobre, tak to je výstup, ktorý pravdepodobne dostal, aj keď časy sa trochu líši,
ak máš všetko funguje správne, a tak čas v celkovej kontrolu pravopisu
Kráľ James Biblie bol 0,38 sekundy, takže celkom dobrá použitie tejto implementácie.
Teraz ma nechaj ísť do verzie PHP, ktoré sme práve napísali.
Dovoľte mi, aby som spustiť pravopisu na kráľa Jakuba.
Jejda, ignorovať túto chybu. Som v zlom adresári.
Speller na kráľa Jakuba 5th.
Takmer hotovo.
>> Dobre, bude prešibaný pozorovateľ si uvedomiť, že je viac ako 3 sekundy tam.
To je pravda, doba chodu.
Ukazuje sa, že to chvíľu trvá, pľuvať veľa textu z
pretože ukladanie do vyrovnávacej pamäte problémy, ale dlhý príbeh krátky,
to bolo 3,15 sekúnd strojového času, CPU času,
versus to, čo bolo pred chvíľou?
Ako 0.3.
Myslím, že je to o poriadok pomalší, tak kde je to
smiešne spomalenie prichádza?
No, ako to bolo v prípade s väčšinou všetkých konštrukčné rozhodnutí, ktoré sme urobili
v triede počas posledných 9 týždňov je to takmer vždy to kompromis.
Niekedy medzi len priestorom, niekedy medzi priestorom a časom,
priestor, čas a vývoj úsilie, a naozaj tu, aj keď
sme uložili obrovské množstvo času, možno potenciálne 10-20-30 hodín
rozvojovej času vykonáva kontrolu pravopisu
od bičovanie ju v pouhých 45 sekúnd s týmto jazykom
cenou, ktorú platíme, je, že je to o poriadok pomalší v dôsledku,
a to je zvyčajne prípad s väčšinou všetkých interpretovaný jazyk,
PHP, Python, Ruby, Pearl alebo iné rámci ktorého
ak sa chystáte spustiť prostredníctvom tlmočníka a mať to čítať kód
riadok po riadku, zhora nadol, zľava doprava,
že sprostredkovateľ bude nejaký čas trvať jeho vlastné,
a to, čo ste cítili tú v 3 sekundách, na rozdiel od 0,3 sekundy
je skutočnosť, že je tento prostredníka, ktorý má na doslova interpretovať náš kód
riadok po riadku, a nedaj bože, ak ste vo vnútri slučky
s veľkým súborom obsahujúcim stovky tisíc slov.
>> To réžia sa chystá sčítať a sčítajú a sčítajú a sčítajú.
Pre nástroj, ako je tento, že to asi nie je najlepší jazyk použiť pre realizáciu
spell checker, ak bezprostrednosti je v záujme užívateľov a pre vás.
Ale luxus máme za chvíľu je, ak
používať jazyk ako PHP alebo veľa interpretovaných jazykov
v súvislosti s Web, v tomto prípade, máte výhodu
že internet je oveľa pomalší ako väčšina počítačov.
Máte GHz CPU v počítači, 2 GHz, možno dokonca viac v týchto dňoch.
Ale realita je na internete je vysoká čiastka latencie
pričom pre prehliadač hovoriť na serveri, aj keď sme to videli minulý týždeň
, Že je to celkom rýchlo, polovica milisekundu alebo tak,
to taky pridáva do, a ak ste sťahovanie veci ako obraz
alebo fotografie Facebook alebo získanie okamžitých správ cez klábosení Facebook,
Gchat alebo podobne, všetky tieto spiatočné časy
medzi prehliadačom a serverom začiatkom pridať až,
ktorý robí vaše konkrétne výber jazyka v mnohých prípadoch
nie všetci, že relevantné, tak si v pohode pomocou mierne pomalší jazyk
ako PHP alebo Python alebo Ruby
ale pre ktoré existujú obrovské upsides pre vás a vaše kolegami
a vaši priatelia, pretože môžete realizovať veci tak, tak oveľa rýchlejšie.
A navyše, máte oveľa menšie riziko určitých bezpečnostných nedostatkov.
Je tu žiadne ukazovatele v PHP.
Nie sú tu žiadne SEG poruchy, ktoré možno ľahko vyvolať
rovnakým spôsobom by ste mohli v C.
S C si veľmi blízko k hardvéru.
S PHP a podobných jazykoch ste trochu vyššej úrovni, aby som tak povedal,
s mnohými obrany medzi vami a tým, čo sa vlastne deje
vnútri stroja, a je to len kompromis.
>> Sme sa dostali do bodu, mať tieto modernejšie, jazyky vysokej úrovne
ako PHP, pretože z poučenie v jazykoch, ako je PHP v C.
Ale ak nechcete pochopiť, čo sa deje na pod pokrievku celú dobu
určite nemôže robiť správne rozhodnutia dizajnu,
a určite, ak ide o prácu v mieste, ako je Facebook alebo Google
alebo niektoré z týchto miest, ktoré sú stále hrá s veľkými dát
aj keď idete späť a to medik a pracuje s nejakou MD
na niektorých veľkých súboru dát, ktorá zahŕňala pacientov a lekárov
a ako tie správne nástroje je veľmi presvedčivý
pretože inak vaše analýza nejakého dátového súboru môže trvať sekúnd,
alebo to môže doslova trvať hodiny.
To je len jeden príklad, nie brániť vás s tým, ako oveľa viac úsilia
to bolo v C, ale ktoré vám pomôžu uvedomiť, že keď sa implementovať niečo v C
naozaj rozumiete, alebo teoreticky, naozaj pochopiť,
ako všetko je alebo by malo byť pracovať, a máte takmer plnú kontrolu
nad tým, čo sa deje pod kapotou, a s týmito jazykoch vyššej úrovne
budete musieť vzdať väčšiu kontrolu k ľuďom, ktorí vymysleli je
a sú predmetom viac ich konštrukčných rozhodnutie ako tá vaša.
Ale ak berieme za samozrejmé, že výkon
nie je tak dôležité, na webe, pretože z týchto ďalších otázok,
len sieťové rýchlosti sú trochu pomalšie, ako CPU rýchlosti tak,
takže môžeme nejako dovoliť, mierne pomalší jazyk
ak upsides sme sa môže vyvinúť veci 10 krát rýchlejší, alebo dokonca viac.
>> Poďme sa pozrieť, ako sa môžeme začať používať to.
Nechaj ma ísť do priečinka
medzi dnešnými príklady tzv frosh.ims,
a to bolo skutočne osobne motivovaní tým, že prvá vec
Som napísal pre web rokmi po nástupe CS50 CS51 a
bol web pre program Frosh Chatu, prvák sálový šport,
ktorý v tej dobe to bolo dosť rokmi, že v tej dobe
tam bol žiadne webové stránky pre program, aj keď tam bol Web,
a namiesto toho tam bol proctor v Wigglesworth pričom ak by ste chceli
k registrácii pre volejbal alebo futbal alebo čo by ste vyplniť kus papiera.
Tie by potom pešo cez dvor.
Tie by potom zaklopať na dvere a šmykľavka v ich dverách alebo ručne do Proctor
kus papiera s vaším menom na to, či chcete alebo nechcete, aby sa kapitán tímu,
Aký šport ste chcel robiť, a čo koľaji si bol palcov
Bolo to trochu starej školy spôsobom, ako robiť veci, a to bolo hlavným
možnosť automatizovať mnoho tohto procesu.
Stačí prejsť na webových stránkach. Tie niečo písať a
Tu získate e-mailom potvrdenie, a bum, máte hotovo.
>> To bol úplne prvá vec, ktorú som urobil, keď v jazyku s názvom Pearl,
ale je to relatívne jednoduché urobiť v PHP, a to je trochu zástupca
z problémov, môžete začať riešiť, keď sa môžete vyjadriť
programovo a nemusí spoliehať na veci, ako stránkach Google
alebo Excel alebo nástroje, ktoré budú odovzdané na vás.
Vy teraz máte možnosť robiť veci, ako je tento.
To je super škaredý verzia forme,
ale poďme použite ho na začiatku rozhovoru, kedy je to
zhruba to, čo vyzeralo ako forma rokmi pre nás
k tomu, aby ľudia na webe sa prihlásiť k Frosh PI.
Opýtali sme sa na meno, zaškrtávacie políčko za to, či alebo nie oni chceli byť kapitánom,
muž alebo žena, a potom to, čo koľaji boli v,
a potom by odoslať tento formulár.
Pozrime sa najprv pozrieť pod kapotu na kóde HTML, ktorý reprezentuje túto webovú stránku.
Nechaj ma ísť do froshims0,
a ako stranou, pre PSet 7 beriem ako samozrejmosť
adresáre a zložky, ktoré dávam veci dovnútra
Budeme vás prevedie presne tam, kde veci musia ísť do spotrebiča,
ktorý mod príkazy budete musieť spustiť, takže sa nemusíte starať o všetky
hlúpe detaily synchronizácia od samého začiatku tu.
>> Dobre, tu je froshims0.php.
Dovoľte mi, aby som prejdite nadol, a to, čo je zvedavý tu,
to je PHP súbor, ale to, čo je vo vnútri nej, jasne?
Je to oveľa HTML, a naozaj, pôvod PHP
boli naozaj za to, že Web-centric jazyk.
Pred chvíľou sme ju k implementácii pivo príklad,
podmienky príklad, ahoj príklad, a to je v poriadku.
Môžete použiť PHP ako skriptovací jazyk
kde je skript naozaj len nomenklatúru k rýchlemu a špinavé programu
alebo niečo, čo píšete v napísanom alebo všeobecnejšie interpretovaný jazyk.
PHP je super užitočná pre, pretože ste videli, ako rýchlo
pomerne môžeme vybičovať programy v PHP.
Ale to bolo skutočne určené na použitie pre web,
a určené pre Web v tom zmysle, že sa tu všimnúť v hornej časti súboru
Ja začať s <? Php.
Potom mám veľa zbytočných komentárov, udelených, ale potom som blízko PHP režim.
Ale potom som spadnúť do režimu HTML.
>> Čo je na tom zaujímavé PHP je, aj keď súbor končí. Php
to je všeobecne určený pre zmiešaných s HTML,
nejaký kód PHP, niektoré HTML.
A uvidíme, nakoniec, že ​​môžeme začať dráždiť tie od seba
a aby naše HTML oddelené od nášho PHP úplne,
ale počiatky PHP boli naozaj dať vám tento flexibilitu,
že ak chcete nejaké HTML stačí napísať, a že bude
vypľuť zhodne prehliadači.
Ale ak budete potrebovať nejaký programovací techniku,
niektoré programovací kód, môžete si tiež dať do rovnakého súboru presné, ako skoro uvidíte.
Tu je môj HTML.
Mám titul tohto pre Frosh PI.
Mám tag body, ktorý má nejakú CSS na to, aby centrum všetko uprostred,
a potom sa sem mám formu, ktorá zrejme bude predložená
do nového súboru s názvom register0.php, tak uvidíme, že za chvíľu.
Je to za použitia metódy nazývanej príspevok, ktorý sa vrátime k rovnako.
Potom som nejaké formuláre vstupy, jeden tzv meno, ktorého typ je text,
ten, ktorého meno je kapitán, ktorého typ je checkbox,
a to sme nevideli to predtým, ale to robí presne to, čo hovorí.
Získate políčka namiesto textového poľa.
Tu dole máte prepínač, ktorý je jedným z tých kruhových tlačidiel
, Ktoré si môžete vybrať buď tento alebo že jeden.
>> Všimnite si, že je to úmyselné, že som dal obom prepínacích tlačidiel meno pohlavia.
To je, ako sa dostať vzájomné vylúčenie, kedy musíte kliknúť
buď tento, alebo, že jeden, a kliknutím druhej
to unchecks druhej, takže budete musieť dať im rovnaký názov
ak chcete, aby sa vzájomne vylučujú takhle.
A potom na koľaji, nemyslím si, že sme videli, to ešte, ale je to select menu, drop-down menu.
Tag pre ktoré je select.
Tie potom dávajú drop-down menu názov,
a potom máte veľa možností.
Prvý z nich, len pre estetiku, je prázdny reťazec.
Len som chcel, aby rozbaľovací byť v predvolenom nastavení prázdne,
a potom je tu Apley, Canaday, Grays, a tak ďalej.
A všimnite si dichotómiu tu.
Možnosť v rozbaľovacom má hodnotu,
ale musí človek-popisný názov, ktorý je v tomto príklade
je totožný, ale ak by sme naozaj chceli byť análny by sme mohli mať
hodnota tohto rozbaľovacieho byť len krátka verzia,
Grays, ale my sme mohli naozaj povedať, Grays Hall, že človek skutočne vidí,
ale to nie je všetko, že zaujímavé, tak som stále len jednoduché a urobil z nich totožné.
Potom sa v dolnej časti máme tlačidlo predložiť
ktoré sme videli predtým, ale nevšimol som dal iné slovo.
Miesto CS50 hľadanie som dal nálepku "Zaregistrovať".
>> Konečným výsledkom je táto stránka tu, a znova,
ak to dostať predložené?
To dostane predložený do istej súboru, hodnota atribútu action,
ktorý bol register0.php.
Poďme sa pozrieť, čo sa vlastne deje tu.
Nechaj ma ísť napred a vyplniť tento formulár, hovoria David,
samec, Matthews, a potom poviem zaregistrovať.
Dovoľte mi, aby som oddialiť a kliknite na tlačidlo registrovať.
Dobre, tak trochu k ničomu, ale poďme sa pozrieť, čo sa vlastne deje.
Všimnite si, že URL sa zmení tak, aby register0.php.
Čo je zvedavo chýba z URL, ale, aj keď sme len nám formulár?
[Nepočuteľné Študent odpoveď]
Dobre, to je len Chrome je užívateľsky príjemný týchto dňoch.
To je v skutočnosti neexistujú. Proste skryť, aby sa ušetrilo miesto.
Ale dobrá myšlienka, dobrá myšlienka.
O druhom konci adresy URL, hoci, čo chýba? Jo.
[Študent] Reťazec dotazu.
Reťazec dotazu, tak spomínam z našich jednoduchých príkladoch vyhľadávania Google.
Akonáhle som kliknite na tlačidlo Odoslať URL
ma vzal do Google, ale potom tam bol? q = computer science alebo čo som napísal dovnútra
To je preto, že sme použili metódu GET s vyhľadávacím príklade.
>> Tentokrát sme použili, akú metódu miesto?
Príspevok, a jeden z bezprostredných rozdiely
medzi get a post je, že príspevok nekladie vstup používateľa v adrese URL.
Skrýva to. To ešte pošle.
V skutočnosti, čo vidíme v prehliadači tu, ako budeme odhaliť v okamihu
pri pohľade na register0, je, že som len vidieť obsah
z poľa, ktoré boli predložené z prehliadača na server.
Ale URL nemá?, Nemá žiadne kľúčové slová
alebo hodnoty v ňom, a prečo je to?
No, po umožňuje podať aj dáta z formulára na server,
ale to nie je dať do URL, takže, aké informácie je príspevok
vhodné najmä pre možné, keď sa pýtate užívateľovi
zadajte na vstupe do formy?
Niečo ako heslá, niečo ako to, čo iné?
Čísla kreditných kariet.
Čokoľvek, čo je mierne citlivá pravdepodobne nebudete chcieť končí v URL
aj keby len preto, že znamená, že vaše spolubývajúci alebo jeho rodinný príslušník môže len troll prostredníctvom
vaše internetové histórie a potom doslova vidieť vaše heslá,
doslova vidieť vaše čísla kreditných kariet, pretože väčšina prehliadačov
pamätať v histórii, čo URL, ktoré ste boli na,
takže už len preto, že by to bol zlý nápad.
Použitie poštové kože, ktoré detailov od užívateľa.
>> Tiež, ako si nahrať fotografie do Facebooku?
No, len 2 mechanizmy si môžete naozaj použiť,
aj keď je tu pár ďalších viac tajomné ty, je získať a zverejniť.
Ako sa vám možno nahrať fotografiu cez adresu URL?
Môžete skutočne urobiť.
Môžete si vziať JPEG alebo bitmapy alebo GIF a môžete ju zastupujú v šestnástkovej sústave
alebo niečo, čo nazýva base 64.
Miesto základu 16 môžete použiť základné 64, čo v podstate vyzerá ako
ASCII znaky, a môžete skutočne nahrať fotografiu cez adresu URL
po otáznikom, ale tam sú všeobecne obmedzenia veľkosti.
Väčšina prehliadačov núti URL nesmie byť vyšší ako 1000 znakov,
možná 2000 znakov alebo podobné, takže nie je možné nahrať
10 MB Facebook fotografie.
Za to môžete použiť miesto rovnako, takže pre túto chvíľu si dá parametre v URL,
čo je pekné a užitočné, niekedy, ale pre čokoľvek citlivú alebo veľký
Príspevok je spôsob, ako ísť.
Čo je register0 vlastne robíš?
No, keď som otvoriť register0 vedomie, že toto je super jednoduchá stránka,
ale je to ukazuje na skutočnosť, že môžem spoločne miešajú, pre lepšie alebo pre horšie,
HTML s PHP.
Tento celý súbor, s výnimkou pripomienky na vrchole, sú HTML
s výnimkou toho chlapa tu.
>> Všimnite si uprostred svojho PHP kódu,
v polovici môjho HTML, mám akúsi dočasne
vstúpil PHP režimu.
Volám špeciálnu funkciu nazvanú tlač r.
To znamená tlač rekurzívne, a to, čo robí, je, že rekurzívne vytlačí
bez ohľadu na premennú, ktorú odovzdajte ho, bodkočiarku, exit PHP režim.
A pre tag vám pre-formátovaný text,
mono priestor textu tak, aby každý priestor, ktorý skutočne vidieť.
To nezmizne. Čo je to príspevok?
No, čo je zaujímavé a presvedčivé o PHP
je to, že vždy, keď odošlite formulár pomocou GET alebo POST
niečo, čo je nám pre Vás prehliadači
PHP samo o sebe vyrieši, čo tieto kľúčové hodnotové páry sú,
Údaje, či je rovná, postavy, či je otáznik.
To robí všetku ťažkú ​​prácu za vás, a potom to podá vám asociatívne pole
obsahujúci všetko, užívateľ zadaný do formy.
No, čo pole to táto forma má?
>> Mal 4 polia.
Jeden z nich bol textovom poli Názov.
Jeden z nich bol checkbox volal kapitán.
Jeden z nich bol prepínač názvom pohlavia,
a jeden bol drop-down menu tzv koľaji,
tak nevšimol, keď som tlače rekurzívne
Obsah tohto špeciálneho premenné.
Jedná sa o špeciálnu globálne premenná nazýva doslova $ _POST, vo všetkých veľkých písmenách.
Jedná sa o špeciálnu globálne premenná, ktorá PHP práve pre vás vytvorí
a ruky na vás, takže môžete prístup ku všetkému
ktorý bol predložený prostredníctvom formulára užívateľom.
A tým, že volá tlače r na to, by ste sa to v bežnej aplikácie.
Robíme to vidieť vo vnútri tejto premennej,
a čo je vo vnútri nej, dobre, 4 tlačidlá,
4 http parametre, aby som tak povedal,
meno, kapitán, pohlavie, koľaji, a potom hodnoty, ktoré užívateľ
zadali s jednou výnimkou.
Ja som typ D - V-I-D.
Overil som si krabicu, aj keď, pre muža, ktorý zrejme predložila hodnotu
púheho m byť stručné.
>> Keď som si vybral Matthews, že je to hodnota, ktorá dostala vybrané,
a toto je trochu hlúpe, ale je to konvencie.
Keď som zaškrtli políčko, hodnota na, "na," dostal predložený na zaškrtávacieho poľa.
Keby som to čítal, tak by žiadna hodnota bola odoslaná vôbec.
To je len, že nám pohľad na to, čo je vo vnútri tejto osobitnej globálne premenné,
a je to tak zvláštne, že je to tzv super globálne premennú.
To existuje všade na vás v kóde, takže sa môžete skutočne prístup.
To nie je, že presvedčivý, takže sa poďme vlastne používať super Global
a v skutočnosti sa snaží zaregistrovať niekoho.
V froshims1 Idem urobiť jednu zmenu.
Mením žalobu za register1.php,
a ja robím jednu vec.
Bol som trochu v rozpakoch o kvalite mojej stránky tam.
Je to celkom odporné, úprimne, tak to dopadá
ktoré môžete použiť veľmi ľahko na webe
JavaScript iných ľudí code, CSS iných ľudí
, Že som napísal a otvorené zdrojov a k dispozícii ako knižnica,
aby som tak povedal, a napríklad, tu som pomocou voľne dostupných knižnicu,
banda kódu, ktorý niekto iný napísal.
>> Twitter sa stalo písať tento kód, a to len Bootstrap knižnica,
a je to len banda CSS štýlov, partiu. css súbory
že niekto iný napísal, a prišiel na to, ako sa dostať všetko pekné a pekná
tak, že ľudia ako my môže starať o niečo menej o estetike a oveľa viac sústrediť
o logike a skutočné programovanie.
Tým, spájajúcej ho s týmto tag, ktorý je rovnaký tag som pamätať styles3.css skôr,
Teraz mám prístup k súboru s názvom bootstrap.min.css.
Min. len znamená, že som minified, a že som sa zbavila všetkých bieleho priestoru a tak ďalej
len aby sa ubezpečil, že nie ste mi poslal viac bajtov, než som skutočne potrebujú.
Ale tam je celá partia CSS, takže keď som sa tak otvára verzii 1 Frosh PI
Všimnite si, že môj súbor je rozhodne krajší.
Teraz je to stále len čierne a biele, ale všimnite si, že tým, že len pomocou ich štýlov
a používania niektorých funkcií z nej na mojej forme, že to nie je úžasné,
ale je to rozhodne čistejšie, než tomu bolo predtým, a projektor nie je robiť to spravodlivosť.
Tam je malé sivé čiary okolo tlačidiel a okolo textového poľa tu,
ale je to rozhodne čistejšie, než tomu bolo predtým.
>> Teraz, v spravodlivosť, ja som musel zmeniť môj značkovací trochu.
Toto je verzia 1, a všimnite si, že som použil niekoľko nových značiek,
a úprimne, nemal som potuchy, ako to urobiť, kým som si neprečítal dokumentáciu
pre Bootstrap knižnice Twitteri, a povedali mi, že ak chcete použiť našu knižnicu
použiť fieldset element vo vnútri formulára,
dal slovo, ktoré chcete zobraziť vedľa poľa vnútri so štítkom značky,
potom dať vaše vstupné meno, rovnako ako predtým,
a potom pre políčko, nielen že ju zabaľte do štítkov prvku,
môžete použiť niečo ako trieda, takže sme nevideli skôr,
ale uvidíte to v jednom z šortiek PSet 7 je.
Trieda v CSS umožňuje urobiť niečo veľmi podobného ID,
ale predtým, keď sme mali ID sa symbolom #
to bolo pre jednu a iba jeden prvok.
Čo je pekné o triedy je, že viac prvky môžu mať rovnaké triedy
alebo rovnaké CSS veci aplikovaný na to.
>> Ale opäť, viac na tie krátke, a zvyšok je to len skopírovať a vložiť
z ich dokumentácie, kde som pridal štítok sem a tam.
A na konci, pretože som patrila link tag v hornej časti,
všetko vyzerá krajšie automaticky
jednoducho označíte sa mojej stránky takým spôsobom, ktorý
Twitter očakáva, a tam je tak veľa rôznych spôsobov
, Ako to dosiahnuť, a to je naozaj veľmi vhodné.
V tomto bode v semestri, ako uvidíte v špec PSet 7 je,
Googling okolo, čítanie až o knižniciach, pomocou CSS iných ľudí
a JavaScript riešiť pomocné problémy
na problém sade sám je určite podporovaná a je tak
Web je postavený v týchto dňoch, že stála na pleciach iných ľudí
takže si môžete naozaj sústrediť na nové a zaujímavé problémy.
Ale poďme sa teraz zameriavajú na, opäť logiku.
>> To bolo rýchle obchádzka na estetiku len ukázať vám smer, v ktorom sa môžete vydať.
Chystám sa vrátiť k škaredšie jeden pre teraz len preto, že
tam žiadne rozptýlenie s vecí Twitter, a nechaj ma ísť dopredu a otvoriť
froshims2, ktoré opäť líšia iba v akčnom, register2.php,
a poďme sa pozrieť na to, čo účinok je tu.
Nechaj ma ísť napred a zadajte Davida.
Nebudem kapitán tentoraz.
Poviem muž, Matthews, zaregistrujte sa.
Sakra. Dobre, že je skrutka až na mojej strane.
Stand by.
Register2, riadok 22, ak prázdny, alebo-ľúto.
Poďme znova.
Dobre, po odoslaní tohto formulára, čo sa práve stalo?
Som napísal v Dávidovi, kontrolované samec, klikol Matthews, zaregistrujte sa.
Tie sú registrované. (No, vlastne nie.)
To je jasne krok za len vytlačiť obsah niektoré premenné,
ale čo je tento súbor vlastne robí?
V register2.php
Všimnite si, že mám nejaký nový kód.
Vnútri môjho tela tagu mám v podstate, ak else,
ale pretože som čo-miešať sa to s nejakým HTML
Mám pre vstup a výstup PHP režim tam a späť, tak sa poďme pozrieť, čo robím.
>> V prvom riadku tu hovorím, ak je to
že po Super globálnej je prázdny kľúč mená,
takže inými slovami, v prípade, že používateľ nemá mi hodnotu názve vo forme,
potom vyprázdnite bude vrátiť true, pretože hodnota je prázdna.
Alebo-Všimnite si, že zvislé pruhy Ak pohlavia je prázdny
vnútri tohto špeciálneho extra globálne, čo opäť predstavuje obsah forme,
alebo spálne je prázdna, potom budem pokračovať a revať na užívateľa.
Ako? No, nevšimol som chcel povedať, vám musí poskytnúť svoje meno, pohlavie, a koľaji.
Poďme dokonca vyvolať takú chybu.
Nechajte ma ísť späť do môjho formulára. Dovoľte mi, aby som znovu pre vymazanie.
A ja idem dať im Dávida, a nemusí vedieť, kde bývam.
Registrácia. Zrejme som sa treba im povedať, kde bývam.
Musíte poskytnúť svoje meno, pohlavie a koľaji. Prejsť späť.
>> A mohol by som kliknúť a prejsť späť do tej podobe, ale prečo je to?
No, v tom prípade skôr nebol prázdny, ale rod bol a koľaji bol,
takže celý tento výraz vyhodnotený ako true, a to aj napriek tomu, že syntax je len málo nových,
Znovu sme sa vstúpiť do PHP režimu, známe, ak vyhlásenie,
ale nová časť je tu práve táto dvojbodka, a ja som to podelal tým vynechaním zátvorku
náhodou, ale všimnite si do hrubého čreva, a to znamená, že
aj keď sme opustenie PHP režime všetko
ktorý nasleduje treba vypľuť doslovne do prehliadača
, Kým sa nezobrazí iného blok, ako to robíme my,
V takom prípade by ste mali miesto pľuvať na tohle
, Kým sa nezobrazí endif, takže niektoré mierne nová syntaxe
, Ktorá mi umožňuje prepínať medzi HTML a PHP.
Môžeme vyčistiť doplnila nakoniec, ale teraz,
je to trochu pôsobivého spôsobu kontroly chýb formulár.
>> Teraz hovorím, že nie ste naozaj registrované, pretože samozrejme sme nič neurobili, ale dáta,
takže sa poďme sa skutočne snažia robiť niečo zaujímavé.
V froshims3 Jediný rozdiel je, že budem predkladať register3,
takže HTML je rovnaký.
V register3 nevšimol.
Toto je celkom sexy.
Na vrchole som pomocou vyžadujú vyhlásenie, takže to je ako # include.
Tentoraz to nie je stdio.h alebo niečo podobné.
Je to knižnica PHP, a ten sa nazýva PHPMailer.
Ako som vedel, zahrnúť práve túto citovaný reťazec?
Čítal som to v dokumentácii, takže keď mi povedali, nech si toto v hornej časti súboru
Ak chcete použiť špeciálne knižnicu s názvom PHPMailer, že robí to, čo hovorí.
To vám umožní odosielať e-maily cez PHP.
Teraz sa poďme posunúť ešte hlbšie.
>> Oznámenie začať Som v PHP mód celú tú dobu,
tak teraz všimnete sem po importe túto knižnicu,
aby som tak povedal, robím nejaké Sanity kontroly.
Ak je to pravda, že názov nie je prázdny
a pohlavie nie je prázdny, nevšimol výkričníky-
a koľaji nie je prázdny, potom užívateľ logicky vyplnený formulár, aspoň dosť.
Je mi jedno, či sú kapitán alebo nie. Potrebujem len svoje meno, pohlavie, a koľaji.
Ak sa naplnili tie von tak, že žiadny z týchto oblastí sú prázdne
To je trochu nová syntaxe.
PHP, as stranou, je objektovo orientovaný programovací jazyk
ktorý niektorí z vás si možno spomenú z obrnených transportérov alebo ako.
Pre túto chvíľu, keď neznáme, len viem, že používať túto knižnicu
musíte napísať jediný riadok kódu, ako je tento s použitím novej kľúčové slovo,
doslova nové kľúčové slovo názvom nové.
Ale okrem toho, máme nejaké známe syntax.
Je to šípka operátor, ktorý je podobný tomu, čo sa používa pre structs v kontexte ukazovateľov.
Pre dnešok PHP nemá ukazovatele,
ale viem, že teraz vo vnútri pošty premenné
je v podstate druh ukazovateľ na špeciálne knižnice
že niekto iný napísal, a ak chcem, aby prístup k špecifické funkcie
vnútri tejto knižnici som sa, rovnako ako v C, použite šípky operátor,
aj keď títo nie sú v skutočnosti ukazovatele.
Je to niečo vlastnú verziu PHP zmluvy.
To znamená, že ísť do knižnice a volať IsSMTP funkciu.
SMTP, stiahnutie, z našich bojovníkov Net odkazuje na email,
a to len znamená používať e-mailový server pre túto Frosh Chatu registráciu.
>> Čo hostiteľ chcem používať?
No, Harvard, keď Google okolo, má e-mailový server s názvom smtp.fas.harvard.edu.
Ak hráte spolu doma, alebo žijete v Comcast sieti
to by mohlo byť niečo ako smtp.comcast.net.
To úplne závisí na tom, kde žijete, a kto je tvoj ISP je.
Potom budem Moja z adresy, aby svojvoľne byť jharvard@cs50.net.
Ja potom ísť do nastavenia riešiť za jharvard@cs50.net.
Jediný spôsob, ako vedel, že tieto funkcie boli volány SetFrom a AddAddress
je, opäť som čítal dokumentáciu.
To nie je druh magicky známe všetkým programátorov.
Potom som nastaviť predmet na "registráciu".
A teraz tento riadok je trochu škaredá, pretože to, čo sa dot prevádzkovateľ znamená v PHP?
Každý, kto vie?
Zreťaziť.
V C je bolesť v krku pre spojenie 2 reťazca dohromady.
Musíte sa vysporiadať s malloc alebo realloc alebo celej veci
len predĺžiť dĺžku reťazca.
V PHP, v JavaScripte a ďalších jazykoch
zvyčajne môžete urobiť s jedným znakom.
V tomto prípade, bodka znamená vziať tento reťazec tu
a pripojiť k nemu tento reťazec.
>> Jo, a mimochodom, pripojiť k nej tento reťazec,
ktorý sa stane byť variabilný vnútri to super Global.
Potom pripojiť k nej nový riadok, takže všetky tieto body len povedať,
majte robiť väčšie a väčšie a väčšie reťazec,
a nemusíte sa starať vôbec o malloc alebo ako v jazyku, ako je táto,
a je tu ďalšie spôsoby, ako to urobiť, ale je to jeden z najrýchlejších
spôsoby, ako položiť ju.
Čo je to robíš?
Je to vytvorenie e-mailovej telo, ktoré sa deje teda Názov: Captain: Pohlavie: koľaj:
všetko na samostatných riadkoch, a potom konečne,
jeden riadok kódu, a budem ignorovať to pre teraz.
Ak == false znamená len keby sa niečo pokazilo,
ale kúzlo sa tu deje.
Mail Napísať znamená poslať tento e-mail.
Pozrime sa, čo Výsledkom je.
V dolnej časti súboru, všimnite si, že to bude sa povedať, že sú registrované naozaj
keď som si, že ďaleko.
Ak však užívateľ skrutky hore, zistíte, že sme začali tento
ak podmienka sa tu, ak to nie je prázdny a nie je prázdna
a nie vyprázdniť zašleme e-mailu.
Inak budeme posielať tento riadok kódu,
ktorá bude mať za následok, ako uvidíte v PSet 7, z presmerovanie užívateľa
tam, kde oni prišli, froshims3.php.
>> Palce, inak to bude najviac sklamaním demo dnes.
Ideme na to.
Dovoľte mi, aby som otvoriť svoju e-mailovú schránku na jharvard v Gmail.
Žiadny e-mail hneď. Dobrá.
Teraz mi dovoľte otvoriť froshims3, ktorý je tretí a posledný príklad sa pozrieme na tu.
Dobre, ideme na to.
Nate, on bude kapitánom, male, od, povedzme, Apley.
Registrácia. Dobre, ste zaregistrovaný naozaj.
Teraz, keď som Najeďte na môj e-mail, oh, môj bože.
Práve som dynamicky zaslali e-mail na webe.
>> Ponechajme na tomto liste.
Video je nadchádzajúce k prednáške sme chýbať. Uvidíme sa budúci týždeň.
[CS50.TV]