Doug LLOYD: Yani bizim PHP sözdizimi video, Biz nasıl PHP hakkında çok Åey konuÅtuk Komut satırında kullanılabilir Bir Åekilde programları çalıÅtırmak için bu Biz C'den oldukça tanıdık Ama ben de belirtildiÄi gibi Bu video PHP BaÅlangıçta için geliÅtirilmiÅtir , web siteleri, web programlama uygulamak. Ve böylece bu video biz konum biz nasıl konuÅacaÄım web geliÅtirme baÄlamında PHP kullanmak. Biz gelen, zaten biliyor HTML bizim video web siteleri inÅa edildiÄini HTML etiketleri kümesinin dıÅında Bu anlamsal tanımlamak Bir web sayfasının yapısı. Ama web siteleri yönündedir Saf HTML ile inÅa Ãok muzdarip, çok ciddi bir sınırlama. Bu sınırlama göstermek için, en aÅaÄıdaki düÅünelim. Yani Åimdi ben bir web sayfasını oluÅturmak istiyor Bu, her kullanıcının ziyaret o bana akımı veriyor Cambridge, Mass zaman., son dakikaya görüntüleniyor. Ben Åimdi bu hakkı alıyordu ise, Ben böyle bir Åey diyebilirsiniz. Ben bu yüzden Cambridge-- geçerli saati HTML etiketleri, baÅ etiketleri, baÅlık etiketleri, vücut akımı tags-- Cambridge zaman 14:08 olduÄu Askeri zaman yazdırarak. Ne Åimdi 02:09, 14:09 eÄer olur? Peki bugüne kadar, HTML, ben gitmek ve 14:09 bunu deÄiÅtirmek için. Ve sonra bir dakika sonra, Tekrar deÄiÅtirmek zorunda. Ve sonra bir dakika sonra, Tekrar deÄiÅtirmek zorunda. Tahmin edebileceÄiniz gibi, iÅte Hiç muhtemelen kötü iÅ. Bir web sayfası için webmaster konum ve her dakika, günde 24 saat, EÄer geçerli saati güncellemeniz gerekir el time.html açma ve deÄiÅen kod sadece o pasajı söylemek saat ve dakika olarak Åimdiki zaman. Bu çok deÄil muhtemelen Bizim kaynakların iyi kullanılması, Ä°nsan ve hesaplama hem. Tüm HTML web siteleri vardır Tamamen statik bulunmaktadır. Güncellemek tek yolu içerik, biz sadece gördüÄümüz gibi, elle bu açık kaynak olan Dosyaları, bunları düzenleyebilir ve bunları kaydedin. Ve sonra, kullanıcı sayfayı yeniler, ya da ilk sayfasını ziyaret için zaman, onlar son içeriÄi alırsınız. Ama biz ettik çünkü sadece elle düzenlenebilir. Biz orada bazı PHP karıÅtırmak baÅlarsanız, Bizim kod çok daha esnek alabilirsiniz. Ve bizim sayfaları için bir yol olabilir Dinamik, ya kendilerini güncellemek için, Bizim zavallı gerektirmeden Ãnceki örnekte yöneticisi Åeyleri güncellenmesi manuel olmak. Onlar bunu otomatik olarak yapabilirsiniz. Biz müdahale etmek zorunda deÄilsiniz. Biz bazı uyku alabilirsiniz. Hangi muhtemelen iyi bir Åey varsa olduÄunu web programlama bir çok yapıyoruz. CS50 IDE Yani, biz koÅmak Web sunucusu Apache çaÄırdı. Bu, çok yaygın olarak kullanılan bu açık kaynak kodlu bir web sunucusu sistemi. Bu sistem vardır Kapasite yorumlamak EÄer yararlı olacak PHP, EÄer herhangi bir PHP programlama yapmak istiyorum. Ve CS50 IDE, bir komut var yapmak için bu çok kolay hale getirmek için, baÅlangıç ââapache50. Ve o çizgi yol, çizgi, çizgi için dir, bu sadece gerçekten ortak bir yol Burada belirttiÄiniz ne belirten Belirli bir yoldur Dizin bu sana Kök olmak istiyorum site veya kök sayfası, klasör veya hangi web sunucusu gelen Dosyaları incelemek ve hizmet baÅlayacak bunları istemek müÅterilerine onları yedekleyin. Yani lazım, CS50 IDE üzerinden pop izin Bu nasıl çalıÅtıÄını, gerçekten hızlı, size göstereceÄim. Yani burada CS50 IDE, ben varım Hafta Sıfır Dokuz denilen dizin. Ben iki-- Ve ben sadece LS komutu çalıÅtırılır Yukarıdaki ben size göstermek için Burada iki dizin, PHP, Ben kullanılan dosyaların dizi hangi PHP sözdizimi, video ve PHP web Dosyaların kümesi hangi ben Bu video kullanmak istiyorum. Ve ben baÅlamak istiyorum Bir web sunucusu örneÄi PHP-web klasörünün içeriÄini Dosyaları kadar servis ediliyor gibidir. Peki ne yapacaÄım? Ben apache50 boÅluk yazın gidiyor baÅlatmak uzay PHP, tire web. Bu dizin yolu var Åu anda neredeyim gelen. Sonra Enter tuÅuna basın. Bu bir yapacak Burada Åeyler biraz. Ve sonra, söyleyecek Apache baÅarıyla baÅlatıldı. Siteniz at-- Åimdi mevcuttur ve Daha sonra sitenin URL var. Peki ne yapacaÄım? Ben hızlı bir Åekilde bu kopyalamak için gidiyorum. Ve ben up-- açacaÄım ve Ben biraz uzaklaÅtırmak edeceÄiz var-- Ben açacaÄım Chrome'da yeni bir sekme. Ve ben bu URL'yi ziyaret edeceÄim. Ben Enter tuÅuna gidiyorum. Bu yük gidiyor. Ve tekrar uzaklaÅtırmak gerekir. Ve biz burada görebilirsiniz benim PHP web dizini içeriÄini. Yani artık temelde ne oluyor Burada CS50 IDE benim örneÄi olduÄunu bu dosyaları kadar hizmet veriyor Onları istekleri herkes. Ve boyunca Bu video biz sıralamak edeceÄiz Bu bir demet bakmak baÄlamda farklı dosyaları. Senin Apache olduÄunu test etmek için Sunucu çalıÅıyor, Genellikle hangi gidiyor CS50 IDE durumda gibi, ancak daha genel bunu yaparsan, ve kendi web oluÅturmaya baÅlayabilirsiniz sunucular, gerçekten var analog ortak tür genellikle "hello world" PHP web geliÅtirme için kullandı. Bir dosya için hangi Sadece bu code-- oluÅan PHP bilgi ayarlanmıŠbir PHP sınırlayıcı, Parantez, aralarında noktalı virgül. Hangi temelde bir özel Size söyler PHP iÅlevi PHP hangi sürümü çalıÅtırdıÄınız. Yani CS50 IDE, ben Mevcut bu dosya sadece Bu neye benzeyeceÄini göstermek için. Yani benim endeksi bakıyorum benim PHP örneÄinden. Benim Apache örneÄi çalıÅıyor PHP-Web içeriÄi. Ve ben bir dosya burada info.php denir var. Ben onu tıklatın uzaklaÅtırmak için gidiyorum. Bu gidiyoruz nedir hemen hemen, görmek için. Bu sadece bana anlatıyor Benim Apache sunucusunun çalıÅıyor. Ve bu, görünüÅe göre, bir PHP sürümünü çalıÅtıran ediyorum. Bu benim analog "merhaba dünyaya." Yani iÅler operasyonel olduÄunu biliyorum. Yani biz gitmeye hazırız. Biz buradan devam edebilirsiniz. Yani o tekrar edelim Zaman örneÄi biz Bizim zavallı webmaster ile bahsediyoruz kim sürekli sayfayı güncellemek zorunda kaldı. Bu nasıl bir düzeltme olabilir Bir Åeyler uygulamak böylece webmaster olmadıkları zaman güncelleme tutmak zorunda. It would sadece sıralama otomatik olarak gerçekleÅmesi. AÅaÄıdaki aÅaÄı, HTML, bu kadar bir istisna dıÅında, oldukça benzer. Ama burada ben üstündeki bazı PHP var. Ben, görünüÅe göre, bu çaÄrıda bulundular Fonksiyon date_default_timezone_set. Ve biz hakkında konuÅmak yok CS50 bu fonksiyonlar, PHP muhtemelen çünkü on binlerce. Bu bir biraz olabilir abartı, ama olmayabilir. Bu yerleÅik bir çok fonksiyonu var. Ve böylece bu fonksiyon görünüÅte ABD / DoÄu olarak zaman zaman dilimini ayarlar Hangi Ben zaman dilimidir Bu videoyu yapımında. Sonra bir arama yapmak Fonksiyon tarihi çaÄırdı. Ve görünüÅe göre, ben depolamak ediyorum HIS denilen bir Åey, zaman. Peki burada neler oluyor? Peki, temelde ne olan oluyor, ben bir çaÄrı yapıyorum gidiyor bazı sunucuya Zaman Åu anda ne olduÄunu söyle. Ve ben bir formata dönüÅtürülmesi ediyorum saat, dakika, saniye. Ve nedeni sermaye H bu var Bana 12 24 saat süre deÄil verecek küçük h olacaÄını saatlik zaman. Ve ben sadece depolamak ediyorum denilen bir deÄiÅken, zaman içinde. Böylece PHP ikinci satırı Orada, iÅlevi çaÄrısı, Tarih, sadece oluyor bazı dize, Bana tarih vereceÄim, ve Zaman ve diÄer bilgilerin bir demet. Ve orada ilk argüman, HIS ki Sadece önemli bir kısmını çıkarma olduÄunu Bu örnek hakkında bakım, hangi saat, dakika ve saniye olduÄunu. Böylece oluyor hepsi bu. Yani saklamak deÄiÅken $ zaman içinde bu. Ve sonra aÅaÄı at Orada çok alt, ben o steno var Åimdiki zaman yazdırarak. Ben sadece yazdırmak için gidiyorum Geçerli çıkıŠsaati nedir. Yani bu bir göz atalım CS50 IDE ve Åimdi sen nasıl O webmaster sorun bir çok tasarruf. Pekala, iÅte ben yine ben geri kök dizininde Benim Apache örneÄinin. Ve ben burada bir dosya olarak adlandırılan time.php var. Ben sadece bu tıklatın gidiyorum. Ve ben, çünkü yukarı olacak biz oldukça uzakta yer uzaklaÅtırdınız ediyoruz. Geçerli saat 14:20:34 olduÄunu. Yani, o saat yapıyorum dakika ve saniye. Ve ben yenileyebilirsiniz sayfa ve yeni zaman olsun. --41. Ben sayfayı yenilemek için gidiyorum ve yeni bir zaman, 44, 46, 47 olsun. Yani, ben açıkça deÄilim için herÅeyi kendim deÄiÅtirilmesi. Burada sayfayı yenilemeyi ediyorum. Yani düzenleyerek oraya olamaz. Ve sana söz veriyorum, I do not Herhangi müttefiklerdensiniz var kim dosyayı düzenlerken tarafında benim adına. Ben sadece, bu PHP fonksiyonunu kullanarak yaÅıyorum Zaman, benim için zaman oluÅturmak için otomatik olarak. Ben uyuyorum bile, bu yüzden ve benim web sunucusu çalıÅıyor, Sayfa hala olduÄunu ziyaret kullanıcı tam Åimdiki zaman alacaksın. Yani oldukça iyi. Benim site daha dinamik yaptık çok fazla PHP kodu ile. Bu kod sadece iki satır ve daha sonra Bir yazdırma deyimi biraz. Ve zaten bir var daha dinamik site ilk örnek daha gördüÄümüz Videonun baÅında. Yani, PHP sözdizimi video çaÄırmak PHP yorumlayıcısı çalıÅtıÄında o program, her Åeyi yok sayar Bu, PHP sınırlayıcı içinde deÄil tükürerek dıÅarı. Bu örnekte ne Åey dıÅarı tükürme olduÄunu HTML oldu. Ve bu Åimdi anlamına gelir Birlikte HTML ve PHP serpmek. Tercüman sadece olacak çünkü HTML ve tam anlamıyla çıktı görmezden. Hangi doÄru, iyi mi? , Muhtemelen çünkü günün sonunda, Ben benim siteyi istiyorum HTML yapılabilir. Herhangi bir web tarayıcısı yorumlayabilir, böylece o, ya da sayfadaki HTML anlamak ve bir Åey olarak iÅlemek biz Aslında insanlar olarak anlayabiliriz. Ve ben sadece PHP kullanabilirsiniz Sitemde parçaları bana gerektirir, dinamizmi gerektiren Sürekli güncelleme Åeyler var. Statik bilgiler Aynı kalabilir. Tamam, bu yüzden sorun deÄil. Ama bu yüzden yapardın? Neden HTML ve PHP karıÅtırmak istiyorsunuz? Ben sadece çıktısını olabilecek tüm HTML, PHP yazdırma iÅlevini kullanarak. Neden bunu yapmıyorum? Bir saniye düÅün. Neden, ben sadece bir konrtol baskı olabilir zaman Sadece söylemek PHP hatları olabilir, Baskı HTML etiketi, yazdırma kafası. Neden bunu yapmıyorum? Neden PHP ve HTML karıÅtırma ediyorum? Peki, eÄer sen düÅünmek Bir saniyeliÄine bu konuda. PHP, tercüman var o gördüÄünü yorumlamak. Ve böylece sahip olacak bir kod satırı yürütmek için. HTML yazdırın. Açık kafa etiketi yazdırın. Açık baÅlık etiketi yazdırın. Bu zorunda olacak yürütmek ve yorumlamak yol her adımda söyledi. Sadece izin vermeyin Neden tercüman sadece geçiÅtirmeye anlamadıÄı Åeyler ve otomatik olarak mı? Bu bana çok zaman kazanmak için gidiyor Birlikte benim HTML ve PHP benim karıÅtırmak için. Biz bunu neden Ve böylece var sadece açık PHP sınırlayıcı var ve sonra sadece entire çıktı dev bir PHP gibi bizim sayfanın içeriÄi Sonra iÅlev, Yazdır çaÄrı ve yakın PHP ayırıcı ve bitti. Biz onları birlikte karıÅtırmak Ä°Åte bu yüzden. Åimdiye kadar, çok fazla görmedim Genel PHP sözdizimi bir fark var. Oldukça basit oldu. Biz zaten gördük soru iÅareti, eÅit. Biz, yeni iÅlev çaÄrıları bir çift gördüm ama gerçekten fantezi bir Åey oluyor. En belki bir Åeyler yapalım Biraz meraklısı. Ne bilgi aktarmak istiyorsanız Farklı PHP dosyaları arasında, böylece belki kullanıcı can Bana bilgilerinizi gönderin. Ve sonra bir Åey yapabileceÄini baÅka bir sayfada sahip. Yani PHP desteÄi vardır bir Åey Süper Küresel denilen Oldukça harika sesler DeÄiÅkenler. Onlar gerçekten sadece konum Dev iliÅkisel diziler bu uygulamaya yardımcı geçen iÅlevselliÄi PHP dosyaları arasında bilgi bu Bizim web sunucusu üzerinde mevcut bulunmaktadır. Bu süper ilk küreseller $ _GET olarak adlandırılır. Ve muhtemelen anlamak için en basit. Ne $ _GET ile olur? Peki, temelde, kullanıcı ekstra bilgi yazmak için gidiyor Bizim URL'lerin sonunda. Ve onlar yazdıÄınız ne olursa olsun, varsayarak belirli bir Åekilde biçimlendirilmiÅ oluyor Sadece hangi bir sorgu dizesi olarak adlandırılan anahtar deÄer çiftleri bir dizi ayrılmıŠ'iÅareti ile. Bu anahtar deÄer çiftleri olacak Bir $ _GET iliÅkisel dizi saklanan. Ve bizim video PHP sözdizimi, bildiÄimiz nasıl iÅ Zaten iliÅkisel diziler. Yani burada örneÄidir belki ben bazı PHP, anahtar deÄer çiftleri tüm ayıklanması URL verilen kullanıcı söyledi. Yani benim Açık PHP sınırlayıcı var. Ben bir foreach döngüsü var. Ben Super genelinde yineleme ediyorum Küresel Dizi $ _GET denir. Ve ben baÅvurmak mümkün olmak istiyorum anahtar ve deÄer hem de. Ve ben sadece onları baskı yapıyorum dıÅarı her biri görünüÅte Burada kendi paragraf etiketi. Ben bazı HTML çıktısını ediyorum ve deÄerleri interpolating Bu ifadenin içine anahtar ve deÄer. Yani bu nasıl bir göz atalım aslında bizim IDE üzerinde çalıÅmak istiyorum. Ve belki bu yardımcı olur Biraz göstermek GET ne aslında yapıyor. Yani buraya benim web kök deÄilim. Ve ben bir yakınlaÅtırmak olacak biraz size göstermek için Ben adlı bir dosya, get1.php var. Yani get1.php tıklayın edelim. Ve ben herhangi bir içeriÄi göremiyorum. DoÄru, tuhaf deÄil mi? Peki, gerçekten deÄil aslında. Ben arz etmedi çünkü URL Åey. Ben get1.php gidiyor, ama ben deÄilim herhangi bir tuÅa deÄer çiftlerini arz etmedi Benim sorgu dizesi bir parçası olarak. Yani bir sorgu dizesi ekleyelim ve bu dosya neler yapabileceÄini görmek. Bir sorgu dizesi baÅlamak için, Sadece soru iÅareti. O zaman belki ben name = Doug & yılı = 2015 söylerim. Ve sonra Enter vuracaktır. Åimdi ne oluyor dikkat edin. Ben get1.php hala yaÅıyorum. Ama Åimdi temin ettik anahtar deÄer çiftleri ve ben kendi kendilerine yazdırarak paragraph-- isim, Doug-- yıl, 2015. Bu tam olarak kod sadece Bir an önce slayt gördüm. Ve ben belki baÅka eklemek istiyorsanız anahtar deÄer çifti, & class = CS50. Åimdi baÅka bir anahtar deÄeri var çıktısı var çifti ne zaman tekrar URL'yi tekrar. Åimdi belki bu deÄil korkunç iyi biçimlendirilmiÅ. Yani get.php baÅka sürümü var. Bu get2.php var. Bu fark bir ben CSS dosyası var ise, ve bu iÅler a formatları daha güzel benim için küçük. O belki de en deÄil Dünyada güzel CSS. Ama bunu yapmanın baÅka bir yolu var. Yani hala eriÅebilirsiniz $ GETin kullanarak benim deÄiÅkenlere. Ve bu durumda, ben sadece tür kulüpler CSS biraz daha süslü hale. Ve biz pop üzerinden ise Ä°kinci benim IDE, Benim PHP web göstereceÄiz Burada dizin, get2.php. Biz burada, bazı HTML o kadar açık olacak. GörünüÅe göre o baÄlama ediyorum Ben bahsediyordu CSS dosyası. Ben bir tablo etiketi açın. Ve sonra benim foreach döngüsü var. Ä°Åte, bu ne önce slayt gösterdi. Tek fark I Bu anahtarı ve deÄeri CSS sahip Ben buna uyguluyorum stil. Ama bu, ben yapıyorum, tüm kulüpler mi $ _GET genelinde yineleme tüm almak için anahtar deÄer çiftleri. Ve ben tablo olarak onları yazdırarak ediyorum. Ve görünüÅe göre, ben anahtarları biçimlendirme ediyorum tek Åekilde,