[Musiikkia] SPEAKER 1: Tämä on CS50 ja tämä on viikon lopussa seitsemän. Tänään on ehkä jossa todella opettaa sinua kielillä. Otimme aiemmin pari viikkoa HTML ja CSS, joista kumpikaan ovat ohjelmointikielet. Ja todellakin, vaikka emme tarkastellaan lähes kaikki tagit että HTML mukana ja lähes kaikki niistä ominaisuuksista, CSS mukana, Sellainen se HTML ja CSS. Me vain yleisesti alkaa olettaen, että olet ymmärtää yleiset ajatukset tunnisteita, ja attribuutteja, ja sivut lähetetään asiakkaalta palvelimelle. Koska tänään alamme tarkastella toinen ohjelmointikieli, PHP. Aiomme tehdä tämän huippunopea. Emme aio opettaa sinulle PHP sinänsä, aivan kuten emme tavoittele opettaa sinulle C, sinänsä, vaan pikemminkin ohjelmointi. Ja itse asiassa yksi tavoitteet Kurssin ei opettaa sinulle C, tai HTML tai CSS tai PHP, tai useita muita sirinä sanoja tai lyhenteitä, vaan tietojenkäsittelytieteen ja miten ohjelma pohjimmiltaan. Ja todellakin, tänään alkaa ottaa nämä apupyörät pois kaikki edelleen lentää kieli kutsutaan PHP, seuraavasti. Tässä on mitä tällä kielellä näyttää. On käynyt ilmi, että ei ole tarvetta päätehtävä on ohjelma kirjoitettu kielellä nimeltään PHP. Niin että jo kuulostaa hieman yksinkertaisempi kuin C, jonka kanssa olemme tuttuja. Osoittautuu, että jos haluavat julistaa muuttuja, teet sen lähes identtisen C. Mutta siellä on selvästi yksi ero tässä kun Julistan jono, tai ehkä kaksi eroa. Mikä näyttää erilaiselta? Yleisö: dollarin merkki. SPEAKER 1: Kyllä, siellä on dollari merkki, jota ole koskaan ennen nähnyt. Ja mitä puuttuu? Joo? Yleisö: [äänetön] SPEAKER 1: Joo, ei ole tietotyyppiä. Joten käy ilmi, että PHP on mitä me soittaa löyhästi kirjoitettu kieli, jossa C on vahvasti kirjoitettu. Löyhästi kirjoitettu vain sitä, että on olemassa erilaiset tiedot, on jouset, ja ints, ja kelluu. Mutta tietokone lukuja että ulos. Voit ihmisen ohjelmoija ei tarvitse tajuta se. Joten sinun täytyy tehdä julistaa muuttuja on dollarin merkki, nimi vaihteleva, ja sen jälkeen, esimerkiksi, lainaus lainaus päättyy, Hello World. No tämä on mitä kunto näyttää PHP. Mitään eroja? Ei. Joten se kääntyy pois nämä ovat identtisiä. Ja saatat olla vähemmän oksat tai useamman toimialan, mutta syntaksi kierrosta tarkalleen sama. Boolen operaattoreilla voi tilattava yhdessä. Boolen operaattoreilla voidaan anded yhdessä. Sinulla on vielä kytkimet. Vaikka et ole käyttänyt Näiden, nämä eivät ole C ja he toiminnallisesti vastaava PHP. Ja itse asiassa PHP he hieman tehokkaampi. C, voit vain vertailla tiettyjen tietotyypit kuten ints ja merkkiä, kun taas PHP voit itse vertailla täysi sulittaa jouset ilman murehtia viitteitä ja vastaavat. Joten tässä on silmukka. Tämä on vain pseudokoodina koodi, jos haluatte. Mutta rakenteellisesti se on identtinen C. Tässä taas silmukka, pseudokoodina therefore-- identtinen C. Tässä tehdä, kun loop-- identtisiä. Ja niin siellä on tavallaan tämä kuvio täällä jolloin siellä on muutamia muita syntaktinen ominaisuudet me todellakin näkemään. Itse asiassa, tässä mukava tapa PHP jolloin, jos haluat kerrata yli array, ja sinä eivät halua hypätä kautta henkinen ja syntaktinen vanteet ottaa int i on 0, i vähemmän kuin n, i ja plus-- joka on vain paljon harmittaa syntaksin. Voit sanoa hieman enemmän sulavammin kunkin numerot kuten numero, jossa tässä tapauksessa dollarin merkki numerot, olen olettaen, on kuin joukko numerot. Ja sitten Oletan numero, yksikkö, tulee olemaan vaihteleva. Ja mitä PHP tehdä minulle kuin minä kerrata yli tämän silmukan on, kunkin iteraation, se tulee päivittää muuttujan numero olla i elementti numeroina, monikossa. Niin se vain käsittelee kaikki sen minulle. Ei hakasulkeita, ei dollarin merkki, ei puolipisteillä. Se on vain hieman yksinkertaisempi. No, jos haluat array, se kääntyy pois sinua voi tehdä jotain melko samanlainen C. syntaksi on hieman erilainen. Mutta tässä array nimeltään dollari allekirjoitettu numerot. Ja käytän, PHP, neliö kiinnikkeet, se kääntyy pois. Ja aiomme nähdä nämä uudelleen kaupungissa JavaScript-- vielä toisella kielellä. Olen vain käyttää hakasulkeen merkintätapa on pilkuilla eroteltu luettelo kokonaislukujen, tässä tapauksessa. Mutta se antaa minulle array. Mutta vielä voimakas PHP, meillä on myös mitä ovat yleensä nimeltään assosiatiiviset taulukot. Ja paljon kieliä on myös ne. Asia C taulukot on, että indeksit varten array, asia, että te käyttää hakasulkeissa jonka kautta voit käyttää elementtejä, on mitä? Yleisö: [äänetön] SPEAKER 1: Niiden on oltava numeroita tai kokonaislukuja, erityisesti nollasta ylöspäin. No, PHP, ja se muuttuu out, muilla kielillä, voit alkaa olla indeksit, jotka eivät ole numeerisia. Mutta he todella sanoja tai lauseita, niin että sen sijaan yrittää muistaa missä jotain on, tai tallennettu muuttujaa i, voit itse käyttää sanaa ja sanoa that-- voit sanoa sanan näin. Joten dollarin merkki lainaus on muuttujan nimenä täällä. Tämä on hieman hieno syntaksi se on liittämällä kaksi keskeistä arvoa paria Tämän muuttujan. Erityisesti tämä antaa minulle array, joka on pituus 2. Mutta indeksit eivät ole 0 ja 1. Indeksit ovat lainaus lainaus päättyy symboli ja lainaus lainaus hinta. Ja arvot näiden indeksien, vastaavasti, on FB Facebook ja $ 79.53, kun viimeksi tarkastetaan hinnan tästä. Mitä se tarkoittaa? Hyvin, se tarkoittaa, että kirjoittamisen sijaan koodin näin, jos tein jotain kuten dollari sign-- tai pikemminkin, C En edes dollarin merkki. Tekisin jotain kuten lainausmerkkejä ja sitten Tekisin kiinnike i saada jossain mielivaltaisesti numeerisesti indeksoitu arvo. Alkaa tänään PHP, jos haluat saada jossain arvo, meillä tavallaan enemmän semanttinen ilmaisukyky. Vain hieno tapa sanoa voimme soita asiat mitä he ovat. Ja jos haluat saada jotain symboli, Nyt voit kirjaimellisesti tehdä lainata lainaus symboli hakasuluissa sijasta pelkkä numero. Joten se on mukava mukavuutta. Ja se on tavallaan se nyt. On rypäleterttuja muita ominaisuuksia PHP. Ja todellakin, PHP tulee sananlaskun tiskiallas. Kymmeniä, satoja toimintoja tulevat PHP-- niin paljon enemmän kuin tuli C. Ja joka ei ole tarkoitettu hukuttaa vaan auttaa huomaat, että emme enää tarvitse kirjoittaa koodia se on tavallaan täällä käsitteellisesti. Nyt voimme vain alkaa hyödyntää paljon lisäominaisuuksia että kielet kuten PHP on. Joten meidän ei tarvitse huolehtia liikkuvat asiat noin muistiin. Meillä ei tarvitse murehtia malloc ja kaikki nämä alemman tason, voimakas yksityiskohtia, jotka voit painia kanssa, jos ei kamppailemaan, pset5, mutta voit alkaa pian ottaa itsestäänselvyytenä. Itse asiassa, nyt kirjoittaa Super yksinkertainen ohjelma PHP, seuraavasti. Aion mennä päänsä CS50 IDE täällä, ja mitä aion tehdä on luoda uusi tiedosto, että hyvin yksinkertaisesti aiotaan kutsutaan hei piste PHP. Joten sen sijaan piste C, se on aiotaan kutsutaan piste PHP. Ja sitten tähän tiedostoon, Voin aloittaa kirjoittamisen. Mutta käy ilmi, että yksi asia, joka minun täytyy tietää on, että PHP-tiedosto yleensä, tarvitsee aloittaa joitakin erityisiä syntaksia. Samanlaisia ​​hengessä HTML, mutta jälleen, PHP on ohjelmointikieli, ei markup language. Joten jokainen tiedosto, ja se on eräänlainen tyhmä näköinen myönnän. Alkusulkumerkki, kysymysmerkki, PHP. Ja tämä on vain kieli tapa sanoa, hei, tietokone tässä tulee joitakin koodi kirjoitettu kielellä nimeltään PHP. Ja sitten aivan lopussa tiedoston, et tavallaan eräänlainen vastapäätä. Et kirjoita PHP jälleen, juuri tehdä kysymysmerkki, kulmasulkeen. Ja sitten jotain laittaa sisälle Näiden kahden tunnisteet, niin sanoakseni, on, tai pitäisi olla, PHP. Joten jotain Super yksinkertainen. Aion mennä eteenpäin ja tehdä tulosta def, Hello World, kenoviiva n, tallenna. Ja nyt minun nopea, aion tehdä, tehdä hello-- ei, aion tehdä, piste slash hei. Ei, piste slash, hm. Joten jotain on erilainen. Ja todellakin, tämä on keskeinen ero välillä PHP ja kieliä kuten C C oli niin sanottu käännetty kieli. Mitä se tarkoittaa C laaditaan? Mikä oli vaikutusta? Joo. Yleisö: kirjoitti sen konekielelle joten se voisi hoitaa tietokone. SPEAKER 1: Aivan. Meidän täytyy ensin muuntaa sen ns konekielelle, nollia ja ykkösiä, ennen kuin se todella on täytäntöönpanokelpoinen ja ymmärtää tietokoneen. Intel sisällä. CPU sisällä tietokoneen. PHP, sen sijaan on mitä kutsutaan tulkittava kieli, joka tarkoittaa, että et ole kääntää sen osaksi nollia ja ykkösiä, kone koodi, voit sen sijaan jättää sen lähdekoodia. Ja te sen sijaan siirtää sen tulona ohjelmaan, tulkki että joku muu kirjoitti vuotta sitten, joka ymmärtää sen rivi riviltä, ​​merkin luonne. Eli toisin sanoen, ihmiset siellä kirjoitti ohjelma, joka näyttää at koodia rivi riviltä, ja selvittää, mitä tietokone pitäisi tehdä, muuttamatta sitä suoraan nollia ja ykkösiä. Joten jos se näkee varten silmukka, tämä niin kutsuttu tulkki tulee olemaan kuten, okei, minun pitäisi tehdä jotain uudestaan ​​ja uudestaan ​​ja uudestaan. Mitä minun pitäisi tehdä? Saanen tarkastella seuraavalle riville. Saanen tarkastella seuraavalle riville. Ja se todella tulkitsee sitä rivi riviltä. Joten suorittaa sitä, en käytä tehdä. En käytä piste slash tässä tapauksessa. Minä sen sijaan tehdä PHP, joka on ohjelman nimeä, alias Tulkki, joka on esiasennettu CS50 IDE, ja nyt minun täytyy kulkea Komentoriviargumentti, joka on yksinkertaisesti nimi tiedostoa, jonka haluan tulkita. Tai enemmän rennosti, että haluan ajaa. Ja jos minä Enter, siellä meillä on. Hei maailma. Nyt käy ilmi, että minä käytetyt tulosta def tarkoituksella kuroa meitä C PHP. Useimmat PHP ohjelmoijia, kuten näet, eivät edes vaivaudu avulla tulostaa def. He vain käyttää toiminto nimeltään Tulosta, joka C ei ollut. Joten jos en uusintana se nyt, se todella käyttäytyy toiminnallisesti sama. En voi käyttää prosentin s ja prosenttia i ja niin edelleen, mutta on olemassa muita tapoja PHP tehdä niin. Mutta tämä on vain sanoa, että syntaktisesti, muut kuin outoja asioita top, ja outoja merkkejä alas alareunassa, käsitteet nyt on ohjelmointi tällä toisella kielellä tulevat olemaan täsmälleen sama. Itse asiassa, tehdään yksi muu esimerkki. Joten aion mennä eteenpäin ja sulje tiedosto. Saanen luoda toinen, joka Soitan edellytykset 1 piste PHP. Joten ei nolla, koska mitä tein oli katsoin takaisin muutama viikko sitten, meillä oli niminen tiedosto olosuhteissa 1 piste C. Ja mitä En muutettiin sen minun pää, ja täällä paperilla, ja pian kurssin verkkosivusto, rivi riviltä osaksi PHP. Joten C-version, teimme jotain kuten merkkijono s saa saada merkkijono. Joten se on hieman erilainen tehdä sen PHP. Sen sijaan, olen juuri menossa tehdä, tai pikemminkin, olen olisivat tehneet int n saa päästä int, tässä esimerkissä aikaisemmin. Joten sen sijaan, että aion tehdä n saa lukea linja, haluaisin kokonaisluku, kiitos. Joten tämä on vain minun nopea. Ja niin se kääntyy pois, ja Haluaisin vain tietää tämä saamasta lukea tai nähnyt toiminto ennen, lue riviä toiminnon PHP ottaa argumentti, joka on nopea ihmisen, ja sen tarkoitus elämässä on lukea rivi tekstiä että hän nimikkeet. Ja sitten se tallentaa että tekstiä muuttujan n. Ja nyt minä ehkä tehdä jotain kuten tein viikkoa sitten, kuten viikko yksi luokka. Jos n on suurempi kuin nolla, sitten, aion lainata että syntaksin me juuri näin, Tulosta def, otit positiivinen luku, kenoviiva n. If n on nolla, olen menossa mennä eteenpäin ja sanoa, tulostaa def, valitsit nolla kenoviiva n. Else, tässä tapauksessa pitäisi tietenkin, tulostaa def, valitsit negatiivinen luku. Ja voimme varmasti toteuttaa logiikka tämä asia on joukko erilaisia tapoja, mutta kohta täällä on että syntaktisesti, tuskin mitään on uusi. Se on vain dollarin merkki ja uusi toiminto ja lukea linja. Mutta pohjimmiltaan, mitä uutta nyt on olen tulkittaessa. Olen ohimennen se ostoihin toiseen ohjelmaan. Joten jos haluan suorittaa tämän, jos En tee virheitä, Aion ajaa PHP, ja olosuhteissa 1 piste PHP, Anna, Aion kirjoittaa numero 50, ja Oletetaan nyt se toimii. Koska logiikka on samat jutut kuin viikko yksi. Selvä, niin se on aika underwhelming, eikö? Voisimme tehdä tätä millään kielten määrää. Tehdään jotain paljon enemmän voimakas. Lopetetaan ongelma asettaa viisi. Joten aion mennä eteenpäin ja tehdä tämän. Aion luoda tiedoston nimeltään sanakirja piste PHP, ja kalteva kuin saatat olla muokkaamaan alas paljon muistiinpanoja, muistiinpanot vain auttaa jos et saa toteuttaa ongelmia asettaa viisi PHP. Mutta näemme, miten nopeasti nyt voi toteuttaa että sama ongelma asetettu. Joten sanakirjasta piste PHP, aion olettaa, että siellä on jo tiedosto Maailmassa nimeltään speller. Ja todellakin, Tein tämän etukäteen, emmekä kulkea tätä linjaa riviltä, ​​mutta jos olet utelias myöhemmin ja todella haluavat kääri mieltäsi ympärille eroja C ja PHP, kirjaimellisesti verrata tätä tiedostoa, aapinen, nykyisestä lähdekoodista että me post myöhemmin tänään, vastaan ​​s asettaa viisi aapinen piste c että annamme sinulle, ja se on melkein sama rivi riviltä. Siellä on joitakin enemmän dollarin merkkejä. Pari toiminnot ovat hieman erilainen. Mutta se on mukava tapa lajitella nähdä miten voit kääntää kielestä toiseen. Ja se on melkein sama linja linja. Mutta aion olettaa, että kyseistä olemassa, ja mitä aion tehdä täällä on yrittää räjäyttää teidän Mind reimplementing kokonaisuudessaan ongelma asettaa viisi tavalla nopeammin kuin olet tehnyt tähän mennessä. Joten esimerkiksi, aion ensin julistaa globaali muuttuja nimeltä koko, ja aseta se nolla. Nyt se ei ole paljon säästöjä. Kertoimet ovat sinä täytäntöön koko melko sama, tai vihje vihje, tänä iltana tai huomenna, vain käyttämällä globaali muuttuja nimeltään koko, ja asettamalla se nolla. Se ei ole erityisen hämmästyttävä spoileri. Minkälaiset tietosi rakenteet valinta, ne teistä, jotka ovat aavisti ja lukea spec, mitä tietorakenteita ovat useimmat olet käyttänyt? Tiiviste tai kokeilla, ehkä joitakin muunnelmia sen. Joten täytäntöönpanoa hajautustaulun ainakin, on tavallaan paljon riviä koodia, oikea? Ja kaikki eivät voi olla toiminnallinen tässä vaiheessa viikolla, mutta se käy hyvin. Koska PHP, jos en haluavat hajautustaulua, tehty. Oikea? Niin että muuttuja, että olen vain julisti on ilmeisesti nimeltään dollarin merkki taulukko, per käyttöönotto ennen. Mutta en todellakaan vain halua, kello Loppujen lopuksi, joukko. Mutta ei numeerisesti indeksoitu array, koska se on kuin viikko kaksi kamaa, kun puhuimme taulukot. Haluan hajautustaulua. Mutta hash pöytä on todella vain konkreettinen tapa sanoa, haluat assosiatiivisia array. Haluat pystyä osakkuusyrityksen avaimet arvoja. Avaimet arvot. Mikä on sanakirja, todella? No se on koko joukko avaimia. Sanat kuten omena, päärynä, ja banaani, ja kaikki nämä Englanti sanat että annamme sinulle. Ja arvot, että olet tehokkaasti lisäämällä omaan sanakirjaan ovat joko totta tai puuttuminen, väärä. Toisin sanoen asetat koko joukko keskeisiä arvo-pareja, omena, totta, päärynä, totta, banaani, totta. Niin, että kun hakea tai etsiä up että tallennettuja tiiviste kanssa tarkistustoiminto, olet joko saada takaisin vastauksen, Kyllä, löysin sen minun monimutkainen tiiviste, tai ei, se ei ole siellä, joten palaat väärä. Niin tehdä, että kaikki mitä tarvitsen on tiedot rakenne kuten ehdotin ennen. Minun täytyy vain pystyä yhdistää sanoja kuten, lainaus lainaus päättyy, symboli, joiden arvo kuten, totta. Joten ei minun tiiviste. Katsotaanpa todella käyttää sitä. Joten siellä on muutama toimintoja Minun täytyy toteuttaa. Aion mennä eteenpäin ja purra pois toiminto nimeltään koko. Se ei ota argumentteja. Minulla ei tarvitse vaivautua sana, mitätön, PHP. En yksinkertaisesti aio palata kokoa. Ja syrjään, PHP on tämä minorly harmittaa yksityiskohta, jossa jos jotain on maailmanlaajuinen, sinun täytyy kertoa toiminto, jossa käytät se, hei, tämä on globaali muuttuja. Joten, pieni tyhmyys, mutta sinä on tehtävä se kuitenkin. Entä kuormitus? Aion toteuttaa toiminto nimeltään kuormitus joka vie nimissä sanakirjan, aivan kuten ongelma asettaa viisi. Ja ennen kuin jatkaa, huomannut, että en ole on kirjoittamalla aivan samoja asioita. Mikä on tietysti eri PHP noin miten julistaa toiminto verrattuna C? Joo. Yleisö: [äänetön] SPEAKER 1: Ei paluuta tyyppi. Ja todellakin, näin on, PHP sikäli kuin se on löyhästi kirjoitettu, on myös hieman huolimaton siinä mielessä. Et määritä kuin ohjelmoija mitä tämä toiminto palauttaa. Sinun olisi pitänyt todella katsoa klo koodin asian selvittämisestä. Lue kommentit tai asiakirjoja. Niin plussia ja miinuksia tällaisia ​​päätöksiä. Mutta minulla on sanottava avainsana, toiminto. Ja kun me opimme Javascriptin parin viikon aiomme nähdä sama asia uudelleen, mutta se on sama ajatus. Toiminnon nimi, sen väitettä tai väitteitä tai sen puute, ja nyt tässä täytäntöönpanoa. Joten aion leikata noin kulmat vain on dramaattinen vain hetken. Mutta aion mennä eteenpäin ja sanoa. Näin voin ladata tiedoston array. On toiminto PHP nimeltään tiedostoon. Voit jättää sen tiedoston nimi. Se ojentaa sinulle takaisin array, sisällä joista on jokaiselle riville tiedostosta. Nollasta, yksi, ylös N miinus 1 riviä. Se on se, eikö? Ei ole f lukea. Ei ole f GET s. Ei ole prosenttia s. Ei ole päänsärkyä. Ei ole feof. Kaikki tämä tavaraa, joiden kanssa olet ollut paini ehkä, p asettanut neljä ja viisi, menee pois. Joten Luin juuri nuo rivit tiedosto, ja niin tiedät mitä? Jos haluan kerrata yli nuo sanat, Voin tehdä, kunkin rivejä linja. Muista, että tämä oli aika taitava tapa iteroimalla yli jono, indeksi indeksillä, ja jokaisen iteraation kutsuvan nykyinen linja, dollarin merkki linja. Ja täällä aion mennä ja sanoa pöytä, teline, rivi, saa totta. Toisin sanoen, tämä on, miten lisätä minun hajautustaulua PHP. Sanon dollarin merkki taulukko, joka on minun assosiatiivinen array, joka oli tyhjä kohden koodiriviä yläpuolelle. Sitten indeksi siihen ei, käyttämällä useita, mutta kirjaimellisesti käyttämällä Hakusanalla että välitän. Ehkä se on omena tai päärynä tai banaani tai mitä tahansa, mutta erityisesti olen indeksointi siihen kuten ehdotin aikaisemmin. Otan nimi minun assosiatiivisia array, ja sitten minä käyttää lainaus lainaus päättyy vuonna hakasuluissa narulla, sijasta todellinen määrä. Ja niin se on siinä. Kuorma-toiminto tehdään. Kun että silmukka toistetaan, Laitoin kaikkemme tiiviste. Nyt pieni vastuuvapauslauseke, siellä pari asiaa en täytyy korjata. Ja versio Laitan verkossa on kaikki vivahteet, mutta se on lähinnä vain olemaan joitakin virheentarkistukset ja joitakin pieniä parannuksia. Mutta se todellakin ydin se. Jos minä nyt halua toteuttaa toiminto nimeltään tarkista, joka odottaa sana sen väitteen, miten voisin mennä noin tekee, että? No, olen vain menossa sanoa, jos sisällä minun pöytä, paikassa sana, jos on asetettu. Joten jos is-- todella, tiedätkö mitä? Aion tehdä sen hieman pseudokoodina. Mutta ajatus on sama. Jos joka vastaa totta, return true. Selvä. Else-- voit eräänlainen nähdä, missä tämä on going-- palata false. Tehty. Tarkistus tehdään. Ihan kiva, eikö? Ja niin mikä on tämä todella saada at? Ja tämäkin, olen leikata joitakin kulmat. Katsokaa versio verkossa kaikille hieman vivahteita. Mutta se ydin siitä. Indeksi omalle assosiatiivisia array, alias Tiiviste, onko siellä arvo siellä, jos se on asetettu tosi, ja jos on, return true. Joten olemme supistettu kaikki monimutkaisuus. Joten sellainen mielessä puhaltavat, eikö? En viitsi viimeistely sitä purkaa, koska fact-- OH, tiedätkö mitä? Joo, Lopetetaan se purkaa. Purkaa hash taulukon saattaa näyttää kuten toiminto purkaa, palauttaa. OK niin se purkaa. Koska ei ole mitään purkaa, eikö? Ei ole malloc. En nimenomaisesti pyydä käyttöjärjestelmä mitään. Olen juuri alkanut käyttää muuttujia. Ja niin tämäkin on osoitus piirteitä korkeamman tason kielillä. Joten jälleen, useimmat tätä termiä olemme olleet tekemisissä täällä C. Super alhainen. Näet tietokoneen muistiin. Voit koskettaa jotain haluavat tietokoneen RAM, parempaan tai huonompaan. Täällä aiomme luopumaan että valtaa. Mutta minun Jumalani, katso miten paljon vähemmän koodia kirjoitin. Itse olisin puhu ja puhumalla minun kirjoittamalla, olisimme tehty kanssa Tässä esimerkissä viisi minuuttia sitten. Joten mitä hinta maksetaan? No katsotaanpa katsomaan. Katsotaanpa katsomaan. Aion mennä eteenpäin ja ajaa CS50. Sallikaa minun ensin mennä nykypäivän esimerkkejä Minulla tekstit hakemistosta kuin ennen. Aion ajaa ratkaisu se tulee ongelma asettaa viisi nimeltään aapinen, joka on CS50 tilille. Ja aion käyttää sitä jotain iso kuten King James Bible, juuri niin, että me todella laittaa henkilökunta ratkaisuja testi. Nyt joskus Internetin hieman hitaammin, hieman nopeammin, saattaa kestää jonkin aikaa vierittää. Mutta kesti yhteensä 0,56 sekuntia oikeinkirjoituksen tarkistaa King James Raamatun avulla henkilökunta ratkaisu. Niin melko hyvä. Sinun voi olla paljon hitaampaa, ja se on täysin hieno. Mutta se on oikea täällä. Niin, että henkilöstö ratkaisu. Jos menen ja puhdistaa PHP versio. Ja aion tehdä vähän kuten leivonnassa näytä asia. Aiomme ottaa koodin kirjoitin aikaisemmin, joten se on täysin oikein. Koska koodi kirjoitin ei aio oltava täysin oikea juuri nyt. Mutta jos juoksen PHP versio, mitä minun tarvitse luopua tänään? Kesti viisi minuuttia toteuttaa p asettaa viisi, minä väittävät. Mitä hinta olen maksanut? Joo. Yleisö: Nopeus. SPEAKER 1: Nopeus. Mitä sinä tarkoitat? Yleisö: Se tulee kestää kauemmin. SPEAKER 1: Selvä. Katsotaan. Se tulee kestää kauemmin, ei kirjoittaa, mutta käyttää sitä. Joo. Joten kokeile tätä. Joten tässä aion mennä eteenpäin ja tehdä PHP on aapinen, ja koska tiedoston nimeltään aapinen. Joten minulla ei ole sanakirja, muistaa, Olen käynnissä ohjelma nimeltä speller. Aion kulkea samassa tiedosto, Kuningas James viides. Se rientää. Tämä voi vain olla Internet nopeus, joten älä lue liikaa tuohon. Mutta se ei tunne enää varmasti. 1.26 sekuntia. Nyt se on edelleen melko pirun nopea, eikö? Ja ainoa syy, että tuntui enemmän kuin kolme, tai neljällä tai viidellä sekuntia, se on vain koska Internet oli oltava hitaasti. Tietokone aika oli 1,26 sekuntia, verrattuna mielestäni 0.56. Joten yli kaksi kertaa niin hidas. Nyt se on vielä tosi nopea, mutta se on osoitus ja todellakin, että tarkkaa hintaa. Koska olemme tulkkaus koodissa rivi riviltä, ja että ohjelma PHP lukee minun koodi ylhäältä alas, vasemmalta oikealle, se on tehtävä enemmän ajattelua. Se on eräänlainen muuntaa se sisällä itse vastaavaan kone koodi lennossa, niin sanoakseni, vaikka mekaniikka ovat hieman erilaiset. Eikä vain syöttämisestä Intel CPU raaka nollia ja ykkösiä että se ymmärtää natiivisti. Niin ehdottomasti, kädet alas, olemme maksaneet hinnan. Ja koodi on kirjoitettu kielellä kuten PHP yleensä hitaampaa. Mutta minun Jumalani. Joten nyt kun oikeinkirjoituksen tsekkaa tiedosto, vietän ylimääräinen 0,7 tai niin sekuntia vs. 20 tuntia toteuttaa nopeampi oikeinkirjoituksen tarkistus, eikö? Se on tavallaan kaupan pois. Ja jos olet juuri aloittamassa p asettaa viisi, ehkä ole 20 tuntia. Ehkä paljon vähemmän kuin että. Mutta se on kaupan pois, oikeasti. Ja jos käytät koodin todella iso tietokokonaisuuksia, tai jopa vanhempi kone, tuollaiset erot voi varmasti lisätä jopa. Kaikki kysymykset tähän mennessä? Joo. Yleisö: [äänetön] SPEAKER 1: Anteeksi, voi sanot sen vielä kerran? Yleisö: [äänetön] SPEAKER 1: Olet luopumista aikaa. No, niin joo. Säästät aikaa ei tarvitse kääntää se, jos se mitä kysyt. Ja todellakin, vuonna CS50, useimmat ohjelmat, vaikka ne saattaa kestää jonkin aikaa kirjoittaa, he ovat suhteellisen lyhyitä. Joitakin kymmeniä, joitakin satoja riviä koodia, ja niin he koota melko nopeasti. Mutta kun aloitat kirjallisesti isompi ohjelmia, kuten jos olet Microsoft tai olet Google ja kirjoittaminen todella iso ohjelmat C, tai C ++, tai vastaavalla koottu kielet, voisi monta sekuntia, tai jopa minuutin tai kauemmin koota miljoonia rivejä koodia. Ja sielläkin, että Ero tulee täsmää. Ja itse asiassa, kun me siirtyminen tänään, samana päivänä tänään, web ohjelmointi PHP, olet menossa löytää se vain niin paljon miellyttävämpää kirjoittaa koodia kun sinun ei tarvitse tehdä näitä typeriä toimenpiteet, kuten muutos puhelimesi ikkuna, tyyppi merkki Hei, re ajaa se, lataa ikkuna. Vain niin paljon tyhmä mekaaniset vaiheet, jotka vain tiellä tehdä mielenkiintoinen, hauska työ. Ja todellakin heitämme että pois PHP. Ja voimme vuorovaikutuksessa sen nopeammin. Joo. Yleisö: [äänetön] SPEAKER 1: Toki. Voinko selventää, mitä se tarkoittaa tulkittava? Kun käännät kieli kuten C, se menee alas kuten sanoimme kone koodi, nollia ja ykkösiä. Ja Intel päätti vuosi sitten, että tiettyjä malleja nollia ja ykkösiä edustavat lisäksi tai vähentämällä, tai tulostaa tai muu perustoiminnot. Kun maailma tulkittu kieli kuten PHP tai JavaScript tai Python, tai Ruby, tai rypäleterttuja toiset, sen sijaan joku on kirjoittanut interpreter-- tässä tapauksessa, sitä kutsutaan myös PHP, identtinen nimeksi language-- että olennaisesti on iso silmukka se, että toistetaan hoitaakseen kaikki riviä koodia että minä ruokkia sitä tulona, ​​kuten hei piste PHP, tai sanakirja piste PHP. Ja sitten voit ajatella niiden suuri silmukka olevan paljon ehtoja. Ja nämä ehdot sanovat, jos ihmisen on kirjoittanut avainsanan, alkaa tehdä hänen koodi uudelleen ja uudelleen. Tai jos ihmisen on kirjallinen koodiriviä, jos vain toteuttaa näiden seuraavalle riville ehdollisesti. Joten se on todella kuin tulkkaus se ihmisen mielessä, linja riviltä, ​​ja että vain vie aikaa. Se kestää yläpuolella. Ja niin se price-- hyvä question-- me maksamme. Joten tehdä uuden demon se hieman dramaattinen. On, sanoisin, ballpark tämä on 90% todennäköisyys ei ole hirvittävän, mutta sinun on hämmästynyt 10% todennäköisyydellä. Niin joka vuosi yritämme tehdä tämän, jolloin me yrittää kirjoittaa ohjelma, joka menee läpi Harjoitus nolla, joille olet lähettänyt puhelinnumeroita ja Paljon muita demografisia tietoja, ja me ohjelmallisesti lähettää sinulle tekstiviestin. Ja sitten kaikkien puhelimeen piippaa tai värähtelee, ja se on mahtavaa, koska hyvin, katsoa, ​​mitä tietokoneet voivat tehdä. Tämä harvoin toimii oikein näyttää siltä, ​​suurelta osin koska olen yleensä saada mustalle listalle Gmail tai muu palvelu sillä itse yrittää tehdä tämän mittakaavassa. Mutta hauska asia on liian, koska me ei ole kaikki täällä tänään, hauskaa asiassa viimeinen kerta kokeillut tätä kaksi vuotta sitten, Mielestäni kirjoitin ohjelma että istui silmukka iteroimalla kaikkien oppilaan luokka, ja jokainen niistä tekstiviestin, ja se sanoi jotain, miksi et luento? Rakkaus, CS50 bot. Sinulla ei ole aavistustakaan kuinka monta pahoitteli ja tavallaan tuskallinen sähköposteja Olen saanut vastauksena alkaen n miinus 100 ihmistä, jotka eivät olleet täällä sinä päivänä. Ja vielä hauskempi, enemmän häpeällistä story-- tiedätte, nyt laita se siellä. Se on jo video muutama vuosi sitten. Joten huomaamme minut kirjoittaa varten silmukka, jolloin se on erittäin helppo kirjoittaa vian, joka silmukka, siten, että ensimmäisen kerran silmukan läpi, te lähettää yhden tekstiviestin. Toisen kerran silmukan läpi I olisi lähettänyt yhden tekstiviestin, ja sitten yksi enemmän tekstiä viesti, ja yksi enemmän. Mutta se osoittautuu jos teet kirjoitusvirheen kun ohjelmointi, joskus voi kirjoittaa ohjelmia, jotka lähettää yksi tekstiviesti, sitten kaksi tekstiviestejä, sitten kolme tekstiviestejä kaikille joka on jo saanut tekstiviestin. Ja kuten tiedätte, tekee jotain, plus jotain, plus jotain, plus jotain, on iso O, paljon Tekstiviestien, tai n potenssiin, tai $ 0,10 tekstiviestin, $ 20,000. Onneksi osuin control-C ennen tapahtui, mutta en velkaa ainakin yksi edeltäjistänne $ 20 200 joitakin kummallisia tekstiviestejä, ei vain meni hänen puhelimeen, mutta myös se oli kuin vanhempi läppä puhelin joten se pidä työnnetään ulos hänen muisti joka toinen henkilökohtainen teksti Viestin hän oli tosiasiallisesti saanut. Joten meillä on yksi tavoite tänään, ei tehdä sitä. Ehkä päälle lentotila. Selvä. Joten mennä ohjelma täältä callled-- että minä kutsun teksti piste PHP. Ja etukäteen, minulla kaksi tiedostoa täällä. Tein tiedoston juuri henkilökunta, joka on saanut kaikki henkilöstön tiedot, kaikki nimet kurssin verkkosivuilla. Ja sitten sillä nyt minä vain laittaa jotkut fake numerot 555-1212. Joten nämä eivät itse mennä minnekään. Mutta huomaa sisälle tämän CSV-tiedoston, joka puhuimme lyhyesti ennen yhteydessä tiedoston IO. Mikä CSV-tiedosto? Pilkulla erotettuna muuttujia. Ja tämä on ikään kuin hyvin kevyt tietokanta, jos haluatte. Siellä on tavallaan eräänlainen neljä saraketta tässä tiedostossa, ja siellä rosoinen, mutta pilkut olennaisesti edustavat sarakkeet tiedoston. Ensimmäisessä sarakkeessa on TF tai CA-nimi. Toinen sarake on heidän sukunimi. Kolmas sarake on heidän puhelinnumero. Ja neljäs sarake ilmeisesti is-- Neljäs sarake on ilmeisesti mitä? OK, joten se on niiden harjoittaja. Joten Verizon, tai Sprint, tai mitä ei. Ja jos minä misspoke aikaisemmin, CSV. CSV on CSV täällä. Mitä voin tehdä tämän? No tämä on vain iso tekstitiedosto, ja se on eräänlainen pitkä, eikö? Näinkö on menossa olla eräänlainen ärsyttävää. Ja se kääntyy pois, vaikka, että jos minä haluat lähettää tekstiviestin, katsotaanpa sanoa Alex täällä. Anna minun mennä minun selain ja poistua koko näytön tilassa juuri niin voin vaihtaa edestakaisin. On käynyt ilmi, katsotaanpa, jos menen täällä, ja kirjaudu Gmailiin, kaikki hyvin. Älä katso tätä osaa. Vain saan nähdä. tietenkin Livestream voi silti nähdä mitä olen tekemässä. Selvä. Joten tässä on vain Gmailin kanssa John Harvardin tilille. Joten jos haluan lähettää tekstiviestin Alex, Voin tietysti kirjoitan viestin. Ja se kääntyy pois, ja olen Testasin sitä Alex ennen täällä, joten voit liittää tietty verkkotunnus nimi ihmisten puhelinnumeroita, koska on olemassa maailmassa asioita kutsutaan SMS sähköpostiin yhdyskäytäviä. Joka on hieno tapa sanoa kaikki meistä, jotka ovat matkapuhelimet, että on puhelinnumeroita, tietenkin, siellä luultavasti on operaattori, tietty pääte, kuten AT Vtext.com Verizon tekstiviestin dot com, että voit liittää oman oma henkilökohtainen puhelinnumero, ja sitten sinä tai ystäviä, tai vanhemmat voivat tekstiksi, jota tuona osoite. Ja Verizon on palvelin, sähköposti palvelin, että saatuaan tämän sähköpostin, tarkastellaan numero-osa ja sitten käyttää mitä erityistä teollisuuden taikaa heidän on itse lähettää sen yli radioaallot omaa cell puhelin. Nyt tämä on mukavaa, koska en todellakaan tiedä, miten lähettää tekstiviestin tai kirjoittaa koodia vielä minun matkapuhelin, ja saatat tehdä juuri, että opinnäytetyö, mutta nyt kaikki Minulla on minun laptop täällä. Joten haluan kerrata yli että CSV tiedosto, linja, riviltä, ​​riviltä, ​​riviltä, napata jokainen henkilöstön puhelinnumerot, ja niiden kantajan ja ohjelmallisesti, liität, eli kytkemään puhelimen numero sopivan verkkotunnus ja sitten lähettää sähköpostia. Niin, että on paljon vaiheita. Ja onnea tee sitä C. Se on painajainen tilanne avata tiedoston, voit lukea sen rivi, riviltä, ​​riviltä, ​​kun näkevät, tai saattaa pian nähdä kanssa ongelma asettaa viisi, jos ei Harjoitus neljä, ja sitten dynaamisesti liität kaksi merkkijonoa yhteen, koska C, ottaa kaksi merkkijonoa ja yhdistää ne, Mitä minimaalisesti täytyy tehdä todennäköisesti? Sinun täytyy julistaa enemmän muistia, eikö? Ja kysyä, malloc, voinko olla enemmän muistia? Joten voin laittaa puolet tästä täällä, puolet tästä täällä. Se on vain niin monta askelta. Ja siihen mennessä olet menettänyt kiinnostus tyhmä pikku demon jossa teet kaikkien puhelimeen äänimerkin. Tehdään tämä tavallaan PHP tyyli, jolloin me vain alkaa käyttää useampaa että tiskiallas. Ja ideat ovat pohjimmiltaan sama, mutta emme tarvitse huolehtia liikaa paljon, että alemman tason. Joten miten voisin edetä tässä. Ja juuri niin, että en toistaa menneisyyden virheitä, Olen kirjoittanut joitakin muistiinpanoja itselleni täällä. Ja nyt nähdä, jos voin kävellä meitä läpi joitakin perustavanlaatuisia vaiheet, ja sitten aikojen kunniaksi me will ehkä leikata joitakin kulmat lopussa. Aion mennä eteenpäin ja tehdä avoin kiinnike PHP aloittaa tämän tiedoston. Ja aion mennä eteenpäin ja tehdä tämän. Tiedoston kahva, ja se näkyy pian nähdä, todella kehottaa toiminto nimeltään f auki. Ja muistakaa tämä avaa tiedoston. Ja lainaus, lainaus, R tarkoittaa mitä, taas? Avaa vain se lukea. Nyt p setti, teit tämän. Ja kahva voisi olla mitään, fu, baari, bas, mikä tahansa muuttujan nimeä. Mutta yleensä tietokoneen tiedemies kutsuisi avoimen tiedoston, antaa sinulle tiedoston kahva, jotain pitää kiinni niin sanoakseni. Olen juuri menossa tehdä jokin virhe tarkkailun. Joten jos kahva on väärä, aivan kuten C, aion tehdä jotain, Ei voitu avata tiedostoa, kenoviiva n. Ja sitten olen juuri menossa mennä eteenpäin ja poistu. Ja se kääntyy pois, PHP, En ole sisällä toiminto. Ei ole päätehtävä täällä. Joten en palaa, sinänsä. I Poistu. Joka on pohjimmiltaan sama asia. Ja olen poistumista yhdellä y todennäköisesti. Yksi vain tarkoittaa virhe jonkinlaisia. Se on ei-nolla, niin se on virhe. Selvä, joten jos olen täällä nyt minun ohjelma olen avannut tiedoston. Aion mennä eteenpäin ja julistaa array nimeltään osoitteita, ja C olisin tietää taulukon koko etukäteen, eikö? Tai olisin tarvitse ilmoittaa tämän on osoitin, ja sitten käyttää malloc. Ja sitten joka kerta luen kautta toinen rivi tiedoston, Aion täytyy malloc enemmän muistia, malloc enemmän muistia. Se kipu niskaan. Ja onneksi, PHP, ja Ruby, ja Python ja JavaScript, ne kasvaa teidän paneelit automaattisesti. Ei enää malloc. Ei enää muistin hallintaa. Tietokone huolehtii siitä. Mutta hinta maksat. Se on hieman hitaammin. Ja tällaisen ohjelman emme aio huomata. Aiomme lähettää 100 tekstiviestiä. Esimerkiksi aio tuntea sen. IT oikeastaan ​​vain alkaa asia haluamallasi kielellä kun tietoja tai ohjelmat saada todella, todella melkoinen, koska on kyse enemmän meidän web-pohjainen juttuja. Mutta Nyt eteenpäin. Vaikka se kääntyy siellä on toiminto C kutsutaan f saada CSV. Tiedosto saada CSV, joka vie tiedoston kahva sen väitteen, ja se etenee sitten, rivi, jonka rivi, riviltä, ​​lukea peräkkäin. Niin se vain lukee linja tekstiä tiedostosta. Mutta mitä mukavaa tästä toiminnosta, se ei vain käsi minulle rivi tekstiä. Se näyttää niille pilkkuja, ja jäsentää linja. Ja jäsentää linja merkitsee jakaa se tiettyjä arvoja tässä yhteydessä. Toisin sanoen, dollarin merkki rivi on muuttuja, joka on aio antaa minulle kasan indeksejä. Tämä tulee olemaan ensimmäinen sarake minun CSV. Tämä tulee olemaan toinen pylväs, tämä tulee olemaan kolmas, ja tämä tulee olemaan neljäs. Koska muistaa, ja Excel ei yhteistyötä viimeksi teimme tämän, mutta jos lataan henkilökunta piste CSV. Oho, ei nimetä. Jos lataan henkilökunta piste CSV, ja yritä avata sitä, Olen jo registered-- oh ei päivittänyt Excel edellisen kerran. Näet että henkilöstön piste CSV, minulla on neljä saraketta. Joten kun luin ensimmäinen rivi Abby täällä, dollarin merkki rivi 0 on Abby, dollarin merkki rivi yksi on Lyons, dollarin merkki rivi kaksi on hänen numeronsa, ja sitten hänen puhelimen harjoittaja. Joten siinä kaikki. Ja se on mukavaa, koska olen ei tarvitse nyt selvittää jos kaikki nämä pilkkuja todellisuudessa ovat. Joten aion mennä eteenpäin ja tehdä tämän, koska määritelmä, Aion sanoa, että hänen nimensä on rivillä kiinnike nolla, kuten luvattiin. Ja aion grab-- ja todella, tiedätkö mitä? En aio murehtia hänen nimensä, tässä tapauksessa. Aion pitää sen yksinkertaisempaa. Aion tehdä hänen numeronsa on rivillä kiinnike kaksi, luulen. Ja hänen kantaja oli missä? Rivi kolme, yksi yli. Joten mitään uutta siellä. Se on vain nolla indeksointi taulukkoon. Ja nyt, aion toimi seuraavasti. Jos liikenteenharjoittaja vastaa vastaa AT & T-- Olen juuri menossa on loop-- Haluan luoda sähköpostia osoite, joka näyttää tältä. Se tulee olemaan 617-555-1212 at, mikä se on, text.ATT.net, on mitä haluan tehdä. Joten miten voin tehdä tämän? Aion tehdä seuraavat. Hänen osoite tulee olemaan hänen numeronsa, ja nyt, anna minun mennä eteenpäin ja tehdä tämän. Tämä on noin funky syntaksi. Voisin tehdä prosentin s temppu, mutta en voi oikeastaan ​​vain tehdä tämän. Joten tämä on PHP asia, mutta Tarkastellaan mitä olen tekemässä. Dollaria merkki osoitteen vasemmalle, vain muuttuja. Anna minulle muuttuja. Minulla ei tarvitse eritellä. PHP selvittää sen. Oikealla puolella, Mikä tietotyyppi Tämän koko asia oikealla puolella? Näyttää merkkijono, koska siellä on kaksinkertainen lainaa äärimmäisenä vasemmalla ja oikeassa reunassa. Nyt on olemassa joitakin outoja uusia syntaksin täällä. On aaltosulkeita, ja dollarin merkki numero. Mutta ottaa arvata, mitä se on syntaksi luultavasti kertoo PHP tehdä minulle? Joo. Vain lisätä arvoa siellä. Joten ei prosenttia s. Voisimme käyttää tulostaa f, tai s Tulosta f tai jotain sen, mutta PHP ja paljon korkeamman tason kielillä, aiot nähdä, että voisit tehdä sama asia toiminnallisesti, ehkä kuudella eri tavalla. Ja niin se alkaa tulla asia suunnittelun tai tyyliä. Joten tämä on vain kryptinen näköinen tapa sanoa, anna minulle sähköpostia osoitteeseen, mutta plug-in numero näiden aaltosulkeiden. Ja kihara henkselit eivät päätyvät lopullisessa osoite. Nyt voimme ohittaa joitakin nämä linjat aikojen kunniaksi. Joten jos kantaja vastaa vastaa verHorizon-- oho, Verizon-- Haluan tehdä jotain hyvin samankaltainen, jossa osoite saa, lainaus, lainaus, numeron text.ATT.net. Ja sitten voin tehdä samanlaista asia loput harjoittajille. Mutta minä vain tehdä piste, piste, piste nyt. Ja nyt oletetaan, että Haluan lisätä array, paina. Haluan lisätä array, nimeltään osoitteita. Tämä osoite, tämä on miten lisätä jotain array PHP. Sinun ei tarvitse tehdä malloc. Sinun ei tarvitse muuttaa array. Sanoit array, push. Mitä haluat push-- mitä array haluat ajaa jotain päälle? Osoitteet. Mitä haluat ajaa päälle osoitteisiin? Osoite. Ja itse asiassa, jos todellakaan halua olla fiksu, jotkut syntaktinen sokeria tätä, niin sanotusti, joka vain tarkoittaa, kuinka voit tehdä tämän kauniimpi tapa, olisi tehdä tämän. Sekin on vaikutus kasvaa osoitteet array koon yksi, ja sitten plop että ylimääräiset sähköpostiosoite siihen. Joo. Yleisö: [äänetön] SPEAKER 1: typo päälle muu if-- OH, kantaja. Se on ok. Se myös eivät pidä minun jättämistä toteuttaa osana tätä ohjelmaa myöhemmin. Mutta kiitos pyyntiin. Vielä yksi vika. Kiitos. Haluamme olla Vtext.com. Kyllä. Selvä. Joten jos tämä jättää meidät? Olemme kirjoitettu koodi avaa tiedoston. Meillä on silmukan kerrata yli rivit tiedostoon. Meillä on koodi, joka lisää minun valikoimaan, yksi kerrallaan, oikein muotoiltu sähköpostiosoite. Niin kaikki mitä todella jää on lähettää sähköpostitse kunkin työntekijän. Joten olen mennyt eteenpäin ja readied itse seuraavasti. Mitä aion tehdä täällä is-- ja lähdetään mennä eteenpäin ja siirtyä joitakin todellisia koodia, joka näyttää tältä. Joten tässä on esipaistetun versio Kirjoitin aikaisemmin. Ja huomaa lopetin täytäntöönpanosta Sprint. Lopetin täytäntöön T-Mobile. Lopetin täytäntöönpanosta Virgin Mobile. Ja minä anteeksi etukäteen. Siellä on muutama harjoittajat, jotkut oppilaan luokka on että en vaivaudu luetellaan IF kunnossa täällä. Joten kaikki tekstit sammuu. Mutta katsotaanpa mitä muuta minun tulee tehdä. Suljen tiedoston, vain kuten s asettanut neljä. Ja tämä on uusi syntaksi. Ja näemme hieman bittinen tämän ajan, erityisesti p asettaa seitsemän ja kahdeksan. Mutta tämä on syntaksi luoda erityinen rakenne. On käynyt ilmi, siellä on kirjasto, joka tulee PHP, nimeltään PHP Mailer. Sen tarkoituksena elämässä on ohjelmallisesti lähettää sähköposteja. Se on koodi joku muu kirjoitti, että helpottaa voimme lähettää sähköposteja, joten meidän ei tarvitse pitää menee edestakaisin Gmailiin, ja liittämällä ihmisten sähköpostiosoitteita. On koko joukko linjat täällä että rehellisesti, olen juuri sellainen kopioitu ja liittää asiakirjat. Ja itse asiassa, jos olet utelias, Jätin kaikki ja URL asiakirjat koodissa että me post myöhemmin. Ja huomaa, että yksi mitä minä teen on, minä kerron tämän kirjaston, käyttää Gmailin palvelinta, eikö? SMTP puhuimme lyhyesti kun olivat Yale olemisesta Simple Mail siirtoprotokolla. Se on protokolla, palvelimia käytetään lähettää sähköpostia, ja that's-- Gmailissa on yksi niistä. Portti, tämä on TCP-portin numero. Se on hienoa, jos olet ole nähnyt 587 ennen. Juuri tietää, että dokumentaatiosta. Tässä on minun käyttäjätunnus. Aion käyttää CF50 botti. Ja hetken kuluttua, olen juuri menossa kirjoita botti todellista salasana. Ja sitten täällä, huomaa, mitä jää jäljelle. Asetan osoitteesta on BOT klo CS50.net. Luulen tule katumaan lähettää tekstiviestin 800 ihmistä, jotka sanoo, kaipaan sinua, rakkaus CS50 botti, ehkä niille, jotka eivät päässeet tänään. Ja sitten linjassa 76, mitä teen? Tällainen näyttää kuten C. Joten i on 0, n equals-- nyt laskea on uusi. Osoittautuu, että jos haluat saada monia asioita array, sinun ei tarvitse muistaa sitä enää. Voit vain kysyä toiminto nimeltään count, ja se kertoo, kuinka monta osoitteet ovat tässä array. Ja sitten aion lisätä osoitteen sähköpostitse. Ja Tiedän tämän käyttämällä asiakirjat. On lisäosa osoite toiminto. Ja nyt huomaa siellä on yksi pala syntaksin. Olemme nähneet tämän ennenkin C. Samanlaisia ​​hengessä. Voit ajatella dollarin merkki mail muuttujana, joka se on. Mutta se on struct sisällä jotka eivät ole vain ominaisuuksia, muuttujat jos haluatte. Mutta käy ilmi, että PHP, joka on olio-ohjelmoinnin kieli, kuten Java jos olet ottanut APCS. Dollarin merkki posti, jos haluat to-- se on myös tehtäviä sen sisällä, tai menetelmiä. Joten tämä tarkoittaa, että erityinen PHP Mailer kirjasto, jos minulla muuttuja sen, jos haluan soittaa toiminto, mukana, että kirjasto, nykypäivän tarkoituksiin, vain tietää käytät nuoli merkintää. Ei ole piste notaatio. Se on vain nuoli. Mutta se ei ole osoitin. Se on vain lainattu C: n syntaksia. Joten soita lisätä osoite sisällä tämä kirjaston tai muuttuva. Selvä. Tämä on maaginen linja. Niin I Lähetä sähköpostia. Se vastaa avaamisen Gmail, kirjoittamalla se ulos, ja lyömällä lähetä. Mutta se tulee sen sijaan lähettää lähetä tähän osoitteeseen, jossa tämä elin, alkaen CS50 botti. Ja nyt avain linja. Tämä linja puuttui kuten 2011 kun luulen viime kokeillut tätä. Että linja siellä, tietenkin, tyhjentää osoitteet. Joten loogisesti, jos en älä poista osoite jokaisen iteraation, ensimmäinen sähköpostilla tai tekstiviestillä menee Alice, toinen menee Alice ja Bob, kolmas menee Alice ja Bob ja Charlie, siten erittäin kallis virhe Tein vuonna. Katsotaanpa. Onko kysyttävää ennen kuin lähetämme sinulle kaikki teksti viesti 10 prosentin todennäköisyys? Kysymyksiä? Selvä. Katsotaanpa minun mennä tänne ja muutos salasanan mitä pitäisi toimia, todennäköisesti saada mustalle listalle Gmail. Joten he eivät kaikki mene ulos, koska he luultavasti pidä meitä lähettää 800 sähköposteja vuonna silmukan kaikki kerralla. Koska se ei ole erityisesti ihmisen käyttäytymistä. Voi, aion muuttaa yhden asian. Ylös huipulla, aion sent-- muuta tiedoston opiskelijoille piste CSV. Enkä avaa, mutta tämä on identtinen CSV tiedosto ei 100 työntekijää, mutta 800 opiskelijaa, vain Harvardin, koska Yale on lokakuu syvennys tällä viikolla. Ja se tuntuu sellainen ääliö juttu tehdä tekstiin niitä kaikkia, miksi ne eivät ole luokassa lomalla. Se on ok. Vain Harvardin opiskelijat tänään sisällä tiedoston. Ja nyt mennään takaisin minun pääteikkuna. Olen aika hermostunut. OK joten nyt aion mennä hakemiston, ja PHP tekstin piste PHP. Miten noin rohkea vapaaehtoinen? Joten en halua tätä minua. OK, tule ylös. Mikä on nimesi? MAYA: Maya. SPEAKER 1: Maya. Tule ylös, Maya. Selvä. Katsotaanpa, jos tämä toimii. Laitoin oman sähköpostiosoite file-- oma puhelinnumero tiedoston, niin että toivottavasti saan yhtä hyvin. Kiva tavata. MAYA: Samoin. SPEAKER 1: Joten kaikki mitä sinun tarvitsee tehdä on paina enter lähettää 800 tekstiviestejä, jos en tyriä. Kiva. Saattaa kestää jonkin aikaa, tilastollisesti, kunnes saamme sähköpostia address-- tekstiviestin, joka on huoneessa juuri nyt. Katsotaanpa viipyä ja nähdä. Yleisö: [Whistling] SPEAKER 1: Voi, kyllä. Yleisö: Voi, Sainpas. SPEAKER 1: silmukat are-- tämä ei hidasta, koska PHP. Tämä on hidasta, koska Gmail on kuristamalla meitä eikä saimme lähettää yli kuten yhden sähköpostiosoitteen sekunnissa. Mitään? Tämä oli kova juttu minulle testattava kotiin vain minun ja yhden puhelimen, niin. On, että toivottavasti siitä botti? Kyllä? Ei? Sano kyllä. Ei? Se ystävältä? Hankala. OK. Melko varma, se toimii kuitenkin. Uh oh. Ne black-- OH, odota minuutti. Voi, tiedätkö mitä? Hetkinen. Vain Maya ja I-- Mia, se oli? MAYA: Maya. SPEAKER 1: Maya, ovat menossa tietää mitä tein väärin täällä. Voi, odota minuutti. Taisin juuri lähettänyt 100 tekstiviestejä 555-1212. Valmiustila. En voi voittaa mitään vuosi. OK. Maya? Korjaa että jälkikäsittelyssä. Hemmetti! Seuraavat osoitteesta. OK, valmiina. Anteeksi. Se on tuskallista vuosittain. OK, yksi hetki. Tämä on hyvä. Olen sen sijaan menossa tekemään tämän. Tulosta osoite. OK, valmiina. Tulosta osoitteet, kiinnike i. Joo, pidän siitä. Dollari sign-- OK Selitän mitä olen tekee hetki, kun olen suorittaa tämän. Joka vuosi. OK, tässä sitä mennään. Minulla on just-- ja En halua näyttää kaikille puhelinnumero, mutta Maya voi vahvistaa nyökkäys pään, että hän näkee kaikki ovat puhelinnumero luokassa että aion kopioida ohjelma nimeltä Gmail. Ja jos Gmailissa, mitä haluamme sanoa? Ikävä sinua. Love-- se ei ole minulta. En ole edes osunut lähettää vielä. Joten mene eteenpäin ja tehdä tämä, jos voin suurentaa. OK. Joten olen käyttäen ohjelma nimeltä Gmail nyt. Jos Maya, haluat klikkaa lähetä-painiketta, me simuloida mitä se koodi olisi pitänyt tehdä. Mitään? [Piippausta] Yleisö: Jep. SPEAKER 1: Kyllä? Pelastus? Yleisö: Jep. SPEAKER 1: Miss you. Ja aion lähettää loput. Lähetin puoli koska en uskonut Gmail olisi nuo läpi. Joten vain muistaa, tänään on päivä että olet oppinut, että voin käyttää Gmailia. Se oli kauhistuttava. Isot aplodit Maya. Kiitos. Selvä, niin. mitä [Piippausta] Saimme muutaman piippaa, kyllä? Selvä. Nyt aion saada 700 todella onneton sähköpostit takaisin luokkakaverit. Joten ainakin näemme jos se oli sen arvoista. Mikä meni pieleen? Minä selvittää, mikä meni väärässä jälkikäteen, mutta katsokaa miten helppoa se oli tehdä, että PHP. Mitä siis voimme itse tehdä nyt, että meillä on tämä ilmaisuvoimaa PHP. Se was-- että oli kamala. Selvä. Joten oli mitä olisi pitänyt mennä ulos. Tämä oli minulle testaus tänä aamuna minun puhelin, todellinen kuvakaappaus puhelimeni. Mutta nyt Tarkastellaan miksi olemme todella käyttöön kaikki tätä kamaa ensimmäinen paikka. Joten tavoitteena ei ole kirjoittaa nämä ohjelmat kirjoitetaan komentoriviltä, ​​eikö? Joten kirjoitin yksinkertainen Hei ohjelma, kirjoitin pieni ohjelma, joka tekee conditionals, ja käytetään lukea linjan ja niin edelleen. Ja teoriassa, minä vain kirjoitti ohjelma, joka lähetettiin 800 tekstiviestejä, antaa tai ottaa 800. Ja että ohjelma oli kaikki silti ajaa komentoriviltä. Ja että tietenkin on ei verkossa, eikö? Tavoitteena on nyt alkaa käyttää mitä Väitän on helpompi käyttää kieli, daresay enemmän voimakas kieli kannalta ominaisuuksia, jotka tulevat sen kanssa, aloittaa kirjallisesti koodia, joka luo web-sivuja. Niin viimeisen kerran ja viime viikolla, puhuimme HTTP ja HTML. Ja mikä on mukavaa noin HTML on, että se on vain puhdasta tekstiä. Ja teksti on varmasti jotain, että voit tulostaa kirjaimellisesti soittamalla Tulosta f-toiminto, tai tulostamista. Ja todellakin, sitähän PHP on nyt menossa jotta voisimme tehdä. Joten joukossa esimerkeissä on tänään lähdekoodin, lisäksi joitakin koodi että laitoin sinne hetki sitten, meillä on ohjelmia, kuten tämä esimerkiksi. Froshims, tai Keltanokka Intramural Urheilu, oli itse asiassa yksi ensimmäisistä extracurriculars Sain mukana vuotta sitten. Ja kämppäkaverini ja minä, kanssa jotkut muut lapset kampuksella, pyöritti froshims ohjelma. Saan minun tekstiviestejä nyt. Nyt niin me, takaisin seuraavana päivänä, joten tämä oli 1996 tai niin, oli internet, mutta ei ollut process-- siellä ei ollut verkkosivuilla froshims. Ja niin jos halusi rekisteröityä jalkapallo tai lentopallo tai mitä tahansa, voisitte täyttäkää tämä asia kutsutaan paperille, ja voit kävellä koko Harvardin piha, ja voit työnnä se osaksi postiluukusta ja Proctor, joka oli Wigglesworth yksi asuntoloista. Ja tämä olit rekisteröity. Ja hän olisi sitten säveltää sähköpostia sinulle käsin, aivan kuten minä vain teki täällä Maya, ja sitten olisi vahvistanut olleen rekisteröity. Joten tämä oli kuin pieni roikkuu hedelmiä, niin sanoakseni. Se oli typerää, että käytimme paperia tähän. Halusin, että voimme vain mennä verkkosivuilla, tai on Fuksit mennä verkkosivuilla, rekisteröidy urheilu, ja vain automatisoida paljon tätä kamaa laittamalla niiden nimet ja sähköpostit ja niin edelleen tietokantaan. Ja itse asiassa aivan ensimmäinen versio sivuston, käyttäen erittäin ruma HTML, ehkä näytti jotain tällaista. Se oli todella, ironisesti, lisää noloa näköinen kuin tämän takaisin sitten. Mutta käytin ohjelmointikieli. Ei PHP, vaan kutsutaan Perl, joka on vanhempi kieli, mutta hyvin samanlainen hengessä. Ja minä vain täysin opetti sen itse. Ja se vei minut jonkin aikaa tajuta se, kysyy paljon kysymyksiä ystäviä. Mutta ideat siellä olivat täsmälleen samat. Koska mitä PHP on todella suunniteltu sillä ei ole komentoriviltä jutut me vain pelataan, mutta web ohjelmointi. Se on todella sidottu sen ominaisuus asetettu web seuraavasti. Tämä on froshims. Ja jos halusin Rekisteröidy tässä muodossa, tämä on melko ruma, varmasti, mutta haluan mennä eteenpäin ja olla vähemmän mukava opiskelija, ja mitä urheilun Matthews, klikkaa Register. Haluan pystyä tekemään on toimitettava tiedot muodossa, ei Googlen palvelimelle kuin teimme viime kerralla, täysin huijaaminen käyttämällä niiden backend, I haluavat toteuttaa omaa backend koodia. Mikä tarkoittaa kirjoittaa PHP koodi, joka asuu URL että lomakkeen tiedot voidaan toimittaa. Ja sitten koodi, kirjoitettu PHP palvelimella, voi sitten vastata, että käyttäjä syöttää. Kuten hänen nimensä, tai näkömukavuus tai asuntolan, ja sitten tehdä jotain sen kanssa. Tässä tapauksessa olen vain typerästi painettu ulos tekstinä, joka ei ole kovin kaunis. Mutta voit varmasti kuvitella, jos tiedät HTML, ja voit pian tietää, miten luoda HTML painatuksella f, ja tulostaa, ja vastaavat toimet, voit varmasti luoda kauniimpi web-sivun, jossa lukee, Hei David, olet nyt rekisteröitynyt. Olet vähemmän mukava opiskelija Matthews, eikö? Voit vain käyttää koko joukko% ses, tai kihara henkselit ja dollarin merkki merkintätapa Käytin hetki sitten, että tuottaa tekstiä, joka on enemmän käyttäjäystävällinen kuin tämä. Joten katsomaan tämä tiedosto. Froshim nolla piste PHP näyttää tältä. Kun minä ladata CS50 IDE, froshim nolla näyttää tältä. Tämä on froshim nolla piste PHP. Ja mitä huomaat tämän tiedoston? Yleisö: [äänetön] SPEAKER 1: Anteeksi, hieman kovempaa? Yleisö: [äänetön] Se on kaikki HTML. Ja itse asiassa se on, koska mitä kiinnostavaa PHP on, että se oli suunniteltu olla, parempaa tai pahempaa, sekoittuneet HTML-koodia. Ja itse asiassa, vaikka tämä tiedosto, froshim nolla piste PHP, on PHP kommentti yläreunassa se, se kaikki on vain HTML. Mutta sitä vastoin, jos minä avata, katsotaanpa sanoa, rekisteröi nolla piste PHP, joka vain on iso kommentti huipulla. Tämäkin näyttää melkein kokonaan kuten HTML, paitsi mitä? Linja, mitä, 21 näyttää vähän outo. Mutta huomaa Olen kirjoittamalla PHP tila kanssa alkusulkumerkki kysymysmerkki PHP. Sitten minulla joitakin juttuja. Ja sitten lopussa että linja melkein olen, kysymysmerkki PHP. Ja tämä on mitä tarkoitan sekoittu-. Voit kirjoittaa HTML että juuri halua, että palvelin sylkäistä. Mutta jos haluat tehdä jotain dynaaminen katkea sivun, kuten lisätä nimeni tai asuntolan tai mukavuuden tasolla, Voin käyttää toimintoa kuten tulostaa R, joka on tulostaa rekursiivinen, mikä tarkoittaa vain sitä, tulostaa tämän muuttujan, alustamista miten haluat. Se todellakaan ole varten ihmisen kannalta, se on vain virheenjäljitykseen tai diagnostinen tarkoitus. Niin, että miten tein sen. Jos minä sen sijaan mennä froshims kaksi piste PHP, huomata, että toiminta tämän lomakkeen ei ole rekisteröity nolla pistettä PHP old-- edellinen todellisuudessa oli. Mutta se on rekisteröity kaksi piste PHP. Joten katsotaanpa miten tämä käyttäytyy hieman eri tavalla. Jos menen versio kaksi. Jos täällä, jos voin rekisteröityä David, vähemmän mukava, mistä asuntolan Mathews, rekisteröidy. Joten tällä kertaa se sanoi, et rekisteröidään, ei oikeastaan. Katsotaanpa, mitä tein täällä. Jos katson rekisterissä kaksi piste PHP, tämä on hieman PHP. Se on vähän puhtaampi, vaikka se vielä ylireagoi hieman pitkä tällä linjalla. Huomaa täällä. Olen tulostaa minun HTML-tunnisteen, pääni tunniste, minun otsikkokoodi, pää, elin. Ja sitten alkaa sanoa asioita, kuten syötä PHP-tilaan. Ja jotta tag, alkusulkumerkki PHP-- kysymysmerkki PHP sanoo, hei, palvelin, execute-- tulkita seuraavat juttuja PHP kunnes näet lopputunniste. Ja vaikka et ehkä tiedä mitään muut PHP kuin olet nähnyt tähän mennessä, voit eräänlainen lukea se melko intuitiivisesti. Jos nimi on tyhjä, tai mukavuus on tyhjä, tai asuntolan on tyhjä, mitä teen? Mitä sanon käyttäjälle? Sinun on annettava nimesi, mukavuus, ja asuntolan, ja niin edelleen. Else, sanon olet rekisteröity, No ei oikeastaan. Ja sanon ei oikeastaan koska ei ole tietokantaa. En tee mitään tietoja. Olen vain heittää sen pois esittelyä varten. Nyt Olen sellainen skimped yli linjan 22. On enemmän syntaksin siellä, mutta dollarin merkki korostaa virka on tavallaan mielenkiintoinen. Ja tämä on mitä mukavaa PHP. PHP, olet mitä kutsutaan muutama Super globaaleja muuttujia. Ne ovat tavallaan vieläkin tärkeä kuin globaaleja muuttujia. Ja nämä, kaikki aktivoidut sellaisenaan, tulevat PHP. Joten jos sinulla on palvelin, joka on web-palvelin asennettu, kuten Apache, ja asennat kieli tuki PHP, yhtäkkiä sinua voi alkaa käyttää näitä Super globaaleja muuttujia koodissa. Ja mikä on mukavaa noin PHP on, että jos vain kirjoittaa tiedoston, joka päättyy piste PHP, laita se web-palvelimelle, ja sitten lähetät lomakkeen se kautta että toiminta tag ja muoto tag, että toiminta määrite muodossa tag, PHP ja Web täysin keksii miten napata kaikki niiden keskeisten arvopareja ulos URL kuten kysymys Mark Q on yhtä kissat, se selvittää, miten q ja kissoja. Jos lähetät kuvan tai käyttäjätunnus, tai salasanan, kuten Facebook, PHP selvittää sinulle jos kaikki tämä tieto on. Ja se vain käsi sinulla tällainen taulukko nimeltään dollarin merkki alaviiva postitse, tai dollarin merkki alaviiva saada, riippuen siitä olet GET tai postitse huomautuksia. Ja se vain käsi sinulle Super globaali muuttuja, joten jos haluat saada nimeen että käyttäjä toimitti kautta, että web muoto, kirjaimellisesti vain sanoa nimi super globaali muuttuja, lainaus, Lainaus päättyy, nimi. Ja lainaus, lainaus päättyy mukavuutta, ja lainaus, lainaus asuntolan. Ja aiomme pystyä tekemään tämä ja paljon muuta PHP. Ja vaikka tämä oli pyörremyrsky vilkaista sitä, me sukeltaa paljon enemmän ensi viikolla. Me esitellä tietokanta niin että olet todella aikoo alkaa toteuttaa oman e-kauppa based-- kuten verkkosivuilla vain viikon ajan. Joten Nähdään ensi kerralla, ja Toivottavasti sait tekstiviestejä. Hei hei. [Musiikkia] [Oviaukko] SPEAKER 2: Hei. SPEAKER 3: Mitä kuuluu? SPEAKER 2: Mitä sinä teet? SPEAKER 3: Työstä Harjoitus. SPEAKER 2: Nice. Ylävitonen. [YLÄVITONEN] Mikä are-- uh, mitä sinä täällä teet? SPEAKER 3: vain ripustettu. Juuri palannut kuntosali. En voinut auttaa, mutta huomaa kun korkean fived, että sinulla on melko karkea käsissä. Käytkö kuntosalilla? SPEAKER 2: Ei. Ei. SPEAKER 3: Dude, näytät aika iso. Joka on huono, koska kaikki tietävät 8-pallo on iso mies kampuksella. Ylävitonen. SPEAKER 2: Tuota, ei. Ei, luulen olevani hyvä. Mielestäni olen hyvä.