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,