PHP dosyasını dahil

4 Cevap php

i iki dosya var: (localhost / şablon /)

index.php 
template.php

i bir makale (bir makale sistemi ben yapmaya çalışıyorum budur) oluşturduğunuzda, her zaman, ben bir klasör oluşturun ve sonra ben bu klasöre index.php kopyalayın. Ben ('makaleleri bir folder-subfolder/subfolder / .. yapısı gibi olacak neden) index.php ancak statik url olarak şablon php eklemek istiyorum

ben denedim: include('localhost/template/template.php') hiçbir sonuç. ben nasıl içermelidir? teşekkürler

4 Cevap

Sen dizine göreli eklemeniz, gibi pek olabilir:

require_once(dirname(__FILE__) . '/template.php');

dirname (FILE) betik (index.php) dizinine çevirmek ve çizgi yukarıda template.php yan tarafından tam yoluna sonuçlanan '/ template.php' ekleyecektir index.php dosyasına yan.

Ben en iyisi, örneğin, PHP arama yolu ile sorunları önlemek için tam yolu olmadan vs dosyalarını bu şekilde dahil bulabilirsiniz. Bu şekilde çok açık bulunuyor.

UPDATE: Ben orijinal soruyu yanlış. Template.php kopyalanmaz gibi geliyor, sadece index.php. Böylece gibi olabilir bir şey olacak:

template/template.php
template/index.php (just a template)
foo/bar/index.php
foo/bar2/index.php

Insanlar merkezi bir komut dosyası aracılığıyla Hunileşme olmadan örneğin foo / bar / index.php vurabilir yana, bir şekilde olursa olsun nerede şablonu bulmak gerekecek.

. Bir Apache sunucu üzerinde bir htaccess yoluyla örneğin PHP include_path, ayarlayarak bunu yapabilirsiniz:

php_value include_path ".:/home/<snip>/template"

Sonra her zaman template.php içerebilir ve bu şablon dizini deneyin ardından, ilk olarak geçerli dizini arama edeceğiz index.php.

Ayrıca komut kopyalarken göreli yolunu hesaplamak ve doğru sayısı ile oraya dahil koymak olabilir '..' çıkmak için (örn. '.. /.. / Şablon / template.php'). Ama, biraz kırılgan.

Yöntem, dosya sistemi yoluna değil "url yolu" üzerinde çalışır içerir. Çözüm için ya da

  • Give it an absolute path.
    -- include('/some/path/to/template.php');

  • Change the relative path so it is correct after each copy you create.
    -- include('../../template.php');

  • Change the include path of PHP so that the file is in, well, the include path.
    -- Can be done either in the php.ini file, in the .htaccess file or with the set_include_path function. (Depending on how much you want to set it for, and what you have permission for)

Bir url olarak dosya eklemek için çalışıyorsanız, size http:// ile başlar ve allow_url_include PHP ayarlarında true olarak ayarlanmış olması gerekir. Bu güvenlik ihlalleri için kapılarını açar gibi bu önerilmez.

Bunun yerine, localhost/template senin yolunu eklemek veya ('../template.php') içerir gibi göreli URL'ler kullanmak eklemek gerekir ya.

Yol yanlış görünüyor, sen çağıran dosyanın nerede ilgili bir yol, örneğin ile içermelidir include('template/template.php'); veya include('../template/template.php');