2010-11-24 12 views
0

私はファイルをダウンロードし、その内容をphpを使ってdbに入れようとしています。私はそれを行うことができます。しかし、最初にURLをチェックしなければならない場合は、ダウンロードしてください。どうすればいいですか?File url check in php

say:$ url = "...";

私は条件が必要になります。

(URL内のファイルが存在する)

{

 report success; 

     download; 

}

 report failure; 
+0

@aendrewとジェフ:エラーは、 "... HTTPストリームをオープンに失敗しました....." 印刷すべきではありません。私はエラーをキャッチして、それを私自身の言葉で表示する必要があると言います。 – Kut

+0

私のコードでは、@シンボルが警告を抑制するために使用されるので、エラーは発生しません。感謝の仲間。 – xaav

答えて

0

ちょうど、次を使用している場合ファイルが存在するかどうかを以下のコードで確認してください。

<? 
$ct = @file_get_contents($url) 

if(($ct != false)&&($ct != '')) { 
//The file exists 
} 
?> 

リソースを取得するために長い時間がかかる可能性がある場合、あなたはこのようにタイムアウトを設定することができますトリックを行う必要があります...

// Create the stream context 
$context = stream_context_create(array(
'http' => array(
'timeout' => 5  // Timeout in seconds 
) 
)); 

// Fetch the URL's contents 
$contents = @file_get_contents($this->url, 0, $context); 

// Check for empties 
if (!empty($contents)) { 
//The file exists 

} 
+0

それは動作します – Kut

0

if (fopen($url)) { report success; download; } else { report failure }

エラー出力を防止する機能の前に@記号を追加します。そう:

if (@fopen($url)) { report success; download; } else { report failure }

+0

はい、しかしファイルが空であるかもしれない場合、fopenはok – xaav

+0

を返しますが、ファイルが存在しない場合は何か.. msg i showdが印刷されます – Kut

+0

はい、問題はファイルに内容問題はファイルが存在するかどうかであった。 – aendrew