Php - dosya yolları ile sorun

6 Cevap php

ben bir şey anlayamıyorum. Kodda, örneğin:

$filePath = 'http://wwww.server.com/file.flv';

if( file_exist($filePath) )
{
  echo 'yes';
}
else
{
  echo 'no';
}

Neden komut dönüş 'hayır', ama tarayıcıya bağlantı indirilirken anlaşıldı alıyorsunuz?

6 Cevap

File_exists () fonksiyonu sunucunun dosya sistemi bakış açısından var olan bir dosya veya dizin arıyor. http://www.server.com/ eşittir eğer / home / username / public_html / ardından kodunuzu yapmak gerekir:

$filename = '/home/username/public_html/file.flv';
if(file_exists($filename))
{ 
 //true branch 
}
else
{
 //false brach
}

http://php.net/file_exists daha fazla bilgi için bkz.

kullanmak

$_SERVER["DOCUMENT_ROOT"]

Örneğin geliştirme veya üretim sistemi ile bağımlı değil doğru dosya sistemi yolu ile, temin etmek.

Bu durumda, bu olacak

$filePath = $_SERVER["DOCUMENT_ROOT"].'/file.flv';

file_exists () dosya sistemi dosya ve dizinleri kontrol. Bu web URL erişilebilir olmadığını görmek çok fopen () kullanın. Ilgili sunucu dönecektir durumda fopen bu kaynağın, () için Bulundu 404 return false ve bir uyarı verecektir. Bir çok daha iyi bir çözüm bir HTTP HEAD isteği sorunu olacaktır.

Kullanmak için gereken tüm php fonksiyonun ilk sonundaki 's' ile () File_exists olduğunu. İkincisi, ben dosyanın yolu yerel bir dosya yolu değil, bir URL olması gerektiğini düşünüyorum. Emin değilim ama ...

yapın:

function isExistsFileOnMyWebsite($fileName) {
    return file_exist($_SERVER['DOCUMENT_ROOT'].'/'.$fileName);
}

if( isExistsFileOnMyWebsite('file.flv') )
{
    echo 'yes';
}
else
{
    echo 'no';
}