(PHP 4, PHP 5, PHP 7, PHP 8)
realpath — Normalleştirilmiş mutlak dosya yolunu döndürür
realpath() işlevi tüm sembolik bağları genişletir ve
/./
, /../
gösterimlerini çözümleyip
belirtilen yol
'a bir /
ekler ve
normalleştirilmiş mutlak dosya yolu olarak döndürür.
yol
Sınanacak dosya yolu.
Bilginize:
Bir yolun belirtilmesi gerekirse de, değer boş bir dizge de olabilir. Bu durumda değer, geçerli dizin olarak yorumlanır.
Başarı durumunda normalleştirilmiş mutlak dosya yolunu döndürür. Sonuç
hiçbir sembolik bağ, /./
veya /../
bileşenlerini içermez. Ayrıca, sondaki \
veya
/
kaldırılır.
Başarısızlık durumunda, örneğin dosya mevcut olmadığında
realpath() false
ile döner.
Bilginize:
Çalışan betik dosya hiyerarşisi içindeki tüm dizinlerde çalıştırılabilir izinlerine sahip olmalıdır, aksi takdirde realpath()
false
döndürür.
Bilginize:
Harf büyüklüğüne duyarsız dosya sistemlerinde realpath() karakter büyüklüklerini aynı yapabileceği gibi olduğu gibi de bırakabilir.
Bilginize:
realpath() işlevi yolun gerçek değil de sanal olduğu bir Phar içindeki bir dosya için işlem yapmaz.
Bilginize:
Windows'ta, dizin kavşakları ve sembolik bağları yalnızca bir seviye genişletilir.
Bilginize: PHP'nin tamsayı türü, işaretli tamsayı türü olduğundan 32 bitlik tamsayıların kullanıldığı sistemlerde bazı dosya sistemi işlevleri 2GB'tan büyük dosyalarda beklenmedik sonuçlar verebilir.
Örnek 1 - realpath() örneği
<?php
chdir('/var/log/');
echo realpath('./../../etc/passwd');
echo realpath('/tmp/') . PHP_EOL;
?>
Yukarıdaki örneğin çıktısı:
/etc/passwd /tmp
Örnek 2 - Windows'ta realpath()
Windows'ta realpath() Unix tarzı dosya yolunu Windows tarzı dosya yoluna dönüştürür.
<?php
echo realpath('/windows/system32'), PHP_EOL;
echo realpath('C:\Program Files\\'), PHP_EOL;
?>
Yukarıdaki örneğin çıktısı:
C:\WINDOWS\System32 C:\Program Files