HTML formlarını işlemek için PHP betikleri. PHP ile html sayfaları oluşturma

  • 18.06.2019

Etrafa bakarak ve mevcut olanları öğrenerek MVC çerçevelerinin nasıl çalıştığı hakkında çok şey öğrendim. Gördüğüm her çerçevenin, her denetleyicideki her yöntemin kendi şablon dosyasına sahip olduğu bir düzeni var gibi görünüyor. Böylece giriş düzeni, çıkış düzeni, kayıt vb. Vesaire.

Sorum, tüm sayfa için tek bir dosyada nasıl ve neden bir şablon oluşturmanız gerektiğidir. Diyelim ki birden fazla sayfada bir giriş formu göstermek istediniz, görüntülemek istediğiniz her şablon için bir giriş formu oluşturmanız gerekmiyor mu? Bu DRY kurallarına aykırı değil mi?

Şimdiye kadar yaptığım bir şey, şablon değişmez bloklarını oluşturmak ve ardından her sayfayı oluşturmak için bunları birleştirmek. Yani böyle bir şey yapmak yerine,

$ başlık = "(! LANG: Falan bla bla"; $user = "Jon Miller"; include "index.phtml"; !} <?php echo $title; ?>

Giriş Formu


yaptım

$ başlık = "(! LANG: Falan bla bla"; include "header.phtml"; $user = "Jon Miller"; include "user.phtml"; include "login_form.phtml"; include "footer.phtml"; header.phtml !} <?php echo $title; ?> kullanıcı.phtml

login_form.phtml
Giriş Formu
altbilgi.phtml

Her zaman olduğu gibi, bunu nasıl ve neden doğru bir şekilde yapacağımı bilmek istiyorum ... Bu, DRY kuralına aykırı görünüyor.

4 yanıt

Tek kelime: Organizasyon. Sayfanın her bir bölümünü bölmek, her birinin ayrı ayrı görüntülenmesine/düzenlenmesine olanak sağlayacaktır. Bu basit konsept çok kullanışlıdır. Örneğin, bir ekipte oturum açma sürecini yönetmek isteyen herhangi biri, login_form.phtml'yi düzenlemeleri gerektiğini kolayca anlayabilir ve login_form.phtml'yi düzenlemenin istemeden diğer işlevlere müdahale etme olasılığının daha düşük olacağından emin olabilirler.

Hepsinden iyisi, ben böyle yapıyorum (aslında değil, ama öyle görünüyor).

$ Başlık = "(! DİL: Flanş Flanş Flanş"; $User = "Jon Miller"; $ThemeName = "MyGreenPage"; $Contents = array("User", "Login_Form"); function Include($FileName) { if (file_exists($FileName)) include $FileName; } !}

MyGreenPage.phtml:

<?php echo $title; ?>

kullanıcı.pcss:

/ * Kullanıcı tarafından ihtiyaç duyulan bazı stiller * /

Kullanıcı.pjs:

/ * Kullanıcı tarafından ihtiyaç duyulan bazı komut dosyaları * /

Kullanıcı.phtml:

Login_Form.pcss:

/ * Login_Form için gereken bazı stiller * /

Login_Form.pjs:

/ * Login_Form için gereken bazı komut dosyaları * /

login_form.phtml:

Giriş Formu

Yaptığım şeyin bu olmadığını (OOP kullandığımı) tekrar hatırlatmama izin verin, bu nedenle bu tam olarak olduğu gibi çalışmayabilir ve düzenlemeniz gerekebilir.

Düzenler ve Görünüm Asistanları kavramlarını kontrol etmelisiniz. Bu kavramların Zend Framework versiyonuna bağlıyken, diğer MVC çerçeveleri (ve MVC konsepti) de bunlara sahip olmalıdır.

Temel fikir, "görüntüleme" sayfanızın - örneğin bir giriş formu - site düzeninize - sitenizde kullanılan genel şablona - dahil edilmesidir. Farklı bir görünüme sahip, örneğin bir kullanıcı profiline sahip farklı bir denetleyici talep ettiğinizde, o görünüm de aynı düzene dahil edilir.

Tüm sayfalarda oturum açma formu gibi bir şeyi etkinleştirmek için görünüm yardımcısını kullanabilirsiniz. Bu görünüm yardımcısı, oturum açma durumuna bağlı olarak mevcut kullanıcıyı görüntüleyebilir veya bir oturum açma formu görüntüleyebilir. Görünüm yardımcıları, düzene dahil edilebilir veya belirli bir denetleyici tarafından dahil edilebilir (MVC çerçevesi bazı tür oluşturma segmentlerine izin verdiği sürece).

İki adımlı "include" yöntemi, parçaların satır içi eklenmesinden daha iyi çalışır (üstbilgi, ardından içerik, ardından altbilgi dahil - şu anda yaptığınız şey budur), çünkü şablonlarınızın HTML etiketlerini ayırması gerekmez. Zend kılavuzunda, düzen görünümü şablonlarının iyi bir görsel örneği vardır.

PHP ile HTML şablonları oluşturmanın en yaygın yolu şu popüler şablonlardan birini kullanmaktır:

Alternatif olarak, HTML'nize şuna benzeyen yer tutucular koyabilirsiniz:<% variablename %>... Sadece HTML'nizi yükleyin, normal ifadeyi çalıştırın, tüm yer tutucuları bulun ve bunları uygun değişkenlerle değiştirin.

Alternatif olarak, HTML'nizi yükleyebilir, şöyle ayrıştırabilirsiniz. DOM belgesi ve ardından DOM'nizi değiştirin. bir kitaplık oluşturdum

Bu yazımda sizlere sitelere neden ihtiyaç duyulduğunu ve bunlarla ne kadar para kazanılabileceğini anlatmayacağım. Burada sadece farklı araçlar kullanılarak oluşturulan siteler arasındaki farklardan bahsetmek istedim.

Normal bir HTML sitesi düşünün

Bir yandan, esasen statik olan normal bir HTML sitesi alacağız. Basitçe söylemek gerekirse, bağlantılarla birbirine bağlanan bir dizi bilgi sayfası vardır. İstisnalar olsa da, genellikle böyle bir sitede çok fazla sayfa yoktur.


Ve bu tür sitelerde çok az sayfa var çünkü böyle bir site büyümeye başladığında, yönetimi çok elverişsiz hale geliyor. Bu nedenle kişi ya siteyi izlemeyi tamamen bırakır ya da bir tür içerik yönetim sistemi (CMS) kullanmaya çalışır. Sitelerini otomatik hale getirmek ve dolayısıyla daha yönetilebilir hale getirmek için WEB için programlama dilleri öğrenmeye çalışan insanlar da var.

Ancak deneyimlerin gösterdiği gibi, yalnızca birkaçı bu görevle başa çıkıyor ve siteleri büyümeye ve gelişmeye devam ediyor.

Peki ya diğer herkes?

Birisi internette kazıyor, biri kağıt kitap almaya çalışıyor. Ancak bu tür programlama dillerinin yapısı hakkında temel bilgiler olmadan, site oluşturmanın temellerini anlamadan, bu tür girişimler genellikle hiçbir şeyle sonuçlanmaz.

Öte yandan, bir grup düz HTML ve basit bir web programlama dili olan PHP kullanılarak yapılmış bir siteye bakalım.

Bu sitenin bir öncekinden en önemli farkı, böyle bir sitenin bloklardan kurucu olarak oluşturulabilmesidir. Bir web sitesi başlığı yaptık - ayrı bir dosyaya yerleştirdik, site navigasyonu ile bir sol blok oluşturduk - ayrı bir dosyaya yerleştirdik, vb.

Bize ne veriyor?

Bu özgürlük verir. Onlar. şimdi bu blokları ana çerçeveye bağlayabiliriz ve sonunda sitede 10.000 sayfamız olsa ve aniden bazı navigasyon öğelerini değiştirmemiz gerekse bile, o zaman bunda karmaşık bir şey olmayacak. Dosyayı gerekli blokla açtık, düzenledik ve hepsi bu! 10.000 sayfanın tamamında bu değişiklik bir anda gerçekleşti.

Ek olarak, böyle bir sitenin tüm yararlı bilgileri (makaleler, mal ve hizmetlerin açıklamaları, dersler, notlar vb.) bir veritabanında saklanabilir, bu da daha da fazla avantaj sağlar:

- Site daha az yer kaplar;
- Veri yedekleme basitleştirildi;
- Herhangi bir verinin değiştirilmesini kolaylaştırır;
- Herhangi bir bilgiyi saymak mümkün hale gelir (sayfayı kaç kez görüntülediğiniz, bir dosya indirdiğiniz, eklenen yorumlar vb.);
- Sitede birçok hazır PHP betiği kullanabilirsiniz;
- vesaire.

HTML veya PHP

Arabalı HTML ve PHP siteleri arasında bir benzetme yaparsak, modern arabalar daha konforlu, daha güçlü, daha işlevsel hale geldikçe ve aynı zamanda 50 yıl önceki analoglardan daha az yakıt tüketmeye başladıkça, PHP sitesi HTML rakibinden daha hafif, daha işlevsel, kullanımı daha kolay ve daha mobil hale geliyor.

Ne yazık ki bir makale çerçevesinde bu konuyu tam olarak açıklamak mümkün değil ama sanırım burada anlattığım noktalardan bile çağa ayak uydurmak için hangi siteyi oluşturmanın daha iyi olduğu sonucuna varabilir ve bir site oluşturma çabasında iyi bir yatırım getirisi.

Evgeni Popov- Sıfırdan bir PHP sitesi oluşturma sürecinin tamamının doğrudan bilgisayarınızın ekranında sesli açıklamalarla gösterildiği "Video Format 2 veya PHP + Yeni Başlayanlar için MySQL'de Çevrimiçi İşletmenin Tüm Teknik Anları" adlı 22,5 saatlik bir video kursunun yazarı.

PHP, gömülü bir sunucu tarafı programlama dilidir. Sözdiziminin çoğu C, Java ve Perl'den ödünç alınmıştır. Ayrıca birkaç benzersiz yalnızca PHP işlevi ekledi. Bu dilin temel amacı, dinamik olarak oluşturulmuş PHP HTML sayfaları oluşturmaktır.

PHP'den HTML'ye

Karmaşık web sayfaları oluştururken, belirli görevleri gerçekleştirmek için PHP ve HTML'yi birleştirmeniz gerekecektir. İlk bakışta bu karmaşık görünebilir, çünkü PHP ve HTML iki bağımsız disiplindir, ancak değildirler. PHP, HTML ile etkileşime girecek şekilde tasarlanmıştır ve kodu, sayfanın işaretlemesine dahil edilebilir.

HTML sayfalarında PHP kodu özel etiketler kullanılarak eklenir. Kullanıcı sayfayı açtığında, sunucu PHP kodunu işler ve ardından işleme sonucunu gönderir (kendisini değil PHP kodu) tarayıcıya girin.

HTML ve PHP'yi birleştirmek oldukça kolaydır. PHP betiğinin etiketlerin dışındaki herhangi bir bölümüPHP derleyicisi tarafından yok sayılır ve doğrudan tarayıcıya iletilir. Aşağıdaki örneğe bakarsanız, tam PHP betiğinin şöyle görünebileceğini görebilirsiniz:

Merhaba bugün.

Yukarıdaki kod, yerleşik tarih işlevini kullanarak geçerli tarihi veren küçük bir PHP parçacığına sahip normal HTML'dir. Bu durumda, tüm HTML PHP derleyicisi tarafından yok sayılır ve değiştirilmeden tarayıcıya aktarılır.

PHP'yi HTML'ye entegre etmek gerçekten çok kolay. Komut dosyasının, belirli PHP kodunun dahil olduğu bir HTML sayfası olduğunu unutmayın. Yalnızca HTML içerecek bir komut dosyası oluşturabilirsiniz (etiket yok) ve iyi çalışacaktır.

Daha gelişmiş yöntemler:

  • Menü seçeneği


ve sonuç:

short_open_tag ile PHP'den HTML'ye

PHP'ye HTML eklemeden önce kodunuzu olabildiğince kısaltmanız gerekiyorsa, short_tags kullanabilirsiniz. Sonuç olarak, girmeniz gerekmeyecekshort_tags" ile birlikte " Kapalı" üzerinde " Açık". Çoğu sunucuda bu seçenek zaten etkinleştirilmiş olsa da, her zaman manuel olarak kontrol etmek en iyisidir. Kısa etiketleri kullanırken ortaya çıkabilecek bir sorun, XML kullanırken çakışmadır. XML sözdizimi ifadesinde

short__tag kullanarak PHP'den HTML'ye

Merhaba, bugün.

Mümkün olduğu kadar çok platformla uyumlu bir site oluşturmak istiyorsanız, PHP'yi HTML'ye gömerken short_tag'lere güvenmemeniz gerektiğini unutmayın.

PHP'de yankı kullanarak HTML

HTML'yi bir PHP dosyasına entegre etmenin başka bir yolu da echo: komutudur.

Bu, çoğu düzenleyicide işaretleme vurgulamasını etkiler. Bu nedenle, HTML kodunun içindeki tüm çift tırnakları ters eğik çizgi ile almak gerekir.

PHP'den HTML'ye - dosya uzantıları

Standart yapılandırılmış bir web sunucusu için:

AddHandler cgi-script .html .htm

FastCGI çalıştıran bir web sunucusu için:

AddHandler fcgid-komut dosyası .html .htm

HTML'den PHP'ye dönüştürücü

HTML kodunu PHP betiklerinde de kullanabilirsiniz. Sayfayı PHP ile açarken tek yapmanız gereken HTML ve PHP etiketlerinin açılış sırasını değiştirmek.

PHP'de HTML Kullanımı:

Kişisel bilgi

Adı:
Soy isim:
"; ?>

PHP'nin HTML'ye bu şekilde eklenmesi, çok daha az kodun kullanılmasına izin verir. Burada global olarak $ PHP_SELF kullanıyoruz, bu da altlarında belirtilen alan değerlerinin aynı dosyada kullanılmasına izin veriyor. Tipik olarak, bu tür formlar için iki dosya oluşturulur: ilki HTML formunun kendisi, ikincisi ise işlemeyi yapan PHP dosyasıdır.

Zaten çok sayıda dosya kullanan karmaşık PHP uygulamalarınız varsa ve işleri basit tutmak istiyorsanız, bu yöntem yardımcı olabilir.

"HTML'de PHP" makalesinin çevirisi samimi bir proje ekibi tarafından hazırlanmıştır.

Yazardan: PHP vs HTML - hangisi daha iyi? Asla bir profesyonele böyle sormayın. İlk olarak, gözlerinde hemen tam bir "çaydanlık" seviyesine "düşeceksiniz". Ve ikincisi ... Böyle bir soru ancak eksiksiz bir "çay seti" ile ortaya çıkabilir. Bu, bugün bu garip konuya adanmış bir "çay partimiz" olduğu anlamına geliyor.

Tavuk, yumurta - ilk kim?

Bu başlığa böyle gözlerle bakmaya gerek yok. İnanın bana, hipermetin dili ile benim için öncelik meselesi de biraz ürkütücü görünüyor. Bu neden böyle? Pekala, çünkü bu ilk tanışmamız değil ve umarım böyle sorularınız yoktur. Ama yine de, anlayalım!

İlk olarak, modern bir sitenin ne olduğunu öğrenelim. Uzun süre "etrafta dolaşmamak" için hemen bilgi. Günümüzde, herhangi bir web kaynağı dört teknoloji kullanılarak oluşturulmaktadır:

HTML - (önceki gibi) sayfaları kurucu öğeler olarak işaretlemeye yarar.

CSS - sitenin görünümünden sorumludur.

JavaScript - UI (kullanıcı arayüzü) arasında insan etkileşimi sağlar.

PHP - dinamik kaynak oluşturma ve sonuçta ortaya çıkan tüm "sonuçlar" sağlar: CMS, onlar için eklentiler, vb.

Evet, MySQL'i neredeyse unutuyordum. Bu, böyle bir DBMS'dir. Şaka yaptığımı mı sanıyorsun? Peki hayır! Sadece böyle bir "çay" temamız var - HTML'nin PHP'den farkı nedir? Bu sorular için Shnobel Ödüllerini verirdim (böyle var).

Modern bir sitenin listelenen bileşenlerinden birini atmaya çalışın ve dinamik bir kaynak değil, ancak "kalıcı" bir statik korku elde edeceksiniz. Özellikle de kurtulursanız.

Örneklerdeki farklılıklar

İki disiplin arasındaki öncelik ve farklılık hakkında sözlü tartışmalar süresiz olarak yapılabilir. PHP ve HTML arasındaki farkları belirli örneklerle ayrıştırmak daha iyidir. Hangi seçeneklerde arka plan rengini değiştirmenin daha kolay olacağını öğrenelim.

WordPress adında çok popüler bir motor var. PHP tarafından desteklenmektedir. Karşılaştırma için, normal bir web sayfasının işaretlemesini alalım ve içindeki arka plan rengini değiştirmeye çalışalım. Daha sonra aynı işlemi CMS admin panelini kullanarak yapacağız.

HTML ve PHP arasındaki farkı daha iyi anlamak için bu kodda arka plan renginden sorumlu satırı bulmaya çalışın. Burada olmadığını hemen söyleyeceğim. Bu stil özelliğinin (arka plan rengi) belirtilmesi gerekiyor. Bu durumda, nereye ekleyeceğinizi bilmeniz gerekir. Ve sitenin tamamı bir sayfadan değil, onlarca sayfadan oluşuyor.

Şimdi aynısını WordPress admin panelinden yapalım. Bunu yapmak için görsel sayfa düzenleyicisine gitmemiz ve birkaç tuşa basarak kurulu temadaki ilgili parametreyi değiştirmemiz gerekiyor.

Siteleri güncellemeye çalışırken, php'de henüz yeniyken eski düzenime dikkat çektim. Edinilen deneyime dayanarak, HTML PHP tarafından çerçevelendiğinde ve içinde değilken eski düzen yönteminin dezavantajları görülebilir.

Ne yazık ki, dizgi yapmanın nasıl daha iyi olduğunu okumak için bu konuda ilginç bir şey bulamadım. Ancak, modern yerleşim koduna giderek daha sık baktığımda, html'nin neredeyse her zaman php yapılarının içinde bulunduğunu fark ettim. Ve bunun önemli avantajları var.

WordPress'te bir başlık görüntüleme örneğini kullanarak PHP içinde HTML bulmanın avantajlarına bir göz atalım.

Aşağıda, aşağıdaki türden bir koddan bir yapı verilmiştir: belirli bir rastgele alanda veri varsa, bu verilerle başlığı görüntüleriz. Düzen kodunu daha önce olduğu gibi orijinal haliyle aldım. Şuna benziyordu:

< ! -- Title -- >

< h3 class = "archive-entry-title" itemprop = "name" > < a href = " " rel = "yer imi" başlık = "(! LANG: !}" > Kimlik, "name_rus", doğru))):?>Kimlik, "name_rus", doğru); ?> < / a > < / h3 >

< ! -- Title End -- >

Bu kod tasarımının birkaç dezavantajı vardır. İlk olarak, görsel değildir - her şey tek satırda yazılmıştır. Bu, H1, H2, H3 etiketleri arasında boşluk kalmaması için bilerek yapıldı. Sonuçta, başlık etiketlerinizde boşluk bırakmanın iyi bir yanı yoktur. Bu durumda arama motorları arasında bunun siteyi nasıl etkileyeceğini tahmin etmek imkansızdır. Fazladan boşluk olup olmadığı başlığın gücünü azaltıp azaltmayacağı. Böyle bir sorunun cevabı olmadığı göz önüne alındığında, en kötüsü varsayılmalıdır. Ve bu nedenle, birlikte yazın.

Aksi takdirde, söylenenlerin devamında yukarıdaki kodu açıklığa kavuşturursanız:

< ! -- Title -- >

< h3 class = "archive-entry-title" itemprop = "name" >

< a href = " " rel = "yer imi" başlık = "(! LANG: !}" >

Kimlik, "name_rus", doğru))):?>

Kimlik, "name_rus", doğru); ?>

< / a >

< / h3 >

< ! -- Title End -- >

Ardından tarayıcıdaki sayfanın HTML kodunu h3 etiketlerinin başlığında görüntülerken aşağıdakileri göreceğiz:

Ayrıca, düzenleme sırasında kodun okunması kolay olması ve daha sonra siteyi yüklerken de bir kod olarak görüntülenmesine ihtiyacımız var. Yani, şöyle görünmesi için:

Bunu yapmak için PHP kullanmalı ve tüm html kodunu içine sarmalısınız. Ve WordPress başlığı için aşağıdaki php kodunu alıyoruz:

< ! -- Title -- >