2009-07-02 10 views
0

私は1つのことを理解できません。コードでは、たとえば:PHP - ファイルパスの問題

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

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

なぜスクリプトは「いいえ」を返しますが、リンクをダウンロードしたブラウザにコピーするとどうなりますか?

答えて

2

file_exists()関数は、サーバーのファイルシステムの観点から存在するファイルまたはディレクトリを探しています。 http://www.server.com/は/ホーム/ユーザー名/ public_htmlの/その後に相当した場合、あなたはあなたのコードを作成する必要があります。

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

詳細はhttp://php.net/file_existsを参照してください。

0

file_exists()ファイルシステムのファイルとディレクトリをチェックします。 fopen()を使用して、そのWeb URLにアクセスできるかどうかを確認してください。それぞれのサーバーがそのリソースに対して404 Not Foundを返す場合、fopen()はfalseを返し、警告を出します。はるかに良い解決策は、HTTP HEAD要求を発行することです。

0

最初に使用する必要があるphp関数は、最後に 's'を付けてfile_exists()です。次に、ファイルへのパスはURLではなくローカルのファイルパスでなければならないと思います。しかし確かに...

1

使用

$_SERVER["DOCUMENT_ROOT"] 

は、例えば、開発または製造システムによって依存しない正しいファイルシステムのパスを、保証します。この場合

、それは

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

行うようになります。

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

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