Dizindeki tüm php dosyalarını bağlama işlevi. Harici dosyaları bağlama. Blog güncellemelerini alın!!! Abone olmak

  • 20.06.2020
Php'nin en ilginç ve kullanışlı özelliklerinden biri de başka bir dosya eklemesidir. Örneğin, sitenin bir üst menüsü, bir alt menüsü ve bunların arasında sayfanın içeriği vardır. Ve örneğin sitenin 10 sayfasında alt menü kullanılmaktadır. Bir noktada değiştirilmesi gerekiyordu. Html'de, her bir dosyada manuel olarak değişiklik yaparsınız, ancak php siteyle çalışmayı çok daha kolay hale getirir! Alt menü kodu ayrı bir dosyada bulunabilir ve 10 sayfanın her birine bu ayrı dosyayı dahil edebilirsiniz! Yani, tüm değişiklikler şimdi yalnızca menü içeren dosyada yapılmalıdır ve diğer 10'da değişikliklerle birlikte görüntülenecektir.

Basit Rusçada php ile bağlanmanın anlamı:

Dosya 1.php
Üst Menü

Dosya 2.php
Alt menü

örnek.php dosyası
1.php Dosyasını Bağlayın
Sayfa içeriği
Dosyayı Bağlayın 2.php

example.php dosyasının işlenmesi sonucunda görüntülenecektir.
Üst Menü
Sayfa içeriği
Alt menü
Buna göre alt menüde herhangi bir şeyi değiştirmek için sadece 2.php dosyasında değişiklik yapmanız gerekiyor.

Dosyanın yolu

Dosya, dosyaya belirtilen yola göre bağlanır. İki yol seçeneği vardır: göreli ve mutlak. Göreceli - bu, bağlantı talimatı olan dosyaya göre bağlanacak dosyanın yolunun bir göstergesidir. Mutlak - dahil edilen dosyanın tam yolunu belirtir.

PHP kodu

// göreli yol örneği
"include/your_file.php"yi dahil edin; // dosya, bağlantının bulunduğu dosyayla aynı dizinde bulunan include klasöründedir

// mutlak yol örneği
$_SERVER["DOCUMENT_ROOT"] içerir."/include/your_file.php"; // $_SERVER["DOCUMENT_ROOT"] - sitenin kök dizinini belirtir

dahil et ve dahil et_once

Dahil etmek()- PHP komut dosyasının yürütülmesi sırasında dosyaları PHP komut dosyası koduna dahil etmek için tasarlanmış bir yapı. Kod işlendiğinde, talimat ekli dosyanın içeriği ile değiştirilir. Hemen bir örnek düşünmeyi öneriyorum.

İki dosya örneğinde include çalışmasını düşünün: index.php ve metin.php. Basit olması için, aynı dizinde olduklarını varsayalım.

PHP kodu(dosya index.php)

Echo "Ana dosyada bulunan düz metin";
"text.php" içerir; // text.php dosyasının içeriğini dahil et

?>
PHP kodu(dosya metin.php)

Echo "İçerdiği dosyada bulunan metin";

?>
index.php dosyasının bir sonucu olarak aşağıdakiler görüntülenecektir:

Ana dosyada bulunan düz metin
Dahil edilen dosyada bulunan metin
Gerçekten uygun mu? Şimdi, text.php dosyasındaki içeriği değiştirerek, index.php'nin sonucu tamamen farklı olacak!

Şimdi başka bir tasarımdan bahsedelim - include_once. Dahil etme ile tamamen aynı şekilde çalışır, ancak daha sonra oluşturulur ve dosyayı yeniden ekleyemediğiniz durumlar için. Örneğin, bir hatanın sonucu olarak, sayfanın yanlış çalışmasını ve ilgili hata mesajının alınmasını etkileyecek bir dosyayı 2 veya daha fazla kez ekleyebileceğinizden korkuyorsunuz.

PHP kodu

include_once "metin.php"; // text.php dosyası yalnızca bir kez eklenecek

// aşağıdan yeniden bağlan yoksayılacak ve görüntülenecek
// ve bir hata mesajı oluşturmaz
include_once "metin.php"; // hiçbir şey olmayacak

gerektirir ve gerektirir_once

require ve require_once yönergeleri, bir özellik dışında, include ve include_once için aynı şekilde çalışır - içerme dosyası bulunamazsa, komut dosyası yürütmesi durdurulur (komut dosyası daha fazla okunmaz), include ve include_once yalnızca bir uyarı görüntüler ve betiğin daha fazla yürütülmesine devam edin.

Dahil et veya zorunlu tut çalışmıyorsa

Dahil etmenin neden çalışmadığını anlamak için her şeyi adım adım kontrol etmenizi öneririm. Aşağıdaki noktalar ne kadar açık ve yüzeysel olursa olsun, her şeyi en baştan kontrol edin.

1. Sunucunuzun ve php'nizin çalışıp çalışmadığını, sitedeki herhangi bir php kodunun çalışıp çalışmadığını kontrol edin.
2. Dahil etme dosyasının var olup olmadığını kontrol edin
3. Bağlantıda dosya adı ve uzantısının doğru girilip girilmediğini kontrol edin
4. Dahil edilen php dosyasının gerçekten belirttiğiniz adreste olduğundan emin olun.
5. Göreli bir yol değil, mutlak bir yol (dosyanın tam yolu) belirtmeye çalışın.

Örnek PHP kodu

"http://www.example.com/include/your_file.php" ekleyin;

// DOCUMENT_ROOT - kaynağın kök dizinini belirler
$_SERVER["DOCUMENT_ROOT"] içerir."/include/your_file.php";

6. Dosyayı bağlamazsanız ve herhangi bir hata görüntülenmezse, bağlandığınız dosyanın bulunduğu dizinde bir dosya oluşturun. .htaccess aşağıdaki içerikle

php_flag display_errors Açık
veya php dosyasında, bağlamadan önce aşağıdaki satırı girin

error_reporting(E_ALL);
Her iki ayar da görüntüleme hatalarını zorlar

Bugün size farklı türdeki scriptleri sitenize nasıl bağlayacağınızı anlatacağım. Bu, temellerin bir tür temelidir ve bu makaleyi ilk yazanlardan biri olmalıydım. Bu nedenle, başlayalım.

JS betiklerini (*.js uzantılı dosyalar) siteye bağlama

JavaScript, sitenin işlevselliğini geliştirmemize birçok yönden yardımcı olur. Formların stilizasyonu veya örneğin konunun bazı teknik yönleri olsun.

JavaScript bağlantısı iki şekilde gerçekleştirilir:

1. İlk- bu, etiketleri kullanarak doğrudan sitenize kod eklemektir:

2. İkinci- dosyayı kullanarak:

Neresi " https://www.pandoge.com/main.js' betik dosyasının yoludur. Uzak (harici) bir sunucudaki dosyalar için bu seçeneğin yazılması önerilir. Dosya sitenizdeyse, göreli yolu belirtmeniz yeterlidir:

Bu, etki alanını aniden değiştirmek veya siteyi başka bir protokole aktarmak istiyorsanız kullanışlıdır.

Bağlantı yerine gelince, bölümdeki tüm komut dosyalarının bağlanması önerilir. KAFA, kapanış etiketinden önce. Örneğin:

Yeni başlayan bir web yöneticisi için her şey

Ayrıca bölümlere bağlanabilirler. GÖVDE. Örneğin, bölümdeki tüm kitaplıkların dahil edilmesi önerilir. KAFA, tüm sayaçlar, kaydırıcılar, galeriler ve diğer komut dosyaları bölümdeyken GÖVDE, ayrıca kapanış etiketinden önce.

PHP betiklerini (*.php uzantılı dosyalar) siteye bağlama

PHP betikleri üç şekilde bağlanır:

1. İlk- bu, site sayfasının kendisine aynı kodun eklenmesidir (uzantılı bir sayfanız varsa *.html- uzantıyı şu şekilde değiştirmeniz gerekiyor: *.php) etiketleri kullanarak:

2. Bir dosya kullanarak (bu durumda, bağlantı ile sayfada da bağlantı yapılabilir. *.html eklenti):

Ancak bu yöntemin dosyada çalışması için .htaccess, sitenizin kökünde bulunan en üstte şu satırları eklemeniz gerekir:

RemoveHandler .html .htm AddType application/x-httpd-php .php .htm .html .phtml

Barındırmada böyle bir dosya yoksa, herhangi bir metin düzenleyici kullanarak oluşturun.

3. Üçüncü- bir JS betiği kullanarak. Bu durumda, sunucuda yürütülen PHP betiğinin sonucunu da alabilirsiniz.

Uygulama şu şekilde olacaktır:

Neresi " .sonuç" verilerin yükleneceği sınıftır ve " /main.php”, sırasıyla PHP betiğinin adresi.

Başka bir sunucudan veri yüklüyorsanız, sunucunuzda PHP desteği gerekli değildir. JQuery kitaplığını sitenize eklemeyi unutmayın.

Burada kurallar tamamen aynı: dosyanın tam adresi, harici bir sunucuda bulunuyorsa, göreceli - sizinkindeyse.

Not! Sitenize bir PHP betiği bağlamak istiyorsanız, sunucunun PHP desteğine sahip olması gerekir. Bu seçeneğe sahip olup olmadığınızı görmek için barındırma sağlayıcınıza danışın.

Komut dosyalarını ilk kez bağlıyorsanız, makalenin sonunda eklenmiş olan arşivden komut dosyalarını bağlamayı deneyin. Her iki durumda da mesajı aldıysanız " Selam Dünya!"Her şeyi doğru yaptın demek.

PHP, kodlu dosyaları diğer dosyaların içine dahil etme yeteneğine sahiptir. Bu, uygulamanın mimarisini oluşturmak için yapılır.

Yazılım mimarisi, bir yazılım sisteminin organizasyonu ile ilgili en önemli kararların bir kümesidir. Mimari şunları içerir:

  • Sistemi oluşturan yapısal elemanların ve bunların arayüzlerinin seçimi ve yapısal elemanların işbirliği çerçevesinde davranışları;
  • seçilen yapı ve davranış öğelerini daha büyük sistemlere bağlamak;
  • tüm organizasyona - tüm unsurlara, arayüzlerine, işbirliklerine ve bağlantılarına - rehberlik eden bir mimari tarz.

Yani, kodumuzu her biri görevini yerine getirecek ayrı parçalara ayırmamız gerekiyor. Örneğin, bazı işlevleri ayrı bir dosyaya koyabilir, bu dosyayı başka bir dosyaya bağlayabilir ve bunları zaten bu dosyada kullanabilirsiniz.

Mimarinin amacı, bazı benzer davranışlardan sorumlu program bileşenlerinin tek bir yerde bulunması ve bunların kolayca bulunup değiştirilebilmesidir.

Peki, genel olarak, bir örnek alalım. Ama önce, bir "sihir" sabitini inceleyelim. Sabitle ilgili. __DIR__. Geçerli komut dosyasının bulunduğu dizinin yolunu içerir (bu sabitin kullanıldığı komut dosyası).

kendimize yazalım index.php aşağıdaki kod:

Bu kodun sonucu:

C:\OpenServer\domains\myproject.loc\www

Voila, artık hangi klasörün içinde olduğunu biliyoruz index.php. Her zaman sihirli sabiti kullanacağız __DIR__ dahil edilen dosyaların yollarını belirtirken. Aynı zamanda dosya bağlama ifadelerinde PHP-injection adı verilen hacker saldırılarından kaçınmak için kullanıcılardan gelen verilerden kaçınılmalıdır. Devamını oku.

Şimdi dersin ana konusuna dönelim. İle bir dizinde oluşturun index.php adlı başka bir dosya işlevler.php ve aşağıdaki içerikle doldurun:

şimdi geri dön index.php ve içine aşağıdaki kodu yazın:

Çift ve tek sayılar 2 numara
5 numara
8 numara

Umarım kimse PHP kodunu HTML'nin içine yerleştirebileceğinizi unutmamıştır? Bunu içinde konuştuk. Sadece orada çıktı için formun bir yapısını kullandık:

Ekte yalnızca bir ifadenin sonucunu göstermemiz gerekiyorsa, o zaman şu şekilde basitleştirilebilir:

Ve şimdi tarayıcıda uygulamamızın URL'sini ziyaret edersek, aşağıdakileri göreceğiz:

Uygulamamız başarıyla tamamlandı ve sayfanın ana kodu yardımcı işlevler içermiyor - yönergeyi kullanıyorlar Dahil etmek dosyamıza bağlandı. Daha ayrıntılı olarak, dosyadaki PHP kodu işlevler.php direktifi kullanılarak bağlandığı yere yerleştirildi Dahil etmek.

Gerektirmek ve dahil etmek arasındaki fark

Dosyaları dahil etmek için başka bir yönerge var - gerekmek. şimdi değiştirirseniz Dahil etmeküzerinde gerekmek, bunun gibi:

__DIR__ gerektirir. "/işlevler.php";

o zaman esasen hiçbir şey değişmez - kod tam olarak aynı şekilde çalışır.

Ancak yine de aralarında bir fark var. Dahil edilen dosya bulunamazsa, o zaman ne zaman Dahil etmek ortaya çıkmak uyarı, ancak program çalışmaya devam edecek. Ve çalıştırmaya çalışırken eklenti görünmezse gerekmek, ardından önemli bir hata oluşacak ve komut dosyası çıkacaktır.

Yönergeyi tekrar döndürelim Dahil etmek, Adını değiştirmek işlevler.php içinde abc.php ve sayfayı yenilemeyi deneyin.

Çeşitli türde hatalar alındı. Birincisi uyarı, dosya olduğunu belirten işlevler.php bulunamadı. Ancak komut dosyası yürütmeye devam etti ve ardından işlevin bulunamaması nedeniyle 10. satırda çöktü. isEven(), ve bu zaten ölümcül hata.
şimdi değiştirelim Dahil etmeküzerinde gerekmek ve sayfayı tekrar yenileyin.

şimdi elimizde ölümcül hata hemen ikinci satırda, uygulama bu noktada işini tamamlamıştır.

Yani gerekmek dosya bağlantısının zorunlu olduğu yerlerde kullanılmalıdır. Örneğin, yapılandırması veya gerekli işlevleri olan bir dosya.

ANCAK Dahil etmek dahil edilmesi gerekmeyen dosyalar için kullanılabilir (kodu onlarsız yürütmeye devam edebiliyorsanız). Örnek: banner reklam kodu dosyası. Evet, reklam görünmeyecek ancak site çalışmaya devam edecek.

Kullanmanın diğer yolları gerektirir ve içerir

PHP kodlu dosyaları dahil edebilmenize ek olarak, bazı metinleri veya özellikle HTML kodunu içeren dosyaları da dahil edebilirsiniz.

Şu durumu göz önünde bulundurmayı öneriyorum: Sitemizde her zaman aynı üstbilgi, kenar çubuğu ve altbilgiye sahibiz, ancak başlık ve sayfa içeriği değişiyor. Diyelim ki sitemiz şöyle görünüyor:

Sayfanın değişecek kısmını yeşille işaretledim.

Şablonumuzla başlayalım. umarım herkes geçmiştir. Bu kodu aldım:

Sayfa başlığı

BAŞLIK
İÇERİK
altbilgi


Web sayfam şöyle görünüyor:

Şimdi bu kodu bileşenlere ayıralım. 4 dosya oluşturalım: dosyanın başlığı ile header.php, kenar çubuğu ile sidebar.php, sayfanın ana içeriği ile content.php ve sitenin alt bilgisi için footer.php.

Sayfa başlığı

BAŞLIK
İÇERİK
altbilgi


Şimdi index.php'ye geri dönelim ve içine aşağıdaki kodu yazalım:

Sayfayı yenileyelim ve hala çalıştığını görelim. Ancak şimdi her biri kendi parçasından sorumlu olan küçük parçalardan toplandı.

Dahil edilen dosyalarda, dahil edilmeden önce tanımlanmış değişkenleri kullanabiliriz. Örneğin, $content değişkenini index.php'ye ekleyelim:

Makale başlığı

Bir makalenin metni

"; __DIR__ gerektirir. "/header.php"; gerektirir __DIR__ . "/sidebar.php"; gerektirir __DIR__ . "/content.php"; __DIR__ gerektirir. "/footer.php";

Ve content.php dosyasında şu değişkeni görüntüleyin:

Şimdi sayfayı tekrar yenileyelim:

TA-dah! Sayfamız dinamik olarak oluşturulmuştur! Sadece farklı bileşenlerden bir araya getirilmekle kalmadı, aynı zamanda değişkenlerden de değerler türetiyor.

require_once ve include_once yönergeleri

Bazen bir dosyayı yalnızca bir kez eklemeniz gerekir. Örneğin, bir dosyayı yalnızca bir kez işlevlerle bağlamak için. Bunun için direktifler kullanılır. require_once ve include_once.

Bir dosya oluşturalım config.php ve içine aşağıdaki içeriği yazın:

Şimdi bir test.php dosyası oluşturalım ve aşağıdaki kodu yazalım:

Şimdi tarayıcıdaki adrese giderek test.php'yi çalıştıralım: http://myproject.loc/test.php

Ve metnin yalnızca bir kez görüntülendiğini göreceğiz.

Şimdi değiştirelim include_onceüzerinde Dahil etmek:

Ve şimdi kod birkaç kez bağlandı:

İşte bazı turtalar. Biraz sonra, bu farklılıklar konusuna ve tam olarak ne zaman include_once ve require_once kullanmaya değer olduğuna döneceğiz.

Ve şimdilik, hepsi bu. Ödevini yap ve bir sonraki derste görüşürüz!

Bugün size farklı türdeki scriptleri sitenize nasıl bağlayacağınızı anlatacağım. Bu, temellerin bir tür temelidir ve bu makaleyi ilk yazanlardan biri olmalıydım. Bu nedenle, başlayalım.

JS betiklerini (*.js uzantılı dosyalar) siteye bağlama

JavaScript, sitenin işlevselliğini geliştirmemize birçok yönden yardımcı olur. Olsun ya da örneğin, sorunun bazı teknik yönleri.

JavaScript bağlantısı iki şekilde gerçekleştirilir:

1. İlk- bu, etiketleri kullanarak doğrudan sitenize kod eklemektir:

2. İkinci- dosyayı kullanarak:

Neresi " https://www.js' betik dosyasının yoludur. Uzak (harici) bir sunucudaki dosyalar için bu seçeneğin yazılması önerilir. Dosya sitenizdeyse, göreli yolu belirtmeniz yeterlidir:

Bu, etki alanını aniden değiştirmek veya siteyi başka bir protokole aktarmak istiyorsanız kullanışlıdır.

Bağlantı yerine gelince, bölümdeki tüm komut dosyalarının bağlanması önerilir. KAFA, kapanış etiketinden önce. Örneğin:

Yeni başlayan bir web yöneticisi için her şey

Ayrıca bölümlere bağlanabilirler. GÖVDE. Örneğin, bölümdeki tüm kitaplıkların dahil edilmesi önerilir. KAFA, tüm sayaçlar, kaydırıcılar, galeriler ve diğer komut dosyaları bölümdeyken GÖVDE, ayrıca kapanış etiketinden önce.

PHP betiklerini (*.php uzantılı dosyalar) siteye bağlama

PHP betikleri üç şekilde bağlanır:

1. İlk- bu, site sayfasının kendisine aynı kodun eklenmesidir (uzantılı bir sayfanız varsa *.html- uzantıyı şu şekilde değiştirmeniz gerekiyor: *.php) etiketleri kullanarak:

2. Bir dosya kullanarak (bu durumda, bağlantı ile sayfada da bağlantı yapılabilir. *.html eklenti):

Ancak bu yöntemin dosyada çalışması için .htaccess, sitenizin kökünde bulunan en üstte şu satırları eklemeniz gerekir:

RemoveHandler .html .htm AddType application/x-httpd-php .php .htm .html .phtml

Barındırmada böyle bir dosya yoksa, herhangi bir metin düzenleyici kullanarak oluşturun.

3. Üçüncü- bir JS betiği kullanarak. Bu durumda, sunucuda yürütülen PHP betiğinin sonucunu da alabilirsiniz.

Uygulama şu şekilde olacaktır:

Neresi " .sonuç" verilerin yükleneceği sınıftır ve " /main.php”, sırasıyla PHP betiğinin adresi.

Başka bir sunucudan veri yüklüyorsanız, sunucunuzda PHP desteği gerekli değildir. JQuery kitaplığını sitenize eklemeyi unutmayın.

Burada kurallar tamamen aynı: dosyanın tam adresi, harici bir sunucuda bulunuyorsa, göreceli - sizinkindeyse.

Not! Sitenize bir PHP betiği bağlamak istiyorsanız, sunucunun PHP desteğine sahip olması gerekir. Bu seçeneğe sahip olup olmadığınızı görmek için barındırma sağlayıcınıza danışın.

Komut dosyalarını ilk kez bağlıyorsanız, makalenin sonunda eklenmiş olan arşivden komut dosyalarını bağlamayı deneyin. Her iki durumda da mesajı aldıysanız " Selam Dünya!"Her şeyi doğru yaptın demek.

ne kullanman gerekiyor Include veya Require ifadesinin PHP dosyalarında?
Büyük bir programı veya web sayfasını birkaç dosyaya bölmek çok uygundur. Ve dosyanızı başka bir geliştiricinin komut dosyasına bağlamanız yeterlidir.

Size hayatımdan bir olay anlatayım. HTML öğrenmeye başladığımda ilk web sitemi oluşturdum. O zaman PHP programlama dili olduğunu bilmiyordum. Site 100 sayfadan oluşuyordu. Bir makale eklediğimde, menüde her sayfada yeni sayfanın adını ve yolunu ayrı ayrı belirtmek zorunda kaldım. Korkunçtu, çünkü anladığınız gibi bu ders, sayfama üçüncü taraf dosyalarını dahil etme özelliğine sahip Include ifadesini öğrenene kadar çok zaman aldı. Bir üçüncü taraf dosyasında, örneğin menüde bir değişiklik yaptığım anda, 100 sayfanın tamamı değiştirildi. Rahat, hızlı ve moda.

Web sayfamıza üçüncü taraf bir dosya bağlamayı denemek için basit bir örnek kullanalım.

Aşağıdaki kodla "index.php" adlı bir dosya oluşturun:

Bir yığın metin……….

Şu şekilde olabilir:

Siteye ifadeleri dahil et ve gerekli kıl Bir yığın metin……….

Şimdi aşağıdaki kodla bir "cop.php" dosyası oluşturun:


Sonuç:

Peki biz ne yaptık?
"index.php" dosyasında üçüncü taraf bir dosya olan " cop.php" ile bağlantı kurduk.

"cop.php" dosyasındaki metni değiştirirseniz, o zaman dosyada " index.php"Bir değiştirme göreceksiniz.

Ekstre şablonunu dahil et:

Ekstre şablonu gerektir:

Konuyu pekiştirmek için başka bir örnek.
Bu web sayfamız var:

Siteye ifadeleri dahil et ve gerekli kıl Ana Sayfa Yazar İletişim Çok sayıda metin……….
Tüm hakları saklıdır © 2012-2014..ru

Şimdi şemada olduğu gibi Include veya Require deyimini kullanarak bu web sayfasını iki bloğa bölelim:

Bunun gibi görünecek:

Siteye ifadeleri dahil et ve gerekli kıl Bir yığın metin……….

"index.php", "avtor.php" ve "kontakty.php" adları altında kaydedin.
Yani, "index.php", "avtor.php" ve "kontakty.php" olmak üzere üç sayfa alırsınız.

Şimdi menü için bir menu.php dosyası oluşturun:

Ana Sayfa Yazar İletişim


Tüm hakları saklıdır © 2012-2014..ru

Sonuç:

"cop.php" veya "menu.php" dosyasındaki bir şeyi değiştirirseniz, değiştirme otomatik olarak "index.php", "avtor.php" ve "kontakty.php" dosyalarında gerçekleşir. Kendin dene.

Bu kadar! Yenilerini kaçırmamak için blog güncellemelerine abone olun PHP dersleri. İyi şanlar!

Gönderiyi beğendiniz mi? Başkalarının bu makaleyi öğrenmesine yardımcı olun, sosyal medya düğmesine tıklayın ↓↓↓

Blog güncellemelerini alın!!! Abone olmak:

En son kategori haberleri: