ikisi de (mac) yerel ve uzak sunucuda çalışacak php yolları

3 Cevap php

Benim yerel makine üzerinde bir web sitesi test ediyorum ve ben nihai konumuna siteyi upload zaman işe emin olun yolları yazmak için en iyi yolu ne olacağını merak ediyorum.

Genel olarak ben yolları hakkında biraz kafam karıştı, ve birçok durumda ben çalıştığını kadar her yolu 'çimdik' var, yani bir üretim sitede aynı yapmak zorunda olmak istemem!

I'm not clear when to use $_SERVER['DOCUMENT_ROOT']. For example, I have a directory that I want to scan, which is just under the root. So why can't I just use "/dirname"?

$dir = $_SERVER['DOCUMENT_ROOT'] . '/uploads'; //this works
// $dir = "/uploads"; //this doesn't work

if (is_dir($dir)) {
  //do something..
}

3 Cevap

I'm not clear when to use $_SERVER['DOCUMENT_ROOT']. For example, I have a directory that I want to scan, which is just under the root. So why can't I just use "/dirname"?

Eğer php dosyasında yolları ile çalışırken root (/) Eğer web sitesini ziyaret ettiğinizde olsun dosya sistemi değil, kök köküdür.

Yani $dir = "/uploads"; size dosya sistemi kök verir.

Sorunları küçültmek için daha fazlasına ihtiyaç olduğu ne olursa olsun php uygulama kök belirten bir yapılandırma dosyasında bir değişkeni bildirmek ve bu yolu kullanmak + olacaktır.

Adamse belirtildiği gibi dosya sisteminin köküne işaret, çünkü '/ yolu' kullanamazsınız nedenidir.

Ancak, bunun yerine kök tanımlayan bir değişken bildirmek, ben dirname(__FILE__) Çağıran dosyasının bulunduğu dizinin tam yolunu almak için kullanmanızı öneririz

Oradan istediğiniz dosyanın göreli yol bilgilerini ekler ve tam dinamik, tam yolu ile sonuna kadar.

For example, if you want to include the 'header.php' file in the directory above the file that you wish to include it in use: include(dirname(__FILE__) . '/../header.php');

Bunun güzelliği PHP her zaman otomatik olarak ana bilgisayar işletim sistemi için gerekli dizin ayracı için eğik çizgi dönüştürmek olacaktır.

I uygulamaya mutlak dosya sistemi yolu tanımlayan bir değişken / sabit tanımlayacaktır. Böyle bir şey:

$appDir = rtrim(str_replace('\\', '/', realpath(dirname(__FILE__))), '/');

Sonra gelen uygulamanın dosyalarını ele alabilir, bu temel yolu vardır:

include $appDir.'/library/foo/bar.php';

Yoksa bile sizin bu dizinin yolunu içerecek şekilde değiştirin:

set_include_path($appDir);